Commit graph

735 commits

Author SHA1 Message Date
Ehsan Akhgari
1bdcddf20c Bug 1361709 - Move FlushPendingLinkUpdatesFromRunnable to idle dispatch; r=smaug 2017-05-29 16:22:24 -04:00
Boris Zbarsky
3119ff4e5e Bug 1364360 part 1. Make Element::GetScrollFrame follow the spec more closely in the quirks mode case. r=ehsan 2017-05-25 13:39:44 -04:00
Ting-Yu Lin
e28f16e90e Bug 1363640 Part 2 - Move the logic in SupportsServoStyleBackend() to UpdateStyleBackendType(). r=heycam
SupportsServoStyleBackend() uses methods in nsIDocument, so it would be more
straightforward to do that in UpdateStyleBackendType().

Also, call StyloEnabled() before doing other logic so that the warning about
"no docshell" won't show up when stylo is built but disabled.

MozReview-Commit-ID: 9ZUYatPBv1r

--HG--
extra : rebase_source : ea130cdf2ef0b49d73bd688aeca1fc227431441c
2017-05-09 18:33:57 -07:00
Ting-Yu Lin
bd80f687dc Bug 1363640 Part 1 - Move IsContentDocument() and IsTopLevelContentDocument() from nsDocument to nsIDocument. r=heycam
In this way, the callers who have nsIDocument don't need to cast to nsDocument.

MozReview-Commit-ID: 8zVUjkbrlaG

--HG--
extra : rebase_source : c444a103a430e3746508cc894902e677d58e65fe
2017-05-09 18:28:36 -07:00
Bill McCloskey
c1a1aeca32 Bug 1365184 - Fix docgroup mismatch during cycle collection (r=smaug)
MozReview-Commit-ID: Ld68RGU6lmB
2017-05-23 12:04:31 -07:00
Sebastian Hengst
e07a98a1b3 Backed out changeset 44635c073692 (bug 1345058) on suspicion of causing intermittent xpcshell failures in toolkit/components/url-classifier/tests/unit/test_bug1274685_unowned_list.js on OS X. r=backout 2017-05-19 13:13:18 +02:00
Henry Chang
a8cf105ce8 Bug 1345058 - Asynchronously decide if a flash document should be blocked. r=baku,bytesized
Technically speaking, we use the new async API 'nsIURIClassifier.asyncClassifyLocalWithTables'
to replace the old sync API. However, since we cannot guarantee the async call will be done when
we neet its result, we need a sync call as a fallback in this case. This is a sub-optimal
solution and we will be investigating if there's a better solution if the sync call
is used too frequently.

MozReview-Commit-ID: L1uQ2eaYr1e

--HG--
extra : rebase_source : 148e0e85796c932ea85d123092f479e1373ecec9
extra : intermediate-source : 53007a31b576fcd4f16ad6523cccd0a9b90c66f0
extra : source : 1175b9c64b31da2ca2ab88f78488aed6fdc405bc
2017-05-10 15:32:34 +08:00
Carsten "Tomcat" Book
771b1095ef Backed out changeset 37d295d7eec9 (bug 1347791) 2017-05-17 08:11:07 +02:00
Alastor Wu
7efc57090f Bug 1347791 - part3 : move block/resume logic from back-end to front-end. r=baku,mikedeboer
Previous design allows us calling resume/block from both front-end and back-end,
it's not easy to know who called these operations.

So move all these logic to frond-end side, it's more clear than before.

One important thing is that we should block tab before loading the content.
If we block the tab after loading, the media might not be blocked because it had
already started (that is one situation I observed from test).

The value of block state would be stored in the outer window, before media want
to start, it would check this value to know whether it can start playing or not.

---

In addition, introduce new attribute "media-blocked".

The "media-blocked" attribute indicates that whether the tab is allowed to play autoplay media.
The "activemedia-blocked" attribute indicates whether the tab has blocked the autoplay media.

MozReview-Commit-ID: FnNh3zmItxo

--HG--
extra : rebase_source : cdc890c0c47a4a03ea8dbbdfee24c66b52945c60
2017-05-17 11:56:06 +08:00
Benjamin Smedberg
5560100540 Bug 1335475 - Deny plugins from non-HTTP/HTTPS origins. r=bytesized,qdot
MozReview-Commit-ID: 3kPeycfMWVw

--HG--
extra : rebase_source : dc062997ac3a51cd27589c9b0cb29e850676cefc
2017-03-07 09:34:03 -05:00
Daniel Holbert
d8acf24da6 Bug 1364180: In nsDocument::ResetToURI(), clear mCachedRootElement immediately after that element is removed. r=bz
Previously, we cleared mCachedRootElement a bit later -- after removing *all*
of the children and calling nsNodeUtils::ContentRemoved() and UnbindFromTree on
each of them.  This was problematic, because these cleanup functions can
involve calls to GetRootElement() -- and prior to this patch, any such
GetRootElement() calls would likely return the stale value in
mCachedRootElement.

Now, with this patch, we'll be clearing mCachedRootElement
sooner, so these GetRootElement() calls will return the correct current root
(which will likely be null in this case, since we're emptying the document of
children).

MozReview-Commit-ID: 8skGJyic1pC

--HG--
extra : rebase_source : 2a1c3880c676123b2bfa9dd21ae296e663ba6a38
2017-05-11 13:14:08 -07:00
Andrea Marchesini
83c815ee45 Bug 1363429 - Get rid of nsIDOMLocation, r=bz, r=honza, f=ochameau 2017-05-11 07:26:08 +02:00
Iris Hsiao
3f0892a7f5 Backed out changeset c56bd0d1e7c9 (bug 1363429) for build bustage, using-declaration causes a multiple declaration of 'nsIDocument::GetLocation' 2017-05-11 13:55:40 +08:00
Andrea Marchesini
e78b251ef5 Bug 1363429 - Get rid of nsIDOMLocation, r=bz, r=honza, f=ochameau 2017-05-11 07:26:08 +02:00
Andrea Marchesini
667a1e29ae Bug 1363395 - nsGlobalWindow::GetLocation should support to be called on the outer window, r=smaug 2017-05-09 22:41:19 +02:00
Edgar Chen
0a24632278 Bug 1354013 - Creating customized built-in elements without relevant definitions registered first shouldn't throw NotFoundError; r=wchen
per spec change: https://github.com/w3c/webcomponents/issues/608

MozReview-Commit-ID: 3W4qTndQsP7
2017-04-06 17:00:41 +08:00
Andrea Marchesini
a67a0a31e8 Bug 1362003 - nsGlobalWindow::GetLocation doesn't need to receive an ErrorResult param, r=bz
Renaming nsGlobalWindow::GetLocation() to Location().
2017-05-08 15:49:31 +02:00
Andrea Marchesini
1981f67eb3 Bug 1362119 - part 1 - Moving dom/base/Script{Loader,Element}.* in dom/script, r=ehsan
This patch does these things:

1. it moves nsScriptElement, nsScriptLoader, ScriptSettings, nsIScriptElement
   and nsIScriptLoaderObserver in dom/script
2. it renames nsScriptElement to mozilla::dom::ScriptElement
3. it renames nsScriptLaoder to mozilla::dom::ScriptLoader

--HG--
rename : dom/base/nsScriptElement.cpp => dom/script/ScriptElement.cpp
rename : dom/base/nsScriptElement.h => dom/script/ScriptElement.h
rename : dom/base/nsScriptLoader.cpp => dom/script/ScriptLoader.cpp
rename : dom/base/nsScriptLoader.h => dom/script/ScriptLoader.h
rename : dom/base/ScriptSettings.cpp => dom/script/ScriptSettings.cpp
rename : dom/base/ScriptSettings.h => dom/script/ScriptSettings.h
rename : dom/base/nsIScriptElement.h => dom/script/nsIScriptElement.h
rename : dom/base/nsIScriptLoaderObserver.idl => dom/script/nsIScriptLoaderObserver.idl
2017-05-08 08:24:22 +02:00
Carsten "Tomcat" Book
f0d6de60d7 Backed out changeset 5d77f6b14633 (bug 1362119) for android bustage in nsCCUncollectableMarker.cpp:500:7: error: 'TraceScriptHolder' is not a member of 'mozilla'
--HG--
rename : dom/script/ScriptSettings.cpp => dom/base/ScriptSettings.cpp
rename : dom/script/ScriptSettings.h => dom/base/ScriptSettings.h
rename : dom/script/nsIScriptElement.h => dom/base/nsIScriptElement.h
rename : dom/script/nsIScriptLoaderObserver.idl => dom/base/nsIScriptLoaderObserver.idl
rename : dom/script/ScriptElement.cpp => dom/base/nsScriptElement.cpp
rename : dom/script/ScriptElement.h => dom/base/nsScriptElement.h
rename : dom/script/ScriptLoader.cpp => dom/base/nsScriptLoader.cpp
rename : dom/script/ScriptLoader.h => dom/base/nsScriptLoader.h
2017-05-08 09:54:38 +02:00
Andrea Marchesini
7a4ef797cb Bug 1362119 - part 1 - Moving dom/base/Script{Loader,Element}.* in dom/script, r=ehsan
This patch does these things:

1. it moves nsScriptElement, nsScriptLoader, ScriptSettings, nsIScriptElement
   and nsIScriptLoaderObserver in dom/script
2. it renames nsScriptElement to mozilla::dom::ScriptElement
3. it renames nsScriptLaoder to mozilla::dom::ScriptLoader

--HG--
rename : dom/base/nsScriptElement.cpp => dom/script/ScriptElement.cpp
rename : dom/base/nsScriptElement.h => dom/script/ScriptElement.h
rename : dom/base/nsScriptLoader.cpp => dom/script/ScriptLoader.cpp
rename : dom/base/nsScriptLoader.h => dom/script/ScriptLoader.h
rename : dom/base/ScriptSettings.cpp => dom/script/ScriptSettings.cpp
rename : dom/base/ScriptSettings.h => dom/script/ScriptSettings.h
rename : dom/base/nsIScriptElement.h => dom/script/nsIScriptElement.h
rename : dom/base/nsIScriptLoaderObserver.idl => dom/script/nsIScriptLoaderObserver.idl
2017-05-08 08:24:22 +02:00
Wes Kocher
21203b47b5 Merge inbound to m-c a=merge
MozReview-Commit-ID: JgXkqrOwl3N
2017-05-03 13:40:24 -07:00
Andreas Farre
3ce44dbcc6 Bug 1355480 - Add telemetry for measuring timeout execution. r=smaug, data-r=bsmedberg
Measure execution time by adding telemetry probes for tracking
foreground, tracking background, non-tracking foreground and
non-tracking background timeouts.

--HG--
extra : source : 69439c0cd3e6d118681d1bb6586cb0a7b4bb85fc
2017-05-02 07:23:00 -04:00
Sebastian Hengst
2ed9a7bb99 Backed out changeset 69439c0cd3e6 (bug 1355480) on suspicion of triggering assertion CompositorThreadHolder::IsInCompositorThread() on Windows 8 x64 M-e10s. r=backout 2017-05-02 23:41:44 +02:00
Andreas Farre
0205fac807 Bug 1355480 - Add telemetry for measuring timeout execution. r=smaug, data-r=bsmedberg
Measure execution time by adding telemetry probes for tracking
foreground, tracking background, non-tracking foreground and
non-tracking background timeouts.

--HG--
extra : rebase_source : f638cc4422a777bbd093d5bbb2d5852c19b1c9d1
2017-05-02 07:23:00 -04:00
Kirk Steuber
7fdb378650 Bug 1359556 - Optimize cloneNode by preinitializing attribute and child arrays r=bz
Currently, attribute and child arrays (implemented in dom/base/nsAttrAndChildArray.h) start out empty. When cloning, the array ends up being resized multiple times in order to add the attributes and children that are being cloned from the original node. This would be quicker if the array was initialized to the correct size in the first place so that resizes are not necessary.

However, preallocating space for children is only necessary when performing a deep clone. Therefore, an additional parameter is being added to the Clone, CopyInnerTo, and CloneDocHelper methods to indicate whether preallocation of children should happen. Attributes are copied either way, so that part of the array is preallocated in both cases.

MozReview-Commit-ID: 3iVezeAKXnI

--HG--
extra : rebase_source : 9c3deec6d7aafd6411044d623d4863637b45fd58
2017-04-20 12:57:48 -07:00
Daniel Holbert
a9d71f94f4 Bug 1361268: Clear nsIDocument::mCachedRootElement *before* removing from doc's child list, rather than *after* removing. r=bz
Internally, doRemoveChildAt does quite a bit of cleanup, and that includes some
calls to nsIDocument::GetRootElement().  Before this patch, those calls will
misleadingly return the still-present mCachedRootElement member-var.  We'd
really like those invocations to find an empty cached variable, and fall back
to checking the actual updated child list.

MozReview-Commit-ID: 8hhKcWyUVYQ

--HG--
extra : rebase_source : 238057c864e01c2af8c985250ed5e948b29bc338
2017-05-02 16:08:02 -07:00
Aryeh Gregor
af57d2df0f Bug 1251198 - Remove various obsolete events from document.createEvent r=smaug
Other browsers do not support any of these (IIRC), telemetry reports
essentially zero usage, and supporting them is contrary to the DOM spec.

Notes on specific events:

CommandEvent and SimpleGestureEvent: These are not supposed to be
web-exposed APIs, so I hid the interfaces from web content too
(necessary to avoid test_all_synthetic_events.html failures).

DataContainerEvent: This was a non-standard substitute for CustomEvent
that seemed to have only one user, so I removed it entirely and switched
the user (MozillaFileLogger.js) to CustomEvent.

ScrollAreaEvent: This is entirely non-standard, but we apparently expose
it deliberately to web content, so I didn't see any reason to remove it
from createEvent.

SimpleGestureEvent and XULCommandEvent: Can still be created from
createEvent(), but not by content.

TimeEvent: This is still in because it has no constructor, so there's no
other way to create it.  Ideally we'd update the SMIL spec to add a
constructor.  I did remove TimeEvents.

MozReview-Commit-ID: 7Yi2oCl9SM2

--HG--
extra : rebase_source : 199ab921acfc531b8b85e77f90fcd799b03c887b
2017-04-20 15:45:37 +03:00
Sumit Tiwari
9dc202c32f Fix for bug 1142497 - change mDOMMediaQueryLists to use mozilla::LinkedList;r=erahm
MozReview-Commit-ID: G9RtgdYudqA
2017-04-06 20:45:16 -04:00
Boris Zbarsky
0a0d47e4f0 Bug 1356498 followup: fix compiler bustage. 2017-04-18 21:26:43 -04:00
Boris Zbarsky
14dfe4c256 Bug 1356498. Change nsDocument's unlink to unbind/remove its kids the same way other places (including FragmentOrElement's unlink) do. r=mystor
This prevents us from trying to re-set the base URI to the href of a <base> element that's being unlinked.
2017-04-18 20:56:45 -04:00
John Dai
dc7998c7d8 Bug 1309147 - Part 4: Add CEReactions for CustomElementRegistry. r=bz
MozReview-Commit-ID: ID2TIL9C47R

--HG--
extra : rebase_source : ad2ea9e7b4925d22743a55f55fd6c55e1a8ae805
extra : histedit_source : 176dfbb8a76a1f386d43f20cad1d4fa6125c77af
2017-03-30 18:58:48 +08:00
Olli Pettay
27d9c5656a Bug 1355540, use SegmentedVector for pending links to avoid slow hashtable lookups in hot codepaths, r=bz 2017-04-15 18:55:05 +03:00
Sebastian Hengst
875f27030a merge mozilla-central to autoland. r=merge a=merge 2017-04-14 17:22:00 +02:00
Iris Hsiao
93edef392b merge autoland to mozilla-central a=merge 2017-04-14 17:09:58 +08:00
Olli Pettay
66df8dc927 Bug 1355787, nsIdentifierMapEntry should let one to use either strings or atoms as keys to avoid slow string assignments when possible. r=nfroyd
--HG--
extra : rebase_source : 3e8c53462e4ed19ecaf611b7618a132d8606c0ae
2017-04-13 22:12:20 +03:00
Brad Werth
e54f2f1c5b Bug 1341721 Part 4: Re-enable reftest 360746, and remove the assert saying that alternate sheets are not supported. r=heycam
MozReview-Commit-ID: GuKebiq3zAJ

--HG--
extra : rebase_source : 3a10bf811f809f731f71b32ac4b64a223bfde021
2017-04-13 13:01:24 +08:00
Andrea Marchesini
3535802d8b Bug 1354441 - Update MediaQueryList to the latest version of the spec, r=jwatt 2017-04-10 16:29:06 +02:00
Ehsan Akhgari
31dfb63c42 Bug 1354643 - Part 2: Stop calling Preferences::GetBool() from nsDocument::IsWebAnimationsEnabled(); r=mystor 2017-04-08 18:40:28 -04:00
Ehsan Akhgari
cba54d3429 Bug 1354643 - Part 1: Stop calling Preferences::GetBool() from nsDocument::IsElementAnimateEnabled(); r=mystor 2017-04-08 18:40:27 -04:00
Xidorn Quan
ea9834babb Bug 1343964 part 4 - Have document and svg:use element own URLExtraData. r=bholley,bz
MozReview-Commit-ID: 8451L5qJvEx

--HG--
extra : rebase_source : caa9b3ccd786563a59dc39fe7c23842928c173cc
2017-04-06 16:51:29 +10:00
Bevis Tseng
aed6e0b19d Bug 1346145 - Label nsIDocument::SelectorCache. r=ehsan
SelectorCache::NotifyExpired() will be invoked by nsExpirationTracker::TimerCallback() from an unlabel runnable.
We adopt the change in nsExpirationTracker to provide a DocGroup EventTarget for the invocation of this callback.

--HG--
extra : rebase_source : 42626d5493efff4bc38fba418a4ac3a8b9ff6b6a
2017-03-13 14:49:28 +08:00
Kris Maglione
3fc1661ca1 Bug 1352827: Handle potential null reference during cleanup by CC. r=hsivonen
MozReview-Commit-ID: G7BM3nuEKY1

--HG--
extra : rebase_source : 310c40d7105488fa3d04eaf222fc708b9721a74a
2017-04-02 15:05:51 -07:00
Gijs Kruitbosch
3ced4320fd Bug 1320124 - don't allow privileged loads inside unprivileged loads, r=bz
MozReview-Commit-ID: 3zoknjtslHI

--HG--
extra : rebase_source : 096ba34068d6a48d54670b0bf013a886c1a327fc
2017-04-03 21:49:16 +01:00
Kris Maglione
7485b4ce5c Bug 1350049: Handle nsParser being finalized before resuming. r=hsivonen
This is a hybrid of the previous two approaches. The nsParser weak reference
sometimes stays alive after it's been detached from the document, after which
attempting to remove it throws. This stores a reference to the original
parser, and checks that it's still the current parser when it comes time to
resume.

MozReview-Commit-ID: 1JSi2FmPxt0

--HG--
extra : rebase_source : fc29ab7cd2074eda5f2c747ff7255a29bcc6f4a2
2017-03-28 15:24:26 -07:00
Xidorn Quan
be843c7162 Bug 1345696 part 7 - Provide @font-face rules for stylo backend. r=heycam
MozReview-Commit-ID: CHPxz7iOLg6

--HG--
extra : rebase_source : 56371228e08b1accbdd30f738622bc211e6daee8
2017-03-27 17:53:27 +11:00
Xidorn Quan
082e026668 Bug 1345696 part 1 - Lots of fixup for the next patch. r=heycam
The next patch moves nsCSSFontFaceRule into a separate header, which
somehow affects lots of header dependencies. I'm not completely sure
why this happens, though.

MozReview-Commit-ID: KuXbsaX0NUd

--HG--
extra : rebase_source : cef91018964b5488c5031df8aada90aa7fa0ad51
2017-03-28 20:05:12 +11:00
Kirk Steuber
68f7cb1b36 Bug 1350381 - Change Flash blocking to allow the setting "Ask to Activate" to control CTA of unknown documents. r=qdot
Previously, we operated under the understanding that with Flash blocking activated, non-whitelisted documents would be set to CTA. We are changing that such that now, documents will only be CTA'ed if Flash is set to "Ask to Activate".

Flash blocking will now behave according to the following chart:

User Setting   Flash block   Whitelisted sites   Blacklisted sites    Unlisted sites
"Never ..."    Off           Deny                Deny                 Deny
"Ask ..."      Off           Ask                 Ask                  Ask
"Always ..."   Off           Allow               Allow                Allow
"Never ..."    On            Deny                Deny                 Deny
"Ask ..."      On            Allow               Deny                 Ask
"Always ..."   On            Allow               Deny                 Allow

This patch also completely reworks the flash blocking testing. Test data and most code remains consolidated, but will be run in multiple different tests. This avoids having to extend the timeout for Flash block testing to an extremely long length. The new Flash block testing additionally tests each of the six cases (rows) in the table above.

MozReview-Commit-ID: 5aPGUEiUiCv

--HG--
extra : rebase_source : d5f5711855d108a9a33b9d28aae6e312cc9cb432
2017-03-24 14:15:02 -07:00
Boris Zbarsky
a71d5e3e25 Bug 1342823 part 2. Simplify the management of whether our document's frame request callbacks are scheduled. r=farre
MozReview-Commit-ID: 46oVKKbCLbn
2017-03-27 14:52:36 -04:00
Boris Zbarsky
41f3badc2e Bug 1342823 part 1. Move some one-bit booleans in nsIDocument next to all the other one-bit booleans. r=farre
MozReview-Commit-ID: 3FLVka93lCq
2017-03-27 14:51:55 -04:00
Alastor Wu
7c05349889 Bug 1347758 - part2 : remove add/removeMediaContent() and related codes. r=Ehsan
Since the window would know when need to resume the media, we don't need the
add/removeMediaContent() anymore.

MozReview-Commit-ID: F9MSiqqnOiV

--HG--
extra : rebase_source : fa86b3977e13d1f2a6b6233b6d608ccc331b5bf7
2017-03-24 14:43:40 +08:00