Skip to content

Commit f57cefe

Browse files
committed
🔨 Add full compatibility with DevTools and RDM to browser frame
1 parent c9881bc commit f57cefe

File tree

10 files changed

+70
-61
lines changed

10 files changed

+70
-61
lines changed

‎base/content/browser-compat.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,27 @@ var gBrowser = {
7979
return gDot.tabs.getTabForWebContents(browser);
8080
},
8181

82+
/**
83+
* @param {BrowserTab} tab
84+
* @returns {ChromeBrowser}
85+
*/
86+
getBrowserForTab(tab) {
87+
return tab.linkedBrowser;
88+
},
89+
8290
/**
8391
* @param {ChromeBrowser} browser
8492
* @returns {HTMLElement}
8593
*/
8694
getBrowserContainer(browser) {
95+
return this.getPanel(browser).querySelector("browser-web-container");
96+
},
97+
98+
/**
99+
* @param {ChromeBrowser} browser
100+
* @returns {HTMLElement}
101+
*/
102+
getPanel(browser) {
87103
const tab = gDot.tabs.getTabForWebContents(browser);
88104
return tab.webContentsPanel;
89105
},

‎base/content/browser-elements.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ let elements = {
2121
"browser-status": "chrome://dot/content/widgets/browser-status.js",
2222
"browser-tabs": "chrome://dot/content/widgets/browser-tabs.js",
2323
"browser-tabs-collator": "chrome://dot/content/widgets/browser-tabs-collator.js",
24+
"browser-web-container": "chrome://dot/content/widgets/browser-web-container.js",
2425
"browser-web-frame": "chrome://dot/content/widgets/browser-web-frame.js",
2526
"browser-web-panel": "chrome://dot/content/widgets/browser-web-panel.js",
2627
"browser-window-controls": "chrome://dot/content/widgets/browser-window-controls.js",

‎components/tabs/BrowserTabs.sys.mjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,13 +850,18 @@ BrowserTabs.prototype = {
850850
const panelId = this._generateUniquePanelID();
851851
panel.id = panelId;
852852

853+
const container = this._win.document.createElement(
854+
"browser-web-container"
855+
);
856+
853857
const frame = this._win.document.createElement("browser-web-frame");
854858

855859
tab.webContents.classList.add("browser-web-contents");
856860
frame.appendChild(tab.webContents);
857861
tab._webContentsPanelId = panelId;
858862

859-
panel.appendChild(frame);
863+
container.appendChild(frame);
864+
panel.appendChild(container);
860865
this._tabpanelBoxEl.appendChild(panel);
861866

862867
if (this._isWebContentsBrowserElement(tab.webContents)) {
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this
3+
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
5+
class BrowserWebContainer extends MozHTMLElement {
6+
constructor() {
7+
super();
8+
}
9+
10+
get webContents() {
11+
return this.querySelector(".browser-web-contents");
12+
}
13+
14+
connectedCallback() {
15+
if (this.delayConnectedCallback()) return;
16+
17+
// Needed for compatibility with external modules like DevTools
18+
this.classList.add("browserContainer");
19+
}
20+
21+
disconnectedCallback() {
22+
if (this.delayConnectedCallback()) return;
23+
}
24+
}
25+
26+
customElements.define("browser-web-container", BrowserWebContainer);

‎components/tabs/content/browser-web-frame.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ class BrowserWebFrame extends MozHTMLElement {
1414
connectedCallback() {
1515
if (this.delayConnectedCallback()) return;
1616

17+
// Needed for compatibility with external modules like DevTools
18+
this.classList.add("browserStack");
19+
1720
this.appendChild(html("browser-status"));
1821
this.appendChild(html("browser-modals"));
1922
}

‎components/tabs/content/browser-web-panel.css

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

55
browser-web-panel {
6+
position: absolute;
7+
background-color: var(--browser-frame-background-color, var(--lwt-accent-color));
8+
}
9+
10+
browser-web-panel,
11+
browser-web-panel browser-web-container {
612
display: flex;
713
flex: 10000 10000;
814
min-height: 0;
9-
flex-direction: column;
10-
position: absolute;
15+
flex-direction: row;
1116
width: 100%;
1217
height: 100%;
1318
z-index: 1;
@@ -17,14 +22,21 @@ browser-web-panel:not([visible]) {
1722
z-index: -2147483647;
1823
}
1924

20-
browser-web-panel browser-web-frame {
25+
browser-web-panel browser-web-container {
26+
flex-direction: column;
27+
28+
--browser-stack-z-index-rdm-toolbar: 3;
29+
}
30+
31+
browser-web-panel browser-web-container browser-web-frame {
32+
display: grid;
2133
flex: 10000 10000;
2234
min-height: 25px;
2335
min-width: 25px;
2436
position: relative;
2537
}
2638

27-
browser-web-panel browser-web-frame .browser-web-contents {
39+
browser-web-panel browser-web-container browser-web-frame .browser-web-contents {
2840
width: 100%;
2941
height: 100%;
3042
}

‎components/tabs/jar.mn

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ dot.jar:
1414
content/widgets/browser-web-panel.js (content/browser-web-panel.js)
1515
content/widgets/browser-web-panel.css (content/browser-web-panel.css)
1616

17+
content/widgets/browser-web-container.js (content/browser-web-container.js)
18+
1719
content/widgets/browser-status.js (content/browser-status.js)
1820
content/widgets/browser-status.css (content/browser-status.css)
1921

‎themes/shared/browser-box.css

Lines changed: 0 additions & 53 deletions
This file was deleted.

‎themes/shared/browser-shared.css

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

55
/* Base */
6-
@import url("chrome://dot/skin/browser-box.css");
76
@import url("chrome://dot/skin/browser-dialog.css");
87
@import url("chrome://dot/skin/browser-layouts.css");
98
@import url("chrome://dot/skin/browser-theme.css");
@@ -161,7 +160,6 @@ hr.fdn-separator {
161160
z-index: 300;
162161
-moz-window-dragging: no-drag;
163162
color-scheme: unset;
164-
background-color: var(--browser-frame-background-color, var(--lwt-accent-color));
165163
}
166164

167165
#tabspanel:not([status]) browser-status {

‎themes/shared/jar.inc.mn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
# be specified once. As a result, the source file paths are relative
88
# to the location of the actual manifest.
99

10-
skin/classic/dot/browser-box.css (../shared/browser-box.css)
1110
skin/classic/dot/browser-dialog.css (../shared/browser-dialog.css)
1211
skin/classic/dot/browser-layouts.css (../shared/browser-layouts.css)
1312
skin/classic/dot/browser-shared.css (../shared/browser-shared.css)

0 commit comments

Comments
 (0)