зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1091036 - Allow toolbox full screen for remote runtime projects. r=jryans
This commit is contained in:
Родитель
821aea821e
Коммит
e7968109b1
|
@ -738,6 +738,7 @@ let UI = {
|
||||||
}
|
}
|
||||||
deck.selectedPanel = panel;
|
deck.selectedPanel = panel;
|
||||||
this.updateProjectEditorMenusVisibility();
|
this.updateProjectEditorMenusVisibility();
|
||||||
|
this.updateToolboxFullscreenState();
|
||||||
},
|
},
|
||||||
|
|
||||||
resetDeck: function() {
|
resetDeck: function() {
|
||||||
|
@ -896,6 +897,8 @@ let UI = {
|
||||||
splitter.removeAttribute("hidden");
|
splitter.removeAttribute("hidden");
|
||||||
|
|
||||||
let iframe = document.createElement("iframe");
|
let iframe = document.createElement("iframe");
|
||||||
|
iframe.id = "toolbox";
|
||||||
|
|
||||||
document.querySelector("notificationbox").insertBefore(iframe, splitter.nextSibling);
|
document.querySelector("notificationbox").insertBefore(iframe, splitter.nextSibling);
|
||||||
let host = devtools.Toolbox.HostType.CUSTOM;
|
let host = devtools.Toolbox.HostType.CUSTOM;
|
||||||
let options = { customIframe: iframe };
|
let options = { customIframe: iframe };
|
||||||
|
@ -906,9 +909,22 @@ let UI = {
|
||||||
|
|
||||||
document.querySelector("#action-button-debug").setAttribute("active", "true");
|
document.querySelector("#action-button-debug").setAttribute("active", "true");
|
||||||
|
|
||||||
|
this.updateToolboxFullscreenState();
|
||||||
return gDevTools.showToolbox(target, null, host, options);
|
return gDevTools.showToolbox(target, null, host, options);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
updateToolboxFullscreenState: function() {
|
||||||
|
let panel = document.querySelector("#deck").selectedPanel;
|
||||||
|
let nbox = document.querySelector("#notificationbox");
|
||||||
|
if (panel.id == "deck-panel-details" &&
|
||||||
|
AppManager.selectedProject.type != "packaged" &&
|
||||||
|
this.toolboxIframe) {
|
||||||
|
nbox.setAttribute("toolboxfullscreen", "true");
|
||||||
|
} else {
|
||||||
|
nbox.removeAttribute("toolboxfullscreen");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
closeToolboxUI: function() {
|
closeToolboxUI: function() {
|
||||||
this.resetFocus();
|
this.resetFocus();
|
||||||
Services.prefs.setIntPref("devtools.toolbox.footer.height", this.toolboxIframe.height);
|
Services.prefs.setIntPref("devtools.toolbox.footer.height", this.toolboxIframe.height);
|
||||||
|
@ -921,6 +937,7 @@ let UI = {
|
||||||
let splitter = document.querySelector(".devtools-horizontal-splitter");
|
let splitter = document.querySelector(".devtools-horizontal-splitter");
|
||||||
splitter.setAttribute("hidden", "true");
|
splitter.setAttribute("hidden", "true");
|
||||||
document.querySelector("#action-button-debug").removeAttribute("active");
|
document.querySelector("#action-button-debug").removeAttribute("active");
|
||||||
|
this.updateToolboxFullscreenState();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -39,3 +39,4 @@ support-files =
|
||||||
[test_autoconnect_runtime.html]
|
[test_autoconnect_runtime.html]
|
||||||
[test_telemetry.html]
|
[test_telemetry.html]
|
||||||
[test_device_preferences.html]
|
[test_device_preferences.html]
|
||||||
|
[test_fullscreenToolbox.html]
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf8">
|
||||||
|
<title></title>
|
||||||
|
|
||||||
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||||
|
<script type="application/javascript" src="chrome://mochikit/content/chrome-harness.js"></script>
|
||||||
|
<script type="application/javascript;version=1.8" src="head.js"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<script type="application/javascript;version=1.8">
|
||||||
|
|
||||||
|
function connectToLocal(win) {
|
||||||
|
let deferred = promise.defer();
|
||||||
|
win.AppManager.connection.once(
|
||||||
|
win.Connection.Events.CONNECTED,
|
||||||
|
() => deferred.resolve());
|
||||||
|
win.document.querySelectorAll(".runtime-panel-item-other")[1].click();
|
||||||
|
return deferred.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
||||||
|
Task.spawn(function* () {
|
||||||
|
Cu.import("resource://gre/modules/devtools/dbg-server.jsm");
|
||||||
|
win = yield openWebIDE();
|
||||||
|
win.AppManager.update("runtimelist");
|
||||||
|
|
||||||
|
yield connectToLocal(win);
|
||||||
|
|
||||||
|
yield waitForUpdate(win, "list-tabs-response");
|
||||||
|
|
||||||
|
// Select main process
|
||||||
|
yield win.Cmds.showProjectPanel();
|
||||||
|
SimpleTest.executeSoon(() => {
|
||||||
|
win.document.querySelectorAll("#project-panel-runtimeapps .panel-item")[0].click();
|
||||||
|
});
|
||||||
|
|
||||||
|
yield waitForUpdate(win, "project");
|
||||||
|
|
||||||
|
ok(win.UI.toolboxPromise, "Toolbox promise exists");
|
||||||
|
yield win.UI.toolboxPromise;
|
||||||
|
|
||||||
|
ok(win.UI.toolboxIframe, "Toolbox iframe exists");
|
||||||
|
|
||||||
|
let nbox = win.document.querySelector("#notificationbox");
|
||||||
|
ok(nbox.hasAttribute("toolboxfullscreen"), "Toolbox is fullsreen");
|
||||||
|
|
||||||
|
win.Cmds.showRuntimeDetails();
|
||||||
|
|
||||||
|
ok(!nbox.hasAttribute("toolboxfullscreen"), "Toolbox is not fullscreen");
|
||||||
|
|
||||||
|
yield win.Cmds.disconnectRuntime();
|
||||||
|
|
||||||
|
yield closeWebIDE(win);
|
||||||
|
|
||||||
|
const { DebuggerServer } = Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {});
|
||||||
|
DebuggerServer.destroy();
|
||||||
|
|
||||||
|
SimpleTest.finish();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -291,3 +291,14 @@ panel > .panel-arrowcontainer > .panel-arrowcontent {
|
||||||
position: relative;
|
position: relative;
|
||||||
border-bottom: 1px solid #aaa;
|
border-bottom: 1px solid #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Toolbox */
|
||||||
|
|
||||||
|
#notificationbox[toolboxfullscreen] > .devtools-horizontal-splitter,
|
||||||
|
#notificationbox[toolboxfullscreen] > #deck {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#notificationbox[toolboxfullscreen] > #toolbox {
|
||||||
|
-moz-box-flex: 1;
|
||||||
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче