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>
This is the reason similar assertion failures can't be reproduced with elements
and stuff like fieldset and form validity changes.
nsBindingManager::ContentRemoved calls SetXBLInsertionParent, which clears all
the Servo data from the subtree eagerly, which is a waste when the actual
binding parent is the same (null).
MozReview-Commit-ID: A5wLKfD4OTL
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
This was just moved from the old code, but we always call that function in
CreateAnonymousContent, so no need to.
MozReview-Commit-ID: 1zqmQM2KdpW
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
--HG--
extra : rebase_source : c8884cca80fabf3fbd7ad7580b9755e6c6b1dd3e
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
Removes the nsIDOMHTMLObjectElement XPCOM interface, replacing it with
HTMLObjectElement and FromContent conversion usage.
MozReview-Commit-ID: dmsjSO97uh
--HG--
extra : rebase_source : 9b2c25b8681f754bc34233afccdb6fc5d38f0804
The HTML group constants in nsElementTable.cpp are only used for
nsHTMLElement::IsBlock(). This patch removes them and replaces
HTMLElement::mParentBits with a bool, mIsBlock.
The patch also inverts the sense of HTMLElement::mLeaf and renames it
mIsContainer, to match the sense of IsContainer().
Finally, the patch uses the pre-processor to use '____' instead of 'false' in
gHTMLElements. This makes it easier to read.
Note that IsBlock() has numerous disagreements with
https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements about
what constitutes a block element, but I have preserved the existing behaviour.
--HG--
extra : rebase_source : ff5ab71fdb2665fda296c0fbb712641151a7b003
This patch tweaks the REPORT_* macros to include the repetitive code that
updates aWindowTotalSizes.
--HG--
extra : rebase_source : dcc3fa12b102fd36e993ecec3cc8a170fbc84b7c
Add a diagnostic crash for the unexpected case where
GeckoService.register() is called a second time. We know the stack for
the second call, but we want to know the stack for the first call, so we
introduce this intentional crash. r=me for trivial diagnostic patch
which will be backed out ASAP.
MozReview-Commit-ID: HobtPiVSSTR
This includes minor shutdown fixes by :asuth as discussed on
https://bugzilla.mozilla.org/show_bug.cgi?id=1047098#c56 and c57.
--HG--
extra : rebase_source : d1a230cc005b2a6a71f16ef84a55851ee2f4f66e
extra : source : e89d2565799b4b02d5ee2c56da8d44dc0067f26a
These macros are not used by anything other than Microsoft static analysis
tools, but they break the MinGW compile. MinGW cannot define these macros
in C++ code, because they conflict with libstdc++ arguement names.
See Line 222 of cef0747077/tree/mingw-w64-headers/include/sal.h
MozReview-Commit-ID: J6LZpy6F3h4
--HG--
extra : rebase_source : cfef43bfe66671acfa8f9014f2845c8c954b0f03