Commit Graph

112 Commits

Author SHA1 Message Date
Erik Nordin
c135a3a56a Bug 1617302 - Temporarily disallow duplicate style sheets r=emilio
* Disallow duplicate style sheets to unblock fuzzers until this is handled properly.

Differential Revision: https://phabricator.services.mozilla.com/D63739
2020-02-24 21:50:53 +00:00
Erik Nordin
57d2fd53ca Bug 1609288 - Apply styles from adopted stylesheets r=emilio
- Ensure that adopted styles are applied correctly to ShadowRoot
- Ensure that adopted styles are applied correctly to Document
- Add new WPT test cases to ensure the ordering of the styles.

Differential Revision: https://phabricator.services.mozilla.com/D60083
2020-02-15 01:16:46 +00:00
Boris Zbarsky
68a972f25b Bug 1612213 part 1. Switch most consumers of ThrowDOMException to the new methods. r=smaug,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D61267
2020-02-03 20:19:11 +00:00
Emilio Cobos Álvarez
c6b6e0ccc6 Bug 1610164 - Only the adoptedStyleSheets setter throws. r=nordzilla
The getter should never throw, and we can tag it as such in the IDL to avoid
useless error outparams.

Differential Revision: https://phabricator.services.mozilla.com/D60371
2020-01-22 12:10:48 +00:00
Emilio Cobos Álvarez
e5fb75e01a Bug 1610064 - Avoid including StyleSheet.h from Document.h. r=nordzilla,firefox-style-system-reviewers
This in turn requires fixing various other include hell / missing include
issues.

Differential Revision: https://phabricator.services.mozilla.com/D60337
2020-01-21 20:31:05 +00:00
nordzilla
b9626d8726 Bug 1608488 - Add the adoptedStyleSheets WebIDL Attribute r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D59941
2020-01-15 22:27:59 +00:00
Eric Rahm
daeb56f35b Bug 1606187 - Part 2b: Update users of nsClassHashtable to handle UniquePtr differences r=KrisWright,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59042
2020-01-13 19:18:56 +00:00
Emilio Cobos Álvarez
82a0ec4ed2 Bug 1603534 - Merge ShadowRoot::StyleSheets and Document::StyleSheets(). r=nordzilla
They do the same so no reason to have it duplicated. EnsureDOMStyleSheets
doesn't have any other caller so just inline it there.

Differential Revision: https://phabricator.services.mozilla.com/D56986
2019-12-12 21:51:59 +00:00
Emilio Cobos Álvarez
a309f27753 Bug 1597715 - Don't dereference this on DocumentOrShadowRoot subclasses. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D53836
2019-11-20 19:58:21 +00:00
Brian Birtles
744d4fe0cf Bug 1590971 - Move getAnimations from Document to DocumentOrShadowRoot; r=emilio,baku
This updates the Gecko implementation to match the following change to
the Web Animations spec:

  792453b952 (diff-4c9f5c055fb219a7fcad23a9a7a80b64)

Differential Revision: https://phabricator.services.mozilla.com/D50768
2019-10-29 07:13:22 +00:00
Sylvestre Ledru
893cfb7019 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D28329
2019-04-22 16:35:03 +00:00
Emilio Cobos Álvarez
8eb9ac29fc Bug 1544535 - Bug 1542263 - Don't keep two list of stylesheets in ServoStyleSet. r=firefox-style-system-reviewers,jwatt
Just one set of stylesheets is enough. While at it, unify SheetType and Origin.

Differential Revision: https://phabricator.services.mozilla.com/D27564
2019-04-19 04:20:31 +00:00
Mike Conley
eeb16a6513 Bug 1542756 - Bug 1543128 - Add option to only return visible nodes from nsIDOMWindowUtils.nodesFromRect. r=emilio
Depends on D26778

Differential Revision: https://phabricator.services.mozilla.com/D26809
2019-04-15 01:08:12 +00:00
Csoregi Natalia
aa00ef41ef Backed out 10 changesets (bug 1542756, bug 1543128, bug 1543122) for multiple media failures /test_setSinkId.html. CLOSED TREE
Backed out changeset ce3a15e1b737 (bug 1543128)
Backed out changeset cea8c1af70ad (bug 1543128)
Backed out changeset aeb23f8f45fb (bug 1543128)
Backed out changeset a2e73d143aba (bug 1543128)
Backed out changeset 1692fc6491a0 (bug 1543128)
Backed out changeset 9fbce4274cfd (bug 1542756)
Backed out changeset 20092bcebe6a (bug 1543122)
Backed out changeset 1645d577016c (bug 1543122)
Backed out changeset 3fce0b7586c1 (bug 1543122)
Backed out changeset aab68db4131b (bug 1543122)
2019-04-13 06:22:47 +03:00
Mike Conley
35c5d79449 Bug 1542756 - Bug 1543128 - Add option to only return visible nodes from nsIDOMWindowUtils.nodesFromRect. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D26809
2019-04-13 01:22:58 +00:00
Emilio Cobos Álvarez
751aa531e2 Bug 1535788 - Make the Document own the StyleSet. r=heycam
This is the last step to be able to call matchMedia on display: none iframes.

This is green, except for some startup preference query tests that I'm going to
address in a blocking bug (making LangGroupFontPrefs global, basically).

The setup is similar to the ShadowRoot one, except we don't eagerly keep the
StyleSet around up-to-date, we only fill it if it ever had a pres context.

Differential Revision: https://phabricator.services.mozilla.com/D23903
2019-04-03 07:02:00 +00:00
Masayuki Nakano
e56c690088 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 15:12:47 +00:00
Dorel Luca
6cd4166b18 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano
12ec0ad7f4 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 13:09:26 +00:00
Masayuki Nakano
5656fcd244 Bug 1518384 - Fix some lines which depend on |using namespace mozilla| and |using namespace mozilla::dom| in Document.cpp and Element.cpp r=smaug
After landing bug 1517241, some lines in Document.cpp and Element.cpp depend on
`using namespace mozilla` and `using namespace mozilla::dom` of *different*
cpp files.  Therefore, when you rename some cpp files in dom/base, you'll
hit compile error.

This patch fixes the dependency with moving some classes into mozilla namespace
and adding |mozilla::| or |dom::| to a couple of lines.

Differential Revision: https://phabricator.services.mozilla.com/D15897
2019-01-08 10:15:55 +00:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Emilio Cobos Álvarez
e461afa617 Bug 1516853 - Merge nsIDocument and nsDocument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D15498
2018-12-31 14:10:19 +00:00
Emilio Cobos Álvarez
e6804c1675 Bug 1513658 - Implement DocumentOrShadowRoot.node(s)FromPoint. r=smaug
ChromeOnly for now, needs tests that I'll make sure to land with.

Differential Revision: https://phabricator.services.mozilla.com/D14360
2018-12-24 12:33:22 +00:00
Emilio Cobos Álvarez
abb99d9257 Bug 1513749 - Deduplicate NodesFromRect and Element(s)FromPoint. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D14358
2018-12-21 11:00:47 +00:00
Emilio Cobos Álvarez
f75fa1b240 Bug 1513749 - Rename and make nodesFromRect infallible. r=mats
This way it has a more WebIDL-like signature, which will be helpful in a second.

Differential Revision: https://phabricator.services.mozilla.com/D14357
2018-12-21 11:00:38 +00:00
Emilio Cobos Álvarez
49e79e4e08 Bug 1513749 - Move NodesFromRectHelper to DocumentOrShadowRoot. r=mats
We'll factor the commont bits out in a bit.

Differential Revision: https://phabricator.services.mozilla.com/D14356
2018-12-21 11:30:28 +00:00
Emilio Cobos Álvarez
c1c595d59c Bug 1513749 - Modernize a bit nsLayoutUtils::GetFrameForPoint / GetFrameForArea. r=mats
Also add an IsElement check in GetElementFromPoint in the APZ code since I think
the element cast is unsound in presence of Shadow DOM.

Differential Revision: https://phabricator.services.mozilla.com/D14355
2018-12-21 11:22:07 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Timothy Guan-tin Chien
2a63ce2955 Bug 1503019 - Part I, Remove dom.webcomponents.shadowdom.enabled r=smaug
This patch removes the dom.webcomponents.shadowdom.enabled pref and all its
references, including the following functions:

* nsContentUtils::IsShadowDOMEnabled()
* nsIDocument::IsShadowDOMEnabled()
* nsDocument::IsShadowDOMEnabled(JSContext* aCx, JSObject* aGlobal)
* nsDocument::IsShadowDOMEnabled(const nsINode* aNode)
* nsTextNode::IsShadowDOMEnabled(JSContext* aCx, JSObject* aObject)

This function is renamed and updated to nsDocument::IsCallerChromeOrAddon():

* nsDocument::IsShadowDOMEnabledAndCallerIsChromeOrAddon(JSContext* aCx, JSObject* aObject)

I didn't change the tests that load Shadow DOM tests in an iframe, in the interest of keeping hg annotation history.

Differential Revision: https://phabricator.services.mozilla.com/D11183
2018-11-15 06:51:07 +00:00
Andreea Pavel
f667cd7449 Backed out 2 changesets (bug 1503019) for failing crashtests at dom/base/crashtests/1505811.html on a CLOSED TREE
Backed out changeset 06b12fd41ff1 (bug 1503019)
Backed out changeset 7b845eac9dd7 (bug 1503019)
2018-11-15 01:52:30 +02:00
Timothy Guan-tin Chien
0644cf5b9d Bug 1503019 - Part I, Remove dom.webcomponents.shadowdom.enabled r=smaug
This patch removes the dom.webcomponents.shadowdom.enabled pref and all its
references, including the following functions:

* nsContentUtils::IsShadowDOMEnabled()
* nsIDocument::IsShadowDOMEnabled()
* nsDocument::IsShadowDOMEnabled(JSContext* aCx, JSObject* aGlobal)
* nsDocument::IsShadowDOMEnabled(const nsINode* aNode)
* nsTextNode::IsShadowDOMEnabled(JSContext* aCx, JSObject* aObject)

This function is renamed and updated to nsDocument::IsCallerChromeOrAddon():

* nsDocument::IsShadowDOMEnabledAndCallerIsChromeOrAddon(JSContext* aCx, JSObject* aObject)

I didn't change the tests that load Shadow DOM tests in an iframe, in the interest of keeping hg annotation history.

Differential Revision: https://phabricator.services.mozilla.com/D11183
2018-11-14 19:34:52 +00:00
Olli Pettay
24d8f0d24c Bug 1490406, radio groups should work in shadow DOM, r=ehsan 2018-09-21 03:39:47 +03:00
Xidorn Quan
5fa29d57e1 Bug 1490539 part 1 - Change FullScreen to Fullscreen in various names. r=smaug
Some methods on Window are not changed because they are part of public
interface. Method names from widget are also unchanged.

Many "full-screen" in comments are also updated to "fullscreen" instead.

Differential Revision: https://phabricator.services.mozilla.com/D5639
2018-09-12 15:51:30 +00:00
Emilio Cobos Álvarez
17c50349c6 Bug 1487198 - Measure memory usage of the identifier map in ShadowRoot as well. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D4615
2018-08-29 22:49:04 +00:00
Emilio Cobos Álvarez
8676ef32f8 Bug 1486728 - Report memory usage of Shadow DOM style data. r=njn
This is on top of bug 1486623.

While at it removed the 'stale computed styles' report, since it was unused
since I removed the undisplayed maps.

Differential Revision: https://phabricator.services.mozilla.com/D4453
2018-08-29 22:24:29 +00:00
Emilio Cobos Álvarez
aadf572cfd Bug 1486623 - Skip less nodes when reporting memory, and report ShadowRoot's StyleSheets. r=bzbarsky
This moves all the node-specific reporting to nsIDocument.

OrphanReporter delegates all the reporting to that and then returns the sum of
all sizes, which is not ideal but was pre-existing.

Also, I moved the main mStyleSheets size reporting to DocumentOrShadowRoot for
it to be shared between document and ShadowRoot.

I'll add memory reporting for the computed stylesheet maps and such in the
ShadowRoot in a followup.

I went through all the XBL bindings, though it seems I could just use
GetBindingWithContent(), since according to:

  https://searchfox.org/mozilla-central/rev/55da592d85c2baf8d8818010c41d9738c97013d2/dom/xbl/nsXBLBinding.cpp#615

We don't allow multiple bindings to contribute anon content. Anyway it was the
same amount of code...

Differential Revision: https://phabricator.services.mozilla.com/D4433
2018-08-29 22:19:42 +00:00
Emilio Cobos Álvarez
e72f751ec2 Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 22:01:52 +02:00
Narcis Beleuzu
987fd9134c Backed out changeset 9c08d6d5d6f2 (bug 1483882) for reftest failures on svg/fragid-shadow. CLOSED TREE 2018-08-17 21:27:14 +03:00
Emilio Cobos Álvarez
8fbacd6bfb Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 19:14:47 +02:00
Noemi Erli
0f72fdc0f5 Backed out 2 changesets (bug 1483882) for reftest failures in uilds/worker/workspace/build/tests/reftest/tests/layout/reftests/svg/fragid-shadow-3.html
Backed out changeset 4656d3bf8e9c (bug 1483882)
Backed out changeset 4105f56578d4 (bug 1483882)
2018-08-17 18:13:14 +03:00
Emilio Cobos Álvarez
0530f9d11c Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 11:35:15 +00:00
Noemi Erli
26a77ed8e1 Backed out 1 changesets (bug 1483882) for reftest failures in builds/worker/workspace/build/tests/reftest/tests/layout/reftests/svg/fragid-shadow-3.html on a CLOSED TREE
Backed out changeset d25d4da4aad2 (bug 1483882)
2018-08-17 13:37:55 +03:00
Emilio Cobos Álvarez
5f46b0ffb6 Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 09:19:47 +00:00
Kris Maglione
571bb15009 Bug 1480244: Part 0 - Fix unified build bustage. r=me 2018-08-11 15:26:49 -07:00
Emilio Cobos Álvarez
c20183b4f9 Bug 1475351: Properly clear associated ShadowRoot from StyleSheet objects. r=smaug
Just like we do from the document's destructor.

MozReview-Commit-ID: DygmZ0EI9es
2018-07-15 12:37:44 +02:00
Emilio Cobos Álvarez
ae04fa32db Backed out changeset e0841c88d3ae (bug 1474466) for landing with the wrong bug number. r=me 2018-07-15 12:36:07 +02:00
Emilio Cobos Álvarez
210c667dad Bug 1474466: Properly clear associated ShadowRoot from StyleSheet objects. r=smaug
Just like we do from the document's destructor.

MozReview-Commit-ID: DygmZ0EI9es
2018-07-15 12:27:05 +02:00
Emilio Cobos Álvarez
1cabaa7063 Bug 1470358: Deduplicate sheet insertion code between document and shadow root. r=heycam
Summary: Sort of straight-forward cleanup.

Test Plan: Covered by existing tests.

Reviewers: heycam

Reviewed By: heycam

Bug #: 1470358

Differential Revision: https://phabricator.services.mozilla.com/D1763
2018-06-22 12:57:37 +02:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Emilio Cobos Álvarez
7fb56d1800 Bug 1459529: Make sheets be associated to a shadow root too potentially. r=bz
MozReview-Commit-ID: Cd8xJuLRY5w
2018-05-15 18:44:25 +02:00