Commit Graph

464 Commits

Author SHA1 Message Date
Nicholas Nethercote
7dbfdaf890 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
2017-10-03 09:05:19 +11:00
Sebastian Hengst
5a50c5cb42 merge autoland to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 7Ez95T2ivfR
2017-10-07 10:37:39 +02:00
Tobias Schneider
7372e9b4b3 Bug 1399603 - [intersection-observer] Stop observing a target when intersection root is deleted. r=mrbkap 2017-10-06 07:39:54 -07:00
Tobias Schneider
5c3b72e3a7 Bug 1316277 - Move intersection observer list from DOMSlots to a property. r=mrbkap 2017-10-05 20:42:55 -07:00
Cameron McCormack
e2da486c83 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
2017-10-06 17:26:07 +08:00
Emilio Cobos Álvarez
3e390978c7 Bug 1404897: Implement Element.matches using stylo. r=heycam
MozReview-Commit-ID: 7nxYVcweu0W
2017-10-02 18:14:15 +02:00
Sebastian Hengst
1ce9242750 Backed out changeset cfc393773f0d (bug 1404897) 2017-10-04 12:55:11 +02:00
Emilio Cobos Álvarez
ff70a3900c Bug 1404897: Implement Element.matches using stylo. r=heycam
MozReview-Commit-ID: 7nxYVcweu0W
2017-10-02 18:14:15 +02:00
Sebastian Hengst
b1b71f0687 Backed out changeset 3833f3700021 (bug 1404897) 2017-10-04 11:24:26 +02:00
Emilio Cobos Álvarez
7233693b2d Bug 1404897: Implement Element.matches using stylo. r=heycam
MozReview-Commit-ID: 7nxYVcweu0W
2017-10-04 11:01:42 +02:00
Wes Kocher
faa6e08cb7 Merge inbound to central, a=merge
MozReview-Commit-ID: CvJ9hmTQBcR
2017-10-02 16:22:37 -07:00
John Dai
60db6a6216 Bug 1121994 - Implement adopted callback for custom elements. r=smaug 2017-10-02 00:42:00 -04:00
Emilio Cobos Álvarez
4322c150ab 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
2017-10-02 08:50:20 +02:00
Wes Kocher
0b96efb195 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 6RdWW73Lc0A
2017-09-28 17:16:12 -07:00
Thomas Wisniewski
dbadff6ef6 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
2017-09-28 16:57:24 -04:00
Emilio Cobos Álvarez
4af3097d56 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
31d294f1ea 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
cb194e85c7 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
23b9697aca 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
2017-09-27 12:23:33 -04:00
Nicholas Nethercote
9fda5528d2 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
2017-09-26 08:33:21 +10:00
Jessica Jong
4cc291e4f1 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
01630916ea 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
a3771e10e6 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
b14fd4ecb2 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
f9802d797f 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
98580ecdff Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap 2017-09-25 18:09:26 +03:00
Emilio Cobos Álvarez
44840c154b Bug 1402684: Clear the servo data early, but the flags later, in UnbindFromTree. r=bholley
MozReview-Commit-ID: 5rRGKq39smW
2017-09-24 19:16:10 +02:00
Emilio Cobos Álvarez
dfe8c6ad4d 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
af22322233 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
e8236888ee 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.
2017-09-22 14:35:46 +10:00
Nicholas Nethercote
dde5d4749e 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
2017-09-18 13:54:30 +10:00
Boris Zbarsky
c60153e7f7 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
792189dd57 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
6eeff31694 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
2017-09-08 14:59:04 +02:00
Nicholas Nethercote
bcfd711533 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.
2017-09-09 00:12:25 +10:00
Masayuki Nakano
87466056af 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
2017-09-07 22:54:49 +09:00
Hiroyuki Ikezoe
8b6e7ed809 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
2017-09-04 12:24:07 +09:00
Sebastian Hengst
150f2fb7bc merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: Gsw48p934sI
2017-09-02 10:54:44 +02:00
Xidorn Quan
664a96a3d9 Bug 1395725 - Don't add children of <area> as servo restyle root. r=emilio
MozReview-Commit-ID: LI7Lv1aD3PJ
2017-09-02 09:56:36 +10:00
Boris Zbarsky
6614b9e3da 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
fc2cf43a5a 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
4f0542aafb 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
d28b161356 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
2017-08-31 09:42:26 +02:00
Emilio Cobos Álvarez
d5c78738e8 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
2017-08-31 09:42:25 +02:00
Emilio Cobos Álvarez
819c1a0564 Bug 1394935: Fix a little typo in NoteDirtyElement. r=bholley
MozReview-Commit-ID: LMQlNcJjz80
2017-08-31 09:42:23 +02:00
Emilio Cobos Álvarez
00ae3c9071 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
2017-08-31 09:42:22 +02:00
Emilio Cobos Álvarez
5548d11037 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
2017-08-31 09:42:21 +02:00
Sebastian Hengst
07a2d01b62 merge mozilla-central to autoland. r=merge a=merge 2017-08-29 20:31:58 +02:00
Jessica Jong
db69ab73df 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
277e2cdbb6 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