diff options
author | Matt A. Tobin <email@mattatobin.com> | 2019-12-16 13:57:01 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2019-12-16 13:57:01 -0500 |
commit | 06494f307850c576868831bd28a61464eab1f359 (patch) | |
tree | f281f5c46c3e0b73c7eabe22f02622dc013b0c35 /application/basilisk/components/sessionstore/TabAttributes.jsm | |
parent | e7d4713e0765c79feddf2384d343d10595fa5cb3 (diff) | |
download | UXP-06494f307850c576868831bd28a61464eab1f359.tar UXP-06494f307850c576868831bd28a61464eab1f359.tar.gz UXP-06494f307850c576868831bd28a61464eab1f359.tar.lz UXP-06494f307850c576868831bd28a61464eab1f359.tar.xz UXP-06494f307850c576868831bd28a61464eab1f359.zip |
Remove Basilisk from the Unified XUL Platform repository
Development will proceed at https://github.com/MoonchildProductions/Basilisk
Diffstat (limited to 'application/basilisk/components/sessionstore/TabAttributes.jsm')
-rw-r--r-- | application/basilisk/components/sessionstore/TabAttributes.jsm | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/application/basilisk/components/sessionstore/TabAttributes.jsm b/application/basilisk/components/sessionstore/TabAttributes.jsm deleted file mode 100644 index c8e6d9744..000000000 --- a/application/basilisk/components/sessionstore/TabAttributes.jsm +++ /dev/null @@ -1,77 +0,0 @@ -/* 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"; - -this.EXPORTED_SYMBOLS = ["TabAttributes"]; - -// We never want to directly read or write these attributes. -// 'image' should not be accessed directly but handled by using the -// gBrowser.getIcon()/setIcon() methods. -// 'muted' should not be accessed directly but handled by using the -// tab.linkedBrowser.audioMuted/toggleMuteAudio methods. -// 'pending' is used internal by sessionstore and managed accordingly. -// 'iconLoadingPrincipal' is same as 'image' that it should be handled by -// using the gBrowser.getIcon()/setIcon() methods. -// 'skipbackgroundnotify' is used internal by tabbrowser.xml. -const ATTRIBUTES_TO_SKIP = new Set(["image", "muted", "pending", - "iconLoadingPrincipal", - "skipbackgroundnotify"]); - -// A set of tab attributes to persist. We will read a given list of tab -// attributes when collecting tab data and will re-set those attributes when -// the given tab data is restored to a new tab. -this.TabAttributes = Object.freeze({ - persist: function (name) { - return TabAttributesInternal.persist(name); - }, - - get: function (tab) { - return TabAttributesInternal.get(tab); - }, - - set: function (tab, data = {}) { - TabAttributesInternal.set(tab, data); - } -}); - -var TabAttributesInternal = { - _attrs: new Set(), - - persist: function (name) { - if (this._attrs.has(name) || ATTRIBUTES_TO_SKIP.has(name)) { - return false; - } - - this._attrs.add(name); - return true; - }, - - get: function (tab) { - let data = {}; - - for (let name of this._attrs) { - if (tab.hasAttribute(name)) { - data[name] = tab.getAttribute(name); - } - } - - return data; - }, - - set: function (tab, data = {}) { - // Clear attributes. - for (let name of this._attrs) { - tab.removeAttribute(name); - } - - // Set attributes. - for (let name in data) { - if (!ATTRIBUTES_TO_SKIP.has(name)) { - tab.setAttribute(name, data[name]); - } - } - } -}; - |