Commit Graph

152 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
c2e313f4c7 Bug 1625513 - Part 4: Don't require being in tabbrowser for subframe process switches, r=mattwoodrow,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D71396
2020-04-21 22:33:14 +00:00
Nika Layzell
005f7d6520 Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh,necko-reviewers,valentin
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-21 22:33:00 +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
07bd64e930 Bug 1625513 - Part 4: Don't require being in tabbrowser for subframe process switches, r=mattwoodrow,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D71396
2020-04-21 18:33:52 +00:00
Nika Layzell
10fa812c79 Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh,necko-reviewers,valentin
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-21 18:33:39 +00:00
Noemi Erli
a7719605fd Backed out 4 changesets (bug 1625513) for causing assertion in WindowGlobalChild.cpp
Backed out changeset 0366bbc9e0f7 (bug 1625513)
Backed out changeset 3554e0be2e66 (bug 1625513)
Backed out changeset ad09a911bc43 (bug 1625513)
Backed out changeset f2dbff5d584f (bug 1625513)
2020-04-20 22:28:20 +03:00
Nika Layzell
0c84142f4c Bug 1625513 - Part 4: Don't require being in tabbrowser for subframe process switches, r=mattwoodrow,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D71396
2020-04-20 17:00:21 +00:00
Nika Layzell
e5267e854c Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh,necko-reviewers,valentin
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-20 16:57:01 +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
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
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
Oana Pop Rus
0842848548 Backed out 2 changesets (bug 1625513) for bc failures in browser/base/content/test/siteIdentity/browser_identity_UI.js on a CLOSED TREE
Backed out changeset 876b33334577 (bug 1625513)
Backed out changeset 69f75d37ae8e (bug 1625513)
2020-04-09 00:57:32 +03:00
Nika Layzell
5e936cb7d5 Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-08 16:56:37 +00:00
Cosmin Sabou
6cffd2c78f Backed out 2 changesets (bug 1625513) for causing several reftest failures. CLOSED TREE
Backed out changeset 64dfd2e32a7b (bug 1625513)
Backed out changeset a78ae89b25b6 (bug 1625513)
2020-04-06 20:11:51 +03:00
Nika Layzell
2ad3a8351d Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-06 15:17:40 +00:00
Tim Huang
b8076090ad Bug 1612378 - Part 5: Make the browser.ContentBlockingAllowListPrincipal to directly get the ContentBlockingAllowListPrincipal from the WindowGlobalParent. r=dimi,johannh,baku
Right now, we have a ContentBlockingAllowListPrincipal in the
WindowGlobalParent. So, the browse element can directly get this
principal from there. And we can stop sending the
ContentBlockingAllowListPrincipal from the content to parent when
OnLocationChange happens.

Differential Revision: https://phabricator.services.mozilla.com/D66212
2020-03-25 13:22:02 +00:00
Ed Lee
361cbdb4a5 Bug 1620556 - Automatic code fixes for Prettier 1.19.1 upgrade. r=Standard8,remote-protocol-reviewers,marionette-reviewers,webcompat-reviewers,perftest-reviewers,sparky,whimboo,denschub
Differential Revision: https://phabricator.services.mozilla.com/D66128
2020-03-13 23:38:52 +00:00
Neil Deakin
02a99f0a24 Bug 1558520, rework remote controller to use JSWindowActor instead of having the browser have a controller, r=smaug
When searching for the controller for a command in nsWindowRoot::GetControllerForCommand, look for a focused browsing context instead and get the controller through the Controllers actor associated with that browsing context. When a command update occurs in a window in the child process, send the list of commands to the parent process along with the browsing context for that window. The parent will pass this information to the controllers actor. As long as we can get the right currently focused browsing context descendant, we can get the correct command state and invoke commands through the right actor.

Differential Revision: https://phabricator.services.mozilla.com/D66222
2020-03-12 16:47:57 +00:00
Bernard Igiri
6263c85bc8 Bug 1607624 - Migrating UnselectedTabHover to use JSWindowActor r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D64388
2020-03-06 17:29:03 +00:00
Alastor Wu
17a07c5626 Bug 1577890 - part6 : remove browser's methods which were used for android media control. r=baku
These methods were used for media control and audio focus on Fennec, and we don't need them anymore.

Differential Revision: https://phabricator.services.mozilla.com/D65262
2020-03-05 06:15:33 +00:00
Kris Maglione
27a6ede8fd Bug 1617254: Rename BrowsingContext.getChildren() to .children. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D63699
2020-02-25 22:33:53 +00:00
Arthur Iakab
7dc57054cd Backed out changeset 5616425b54da (bug 1617254)for casuing multiple browser-chrome failures.
CLOSED TREE
2020-02-26 00:09:34 +02:00
Kris Maglione
9b4f095126 Bug 1617254: Rename BrowsingContext.getChildren() to .children. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D63699
2020-02-25 21:03:58 +00:00
Noemi Erli
5296ed257e Backed out changeset 034e2e79ecfa (bug 1617254) for causing build bustages CLOSED TREE 2020-02-25 21:59:14 +02:00
Kris Maglione
0523739f93 Bug 1617254: Rename BrowsingContext.getChildren() to .children. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D63699
2020-02-25 19:39:25 +00:00
Rob Wu
62827d3bfb Bug 1609000 - Stop logspam when <browser> is removed r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D60720
2020-01-23 23:21:06 +00:00
Mike Conley
49abd29c1d Bug 1576917 - Port PopupBlocker to JSWindowActors to make it Fission-compatible. r=NeilDeakin
This patch was started by Alex Vamvounis <a.vamvounis@gmail.com> and finished by
Mike Conley <mconley@mozilla.com>

Differential Revision: https://phabricator.services.mozilla.com/D53075
2020-01-22 21:24:19 +00:00
Neil Deakin
4dce72cc6b Bug 1603020, allow sendMessageToActor to send the message to all descendants, not just process roots, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D58990
2020-01-20 15:14:31 +00:00
Dimi Lee
113588eb24 Bug 1600896 - P2. Use getContentBlockingLog in WindoowGlobalParent instead of getContentBlockingEvent in nsIRemoteTab. r=timhuang,Ehsan
Depends on D55779

Differential Revision: https://phabricator.services.mozilla.com/D55780
2019-12-17 11:34:41 +00:00
Dimi Lee
8b6ef12b45 Bug 1600878 - P3. Do not store contentBlockingEvent in RemoteSecurityUI.jsm r=timhuang,Ehsan
ContentBlockingEvents is now accessed via WindowGlobalActor::ContentBlockingEvents.
Updating and storing contentBlockingEvent in RemoteSecurityUI are no longer needed.

Depends on D55622

Differential Revision: https://phabricator.services.mozilla.com/D55623
2019-12-17 11:25:27 +00:00
Dimi Lee
e83925623c Bug 1600878 - P2. Use contentBlockingEvents in WindowGlobalParent instead of contentBlockingEvent in RemoteSecurityUI r=timhuang,Ehsan
ContentBlockingEvent in RemoteSecurityUI is updated after receiving a notification from a child process.
Since contentBlockingEvent will be removed from the child, this patch removes the use of
contentBlockingEvent in RemoteSecurityUI and uses the API defined in WindowGlobalActor.

Depends on D55621

Differential Revision: https://phabricator.services.mozilla.com/D55622
2019-12-17 11:25:23 +00:00
Alexander Surkov
5ba93ef6ba Bug 1606108 - Autoscroll works only once in iframe r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D58390
2020-01-10 13:41:27 +00:00
Kris Maglione
4c7c557b5b Bug 1604003: Part 2 - Convert RemoteController.js to a JSM. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D57557
2020-01-07 00:04:57 +00:00
Kris Maglione
8e3ab18307 Bug 1604003: Part 1 - Correctly unregister controller when destroying browser. r=NeilDeakin
It was being set to null before we tried to remove it, which left a dead
controller registered and consuming commands after a frameloader rebuild.

Differential Revision: https://phabricator.services.mozilla.com/D57556
2019-12-27 15:24:15 +00:00
Alexander Surkov
24e3c7fe9c Bug 1597765 - support auto scroll in out of process frames r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D54596
2019-12-19 02:35:57 +00:00
Tyler
d8bd12f370 Bug 1601475 - Remove ImageContentLoaded event and ImageDocumentLoaded message handling code across the tree r=Gijs,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D56051
2019-12-18 21:46:51 +00:00
Bogdan Tara
8251e6e929 Backed out changeset c53bf87f1e5d (bug 1597765) for test_login_item.html failures CLOSED TREE 2019-12-19 04:31:36 +02:00
Alexander Surkov
9a13236b7f Bug 1597765 - support auto scroll in out of process frames r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D54596
2019-12-18 15:09:50 +00:00
Daniel Varga
c3a6307d14 Backed out changeset e65c1bcb013f (bug 1601475) for causing build bustage. On a CLOSED TREE 2019-12-09 12:51:07 +02:00
Tyler
8b1da25252 Bug 1601475 - Remove ImageContentLoaded event and ImageDocumentLoaded message handling code across the tree r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D56051
2019-12-09 10:18:25 +00:00
Wendy Wigg
ab3b807d67 Bug 1431214 - removed _setCurrentURI function as it was unused r=mikedeboer
Differential Revision: https://phabricator.services.mozilla.com/D55394
2019-12-04 10:59:42 +00:00
Tim Nguyen
5afeb64516 Bug 1597120 - Replace usages of XUL mousethrough with CSS pointer-events. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D53348
2019-11-22 13:15:00 +00:00
Tim Nguyen
53c6a85b67 Bug 1597844 - Fix positioning of form validation and date/time input popups. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D53902
2019-11-22 00:13:15 +00:00
Kris Maglione
ff3e04cd41 Bug 1595927 - Remove XPCOM gunk around RemoteWebNavigation creation. r=mconley
It just adds a lot of unnecessary overhead and indirection.

Differential Revision: https://phabricator.services.mozilla.com/D52753
2019-11-15 01:23:40 +00:00
Ciure Andrei
f52996a55d Backed out changeset 70304898d836 (bug 1595927) for causing browser_cmd_click.js to permafail CLOSED TREE 2019-11-14 23:35:19 +02:00
Kris Maglione
a89166c8f0 Bug 1595927 - Remove XPCOM gunk around RemoteWebNavigation creation. r=mconley
It just adds a lot of unnecessary overhead and indirection.

Differential Revision: https://phabricator.services.mozilla.com/D52753
2019-11-14 19:09:22 +00:00
Carson Greene
c59f4bad09 Bug 1576911 - Make ThumbnailsChild a JSWindowActorChild instead of ActorChild r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D45957
2019-11-06 23:32:35 +00:00