Граф коммитов

586 Коммитов

Автор SHA1 Сообщение Дата
Olli Pettay 51b6aa1b21 Bug 1066965, make contentEditable and spellchecking to work in ShadowDOM, r=mrbkap 2018-03-06 09:34:40 +09:00
Emilio Cobos Álvarez 6c417367d6 Bug 1425759: Make Shadow DOM not use XBL anymore. r=smaug,xidorn
More improvements to come. In particular, this still iterates through Shadow DOM
in each_xbl_cascade_data, but that should be changed later. That allows to
cleanup a bunch of stuff and finally fix Shadow DOM cascade order.

We still rely on the binding parent to be setup properly in the shadow tree, but
that requirement can go away later (we can walk the containing shadow chain
instead).

This mostly focuses on removing the XBL binding from the Shadow host.

It'd be nice to do EnumerateShadowRoots faster. I think that should also be a
followup, if needed.

MozReview-Commit-ID: Jf2iGvLC5de
2018-02-27 12:39:35 +01:00
Emilio Cobos Álvarez ac779f9004 Bug 1439395: Avoid leaving an stale restyle root if there's no servo data on it. r=bholley
If a single element is inserted in the document, from the lazy frame
construction path we mark it as the restyle root.

It has no restyle data, and we weren't calling ClearServoData when its parent
was being removed from ClearServoDataFromSubtree, thus leaving the stale restyle
root.

MozReview-Commit-ID: GY812b8tDk0

--HG--
extra : rebase_source : e6d1035e7d3a72b931aa53ac8dcbf7db58982479
2018-02-26 18:50:19 +01:00
Emilio Cobos Álvarez f3fc2e4852 Bug 1439395: Clear Servo data only when the DOM is in a consistent state. r=bholley
We used to do it this way effectively until I fixed it in bug 1400936.

Per the list of fuzz bugs that bug has in the "Depends on" field, some of those
without a super-clear fix, and others that aren't listed in there, and all the
complexity we had to deal with while receiving restyle requests mid-unbind, etc,
I think this is the right call.

This clears data on RestyleManager::ContentRemoved for non-anonymous nodes, and
on UnbindFromTree for subtrees rooted at anonymous nodes.

This will hopefully yield enforceable invariants.

MozReview-Commit-ID: IMwX5Uh1apv

--HG--
extra : rebase_source : 6cafc4499c9b80cbc96f1c4d1496e524f59e3c4d
2018-02-19 14:46:38 +01:00
Emilio Cobos Álvarez 7dffe29d8f Bug 1432490: Make nsComputedDOMStyle::GetStyleContext / GetStyleContextNoFlush not take a presShell. r=bz
Everyone calls them with the shell of the current composed document, and this
allows the multi-presShell stuff to just be in UpdateCurrentStyleSources /
DoGetStyleContextNoFlush.

The only reason we need to use OwnerDoc()->GetShell() instead of the composed
doc in GetStyleContext / GetStyleContextNoFlush is Element::GetBindingURL, which
does expect to get the binding URL for stuff outside of the composed doc (and
changing that gave me a useless browser).

That's technically a behavior change on the cases that used to pass nullptr, but
I think all callers are fine with that. I could also just add a special function
for that particular case, it may be worth it.

MozReview-Commit-ID: 2XlnkgdgDCK
2018-02-25 02:23:59 +01:00
Brian Grinstead 9c65b7b0cb Bug 1443948 - Remove NODE_FORCE_XBL_BINDINGS;r=bz
This was used to attach a binding to a cloned node before it got inserted
into the doc. This is no longer used in the browser chrome, so this patch
removes the feature to prevent future usage and simplify dom code.

MozReview-Commit-ID: KnkHWJ8oQig

--HG--
extra : rebase_source : 52c175afbbfc0cf5cd33c39b6f0577452a90f1a0
2018-03-12 13:24:10 -07:00
Hiroyuki Ikezoe 467ed67c74 Bug 1388557 - Call RequestRestyle(Layer) in the case where we attach orphaned animating element to the document. r=birtles
MozReview-Commit-ID: IIcyYFROqDx

--HG--
extra : rebase_source : f096635d400528660d5243d2884d125e7b623db2
2018-02-21 10:13:13 +09:00
Hiroyuki Ikezoe 4606fafb88 Bug 1417354 - Clear pending restyle requests for the element and its pseudos where the element is detached from the document. r=hiro
MozReview-Commit-ID: GLHjtHNusuB

--HG--
extra : rebase_source : aaf05c7773d11cf61a28803d4ba70546c2b98e27
2018-02-21 07:00:20 +09:00
Hiroyuki Ikezoe 1b0cba9367 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr

--HG--
extra : rebase_source : 8d2a917eb62cf341e4e1810451fd01c01dbc3bad
2018-02-21 07:00:10 +09:00
Andreea Pavel 4f8782dc6e Backed out changeset 3ab4e934cd7f (bug 1439395) for crashtest failures at tests/layout/style/crashtests/1400936-2.html on a CLOSED TREE 2018-02-20 17:43:31 +02:00
Emilio Cobos Álvarez eb044841b5 Bug 1439395: Clear Servo data only when the DOM is in a consistent state. r=bholley
We used to do it this way effectively until I fixed it in bug 1400936.

Per the list of fuzz bugs that bug has in the "Depends on" field, some of those
without a super-clear fix, and others that aren't listed in there, and all the
complexity we had to deal with while receiving restyle requests mid-unbind, etc,
I think this is the right call.

This clears data on RestyleManager::ContentRemoved for non-anonymous nodes, and
on UnbindFromTree for subtrees rooted at anonymous nodes.

This will hopefully yield enforceable invariants.

MozReview-Commit-ID: IMwX5Uh1apv
2018-02-20 15:19:03 +01:00
Tooru Fujisawa 9a81f2437f Bug 1414674 - Do not enter the compartment of the target window when calling KeyframeEffect and KeyframeEffectReadOnly constructor via Xray. r=bz,birtles
KeyframeEffect and KeyframeEffectReadOnly constructors can run in the caller
compartment, which is okay because the current compartment is used in the
following places and all of them are safe:

1. GlobalObject::CallerType(), that is ultimately passed to
   nsDocument::IsWebAnimationsEnabled in KeyframeEffectParamsFromUnion,
   to decide whether to copy mIterationComposite/mComposite to
   KeyframeEffectParams.

   GlobalObject::CallerType() can now be different than the target window's one,
   if the caller has the system principal and the target is web content, and
   in that case nsDocument::IsWebAnimationsEnabled there always returns true
   while Web Animations can be disabled on web content.

   honoring the mIterationComposite/mComposite properties is OK, since it just
   changes the animation behavior, and this is disabled by default until
   remaining spec issues are resolved.

2. GlobalObject::Context(), that is ultimately passed to
   KeyframeUtils::GetKeyframesFromObject and used while extracting information
   from passed-in keyframe object, with iterable/iterator protocols.

   Performing that operation in the caller side is okay, since the same thing
   can be done on caller, and the operation doesn't perform any GCThing
   allocation on the target window global.
2018-02-17 17:21:13 +09:00
Tooru Fujisawa d70a10cbd8 Backed out changeset c3f16a179c93 (bug 1414674) 2018-02-18 01:24:08 +09:00
Tooru Fujisawa d58a217b1c Bug 1414674 - Do not enter the compartment of the target window when calling KeyframeEffect and KeyframeEffectReadOnly constructor via Xray. r=bz,birtles
KeyframeEffect and KeyframeEffectReadOnly constructors can run in the caller
compartment, which is okay because of the following reasons:

1. The target window global is used for most operation:
     * KeyframeEffectReadOnly::ConstructKeyframeEffect uses the target window
       global instead of current global.
     * KeyframeEffectParamsFromUnion which receives `aGlobal.CallerType()`

   In Xray case, Web Animations API can be disabled on web content
   (currently disabled on beta/release by default), and in that case some API
   won't work even it's triggered from WebExtensions, but it should be fine.

2. GetKeyframesFromObject is executed in the caller's compartment to access
   the passed-in JSObject that is keyframe, with iterable/iterator protocols.
   This operation doesn't perform any GCThing allocation on the target window
   global.
2018-02-17 17:21:13 +09:00
Bas Schouten 628d3b7134 Bug 1437492 - Part 2: Based on profile data, use the simple-matrix optimized matrix class in some places. r=mattwoodrow
MozReview-Commit-ID: EBRrGXc2wEj
2018-02-17 00:43:38 +01:00
Boris Zbarsky 3660ff5632 Bug 1436508 part 13. Remove nsIDOMMutationEvent constants. r=masayuki
MozReview-Commit-ID: Anl5QJZknJL
2018-02-09 11:17:10 -05:00
Cameron McCormack d02e54b79b Bug 1430014 - Part 5: Stop building old style system classes when MOZ_OLD_STYLE is not defined. r=xidorn
MozReview-Commit-ID: CIHyPdF7Exl

--HG--
extra : source : 78a2fc781eead47af3923efcde58569c5d882ab1
2018-02-01 15:04:04 +11:00
Cameron McCormack cc7db5c40c Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN

--HG--
extra : source : de22d220635f8c059834b76f769d5215ab1a8b5b
2018-02-01 15:04:04 +11:00
Boris Zbarsky 65bf16222e Bug 1434399 part 19. Remove nsIXULDocument. r=mystor
MozReview-Commit-ID: 9jQu4sjOhb2
2018-01-31 14:49:29 -05:00
Cosmin Sabou 94617f91cf Backed out 19 changesets (bug 1434399) for build bustages on nsXULPopupManager.cpp on a CLOSED TREE
Backed out changeset 499f6dffd9cb (bug 1434399)
Backed out changeset 018290612415 (bug 1434399)
Backed out changeset f4c3179f8e59 (bug 1434399)
Backed out changeset f3ce2826b857 (bug 1434399)
Backed out changeset 6d2391af01dd (bug 1434399)
Backed out changeset dc98ed8c609a (bug 1434399)
Backed out changeset 8eaa395d6200 (bug 1434399)
Backed out changeset 19b18f4a53be (bug 1434399)
Backed out changeset 8ff378a6e96a (bug 1434399)
Backed out changeset 60fe73be1a26 (bug 1434399)
Backed out changeset faefb2751fdc (bug 1434399)
Backed out changeset 55cdf8b3a959 (bug 1434399)
Backed out changeset b578cc8efb92 (bug 1434399)
Backed out changeset 54cc4cb2fca1 (bug 1434399)
Backed out changeset f5343ef34d6c (bug 1434399)
Backed out changeset 8fb30e066cbd (bug 1434399)
Backed out changeset 21341b656b0f (bug 1434399)
Backed out changeset fab1f8b087a2 (bug 1434399)
Backed out changeset 55250a54852a (bug 1434399)
2018-01-31 22:45:26 +02:00
Boris Zbarsky 95e268e32f Bug 1434399 part 19. Remove nsIXULDocument. r=mystor
MozReview-Commit-ID: 9jQu4sjOhb2
2018-01-31 14:49:29 -05:00
Boris Zbarsky 7c83759ad4 Bug 1428610 part 2. Change Element::GetSMILOverrideStyle to return nsDOMCSSAttributeDeclaration. r=emilio
MozReview-Commit-ID: 9R6ywUEKagK
2018-01-30 14:48:26 -05:00
Ashish 91ad3c0fa5 Bug 1430450 - Remove Logically dead code. r=emilio
MozReview-Commit-ID: Jk2CfMZOQPG
2018-01-30 10:37:51 +01:00
Boris Zbarsky f60fd673d6 Bug 1432186 part 19. Remove the nsIDOMNode::*_NODE constants. r=mccr8
MozReview-Commit-ID: KvKjeKIOB9K
2018-01-29 23:10:53 -05:00
Kris Maglione b3cac601f6 Bug 1432966: Sanitize HTML fragments created for chrome-privileged documents. r=bz f=gijs
This is a short-term solution to our inability to apply CSP to
chrome-privileged documents.

Ideally, we should be preventing all inline script execution in
chrome-privileged documents, since the reprecussions of XSS in chrome
documents are much worse than in content documents. Unfortunately, that's not
possible in the near term because a) we don't support CSP in system principal
documents at all, and b) we rely heavily on inline JS in our static XUL.

This stop-gap solution at least prevents some of the most common vectors of
XSS attack, by automatically sanitizing any HTML fragment created for a
chrome-privileged document.

MozReview-Commit-ID: 5w17celRFr

--HG--
extra : rebase_source : 1c0a1448a06d5b65e548d9f5362d06cc6d865dbe
extra : amend_source : 7184593019f238b86fd1e261941d8e8286fa4006
2018-01-24 14:56:48 -08:00
Boris Zbarsky e38dec29f4 Bug 1431964 part 8. Remove nsIDOMMozNamedAttrMap. r=mccr8
MozReview-Commit-ID: C7z0hcjC0Tg
2018-01-20 20:57:26 -05:00
Bobby Holley f458d41b8e Bug 1398119 - Rearrange NoteDirtyElement for faster bailouts on the same restyle root. r=emilio
This eliminates ~90% of the time spent in NoteDirtyElement on this testcase.

MozReview-Commit-ID: Lm5hf7QRiOK
2018-01-12 12:05:40 -08:00
Cameron McCormack 8731df3c34 Bug 1427512 - Part 29: Remove nsIDOMCSSDeclaration. r=xidorn,jryans,bz
This removes the .style attribute from nsIDOMSVGElement, but there
shouldn't be any users of that.

MozReview-Commit-ID: LOBSFo85Utn
2018-01-11 16:17:57 +08:00
Bogdan Tara 73b4d6b26a Merge inbound to mozilla-central r=merge a=merge 2018-01-09 00:05:31 +02:00
John Dai d480d5e221 Bug 1419662 - Fix incorrect custom element type in CustomElementData. f=echen, r=smaug 2018-01-07 18:45:00 +02:00
Edgar Chen 821531562b Bug 1428244 - Part 2: Set correct oldValue/newValue for the attributeChangedCallback which is fired from style attribute change; r=smaug
MozReview-Commit-ID: 4l6XuCUHUh8

--HG--
extra : rebase_source : 23d825684dbd47ca125cd8468d2c8d22425e3cdf
2017-12-15 11:52:07 -06:00
Emilio Cobos Álvarez 1cda1ad876 Bug 1427511: Make GetFlattenedTreeParent more straight-forward. r=smaug
Now that accessing nsIContent slots is not a blob of virtual function calls, we
should be able to unify logic here, and speed up the not-so-rare case for
chrome, while keeping the usual case fast.

MozReview-Commit-ID: 87iY5Cbhx4T
2018-01-02 18:00:25 +01:00
Emilio Cobos Álvarez fd120385c7 Bug 1427001: Move SetXBLBinding and SetShadowRoot to Element. r=smaug
MozReview-Commit-ID: 6FL1HR2Isa
2017-12-31 13:45:58 +01:00
Boris Zbarsky 04324f18ad Bug 1424474 part 3. Make sure that we only pass non-system subject principals to setters/methods that later use that principal for loading security checks. r=kmag
MozReview-Commit-ID: IjUEG5xwn5
2017-12-20 17:43:18 -05:00
Emilio Cobos Álvarez 87520df9da Bug 1426503: Remove DestInsertionPoints stuff. r=smaug
MozReview-Commit-ID: KtaEqZn9GH3

--HG--
extra : rebase_source : 54b76e2437cd3031d12973b7021ba740474f07e3
2017-12-20 22:08:15 +01:00
Olli Pettay 2acfb90235 Bug 1422092 - Revert the changes made by bug 1399603. r=mrbkap 2017-12-10 14:52:49 -05:00
Brad Werth 2b55f1e881 Bug 1409083 Part 2: Stub webidl definitions to support flex container/item properties. r=smaug
MozReview-Commit-ID: KwNykBkJfPi

--HG--
extra : rebase_source : 6b858035d6d2850afbe310658a65a6f7dd2baa8f
2017-11-15 13:20:35 -08:00
Phil Ringnalda 9d10710b26 Backed out 5 changesets (bug 1409083) for eslint failures
Backed out changeset 9de539be3665 (bug 1409083)
Backed out changeset 660e79af5c93 (bug 1409083)
Backed out changeset 574cd09aad41 (bug 1409083)
Backed out changeset b21b06a24705 (bug 1409083)
Backed out changeset b21e6a795493 (bug 1409083)
2017-12-07 19:47:09 -08:00
Brad Werth c9a6a8be69 Bug 1409083 Part 2: Stub webidl definitions to support flex container/item properties. r=smaug
MozReview-Commit-ID: KwNykBkJfPi

--HG--
extra : rebase_source : 0e879bc306ca2d17d7e5412bf7d76e8af248b2f2
2017-11-15 13:20:35 -08:00
Emilio Cobos Álvarez 3125691c3f Bug 1422528: Inline and make stylo take the rare path for GetClasses directly. r=bz
Servo already checks MayHaveClass. This should improve Gecko performance, too.

MozReview-Commit-ID: KpVOVsKh6pe

--HG--
extra : rebase_source : b0384546b1430915a18536b6ee8b29a936599873
2017-12-02 21:45:33 +01:00
Emilio Cobos Álvarez 50dad1e139 Bug 1422529: Make some trivial element methods final and inline. r=bz
Give the compiler the chance to devirtualize / inline a bit more.

MozReview-Commit-ID: D5u2AxaZ7a1

--HG--
extra : rebase_source : e235b8b60322a113f459067e2762ea237cb26ec5
2017-12-02 22:13:31 +01:00
Edgar Chen 9f4324f41e Bug 1416999 - Remove document.registerElement; r=smaug
MozReview-Commit-ID: HiX07Vbljhk

--HG--
rename : dom/base/test/chrome/registerElement_ep.js => dom/base/test/chrome/custom_element_ep.js
rename : dom/base/test/chrome/frame_registerElement_content.html => dom/base/test/chrome/frame_custom_element_content.html
rename : dom/base/test/chrome/test_registerElement_content.xul => dom/base/test/chrome/test_custom_element_content.xul
rename : dom/base/test/chrome/test_registerElement_ep.xul => dom/base/test/chrome/test_custom_element_ep.xul
rename : dom/base/test/test_document_register.html => dom/base/test/test_custom_element.html
rename : dom/tests/mochitest/webcomponents/test_document_register.html => dom/tests/mochitest/webcomponents/test_custom_element_define.html
rename : dom/tests/mochitest/webcomponents/test_document_register_parser.html => dom/tests/mochitest/webcomponents/test_custom_element_define_parser.html
rename : dom/tests/mochitest/webcomponents/test_template_custom_elements.html => dom/tests/mochitest/webcomponents/test_custom_element_template.html
extra : rebase_source : cd2ebf166e8bd9c49910387c9136d7b83b51598d
2017-11-16 12:23:15 +08:00
Boris Chiou 00c502e025 Bug 1408310 - Part 4: Store mIsServo into DOMMatrixReadOnly. r=heycam
So we can know which backend we are using.

MozReview-Commit-ID: Jfpt82lv0hw

--HG--
extra : rebase_source : 3b0c130f70430589f7823439435ab3f0a6459ebe
2017-11-14 16:47:07 +08:00
Edgar Chen f6cde405ab Bug 1419310 - Part 2: Enqueue an attributeChanged reaction when mutating the value of an observed attribute to the same value; r=smaug
MozReview-Commit-ID: GyRL6Xt8HWt

--HG--
extra : rebase_source : 657cdf6dcad0f886f99a2e466a19cfb45c9195dc
2017-11-22 23:48:34 +08:00
Edgar Chen b3ea0a20d4 Bug 1419310 - Part 1: Remove nsContentUtils::GetElementDefinitionIfObservingAttr; r=smaug
MozReview-Commit-ID: 9yMrwDC0kYr

--HG--
extra : rebase_source : 9fb1da4986eb2af50746ae432088d3788b99570c
2017-11-23 00:09:03 +08:00
Cosmin Sabou a5d613086a Merge mozilla-inbound to mozilla-central r=merge a=merge 2017-11-23 11:42:46 +02:00
Emilio Cobos Álvarez 72a1d3ff81 Bug 1419554: Teach the restyle root code about elements outside of the flattened tree. r=heycam
The textarea is inserted under a Shadow host, with no matching insertion point,
so its flattened tree parent node is null.

We're treating this case in the restyle root code as "the parent is the
document", but that's very wrong.

MozReview-Commit-ID: JlzUMRIYaYZ

--HG--
extra : rebase_source : feeaf7a7333097aa87b35358172472790f6c74a7
2017-11-22 14:15:34 +01:00
Kris Maglione 0af54ad118 Bug 1415352: Part 4a - Capture subject principal in innerHTML setters. r=bz
This is necessary in order to capture the correct triggering principal for
inline <style> nodes.

MozReview-Commit-ID: 9EaD40vRNkH

--HG--
extra : rebase_source : cdd4a730f24dc57783edcf666ae803379c0d6173
2017-11-07 13:48:58 -08:00
Kris Maglione 1c66345e09 Bug 1415352: Part 1a - Pass subject principal through to ParseAttribute. r=bz
This is necessary in order to parse style attributes using the subject
principal of the caller, rather than defaulting to the page principal.

MozReview-Commit-ID: GIshajQ28la

--HG--
extra : rebase_source : 5dba46f61d70ec647cae16383b62961ac72d2f47
2017-11-01 20:35:52 -07:00
Brad Werth c9815751c2 Bug 1414920 Part 1: Add chrome-only API getElementsWithGrid(), for devtools. r=dholbert,smaug
MozReview-Commit-ID: L44Q95wEqDA

--HG--
extra : rebase_source : d3892120516b30b1ee090ed7b9f5a108313d0532
2017-10-31 12:05:02 -07:00
Olli Pettay cc862266e9 Bug 1416450, ensure IntersectionObservers are deleted when adopting elements, r=mrbkap
--HG--
extra : rebase_source : c8c1300c4d1333c3b37725e1d8b31464cd3b30a7
2017-11-19 16:22:54 +02:00
Edgar Chen 6d7d215d0e Bug 1396620 - Part 2: Fix compartment mismatch crash when doing old prototype swizzling for custom element; r=smaug
MozReview-Commit-ID: GMxikyKJ54A

--HG--
extra : rebase_source : 594ab2727e085e4b1e81d2ed5915b230b7c96365
2017-10-16 10:14:56 +08:00
John Dai a710f595fa Bug 1406325 - Part 5: Implement try to upgrade. f=echen, r=smaug 2017-11-14 19:25:00 +08:00
John Dai d1400ac8b1 Bug 1406325 - Part 4: Use mType for LookupCustomElementDefinition and also removing parts of v0. f=echen, r=smaug 2017-11-14 19:23:00 +08:00
John Dai 4a4005281a Bug 1406325 - Part 1: Make sure custom element state is custom before sending callback. f=echen, r=smaug 2017-11-03 02:52:00 +08:00
Jonathan Watt 62787012f8 Bug 1417365 - Unified build issues in dom/base. r=baku 2017-10-26 10:40:12 +01:00
Chris Peterson edb82b8131 Bug 1416164 - Replace NS_POSTCONDITION with MOZ_ASSERT. r=froydnj
MozReview-Commit-ID: 9K3Ksf36uxr

--HG--
extra : rebase_source : c5574794ae0e0ce5e756bdbcc2601896d6916002
2017-11-04 22:48:48 -07:00
Chris Peterson feb58d9d37 Bug 1416164 - Replace NS_NOTYETIMPLEMENTED with MOZ_ASSERT_UNREACHABLE. r=froydnj
MozReview-Commit-ID: B5TZB3v52wY

--HG--
extra : rebase_source : 56bef4eead24901191f190e31d2841710097cdcf
2017-10-25 00:37:02 -07:00
btian bd65dcd351 Bug 1411878 - Support Element.shadowRoot and Element.assignedSlot / TextNode.assignedSlot on closed shadow root r=mrbkap
MozReview-Commit-ID: DSiGN7h5ErY

--HG--
extra : rebase_source : 025d3100cff11849d503fd86a312cb405b6cb32f
2017-11-02 16:53:44 +08:00
Emilio Cobos Álvarez 93ceaeb662 Bug 1415353: Don't allow creating shadow roots for elements with XBL bindings. r=smaug
It breaks all sorts of invariants.

MozReview-Commit-ID: IGUDp91q0sF

--HG--
extra : rebase_source : 6f7da01118b00cdab54e652505b8b31c66f71910
2017-11-08 14:09:33 +01:00
Ben Tian a4fe26d361 Bug 1404842 - P1: Implement Element.attachShadow and Element.slot, r=smaug
MozReview-Commit-ID: KWy8mDqEw4o

--HG--
extra : rebase_source : d8378628b8f7028f6b3600c5abd20dc4fc6a9ccb
2017-10-19 14:44:35 +08:00
Nicholas Nethercote 8ad99dd7fa Bug 1411893 - Introduce nsStaticAtom. r=emilio,froydnj.
It's a sub-class of nsAtom, useful for cases where you know you are dealing
exclusively with static atoms. The nice thing about it is that you can use
raw nsStaticAtom pointers instead of RefPtr<>. (In fact, the AddRef/Release
implementations ensure that we'll crash if we use RefPtr<nsStaticAtom>.)

MozReview-Commit-ID: 4Q6QHX5h44V

--HG--
extra : rebase_source : e4237f85b4821b684db0ef84d1f9c5e17cdee428
2017-10-27 10:31:13 +11:00
Emilio Cobos Álvarez 4deb3bee3b Bug 1411754: Rename PresShell::DestroyFramesFor to DestroyFramesForAndRestyle. r=mats
I'm drive-by removing the comment about the frame tree state because I looked
into it, and the answer is: we properly restore it.

The gotcha is that we retain it too much, indeed, we retain it enough that it
can leak. See bug 1397239.

MozReview-Commit-ID: LP6bXkduEZ4

--HG--
extra : rebase_source : f7e18fc35e48b75c07fcc84b939614d379926828
2017-10-25 23:12:25 +02:00
Emilio Cobos Álvarez dd634e3981 Bug 1411612: Kill nsINode::eCONTENT. r=bz
MozReview-Commit-ID: ESlOqlwhcHI

--HG--
extra : rebase_source : fe6a02469dca1e50c24ba166e15e39160ab4551b
2017-10-25 17:19:11 +02:00
Emilio Cobos Álvarez 7511726711 Bug 1411478: remove primary frame check which is incorrect in <frame> child of a <frameset>. r=bz
We could also check whether it is a subdocument frame or what not (not that
we're going to render anything down there). But at that point the value of
avoiding the FFI call starts diluting.

MozReview-Commit-ID: BBIv0O3fFuk

--HG--
extra : rebase_source : 663ead4fe3df83ea1d929b8726c8c1ab8b05c06a
2017-10-25 10:33:59 +02:00
Emilio Cobos Álvarez 827d0b7cd8 Bug 1405547: Account for mid-unbind conditions in the BitsArePropagated assertion too. r=heycam
I'm not adding a crashtest because the one provided is kinda unreliable, and I
suck and I wasn't able to find a better one.

MozReview-Commit-ID: CmaF0NO4Dff

--HG--
extra : rebase_source : 5d324499b1a258f9d73266c06adbc46ae98db896
2017-10-21 12:37:52 +02:00
Emilio Cobos Álvarez 5fe1768dec Bug 1407952: Use stylo for Element::Closest. r=heycam
MozReview-Commit-ID: 3H2piFT2CfF
2017-10-14 14:04:39 +02:00
Sebastian Hengst a46c92c8b7 Backed out changeset f66cb1530f75 (bug 1407952) for build failure (bug 1408622). r=backout a=backout
MozReview-Commit-ID: 3h4oDHbvmes

--HG--
extra : amend_source : 9e9e1bb348b7e2434f3388cf97580172348e769a
2017-10-14 12:32:50 +02:00
Emilio Cobos Álvarez c3d1112763 Bug 1407952: Use stylo for Element::Closest. r=heycam
MozReview-Commit-ID: 3H2piFT2CfF

--HG--
extra : rebase_source : 8e66d9bb15e91412431178324b37c94fbc20b773
2017-10-12 11:42:17 +02:00
Kris Maglione 4275cd1039 Bug 1406278: Part 1 - Pass subject principal to SetAttribute and friends. r=bz
In order to tailor certain security checks to the caller that is attempting to
load a particular piece of content, we need to be able to attach an
appropriate triggering principal to the corresponding requests. Since most
HTML content is loaded based on attribute values, that means capturing the
subject principal of the caller who sets those attributes, which means making
it available to AfterSetAttr hooks.

MozReview-Commit-ID: BMDL2Uepg0X

--HG--
extra : rebase_source : 25e438c243700a9368c393e40e3a6002d968d6c8
2017-10-09 14:33:38 -07:00
Ehsan Akhgari 7df8d7beeb Bug 1406493 - Remove the rest of the attribute deprecation warnings; r=baku f=annevk 2017-10-09 18:26:11 -04:00
Ehsan Akhgari c148b7bfeb Bug 1404022 - Remove the deprecation warnings for Element.setAttribute/setAttributeNS; r=baku 2017-10-09 18:26:04 -04:00
Nicholas Nethercote d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Sebastian Hengst b834f0d177 merge autoland to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 7Ez95T2ivfR
2017-10-07 10:37:39 +02:00
Tobias Schneider ec303fba5c Bug 1399603 - [intersection-observer] Stop observing a target when intersection root is deleted. r=mrbkap
--HG--
extra : rebase_source : 2a24e8f42eb493ce8af1b2321cdec422080cf7d0
2017-10-06 07:39:54 -07:00
Tobias Schneider 7c9837e0e8 Bug 1316277 - Move intersection observer list from DOMSlots to a property. r=mrbkap
--HG--
extra : rebase_source : fcaa7d31e0a99ad666e0091c56cd9858e3afcc4b
2017-10-05 20:42:55 -07:00
Cameron McCormack 48db8f11a0 Bug 1406275 - Don't assert the status of dirty bits in an unbinding subtree when choosing a new restyle root. r=emilio
MozReview-Commit-ID: 7EVGjjCoF6p

--HG--
extra : rebase_source : daed5fccd763b585ed69b8dc48815dfe523fb39a
2017-10-06 17:26:07 +08:00
Emilio Cobos Álvarez 4eb5336c9b Bug 1404897: Implement Element.matches using stylo. r=heycam
MozReview-Commit-ID: 7nxYVcweu0W

--HG--
extra : rebase_source : e660504ba8ec2be7d678049000cb76018dc4ba5e
2017-10-02 18:14:15 +02:00
Sebastian Hengst d90f0a5f6d Backed out changeset cfc393773f0d (bug 1404897) 2017-10-04 12:55:11 +02:00
Emilio Cobos Álvarez ff89c00970 Bug 1404897: Implement Element.matches using stylo. r=heycam
MozReview-Commit-ID: 7nxYVcweu0W

--HG--
extra : rebase_source : 4c816bb774ea7c67262a1e73277e3dbaeec060e8
2017-10-02 18:14:15 +02:00
Sebastian Hengst 000d2b584e Backed out changeset 3833f3700021 (bug 1404897) 2017-10-04 11:24:26 +02:00
Emilio Cobos Álvarez aaadd28724 Bug 1404897: Implement Element.matches using stylo. r=heycam
MozReview-Commit-ID: 7nxYVcweu0W
2017-10-04 11:01:42 +02:00
Wes Kocher 382a7d90d6 Merge inbound to central, a=merge
MozReview-Commit-ID: CvJ9hmTQBcR
2017-10-02 16:22:37 -07:00
John Dai 25f8ec6929 Bug 1121994 - Implement adopted callback for custom elements. r=smaug 2017-10-02 00:42:00 -04:00
Emilio Cobos Álvarez 238669d97e Bug 1404134: Drop assertion that can be hit mid-unbind. r=heycam
On that test-case we have something like:

  <body restyle-root>
    <element dirty-descendants>
      <element-2>
    </element>
  </body>

If we change the state of element-2 after unbinding the <body>, which clears the
body's flags, but not the children's flags, there'll be no restyle root, even
though our parent has the relevant flags anyway.

This doesn't compromise correctness in any way, so I'd rather drop the assertion
that shuffle a bunch of stuff so it holds.

MozReview-Commit-ID: KFVTkXclKST

--HG--
extra : rebase_source : 089049ba8d5458370eb4175423019a6cd170700c
2017-10-02 08:50:20 +02:00
Wes Kocher 134e495909 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 6RdWW73Lc0A
2017-09-28 17:16:12 -07:00
Thomas Wisniewski cdaa875696 Bug 1389274 - Correct the behavior of Element.scrollIntoView to match the draft spec and pass web platform tests; r=annevk,bkelly
MozReview-Commit-ID: 3is36wstsdb

--HG--
extra : rebase_source : f4a7598aad5b04a2dcaf40d09ee7733b4d6982f6
2017-09-28 16:57:24 -04:00
Emilio Cobos Álvarez d77d8cd43e Bug 1403712: Clear the restyle root at the end of UnbindFromTree too. r=bholley
MozReview-Commit-ID: 7swfspMWUe6
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-28 22:24:08 +02:00
Emilio Cobos Álvarez b5ab9820ca Bug 1403712: Make some assertions not assert for conditions that may happen mid-unbind. r=bholley
MozReview-Commit-ID: DNSphdMismy
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-28 22:24:08 +02:00
Sebastian Hengst 8b3a2fc88e Backed out changeset 8a970e561fe1 (bug 1389274) for unexpected passes of web-platform-test /cssom-view/scrollIntoView-shadow.html. r=backout 2017-09-28 19:46:03 +02:00
Thomas Wisniewski 86f49170db Bug 1389274 - Correct the behavior of Element.scrollIntoView to match the draft spec and pass web platform tests; r=annevk,bkelly
MozReview-Commit-ID: 3is36wstsdb

--HG--
extra : rebase_source : f063ca918d30998dc03c0c73206db495257758a2
2017-09-27 12:23:33 -04:00
Nicholas Nethercote dfd3b7e7aa Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ

--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1
2017-09-26 08:33:21 +10:00
Jessica Jong 9c73bf3115 Bug 1334044: Replace detached callback (v0) with disconnected callback (v1). r=smaug
MozReview-Commit-ID: 8jxFK1fze15
2017-09-26 13:56:11 +08:00
Jessica Jong dea7ea236c Bug 1334043 - Part 2: Make nsContentUtils::EnqueueLifecycleCallback static. r=smaug
We make nsContentUtils::EnqueueLifecycleCallback static so that it can be
called without a window object. To achive this, we also make
CustomElementReaction not taking a CustomElementRegistry in the constructor,
as it can call Upgrade statically.

MozReview-Commit-ID: 7xUvK0q7Eri
2017-09-26 13:56:00 +08:00
Jessica Jong dca1a68e1a Bug 1334043 - Part 1: Replace attached callback (v0) with connected callback (v1). r=smaug
MozReview-Commit-ID: 3qQh4viyvBX
2017-09-26 13:55:58 +08:00
Matt Woodrow d58801ad81 Bug 1402197 - Add an option for GetTransformToAncestor to stop at stacking contexts and displayport. r=mstange 2017-09-26 15:57:55 +13:00
Jessica Jong 60f43f2bbd Bug 1392970 - Part 1: Make CustomElementDefinition ref-counted and put it in CustomElementData. r=smaug
MozReview-Commit-ID: DIQN3JFxkT8
2017-09-25 02:46:00 -04:00
Olli Pettay c80e124562 Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap
--HG--
extra : rebase_source : 2bb600ed1ffd35c195617a7eb70d0ba847a46898
2017-09-25 18:09:26 +03:00
Emilio Cobos Álvarez b77da4f194 Bug 1402684: Clear the servo data early, but the flags later, in UnbindFromTree. r=bholley
MozReview-Commit-ID: 5rRGKq39smW

--HG--
extra : rebase_source : 28e396c34f385ac789e12f36f2b09275097a09df
2017-09-24 19:16:10 +02:00
Emilio Cobos Álvarez 9cbe3caa2c Bug 1400936: Clear servo data after children data is cleared, and allow setting the root as the document if the tree is mid-unbind. r=bholley
This is the actual fix, and makes sure that the state is consistent even if we
notify of state changes on a parent during unbind.

We potentially do a bit more work than needed given we set the document as the
root in that case instead of the parent which could potentially be the root
itself, but that's not a huge deal I think, given these cases are rare.

If this happens to be a perf problem, we may want to just drop the root during
UnbindFromTree if aNullParent == true and the root is a descendant of `this`.

MozReview-Commit-ID: A9d2igM0hMr
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-23 04:53:36 +02:00
Emilio Cobos Álvarez 1d5e4078a2 Bug 1400936: Remove dumb null check. r=bholley
MozReview-Commit-ID: CLs2UcA8DF9
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-23 04:49:08 +02:00
Nicholas Nethercote e3c9cbb969 Bug 1401813 - Rename Null[C]String() as Void[C]String(). r=erahm.
XPCOM's string API doesn't have the notion of a "null string". But it does have
the notion of a "void string" (or "voided string"), and that's what these
functions are returning. So the names should reflect that.

--HG--
extra : rebase_source : 4e3f982e0873877174a08a25413595ff66f7d20e
2017-09-22 14:35:46 +10:00
Nicholas Nethercote 887dab3c3f Bug 1400624 - Fix a panic in Stylo memory reporting. r=heycam.
`MallocSizeOfOps::enclosing_size_of_op` is an `Option<>` type, and the panic in
question is caused by not providing a value in a case where it's needed for
measuring a HashSet.

HashMaps and HashSets are common enough that it makes sense to make
`enclosing_size_of_op` non-optional, which this patch does.

MozReview-Commit-ID: IB2aRuXHj8E

--HG--
extra : rebase_source : a6f593b718ca9e92a7a36ca7e2063a01e11c7e04
2017-09-18 13:54:30 +10:00
Boris Zbarsky f9854585c7 Bug 1398500 part 1. Switch the viewport scrollbar override stuff to use Element, not nsIContent. r=dholbert
MozReview-Commit-ID: FU0Afemj4XD
2017-09-15 23:45:05 -04:00
Andrea Marchesini baa04d619a Bug 1120178 - Migrate DOMError to DOMExtension in FileReader, IndexedDB, DOMRequest and so on, r=smaug 2017-08-06 20:47:00 +03:00
Emilio Cobos Álvarez 37df721a48 Bug 1397983: Synchronously bind/unbind XBL anonymous content from the bound content's Bind/UnbindFromTree. r=smaug
Doing it off a runnable makes the flattened tree inconsistent until that
runnable runs.

Also add an assert in frame construction that would've caught the first
only-unbind patch.

MozReview-Commit-ID: Hnua3aWSMHi

--HG--
extra : rebase_source : 2781e3b0a3f28b6b6a620902e7414dfe682fba51
2017-09-08 14:59:04 +02:00
Nicholas Nethercote 5a4fba2531 Bug 1397472 - Measure ElementData. r=bholley.
We already measure (in Rust code) the things hanging off it, but overlooked the
object itself. This patch adds measurement on the C++ side.

--HG--
extra : rebase_source : f7daf62b4ec43cdc95034ffcb2a3aca27d995ae3
2017-09-09 00:12:25 +10:00
Masayuki Nakano 4ce89d8f61 Bug 1369072 - part3: nsXBLPrototypeHandler::DispatchXBLCommand() should use controller of visible window r=smaug
With previous change, KeyboardEvent is dispatched even when invisible window
has focus.  However, nsRootWindow::GetControllerForCommand() returns controller
for focused window even when the window is invisible because it uses
nsFocusManager::GetFocusedDescendant() to retrieve focused window.

Perhaps, we can assume that users won't expect to do something with invisible
window when they type some keys.  Then, nsRootWindow::GetControllerForCommand()
should return controller for visible ancestor window if focused window is
invisible.

This patch makes nsFocusManager::GetFocusedDescendant() can return only visible
descendants.  However, it already has a bool argument.  Therefore, it should
have a flag instead of adding new flag.  Most changes of this patch is replacing
its callers.

Then, nsRootWindow::GetControllerForCommand() and nsRootWindow::GetControllers()
should have a bool flag if it should return controller(s) for visible window.
This patch adds a bool flag for it.  Fortunately, the interface isn't scriptable.

Finally, this patch makes nsXBLPrototypeHandler::DispatchXBLCommand() and
EventStateManager::DoContentCommandEvent() retrieve controller for visible
window since they are always handles user input.

MozReview-Commit-ID: GygttTHuKRm

--HG--
extra : rebase_source : 1341273c4606298cb9b890b9312d9f5c8a75d144
2017-09-07 22:54:49 +09:00
Hiroyuki Ikezoe 76c1b26215 Bug 1396041 - Disassociate element from document before destroying animations in UnbindFromTree(). r=birtles
This allows us to avoid posting animation-related restyles when removing
elements from the document tree.

MozReview-Commit-ID: CzN4S0DTUMa

--HG--
extra : rebase_source : a5b94d9ad5b1b2243abd0a5b188eec2b334df74d
2017-09-04 12:24:07 +09:00
Sebastian Hengst 4d0bad92dd merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: Gsw48p934sI
2017-09-02 10:54:44 +02:00
Xidorn Quan 1538ddc813 Bug 1395725 - Don't add children of <area> as servo restyle root. r=emilio
MozReview-Commit-ID: LI7Lv1aD3PJ

--HG--
extra : rebase_source : 84df4e5ba6493e0db69f6e11e2fee428af427252
extra : source : 099a87c95a58d141f393f17ff27ae8f06a89d413
2017-09-02 09:56:36 +10:00
Boris Zbarsky c73dc94931 Bug 1395701 part 2. Use a linked list, not a hashtable, for registering selection ranges on a node, so the registration will be faster. r=ehsan
Inserting/removing things into a doubly-linked list is much faster than doing
the same with a hashtable.  Selection ranges register themselves on their common
ancestor, but all we do with that in non-debug code is iterate all the ranges
registered.  A doubly-linked list works fine for that.

This adds three words to every range for the LinkedListItem members, but that
should be OK.
2017-09-01 11:13:47 -04:00
Sebastian Hengst 5b321f702f Backed out changeset dd99274926b8 (bug 1395701) for huaf in clipboard suite on Linux x64 asan and M(8), furthermore frequently asserting at LinkedList.h:455. r=backout 2017-09-01 19:29:06 +02:00
Boris Zbarsky dfd04e984c Bug 1395701 part 2. Use a linked list, not a hashtable, for registering selection ranges on a node, so the registration will be faster. r=ehsan
Inserting/removing things into a doubly-linked list is much faster than doing
the same with a hashtable.  Selection ranges register themselves on their common
ancestor, but all we do with that in non-debug code is iterate all the ranges
registered.  A doubly-linked list works fine for that.

This adds three words to every range for the LinkedListItem members, but that
should be OK.
2017-09-01 11:13:47 -04:00
Emilio Cobos Álvarez 3bbd915f86 Bug 1394935: Add a special case for marking something as dirty from invalidation code. r=bholley
Not sure about the name, or whether making it a static or not (a static seemed
slightly clearer, but nbd, feel free to bikeshed about it).

MozReview-Commit-ID: FHGmcoprN2Q

--HG--
extra : rebase_source : 2f68a55ee861d9eacc56004cb98470a518574626
2017-08-31 09:42:26 +02:00
Emilio Cobos Álvarez f081fc67ca Bug 1394935: Assert that if we find a common ancestor using the dirty bits, it is the actual common flattened tree ancestor. r=bholley
MozReview-Commit-ID: GRJ539QXS9e

--HG--
extra : rebase_source : cafa5d03d45d151b91ba6fece8203c42689bc7e8
2017-08-31 09:42:25 +02:00
Emilio Cobos Álvarez 88ab2a39d3 Bug 1394935: Fix a little typo in NoteDirtyElement. r=bholley
MozReview-Commit-ID: LMQlNcJjz80

--HG--
extra : rebase_source : 758ca710173fdd0d33f186beeebb3afe6b479ba8
2017-08-31 09:42:23 +02:00
Emilio Cobos Álvarez 74d8751ae0 Bug 1394935: Assert that we don't call into NoteDirtyElement with extra bits on the restyle root's parent chain. r=bholley
MozReview-Commit-ID: Kt5aZSRBvlE

--HG--
extra : rebase_source : 5a1f0176a72036285c6a2cac01dab6b470a6d3ff
2017-08-31 09:42:22 +02:00
Emilio Cobos Álvarez b25691f61e Bug 1394935: Assert that the content we're marking dirty is under the restyle root. r=bholley
This would also have catched the bug earlier.

MozReview-Commit-ID: 8uNXPnpXk6m

--HG--
extra : rebase_source : fd5fc46b868c93270369bea08aa850d16e3f9a5c
2017-08-31 09:42:21 +02:00
Sebastian Hengst ca3d97b658 merge mozilla-central to autoland. r=merge a=merge 2017-08-29 20:31:58 +02:00
Jessica Jong 18378d0e3a Bug 1334051 - Part 2: Invoke attributeChangedCallback only if attribute name is in the observed attribute list. f=jdai, r=smaug
We call attributeChangedCallback in two cases:
1. When any of the attributes in the observed attribute list has changed,
   appended, removed, or replaced.
2. When upgrading an element, for each attribute in element's attribute list
   that is in the observed attribute list.

MozReview-Commit-ID: LKUY5ibp9RI
* * *
Bug 1334051 - Part 3: Optimize attributeChanged callbacks. r=smaug
2017-08-27 23:25:00 -04:00
Jessica Jong acd0223fec Bug 1334051 - Part 1: Include namespace in attributeChangedCallback. f=jdai, r=smaug
Per spec [1], we should include namesapce in attributeChangedCallback argurment
list.

[1] https://html.spec.whatwg.org/multipage/custom-elements.html#concept-upgrade-an-element, step 3

MozReview-Commit-ID: 3K6SeIr3FJX
2017-08-27 23:25:00 -04:00
Emilio Cobos Álvarez 6a518dfd06 Bug 1394586: Unconditionally clear the restyle flags on Element::BindToTree. r=bholley
The failure here is a <script> that document.writes a whole HTML document, which
happens to have the Gecko style back-end.

Of all the elements written there, there's an <img> element which triggers a
load, which finishes and changes the state of the <img>, posting a restyle event
to its Gecko-backed restyle manager.

At that point, but before the refresh driver ticks, the element is unbound from
the tree, keeping the restyle root bits from the Gecko back-end.

Afterwards, the element is bound to a Servo-backed document, so
ClearRestyleFlagsIfGecko does nothing (since the document pointer is already
set, and points to a Servo-backed document).

Furthermore, it's inserted on a display: none subtree, so we never reach it
during the traversal to remove the flags.

Other alternative fixes for this same issue would be:

 * Clearing the Gecko restyle flags in UnbindFromTree. Gecko doesn't seem to
   prevent restyle roots from being outside of the document (it just does
   nothing when finding them on ProcessPendingRestyles), so it doesn't seem a
   very reliable solution.

 * Reorder the flag clearing to be before setting the document in BindToTree.
   Seems somewhat risky, and for no good reason.

MozReview-Commit-ID: B6iZKhGHc3A

--HG--
extra : rebase_source : eecb8d0fc078a8c1dc70161a266fa227e02bcd35
2017-08-29 16:12:58 +02:00
Bobby Holley 8879f39742 Bug 1392863 - Avoid calling ClearServoData with a null document. r=emilio
MozReview-Commit-ID: GyU2gzp0CaA
2017-08-26 12:28:29 -07:00
Bobby Holley 7271339b1e Bug 1392863 - Clean up bit clearing. r=emilio
MozReview-Commit-ID: HQm3wtBtWqT
2017-08-26 12:28:28 -07:00
Bobby Holley 7c69e2610d Bug 1392863 - Eliminate PropagateBitsFromParent. r=emilio
MozReview-Commit-ID: 8rs1mNHMJua
2017-08-26 12:28:26 -07:00
Nicholas Nethercote f2751f3072 Bug 1393636 (part 4) - Move ComputedValues measurements from nsStyleSizes to nsWindowSizes. r=heycam.
Another plumbing-only change, which is a precursor for the next patch.
ComputedValues are a Servo-only thing, so in order to use nsStyleSizes for both
Gecko and Servo, the ComputedValues sizes must be moved out.

MozReview-Commit-ID: BOnQSzzV0vC

--HG--
extra : rebase_source : 025c6161e509401a36525349083dd98bfda35621
2017-08-25 14:50:26 +10:00
Nicholas Nethercote 7e120ce35e Bug 1393636 (part 3) - Pass nsWindowSizes to more AddSizeOf*() functions. r=heycam.
This is a purely non-functional plumbing change. Instead of passing a
SizeOfState and an nsStyleSizes a bunch of places, we pass an nsWindowSizes,
which contains both of them.

This is a necessary precursor for the next patch.

MozReview-Commit-ID: Ek03wDM50rB

--HG--
extra : rebase_source : 7b05708bd21dc4e3812ea041647fa74bb413d0b9
2017-08-25 14:47:54 +10:00
Emilio Cobos Álvarez 1e6e97fed1 Bug 1389743: Only reconstruct frames synchronously from ContentRemoved when called from frame construction. r=mats
There's only one case of sync frame construction from ContentRemoved now, and
it's not on the element being removed, but on the whitespace siblings if needed,
and _only_ when they don't support lazy frame construction.

Basically, this switches all the RecreateFramesForContent calls to use
`aAsyncInsert` (which I changed to an enum class for readability), except when
we're already reframing.

Also, it switches ReframeTextIfNeeded to opt-in into lazy frame construction,
since it's used only when aFlags == CONTENT_REMOVED.

This allows to simplify the DestroyFramesFor API (which I'm happy to rename to
something more meaningful, since now it's something like
DestroyFramesForAndRecreateThemAsync), and do some other consistency cleanups.

A bunch of the ContentRemoved callsites were pretty random at passing
aAsyncInsert, and that was some kind of a mess. This patch ensures consistency,
and makes it impossible to do O(n^2) work when removing DOM nodes, which is
nice.

The underlying reason for this is explained in the description of bug 1377848,
and basically allows us to remove a bunch of Servo hacks on the longer term (a
few of them are going away already, yay!).

MozReview-Commit-ID: 2DrUTxGV8RX

--HG--
extra : rebase_source : f428d839a5482477dea22c0fea600d54f3e8799c
2017-08-23 09:58:57 +02:00
Bobby Holley 7210bd7226 Bug 1383332 - Track the restyle root and use it to do less work during the traversal. r=emilio
MozReview-Commit-ID: A8O3JOpsv4E
2017-08-22 21:19:24 -07:00
Nicholas Nethercote ac72ddb583 Bug 1390760 - Measure ServoComputedData::visited_style. r=bholley.
For the Obama wikipedia page, this covers about 85% of the unmeasured
ComputedValues structs. The about:memory output looks like this:

> +---2,443,648 B (02.41%) -- computed-values
> |   +--1,088,272 B (01.07%) -- dom
> |   +----945,744 B (00.93%) -- non-dom
> |   +----409,632 B (00.40%) -- visited

I'm not sure why some CVs are still being missed.

MozReview-Commit-ID: 1bYWwSi4ihn

--HG--
extra : rebase_source : 14e4bd36a54bbbd8fd265f559704bec5a5e3b154
2017-08-21 16:07:16 +10:00
Henri Sivonen 2607c163b1 Bug 1375701 - Atomize class attribute value in the parser in the innerHTML case. r=Ehsan
MozReview-Commit-ID: CKyGlzYS15e

--HG--
extra : rebase_source : 9ece88d9c85d98665413a7f9d730d7ff149d8486
2017-08-11 09:22:57 +03:00
Sebastian Hengst 14cf46a41a Backed out changeset fabf345eec6e (bug 1375701) for bustage at parser/html/nsHtml5String.h:143:3: bad implicit conversion constructor for 'nsHtml5String'. r=backout on a CLOSED TREE 2017-08-15 16:28:10 +02:00
Henri Sivonen 6815b2d2c7 Bug 1375701 - Atomize class attribute value in the parser in the innerHTML case. r=Ehsan
MozReview-Commit-ID: CKyGlzYS15e

--HG--
extra : rebase_source : a66d3d1659aec509c50f3ca641c0eb1d87151104
2017-08-11 09:22:57 +03:00
Milan Sreckovic 8ad3e52a49 Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in dom/*. r=overholt
MozReview-Commit-ID: B9YWmM3C1oX

--HG--
extra : rebase_source : d7c27de968295ee13ece8bda23798cb215d60a4b
2017-08-14 08:30:10 -04:00
Nicholas Nethercote 57c26c9834 Bug 1387956 - Overhaul ComputedValues measurement, and add style structs measurement. r=bholley.
This patch moves measurement of ComputedValues objects from Rust to C++.
Measurement now happens (a) via DOM elements and (b) remaining elements via
the frame tree. Likewise for the style structs hanging off ComputedValues
objects.

Here is an example of the output.

> ├──27,600,448 B (26.49%) -- active/window(https://en.wikipedia.org/wiki/Barack_Obama)
> │  ├──12,772,544 B (12.26%) -- layout
> │  │  ├───4,483,744 B (04.30%) -- frames
> │  │  │   ├──1,653,552 B (01.59%) ── nsInlineFrame
> │  │  │   ├──1,415,760 B (01.36%) ── nsTextFrame
> │  │  │   ├────431,376 B (00.41%) ── nsBlockFrame
> │  │  │   ├────340,560 B (00.33%) ── nsHTMLScrollFrame
> │  │  │   ├────302,544 B (00.29%) ── nsContinuingTextFrame
> │  │  │   ├────156,408 B (00.15%) ── nsBulletFrame
> │  │  │   ├─────73,024 B (00.07%) ── nsPlaceholderFrame
> │  │  │   ├─────27,656 B (00.03%) ── sundries
> │  │  │   ├─────23,520 B (00.02%) ── nsTableCellFrame
> │  │  │   ├─────16,704 B (00.02%) ── nsImageFrame
> │  │  │   ├─────15,488 B (00.01%) ── nsTableRowFrame
> │  │  │   ├─────13,776 B (00.01%) ── nsTableColFrame
> │  │  │   └─────13,376 B (00.01%) ── nsTableFrame
> │  │  ├───3,412,192 B (03.28%) -- servo-style-structs
> │  │  │   ├──1,288,224 B (01.24%) ── Display
> │  │  │   ├────742,400 B (00.71%) ── Position
> │  │  │   ├────308,736 B (00.30%) ── Font
> │  │  │   ├────226,512 B (00.22%) ── Background
> │  │  │   ├────218,304 B (00.21%) ── TextReset
> │  │  │   ├────214,896 B (00.21%) ── Text
> │  │  │   ├────130,560 B (00.13%) ── Border
> │  │  │   ├─────81,408 B (00.08%) ── UIReset
> │  │  │   ├─────61,440 B (00.06%) ── Padding
> │  │  │   ├─────38,176 B (00.04%) ── UserInterface
> │  │  │   ├─────29,232 B (00.03%) ── Margin
> │  │  │   ├─────21,824 B (00.02%) ── sundries
> │  │  │   ├─────20,080 B (00.02%) ── Color
> │  │  │   ├─────20,080 B (00.02%) ── Column
> │  │  │   └─────10,320 B (00.01%) ── Effects
> │  │  ├───2,227,680 B (02.14%) -- computed-values
> │  │  │   ├──1,182,928 B (01.14%) ── non-dom
> │  │  │   └──1,044,752 B (01.00%) ── dom
> │  │  ├───1,500,016 B (01.44%) ── text-runs
> │  │  ├─────492,640 B (00.47%) ── line-boxes
> │  │  ├─────326,688 B (00.31%) ── frame-properties
> │  │  ├─────301,760 B (00.29%) ── pres-shell
> │  │  ├──────27,648 B (00.03%) ── pres-contexts
> │  │  └─────────176 B (00.00%) ── style-sets

The 'servo-style-structs' and 'computed-values' sub-trees are new. (Prior to
this patch, ComputedValues under DOM elements were tallied under the the
'dom/element-nodes' sub-tree, and ComputedValues not under DOM element were
ignored.) 'servo-style-structs/sundries' aggregates all the style structs that
are smaller than 8 KiB.

Other notable things done by the patch are as follows.

- It significantly changes the signatures of the methods measuring nsINode and
  its subclasses, in order to handle the tallying of style structs separately
  from element-nodes. Likewise for nsIFrame.

- It renames the 'layout/style-structs' sub-tree as
  'layout/gecko-style-structs', to clearly distinguish it from the new
  'layout/servo-style-structs' sub-tree.

- It adds some FFI functions to access various Rust-side data structures from
  C++ code.

- There is a nasty hack used twice to measure Arcs, by stepping backwards from
  an interior pointer to a base pointer. It works, but I want to replace it
  with something better eventually. The "XXX WARNING" comments have details.

- It makes DMD print a line to the console if it sees a pointer it doesn't
  recognise. This is useful for detecting when we are measuring an interior
  pointer instead of a base pointer, which is bad but easy to do when Arcs are
  involved.

- It removes the Rust code for measuring CVs, because it's now all done on the
  C++ side.

MozReview-Commit-ID: BKebACLKtCi

--HG--
extra : rebase_source : 4d9a8c6b198a0ff025b811759a6bfa9f33a260ba
2017-08-11 16:37:33 +10:00
Bobby Holley 1cf62db957 Bug 1389681 - Move NoteDirty* to Element. r=emilio
MozReview-Commit-ID: KvKAEuYkssx
2017-08-12 10:12:28 -07:00
Bobby Holley c9e1098a70 Bug 1389385 - Require a presshell to set descendant bits. r=emilio
We're going to start tracking the restyle root on the presshell, so we'll need
one. This should be fine, since if the presshell doesn't exist yet we can't
have done the initial style, and if it's already been destroyed we don't need
restyle state anymore.

MozReview-Commit-ID: EfNVloI9ENQ
2017-08-11 18:18:22 -07:00
Bobby Holley 3e308bd38d Bug 1389385 - Rearrange dirty noting to operate on the element rather than the parent. r=emilio
This will allow us to scope restyle roots more tightly.

MozReview-Commit-ID: 2t2lp5sKBHH
2017-08-11 18:18:22 -07:00
Bobby Holley ff0b8d0ebf Bug 1389385 - Generalize C++ NoteDirtyDescendants logic and add equivalent APIs for the animation bit. r=emilio
MozReview-Commit-ID: 8K0uDibfoZS
2017-08-11 18:17:49 -07:00
Bobby Holley c52ef0e259 Bug 1389385 - Move NoteDirtyDescendantsForServo out of line. r=emilio
This function is large enough that it doesn't really make sense to have inline,
and we'll be adding more to it in the coming patches.

MozReview-Commit-ID: AnDfzwsMvNy
2017-08-11 18:17:49 -07:00
Bobby Holley 813d290b57 Bug 1387499 - Clear the servo bits when dropping servo data. r=emilio
This fixes the testcase in the bug, which removes and reinserts
some elements. Our invariants require us not to set the dirty
descendants bits on unstyled elements.

MozReview-Commit-ID: 1eESZjNSURG
2017-08-09 09:20:59 -07:00
Nicholas Nethercote cc91deea30 Bug 1383977 - stylo: Measure Elements and ComputedValues. r=manishearth.
The patch provides FFI access to Gecko's SeenPtrs type from Rust, in order to
record what has already been measured when measuring Arcs. (The SeenPtrs must
be initialized on the Gecko side because the same table is reused for measuring
all Elements within a window, because Elements can share ComputedValues.) I
have confirmed with DMD that this is working correctly.

The patch also introduces MallocSizeOfRepeats, which is like MallocSizeOf but
takes a SizeOfState, which holds a SeenPtrs table.

MozReview-Commit-ID: DHS8zvCsEdQ

--HG--
extra : rebase_source : acf4d7909abf6ceb1719331ccf2e33137eb6dc91
2017-07-19 10:30:53 +10:00
Kyle Machulis d812ac4e87 Bug 1279218 - Additional applet tag logic removal; r=bz
I've been having problems with interdiffs on mozreview lately, so for
ease of review, this patch is being submitted as a seperate patch for
review. Once it is r+'d, it will be folded into the first patch in
this set before landing.

MozReview-Commit-ID: CS9MngaXlBd

--HG--
extra : rebase_source : 6a86fd4f7a66e73497a756976a2562d183002a2a
2017-07-28 16:44:39 -07:00
Nicholas Nethercote 49eb219ff5 Bug 1383982 (attempt 2) - Introduce a general mechanism for measuring memory usage of graph-like structures. r=erahm.
--HG--
extra : rebase_source : 7075f9570a4262158351ce9ac3ca8360ea4d5394
2017-07-28 20:10:04 +10:00
Sebastian Hengst 9077ac8886 Backed out changeset a57d8f30d1bf (bug 1383982) for build bustage at nsGlobalWindow.cpp:13826: 'class nsWindowSizes' has no member named 'mMallocSizeOf'. r=backout 2017-07-28 09:50:48 +02:00
Nicholas Nethercote 5c3abe8aab Bug 1383982 - Introduce a general mechanism for measuring memory usage of graph-like structures. r=erahm.
All the SizeOf{In,Ex}cludingThis() functions take a MallocSizeOf function
which measures memory blocks. This patch introduces a new type, SizeOfState,
which includes a MallocSizeOf function *and* a table of already-measured
pointers, called SeenPtrs. This gives us a general mechanism to measure
graph-like data structures, by recording which nodes have already been
measured. (This approach is used in a number of existing reporters, but not in
a uniform fashion.)

The patch also converts the window memory reporting to use SizeOfState in a lot
of places, all the way through to the measurement of Elements. This is a
precursor for bug 1383977 which will measure Stylo elements, which involve
Arcs.

The patch also converts the existing mAlreadyMeasuredOrphanTrees table in the
OrphanReporter to use the new mechanism.

--HG--
extra : rebase_source : 2c23285f8b6c3b667560a9d14014efc4633aed51
2017-07-28 15:03:44 +10:00
Ehsan Akhgari 585393f54b Bug 1382914 - Store the hashtable of ancestor ranges in the node slots instead of in a property in order to speed up access to it; r=smaug 2017-07-25 13:01:16 -04:00
Ehsan Akhgari ef2b77779d Bug 1383142 - Avoid the presshell AddRef() in Element::GetBindingURL(); r=heycam 2017-07-21 23:48:46 -04:00
Sylvestre Ledru 7c0ae251cd Bug 1381253 - Remove redundant control flow declarations rs=ehsan
MozReview-Commit-ID: FFxP4aMCbOL

--HG--
extra : amend_source : 3aec108430b11048f47ffe19d5da7ac5034770a9
2017-07-15 19:03:04 +02:00
Olli Pettay 0738714332 Bug 1377993 - Make node slots less memory hungry in common cases. r=peterv
MozReview-Commit-ID: Lhr1UsCrRTs
2017-07-18 00:25:49 +02:00
Emilio Cobos Álvarez bac7c683b4 No bug: Fix some typos. r=comment-only
DONTBUILD

MozReview-Commit-ID: hy22pz4YCt
2017-07-16 17:35:54 +02:00
Cameron McCormack 4cfbfe320e Bug 1372061 - Add node flag recording whether we might have anonymous children. r=bholley
MozReview-Commit-ID: CMaxJ1JnuYJ

--HG--
extra : rebase_source : ac5651b0d42125fd2a4ff3f5ce03f7a6c6ab1fbb
2017-06-27 23:56:12 -07:00
Olli Pettay a341ed0842 Bug 1346590 - Simplify directionality handling by relying on cycle collector. r=ehsan 2017-06-27 19:48:31 -04:00
Bill McCloskey f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Masayuki Nakano 9f1aec970a Bug 1374207 - part4: Element classes should use TextEditor class instead of nIEditor r=smaug
Unfortunately, nsGenericHTMLElement::GetAssociatedEditor() cannot use concrete classes because it may return nsIEditor which is set via nsIDocShell.editor.  The editor set to nsIDocShell may be implemented by JS since nsIEditor isn't marked as builtinclass.

MozReview-Commit-ID: 6GY9LOYp4hM

--HG--
extra : rebase_source : 3e0464067b30daf8254805458c5358d7ea644be8
2017-06-22 15:21:31 +09:00
Emilio Cobos Álvarez f6dc661b5b Bug 1370802: Parse lang attributes as atoms. r=heycam
MozReview-Commit-ID: Cnq3wB7aVB1

--HG--
extra : rebase_source : fa0252b78381bf023ab08bf2d9fd13d4c0ed57a1
2017-06-15 21:48:26 +02:00
Mats Palmgren 5b7c81e34b Bug 1372317 part 2 - Replace LookupRemoveIf() calls with Lookup() + entry.Remove() where needed. r=froydnj
MozReview-Commit-ID: AoRNdbzh66c
2017-06-18 17:07:54 +02:00
Mats Palmgren fb94159369 Bug 1372007 - Replace calls to Contains+Put with LookupForAdd and Contains+Get+Put with LookupRemoveIf to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: 5Y1rVCglpzu
2017-06-14 01:54:26 +02:00
Kirk Steuber 0312c4f54a Bug 1370705 - Move attribute change effects from HTMLImageElement::BeforeMaybeChangeAttr to HTMLImageElement::AfterMaybeChangeAttr r=bz
It logically makes more sense for these effects to happen after the attribute has actually been changed and moving them allows us to get rid of the member variable HTMLImageElement::mForceReload.

MozReview-Commit-ID: IJBF3AHVb0U

--HG--
extra : rebase_source : fe3ae2a0cc55ded9702fb7654261ffee83a52057
2017-06-09 09:46:54 -07:00
Kirk Steuber 2feb07c8c6 Bug 1365092 - Moves side effects of HTMLImageElement's SetAttr function to the corresponding BeforeSetAttr and AfterSetAttr functions r=bz
This is necessary to facilitate the transition to cloning attributes instead of reparsing them.

HTMLImageElement's side effects proved to be a bit trickier than those of many other classes because HTMLImageElement::SetAttr intentionally forces an image reload, even if the attribute value has not been changed. Element::SetAttr, on the other hand, usually ignores attribute changes that do not change the attribute value, exiting before BeforeSetAttr is even called. In order to preserve this behavior, another virtual function |OnAttrSetButNotChanged| was added to the Element class. This function will be called in the case that Element::SetAttr exits early, allowing a forced reload to take place at that time.

MozReview-Commit-ID: 4CrH30bo5GT

--HG--
extra : rebase_source : 94245dde2710abd439671d05e99f145caca3e189
2017-06-01 15:38:45 -07:00
Kirk Steuber a02a78b5c7 Bug 1365092 - Moves side effects of nsGenericHTMLElement and Element's SetAttr, UnsetAttr, and ParseAttribute functions to the corresponding BeforeSetAttr and AfterSetAttr functions r=bz
This is necessary to facilitate the transition to cloning attributes instead of reparsing them.

MozReview-Commit-ID: HzB3f1sr9y9

--HG--
extra : rebase_source : 8c343c60b5dca18fb04a4cb548907a2e4b9df1d2
2017-05-31 11:01:47 -07:00
Boris Zbarsky 237aa3d58c Bug 1370072. Don't hold on to a frame pointer across a frame flush. r=ehsan 2017-06-06 21:21:45 -04:00
Ryan VanderMeulen b2f44e5181 Merge inbound to m-c. a=merge 2017-05-31 20:25:52 -04:00
Brad Werth b4e5c552de Bug 1355675 Part 3: Add some Chrome-only getTransformTo... methods to Element. r=mattwoodrow,smaug
MozReview-Commit-ID: 5H2DXKJzE8H

--HG--
extra : rebase_source : a5089158676586e94ac1c8528dd052d52973c869
2017-05-30 09:42:25 -07:00
Tobias Schneider ca72a8397e Bug 1335644 - (intersection-observer) Always send an initial notification after .observe() is called. r=mstange
--HG--
extra : rebase_source : 022d43ae4351831e625660ebab023b4ca632939e
2017-05-24 17:20:57 -07:00
Boris Zbarsky d50c80150f Bug 1364360 part 3. Don't flush layout when setting scrollTop to 0. r=ehsan 2017-05-25 13:39:44 -04:00
Boris Zbarsky 42c1cf9ea3 Bug 1364360 part 2. Make Element::GetScrollFrame take a flush type, not a "should I flush?" boolean. r=ehsan 2017-05-25 13:39:44 -04:00
Boris Zbarsky 3119ff4e5e Bug 1364360 part 1. Make Element::GetScrollFrame follow the spec more closely in the quirks mode case. r=ehsan 2017-05-25 13:39:44 -04:00
Wes Kocher 8b07ba2a07 Merge m-c to inbound a=merge
a=release IGNORE BAD COMMIT MESSAGES
2017-05-19 15:18:51 -07:00
Olli Pettay 2d735273d9 Bug 1366250, don't flush layout when calling element.focus() on already focused element. Ensure layout is flushed after changing input.type, r=ehsan
--HG--
extra : rebase_source : 294d0220cc3c2b6be38566ff28722c5e9acc87a9
2017-05-19 23:20:48 +03:00
Kirk Steuber e74f1cd513 Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr r=bz
In order to facilitate the movement of code with side-effects called by Element::SetAttr to Element::BeforeSetAttr and Element::AfterSetAttr, Element::AfterSetAttr should have access to the old value of the attribute. This includes information about whether there was previously a value set or not.

Accomplishing this involved passing an additional argument through functions that find and change the old attribute value in order to ensure that we can differentiate between an empty old value and an absent old value (attribute was not set).

Note that while I tried to ensure that accurate values (and their absence) are reported to Element::AfterSetAttr, I largely ignored SVG. While the old value reported for SVG values should be however accurate the value already being reported to SetAttrAndNotify was, SVG elements do not currently report unset values properly because they will never pass a null pointer to SetAttrAndNotify.

MozReview-Commit-ID: K1mha8CNFZP

--HG--
extra : rebase_source : 42776eb01451d371e4aebcc17fe3dd112c8d268b
2017-05-18 14:09:01 -07:00
Christian Holler 7d5c35b559 Bug 1365954 - Fix check for EXTRA_DOM_ELEMENT_BYTES. r=bholley
MozReview-Commit-ID: CNG7XR4ZjIi

--HG--
extra : rebase_source : 23276dc9a6952294a98c87ab09de6caf35a9c9c3
2017-05-18 17:03:39 +02:00
Brian Birtles 56a6846b66 Bug 1355348 - Drop extra eRestyle_StyleAttribute hint from Element::SetSMILOverrideStyleDeclaration; r=dbaron
This was originally added in bug 1133439 but it's not clear that it is needed.
It may be that we thought that new SMIL animations should trigger transitions
but that's not the case.

We want to remove this as part of this bug since Servo_NoteExplicitHints is
currently not capable of handling animation restyle hints and non-animation
restyle hints at the same time.

--HG--
extra : rebase_source : 729947c29efc51864333397cf772079646c1f197
2017-05-16 12:46:51 +09:00
Daniel Holbert ad52211150 Bug 1344398 part 2: React to some CSS 'overflow' changes on body/html by simply calling UpdateViewportScrollbarStylesOverride() instead of reframing. r=bz,tnikkel
MozReview-Commit-ID: Lpr9aNv9hAB

--HG--
extra : rebase_source : c8cccf8e6495ab1d57f9680c07b3e43a488e8691
2017-05-10 13:53:27 -07:00
Bobby Holley de6dd624ed Bug 1363375 - Pack nsINode better on 64-bit and stop conditionally compiling mServoData. r=smaug 2017-05-11 13:51:28 +02:00
Bobby Holley 4c9431ce8a Bug 1363375 - Add static assert for element sizes on 64-bit. r=smaug 2017-05-11 13:51:28 +02:00
Wes Kocher 8f6058b583 Backed out 3 changesets (bug 1344398) for assertion failures at Element.cpp a=backout
Backed out changeset d0e5a5ba01b5 (bug 1344398)
Backed out changeset d70f9de401d1 (bug 1344398)
Backed out changeset 647d0bb3714d (bug 1344398)

MozReview-Commit-ID: DTVWf28NcNb
2017-05-10 17:43:50 -07:00
Daniel Holbert b216b7b0e8 Bug 1344398 part 2: React to some CSS 'overflow' changes on body/html by simply calling UpdateViewportScrollbarStylesOverride() instead of reframing. r=bz,tnikkel
MozReview-Commit-ID: Lpr9aNv9hAB

--HG--
extra : rebase_source : c8cccf8e6495ab1d57f9680c07b3e43a488e8691
2017-05-10 13:53:27 -07:00
Boris Zbarsky f11ddd537b Bug 1361274. There's no need to update link :visited state when doing querySelectorAll, since querySelectorAll ignores that state anyway. r=smaug
In our current setup, in which links with an href attribute always match either
:link or :visited, no matter whether that attribute's value is a valid URI,
changes to the attribute always put the element into either the "match nothing"
state or the "match :link" state, via calls to Link::ResetLinkState.

The only thing FlushPendingLinkUpdates is needed for is (lazily, in case it
turns out to not be needed because the element got removed from the DOM anyway)
registering a history observer to switch the link state to :visited as needed.

This means that selector matching consumers that would never expose :visited
state to start with don't need to worry about calling FlushPendingLinkUpdates.
2017-05-03 16:54:25 -04:00
Swapnesh Kumar Sahoo c11cf34901 Bug 1354331 - Remove network.http.enablePerElementReferrer usages. r=valentin r=baku 2017-05-01 00:12:34 +05:30
Nicholas Hurley 4608c1dbd5 Bug 1348278 - Speculatively connect when mousedown happens on a link r=bz
Try to speed up perceived pageload by opening a connection as soon as the
user mouses down on a link, instead of waiting for the full click/AsyncOpen
process to get there.

MozReview-Commit-ID: 4g6mZXWt9H5

--HG--
extra : rebase_source : cf7b5628058c1a1bcadc8531f2da44d259c6fdaa
2017-04-27 14:35:09 -07:00
Emilio Cobos Álvarez 23bce99ae1 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk

--HG--
extra : rebase_source : 2d01321f5ce0ec8c0e3f70984674f82678034b3c
2017-05-01 19:32:52 +02:00
Emilio Cobos Álvarez e44543aad4 Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle

--HG--
extra : rebase_source : c2e9d4bfb9239f5e851d110cd7dff98c1e1a8d8b
2017-04-30 17:30:08 +02:00
Olli Pettay d401b45a1f Bug 1352898, add a cache for nsMappedAttributes to reduce malloc/free and bind nsMappedAttributes always to nsHTMLStyleSheet if owner document has such, r=bz
--HG--
extra : rebase_source : f5d0d17a7c4eb5244ebb993b6ed34ea048921366
2017-04-07 19:21:48 +03:00
Brian Birtles 33041d1214 Bug 1315874 - Drop 'ForElement' from GetStyleContextForElementXXX methods; r=heycam
In the next patch we want to add a method called
GetUnanimatedStyleContextForElementNoFlush but that's much too long. Instead it
seems better to just drop 'ForElement' from all these methods since it should be
fairly obvious we are getting the style context for an element given that the
first argument is an element.

MozReview-Commit-ID: JQKaEuCKV2F

--HG--
extra : rebase_source : 3ba51f3b00d1ec7bc91102629d9c0abb88992fef
2017-04-05 14:39:23 +09:00
bechen 268a2f5b7a Bug 1318542 - Label NODE_IS_NATIVE_ANONYMOUS on the elements from ::cue up to nsVideoFrame. r=bz,heycam
Since the ::cue div created by JS, it doesn't have the NODE_IS_NATIVE_ANONYMOUS flag.
We set the NODE_IS_NATIVE_ANONYMOUS when binding to domtree from the ::cue up to the RootOfAnonymousSubtree
so that GetClosestNonNativeAnonymousAncestor will return video element as style parent.

MozReview-Commit-ID: 3EiYOqnbY15

--HG--
extra : rebase_source : eedcd5948852c3405a719b9f3c3396ee009f7273
2017-04-05 10:48:52 +08:00
Olli Pettay 98fff73826 Bug 1351303, add main thread only cache for nsIAtoms to speed up atomization, r=froydnj
--HG--
extra : rebase_source : 9c67cd71c0721329eaeaaa96a295e90abc480042
2017-04-03 23:13:18 +03:00
Xidorn Quan e3e4554871 Bug 1351957 - Create URLExtraData for holding base uri, referrer, and principal. r=heycam
MozReview-Commit-ID: 1wqTb3kvvWh

--HG--
extra : rebase_source : cae3dba21c916ab0f52056bd9db215249b650cd3
2017-03-30 18:54:48 +11:00
Olli Pettay 12316106ee Bug 1352389, don't push extra script blocker on stack when setting attributes, r=bz
--HG--
extra : rebase_source : 2571f3d502114b84f8b95bbb50c5a0707eb14298
2017-03-31 22:54:41 -04:00
Olli Pettay 5706cc683b backout Bug 1352389, r=backout 2017-03-31 16:59:06 -04:00
Olli Pettay b86d26e216 Bug 1352389, don't push extra script blocker on stack when setting attributes, r=bz
--HG--
extra : rebase_source : 55820b78425fe7a64e77eaeb31f5093309f2d06c
2017-03-31 13:13:52 -04:00
Manish Goregaokar b8c378e1a5 Bug 1330051; Reparse style attribute when adopting across style backends; r=bz
MozReview-Commit-ID: LWN57KApiMu

--HG--
extra : rebase_source : 20cfb66a8d6d5f88aa3db9cc6876f986d71290b4
2017-03-24 15:28:19 -07:00
Olli Pettay 92bb395acd Bug 1339758, click() and similar can return 0 from various coordinate properties, r=masayuki
--HG--
extra : rebase_source : 71547cc6655c39ffeba89676d315bdb9bacc5ff4
2017-03-23 12:57:44 +02:00
Edgar Chen 00f084fb1b Bug 1347634 - GetCustomElementData and SetCustomElementData don't need to be virtual; r=smaug 2017-03-16 12:21:12 +08:00
Boris Zbarsky 55cdc32c73 Bug 656197 part 4. Move calls to AfterSetAttr to before UpdateState when manipulating attributes. r=smaug
In particular, this lets us remove UpdateState() calls from AfterSetAttr.  That
change is next.

MozReview-Commit-ID: CFeft0E9o8m
2017-03-16 14:50:42 -04:00
Boris Zbarsky 33a3057732 Bug 656197 part 2. Move calls to BeforeSetAttr to after AttributeWillChange. r=smaug
This means that implementations of BeforeSetAttr no longer need to UpdateState.
Those UpdateState calls will be removed in a bit.

MozReview-Commit-ID: 1yEg5D4garD
2017-03-16 14:50:41 -04:00
Boris Zbarsky f890715ffc Bug 656197 part 1. Remove the generic attr preparsing mechanism from BeforeSetAttr and just preparse class attributes directly in the one place that needs to do it. r=smaug
This removes the requirement that BeforeSetAttr comes before AttributeWillChange
(which needs the preparsed new value).

MozReview-Commit-ID: 87C6Mjc7ARh
2017-03-16 14:50:41 -04:00
Cameron McCormack 6e93d609a7 Bug 1341230 - Part 1: Rename ESM_MANAGED_STATES to EXTERNALLY_MANAGED_STATES. r=smaug
Since it's not just the EventStateManager that has access to modify
these EventStates bits.

MozReview-Commit-ID: 17EpfQT5M40

--HG--
extra : rebase_source : 6d5f7ecff2d41d66cbc23ea12e08dc6295e29875
2017-03-06 10:44:13 +08:00
Iris Hsiao ddd2318db2 Backed out changeset 41bd2eefc823 (bug 1341230) 2017-03-06 11:48:58 +08:00
Cameron McCormack fd0d68c179 Bug 1341230 - Part 1: Rename ESM_MANAGED_STATES to EXTERNALLY_MANAGED_STATES. r=smaug
Since it's not just the EventStateManager that has access to modify
these EventStates bits.

MozReview-Commit-ID: 17EpfQT5M40

--HG--
extra : rebase_source : 6d5f7ecff2d41d66cbc23ea12e08dc6295e29875
2017-03-06 10:44:13 +08:00
Mats Palmgren d13aaf9ce0 Bug 1340771 part 1 - Rename nsWeakFrame to AutoWeakFrame (automated change). r=tn
MozReview-Commit-ID: 8pl4nyeGEkr
2017-03-01 18:03:14 +01:00
Tobias Schneider 5167bc2af8 Bug 1337936 - (intersection-observer) Revise lifetime management. r=smaug
MozReview-Commit-ID: 4pzm00igBLR

--HG--
extra : rebase_source : ad9c5581f991c392f431793fde289b8ca8245bd0
2017-02-22 10:45:13 -08:00
Sebastian Hengst ae051c91a0 Backed out changeset 5f93d62d9229 (bug 1337936) for asserting in crashtest 869038.html. r=backout 2017-02-22 14:06:26 +01:00
Tobias Schneider 0da735fe74 Bug 1337936 - (intersection-observer) Revise lifetime management. r=smaug
MozReview-Commit-ID: AvdDJaRELXm

--HG--
extra : rebase_source : a3e8705822545fd4c1cee688939c617a419d3936
2017-02-21 03:13:39 -08:00
Tom Tromey f8ab4ddf02 Bug 1060419 - remove unneeded includes of prprf.h, r=froydnj
MozReview-Commit-ID: JifhpA3oOeH

--HG--
extra : rebase_source : 08460997dc3fd91f3065c718e17b41bb4acf8bae
2016-12-09 10:00:01 -10:00
Bobby Holley b5ec1b1aa2 Bug 1331322 - Move MAY_HAVE_CLASS to mBoolFlags. r=bholley
This fits a bit better with the other stuff, and allows us to add our new NAC
bit with the other NAC related bits, which also happens to be a field that
Servo already has easy access to.

--HG--
extra : rebase_source : 52ef902eb3b23dc44cefec899b02c9180b76160c
2017-01-20 18:24:41 -08:00
Phil Ringnalda d2fa909610 Backed out 4 changesets (bug 1331322) for Android reftest failures in 1169331-1.html and forced-bg-color-outside-visible-region.html
Backed out changeset 96c6b5a11284 (bug 1331322)
Backed out changeset 15877d32de7d (bug 1331322)
Backed out changeset 841d608704d7 (bug 1331322)
Backed out changeset 02096c5eb029 (bug 1331322)
2017-02-15 21:24:00 -08:00
Bobby Holley a15ed0dd31 Bug 1331322 - Move MAY_HAVE_CLASS to mBoolFlags. r=bholley
This fits a bit better with the other stuff, and allows us to add our new NAC
bit with the other NAC related bits, which also happens to be a field that
Servo already has easy access to.

--HG--
extra : rebase_source : 52ef902eb3b23dc44cefec899b02c9180b76160c
2017-01-20 18:24:41 -08:00
Boris Zbarsky d7e6d48b2f Bug 1338725 part 2. Move GetClasses/DoGetClasses from nsIContent to Element. r=baku 2017-02-13 16:06:45 -05:00
Boris Zbarsky 08d76ec702 Bug 1332812. Remove some more unused or nearly-unused nsIDOMElement bits. r=froydnj 2017-02-02 10:32:58 -05:00
Sebastian Hengst 4c5957bbd3 Backed out changeset c724fbd9c326 (bug 1332812) for build bustage. r=backout on a CLOSED TREE 2017-02-02 16:58:52 +01:00
Boris Zbarsky b249de7c3a Bug 1332812. Remove some more unused or nearly-unused nsIDOMElement bits. r=froydnj 2017-02-02 10:32:58 -05:00
Wes Kocher 8d4bb91470 Merge m-c to inbound, a=merge
MozReview-Commit-ID: Am6M5iHxmAr
2017-02-01 16:31:23 -08:00
Manish Goregaokar 5b55368eda Bug 1330041 - Basic handling framework for presentation attributes in Stylo, with handling for font-size and color; r=bz,emilio
This introduces a basic framework for servo's style system to be able
to query the style of presentation attributes which it can then insert
into the cascade. It uses that framework to implement the size and
color attributes on <font>.

There are a number of improvements that can be done on top of this:

 - Implement all other properties
 - Abstractify the ruledata parameter of the mappers using templates or virtual dispatch so that it can be a Servo decl block instead
 - Implement aforementiond abstraction over Servo decl blocks (this obsoletes the code in the first item above, so it might just be better to skip that and directly do this)
 - Replace uses of nsHTMLStyleSheet with an abstract base class containing common elements between Servo and Gecko

I'd prefer for these to be done in separate steps.

MozReview-Commit-ID: GO60qfeZOfl

--HG--
extra : rebase_source : 516d369a8627e413983361aaf85ccb7132b0a06c
2017-01-19 15:56:53 -08:00
Boris Zbarsky 4dafb92c93 Bug 1335368 part 4. Stop using IsCallerChrome in nsContentUtils::IsRequestFullScreenAllowed. r=bholley 2017-02-01 15:43:36 -05:00
Jared Wein 072c1a6ba3 Bug 1323618 - Allow locking off of psuedo-classes through inIDOMUtils. r=heycam
MozReview-Commit-ID: DppYTmILpwy

--HG--
extra : rebase_source : c0befc8f86b92cfc88b537e520c3aa032846ba6a
2017-01-12 12:10:07 -05:00
Sebastian Hengst 7e8e7b64ec Backed out changeset 6c4807171f00 (bug 1323618) on jaws' request. r=backout 2017-01-12 18:45:39 +01:00
Jared Wein 213d81f2f4 Bug 1323618 - Allow locking off of psuedo-classes through inIDOMUtils. r=heycam
This patch doesn't currently work. The test fails in two test cases. Right now the styles for a 'locked-off' psuedo class are still being applied.

MozReview-Commit-ID: DppYTmILpwy
* * *
[mq]: temp

MozReview-Commit-ID: 74iIOQumfrw

--HG--
extra : rebase_source : 276e694b61aaeb0cb55a963c793d58876a92546f
2017-01-12 12:10:07 -05:00
Boris Zbarsky 34c39939f2 Bug 1330060 part 1. Move GetInlineStyleDeclaration up to Element so it doesn't have to be virtual. r=bkelly 2017-01-11 19:03:16 -05:00
Cameron McCormack babad063ff Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky
MozReview-Commit-ID: D3fIngSHSsl
2017-01-05 15:31:56 +08:00
Cameron McCormack cd875e79a6 Bug 1326023 - Make Element::GetBindingURL return a strong reference. r=smaug
MozReview-Commit-ID: 5QI6UuvwDrE
2016-12-28 17:50:44 +08:00
Ho-Pang 41adef3ae2 Bug 1299209 - Part 1: Passing PointerId when a new WidgetMouseEvent is created. h=sshih, r=smaug
--HG--
extra : rebase_source : b123e74425e56c09ab38f5916589abb84c3d5996
2016-12-20 22:53:00 -05:00
Masayuki Nakano 7436f01057 Bug 564411 Move all methods/attributes of nsIEditorIMESupport to nsIEditor r=smaug
Doing QI from nsIEditor to nsIEditorIMESupport doesn't make sense because editor should always support all methods and attributes of nsIEditorIMESupport (it does NOT mean that all nsIEditor implementation need to support IME).

This patch moves all of them to nsIEditor for avoiding redundant QIs.

MozReview-Commit-ID: DzIKuGHG4iy

--HG--
extra : rebase_source : cc5e9a6ae4572ebe461d9770ffa5c23d33dc8526
2016-12-20 21:47:31 +09:00
Tobias Schneider eef5af1c91 Bug 1322717 - Disconnect/Unlink in the proper order to avoid crashes in mozilla::dom::DOMIntersectionObserver::UnlinkTarget. r=mrbkap 2016-12-08 18:54:07 -08:00
Bobby Holley f8c9d884fc Bug 1317016 - Basic infrastructure for RestyleHint-driven traversal. r=emilio
MozReview-Commit-ID: 7wH5XcILVmX
2016-11-25 10:06:39 -08:00
Boris Zbarsky c892e11e49 Bug 1318117. Stop using IsCallerChrome in pointerlock API, fullscreen API, and documentURI getter. r=ehsan 2016-11-17 13:49:27 -05:00
Ehsan Akhgari 38a0d7e870 Bug 1318342 - Remove the special casing for apps going fullscreen; r=baku 2016-11-17 12:35:44 -05:00
Stone Shih 1ed10ff082 Bug 1305458 Part1: Rename nsIDOMEventTarget::PreHandleEvent to nsIDOMEventTarget::GetEventTargetParent. r=smaug
MozReview-Commit-ID: FM3vDUyLOCb

--HG--
extra : rebase_source : 5a513af84718a6d591f77437a0704984c8fc2b67
2016-10-21 10:11:07 +08:00
Xidorn Quan 60ba3c835d Bug 1294299 part 2 - Use DeclarationBlock for SMIL override style. r=heycam
MozReview-Commit-ID: 573o5vmC81z

--HG--
extra : source : c284764640e86b9bf63f976b79aa66252f8b635d
2016-11-03 14:41:02 +11:00
Tobias Schneider 5b2ef3c1db Bug 1243846 - Implement Intersection Observer API. r=mrbkap, r=mstange 2016-10-28 10:24:00 -04:00
Xidorn Quan 05ef8466c6 Bug 1309109 part 5 - Store ServoDeclarationBlock rather than RawServoDeclarationBlock in nsAttrValue. r=heycam
MozReview-Commit-ID: HWqgjwif1qF

--HG--
extra : source : cf3b1baff3d1d6233c72e32cf01cd28a2b344ebf
2016-10-18 15:29:03 +11:00
Botond Ballo b3a474aa99 Bug 1307557 - Fix an out-of-bounds access in Element::DescribeAttribute(). r=dveditz
MozReview-Commit-ID: 15ItbWAQAPv

--HG--
extra : rebase_source : 4375d0268a633e964fd91427cb4b9e67c63d30b2
2016-10-07 15:12:00 -04:00
Olli Pettay d04af0658f Bug 1309720, ensure expected DOM tree operations when calling insertBefore, r=ehsan
--HG--
extra : rebase_source : 9583d0f4aa9c395c3615f17244c4531a9d441534
2016-10-14 15:33:42 +03:00
Bobby Holley 6351b3ffb8 Bug 1304913 - Have Servo manage node data directly without FFI calls. r=Manishearth
MozReview-Commit-ID: H8f8VP18TbM
2016-09-23 15:58:48 -07:00
Mike de Boer 3e295e6280 Bug 1290914 - support Element.animate() on AnonymousContent nodes through the AnonymousContent.setAnimationForElement() method. r=bz
MozReview-Commit-ID: 39QPaCea7Dx
2016-09-08 22:38:53 +02:00
Sebastian Hengst 8325679a58 Backed out changeset a71b7098d0c6 (bug 1290914) for failure in test_findbar.xul. r=backout 2016-09-07 18:38:03 +02:00
Mike de Boer 8b64dbde69 Bug 1290914 - support Element.animate() on AnonymousContent nodes through the AnonymousContent.setAnimationForElement() method. r=bz
MozReview-Commit-ID: 3Wl5yAjHGPN

--HG--
extra : rebase_source : 8668da8dba231809cf3d5c1f70394f44789f1b98
2016-09-07 12:01:17 +02:00
Jeremy Chen e42a48e81d Bug 1297306 - part5:create enum constructors for EnumTable. r=baku
Enable nsAttrValue::EnumTable to be initialized with enum. So, we could get rid
of the castings in EnumTable. Fix EnumTable initialization comment.

For those untyped enumerations, declare them with uint8_t, as to other typed
enumerations with type size larger than int16_t, force casting to int16_t.

Use {nullptr,0} instead of {0} to represent the last entry.

MozReview-Commit-ID: 7Dma3Apkmxj

--HG--
extra : rebase_source : b2289866c4c33d80c8e170727bf109d018d92f67
2016-09-07 10:20:17 +08:00
Brian Birtles 48f29038db Bug 1300045 part 2 - Split KeyframeEffect.cpp into KeyframeEffect{ReadOnly}.cpp r=hiro,smaug
MozReview-Commit-ID: DdBEicunApv

--HG--
rename : dom/animation/KeyframeEffect.cpp => dom/animation/KeyframeEffectReadOnly.cpp
rename : dom/animation/KeyframeEffect.h => dom/animation/KeyframeEffectReadOnly.h
extra : rebase_source : 70063d8ba09c9c457f22771e9b514ddc9fee1612
2016-09-04 16:34:21 +09:00
Edgar Chen 67946850ab Bug 1275835 - Part 1: Move custom element codes from nsDocument to CustomElementsRegistry; r=wchen
MozReview-Commit-ID: 9gTSFrYW7o3

--HG--
extra : rebase_source : f123f21aadaa18641ddd7fa7fa67eb27a4152f83
2016-08-30 11:48:53 +08:00
Emilio Cobos Álvarez 619cb14d87 Bug 1299066: Make NS_STYLE_DISPLAY_* an enum class. Prefer indexing instead of linear search in the frame constructor r=heycam,bz
The main renaming was generated with the following python script:

```

import sys
import re

CAMEL_CASE_REGEX = re.compile(r"(^|_|-)([A-Z])([A-Z]+)")
DISPLAY_REGEX = re.compile(r"\bNS_STYLE_DISPLAY_([^M][A-Z_]+)\b")

def to_camel_case(ident):
  return re.sub(CAMEL_CASE_REGEX,
                lambda m: m.group(2) + m.group(3).lower(), ident)

def constant_to_enum(constant):
  return "StyleDisplay::" + to_camel_case(constant) + ("_" if constant == "NONE" else "")

def process_line(line):
  return re.sub(DISPLAY_REGEX,
                lambda m: constant_to_enum(m.group(1)), line)

lines = []
with open(sys.argv[1], "r") as f:
  for line in f:
    lines.append(process_line(line))

with open(sys.argv[1], "w") as f:
  for line in lines:
    f.write(line)
```

And the following shell commands:

```
find . -name '*.cpp' -exec python display.py {} \;
find . -name '*.h' -exec python display.py {} \;
```

MozReview-Commit-ID: 91xYCbLC2Vf
2016-09-01 20:41:17 -07:00
Aryeh Gregor 0c1d7143d1 Bug 984778 - Make hasFeature() and SVG requiredFeatures always return true; r=bz,longsonr
hasFeature() always returning true matches the current DOM spec.  SVG 2
has removed requiredFeatures.  Chrome has had both of these always
return true since 2014, and they seem to have had no problems.

Even requiredFeatures="" (empty string) now returns true, matching
Chrome.

MozReview-Commit-ID: 1LEu3iK4R94
2016-09-01 14:35:11 +03:00
Bobby Holley 92996399e8 Bug 1292279 - Explicitly handle dirtiness in BindToTree. r=heycam
Doing this in SetInDoc is kind of gross, and it leads to nice symmetry with
UnbindFromTree.
2016-08-25 21:34:27 -07:00
Cameron McCormack ef76cd4cfc Bug 1295852 - Part 2: Check for generated content containers correctly in Element.getAnimations(). r=boris
MozReview-Commit-ID: E6HkQED2ND8

--HG--
extra : rebase_source : 780677c7fddc2c69b89e3bfbbb99d88c57fe1a3e
2016-08-19 11:16:52 +08:00
Kearwood (Kip) Gilbert 0fa828c884 Bug 1250244 - Part 5: Rename VRDevice to VRDisplay,r=bz
- In order to reduce the size of the following patches
  and increase their readability, we rename VRDevice
  to VRDisplay here first.

MozReview-Commit-ID: 3pv8scdIi5w
2016-04-12 17:39:28 -07:00
Kearwood (Kip) Gilbert a900318dec Bug 1250244 - Part 1: Remove FullScreenOptions parameter from Element.RequestFullScreen,r=bz
MozReview-Commit-ID: 8wmexZT5SB4
2016-04-18 12:12:38 -07:00
Boris Zbarsky fe8d1921e1 Bug 921834. Add support for .dataset on SVGElement. r=bkelly 2016-08-11 16:56:34 -04:00
Daosheng Mu 8083dbd7bd Bug 778654 - Implement and move tabIndex functions to Element class to avoid duplicate work.r=peterv,heycam
MozReview-Commit-ID: uetkJztNcn

--HG--
extra : transplant_source : U%E7va%AE%E6%FE%BDN.%28%AA%8F%19%1D%FF%26%E6%B7t
2016-05-24 12:22:17 +08:00
Jonathan Kingston 556ed99119 Bug 1173199 - Create preference to disable MathML. r=heycam, r=huseby, r=smaug
If the mathml.disabled preference is true, treat <math> and other MathML
elements as generic XML elements.

This patch disables the rendering code of MathML however preserves the
namespace so to reduce the breakage.

Original patch by: Kathy Brade <brade@pearlcrescent.com>

MozReview-Commit-ID: A2f2Q2b4eqR

--HG--
extra : rebase_source : 3c8530816727c01b68a831d560bfe16e7b02bd9d
2016-06-28 15:24:48 +01:00