11diff --git a/browser/base/content/browser-sidebar.js b/browser/base/content/browser-sidebar.js
2- index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e492783860a67c28 100644
2+ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861dcdff9c1a 100644
33--- a/browser/base/content/browser-sidebar.js
44+++ b/browser/base/content/browser-sidebar.js
55@@ -11,6 +11,9 @@ var SidebarUI = {
@@ -74,17 +74,17 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
7474 ]));
7575 },
7676
77- @@ -63,6 +98,10 @@ var SidebarUI = {
77+ @@ -62,6 +97,10 @@ var SidebarUI = {
78+ },
7879 POSITION_START_PREF: "sidebar.position_start",
7980 DEFAULT_SIDEBAR_ID: "viewBookmarksSidebar",
80-
81+ +
8182+ SIDEBAR_KEEP_TABS_ACTIVE_PREF: "pulse.sidebar.keeptabsactive.enabled",
8283+ SIDEBAR_TABS_PREF: "pulse.sidebar.enabled",
8384+ SIDEBAR_EXTENSIONS_PREF: "pulse.sidebar.extensions.enabled",
84- +
85+
8586 // lastOpenedId is set in show() but unlike currentID it's not cleared out on hide
8687 // and isn't persisted across windows
87- lastOpenedId: null,
8888@@ -83,6 +122,15 @@ var SidebarUI = {
8989 _switcherArrow: null,
9090 _inited: false,
@@ -101,7 +101,7 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
101101 /**
102102 * @type {MutationObserver | null}
103103 */
104- @@ -112,20 +160,80 @@ var SidebarUI = {
104+ @@ -112,20 +160,79 @@ var SidebarUI = {
105105 this.toggleSwitcherPanel();
106106 });
107107
@@ -176,14 +176,13 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
176176 if (!enumerator.hasMoreElements()) {
177177 let xulStore = Services.xulStore;
178178- xulStore.persist(this._box, "sidebarcommand");
179- +
180179+ if (!this._keepTabsActivePref) {
181180+ xulStore.persist(this._box, "sidebarcommand");
182181+ }
183182
184183 if (this._box.hasAttribute("positionend")) {
185184 xulStore.persist(this._box, "positionend");
186- @@ -157,7 +265 ,7 @@ var SidebarUI = {
185+ @@ -157,7 +264 ,7 @@ var SidebarUI = {
187186 /**
188187 * The handler for Services.obs.addObserver.
189188 **/
@@ -192,7 +191,7 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
192191 switch (topic) {
193192 case "intl:app-locales-changed": {
194193 if (this.isOpen) {
195- @@ -168,6 +276 ,54 @@ var SidebarUI = {
194+ @@ -168,6 +275 ,54 @@ var SidebarUI = {
196195 this.showInitially(this.lastOpenedId);
197196 break;
198197 }
@@ -247,16 +246,16 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
247246 }
248247 }
249248 },
250- @@ -284,17 +440 ,32 @@ var SidebarUI = {
249+ @@ -284,17 +439 ,32 @@ var SidebarUI = {
251250 // First reset all ordinals to match DOM ordering.
252251 let browser = document.getElementById("browser");
253252 [...browser.children].forEach((node, i) => {
254253+ // Do not change ordinal on vertical tabs
255254+ if (node.id == "TabsToolbar" || node.id == "verticaltabs-splitter") {
256255+ return;
257256+ }
258- +
259- node.style.MozBoxOrdinalGroup = i + 1;
257+ +
258+ node.style.order = i + 1;
260259 });
261260
262261 if (!this._positionStart) {
@@ -271,21 +270,21 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
271270+
272271+ // sidebar-container and appcontent
273272 let appcontent = document.getElementById("appcontent");
274- - let boxOrdinal = this._box.style.MozBoxOrdinalGroup;
275- - this._box.style.MozBoxOrdinalGroup = appcontent.style.MozBoxOrdinalGroup;
276- + let boxOrdinal = this._sidebarTabs.style.MozBoxOrdinalGroup;
277- + this._sidebarTabs.style.MozBoxOrdinalGroup =
278- + appcontent.style.MozBoxOrdinalGroup;
279- appcontent.style.MozBoxOrdinalGroup = boxOrdinal;
273+ - let boxOrdinal = this._box.style.order;
274+ - this._box.style.order = appcontent.style.order;
275+ + let boxOrdinal = this._sidebarTabs.style.order;
276+ + this._sidebarTabs.style.order = appcontent.style.order;
277+ appcontent.style.order = boxOrdinal;
280278+
281279+ // splitter and sidebar-box
282- + const splitterBoxOrdinal = this._splitter.style.MozBoxOrdinalGroup;
283- + this._splitter.style.MozBoxOrdinalGroup = this._box.style.MozBoxOrdinalGroup;
284- + this._box.style.MozBoxOrdinalGroup = splitterBoxOrdinal;
280+ + const splitterBoxOrdinal = this._splitter.style.order;
281+ + this._splitter.style.order = this._box.style.order;
282+ + this._box.style.order = splitterBoxOrdinal;
283+ +
285284 // Indicate we've switched ordering to the box
286285 this._box.setAttribute("positionend", true);
287286 } else {
288- @@ -483,6 +654 ,10 @@ var SidebarUI = {
287+ @@ -483,6 +653 ,10 @@ var SidebarUI = {
289288 },
290289
291290 _loadSidebarExtension(commandID) {
@@ -296,23 +295,23 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
296295 let sidebar = this.sidebars.get(commandID);
297296 let { extensionId } = sidebar;
298297 if (extensionId) {
299- @@ -521,6 +696 ,7 @@ var SidebarUI = {
298+ @@ -521,6 +695 ,7 @@ var SidebarUI = {
300299 }
301300
302301 this._fireFocusedEvent();
303302+ this.loadedSidebars.push(commandID);
304303 return true;
305304 });
306305 },
307- @@ -544,6 +720 ,7 @@ var SidebarUI = {
306+ @@ -544,6 +719 ,7 @@ var SidebarUI = {
308307 }
309308 return this._show(commandID).then(() => {
310309 this._loadSidebarExtension(commandID);
311310+ this.loadedSidebars.push(commandID);
312311 return true;
313312 });
314313 },
315- @@ -557,6 +734 ,38 @@ var SidebarUI = {
314+ @@ -557,6 +733 ,38 @@ var SidebarUI = {
316315 */
317316 _show(commandID) {
318317 return new Promise(resolve => {
@@ -347,11 +346,11 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
347346+ browser.setAttribute("hidden", "true");
348347+ }
349348+ }
350- +
349+ +
351350 this.selectMenuItem(commandID);
352351
353352 this._box.hidden = this._splitter.hidden = false;
354- @@ -574,7 +783 ,13 @@ var SidebarUI = {
353+ @@ -574,7 +782 ,13 @@ var SidebarUI = {
355354 this.observeTitleChanges(sourceL10nEl);
356355 this.browser.setAttribute("src", url); // kick off async load
357356
@@ -366,29 +365,25 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
366365 this.browser.addEventListener(
367366 "load",
368367 event => {
369- @@ -618,12 +833,19 @@ var SidebarUI = {
368+ @@ -618,11 +832,14 @@ var SidebarUI = {
370369 // create a new content viewer because the old one doesn't get destroyed
371370 // until about:blank has loaded (which does not happen as long as the
372371 // element is hidden).
373372- this.browser.setAttribute("src", "about:blank");
374373- this.browser.docShell.createAboutBlankContentViewer(null, null);
374+ -
375375+ if (!this._keepTabsActivePref) {
376376+ this.browser.setAttribute("src", "about:blank");
377377+ this.browser.docShell.createAboutBlankContentViewer(null, null);
378378+ }
379-
379+ +
380380 this._box.removeAttribute("checked");
381381 this._box.hidden = this._splitter.hidden = true;
382382+ this._sidebarIcons.removeAttribute("checked");
383383
384- + // Note: This was was commented out but had no description for its removed
385- + // reason. I am bringing it back unless there is any other justification - tricky
386- + //
387- + // Removed in: :mute: Remove Test Logs
388384 let selBrowser = gBrowser.selectedBrowser;
389385 selBrowser.focus();
390- if (triggerNode) {
391- @@ -636,10 +858,27 @@ var SidebarUI = {
386+ @@ -636,10 +853,28 @@ var SidebarUI = {
392387 * none if the argument is an empty string.
393388 */
394389 selectMenuItem(commandID) {
@@ -405,6 +400,7 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
405400- let triggerbutton =
406401+ let dropdownTriggerButton =
407402 triggerButtonId && document.getElementById(triggerButtonId);
403+ +
408404+ const sidebarTriggerButton = document.getElementById(
409405+ `sidebar-background-${id}`
410406+ );
@@ -417,7 +413,7 @@ index 22c886b09373a38a4fbceb6d279a58f276675d63..ebc355c651fb48b9d6e7fc88e4927838
417413 if (id == commandID) {
418414 menu.setAttribute("checked", "true");
419415 if (triggerbutton) {
420- @@ -655,6 +894 ,107 @@ var SidebarUI = {
416+ @@ -655,6 +890 ,107 @@ var SidebarUI = {
421417 }
422418 }
423419 },
0 commit comments