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

155 Коммитов

Автор SHA1 Сообщение Дата
Erik Nordin ccc51b2ce0 Bug 1622322 - Improve print performance when sheets are adopted multiple times r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D68116

--HG--
extra : moz-landing-system : lando
2020-04-01 20:06:47 +00:00
Erik Nordin ca4fa23626 Bug 1621415 - Ensure adopted styles are applied when printing r=emilio
- Add functionality to clone adopted style sheets for printing.
- Add reftest to ensure that the document's adopted styles show in print.
- Add reftest to ensure that a shadow root's adopted styles show in print.

Differential Revision: https://phabricator.services.mozilla.com/D66517

--HG--
extra : moz-landing-system : lando
2020-03-24 22:54:18 +00:00
Razvan Maries a2e3903c68 Backed out changeset c0235b7bddcc (bug 1621415) for Mochitest perma failures on test_printpreview.xhtml. CLOSED TREE 2020-03-14 02:52:09 +02:00
Erik Nordin b6f5189943 Bug 1621415 - Ensure adopted styles are applied when printing r=emilio
- Add functionality to clone adopted style sheets for printing.
- Add reftest to ensure that the document's adopted styles show in print.
- Add reftest to ensure that a shadow root's adopted styles show in print.

Differential Revision: https://phabricator.services.mozilla.com/D66517

--HG--
extra : moz-landing-system : lando
2020-03-13 21:20:22 +00:00
Erik Nordin 17dbae2125 Bug 1613511 - Disallow @import rules for all Constructable StyleSheets functions r=emilio
- Add enum AllowImportRules to CSS parsing.
- `replaceSync()` will skip over @import rules and continue parsing.
- `replace()` will skip over @import rules and continue parsing.
- `insertRule()` will throw a syntax error on @import rules.
- Modify WPT test cases to reflect these changes.

Differential Revision: https://phabricator.services.mozilla.com/D61882

--HG--
extra : moz-landing-system : lando
2020-03-12 18:11:09 +00:00
Emilio Cobos Álvarez 449d4bf816 Bug 1617746 - Deal with duplicate adopted stylesheets correctly. r=nordzilla
This also fixes some other bits, like mAdoptedStyleSheets.ElementAt(0) (which
really should be "the first applicable adopted stylesheet") and so on. Added a
test for that.

The new invariant also implies that a DocumentOrShadowRoot can't appear twice in
StyleSheet::mAdopters.

Also clears adopted stylesheets in Document::ResetStylesheetsToURI, as it's the
right thing to do (if you hit that code path with constructable sheets you'd end
up asserting, as we'd call FillStyleSetDocumentSheets after and find sheets in
there). I don't quite have a test-case for that though.

Differential Revision: https://phabricator.services.mozilla.com/D64151

--HG--
extra : moz-landing-system : lando
2020-02-27 01:46:17 +00:00
Cosmin Sabou 3497aa8314 Backed out 2 changesets (bug 1617746) assertion failures on ShadowRoot.cpp.
CLOSED TREE
Backed out changeset 6cb30e866b95 (bug 1617746)
Backed out changeset 3543162b815b (bug 1617746)
2020-02-27 01:12:46 +02:00
Emilio Cobos Álvarez 1292de292e Bug 1617746 - Deal with duplicate adopted stylesheets correctly. r=nordzilla
This also fixes some other bits, like mAdoptedStyleSheets.ElementAt(0) (which
really should be "the first applicable adopted stylesheet") and so on. Added a
test for that.

The new invariant also implies that a DocumentOrShadowRoot can't appear twice in
StyleSheet::mAdopters.

Also clears adopted stylesheets in Document::ResetStylesheetsToURI, as it's the
right thing to do (if you hit that code path with constructable sheets you'd end
up asserting, as we'd call FillStyleSetDocumentSheets after and find sheets in
there). I don't quite have a test-case for that though.

Differential Revision: https://phabricator.services.mozilla.com/D64151

--HG--
extra : moz-landing-system : lando
2020-02-26 21:20:05 +00:00
Erik Nordin b837c381bc Bug 1613746 - Implement Replace() Functionality r=emilio
- Enable StyleSheet to resolve/reject a promise from Replace()
- Implement the StyleSheet::Replace() method.
- Remove use of `alternate` in WPTs, because it will soon be gone.
- Ensure that WPT test cases which modify document's style clean up after themselves.
- Modify WPT @import test cases to handle unhandled cases on promises.
- Modify WPT test case for failed imports to correctly check `NetworkError` as per the spec, rather than `NotAllowedError`.

Differential Revision: https://phabricator.services.mozilla.com/D62524

--HG--
extra : moz-landing-system : lando
2020-02-22 20:41:30 +00:00
Erik Nordin 9f804f290f Bug 1613746 - Update Replace() WebIDL to take UTF8String -- r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D62127

--HG--
extra : moz-landing-system : lando
2020-02-19 01:00:15 +00:00
Erik Nordin 14304c1fdf 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

--HG--
extra : moz-landing-system : lando
2020-02-15 01:16:46 +00:00
Boris Zbarsky c8713bf40a Bug 1612444. Improve some error messages for exceptions in layout. r=emilio
I used ThrowNotSupportedError for the not-implemented case.

Differential Revision: https://phabricator.services.mozilla.com/D61324

--HG--
extra : moz-landing-system : lando
2020-02-03 20:35:54 +00:00
nordzilla fcdb3eb4fc Bug 1608488 - Add the adoptedStyleSheets WebIDL Attribute r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D59941

--HG--
extra : moz-landing-system : lando
2020-01-15 22:27:59 +00:00
nordzilla 5465ed1ec0 Bug 1607268 - Implement replaceSync() Functionality r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D58881

--HG--
extra : moz-landing-system : lando
2020-01-14 22:34:40 +00:00
Masatoshi Kimura ef626b5951 Bug 1448967 - Remove enablePrivilege. r=mccr8,marionette-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D57243

--HG--
rename : testing/firefox-ui/resources/security/enable_privilege.html => js/xpconnect/tests/mochitest/test_enable_privilege.html
extra : moz-landing-system : lando
2020-01-08 23:14:48 +00:00
nordzilla 59bc4fd893 Bug 1607959 - Update comments on ParseSheet and ParseSheetSync r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D59251

--HG--
extra : moz-landing-system : lando
2020-01-09 00:52:44 +00:00
Emilio Cobos Álvarez 86a70df5d7 Bug 1607006 - Remove utf-16 versions of nsCSSProps::LookupProperty* and ServoCSSParser::ComputeColor. r=bzbarsky
Now that we have UTF8String in the WebIDL, we can remove quite a few of the
conversions. Do that, and lift the remaining string conversions up as needed.

Also deindent Servo_ComputeColor while touching it.

Most of the remaining copies are because either bug 1606994, or because they're
WebIDL attributes that we still need to serialize back as UTF-16 (bug 1606995).

Differential Revision: https://phabricator.services.mozilla.com/D58687

--HG--
extra : moz-landing-system : lando
2020-01-08 01:21:30 +00:00
nordzilla 7579f1a3b7 Bug 1606727 - Implement CSSStyleSheet Constructor r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D58569

--HG--
extra : moz-landing-system : lando
2020-01-07 00:19:53 +00:00
nordzilla e85b170e10 Bug 1604296 - Add Constructable StyleSheets API Under Preference r=emilio,bzbarsky
This patch adds the following functionality to the CSSStyleSheet WebIDL API
under the feature flag layout.css.constructable-stylesheets.enabled:
  - constructor()
  - replace()
  - replaceSync()

constructor(), replace() and replaceSync() are currently stubs that lack full
functionality.

Differential Revision: https://phabricator.services.mozilla.com/D58326

--HG--
extra : source : 6e675d6399cee28f204b3501de3475ea3febd12c
2019-12-31 21:58:40 +00:00
Mihai Alexandru Michis 2f43e04863 Backed out changeset 6e675d6399ce (bug 1604296) for causing failures in layout/style tests. 2020-01-01 02:05:30 +02:00
nordzilla a8096f6948 Bug 1604296 - Add Constructable StyleSheets API Under Preference r=emilio,bzbarsky
This patch adds the following functionality to the CSSStyleSheet WebIDL API
under the feature flag layout.css.constructable-stylesheets.enabled:
  - constructor()
  - replace()
  - replaceSync()

constructor(), replace() and replaceSync() are currently stubs that lack full
functionality.

Differential Revision: https://phabricator.services.mozilla.com/D58326

--HG--
extra : moz-landing-system : lando
2019-12-31 21:58:40 +00:00
Emilio Cobos Álvarez 3b3de3f3e7 Bug 1590280 - Allow to use the sheet cache to avoid parsing as long as CSSOM hasn't mutated the stylesheet. r=heycam
We need to ensure we have a unique inner so that ruleLists and such have the
right pointer identity (we could do better, really, but it's harder).

But as long as the CSSOM hasn't modified them there should be no reason not to
use the cache. We can do a deep clone synchronously instead of refetching /
reparsing.

This is important because, as of right now, just using the inspector makes the
stylesheets unique, which is unfortunate.

We'll still have the modified rule bit for sheets with @import, because our
notification system for @import is silly, and on parents of imported sheets.

Fixing those are future improvements, but I see no reason not to land this.

Differential Revision: https://phabricator.services.mozilla.com/D55163

--HG--
extra : moz-landing-system : lando
2019-12-03 11:04:03 +00:00
Emilio Cobos Álvarez 7683b3d41e Bug 1600624 - Make the StyleSheet children setup simpler. r=heycam
Using an array is much better to reason about than a manually linked list, and
allows us to preserve @import order.

Added a test for a bug that we happened not to have, but that it's not covered
by existing WPT tests.

Differential Revision: https://phabricator.services.mozilla.com/D55565

--HG--
extra : moz-landing-system : lando
2019-12-03 10:49:23 +00:00
Emilio Cobos Álvarez 912559b8d2 Bug 1600624 - Fix import rules to properly unlink their stylesheet from its parent. r=heycam
Test is hopefully self-explanatory. The children setup here is a bit bogus as
noted here and other comments, will file a followup to clean it up.

Differential Revision: https://phabricator.services.mozilla.com/D55550

--HG--
extra : moz-landing-system : lando
2019-12-03 10:43:57 +00:00
Emilio Cobos Álvarez a65fe39265 Bug 1600155 - Make @import rules less weird. r=heycam
Have their own notification for when the child sheet loads instead of
piggy-backing in the RuleAdded one, and make the callers check instead.

This prevents incorrectly marking as modified sheets which only have @import
rules.

Differential Revision: https://phabricator.services.mozilla.com/D55184

--HG--
extra : moz-landing-system : lando
2019-11-30 12:24:24 +00:00
Emilio Cobos Álvarez 2c0c593033 Bug 1600376 - Remove useless namespace qualifications in layout/style. r=jwatt
All these things are in the mozilla namespace and such. Clean up a bit.

Differential Revision: https://phabricator.services.mozilla.com/D55319

--HG--
extra : moz-landing-system : lando
2019-11-30 11:57:10 +00:00
Emilio Cobos Álvarez 3e643f22f1 Bug 1599161 - Remove some unused declarations. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D54556

--HG--
extra : moz-landing-system : lando
2019-11-25 19:15:07 +00:00
Emilio Cobos Álvarez c75e54e0c3 Bug 1593865 - Simplify code for keeping alive shared memory until all sheets go away. r=jwatt
The existing code wasn't sound, as CSSOM objects also needed to go away before
the shared memory goes away (as they keep references to them).

This is sound assuming no presence of reference cycles introduced by CSSOM.

We may want to live with this and rely on chrome code not writing cycles like
this with UA stylesheet DOM objects.

We could explicitly drop all potentially-static objects... That seems pretty
error prone though.

Or we could also just leak the shared memory buffer, is there any reason why we
may not want to do that?

Differential Revision: https://phabricator.services.mozilla.com/D51870

--HG--
extra : moz-landing-system : lando
2019-11-07 11:19:23 +00:00
Oana Pop Rus d107d8f08d Backed out 2 changesets (bug 1593865) for multiple failures on asan_malloc_linux.cc on a CLOSED TREE
Backed out changeset 40de560a7cad (bug 1593865)
Backed out changeset 6fd25e6c3d1a (bug 1593865)
2019-11-06 19:41:34 +02:00
Emilio Cobos Álvarez 2bb4b26089 Bug 1593865 - Simplify code for keeping alive shared memory until all sheets go away. r=jwatt
The existing code wasn't sound, as CSSOM objects also needed to go away before
the shared memory goes away (as they keep references to them).

This is sound assuming no presence of reference cycles introduced by CSSOM.

We may want to live with this and rely on chrome code not writing cycles like
this with UA stylesheet DOM objects.

We could explicitly drop all potentially-static objects... That seems pretty
error prone though.

Or we could also just leak the shared memory buffer, is there any reason why we
may not want to do that?

Differential Revision: https://phabricator.services.mozilla.com/D51870

--HG--
extra : moz-landing-system : lando
2019-11-06 16:17:15 +00:00
Thomas Nguyen 32ab8293ff Bug 1528697 - Expose ReferrerPolicy.webidl and use referrerpolicy enum r=smaug
ReferrerPolicy gets tossed back and forth as a uint32_t and
ReferrerPolicy enum in header file. Expose ReferrerPolicyValues from
webidl file and use consistently in native code.

Differential Revision: https://phabricator.services.mozilla.com/D41954

--HG--
extra : moz-landing-system : lando
2019-08-21 13:24:45 +00:00
Emilio Cobos Álvarez 919bb7ded3 Bug 1571530 - Cleanup slightly SheetComplete, and use the right boolean to notify. r=heycam
This is mostly straight-forward cleanup, but there's a behavior change which
was an oversight from bug 1386840, the regular mObservers stuff didn't pass the
right thing (was passing only mWasAlternate rather than whether it was
deferred).

I think that as a result, only in XML documents (since nsXMLContentSink is the
only thing that adds itself as a global CSS loader observer that ever looks at
this boolean), we may end up breaking this assert:

https://searchfox.org/mozilla-central/rev/9ae20497229225cb3fa729a787791f424ff8087b/dom/base/nsContentSink.cpp#183

(If there are any sheets with non-matching media queries and such).

But I couldn't find a test-case that broke it (tried SVG / XHTML), and in other
documents like pure XML you cannot specify a media query...

Differential Revision: https://phabricator.services.mozilla.com/D41091

--HG--
extra : moz-landing-system : lando
2019-08-16 10:56:16 +00:00
Emilio Cobos Álvarez 36d3f1e1b9 Bug 1571530 - Cleanup confusing lifetime of SheetLoadData. r=heycam
Saving a refcount bump is not worth the churn. Use a proper RefPtr<>
everywhere instead of manual refcounting, and don't make DoSheetComplete call
NS_RELEASE unconditionally.

Also, make clear by using references where null is expected or not.

Also, properly use a RefPtr in mPendingDatas, since they are strong pointers,
in fact.

Finally, remove some unused macros from nsCSSValue of which this code was the
last consumer.

Differential Revision: https://phabricator.services.mozilla.com/D41090

--HG--
extra : moz-landing-system : lando
2019-08-16 10:56:09 +00:00
Thomas Nguyen d6097dcd38 Bug 1546334 - Store separate referrerInfo in SheetLoadData and StyleSheetInfo r=heycam
The referrerInfo in SheetLoadData and StyleSheetInfo should be
different. One is used to load a style sheet and the other is used to
load resources referenced by a style sheet.

Differential Revision: https://phabricator.services.mozilla.com/D36477

--HG--
extra : moz-landing-system : lando
2019-07-16 11:43:39 +00:00
Emilio Cobos Álvarez 9839cdb574 Bug 1546255 - When an @import stylesheet is cloned, we should also make sure to restyle. r=heycam
We need to notify the whole parent chain (using NOTIFY) rather than just
mStyleSets, since mStyleSets is empty for @import-ed sheets.

Differential Revision: https://phabricator.services.mozilla.com/D31787

--HG--
extra : moz-landing-system : lando
2019-05-22 06:01:51 +00:00
Emilio Cobos Álvarez 23b7a280bf Bug 1545823 - Implement non-standard CSSStyleSheet.rules, CSSStyleSheet.addRule and CSSStyleSheet.removeRule. r=bzbarsky
It's not worth dying on this hill. Both Blink and WebKit pass the tests.

(Well, WebKit actually fails one of the latest ones I wrote, cssRules and rules
are not the same JS object, WebKit returns a new rule list. I'll file)

Spec PR in https://github.com/w3c/csswg-drafts/pull/3900.

Differential Revision: https://phabricator.services.mozilla.com/D30348

--HG--
extra : moz-landing-system : lando
2019-05-09 12:32:52 +00:00
Cameron McCormack e95797966a Bug 1539159 - Prevent modification of UA style sheets. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D25661

--HG--
extra : moz-landing-system : lando
2019-04-29 05:34:06 +00:00
Emilio Cobos Álvarez d3f8a1f5a6 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

--HG--
extra : moz-landing-system : lando
2019-04-19 04:20:31 +00:00
Cameron McCormack 3357fd0d3a Bug 1474793 - Part 13: Build and use shared memory user agent style sheets in parent and content processes. r=emilio,kmag
MozReview-Commit-ID: JasksR7F22Z

Depends on D17199

Differential Revision: https://phabricator.services.mozilla.com/D17200

--HG--
extra : moz-landing-system : lando
2019-03-30 00:23:49 +00:00
Cameron McCormack 7649df02be Bug 1474793 - Part 2: Allow references to static C++ URLExtraData objects from Rust UrlExtraData. r=emilio
Each user agent style sheet has a unique URLExtraData object containing
its URL, but since they are refcounted objects, we can't share them
easily across processes.  Rather than adding support for copying them
into a shared memory buffer like we will do with the Rust objects, here
we just set up a static array of URLExtraData objects per UA style
sheet.  The array will be filled in in a later patch.

Rust UrlExtraData objects, once they are transformed into their
sharable form and copied into the shared memory buffer, will reference
them by an index.

Depends on D17181

Differential Revision: https://phabricator.services.mozilla.com/D17182

--HG--
extra : moz-landing-system : lando
2019-03-30 00:15:43 +00:00
Emilio Cobos Álvarez d2ed260822 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
Cameron McCormack a9c935c355 Bug 1511854 - Part 1: Fix some formatting oddities in layout/ after the clang-format. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D13686

--HG--
extra : moz-landing-system : lando
2018-12-05 18:44:03 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Cameron McCormack bfe5c432f4 Bug 1498755 - Part 7: Tweak a few things in ServoBindingTypes.h r=emilio
Depends on D8648

Differential Revision: https://phabricator.services.mozilla.com/D8649

--HG--
extra : moz-landing-system : lando
2018-10-14 00:05:59 +00:00
Thomas Nguyen 02f4dbbbf9 Bug 1330487 - Part 3: Propagate referrer policy from doc/sheet to URLExtraData r=heycam
Referrer policy argurment is passed from sheet/doc to URLExtraData, default
value is RP_Unset. We use default value in some cases, particularly when there's
no certain spec talks about that (svg for example)

MozReview-Commit-ID: 5VAX1ZUXD3i

Differential Revision: https://phabricator.services.mozilla.com/D1922

--HG--
extra : moz-landing-system : lando
2018-09-17 05:36:45 +00:00
Thomas Nguyen 12582ae1aa Bug 1330487 - Part 1: Parse referrer policy from header and propagate to stylesheet r=heycam
This also fixes loading child stylesheet case, using correct referrer policy stored
in parent sheet.

MozReview-Commit-ID: ARXQyleD9Wq

Differential Revision: https://phabricator.services.mozilla.com/D1921

--HG--
extra : moz-landing-system : lando
2018-09-17 05:35:26 +00:00
Emilio Cobos Álvarez bbda2f1225 Bug 1484690 - Move the enabled state to the sheet instead of sharing it. r=heycam
We share the inner object across sheets from the same URL, so what happens here
is that, once the sheet parses and loads, we call SetEnabled() on the first
sheet, which sets the inner bit, then calls ApplicableStateChanged.

That set actually turned the second sheet complete, so when inserting the sheet,
we think that the second sheet is already enabled, and thus in the author data,
and try to insert before it. Of course there's nothing there, so we panic.

We rely on calling SetEnabled() on all the sheets already to insert them in the
styleset / author data, so this makes it clearer and fixes the bug by moving the
state to each individual sheet.

Differential Revision: https://phabricator.services.mozilla.com/D3798

--HG--
extra : moz-landing-system : lando
2018-08-21 08:55:10 +00:00
Emilio Cobos Álvarez 2054320f28 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
Emilio Cobos Álvarez 9b0a6feb0a Bug 1457920: Trivially inline a bunch of methods that had no reason for not being inlined. r=xidorn
MozReview-Commit-ID: EgcfUwwpZrB
2018-05-02 04:13:30 +02:00
Emilio Cobos Álvarez bf64474d79 Bug 1457920: Remove StyleSheet::AsServo. r=xidorn
MozReview-Commit-ID: IkkJvUFHykk
2018-05-02 04:13:21 +02:00