mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-07 21:43:24 +00:00
08ac1de819
When creating new windows/tabs from the content process, we currently choose the default remote type based on the referrer URI, rather than the actual remote type of the opener. While this generally works, it fails when opening windows from URLs (particularly in iframes) which are opened in process types other than their default process type, since the initial about:blank load gets redirected to a new process before the child process has a chance to load its actual target URI. Using the actual remote type of the child opening the window fixes this problem for URLs which are capable of being loaded into the child's process type. MozReview-Commit-ID: ClxVGxu52Lf --HG-- extra : rebase_source : 3a029d207dac0b08eb7c7ce7737adfd9c1c96892
35 lines
1.1 KiB
C++
35 lines
1.1 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "mozilla/BasePrincipal.h"
|
|
#include "nsCycleCollectionParticipant.h"
|
|
#include "nsIBrowserDOMWindow.h"
|
|
#include "nsIFrameLoader.h"
|
|
#include "nsString.h"
|
|
|
|
namespace mozilla {
|
|
class OriginAttributes;
|
|
}
|
|
|
|
class nsOpenURIInFrameParams final : public nsIOpenURIInFrameParams
|
|
{
|
|
public:
|
|
NS_DECL_CYCLE_COLLECTION_CLASS(nsOpenURIInFrameParams)
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
NS_DECL_NSIOPENURIINFRAMEPARAMS
|
|
|
|
explicit nsOpenURIInFrameParams(const mozilla::OriginAttributes& aOriginAttributes,
|
|
nsIFrameLoaderOwner* aOpener);
|
|
|
|
private:
|
|
~nsOpenURIInFrameParams();
|
|
|
|
mozilla::OriginAttributes mOpenerOriginAttributes;
|
|
nsCOMPtr<nsIFrameLoaderOwner> mOpenerBrowser;
|
|
nsString mReferrer;
|
|
nsCOMPtr<nsIPrincipal> mTriggeringPrincipal;
|
|
};
|