Commit Graph

194 Commits

Author SHA1 Message Date
Matt Woodrow
643b32a784 Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-16 23:24:49 +00:00
Nika Layzell
1d03ab399a Bug 1640019 - Part 6: Get rid of the rebuild_frameloaders pref, r=Gijs
This pref was enabled on all platforms, and the codepath which has it disabled
has been untested for some time. Remove the pref to simplify the code handling
the old case.

Differential Revision: https://phabricator.services.mozilla.com/D78974
2020-06-15 23:24:00 +00:00
Nika Layzell
d241629cd6 Bug 1640019 - Part 4: Get rid of PROCESS_BEHAVIOR_CUSTOM, r=mattwoodrow,Gijs,necko-reviewers,valentin
As tabbrowser now uses `PROCESS_BEHAVIOR_STANDARD`, `PROCESS_BEHAVIOR_CUSTOM` is
now unused. This patch removes that now-unused code.

Differential Revision: https://phabricator.services.mozilla.com/D78972
2020-06-15 23:23:56 +00:00
Nika Layzell
ffba327709 Bug 1640019 - Part 2: Use new process switch logic in tabbrowser, r=mattwoodrow,Gijs
Add a series of extra hooks and methods to allow tabbrowser to use the new
process switching codepath. This duplicates some of the logic from
`updateBrowserRemoteness` into event handlers.

Differential Revision: https://phabricator.services.mozilla.com/D78970
2020-06-15 23:23:46 +00:00
Nika Layzell
cd7c835794 Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-15 23:23:43 +00:00
Bogdan Tara
01729dc302 Backed out changeset 26231891f004 (bug 1644943) for browser_backforward_userinteraction.js and browser_sessionHistory.js failures CLOSED TREE 2020-06-16 02:46:15 +03:00
Matt Woodrow
396f3259ce Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-15 22:01:34 +00:00
Narcis Beleuzu
a4b06a5d82 Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE
Backed out changeset 8844170ff408 (bug 1508306)
Backed out changeset b750f1d873cf (bug 1508306)
Backed out changeset c7170e76e676 (bug 1640019)
Backed out changeset 5905995e4815 (bug 1640019)
Backed out changeset 7bf86513348e (bug 1640019)
Backed out changeset f7d0605295f7 (bug 1640019)
Backed out changeset 521b4d5a9a89 (bug 1640019)
Backed out changeset 8542edc564bc (bug 1640019)
Backed out changeset 4f6a03152526 (bug 1640019)
Backed out changeset 30d2bf04719b (bug 1640019)
2020-06-12 22:47:50 +03:00
Nika Layzell
ec5cc2b3df Bug 1640019 - Part 6: Get rid of the rebuild_frameloaders pref, r=Gijs
This pref was enabled on all platforms, and the codepath which has it disabled
has been untested for some time. Remove the pref to simplify the code handling
the old case.

Differential Revision: https://phabricator.services.mozilla.com/D78974
2020-06-12 16:52:07 +00:00
Nika Layzell
f660add49c Bug 1640019 - Part 4: Get rid of PROCESS_BEHAVIOR_CUSTOM, r=mattwoodrow,Gijs,necko-reviewers,valentin
As tabbrowser now uses `PROCESS_BEHAVIOR_STANDARD`, `PROCESS_BEHAVIOR_CUSTOM` is
now unused. This patch removes that now-unused code.

Differential Revision: https://phabricator.services.mozilla.com/D78972
2020-06-12 16:52:02 +00:00
Nika Layzell
76084be5e4 Bug 1640019 - Part 2: Use new process switch logic in tabbrowser, r=mattwoodrow,Gijs
Add a series of extra hooks and methods to allow tabbrowser to use the new
process switching codepath. This duplicates some of the logic from
`updateBrowserRemoteness` into event handlers.

Differential Revision: https://phabricator.services.mozilla.com/D78970
2020-06-12 16:52:01 +00:00
Nika Layzell
ff4af69c9c Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-12 16:52:00 +00:00
Johann Hofmann
fb76d2ce00 Bug 1515073 - Part 3 - Add support for skipping session entries without user interaction on desktop. r=JanH,Gijs
Depends on D27586

Differential Revision: https://phabricator.services.mozilla.com/D27587
2020-06-09 14:50:18 +00:00
Johann Hofmann
210b8937d3 Bug 1515073 - Part 2 - Allow nsIWebNavigation::{goBack,goForward} to skip entries without user interaction. r=Gijs,peterv
Depends on D27585

Differential Revision: https://phabricator.services.mozilla.com/D27586
2020-06-09 14:50:14 +00:00
Emilio Cobos Álvarez
50faebd23c Bug 1638118 - Ignore redundant calls to enterResponsiveMode() / leaveResponsiveMode(). r=mtigley
We can get two calls to enterResponsiveMode() for a tab, via the two
callsites in devtools/client/responsive/ui.js.

Calling enterResponsiveMode() is not idempotent after bug 1634621, as
the second call will lose the zoom information. Prevent this from
happening by making the call a no-op if we're already in responsive
mode.

Do the same in leaveResponsiveMode() for consistency.

Differential Revision: https://phabricator.services.mozilla.com/D78294
2020-06-04 21:16:11 +00:00
Emma Malysz
94857cc341 Bug 1634046: lazy load invalid form, date/time picker, and autoscroll panels and popups by placing in templates. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D75971
2020-06-03 15:44:03 +00:00
Andrea Marchesini
aaa2675e18 Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 2 - Expose PartitionedPrincipal, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76915
2020-06-03 06:09:52 +00:00
Csoregi Natalia
ed3350ab9b Backed out 5 changesets (bug 1639833) for failures on browser_blockingIndexedDbInWorkers.js. CLOSED TREE
Backed out changeset 6b4f76d65540 (bug 1639833)
Backed out changeset c77acba1aacb (bug 1639833)
Backed out changeset 30c97666919e (bug 1639833)
Backed out changeset d769b313441a (bug 1639833)
Backed out changeset ed41b41d1b03 (bug 1639833)
2020-06-02 15:02:31 +03:00
Andrea Marchesini
88b78d701a Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 2 - Expose PartitionedPrincipal, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76915
2020-06-02 08:28:05 +00:00
Noemi Erli
2b060384fc Backed out 5 changesets (bug 1639833) for causing sessionstorage related failures CLOSED TREE
Backed out changeset b36af8d9db34 (bug 1639833)
Backed out changeset 712c11904dbe (bug 1639833)
Backed out changeset 14f1e4783582 (bug 1639833)
Backed out changeset b7f14c4cfe5d (bug 1639833)
Backed out changeset b4b25034dd83 (bug 1639833)
2020-06-01 19:31:50 +03:00
Andrea Marchesini
5ffef561ac Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 2 - Expose PartitionedPrincipal, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76915
2020-06-01 11:57:46 +00:00
Agi Sferro
2fe5bfb13c Bug 1629113 - Move caret browsing handler to tabbrowser.js. r=NeilDeakin
We don't use it on GeckoView.

Differential Revision: https://phabricator.services.mozilla.com/D72724
2020-05-27 23:49:55 +00:00
Razvan Maries
f03defea0f Backed out changeset 9abcbf533b08 (bug 1629113) as per Agi's request. CLOSED TREE 2020-05-28 02:06:05 +03:00
Agi Sferro
d58f611927 Bug 1629113 - Move caret browsing handler to tabbrowser.js. r=NeilDeakin
We don't use it on GeckoView.

Differential Revision: https://phabricator.services.mozilla.com/D72724
2020-05-27 22:26:17 +00:00
Razvan Maries
7df978dcab Backed out changeset 5b97f74fb6fd (bug 1629113) for perma failures on test_keycodes.xhtml. CLOSED TREE 2020-05-27 21:16:13 +03:00
Agi Sferro
40fac7931a Bug 1629113 - Move caret browsing handler to tabbrowser.js. r=NeilDeakin
We don't use it on GeckoView.

Differential Revision: https://phabricator.services.mozilla.com/D72724
2020-05-27 01:33:50 +00:00
Matt Woodrow
ef60c889a8 Bug 1631405 - Move nsISecureBrowserUI to be owned by the canonical browsing context instead of docshell. r=nika,ckerschb,Gijs,webcompat-reviewers,twisniewski
This removes all docshell nsISecureBrowserUI and mixed content properties, and moves them into CanonicalBrowsingContext/WindowGlobalParent. It makes the mixed content blocker just compute the state for the current load, and then send the results to the parent process, where we update the security state accordingly.

I think we could in the future remove onSecurityChange entirely, and instead just fire an event to the <browser> element notifying it of changes to the queryable securityUI.

Unfortunately we have a lot of existing code that depends on specific ordering between onSecurityChange and onLocationChange, so I had to hook into the RemoteWebProgress implementation in BrowserParent to mimic the same timings.

Differential Revision: https://phabricator.services.mozilla.com/D75447
2020-05-27 00:28:59 +00:00
Bogdan Tara
f92848aa00 Backed out 4 changesets (bug 1631405) for multiple mochitest failures CLOSED TREE
Backed out changeset 9963cc0b23cb (bug 1631405)
Backed out changeset 469ac933ed7c (bug 1631405)
Backed out changeset 0c5f55864268 (bug 1631405)
Backed out changeset 20dcbcc2f3b8 (bug 1631405)
2020-05-27 01:30:20 +03:00
Matt Woodrow
b4186ecdce Bug 1631405 - Move nsISecureBrowserUI to be owned by the canonical browsing context instead of docshell. r=nika,ckerschb,Gijs,webcompat-reviewers,twisniewski
This removes all docshell nsISecureBrowserUI and mixed content properties, and moves them into CanonicalBrowsingContext/WindowGlobalParent. It makes the mixed content blocker just compute the state for the current load, and then send the results to the parent process, where we update the security state accordingly.

I think we could in the future remove onSecurityChange entirely, and instead just fire an event to the <browser> element notifying it of changes to the queryable securityUI.

Unfortunately we have a lot of existing code that depends on specific ordering between onSecurityChange and onLocationChange, so I had to hook into the RemoteWebProgress implementation in BrowserParent to mimic the same timings.

Differential Revision: https://phabricator.services.mozilla.com/D75447
2020-05-26 21:17:01 +00:00
Neil Deakin
75fc6180d4 Bug 1594752, use WindowGlobalParent's documentTitle to update tab titles rather than sending messages and events between processes, r=Gijs
Fix up the browser_tab_label_during_restore.js test to wait for the right number of tab title changes, since the timing of the tab title updating has now changed.

Differential Revision: https://phabricator.services.mozilla.com/D72562
2020-05-19 13:42:41 +00:00
Andreea Pavel
21811d567a Backed out 2 changesets (bug 1594752) for causing bug 1638148 on a CLOSED TREE
Backed out changeset 66cc44b67170 (bug 1594752)
Backed out changeset e781cf38f088 (bug 1594752)
2020-05-15 13:47:49 +03:00
Neil Deakin
ab455944fa Bug 1594752, use WindowGlobalParent's documentTitle to update tab titles rather than sending messages and events between processes, r=Gijs
Fix up the browser_tab_label_during_restore.js test to wait for the right number of tab title changes, since the timing of the tab title updating has now changed.

Differential Revision: https://phabricator.services.mozilla.com/D72562
2020-05-13 19:26:10 +00:00
Mihai Alexandru Michis
20781963e7 Backed out 2 changesets (bug 1594752) for causing failures in browser_e10s_switchbrowser.js
CLOSED TREE

Backed out changeset b54107a687e4 (bug 1594752)
Backed out changeset 801d1e226947 (bug 1594752)
2020-05-11 18:11:24 +03:00
Neil Deakin
d170441114 Bug 1594752, use WindowGlobalParent's documentTitle to update tab titles rather than sending messages and events between processes, r=Gijs
Fix up the browser_tab_label_during_restore.js test to wait for the right number of tab title changes, since the timing of the tab title updating has now changed.

Differential Revision: https://phabricator.services.mozilla.com/D72562
2020-05-11 09:03:03 +00:00
Dan Glastonbury
566fe3e750 Bug 1624550 - P4: Cleanup APIs for setting BrowsingContext::UseGlobalHistory. r=farre
This value is determined in Parent process and passed down to nsDocShell. Delete
the messages to pass the setting down and set it on the BrowsingContext in the
Parent process.

Refactor the code that determines to opt-out of using global history. Code
inspection determines that windowless browsing contexts want to opt-out as well
as any frame with `disableglobalhistory` attribute set on it.

Differential Revision: https://phabricator.services.mozilla.com/D72279
2020-05-08 03:28:44 +00:00
Emilio Cobos Álvarez
050152cd00 Bug 1636227 - Don't reset _sameProcessAsFrameLoader on first browser initialization. r=Gijs
LazyFC changes the way we initialize browsers in a subtle way which is
important for print preview and PiP.

When creating a print preview browser / PiP, we rely on getting the right
process via _sameProcessAsFrameLoader. This is set very early on the
lifetime of the browser element, after it's upgraded but before its
connectedCallback() calls.

What happens with LazyFC is that we append the browser to the document,
then set its sameProcessAsFrameLoader, then initialize the browser from
connectedCallback(). That calls resetFields() _after_ setting the
_sameProcessAsFrameLoader, which clears it out, not good.

Without LazyFC we initialize it via frame construction, as soon as the
browser is attached to the document, so all ends up working out.

Explicitly avoid clearing this field out if not initialized yet, instead
of the hasOwnProperty check which was for the very same thing, just
about XBL initialization.

Differential Revision: https://phabricator.services.mozilla.com/D74282
2020-05-07 21:52:24 +00:00
Emilio Cobos Álvarez
66e8f6d75e Bug 1634621 - Alternative approach: Make use of the member only for RDM. r=Gijs
That avoids having two sources of truth. This might be better, still
unsure how I feel about it compared to the current setup.

Differential Revision: https://phabricator.services.mozilla.com/D73427
2020-05-01 14:23:34 +00:00
Emilio Cobos Álvarez
81e5ccb113 Bug 1634621 - Move _fullZoom initialization to resetFields() rather than the browser constructor. r=Gijs
Bug 1633938 re-introduced this field to handle full-zoom on RDM without
having to affect the actual content zoom, see related hacks that went
away in this push:

  9e6925ea79

But I added it to the browser element constructor, instead of to
resetFields(), which means that it's not properly reset when the
browsing context changes and thus it can get out of sync.

Move it to resetFields(), so that we properly detect that zoom has
changed. An alternative to this is to only use this._fullZoom when in
RDM instead.

This is where a similar field only used for remote browser used to live
before my Fission zoom changes:

https://searchfox.org/mozilla-central/rev/9642a113737b556750228965bb9cbd3aaa655e22/toolkit/content/widgets/browser-custom-element.js#346

Differential Revision: https://phabricator.services.mozilla.com/D73426
2020-05-01 14:23:34 +00:00
Emilio Cobos Álvarez
0c95165176 Bug 1633938 - Implement RDM zoom with transform. r=bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D72981
2020-04-30 01:37:30 +00:00
Dorel Luca
68be601e48 Backed out 4 changesets (bug 1633938, bug 1578008, bug 1633488) for Devtool failures in browser/base/content/test/static/browser_parsable_css.js. CLOSED TREE
Backed out changeset e690c4cf8848 (bug 1633938)
Backed out changeset c999ecad3be8 (bug 1633488)
Backed out changeset abbc47ce1451 (bug 1578008)
Backed out changeset 9e6925ea790f (bug 1578008)
2020-04-30 04:13:42 +03:00
Emilio Cobos Álvarez
3143e89fe0 Bug 1633938 - Implement RDM zoom with transform. r=bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D72981
2020-04-29 21:44:17 +00:00
Emilio Cobos Álvarez
eb5df42faf Bug 1612068 - Move zoom from the content viewer to the browsing context. r=nika
We need it to live in BrowsingContext instead of WindowContext, because
we need to preserve the zoom level across same-origin navigation.

It'd be nice if it only lived in the top BC, but that's not possible at
the moment because a lot of tests rely on zooming only iframes. Some of
them can be adjusted for scaling the top instead, but not sure it's
worth it's worth fixing them and moving the zoom to be top-only, as it'd
be a bunch of effort, and the complexity and overhead of propagating the
zoom is not so big.

The print-preview-specific code in nsContentViewer is from before we did
the document cloning setup, and it seems useless. I've tested print
preview scaling before and after my patch and both behave the same.

The rest is just various test changes to use the SpecialPowers APIs or
BrowsingContext as needed instead of directly poking at the content
viewer.

I named the pres context hook RecomputeBrowsingContextDependentData, as
more stuff should move there like overrideDPPX and other media emulation
shenanigans.

I also have some ideas to simplify or even remove ZoomChild and such,
but that's followup work.

Differential Revision: https://phabricator.services.mozilla.com/D71969
2020-04-22 19:32:52 +00:00
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