gecko-dev/dom/base/ThirdPartyUtil.h
Anny Gakhokidze 7c0eb4aad6 Bug 1594529 - Create LoadInfo for subdocuments directly in parent process with DocumentChannel. r=mattwoodrow,nika
Currently, with Fission enabled we are not able to create a proper LoadInfo
object when doing a subdocument load because we do not have access to a loading
context if the load is happening inside of an OOP frame. To solve this problem,
we can create LoadInfo object from scratch in the parent process where we have
all of the required information.

Differential Revision: https://phabricator.services.mozilla.com/D68893

--HG--
extra : moz-landing-system : lando
2020-04-15 18:53:06 +00:00

52 lines
1.5 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/. */
#ifndef ThirdPartyUtil_h__
#define ThirdPartyUtil_h__
#include "mozIThirdPartyUtil.h"
#include "mozilla/Attributes.h"
#include "mozilla/dom/Document.h"
#include "nsCOMPtr.h"
#include "nsEffectiveTLDService.h"
#include "nsString.h"
#include "nsPIDOMWindow.h"
#include "mozilla/dom/WindowGlobalParent.h"
class nsIURI;
class nsPIDOMWindowOuter;
class ThirdPartyUtil final : public mozIThirdPartyUtil {
public:
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_MOZITHIRDPARTYUTIL
nsresult Init();
static void Startup();
static ThirdPartyUtil* GetInstance();
nsresult IsThirdPartyGlobal(mozilla::dom::WindowGlobalParent* aWindowGlobal,
bool* aResult);
private:
~ThirdPartyUtil();
bool IsThirdPartyInternal(const nsCString& aFirstDomain,
const nsCString& aSecondDomain) {
// Check strict equality.
return aFirstDomain != aSecondDomain;
}
nsresult IsThirdPartyInternal(const nsCString& aFirstDomain,
nsIURI* aSecondURI, bool* aResult);
nsCString GetBaseDomainFromWindow(nsPIDOMWindowOuter* aWindow);
RefPtr<nsEffectiveTLDService> mTLDService;
};
#endif