summaryrefslogtreecommitdiffstats
path: root/browser/components/syncedtabs/sidebar.js
blob: 223a260b14772772e38605edc4937f8c2d493462 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* 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"
);

var syncedTabsDeckComponent = new SyncedTabsDeckComponent({
  window,
  SyncedTabs,
});

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");
    });
  syncedTabsDeckComponent.init();
  document
    .getElementById("template-container")
    .appendChild(syncedTabsDeckComponent.container);

  // Needed due to Bug 1596852.
  // Should be removed once this bug is resolved.
  window.addEventListener(
    "pageshow",
    e => {
      window.windowGlobalChild.getActor("LightweightTheme").handleEvent(e);
    },
    { once: true }
  );
};

let onUnloaded = () => {
  removeEventListener("DOMContentLoaded", onLoaded);
  removeEventListener("unload", onUnloaded);
  syncedTabsDeckComponent.uninit();
};

addEventListener("DOMContentLoaded", onLoaded);
addEventListener("unload", onUnloaded);