gecko-dev/dom/base/nsOpenURIInFrameParams.h
Kris Maglione 08ac1de819 Bug 1357589: Part 1 - Use the correct default remote type for content-created tabs/windows. r=mconley r=mystor
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
2017-08-16 15:11:59 -07:00

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;
};