/* 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/. */ "use strict"; const { Ci } = require("chrome"); const Services = require("Services"); const { Task } = require("devtools/shared/task"); const { BrowserElementWebNavigation } = require("./web-navigation"); const { getStack } = require("devtools/shared/platform/stack"); // A symbol used to hold onto the frame loader from the outer browser while tunneling. const FRAME_LOADER = Symbol("devtools/responsive/frame-loader"); function debug(msg) { // console.log(msg); } /** * Properties swapped between browsers by browser.xml's `swapDocShells`. See also the * list at /devtools/client/responsive.html/docs/browser-swap.md. */ const SWAPPED_BROWSER_STATE = [ "_remoteFinder", "_securityUI", "_documentURI", "_documentContentType", "_contentTitle", "_characterSet", "_contentPrincipal", "_imageDocument", "_fullZoom", "_textZoom", "_isSyntheticDocument", "_innerWindowID", "_manifestURI", ]; /** * This module takes an "outer" from a browser tab as described by * Firefox's tabbrowser.xml and wires it up to an "inner"