Commit Graph

485 Commits

Author SHA1 Message Date
Olli Pettay
5444fa0f06 bug 1472427, <img usemap> should work in shadow DOM, r=baku 2018-07-04 20:26:09 +03:00
Olli Pettay
2e64f41c9f Bug 1428246 - The attributeChangedCallback is fired twice for the *first* style attribute change, r=peterv
The idea with this patch is that style code will first call
InlineStyleDeclarationWillChange before style declaration has changed, and SetInlineStyleDeclaration once it has changed.

In order to be able to report old attribute value, InlineStyleDeclarationWillChange reads the value and also calls AttributeWillChange (so that DOMMutationObserser can grab the old value). Later SetInlineStyleDeclaration passes the old value to
SetAttrAndNotify so that mutation events and attributeChanged callbacks are handled correctly.

Because of performance, declaration can't be cloned for reading the old value. And that is why the recently-added callback is used to detect when declaration is about to change (bug 1466963 and followup bug 1468665).

To keep the expected existing behavior, even if declaration isn't changed, but just a new declaration was created (since there wasn't any), we need to still run all these
willchange/set calls. That is when the code has 'if (created)' checks.

Since there are several declaration implementation and only nsDOMCSSAttributeDeclaration needs the about-to-change callback, GetPropertyChangeClosure is the one to initialize the callback closure, and the struct which is then passes as data to the closure.

Apparently we lost mutation event testing on style attribute when the pref was added, so test_style_attr_listener.html is modified to test both pref values.
2018-06-26 12:54:00 +03:00
Chris Pearce
fd68a38fe1 Bug 1470346 - Gesture activate all documents in tab, even across origins, upon user interaction. r=smaug
Sometimes when video is playing, a preroll ad plays, and that may be in a cross
origin iframe. If autoplay media is disabled, we require a user gesture in a
document before playback in that document is permitted, and we require each
origin to be gesture activated separately. So in the cross origin preroll video
add case, then the user will have to click once to unblock playback for the
cross origin ad, and then once the preroll ad finishes, the user will have to
click again to activate playback of the same origin content video.

This is a bad user experience.

So we should instead make gesture activation propagate up the doc tree
irrespective of crossing origins.  This way, when the user clicks to activate,
all documents in that tab are also also effectively gesture activated, and so
can autoplay.

MozReview-Commit-ID: 1HZQ5zkubR
2018-06-22 11:52:20 +12:00
Emilio Cobos Álvarez
a7e871ac80 Bug 1470163: Load mathml.css upfront, and remove the concept of on-demand builtin UA sheets. r=heycam
On top of the two depending bugs.

Funny how there's a comment referencing bug 77999.

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

MozReview-Commit-ID: LCuJROu92bo
2018-06-25 10:54:38 +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
b88a6a63f5 Bug 1468133: Remove the optimization to lazily load non-SVG styles since it's not relevant anymore. r=heycam
This was a memory-saving optimization introduced as part of dependencies for bug
686875, but a more general system landed in bug 77999 for Gecko and
https://github.com/servo/servo/pull/18509 for Servo.

So now it's probably even a bit of a pessimization (though probably not huge),
and given this causes bugs like bug 1462742, bug 1157592, and bug 1468145, and
fishiness like the one pointed out in this bug, we may as well remove it.

The performance impact of having to lookup through more rules should be minimal
given the bloom filter and the rule hash optimizations.

This makes me wonder whether we could remove the whole concept of on-demand UA
sheets, since they've caused pain, for example, when the frontend people try
loading <svg>s from NAC (since that triggers sheet loading from frame
construction, which is not good). I'm not concerned about loading mathml.css and
svg.css everywhere, though xul.css may not be as doable since it adds a bunch of
attribute-dependent selectors. Though on the other hand I asserted in the
xul.css code and we don't load it in content with <video> / <input
type="date/time/etc"> and such, afaict, so maybe now that legacy addons are gone
we can remove that sheet from content processes altogether.

MozReview-Commit-ID: 9JCWNZj6BkT
2018-06-22 03:42:46 +02:00
8b5d84e341 Bug 1469385 - Remove InsertChildAt_Deprecated and RemoveChildAt_Deprecated, r=bz,smaug 2018-06-19 12:21:18 +03:00
Boris Zbarsky
52d231beba Bug 1466991 part 1. Factor out ShouldUseXBLScope. r=smaug
We're going to add another consumer in the next changeset.
2018-06-14 19:17:41 -04:00
Xidorn Quan
177717d2c9 Bug 1423017 - Add a telemetry for out-of-reach overflowing on root. r=botond
MozReview-Commit-ID: 2CyZTVBFP59
2018-06-01 15:35:32 +10:00
arthur.iakab
d31c592e90 Backed out changeset 83c614479dda (bug 1423017) For braking Android reftests 2018-06-08 13:44:17 +03:00
Xidorn Quan
47516fb3bd Bug 1423017 - Add a telemetry for out-of-reach overflowing on root. r=botond
MozReview-Commit-ID: 2CyZTVBFP59
2018-06-01 15:35:32 +10:00
Christoph Kerschbaumer
f7a0ac1bfc Bug 1459204: Have about:privatebrowsing rely on RemotePageManager instead of AboutCapabilities. r=mossop,baku 2018-06-07 11:32:27 +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
Brendan Dahl
415c5ca559 Bug 1460639 - Apply persisted window settings before layout. r=smaug
Previously, with early first paint enabled, nsXULWindow incorrectly loaded the
persisted window settings from about:blank and would only load them once.
Instead, load the settings before starting layout.

MozReview-Commit-ID: 6K4ofkbmHHb
2018-05-16 18:13:59 -07:00
Nicolas B. Pierron
d363dfafb0 Bug 1461672 - Remove Telemetry probe added to tune the JSBC. r=francois,bkelly 2018-05-21 17:17:18 +00:00
Emilio Cobos Álvarez
967e0989f6 Bug 1461701: Remove nsUpdateType and UPDATE_CONTENT_MODEL. r=smaug
MozReview-Commit-ID: 33iBMZqnkAc
2018-05-15 18:47:16 +02:00
Olli Pettay
eb5e5c2bad Bug 1461278 - Print a note to the web console when a web site is using shadow DOM (v1), preffed off by default, r=emilio 2018-05-15 02:04:32 +03:00
Narcis Beleuzu
a6437739fb Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-05-15 00:41:06 +03:00
Adrian Wielgosik
93eb294385 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle
2018-05-11 19:46:15 +02:00
Adrian Wielgosik
39fc49cc8e Bug 1460940 - Convert NS_NewDOMDocument to use nsIDocument. r=bz
MozReview-Commit-ID: GoJ30YZGRhq
2018-05-11 19:46:15 +02:00
Olli Pettay
3454bddc96 Bug 1460435 - Move ID observing from Document to DocumentOrShadowRoot, r=peterv 2018-05-14 21:39:53 +03:00
Andrea Marchesini
bb748f8fe9 Bug 1302449 - Remove the "referrer" directive in CSP, r=ckerschb 2018-05-09 13:15:08 +02:00
Emilio Cobos Álvarez
501fcbe528 Bug 1459497: Refactor the preferred style set stuff in order to move the state away from the loader. r=heycam
The main thing to have into account is that the styleset to use is either
mLastStyleSheetSet, or mPreferredStyleSheetSet.

This last one gets set from Loader::IsAlternateSheet, which is quite nasty and
what I'm trying to remove.

MozReview-Commit-ID: BI4P1Chqtli
2018-05-07 03:55:36 +02:00
Boris Zbarsky
599ef690cf Bug 1455674 part 16. Remove most use of nsIDOMElement in dom. r=qdot 2018-04-26 23:37:34 -04:00
Boris Zbarsky
f4b24766fe Bug 1455674 part 8. Remove nsIDOMElement use from nsIDOMWindowUtils. r=qdot 2018-04-26 23:35:19 -04:00
Emilio Cobos Álvarez
1592c46ebb Bug 1455885: Inline and make document casts fatally assert. r=bz
For consistency with AsElement / AsContent / AsDocumentFragment, etc.

MozReview-Commit-ID: 8GSj8R9hLBe
2018-04-26 17:05:12 +02:00
Adrian Wielgosik
38f9a663ce Bug 1447389 - Remove nsIDOMNodeList. r=bz
MozReview-Commit-ID: 11szZP6dS6V
2018-04-25 23:01:30 +02:00
Emilio Cobos Álvarez
72d7ca1d53 Bug 1454233: Introduce nsINode::{IsDocument, AsDocument}. r=bz
MozReview-Commit-ID: InXKFstGgSU
2018-04-20 01:30:10 +02:00
Masatoshi Kimura
63783eda6f Bug 1445541 - Enable the character encoding menu when the document is decoded as UTF-8 and an error is found, instead of disabling it when no errors are found. r=hsivonen
MozReview-Commit-ID: 1e6kQbAxcqm
2018-04-06 06:20:28 +09:00
Emilio Cobos Álvarez
c94e7011c1 Bug 1441136: Add a fast way to enumerate ShadowRoots in a document. r=smaug
MozReview-Commit-ID: 7QffP56jsyk
2018-04-04 07:40:34 +02:00
Ciure Andrei
0b523d8933 Merge inbound to mozilla-central. a=merge 2018-04-04 00:54:16 +03:00
Johann Hofmann
fdf223d9d7 Bug 1450315 - Remove document.allowUnsafeHTML. r=bz
This attribute was added in bug 1432966 when we started sanitizing
chrome usage of innerHTML to allow devtools to use custom attributes
in React via dangerouslySetInnerHTML.

Devtools removed its usage of dangerouslySetInnerHTML in bug 1434155, so
document.allowUnsafeHTML is no longer used and can be removed.

MozReview-Commit-ID: 8xTVZDmPqRa
2018-03-31 10:27:19 +02:00
Ciure Andrei
eda43f7240 Merge inbound to mozilla-central. a=merge 2018-03-30 01:06:18 +03:00
Emilio Cobos Álvarez
50415d801a Bug 1449502: Cleanup a bit more the selector cache and CSSOM methods. r=xidorn
MozReview-Commit-ID: 32FgbGFUdCM
2018-03-29 17:12:55 +02:00
Boris Zbarsky
9321f7b0d9 Bug 1444872. Remove support for the 'type' parameter to document.open. r=qdot 2018-03-28 18:01:46 -04:00
Xidorn Quan
d03cde8f6e Bug 1447828 part 8 - Remove remaining uses of StyleBackendType as well as the type itself. r=emilio
MozReview-Commit-ID: 6sh4eKvDpRF
2018-03-29 02:34:34 +11:00
Jonathan Watt
44d37e68d5 Bug 1449321 - Remove the IsServo and IsGecko methods from the style system code. r=emilio 2018-03-23 16:01:34 +00:00
Emilio Cobos Álvarez
c48b1f646b Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
Emilio Cobos Álvarez
076354eb25 Bug 1447611: Cleanup prefs that do nothing now. r=jwatt
Still more followup cleanup to come.

MozReview-Commit-ID: 83j7DTVb0Ti
2018-03-21 19:13:56 +01:00
Csoregi Natalia
96a3c6af7f Backed out 4 changesets (bug 1447611) for mass failures due to --enable-stylo removal. CLOSED TREE
Backed out changeset c6193142bbcf (bug 1447611)
Backed out changeset 01ada1c5a95f (bug 1447611)
Backed out changeset 86c9fed44da2 (bug 1447611)
Backed out changeset bb84ac6e1468 (bug 1447611)
2018-03-21 19:01:07 +02:00
Emilio Cobos Álvarez
653c8a2aaf Bug 1447611: Cleanup prefs that do nothing now. r=jwatt
Still more followup cleanup to come.

MozReview-Commit-ID: 83j7DTVb0Ti
2018-03-21 17:25:00 +01:00
Xidorn Quan
ea8b8b1e74 Bug 1449400 part 5 - Remove StyleSetHandle. r=emilio
This patch basically does:
* remove StyleSetHandle and its corresponding files
* revisit #includes of related header files and change correspondingly
* change nsIPresShell::mStyleSet to be UniquePtr<ServoStyleSet>
* change the creating path of ServoStyleSet to pass UniquePtr
* change other mentions of StyleSetHandle to ServoStyleSet*
* remove AsServo() calls on ServoStyleSet

Some unfortunate bits:
* some methods of (Servo)StyleSet only accepts ServoStyleSheet while
  many places call into the methods with StyleSheet, so there are many
  ->AsServo() added to sheets

MozReview-Commit-ID: K4zYnuhOurA
2018-03-29 22:15:46 +11:00
Emilio Cobos Álvarez
72fe4cbfa2 Bug 1420680: Remove the mechanism to buffer CSP violations. r=bz
With the previous patch it's unused.

MozReview-Commit-ID: 4EKufeNu0Jz
2018-04-03 16:22:51 +02:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Emilio Cobos Álvarez
3a349583ff Bug 749981: Remove Node.getUserData / setUserData. r=smaug
Summary: MozReview-Commit-ID: JkUCvVZ4V2Y

Reviewers: smaug

Bug #: 749981

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

MozReview-Commit-ID: KadWzpMjdW
2018-03-17 19:33:07 +01:00
Emilio Cobos Álvarez
f8da46c122 Bug 1446601: Devirtualize nsIDocument::Get/SetFailedChannel. r=bz
Summary: The member is already in nsIDocument anyway.

Reviewers: bzbarsky

Bug #: 1446601

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

MozReview-Commit-ID: 90Ad5wiCeMS
2018-03-17 16:22:15 +01:00
Emilio Cobos Álvarez
35d2283e5a Bug 1446568: Move a couple other methods from nsDocument to nsIDocument. r=smaug
Need to add an static_cast for nsIDOMDocument, but it'll be temporary, I'd
expect.

MozReview-Commit-ID: 1cSwlcQZL5N
2018-03-17 16:22:13 +01:00
Emilio Cobos Álvarez
fcf2c7841e Bug 1446568: Move UseCounter stuff and IsSynthesized to nsIDocument. r=smaug
MozReview-Commit-ID: IeKzmi31e8d
2018-03-17 16:22:12 +01:00
Emilio Cobos Álvarez
776afeb047 Bug 1446568: Make SetScriptGlobalObject not pure virtual. r=smaug
MozReview-Commit-ID: 1kKPq7f50jC
2018-03-17 16:22:10 +01:00
Emilio Cobos Álvarez
9c597d6212 Bug 1446568: Make nsIDocument SetContentType / SetDocumentCharacterSet not pure virtual. r=smaug
No good reason for them to be.

MozReview-Commit-ID: 7bFVD8YFqo2
2018-03-17 16:22:08 +01:00