Commit Graph

3421 Commits

Author SHA1 Message Date
alwu
890c6ea021 Bug 1625615 - part0 : create and set the flag suspendMediaWhenInactive on docShell. r=baku,farre
Implemecurnt a flag `suspendMediaWhenInactive` on the docShell that indicates media in that shell should be suspended when the shell is inactive. Currently, only GeckoView is using this flag.

---

The reason of implementing this flag is because in bug1577890 we remove the old way to suspend/resume the media, and I thought setting docshell to inactive is enough to suspend the media because we already have a mechanism which would suspend/resume media when document becomes inactive/active [1].

However, the active state of document is actually different from what I thought it was. Setting docshell to inactive won't change the document's active state, because that indicates if the document is the current active document for the docshell [2] (docshell can have multiple documents), instead of indicating if the docshell is active or not.

Therefore, we have to add another flag to indicate if the docshell wants to suspend its media when it's inactive, in order to use current mechanism to suspend/resume media.

[1] https://searchfox.org/mozilla-central/rev/4d2a9d5dc8f0e65807ee66e2b04c64596c643b7a/dom/html/HTMLMediaElement.cpp#6453
[2] https://searchfox.org/mozilla-central/rev/4d2a9d5dc8f0e65807ee66e2b04c64596c643b7a/dom/base/Document.h#2627-2633

Differential Revision: https://phabricator.services.mozilla.com/D69669
2020-04-20 21:19:56 +00:00
Nika Layzell
3e7008cb11 Bug 1580565 - Part 4: Use WindowContext to manage BrowsingContext cached status, r=farre
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.

Differential Revision: https://phabricator.services.mozilla.com/D71238
2020-04-22 01:37:55 +00:00
Nika Layzell
9b5ae82e9f Bug 1625513 - Part 5: Don't run sandboxed srcdoc loads through DocumentChannel, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D71688
2020-04-21 22:33:11 +00:00
Cosmin Sabou
f2de27edf5 Backed out 5 changesets (bug 1625513) for bc failures on browser_identity_UI.js. CLOSED TREE
Backed out changeset 88ac5d853e38 (bug 1625513)
Backed out changeset 8ac6db819435 (bug 1625513)
Backed out changeset cc19c74910d1 (bug 1625513)
Backed out changeset 8c235f0f967c (bug 1625513)
Backed out changeset 24a646225c68 (bug 1625513)
2020-04-22 00:17:08 +03:00
Nika Layzell
ae19c18d3c Bug 1625513 - Part 5: Don't run sandboxed srcdoc loads through DocumentChannel, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D71688
2020-04-21 18:33:54 +00:00
Noemi Erli
9244d47cbd Backed out 19 changesets (bug 1602318) for causing multiple failures
Backed out changeset 4b3345b2e33b (bug 1602318)
Backed out changeset 7240b27afe28 (bug 1602318)
Backed out changeset a7091729d8c9 (bug 1602318)
Backed out changeset e496ab6c0857 (bug 1602318)
Backed out changeset 184da6309f0c (bug 1602318)
Backed out changeset 79b540f8619d (bug 1602318)
Backed out changeset b298015ee960 (bug 1602318)
Backed out changeset 6d0783cd5e01 (bug 1602318)
Backed out changeset cbc308486b17 (bug 1602318)
Backed out changeset 94142944fb54 (bug 1602318)
Backed out changeset 7c1eeb299b78 (bug 1602318)
Backed out changeset 0fc27502503a (bug 1602318)
Backed out changeset 0fc27c2e09d9 (bug 1602318)
Backed out changeset b5e2aa4741b2 (bug 1602318)
Backed out changeset 57d568114c5a (bug 1602318)
Backed out changeset 8f7360d827dc (bug 1602318)
Backed out changeset 78930a97c2df (bug 1602318)
Backed out changeset 8015780587cd (bug 1602318)
Backed out changeset bc9da03cb3a3 (bug 1602318)
2020-04-21 03:46:41 +03:00
Matt Woodrow
3ac17e57dc Bug 1602318 - Disable parent-initiated loads when using devtools. r=nika,ochameau
Differential Revision: https://phabricator.services.mozilla.com/D71136
2020-04-20 23:04:31 +00:00
Matt Woodrow
27d0d52d35 Bug 1602318 - Expose LoadContext on BrowsingContext webidl. r=nika,kmag
Differential Revision: https://phabricator.services.mozilla.com/D71135
2020-04-20 23:04:09 +00:00
Matt Woodrow
d081a2a01f Bug 1602318 - Make sure rv is initialized correctly in all branches of OpenInitializedChannel. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70621
2020-04-20 23:01:01 +00:00
Matt Woodrow
10f357f4fe Bug 1602318 - Remove incorrect assertion. r=jya
This was previously true, since we only used ResumeRedirectedLoad with a brand new docshell. This bug adds code for using it with existing docshells, which can have any Document (and associated timing object) loaded in them.

Differential Revision: https://phabricator.services.mozilla.com/D67097
2020-04-20 22:59:17 +00:00
Matt Woodrow
f24b4c5a11 Bug 1602318 - Initialize mixed content channel for process-switches. r=ckerschb,necko-reviewers,dragana
Same process origin changes are handled by the docshell, which detects this during AsyncOnChannelRedirect and clears the mixed content permission.
Process switches load in a fresh docshell, so we need to make sure we appropriately set or clear the mixed content permission.

Differential Revision: https://phabricator.services.mozilla.com/D67095
2020-04-20 22:58:52 +00:00
Kris Maglione
acbf8d7bf7 Bug 1614462: Part 3b - Remove moribund DocShell FrameType/IsMozBrowser/IsInMozBrowser fields. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70749
2020-04-20 22:15:24 +00:00
Ciure Andrei
9957be4184 Backed out 10 changesets (bug 1614462) for causing test_ipc_messagemanager_blob.js failures CLOSED TREE
Backed out changeset bf4f8253c708 (bug 1614462)
Backed out changeset c61b797d63e9 (bug 1614462)
Backed out changeset 284002de7137 (bug 1614462)
Backed out changeset 7f604ee5731c (bug 1614462)
Backed out changeset a73ef8167cd4 (bug 1614462)
Backed out changeset ecc3477ed34e (bug 1614462)
Backed out changeset 2106f3ccc4b5 (bug 1614462)
Backed out changeset e68c38a7741d (bug 1614462)
Backed out changeset 93b3bacdbb34 (bug 1614462)
Backed out changeset 0cf4898ae08d (bug 1614462)
2020-04-21 01:11:37 +03:00
Kris Maglione
739561a72a Bug 1614462: Part 3b - Remove moribund DocShell FrameType/IsMozBrowser/IsInMozBrowser fields. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70749
2020-04-20 20:11:52 +00:00
Michael Kaply
6b7b0506e1 Bug 1592780 - Empty alerts when browser.xul.error_pages.enabled=false, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53848
2020-04-20 18:42:06 +00:00
Sebastian Streich
77e3d0cfcf Bug 1623334 - Refactor nsDocShell Geturi usage r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D67325
2020-04-20 09:43:22 +00:00
David Teller
d4def0c230 Bug 1605209 - Turn actor names into nsCString;r=nika
This should save (a little) memory and avoid quite a few conversions.

Differential Revision: https://phabricator.services.mozilla.com/D70341
2020-04-17 10:56:22 +00:00
Daniel Varga
914049e15c Backed out 4 changesets (bug 1605209) for causing browser-chrome failures at dom/ipc/tests/JSWindowActor/browser_crash_report.js
CLOSED TREE

Backed out changeset 6eb1cc169dbf (bug 1605209)
Backed out changeset d81b566ad94f (bug 1605209)
Backed out changeset e0e6dbf1d48d (bug 1605209)
Backed out changeset 289f5bbac1ae (bug 1605209)
2020-04-17 13:49:04 +03:00
David Teller
d2fbc273cd Bug 1605209 - Turn actor names into nsCString;r=nika
This should save (a little) memory and avoid quite a few conversions.

Differential Revision: https://phabricator.services.mozilla.com/D70341
2020-04-16 08:58:21 +00:00
Ciure Andrei
ea1e3cbe28 Backed out 10 changesets (bug 1614462) for causing xpcshell failures CLOSED TREE
Backed out changeset 34d4a86530b4 (bug 1614462)
Backed out changeset dbc2e2556d08 (bug 1614462)
Backed out changeset 512bbab4730c (bug 1614462)
Backed out changeset cd6b8d630f4c (bug 1614462)
Backed out changeset e4ad5037658f (bug 1614462)
Backed out changeset 0ffed1dc4296 (bug 1614462)
Backed out changeset 90ed81cbfe34 (bug 1614462)
Backed out changeset 6d2137eb1d52 (bug 1614462)
Backed out changeset b4819c99e16e (bug 1614462)
Backed out changeset b7deaed376ed (bug 1614462)
2020-04-17 02:26:14 +03:00
Kris Maglione
14ee8f4119 Bug 1614462: Part 3b - Remove moribund DocShell FrameType/IsMozBrowser/IsInMozBrowser fields. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70749
2020-04-16 17:25:06 +00:00
pbz
94229b44a8 Bug 1615588 - Extended nsIPromptService to support tab modal prompts. r=johannh,MattN,necko-reviewers,dragana
This patch introduces a new tab modal system prompt type. It can be opened via the nsIPromptService
with a destination BrowsingContext. These tab system prompts overlap slightly with the upper
chrome UI to differentiate them from content prompts (previously called tab prompts).

- Extended nsIPromptService and nsIPrompt to accept 3 types of modal prompts:
  - Window prompts
  - Tab (system) prompts
  - Content prompts (the old tab prompts)
- Removed prompt code from Prompter.jsm, always call PromptParent window actor instead
- Added PromptChild window actor to forward pagehide events to parent actor
- Created additional prompt methods in nsIPromptService to prompt by browsingContext and modalType
- Backwards compatibility is maintained, consumers can still open content prompts calling nsIPrompt with a content window

Differential Revision: https://phabricator.services.mozilla.com/D66446
2020-04-16 14:43:50 +00:00
Christoph Kerschbaumer
a923c367b1 Bug 1621987: Implement Sec-Fetch-User. r=baku,edgar,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D69392
2020-04-16 08:04:26 +00:00
Matt Woodrow
59af30f9a7 Bug 1627971 - Fire onerror event for CONTENT_BLOCKED in EndPageLoad. r=nika,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D70587
2020-04-15 22:33:46 +00:00
Matt Woodrow
1b03d4ee89 Bug 1627971 - Add option to MaybeFireEmbedderLoadEvents to also fire the error event to the embedder element. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70585
2020-04-15 22:30:13 +00:00
Matt Woodrow
5d526a1a1a Bug 1627971 - Move docshell embedder unblock load to a helper. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D70584
2020-04-15 22:29:25 +00:00
Csoregi Natalia
0e78df90ed Backed out 7 changesets (bug 1625615) for multiple failures e.g. /test_windowedhistoryframes.html. CLOSED TREE
Backed out changeset f239d24658c9 (bug 1625615)
Backed out changeset acea7c78db20 (bug 1625615)
Backed out changeset d709f5a72c35 (bug 1625615)
Backed out changeset 4cd231b1f3fb (bug 1625615)
Backed out changeset 45942c8dc380 (bug 1625615)
Backed out changeset 3f03a8703a8a (bug 1625615)
Backed out changeset e9299fc48796 (bug 1625615)
2020-04-16 00:32:16 +03:00
alwu
0ab6ac7a66 Bug 1625615 - part0 : create and set the flag suspendMediaWhenInactive on docShell. r=baku,farre
Implemecurnt a flag `suspendMediaWhenInactive` on the docShell that indicates media in that shell should be suspended when the shell is inactive. Currently, only GeckoView is using this flag.

---

The reason of implementing this flag is because in bug1577890 we remove the old way to suspend/resume the media, and I thought setting docshell to inactive is enough to suspend the media because we already have a mechanism which would suspend/resume media when document becomes inactive/active [1].

However, the active state of document is actually different from what I thought it was. Setting docshell to inactive won't change the document's active state, because that indicates if the document is the current active document for the docshell [2] (docshell can have multiple documents), instead of indicating if the docshell is active or not.

Therefore, we have to add another flag to indicate if the docshell wants to suspend its media when it's inactive, in order to use current mechanism to suspend/resume media.

[1] https://searchfox.org/mozilla-central/rev/4d2a9d5dc8f0e65807ee66e2b04c64596c643b7a/dom/html/HTMLMediaElement.cpp#6453
[2] https://searchfox.org/mozilla-central/rev/4d2a9d5dc8f0e65807ee66e2b04c64596c643b7a/dom/base/Document.h#2627-2633

Differential Revision: https://phabricator.services.mozilla.com/D69669
2020-04-15 18:13:29 +00:00
Anny Gakhokidze
c99c9fc71c Bug 1594529 - Create LoadInfo for subdocuments directly in parent process with DocumentChannel. r=mattwoodrow,nika
Currently, with Fission enabled we are not able to create a proper LoadInfo
object when doing a subdocument load because we do not have access to a loading
context if the load is happening inside of an OOP frame. To solve this problem,
we can create LoadInfo object from scratch in the parent process where we have
all of the required information.

Differential Revision: https://phabricator.services.mozilla.com/D68893
2020-04-15 18:53:06 +00:00
Kris Maglione
e68d532bff Bug 1594529: Infer nsDocShell::IsFrame from BrowsingContext. r=nika
This fixes the content policy type for document loads in these frames, where
the explicit mIsFrame flag was not set, due to DocShell creation taking a
different code path in remote frames than in in-process frames.

Differential Revision: https://phabricator.services.mozilla.com/D52093
2020-04-15 18:53:22 +00:00
Jonathan Kingston
2b11817f21 Bug 1594529 - Adding in asserts for LoadURI to ensure we have the correct contentPolicyType, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70714
2020-04-15 18:53:22 +00:00
Stefan Hindli
3d33afd897 Backed out 15 changesets (bug 1607984) for causing very frequent reftest faiures CLOSED TREE
Backed out changeset 5497c90b03de (bug 1607984)
Backed out changeset 71dffa590c10 (bug 1607984)
Backed out changeset fdacabac2c54 (bug 1607984)
Backed out changeset 5f9fe17e46b8 (bug 1607984)
Backed out changeset 8f9058eb821d (bug 1607984)
Backed out changeset 025af7792f2a (bug 1607984)
Backed out changeset c7edd070b2f3 (bug 1607984)
Backed out changeset 8e7c95d322e8 (bug 1607984)
Backed out changeset e51f6b7a745c (bug 1607984)
Backed out changeset 979d99eb12d1 (bug 1607984)
Backed out changeset f554d4ce6718 (bug 1607984)
Backed out changeset fe84e5c64b4e (bug 1607984)
Backed out changeset 05d2032060db (bug 1607984)
Backed out changeset 07ce7b11fee9 (bug 1607984)
Backed out changeset 718d89be09d2 (bug 1607984)
2020-04-15 18:33:24 +03:00
Jean-Yves Avenard
c691a3beb9 Bug 1607984 - P12. Start parent load via DocumentChannel. r=mayhemer,nika,mattwoodrow
Add ParentProcessDocumentChannel object. This object is a DocumentChannel that will start a channel load from the parent process via a DocumentChannel.

The aim of this task is two-fold.
1- Be consistent on how we handle redirects before continuing the load on the final channel.
2- Prepare to initiate a process switch when needed without having to go via an intermediary content process, saving a process switch. This task will be done in a follow-up task.

The behaviour of the ParentProcessDocumentChannel is similar in logic to the DocumentChannelChild/DocumentChannelParent pair.
The ParentProcessDocumentChannel sets up a DocumentLoadListener, have it handle the redirects and upon completion continue the load on the final channel.

Differential Revision: https://phabricator.services.mozilla.com/D70009
2020-04-15 08:57:30 +00:00
Andreea Pavel
f4db938b0e Backed out 12 changesets (bug 1607984) for failing test_bug1339722.html on a CLOSED TREE
Backed out changeset 69c73391e8fc (bug 1607984)
Backed out changeset a3a28be516f9 (bug 1607984)
Backed out changeset 9f216e9bd32e (bug 1607984)
Backed out changeset 0b71b61415d5 (bug 1607984)
Backed out changeset 0fa85c9199a9 (bug 1607984)
Backed out changeset 4c661ed81cf2 (bug 1607984)
Backed out changeset 47beda24613f (bug 1607984)
Backed out changeset 348da0a8dd00 (bug 1607984)
Backed out changeset 3d6824e92c38 (bug 1607984)
Backed out changeset 1cfc8aad978c (bug 1607984)
Backed out changeset e11f4d334dc7 (bug 1607984)
Backed out changeset c499fa55d0f2 (bug 1607984)
2020-04-15 11:53:11 +03:00
Jean-Yves Avenard
ef78beffd6 Bug 1607984 - P12. Start parent load via DocumentChannel. r=mayhemer,nika,mattwoodrow
Add ParentProcessDocumentChannel object. This object is a DocumentChannel that will start a channel load from the parent process via a DocumentChannel.

The aim of this task is two-fold.
1- Be consistent on how we handle redirects before continuing the load on the final channel.
2- Prepare to initiate a process switch when needed without having to go via an intermediary content process, saving a process switch. This task will be done in a follow-up task.

The behaviour of the ParentProcessDocumentChannel is similar in logic to the DocumentChannelChild/DocumentChannelParent pair.
The ParentProcessDocumentChannel sets up a DocumentLoadListener, have it handle the redirects and upon completion continue the load on the final channel.

Differential Revision: https://phabricator.services.mozilla.com/D70009
2020-04-15 07:07:06 +00:00
Stefan Hindli
e3733c4146 Backed out changeset 16bfa5c1f2ca (bug 1594529) for mochitest permafailures in builds/worker/checkouts/gecko/docshell/base/nsDocShell.cpp CLOSED TREE 2020-04-15 09:28:56 +03:00
Stefan Hindli
2337657bba Backed out 2 changesets (bug 1594529) for causing perma wpt2 with ValueError: badly formed hexadecimal UUID string in /cookies/samesite/iframe-reload.https.html CLOSED TREE
Backed out changeset fbf55a44d7fb (bug 1594529)
Backed out changeset 4ba9a230586a (bug 1594529)
2020-04-15 08:41:10 +03:00
Jonathan Kingston
cacea59db0 Bug 1594529 - Adding in asserts for LoadURI to ensure we have the correct contentPolicyType, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70714
2020-04-14 19:13:15 +00:00
Anny Gakhokidze
8a9c2d50e4 Bug 1594529 - Create LoadInfo for subdocuments directly in parent process with DocumentChannel. r=mattwoodrow,nika
Currently, with Fission enabled we are not able to create a proper LoadInfo
object when doing a subdocument load because we do not have access to a loading
context if the load is happening inside of an OOP frame. To solve this problem,
we can create LoadInfo object from scratch in the parent process where we have
all of the required information.

Differential Revision: https://phabricator.services.mozilla.com/D68893
2020-04-13 23:00:43 +00:00
Kris Maglione
f577dcdd40 Bug 1594529: Infer nsDocShell::IsFrame from BrowsingContext. r=nika
This fixes the content policy type for document loads in these frames, where
the explicit mIsFrame flag was not set, due to DocShell creation taking a
different code path in remote frames than in in-process frames.

Differential Revision: https://phabricator.services.mozilla.com/D52093
2020-04-13 22:41:37 +00:00
Tetsuharu OHZEKI
e50d31d8c4 Bug 1594283 - part 2: Rename nsIDocShell::GetSameTypeParentIgnoreBrowserBoundaries to nsIDocShell::GetSameTypeInProcessParentIgnoreBrowserBoundaries. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70549
2020-04-14 19:17:21 +00:00
Tetsuharu OHZEKI
c288a0c2f2 Bug 1594283 - part 1: Remove nsIDocShell::GetSameTypeRootTreeItemIgnoreBrowserBoundaries(). r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D67352
2020-04-10 18:33:18 +00:00
Csoregi Natalia
a3c8408007 Backed out 5 changesets (bug 1615588) for browser-chrome failures e.g. browser_beforeunload_duplicate_dialogs.js. CLOSED TREE
Backed out changeset 751cca7566a8 (bug 1615588)
Backed out changeset 474aca043834 (bug 1615588)
Backed out changeset 7839b95ef76c (bug 1615588)
Backed out changeset 32bb87f48b13 (bug 1615588)
Backed out changeset 264e642042b1 (bug 1615588)
2020-04-10 21:19:15 +03:00
pbz
79ef17c4dc Bug 1615588 - Extended nsIPromptService to support tab modal prompts. r=johannh,MattN
This patch introduces a new tab modal system prompt type. It can be opened via the nsIPromptService
with a destination BrowsingContext. These tab system prompts overlap slightly with the upper
chrome UI to differentiate them from content prompts (previously called tab prompts).

- Extended nsIPromptService and nsIPrompt to accept 3 types of modal prompts:
  - Window prompts
  - Tab (system) prompts
  - Content prompts (the old tab prompts)
- Removed prompt code from Prompter.jsm, always call PromptParent window actor instead
- Added PromptChild window actor to forward pagehide events to parent actor
- Created additional prompt methods in nsIPromptService to prompt by browsingContext and modalType
- Backwards compatibility is maintained, consumers can still open content prompts calling nsIPrompt with a content window

Differential Revision: https://phabricator.services.mozilla.com/D66446
2020-04-10 16:47:00 +00:00
Dylan Roeh
0045eeabfc Bug 1619798 - Move GeckoView onLoadRequest calls to DocumentLoadListener.cpp r=snorp,mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D69594
2020-04-10 16:38:48 +00:00
Kris Maglione
40be55160b Bug 1626404: Part 4 - Remove now-redundant accessor args from BrowsingContext load methods. r=nika CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D69421
2020-04-08 19:04:47 +00:00
Kris Maglione
02c2ca6f0a Bug 1626404: Part 3 - Do sandbox flag checks at both ends of cross-process loads. r=nika CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D69420
2020-04-04 02:42:39 +00:00
Kris Maglione
7e58125538 Bug 1626404: Part 2a - Store source BrowsingContext rather than DocShell in LoadState. r=nika CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D69418
2020-04-04 02:42:44 +00:00
Kris Maglione
f0e8681c10 Bug 1626404: Part 1 - Move IsSandboxedFrom to BrowsingContext. r=nika CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D69417
2020-04-04 02:42:30 +00:00
Bogdan Tara
9f2284c826 Backed out 6 changesets (bug 1626404) for frequent timeouts on test_postMessage_onOther.html CLOSED TREE
Backed out changeset 453b858f4462 (bug 1626404)
Backed out changeset f54ce6a36c75 (bug 1626404)
Backed out changeset ec63b18da4b9 (bug 1626404)
Backed out changeset b0d4b213b819 (bug 1626404)
Backed out changeset af763de00e9d (bug 1626404)
Backed out changeset 45b68d43bdbb (bug 1626404)
2020-04-09 11:07:40 +03:00