forked from mirrors/gecko-dev
		
	 3987c781d0
			
		
	
	
		3987c781d0
		
	
	
	
	
		
			
			And have it mirror in the parent process more automatically. The docShellIsActive setter in the browser-custom-element side needs to be there rather than in the usual DidSet() calls because the AsyncTabSwitcher code relies on getting an exact amount of notifications as response to that specific setter. Not pretty, but... BrowserChild no longer sets IsActive() on the docshell itself for OOP iframes. This fixes bug 1679521. PresShell activeness is used to throttle rAF as well, which handles OOP iframes nicely as well. Differential Revision: https://phabricator.services.mozilla.com/D96072
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* 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/. */
 | |
| 
 | |
| /* eslint-env mozilla/frame-script */
 | |
| /* global api, CopyPasteAssistent */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 | |
| 
 | |
| function debug(msg) {
 | |
|   // dump("BrowserElementChild - " + msg + "\n");
 | |
| }
 | |
| 
 | |
| var BrowserElementIsReady;
 | |
| 
 | |
| debug(`Might load BE scripts: BEIR: ${BrowserElementIsReady}`);
 | |
| if (!BrowserElementIsReady) {
 | |
|   debug("Loading BE scripts");
 | |
|   if (!("BrowserElementIsPreloaded" in this)) {
 | |
|     Services.scriptloader.loadSubScript(
 | |
|       "chrome://global/content/BrowserElementChildPreload.js",
 | |
|       this
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   function onDestroy() {
 | |
|     removeMessageListener("browser-element-api:destroy", onDestroy);
 | |
| 
 | |
|     if (api) {
 | |
|       api.destroy();
 | |
|     }
 | |
| 
 | |
|     BrowserElementIsReady = false;
 | |
|   }
 | |
|   addMessageListener("browser-element-api:destroy", onDestroy);
 | |
| 
 | |
|   BrowserElementIsReady = true;
 | |
| } else {
 | |
|   debug("BE already loaded, abort");
 | |
| }
 | |
| 
 | |
| sendAsyncMessage("browser-element-api:call", { msg_name: "hello" });
 |