Commit Graph

494 Commits

Author SHA1 Message Date
Cosmin Sabou
15d3a82c5b Backed out changeset b12a898acdc9 (bug 1679418) for bc failures on browser_restore_redirect.js. CLOSED TREE 2020-12-15 18:33:16 +02:00
Peter Van der Beken
dee6ba2cdd Bug 1679418 - Fix test_bug1300461.html failure for Fission. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D99711
2020-12-14 21:04:00 +00:00
Olli Pettay
096f64cd95 Bug 1671839 - [Fission] Fix and re-enable back.py and navigate.py for Fission, r=peterv
I think there could be still other issues with persist handling (or at least it could be simplified),
but this should be pretty much the minimal patch to fix the issue when
about:newtab url is changed to about:blank (without a redirect, but magical about: handling).
So we need to check persisted handling later than currently.

I'd prefer to land something like this first and then consider if there are better ways to handle
both about: url changes and proper redirects.

Depends on D93899

Differential Revision: https://phabricator.services.mozilla.com/D98871
2020-12-14 14:37:25 +00:00
Emilio Cobos Álvarez
136e604164 Bug 1635914 - Move active flag handling explicitly to BrowsingContext. r=nika
And have it mirror in the parent process more automatically.

The docShellIsActive setter in the browser-custom-element side needs to
be there rather than in the usual DidSet() calls because the
AsyncTabSwitcher code relies on getting an exact amount of notifications
as response to that specific setter. Not pretty, but...

BrowserChild no longer sets IsActive() on the docshell itself for OOP
iframes. This fixes bug 1679521. PresShell activeness is used to
throttle rAF as well, which handles OOP iframes nicely as well.

Differential Revision: https://phabricator.services.mozilla.com/D96072
2020-12-11 15:43:19 +00:00
Tom Tung
b861bddc03 Bug 1656768 - Propagate SessionStorage data in BackgroundSessionStorageManager to the new top browsing context while replacing the top context id; r=nika,dom-workers-and-storage-reviewers,asuth
### Story

While the exisiting top browsing context is replaced, SessionStorage relies on
itself been propagated by SessionStore. However, this has been disabled in
SessionHistory in the parent process.

Therefore, we need to propagate SessionStorage data by propagating
BackgroundSessionStorageManager.

### Notes

This patch assumes that the target top-level browsing context shouldn't have
been registered to BackgroundSessionStorageManager. If this can happen, we will
either need to merge SessionStorage data into it or find a proper (earlier)
place to update sManagers.

### Test Plan

Test: D97763
Try: https://treeherder.mozilla.org/jobs?repo=try&revision=2acc7b393fb80b640f4fbe3ade1da7dd440c380e&selectedTaskRun=KK6XhR-sQuqv5lcntVLc2w.0

Differential Revision: https://phabricator.services.mozilla.com/D98082
2020-12-03 14:19:35 +00:00
Olli Pettay
aea600d9d0 Bug 1674519, don't use speculative loading for session history initiated page loads, r=peterv
Depends on D97225

Differential Revision: https://phabricator.services.mozilla.com/D97325
2020-11-26 16:38:12 +00:00
Steven MacLeod
a8a5d5d11c Bug 1585070 - move nsPIDOMWindowOuter::mIsActive to BrowsingContext. r=kmag
A new `BrowsingContext` field has been added to track the active
browser window for the `:-moz-window-inactive` pseudoclass. This
field takes the place of `nsPIDOMWindowOuter::mIsActive`.

With this change `:-moz-window-inactive` is now fission compatible.

Differential Revision: https://phabricator.services.mozilla.com/D86422
2020-11-20 15:16:58 +00:00
Emilio Cobos Álvarez
05ae413693 Bug 1676996 - Don't try to process-switch a remote frame to local. r=nika
The guess in comment 3 is basically right, here's the relevant bits that
happen in that trace in order:

[content] nsFrameLoaderOwner::ChangeRemotenessCommon:
  frame becomes remote for the content process.
[parent] WindowGlobalParent::SendMakeFrameLocal (mIsDocumentLoad=true)
[content] ContentChild::SendCloneDocumentTreeInto
[parent] ContentParent::RecvCloneDocumentTreeInto
[content] WindowGlobalChild::RecvMakeFrameLocal

So basically the source frame we're cloning is mid-switch-to-local:
local already from the parent process POV, but still remote for the
child.

I think ignoring the clone in this case is fine (which will make the
print iframe just about:blank).

I've decided it to handle it in ChangeRemoteness but I could also handle
it in RecvCloneDocumentTreeInto with a check like

    if (cp->GetRemoteType() == GetRemoteType())

or such I think. Let me know if you'd prefer that.

Differential Revision: https://phabricator.services.mozilla.com/D97144
2020-11-19 17:44:30 +00:00
Johann Hofmann
6bbc0f6169 Bug 1650095 - Part 4 - For Fission, reset SHEntryHasUserInteraction cache in the parent when adding/updating SH entries. r=smaug
When re-enabling the test case blocked by bug 1670933 it became apparent that we were not allowing
session history entries to be marked with user interaction when the SH entry was created by navigation
through a sub-frame. The code that we had for this only covered updating SH entries after pushState etc.,
not adding new entries for document loads.

When SH lives in the child this is easier to manage in nsDocShell, but with Fission it probably makes sense
to move this code to the parent.

Differential Revision: https://phabricator.services.mozilla.com/D97421
2020-11-18 23:42:46 +00:00
Johann Hofmann
c6d76d6c06 Bug 1650095 - Part 2 - Implement SessionHistoryEntry::Get/SetHasUserInteraction. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D93346
2020-11-18 11:51:00 +00:00
Noemi Erli
bc4586b638 Backed out changeset 18448a7ebf82 (bug 1585070) for causing failures in test_cocoa_window_focus.html CLOSED TREE 2020-11-17 06:09:50 +02:00
Steven MacLeod
9727243f2f Bug 1585070 - move nsPIDOMWindowOuter::mIsActive to BrowsingContext. r=kmag
A new `BrowsingContext` field has been added to track the active
browser window for the `:-moz-window-inactive` pseudoclass. This
field takes the place of `nsPIDOMWindowOuter::mIsActive`.

With this change `:-moz-window-inactive` is now fission compatible.

Differential Revision: https://phabricator.services.mozilla.com/D86422
2020-11-16 22:37:51 +00:00
Peter Van der Beken
f8d483eea0 Bug 1673702 - Wrong page loaded when reloading after navigating back across an eTLD+1 boundary. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D95408
2020-10-30 23:49:14 +00:00
Olli Pettay
8ad3337d21 Bug 1671962 - Iframes loaded from restored session are loaded out of order when Fission enabled, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D94904
2020-10-30 22:10:15 +00:00
Narcis Beleuzu
cc40242343 Backed out 2 changesets (bug 1673947, bug 1671962) for wpt failure on nested-context-navigations-iframe.html . CLOSED TREE
Backed out changeset 8c71945d53bd (bug 1673947)
Backed out changeset 84ed543cd810 (bug 1671962)
2020-10-30 21:05:41 +02:00
Peter Van der Beken
eacc5c3a06 Bug 1670933 - Back button is not enabled by iframe navigation when Fission is enabled. r=smaug,extension-reviewers,zombie
Differential Revision: https://phabricator.services.mozilla.com/D95322
2020-10-30 15:24:15 +00:00
Olli Pettay
ed33c8b544 Bug 1671962 - Iframes loaded from restored session are loaded out of order when Fission enabled, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D94904
2020-10-30 11:48:23 +00:00
Kartikaya Gupta
89b226f97b Bug 1660054 - Hook up the zoom-reset action to also reset APZ/scaling zoom. r=Gijs,nika,botond
The goal here is to hook up the ctrl+0 keyboard shortcut to reset the scaling
zoom applied by pinch gestures (on touchscreen or trackpad), in addition to
resetting the reflow zoom (aka full zoom). This patch also makes other mechanisms
to reset the reflow zoom (e.g. clicking on the "100%" label in the hamburger menu)
also reset scaling zoom, which I think makes sense for consistency.

Most of this patch is just plumbing, but I'm unfamiliar with these codepaths
so requesting review from relevant owners to make sure it's sane.

Differential Revision: https://phabricator.services.mozilla.com/D94624
2020-10-28 22:48:57 +00:00
Mihai Alexandru Michis
b7b44e485f Backed out changeset 952da6bff887 (bug 1660054) for causing bc failures in browser_test_reset_scaling_zoom.js
CLOSED TREE
2020-10-28 23:00:15 +02:00
Kartikaya Gupta
f91467938d Bug 1660054 - Hook up the zoom-reset action to also reset APZ/scaling zoom. r=Gijs,nika,botond
The goal here is to hook up the ctrl+0 keyboard shortcut to reset the scaling
zoom applied by pinch gestures (on touchscreen or trackpad), in addition to
resetting the reflow zoom (aka full zoom). This patch also makes other mechanisms
to reset the reflow zoom (e.g. clicking on the "100%" label in the hamburger menu)
also reset scaling zoom, which I think makes sense for consistency.

Most of this patch is just plumbing, but I'm unfamiliar with these codepaths
so requesting review from relevant owners to make sure it's sane.

Differential Revision: https://phabricator.services.mozilla.com/D94624
2020-10-28 19:14:18 +00:00
Randell Jesup
27a2ada105 Bug 1670848: Handling aborting history navigations when others run r=smaug
Handles edge cases around history.go() with one event loop spin

Differential Revision: https://phabricator.services.mozilla.com/D93302
2020-10-23 20:27:50 +00:00
alwu
869d11e1fa Bug 1669434 - part1 : update default metadata if needed when page title changes. r=chunmin,nika
When a page doesn't have a non-empty media session metadata, we would use its title as a default metadata, which would display as an artist name on the virtual control interface.

Therefore, when a page changes its title, we should also notify media controller (if it's been created) in order to update the default metadata as well.

Differential Revision: https://phabricator.services.mozilla.com/D93670
2020-10-21 17:25:34 +00:00
Tom Tung
0f9a6be337 Bug 1654080 - Use PBackground for syncing SessionStorageCache and use LSWriteOptimizer to send data changes; r=dom-workers-and-storage-reviewers,janv,nika
This patch does:
- Use LSWriteOptimizer
- Remove SessionStorageService since it's unused.
- Move IPC from PContent to PBackground
(by SessionStorageManager{Child, Parent} and SessionStorageCache{Child, Parent}).
- Extract SessionStorageManagerBase and add PBackgroundSessionStorageManager.
- Expose a getter function to get a BackgroundParentManager for top context id
on the parent.

IPC
- Before this patch:
  - Copy from parent while loading a document.
    - Mark cache entry on the parent process as loaded by the child id.
  - Update change on checkpoint.
  - Unmark cache entry on the parent process as unloaded for the child id while
  the parent actor is destorying.
- After this patch:
  - Sync IPC load in the first SessionStorage operation.
  - Update change on checkpoint

`BackgroundSessionStorageManager`'s lifecycle on the parent process.
- Create by `SessionStorageManagerParent` and register to the `sManagers`.
- Hold by `SessionStorageManagerParent` and `sManagers`.
- Remove from the `sManagers` while the corresponding `BrowsingContext` is
destructed (on the parent process).

Depends on D89341

Differential Revision: https://phabricator.services.mozilla.com/D89342
2020-10-14 00:19:33 +00:00
Olli Pettay
ca9eebae15 Bug 1668083 - when redirecting load from post to get, load should become replacing load also in session history, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D93249
2020-10-13 16:36:11 +00:00
Olli Pettay
c97d934fbc Bug 1670214 - [Fission] Crash in [@ mozilla::dom::CanonicalBrowsingContext::NotifyOnHistoryReload], r=jesup
Trying to keep the old behavior where reload succeeds without shistory
https://hg.mozilla.org/mozilla-central/file/a42aa95147941ca7983eaf4846b644e207de24f8/docshell/base/nsDocShell.cpp#l4091

Differential Revision: https://phabricator.services.mozilla.com/D93331
2020-10-13 13:17:12 +00:00
Olli Pettay
178385d0e2 Bug 1669321 - [Fission] Crash in [@ mozilla::dom::SessionHistoryEntry::SetInfo], r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D92999
2020-10-08 22:15:17 +00:00
julianwels
c0d05f3250 Bug 1653026 - Added HTTPS-Only Mode upgrade info to browser UI state. r=mattwoodrow,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D86566
2020-10-06 00:34:55 +00:00
Olli Pettay
aee6f990e5 Bug 1668577 - Make child process to send offset to parent process, not index, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D92074
2020-10-02 16:15:47 +00:00
Brindusan Cristian
3cc0d3988e Backed out 2 changesets (bug 1653026) for mochitest failures at WindowGlobalParent.cpp. CLOSED TREE
Backed out changeset 54c69c99b241 (bug 1653026)
Backed out changeset e70649f78910 (bug 1653026)
2020-10-03 10:49:04 +03:00
julianwels
6bc43a95a4 Bug 1653026 - Added HTTPS-Only Mode upgrade info to browser UI state. r=mattwoodrow,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D86566
2020-10-03 01:22:19 +00:00
Razvan Maries
e7522539a9 Backed out changeset a3cbffeb24a3 (bug 1668577) for perma failures on location_reload.html. CLOSED TREE 2020-10-02 19:11:53 +03:00
Olli Pettay
83ddcf9adc Bug 1668577 - Make child process to send offset to parent process, not index, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D92074
2020-10-02 12:05:57 +00:00
Olli Pettay
139acbd1a0 Bug 1668215 - Bail out loading if the SessionHistoryEntry for LoadingSessionHistoryInfo isn't available anymore, r=peterv
I haven't managed to reproduce the crash

Differential Revision: https://phabricator.services.mozilla.com/D92150
2020-10-02 11:53:18 +00:00
Olli Pettay
c22b1a69f0 Bug 1668026 - Update child process index and length when modifying those in parent process, r=peterv
The patch is utilizing SHistoryChangeNotifier which was added for testing.
CallerWillNotifyHistoryIndexAndLengthChanges is needed to avoid extra index/length updates so that
the child side doesn't get update but have still pending updates in it.

Differential Revision: https://phabricator.services.mozilla.com/D91756
2020-10-01 11:13:29 +00:00
Randell Jesup
4633f04a14 Bug 1668129: nullcheck shistory in ReplaceActiveSessionHistoryEntry() r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91849
2020-09-30 13:48:10 +00:00
Peter Van der Beken
527c3ba7c7 Bug 1659102 - Fix fragment navigation for session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91593
2020-09-29 12:09:59 +00:00
Peter Van der Beken
9e53805747 Bug 1659102 - Merge SetActiveSessionHistoryEntryForTop and SetActiveSessionHistoryEntryForFrame. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91592
2020-09-29 12:04:20 +00:00
Olli Pettay
042a6f1f66 Bug 1667035 - Crash in [@ mozilla::dom::CanonicalBrowsingContext::RemoveDynEntriesFromActiveSessionHistoryEntry], r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D91632
2020-09-29 08:28:09 +00:00
Randell Jesup
3fadcefeec Bug 1621643: Ensure replaceState updates all listeners about the modified state r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91433
2020-09-28 07:34:03 +00:00
Andreas Farre
5e1d0cbcd2 Bug 1667027 - Fix more tests that uses legacySHistory. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91277
2020-09-28 12:31:58 +00:00
Nika Layzell
9970c775ec Bug 1656753 - Track CrossGroupOpener on CanonicalBrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D90890
2020-09-22 16:28:37 +00:00
Kashav Madan
a38531ab04 Bug 1666485 - Make BrowsingContext::CreatedDynamically non-synced, r=nika,kmag
Differential Revision: https://phabricator.services.mozilla.com/D89223
2020-09-23 13:43:38 +00:00
Butkovits Atila
c2d7327248 Backed out changeset a81b4130ac14 (bug 1666485) for causing bustages on BrowsingContext. CLOSED TREE 2020-09-23 16:18:53 +03:00
Kashav Madan
fb01408d2e Bug 1666485 - Make BrowsingContext::CreatedDynamically non-synced, r=nika,kmag
Differential Revision: https://phabricator.services.mozilla.com/D89223
2020-09-23 12:45:38 +00:00
Olli Pettay
ab88cc6fb2 Bug 1666596 - Ensure location.reload(true) removes entries for iframes, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91050
2020-09-23 10:04:57 +00:00
Randell Jesup
9f980bafd3 Bug 1665710: don't update session history for about:blank transient pages r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90589
2020-09-22 16:54:56 +00:00
Olli Pettay
c3afb3ad8c Bug 1666465 - Pass the correct value as the 'persist' parameter in CanonicalBrowsingContext::SessionHistoryCommit, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D90995
2020-09-22 16:27:14 +00:00
Razvan Maries
2b880a944f Backed out changeset 1de39d201585 (bug 1665709) for build bustages on SessionHistoryEntry.cpp. CLOSED TREE 2020-09-22 16:56:14 +03:00
Randell Jesup
f24b0b5532 Bug 1665709: don't update session history for about:blank transient pages r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90589
2020-09-22 13:10:11 +00:00
Emilio Cobos Álvarez
cb233b8098 Bug 1557645 - Clone OOP iframes in the right process. r=nika
This works, though probably we want to do some follow-up tweaks, like
the adding of the onload blocker and so on, so that we can avoid the
UpdateDimensions hack.

We may also want a PrintObject in the nsPrintJob tree, perhaps...

Differential Revision: https://phabricator.services.mozilla.com/D90310
2020-09-22 09:57:27 +00:00