Commit graph

3,685 commits

Author SHA1 Message Date
Matt A. Tobin
efb5979ad5 Bug 1411754 - Rename PresShell::DestroyFramesFor to DestroyFramesForAndRestyle
Tag #1375
2020-04-18 07:05:22 +08:00
Matt A. Tobin
1846dde168 Bug 1404789 - Stop reconstructing frames for the whole shadow root each time content is inserted in a shadow tree
* Cleanup a bit the ShadowRoot code
* Privatize ShadowRoot methods
* When the shadow tree distribution changes, post a restyle + reframe
* Simplify ShadowRoot::IsPooledNode
* Be a bit better at detecting distribution changes

Tag #1375
2020-04-18 07:05:19 +08:00
Matt A. Tobin
6b075994f5 Bug 1408341 - Implement assignedSlot on Element and Text
Tag #1375
2020-04-18 07:05:16 +08:00
Matt A. Tobin
d3c2a6b6b5 Bug 1381134 - Ensure we're using the correct frame for the :after/:before references
Tag #1375
2020-04-18 07:05:13 +08:00
Matt A. Tobin
592c34bc79 Bug 1402941 - Add HTMLSlotElement
Tag #1375
2020-04-18 07:05:10 +08:00
Matt A. Tobin
2a185b517b Bug 1401097 - Simplify gHTMLElements and remove redundant conditions in nsXHTMLContentSerializer::LineBreakAfterClose()
Tag #1375
2020-04-18 07:05:06 +08:00
Matt A. Tobin
5917636e83 Bug 1396584 - Remove support for multiple ShadowRoots
Tag #1375
2020-04-18 07:05:03 +08:00
Matt A. Tobin
a665a8796a Bug 1400777 - Slim down nsElementTable.h
* Remove eHTMLTags
* De-expose HTML group constants[]
* De-expose gHTMLElements[]
* Split nsHTMLElement
* Clean up nsElementTable.{cpp,h}
* Fixup for eHTMLTag removal in Parser

Tag #1375
2020-04-18 07:05:00 +08:00
Matt A. Tobin
9928baf912 Issue #1375 - Stop largely using the parser service
This is based on Bug 1395828

* Add nsHTMLElement::IsBlock()
* Rename nsHTMLTags methods
* Remove AssertParserServiceIsCorrect()
* Remove most uses of nsIParserService/nsParserService
2020-04-18 07:04:57 +08:00
Matt A. Tobin
cc649173d2 Bug 1396568 - Make DocumentFragment::mHost a strong reference (so that ShadowRoot.host doesn't become null)
Tag #1375
2020-04-18 07:04:53 +08:00
Matt A. Tobin
390ef42e80 Bug 1394300 - Streamline nsElementTable.cpp
Tag #1375
2020-04-18 07:04:50 +08:00
Matt A. Tobin
f63cd76698 Bug 1389743 - Only reconstruct frames synchronously from ContentRemoved when called from frame construction
Tag #1375
2020-04-18 07:04:47 +08:00
Matt A. Tobin
fe13c5bffc Bug 1375701 - Atomize class attribute value in the parser in the innerHTML case
Tag #1375
2020-04-18 07:04:45 +08:00
Matt A. Tobin
a25be6bc13 Bug 1382357 - Wait to destroy frames until after we've successfully fetched the binding
Tag #1375
2020-04-18 07:04:42 +08:00
Matt A. Tobin
6ce9cc2a25 Bug 1377978 - Make nsRange use uint32_t to offset
Tag #1375
2020-04-18 07:04:38 +08:00
Matt A. Tobin
84d3b44b86 Bug 1377648 - Fix HTMLSummaryElement::IsSummary() on removing the element
* Use inFlowFrame to check the target frame is summary and its parent is details
* Check summary frame instead of summary element on removing the summary

Tag #1375
2020-04-18 07:04:35 +08:00
Matt A. Tobin
9b868f0298 Bug 1368547 - Remove nsFrameManagerBase::mPlaceholderMap and instead store the placeholder on a frame property on the out-of-flow
Tag #1375
2020-04-18 07:04:32 +08:00
Matt A. Tobin
854827bd83 Bug 1368802 - nsFrameIterator::GetPlaceholderFrame should only try to get the placeholder for out-of-flow frames, because in-flow frames never have a placeholder
Tag #1375
2020-04-18 07:04:29 +08:00
Matt A. Tobin
3b2a22f085 Bug 1373798 - Move HTML dir attribute state into event state flags
* Stop calling SetHasDirAuto/ClearHasDirAuto in input element code
* Introduce event state flags that track the state of an element's dir attribute
* Rewrite our existing checks for the state of the dir attr on top of the new event state flags
* Add pseudo-classes for matching on the dir attribute states
* Use the new dir attribute pseudoclasses in html.css

Tag #1375
2020-04-18 07:04:25 +08:00
Matt A. Tobin
4e14355697 Bug 1372829 - Part 2: mozilla::EditorBase should cache raw pointer of nsISelectionController and nsIDocument with nsWeakPtr
Tag #1375
2020-04-18 07:04:22 +08:00
Matt A. Tobin
5d444ef68a Bug 1332353 - Make it clearer when a stylesheet is really owned by its mDocument
Tag #1375
2020-04-18 07:04:19 +08:00
Matt A. Tobin
db34da8e01 Bug 1372829 - Part 1: Make mozilla::PlaceholderTransaction inherit mozilla::SupportsWeakPtr instead of nsSupportsWeakReference
Tag #1375
2020-04-18 07:04:14 +08:00
Matt A. Tobin
8e7852efa2 Bug 1371170 - Add non-virtual EditorBase::GetSelectionController
Tag #1375
2020-04-18 07:04:10 +08:00
Matt A. Tobin
32e4ad01e3 Bug 1337698 - Use UniquePtr instead of nsAutoPtr in editor
* PlaceholderTransaction should use UniquePtr
* HTMLEditor should use UniquePtr
* TypeInState should use UniquePtr

Tag #1375
2020-04-18 07:04:07 +08:00
Matt A. Tobin
6aa436b588 Bug 1365092 - Move side effects of SetAttr and ParseAttribute to BeforeSetAttr and AfterSetAttr
* Moves side effects of nsGenericHTMLElement and Element's SetAttr, UnsetAttr, and ParseAttribute functions to the corresponding BeforeSetAttr and AfterSetAttr functions
* Moves side effects of HTMLAnchorElement's SetAttr, UnsetAttr, and ParseAttribute functions to the corresponding BeforeSetAttr and AfterSetAttr functions
* Moves side effects of HTMLImageElement's SetAttr function to the corresponding BeforeSetAttr and AfterSetAttr functions
* Moves side effects of SetAttr, UnsetAttr, and ParseAttribute functions to BeforeSetAttr and AfterSetAttr

Tag #1375
2020-04-18 07:04:04 +08:00
Matt A. Tobin
9d8343e19c Bug 1367683 - Optimize initializing nsRange
Tag #1375
2020-04-18 07:04:01 +08:00
Matt A. Tobin
9220996e92 Bug 1348851 - Use new block when better selection isn't found.
Tag #1375
2020-04-18 07:03:58 +08:00
Matt A. Tobin
1f233fa14b Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr
Tag #1375
2020-04-18 07:03:55 +08:00
Matt A. Tobin
658bd351a0 Bug 1361086 - Simplify UndisplayedMap::GetListFor/GetOrCreateListFor to take nsIContent* rather than nsIContent**
Tag #1375
2020-04-18 07:03:51 +08:00
Matt A. Tobin
34d576d55d Bug 1360157 - Assert that a display: contents child always has a parent
Tag #1375
2020-04-18 07:03:49 +08:00
Matt A. Tobin
d3ffda520f Bug 1355351 - Make pseudo-elements return the correct style via getComputedStyle
* Add a node property to access the ::before and ::after pseudo-elements
* Look for the frame for ::before and ::after pseudos
* Clean up pseudo-element props
* Simplify nsLayoutUtils callers, and make child iterators notice display: contents pseudos

Tag #1375
2020-04-18 07:03:44 +08:00
Matt A. Tobin
6b48075b57 Issue #1375 - Include content rules from HTMLTableCellElement::WalkContentStyleRules and move to the mapped attr functionality
* Bugs 1341647 and 1341648
2020-04-18 07:03:41 +08:00
Matt A. Tobin
922cbf0217 Bug 1352389 -Don't push extra script blocker on stack when setting attributes
Tag #1375
2020-04-18 07:03:37 +08:00
Matt A. Tobin
e1195a86e0 Bug 1296516 - Cleanup a bit of code in layout/base
* Tidy RestyleManager::ContentStateChanged
* Convert UndisplayedMap to a typed hashtable
* Cleanup infallible or unchecked nsCSSFrameConstructor methods

Tag #1375
2020-04-18 07:03:34 +08:00
Matt A. Tobin
c37b4d0c63 Bug 1330843 - Allow JS to create NAC pseudo-elements
Tag #1375
2020-04-18 07:03:31 +08:00
Matt A. Tobin
fda213de85 Bug 1346623 - Allow anonymous content created with nsIDocument::InsertAnonymousContent can change from non-native to native AC
* Prevent canvas custom content from becoming NAC when reframing the root element
* Add an API to get computed style values through an AnonymousContent object

Tag #1375
2020-04-18 07:03:28 +08:00
Matt A. Tobin
5a9d76e6d5 Bug 1347640 - HTMLInputElement shouldn't try to cancel image request on all the type changes
* Move the changing of HTMLInputElement's mType from ParseAttribute to AfterSetAttr
* Move a few more things from AfterSetAttr to HandleTypeChange

Tag #1375
2020-04-18 07:03:25 +08:00
Matt A. Tobin
7a3f9be509 Bug 656197 - Push state updates further out across beforesetattr/aftersetattr
* Remove the generic attr preparsing mechanism from BeforeSetAttr and just preparse class attributes directly in the one place that needs to do it
* Move calls to BeforeSetAttr to after AttributeWillChange
* Remove UpdateState calls in BeforeSetAttr
* Move calls to AfterSetAttr to before UpdateState when manipulating attributes
* Remove UpdateState calls from AfterSetAttr, since they are no longer needed there

Tag #1375
2020-04-18 07:03:22 +08:00
Matt A. Tobin
87bc2cab4e Bug 1343879 - Be consistent about the parent style context the document-level anonymous content container should get: it should get no parent style context.
Tag #1375
2020-04-18 07:03:18 +08:00
Matt A. Tobin
484b481031 Issue #1375 - Overload FromContent() to work with const 2020-04-18 07:03:16 +08:00
Matt A. Tobin
8e51f64cad Bug 1343937 - Fix a crash in nsWrapperCache.h
* Implement and use GetInFlowParent
* Exempt scrollbar NAC from the new NAC semantics

Tag #1375
2020-04-18 07:03:11 +08:00
Matt A. Tobin
e5725baa34 Bug 1340885 - Null check frame's content when searching for NAC ancestors in GetCorrectedParent
Tag #1375
2020-04-18 07:03:08 +08:00
Matt A. Tobin
69139427d5 Bug 1340333 - Eagerly compute whether a frame is really a browser.
Tag #1375
2020-04-18 07:03:06 +08:00
Matt A. Tobin
b723a5c8c4 Bug 1331322 - Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time
* Stop using a node bit for HasExplicitBaseURI
* Move MAY_HAVE_CLASS to mBoolFlags
* Add a flag to indicate that a node is native anonymous content
* Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time, and eliminate explicit style contexts in nsIAnonymousContentCreator::ContentInfo

Tag #1375
2020-04-18 07:03:03 +08:00
Matt A. Tobin
31048968fd Bug 1336011 - Fix Crash in InvalidArrayIndex_CRASH in mozilla::EditorBase::DeleteSelectionImpl
* EditorBase shouldn't refer mActionListeners directly in loops because it might be removed during a loop
* Create an alias of the type of mEditorObservers
* Create an alias of the type of mDocStateListeners

Tag #1375
2020-04-18 07:03:00 +08:00
Matt A. Tobin
5b8f93694a Bug 1334358 - Remove nsCSSFrameConstructor::CreateAnonymousFrames
Tag #1375
2020-04-18 07:02:57 +08:00
Matt A. Tobin
499252b89f Bug 1334247 - Remove nsIAnonymousContentCreator::CreateFrameFor
Tag #1375
2020-04-18 07:02:54 +08:00
Matt A. Tobin
02ff2ef376 Issue #1375 - Fix unified sources 2020-04-18 07:02:50 +08:00
Matt A. Tobin
a03838af22 Bug 1321284 - Crash in nsCSSFrameConstructor::GetInsertionPrevSibling when trying to reframe native anonymous content
* Make StyleChildrenIterator skip NAC generated by root element primary frame ancestors.
* Add nsINode::GetFlattenedTreeParentNodeForStyle.
* Add iterator class to find all restyle roots.

NOTE: Parts 1, 2, and "4.2"

Tag #1375
2020-04-18 07:02:47 +08:00
Matt A. Tobin
cb2b45e472 Bug 1305458 - Changing -moz-appearence on hover breaks change event
* Rename nsIDOMEventTarget::PreHandleEvent to nsIDOMEventTarget::GetEventTargetParent
* Add nsIDOMEventTarget::PreHandleEvent
* Add EventTargetChainItem::GetFirstEventTarget
* Call EventTargetChainItem::PreHandleEvent even it sets mCanHandle=false
* Move form control frame focus/blur from nsGenericHTMLFormElement::GetEventTargetParent to PreHandleEvent
* Move fire change event from HTMLTextAreaElement::GetEventTargetParent to PreHandleEvent
* Refine nsXULElement::GetEventTargetParent
* Move dispatch XUL command from nsXULElement::GetEventTargetParent to PreHandleEvent
* Move fire events and set value from HTMLInputElement::GetEventTargetParent to PreHandleEvent
* Add test case
* Let HTMLInputElement delegate event handling to it's parent class
* Refine EventTargetChain flags to reduce overheads
* Refine event target chain creation
* Refine assertion in EventTargetChainItem::Create

Tag #1375
2020-04-18 07:02:44 +08:00