diff --git a/extensions/chromium/extension-router.js b/extensions/chromium/extension-router.js index bd0cdc875..6d64b41ac 100644 --- a/extensions/chromium/extension-router.js +++ b/extensions/chromium/extension-router.js @@ -100,28 +100,4 @@ limitations under the License. } ); console.log("Set up extension URL router."); - - Object.keys(localStorage).forEach(function (key) { - // The localStorage item is set upon unload by chromecom.js. - var parsedKey = /^unload-(\d+)-(true|false)-(.+)/.exec(key); - if (parsedKey) { - var timeStart = parseInt(parsedKey[1], 10); - var isHidden = parsedKey[2] === "true"; - var url = parsedKey[3]; - if (Date.now() - timeStart < 3000) { - // Is it a new item (younger than 3 seconds)? Assume that the extension - // just reloaded, so restore the tab (work-around for crbug.com/511670). - chrome.tabs.create({ - url: - chrome.runtime.getURL("restoretab.html") + - "?" + - encodeURIComponent(url) + - "#" + - encodeURIComponent(localStorage.getItem(key)), - active: !isHidden, - }); - } - localStorage.removeItem(key); - } - }); })(); diff --git a/extensions/chromium/restoretab.html b/extensions/chromium/restoretab.html deleted file mode 100644 index 6e6fa425d..000000000 --- a/extensions/chromium/restoretab.html +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/extensions/chromium/restoretab.js b/extensions/chromium/restoretab.js deleted file mode 100644 index 0f1c6c605..000000000 --- a/extensions/chromium/restoretab.js +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2015 Mozilla Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/** - * This is part of the work-around for crbug.com/511670. - * - chromecom.js sets the URL and history state upon unload. - * - extension-router.js retrieves the saved state and opens restoretab.html - * - restoretab.html (this script) restores the URL and history state. - */ -"use strict"; - -var url = decodeURIComponent(location.search.slice(1)); -var historyState = decodeURIComponent(location.hash.slice(1)); - -historyState = historyState === "undefined" ? null : JSON.parse(historyState); - -history.replaceState(historyState, null, url); -location.reload(); diff --git a/web/chromecom.js b/web/chromecom.js index b41f13bce..4f72b2327 100644 --- a/web/chromecom.js +++ b/web/chromecom.js @@ -249,24 +249,6 @@ function requestAccessToLocalFile(fileUrl, overlayManager, callback) { }); } -if (window === top) { - // Chrome closes all extension tabs (crbug.com/511670) when the extension - // reloads. To counter this, the tab URL and history state is saved to - // localStorage and restored by extension-router.js. - // Unfortunately, the window and tab index are not restored. And if it was - // the only tab in an incognito window, then the tab is not restored either. - addEventListener("unload", function () { - // If the runtime is still available, the unload is most likely a normal - // tab closure. Otherwise it is most likely an extension reload. - if (!isRuntimeAvailable()) { - localStorage.setItem( - "unload-" + Date.now() + "-" + document.hidden + "-" + location.href, - JSON.stringify(history.state) - ); - } - }); -} - let dnrRequestId; // This port is used for several purposes: // 1. When disconnected, the background page knows that the frame has unload.