1
1
diff --git a/browser/base/content/browser-sidebar.js b/browser/base/content/browser-sidebar.js
2
- index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861dcdff9c1a 100644
2
+ index f5def93f56fc8d02d6ae6834ca8d2df0aead2379..f984c600d27dabe102b0598135acd7e2f8f0d4e8 100644
3
3
--- a/browser/base/content/browser-sidebar.js
4
4
+++ b/browser/base/content/browser-sidebar.js
5
5
@@ -11,6 +11,9 @@ var SidebarUI = {
@@ -74,17 +74,17 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
74
74
]));
75
75
},
76
76
77
- @@ -62,6 +97,10 @@ var SidebarUI = {
78
- },
77
+ @@ -63,6 +98,10 @@ var SidebarUI = {
79
78
POSITION_START_PREF: "sidebar.position_start",
80
79
DEFAULT_SIDEBAR_ID: "viewBookmarksSidebar",
81
- +
80
+
82
81
+ SIDEBAR_KEEP_TABS_ACTIVE_PREF: "pulse.sidebar.keeptabsactive.enabled",
83
82
+ SIDEBAR_TABS_PREF: "pulse.sidebar.enabled",
84
83
+ SIDEBAR_EXTENSIONS_PREF: "pulse.sidebar.extensions.enabled",
85
-
84
+ +
86
85
// lastOpenedId is set in show() but unlike currentID it's not cleared out on hide
87
86
// and isn't persisted across windows
87
+ lastOpenedId: null,
88
88
@@ -83,6 +122,15 @@ var SidebarUI = {
89
89
_switcherArrow: null,
90
90
_inited: false,
@@ -101,10 +101,11 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
101
101
/**
102
102
* @type {MutationObserver | null}
103
103
*/
104
- @@ -112,20 +160,79 @@ var SidebarUI = {
104
+ @@ -111,6 +159,48 @@ var SidebarUI = {
105
+ this._switcherTarget.addEventListener("command", () => {
105
106
this.toggleSwitcherPanel();
106
107
});
107
-
108
+ +
108
109
+ this._sidebarIcons = document.getElementById("sidebar-icons");
109
110
+ this._sidebarIconsBottom = document.getElementById("sidebar-icons-bottom");
110
111
+ this._sidebarTabs = document.getElementById("sidebar-container");
@@ -146,8 +147,10 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
146
147
+
147
148
+ this.loadedSidebars = [];
148
149
+
149
- this._inited = true;
150
-
150
+ this._switcherTarget.addEventListener("keydown", event => {
151
+ this.handleKeydown(event);
152
+ });
153
+ @@ -120,15 +210,33 @@ var SidebarUI = {
151
154
Services.obs.addObserver(this, "intl:app-locales-changed");
152
155
153
156
this._initDeferred.resolve();
@@ -182,7 +185,7 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
182
185
183
186
if (this._box.hasAttribute("positionend")) {
184
187
xulStore.persist(this._box, "positionend");
185
- @@ -157 ,7 +264 ,7 @@ var SidebarUI = {
188
+ @@ -160 ,7 +268 ,7 @@ var SidebarUI = {
186
189
/**
187
190
* The handler for Services.obs.addObserver.
188
191
**/
@@ -191,12 +194,12 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
191
194
switch (topic) {
192
195
case "intl:app-locales-changed": {
193
196
if (this.isOpen) {
194
- @@ -168,6 +275,54 @@ var SidebarUI = {
197
+ @@ -171,7 +279,55 @@ var SidebarUI = {
195
198
this.showInitially(this.lastOpenedId);
196
199
break;
197
200
}
198
201
+ break;
199
- + }
202
+ }
200
203
+
201
204
+ case "nsPref:changed": {
202
205
+ switch (data) {
@@ -243,18 +246,18 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
243
246
+ break;
244
247
+ }
245
248
+ break;
246
- }
249
+ + }
247
250
}
248
251
},
249
- @@ -284,17 +439,32 @@ var SidebarUI = {
252
+
253
+ @@ -290,17 +446,31 @@ var SidebarUI = {
250
254
// First reset all ordinals to match DOM ordering.
251
255
let browser = document.getElementById("browser");
252
256
[...browser.children].forEach((node, i) => {
253
257
+ // Do not change ordinal on vertical tabs
254
258
+ if (node.id == "TabsToolbar" || node.id == "verticaltabs-splitter") {
255
259
+ return;
256
260
+ }
257
- +
258
261
node.style.order = i + 1;
259
262
});
260
263
@@ -284,7 +287,7 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
284
287
// Indicate we've switched ordering to the box
285
288
this._box.setAttribute("positionend", true);
286
289
} else {
287
- @@ -483 ,6 +653 ,10 @@ var SidebarUI = {
290
+ @@ -489 ,6 +659 ,10 @@ var SidebarUI = {
288
291
},
289
292
290
293
_loadSidebarExtension(commandID) {
@@ -295,23 +298,23 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
295
298
let sidebar = this.sidebars.get(commandID);
296
299
let { extensionId } = sidebar;
297
300
if (extensionId) {
298
- @@ -521 ,6 +695 ,7 @@ var SidebarUI = {
301
+ @@ -527 ,6 +701 ,7 @@ var SidebarUI = {
299
302
}
300
303
301
304
this._fireFocusedEvent();
302
305
+ this.loadedSidebars.push(commandID);
303
306
return true;
304
307
});
305
308
},
306
- @@ -544 ,6 +719 ,7 @@ var SidebarUI = {
309
+ @@ -550 ,6 +725 ,7 @@ var SidebarUI = {
307
310
}
308
311
return this._show(commandID).then(() => {
309
312
this._loadSidebarExtension(commandID);
310
313
+ this.loadedSidebars.push(commandID);
311
314
return true;
312
315
});
313
316
},
314
- @@ -557 ,6 +733 ,38 @@ var SidebarUI = {
317
+ @@ -563 ,6 +739 ,38 @@ var SidebarUI = {
315
318
*/
316
319
_show(commandID) {
317
320
return new Promise(resolve => {
@@ -350,7 +353,7 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
350
353
this.selectMenuItem(commandID);
351
354
352
355
this._box.hidden = this._splitter.hidden = false;
353
- @@ -574 ,7 +782 ,13 @@ var SidebarUI = {
356
+ @@ -580 ,7 +788 ,13 @@ var SidebarUI = {
354
357
this.observeTitleChanges(sourceL10nEl);
355
358
this.browser.setAttribute("src", url); // kick off async load
356
359
@@ -365,25 +368,24 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
365
368
this.browser.addEventListener(
366
369
"load",
367
370
event => {
368
- @@ -618 ,11 +832 ,14 @@ var SidebarUI = {
371
+ @@ -624 ,11 +838 ,14 @@ var SidebarUI = {
369
372
// create a new content viewer because the old one doesn't get destroyed
370
373
// until about:blank has loaded (which does not happen as long as the
371
374
// element is hidden).
372
375
- this.browser.setAttribute("src", "about:blank");
373
376
- this.browser.docShell.createAboutBlankContentViewer(null, null);
374
- -
375
377
+ if (!this._keepTabsActivePref) {
376
378
+ this.browser.setAttribute("src", "about:blank");
377
379
+ this.browser.docShell.createAboutBlankContentViewer(null, null);
378
380
+ }
379
- +
381
+
380
382
this._box.removeAttribute("checked");
381
383
this._box.hidden = this._splitter.hidden = true;
382
384
+ this._sidebarIcons.removeAttribute("checked");
383
385
384
386
let selBrowser = gBrowser.selectedBrowser;
385
387
selBrowser.focus();
386
- @@ -636 ,10 +853 ,28 @@ var SidebarUI = {
388
+ @@ -642 ,10 +859 ,28 @@ var SidebarUI = {
387
389
* none if the argument is an empty string.
388
390
*/
389
391
selectMenuItem(commandID) {
@@ -413,7 +415,7 @@ index d2b36db203f6572c39cc9a68cc71e4f7e2af0f07..738502d7c0dd9336a48270249818861d
413
415
if (id == commandID) {
414
416
menu.setAttribute("checked", "true");
415
417
if (triggerbutton) {
416
- @@ -655 ,6 +890 ,107 @@ var SidebarUI = {
418
+ @@ -661 ,6 +896 ,107 @@ var SidebarUI = {
417
419
}
418
420
}
419
421
},
0 commit comments