summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/hudservice.js
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-01 07:17:50 +0100
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-01 07:17:50 +0100
commite59c00a5c59aefe2a408eb78509ef3afaf3658f8 (patch)
tree40b8c8bd311ff17abb81edd6f24bb6ad3ce9b9b8 /devtools/client/webconsole/hudservice.js
parentabf60058584772437a317fbc27ea32cbda4a07cb (diff)
downloadUXP-e59c00a5c59aefe2a408eb78509ef3afaf3658f8.tar
UXP-e59c00a5c59aefe2a408eb78509ef3afaf3658f8.tar.gz
UXP-e59c00a5c59aefe2a408eb78509ef3afaf3658f8.tar.lz
UXP-e59c00a5c59aefe2a408eb78509ef3afaf3658f8.tar.xz
UXP-e59c00a5c59aefe2a408eb78509ef3afaf3658f8.zip
DevTools - Browser Console - restore sessions
https://github.com/MoonchildProductions/moebius/pull/112
Diffstat (limited to 'devtools/client/webconsole/hudservice.js')
-rw-r--r--devtools/client/webconsole/hudservice.js59
1 files changed, 47 insertions, 12 deletions
diff --git a/devtools/client/webconsole/hudservice.js b/devtools/client/webconsole/hudservice.js
index 46b4f2a13..beb592367 100644
--- a/devtools/client/webconsole/hudservice.js
+++ b/devtools/client/webconsole/hudservice.js
@@ -51,6 +51,23 @@ HUD_SERVICE.prototype =
*/
consoles: null,
+ _browerConsoleSessionState: false,
+ storeBrowserConsoleSessionState() {
+ this._browerConsoleSessionState = !!this.getBrowserConsole();
+ },
+ getBrowserConsoleSessionState() {
+ return this._browerConsoleSessionState;
+ },
+
+ /**
+ * Restore the Browser Console as provided by SessionStore.
+ */
+ restoreBrowserConsoleSession: function HS_restoreBrowserConsoleSession() {
+ if (!HUDService.getBrowserConsole()) {
+ HUDService.toggleBrowserConsole();
+ }
+ },
+
/**
* Assign a function to this property to listen for every request that
* completes. Used by unit tests. The callback takes one argument: the HTTP
@@ -647,6 +664,9 @@ BrowserConsole.prototype = extend(WebConsole.prototype, {
return this._bc_init;
}
+ // Only add the shutdown observer if we've opened a Browser Console window.
+ ShutdownObserver.init();
+
this.ui._filterPrefsPrefix = BROWSER_CONSOLE_FILTER_PREFS_PREFIX;
let window = this.iframeWindow;
@@ -702,17 +722,32 @@ BrowserConsole.prototype = extend(WebConsole.prototype, {
},
});
-const HUDService = new HUD_SERVICE();
+exports.HUDService = HUDService;
-(() => {
- let methods = ["openWebConsole", "openBrowserConsole",
- "toggleBrowserConsole", "getOpenWebConsole",
- "getBrowserConsole", "getHudByWindow",
- "openBrowserConsoleOrFocus", "getHudReferenceById"];
- for (let method of methods) {
- exports[method] = HUDService[method].bind(HUDService);
- }
+/**
+ * The ShutdownObserver listens for app shutdown and saves the current state
+ * of the Browser Console for session restore.
+ */
+var ShutdownObserver = {
+ _initialized: false,
+ init() {
+ if (this._initialized) {
+ return;
+ }
+
+ Services.obs.addObserver(this, "quit-application-granted", false);
+
+ this._initialized = true;
+ },
- exports.consoles = HUDService.consoles;
- exports.lastFinishedRequest = HUDService.lastFinishedRequest;
-})();
+ observe(message, topic) {
+ if (topic == "quit-application-granted") {
+ HUDService.storeBrowserConsoleSessionState();
+ this.uninit();
+ }
+ },
+
+ uninit() {
+ Services.obs.removeObserver(this, "quit-application-granted");
+ }
+};