forked from mirrors/gecko-dev
		
	 9ff27adca3
			
		
	
	
		9ff27adca3
		
	
	
	
	
		
			
			These methods are no longer necessary, as all loads which can trigger process switches now go through DocumentChannel. The shouldLoadURI methods on nsIWebBrowserChrome3 are unfortunately still necessary as they're used by the disabled-by-default "Single-Site Browser" feature. In the future this may be possible to clean-up. Differential Revision: https://phabricator.services.mozilla.com/D94638
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 | |
| /* 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/. */
 | |
| 
 | |
| /* This content script contains code that requires a tab browser. */
 | |
| 
 | |
| /* eslint-env mozilla/frame-script */
 | |
| 
 | |
| var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 | |
| 
 | |
| ChromeUtils.defineModuleGetter(
 | |
|   this,
 | |
|   "BrowserUtils",
 | |
|   "resource://gre/modules/BrowserUtils.jsm"
 | |
| );
 | |
| 
 | |
| // BrowserChildGlobal
 | |
| var global = this;
 | |
| 
 | |
| var WebBrowserChrome = {
 | |
|   onBeforeLinkTraversal(originalTarget, linkURI, linkNode, isAppTab) {
 | |
|     return BrowserUtils.onBeforeLinkTraversal(
 | |
|       originalTarget,
 | |
|       linkURI,
 | |
|       linkNode,
 | |
|       isAppTab
 | |
|     );
 | |
|   },
 | |
| 
 | |
|   // Check whether this URI should load in the current process
 | |
|   shouldLoadURI(
 | |
|     aDocShell,
 | |
|     aURI,
 | |
|     aReferrerInfo,
 | |
|     aHasPostData,
 | |
|     aTriggeringPrincipal,
 | |
|     aCsp
 | |
|   ) {
 | |
|     return true;
 | |
|   },
 | |
| 
 | |
|   shouldLoadURIInThisProcess(aURI) {
 | |
|     return true;
 | |
|   },
 | |
| };
 | |
| 
 | |
| if (Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_CONTENT) {
 | |
|   let tabchild = docShell
 | |
|     .QueryInterface(Ci.nsIInterfaceRequestor)
 | |
|     .getInterface(Ci.nsIBrowserChild);
 | |
|   tabchild.webBrowserChrome = WebBrowserChrome;
 | |
| }
 | |
| 
 | |
| Services.obs.notifyObservers(this, "tab-content-frameloader-created");
 | |
| 
 | |
| // This is a temporary hack to prevent regressions (bug 1471327).
 | |
| void content;
 |