CLOSED TREE
Backed out changeset 03c4c517ee37 (bug 1640091)
Backed out changeset a1d86c177d79 (bug 1640091)
Backed out changeset f481d4ec255a (bug 1640091)
A straightforward patch. Since DNS resolution is moved to socket process, we have to add another ipdl to make `nsINativeDNSResolverOverride` work.
Differential Revision: https://phabricator.services.mozilla.com/D78483
This will allow the DocumentChannel to be removed from the loading group and the docshell to stop waiting for for the ParentProcessDocumentChannel to do something.
Depends on D77201
Differential Revision: https://phabricator.services.mozilla.com/D77202
The moves all decisions to perform a process switch into the DocumentLoadListerner. This removes the unnecessary need to go via a content process to start the load.
Differential Revision: https://phabricator.services.mozilla.com/D76315
The response from ServiceWorker might also be COOP mismatched, such that the document/sub-document loading need to be performed on another process.
However, DocumentLoadListener only works with nsHttpChannel.
This patch would like to support InterceptedHttpChannel in DocumentLoadListener.
Differential Revision: https://phabricator.services.mozilla.com/D76841
This patch removes the assertion that ensures the channel is
top-level via BrowsingContext.
This is because more than one testcases creates a TYPE_DOCUMENT channel
to test.
Differential Revision: https://phabricator.services.mozilla.com/D76152
We don't need to call this API in DocumentLoadListener::AsyncOpen because we have
already called this in nsHttpChannel::AsyncOpen
Differential Revision: https://phabricator.services.mozilla.com/D76275
This patch removes TYPE_DOCUMENT test in test_shouldclassify because the
testcase creates a non-top level channel with TYPE_DOCUMENT flag (this is wong!),
which triggers the assertion in UpdateIsOnContentBlockingAllowList.
File a follow-up bug 1640715 to add TYPE_DOCUMENT test back.
Differential Revision: https://phabricator.services.mozilla.com/D76152
We don't need to call this API in DocumentLoadListener::AsyncOpen because we have
already called this in nsHttpChannel::AsyncOpen
Differential Revision: https://phabricator.services.mozilla.com/D76275
The moves all decisions to perform a process switch into the DocumentLoadListerner. This removes the unnecessary need to go via a content process to start the load.
Differential Revision: https://phabricator.services.mozilla.com/D76315
This adds a new implementation of nsISHEntry
(mozilla::dom::SessionHistoryEntry). When session history in the parent
is turned on, we'll instantiate the existing nsSHistory in the parent
process, but it will store entries of this new type. The nsSHistory in
the child process will also be instantiated for now, to avoid breaking
too many assumptions, and we try to keep parent and child
implementations in sync.
mozilla::dom::SessionHistoryEntry stores most of its data in a new
structure (mozilla::dom::SessionHistoryInfo) which can be sent over IPC.
When a load starts through the DocumentChannel we create an entry of
this new type for it in the parent process in
DocumentLoadListener::Open. The SessionHistoryInfo for that entry (with
an associated ID) is then sent over IPC in the RedirectToRealChannelArgs
to the process that does the actual load, where we store it in the
nsDocShell in mLoadingEntry (and mLoadingEntryId). The parent process
keeps track of outstanding loading entries in an array (mLoadingEntries)
in the CanonicalBrowsingContext. When a load finishes the nsDocShell
transfers mLoadingEntry into mActiveEntry, and notifies the parent
process through an IPC message (HistoryCommit) with the id of that
entry. The CanonicalBrowsingContext then removes the entry from the
array and stores it in its mActiveEntry, and adds the entry to the
nsSHistory object.
There are a number of things in this patch that are broken, and a lot of
FIXME comments. However, with the pref turned off things should just be
working as before. The goal is to land this first part, and then iterate
on the new implementation until we can switch over.
Differential Revision: https://phabricator.services.mozilla.com/D65329
Currently, the worker's COEP is saved in WorkerPrivate and not be respected when loading resources in workers.
This patch adds an attribute loadingEmbedderPolicy in nsILoadInfo, which indicates the COEP header the loading must be respected.
The default value of loadingEmbedderPolicy is nsILoadInfo::EMBEDDER_POLICY_NULL.
loadingEmbedderPolicy is initialized with the COEP of the BrowsingContext used for creating LoadInfo.
And it could be set to other value when fetch in workers.
Differential Revision: https://phabricator.services.mozilla.com/D73690
FirstPartyDomain is only set while loading a top-level document.
We added in nsHttpChannel::AsyncOpen to ensure that the value is updated
whenever we open a channel.
Differential Revision: https://phabricator.services.mozilla.com/D75277