Commit Graph

3588 Commits

Author SHA1 Message Date
Peter Van der Beken
073b9fe8a3 Bug 1664656 - Decide whether to add a new entry based on the load type. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90028
2020-09-20 12:40:10 +00:00
Dorel Luca
ec20fe3b28 Backed out 3 changesets (bug 1664656, bug 1664655) for multiple failures in checkouts/gecko/docshell/base/nsDocShell.cpp
Backed out changeset ac1e652efeb6 (bug 1664655)
Backed out changeset c8c1abf5f616 (bug 1664656)
Backed out changeset 3c1e9e36a39e (bug 1664656)
2020-09-19 16:38:26 +03:00
Peter Van der Beken
b5c7f56328 Bug 1664655 - Update loading entry's layout history state if it shares it with the current active entry. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90030
2020-09-18 16:49:41 +00:00
Peter Van der Beken
b8bc59f244 Bug 1664656 - Decide whether to add a new entry based on the load type. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90028
2020-09-18 16:49:35 +00:00
Olli Pettay
66e12c9497 Bug 1666010 - Ensure nsDocShell::mActiveEntryIsLoadingFromSessionHistory value is set correctly r=nika
Differential Revision: https://phabricator.services.mozilla.com/D90751
2020-09-18 20:29:52 +00:00
Nika Layzell
cbb7e8111c Bug 1659696 - Check PendingInitialization before targeting in window.open, r=kmag
This requires adding the flag as a synced field on the BrowsingContext, and
checking it in a few more places. Attempts to open a new window in this racy
manner will now raise an exception.

This should avoid the issue from bug 1658854 by blocking the buggy attempts to
load before the nested event loop has been exited.

Differential Revision: https://phabricator.services.mozilla.com/D87927
2020-09-16 20:47:55 +00:00
Olli Pettay
eb56ea3f79 Bug 1574261 - Make nsDocShell::MaybeHandleSubFrameHistory work with session history in parent, r=peterv
This has couple of different pieces and one may want to focus on each of those separately when
reviewing. The first two as small changes.

- Moving mDynamicallyCreated from nsDocShell to be a sync'ed field on BrowsingContext.
  CanonicalBrowsingContext::CreateLoadingSessionHistoryEntryForLoad sets that on a newly created entry.
- Adding mActiveEntryIsLoadingFromSessionHistory. mLoadingEntry + mActiveEntryIsLoadingFromSessionHistory has roughly
  the same lifetime as mLSHE. mLoadingActiveEntry is needed so that child docshell can know whether its parent is loading from session history.
- The main part is in MaybeHandleSubframeHistory which checks if the parent docshell is loading from session history,
  and if so, asks for a LoadingSessionHistoryInfo. In the case of docshell living in a child process that operation is asynchronous,
  so when the data is back from the parent process, LoadURI is called again with the possibly updated data.
  One could possibly split the code to smaller methods and then deal with aContinueHandlingSubframeHistory only in LoadURI,
  but MaybeHandleSubframeHistory does have some early returns which would make that approach possibly hard to follow.

Differential Revision: https://phabricator.services.mozilla.com/D89685
2020-09-17 18:22:08 +00:00
Olli Pettay
214288bf66 Bug 1664329 - Make HandleSameDocumentNavigation handle loads from session history, r=peterv
Need to mark entries as being loading sooner, since HandleSameDocumentNavigation case doesn't do the round trip through parent again.
And HandleSameDocumentNavigation needs to update active entry and inform parent that is has dealt with the load.

Differential Revision: https://phabricator.services.mozilla.com/D89837
2020-09-17 15:39:59 +00:00
Olli Pettay
5c2d273bac Bug 1665502 - Update session history entry names also in the parent process, r=timhuang,peterv
Differential Revision: https://phabricator.services.mozilla.com/D90493
2020-09-17 10:40:32 +00:00
Andreas Farre
4589444b55 Bug 1662410 - Part 1: Fix usage of ChildSHistory.legacySHistory . r=peterv
ChildSHistory.legacySHistory isn't valid for content processes when
session history in the parent is enabled. We try to fix this by either
delegating to the parent by IPC or move the implementation partially
or as a whole to the parent.

Differential Revision: https://phabricator.services.mozilla.com/D89353
2020-09-16 14:51:01 +00:00
Randell Jesup
58052c9d07 Bug 1664961: check if child process when processing docshell Reload() r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D90200
2020-09-16 02:44:45 +00:00
Andrea Marchesini
8146b4c28c Bug 444222 - Update the window.name when doing the navigation, r=smaug,nika
This patch implements the window.name updating in the spec
https://html.spec.whatwg.org/#history-traversal.

Differential Revision: https://phabricator.services.mozilla.com/D81361
2020-09-15 17:51:05 +00:00
Tim Huang
7cdafb631c Bug 444222 - Add a flag 'SetHasLoadedNonInitialDocument' in the BrowsingContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D88416
2020-09-11 07:52:11 +00:00
Anny Gakhokidze
bad9fca7b5 Bug 1655572 - Make view-source not require session history, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D88509
2020-09-14 19:00:05 +00:00
Andreas Farre
b297123ada Bug 1664776 - Fall back to loading entry if there is no active entry. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D90089
2020-09-14 16:32:17 +00:00
Mark Banner
4ab5dd90a6 Bug 1375244 - Remove sync KeywordToURI and related IPC messages as they are no longer required. r=Gijs,mak,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D89486
2020-09-11 07:15:21 +00:00
Gerald Squelart
8c49ce00f7 Bug 1663554 - Convert PROFILER_ADD_TEXT_MARKER and friends to PROFILER_MARKER_TEXT - r=gregtatum
Mostly mechanical changes, with some work needed to convert the different payloads (with optional timestamps, inner window id, and/or backtrace) to the equivalent MarkerOptions.

Differential Revision: https://phabricator.services.mozilla.com/D89587
2020-09-11 00:41:27 +00:00
Agi Sferro
6828a8bde2 Bug 1659073 - Add confirmRepost to nsIPromptCollection. r=pbz,smaug
Differential Revision: https://phabricator.services.mozilla.com/D89657
2020-09-10 22:28:15 +00:00
Peter Van der Beken
8de77a2680 Bug 1664274 - Call SetDocCurrentStateObj for session history in the parent too. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D89812
2020-09-10 19:30:13 +00:00
Peter Van der Beken
09f2ab8eb3 Bug 1663492 - Make nsDocShell::OnNewURI use mActiveEntry instead of mOSHE if session history in the parent is enabled. r=smaug
Depends on D89423

Differential Revision: https://phabricator.services.mozilla.com/D89424
2020-09-08 12:52:02 +00:00
Peter Van der Beken
f2a0fcadad Bug 1663487 - Set loading history entry for loads in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D89420
2020-09-09 00:40:38 +00:00
Mihai Alexandru Michis
d33a3d0772 Backed out changeset 73f6874cb3dd (bug 1613054) for causing bc failures in browser_abort_visibility.js
CLOSED TREE
2020-09-09 16:40:24 +03:00
Henri Sivonen
c76004770f Bug 1613054 part 2 - On iframe.focus() create the initial about:blank for in-process case and treat the iframe as focusable for OOP case. r=nika
Test cases in https://bugzilla.mozilla.org/show_bug.cgi?id=1649099

Differential Revision: https://phabricator.services.mozilla.com/D88978
2020-09-09 12:09:44 +00:00
Sean Feng
1eb8a9cf9e Bug 1662525 - Don't refresh uri if the docShell is being destroyed r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D89173
2020-09-08 21:48:59 +00:00
Andreas Farre
22e25d7bb9 Bug 1662131 - Fix history getters for web browser persist. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D88979
2020-09-08 13:06:29 +00:00
Kris Maglione
c67b4248ac Bug 1650257: Part 2 - Abort SetNewDocument() if ancestors are discarded/cached. r=nika,smaug,sg
Differential Revision: https://phabricator.services.mozilla.com/D87486
2020-08-31 18:51:56 +00:00
Olli Pettay
427f55a85d Bug 1661753 - Don't return early from nsDocShell::UpdateURLAndHistory when only session-history-in-parent related code is running, r=peterv
Depends on D88450

Differential Revision: https://phabricator.services.mozilla.com/D88630
2020-08-30 16:35:11 +00:00
Olli Pettay
b35b34b0b8 Bug 1661317 - Make loading session history entries for iframes work when session history lives in the parent process (step 1), r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D88312
2020-08-28 16:50:58 +00:00
Anny Gakhokidze
a7185cba9a Bug 1589102 - Part 1: Enable about:srcdoc loads via DocumentChannel, r=mattwoodrow
This patch enables sandboxed srcdoc loads to take place via DocumentChannel,
and adds mechanisms for enabling unsandboxed ones.

Both unsandboxed srcdoc, and in subsequent patches, about:blank, loads require
that the triggering principal and the principal to inherit point to the same
instance if the load takes place in the same process as where we are inheriting
those principals from. We save those principals on a target browsing context before
we load the URI, and later, when we are deserializing LoadInfoArgs into
LoadInfo in the content process, we retrieve the saved principals if the
current load identifier of the target BC matches the load identifier saved
along with the principals.

We also need to make sure that during a process switch for about:srcdoc load,
we don't use the original URI for about:srcdoc to determine the remote type and
instead we use channel's result principal.

Differential Revision: https://phabricator.services.mozilla.com/D85079
2020-08-28 17:20:30 +00:00
Peter Van der Beken
31834461cf Bug 1656347 - Make session history getters to work with history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88413
2020-08-27 18:47:27 +00:00
Nika Layzell
e61c424215 Bug 1658082 - Part 3: Set TargetBrowsingContext for non-retargeted loads, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D87468
2020-08-26 19:20:15 +00:00
Nika Layzell
1d159a5aea Bug 1658082 - Part 2: Remove duplicate information from InternalLoad IPC messages, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D87467
2020-08-26 19:20:06 +00:00
Nika Layzell
758beeb5cd Bug 1659520 - Use explicit type arguments for SyncedContext field setters, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D87466
2020-08-26 07:53:26 +00:00
Peter Van der Beken
78c82ffa68 Bug 1660869 - Forward RemoveFromSessionHistory to the parent process for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88061
2020-08-25 16:20:17 +00:00
Peter Van der Beken
c49bf30ba7 Bug 1660868 - Forward RemoveDynEntries to the parent process for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88060
2020-08-25 16:04:51 +00:00
Emilio Cobos Álvarez
2c0dea8fd4 Bug 1636728 - Centralize printing entry points in nsGlobalWindowOuter, and move cloning out of nsPrintJob. r=jwatt,geckoview-reviewers,smaug,agi
This centralizes our print and preview setup in nsGlobalWindowOuter so
that we never re-clone a clone, and so that we reuse the window.open()
codepath to create the browsing context to clone into.

For window.print, for both old print dialog / silent printing and new
print preview UI, we now create a hidden browser (as in with visibility:
collapse, which takes no space but still gets a layout box).

 * In the modern UI case, this browser is swapped with the actual print
   preview clone, and the UI takes care of removing the browser.

 * In the print dialog / silent printing case, the printing code calls
   window.close() from nsDocumentViewer::OnDonePrinting().

 * We don't need to care about the old print preview UI for this case
   because it can't be open from window.print().

We need to fall back to an actual window when there's no
nsIBrowserDOMWindow around for WPT print tests and the like, which don't
have one. That seems fine, we could special-case this code path more if
needed but it doesn't seem worth it.

Differential Revision: https://phabricator.services.mozilla.com/D87063
2020-08-25 17:45:12 +00:00
Peter Van der Beken
db5e75fe8d Bug 1660873 - Disable some unnecessary nsDocShell code if session history in the parent is turned on. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88062
2020-08-25 10:42:37 +00:00
Peter Van der Beken
399d4779a3 Bug 1659992 - Fix nsDocShell::LoadURI for session history loads to not rely on session history in the child. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D87744
2020-08-23 17:41:13 +00:00
Peter Van der Beken
bcaca89c59 Bug 1649131 - Implement history.pushState/.replaceState for session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D87039
2020-08-23 17:41:03 +00:00
Peter Van der Beken
fe202df43d Bug 1649131 - Stop checking for an nsISHEntry in nsDocShellLoadState as a sign of a load from history. r=smaug
Checking for an nsISHEntry doesn't work anymore with session history in the
parent. For that we can check that the loading session history info's
mIsLoadFromSessionHistory is true. If there is no loading session history info
we can fall back to the old way of checking for a non-null nsISHEntry (which
will only ever be true if session history in the parent is turned off).

Differential Revision: https://phabricator.services.mozilla.com/D87037
2020-08-23 20:20:55 +00:00
Olli Pettay
59b564c065 Bug 1658821 - Move Id from SessionHistoryInfo to LoadingSessionHistoryInfo, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86864
2020-08-20 16:55:21 +00:00
Butkovits Atila
720f9513be Backed out changeset 24d6087acc64 (bug 1658821) for build bustage at SessionHistoryEntry.cpp. CLOSED TREE 2020-08-20 17:37:53 +03:00
Olli Pettay
0f7a888b1a Bug 1658821 - Move Id from SessionHistoryInfo to LoadingSessionHistoryInfo, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86864
2020-08-20 12:02:17 +00:00
Andreas Farre
6e21e4b9d4 Bug 1647454 - Check popup permission on window context in DoURILoad. r=nika
Depends on D86808

Differential Revision: https://phabricator.services.mozilla.com/D86828
2020-08-18 16:16:32 +00:00
Peter Van der Beken
c4b5de135a Bug 1658902 - Fix some code for session history in parent to work without the session history implementation in the child. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D86946
2020-08-17 18:52:31 +00:00
Edgar Chen
6fed29e010 Bug 1611961 - Move UserActivationState from BrowsingContext to WindowContext; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D83126
2020-08-17 11:02:34 +00:00
Edgar Chen
f504130c9e Bug 1658650 - Remove hasValidTransientUserAction from DocumentChannelCreationArgs; r=mattwoodrow
There is the same information exposed in DocShellLoadStateInit.
And we don't really need to query user action from BrowsingContext, this
information would be carried in `nsDocShellLoadState`.

Depends on D86724

Differential Revision: https://phabricator.services.mozilla.com/D86773
2020-08-16 20:18:02 +00:00
Olli Pettay
3e8cc08f02 Bug 1658649 - Make session-history-in-parent nsISHEntry setters to rely on active entry, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86770
2020-08-13 22:51:47 +00:00
Olli Pettay
33f2ab8a98 Bug 1658454 - nsISHEntry.cacheKey setter for session-history-in-parent, r=peterv
SessionHistoryEntry::MaybeSynchronizeSharedStateToInfo call is a tad controversial, but
something like that is needed for the cases when the actual value lives in the SHEntrySharedParentState.

Differential Revision: https://phabricator.services.mozilla.com/D86640
2020-08-13 22:51:17 +00:00
Olli Pettay
30c9de8bdc Bug 1658280 - nsISHEntry.scrollRestorationIsManual setter for session-history-in-parent, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D86547
2020-08-13 23:17:48 +00:00