Bug 1650089 - Part 1: Add a remoteTypeOverride option for about:blank loads triggered by chrome, r=annyG,kmag
After the changes in this bug, about:blank loads triggered by chrome will finish in a "web" content process, as they have an untrusted null principal without a precursor. In a few places throughout the codebase, however, we perform about:blank loads with the explicit expectation that they do not change processes. This new remoteTypeOverride option allows the intended final process to be explicitly specified in this situation. For security & simplicity reasons, this new attribute is limited to only be usable on system-principal triggered loads of about:blank in toplevel browsing contexts. Differential Revision: https://phabricator.services.mozilla.com/D120671
This commit is contained in:
@@ -304,6 +304,14 @@ class nsDocShellLoadState final {
|
||||
|
||||
bool IsMetaRefresh() const { return mIsMetaRefresh; }
|
||||
|
||||
const mozilla::Maybe<nsCString>& GetRemoteTypeOverride() const {
|
||||
return mRemoteTypeOverride;
|
||||
}
|
||||
|
||||
void SetRemoteTypeOverride(const nsCString& aRemoteTypeOverride) {
|
||||
mRemoteTypeOverride = mozilla::Some(aRemoteTypeOverride);
|
||||
}
|
||||
|
||||
// When loading a document through nsDocShell::LoadURI(), a special set of
|
||||
// flags needs to be set based on other values in nsDocShellLoadState. This
|
||||
// function calculates those flags, before the LoadState is passed to
|
||||
@@ -524,6 +532,9 @@ class nsDocShellLoadState final {
|
||||
// The original URI before query stripping happened. If it's present, it shows
|
||||
// the query stripping happened. Otherwise, it will be a nullptr.
|
||||
nsCOMPtr<nsIURI> mUnstrippedURI;
|
||||
|
||||
// If set, the remote type which the load should be completed within.
|
||||
mozilla::Maybe<nsCString> mRemoteTypeOverride;
|
||||
};
|
||||
|
||||
#endif /* nsDocShellLoadState_h__ */
|
||||
|
||||
Reference in New Issue
Block a user