forked from mirrors/gecko-dev
		
	 4b67d42692
			
		
	
	
		4b67d42692
		
	
	
	
	
		
			
			This patch makes the triggering princpal to be propagated to the BrowserChild when calling LoadURL in nsFrameLoader. And use it as the triggering principal for loading instead of the system principal. Differential Revision: https://phabricator.services.mozilla.com/D75965
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.6 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/dom/BrowserBridgeHost.h"
 | |
| 
 | |
| #include "mozilla/Unused.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace dom {
 | |
| 
 | |
| NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(BrowserBridgeHost)
 | |
|   NS_INTERFACE_MAP_ENTRY(nsISupports)
 | |
| NS_INTERFACE_MAP_END
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTION(BrowserBridgeHost)
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTING_ADDREF(BrowserBridgeHost)
 | |
| NS_IMPL_CYCLE_COLLECTING_RELEASE(BrowserBridgeHost)
 | |
| 
 | |
| BrowserBridgeHost::BrowserBridgeHost(BrowserBridgeChild* aChild)
 | |
|     : mBridge(aChild) {}
 | |
| 
 | |
| TabId BrowserBridgeHost::GetTabId() const { return mBridge->GetTabId(); }
 | |
| 
 | |
| mozilla::layers::LayersId BrowserBridgeHost::GetLayersId() const {
 | |
|   return mBridge->GetLayersId();
 | |
| }
 | |
| 
 | |
| BrowsingContext* BrowserBridgeHost::GetBrowsingContext() const {
 | |
|   return mBridge->GetBrowsingContext();
 | |
| }
 | |
| 
 | |
| nsILoadContext* BrowserBridgeHost::GetLoadContext() const {
 | |
|   return mBridge->GetLoadContext();
 | |
| }
 | |
| 
 | |
| void BrowserBridgeHost::LoadURL(nsIURI* aURI,
 | |
|                                 nsIPrincipal* aTriggeringPrincipal) {
 | |
|   MOZ_ASSERT(aURI);
 | |
|   MOZ_ASSERT(aTriggeringPrincipal);
 | |
| 
 | |
|   nsAutoCString spec;
 | |
|   aURI->GetSpec(spec);
 | |
|   Unused << mBridge->SendLoadURL(spec, aTriggeringPrincipal);
 | |
| }
 | |
| 
 | |
| void BrowserBridgeHost::ResumeLoad(uint64_t aPendingSwitchId) {
 | |
|   Unused << mBridge->SendResumeLoad(aPendingSwitchId);
 | |
| }
 | |
| 
 | |
| void BrowserBridgeHost::DestroyStart() { DestroyComplete(); }
 | |
| 
 | |
| void BrowserBridgeHost::DestroyComplete() {
 | |
|   if (!mBridge) {
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   Unused << mBridge->Send__delete__(mBridge);
 | |
|   mBridge = nullptr;
 | |
| }
 | |
| 
 | |
| bool BrowserBridgeHost::Show(const OwnerShowInfo& aShowInfo) {
 | |
|   Unused << mBridge->SendShow(aShowInfo);
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| void BrowserBridgeHost::UpdateDimensions(const nsIntRect& aRect,
 | |
|                                          const ScreenIntSize& aSize) {
 | |
|   Unused << mBridge->SendUpdateDimensions(aRect, aSize);
 | |
| }
 | |
| 
 | |
| void BrowserBridgeHost::UpdateEffects(EffectsInfo aEffects) {
 | |
|   if (!mBridge || mEffectsInfo == aEffects) {
 | |
|     return;
 | |
|   }
 | |
|   mEffectsInfo = aEffects;
 | |
|   Unused << mBridge->SendUpdateEffects(mEffectsInfo);
 | |
| }
 | |
| 
 | |
| already_AddRefed<nsIWidget> BrowserBridgeHost::GetWidget() const {
 | |
|   RefPtr<Element> owner = mBridge->GetFrameLoader()->GetOwnerContent();
 | |
|   nsCOMPtr<nsIWidget> widget = nsContentUtils::WidgetForContent(owner);
 | |
|   if (!widget) {
 | |
|     widget = nsContentUtils::WidgetForDocument(owner->OwnerDoc());
 | |
|   }
 | |
|   return widget.forget();
 | |
| }
 | |
| 
 | |
| }  // namespace dom
 | |
| }  // namespace mozilla
 |