Mypal68/browser/components/syncedtabs/sidebar.js
2022-04-16 07:41:55 +03:00

62 lines
1.7 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/. */
"use strict";
const { SyncedTabs } = ChromeUtils.import(
"resource://services-sync/SyncedTabs.jsm"
);
const { SyncedTabsDeckComponent } = ChromeUtils.import(
"resource:///modules/syncedtabs/SyncedTabsDeckComponent.js"
);
const { LightweightThemeChild } = ChromeUtils.import(
"resource:///actors/LightweightThemeChild.jsm"
);
ChromeUtils.defineModuleGetter(
this,
"fxAccounts",
"resource://gre/modules/FxAccounts.jsm"
);
var syncedTabsDeckComponent = new SyncedTabsDeckComponent({
window,
SyncedTabs,
fxAccounts,
});
let themeListener;
let onLoaded = () => {
window.top.MozXULElement.insertFTLIfNeeded("browser/syncedTabs.ftl");
window.top.document
.getElementById("SyncedTabsSidebarContext")
.querySelectorAll("[data-lazy-l10n-id]")
.forEach(el => {
el.setAttribute("data-l10n-id", el.getAttribute("data-lazy-l10n-id"));
el.removeAttribute("data-lazy-l10n-id");
});
themeListener = new LightweightThemeChild({
content: window,
chromeOuterWindowID: window.top.windowUtils.outerWindowID,
docShell: window.docShell,
});
syncedTabsDeckComponent.init();
document
.getElementById("template-container")
.appendChild(syncedTabsDeckComponent.container);
};
let onUnloaded = () => {
if (themeListener) {
themeListener.cleanup();
}
removeEventListener("DOMContentLoaded", onLoaded);
removeEventListener("unload", onUnloaded);
syncedTabsDeckComponent.uninit();
};
addEventListener("DOMContentLoaded", onLoaded);
addEventListener("unload", onUnloaded);