зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 2fb11b6f1dfe - fail in test_webappsActor.js
This commit is contained in:
Родитель
7941113e75
Коммит
6c3fd165f1
|
@ -7,4 +7,4 @@ PREF_JS_EXPORTS = $(srcdir)/webide-prefs.js
|
|||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
libs::
|
||||
$(NSINSTALL) $(srcdir)/modules/*.js $(FINAL_TARGET)/modules/devtools/webide
|
||||
$(NSINSTALL) $(srcdir)/modules/*.js $(FINAL_TARGET)/modules/devtools
|
||||
|
|
|
@ -8,7 +8,7 @@ const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
|||
const {require} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
|
||||
const {AppProjects} = require("devtools/app-manager/app-projects");
|
||||
const {AppValidator} = require("devtools/app-manager/app-validator");
|
||||
const {AppManager} = require("devtools/webide/app-manager");
|
||||
const {AppManager} = require("devtools/app-manager");
|
||||
|
||||
window.addEventListener("load", function onLoad() {
|
||||
window.removeEventListener("load", onLoad);
|
||||
|
|
|
@ -16,7 +16,7 @@ const {require} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).de
|
|||
const {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
|
||||
const {AppProjects} = require("devtools/app-manager/app-projects");
|
||||
const APP_CREATOR_LIST = "devtools.webide.templatesURL";
|
||||
const {AppManager} = require("devtools/webide/app-manager");
|
||||
const {AppManager} = require("devtools/app-manager");
|
||||
|
||||
let gTemplateList = null;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ const {require} = devtools;
|
|||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {AppProjects} = require("devtools/app-manager/app-projects");
|
||||
const {Connection} = require("devtools/client/connection-manager");
|
||||
const {AppManager} = require("devtools/webide/app-manager");
|
||||
const {AppManager} = require("devtools/app-manager");
|
||||
const {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
|
||||
const ProjectEditor = require("projecteditor/projecteditor");
|
||||
|
||||
|
@ -210,28 +210,37 @@ let UI = {
|
|||
updateRuntimeList: function() {
|
||||
let USBListNode = document.querySelector("#runtime-panel-usbruntime");
|
||||
let simulatorListNode = document.querySelector("#runtime-panel-simulators");
|
||||
let customListNode = document.querySelector("#runtime-panel-custom");
|
||||
|
||||
for (let [type, parent] of [
|
||||
["usb", USBListNode],
|
||||
["simulator", simulatorListNode],
|
||||
["custom", customListNode],
|
||||
]) {
|
||||
while (parent.hasChildNodes()) {
|
||||
parent.firstChild.remove();
|
||||
}
|
||||
for (let runtime of AppManager.runtimeList[type]) {
|
||||
let panelItemNode = document.createElement("toolbarbutton");
|
||||
panelItemNode.className = "panel-item runtime-panel-item-" + type;
|
||||
panelItemNode.setAttribute("label", runtime.getName());
|
||||
parent.appendChild(panelItemNode);
|
||||
let r = runtime;
|
||||
panelItemNode.addEventListener("click", () => {
|
||||
this.hidePanels();
|
||||
this.connectToRuntime(r);
|
||||
}, true);
|
||||
}
|
||||
while (USBListNode.hasChildNodes()) {
|
||||
USBListNode.firstChild.remove();
|
||||
}
|
||||
|
||||
for (let runtime of AppManager.runtimeList.usb) {
|
||||
let panelItemNode = document.createElement("toolbarbutton");
|
||||
panelItemNode.className = "panel-item runtime-panel-item-usbruntime";
|
||||
panelItemNode.setAttribute("label", runtime.getName());
|
||||
USBListNode.appendChild(panelItemNode);
|
||||
let r = runtime;
|
||||
panelItemNode.addEventListener("click", () => {
|
||||
this.hidePanels();
|
||||
this.connectToRuntime(r);
|
||||
}, true);
|
||||
}
|
||||
|
||||
while (simulatorListNode.hasChildNodes()) {
|
||||
simulatorListNode.firstChild.remove();
|
||||
}
|
||||
for (let runtime of AppManager.runtimeList.simulator) {
|
||||
let panelItemNode = document.createElement("toolbarbutton");
|
||||
panelItemNode.className = "panel-item runtime-panel-item-simulator";
|
||||
panelItemNode.setAttribute("label", runtime.getName());
|
||||
simulatorListNode.appendChild(panelItemNode);
|
||||
let r = runtime;
|
||||
panelItemNode.addEventListener("click", () => {
|
||||
this.hidePanels();
|
||||
this.connectToRuntime(r);
|
||||
}, true);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
connectToRuntime: function(runtime) {
|
||||
|
|
|
@ -139,8 +139,6 @@
|
|||
<vbox id="runtime-panel-usbruntime"></vbox>
|
||||
<label class="panel-header">&runtimePanel_simulators;</label>
|
||||
<vbox id="runtime-panel-simulators"></vbox>
|
||||
<label class="panel-header">&runtimePanel_custom;</label>
|
||||
<vbox id="runtime-panel-custom"></vbox>
|
||||
<vbox flex="1" id="runtime-actions" hidden="true">
|
||||
<toolbarbutton class="panel-item" id="runtime-details" command="cmd_showRuntimeDetails"/>
|
||||
<toolbarbutton class="panel-item" id="runtime-permissions" command="cmd_showPermissionsTable"/>
|
||||
|
|
|
@ -60,7 +60,6 @@
|
|||
<!ENTITY projectPanel_runtimeApps "Runtime Apps">
|
||||
<!ENTITY runtimePanel_USBDevices "USB Devices">
|
||||
<!ENTITY runtimePanel_simulators "Simulators">
|
||||
<!ENTITY runtimePanel_custom "Custom">
|
||||
|
||||
<!-- Lense -->
|
||||
<!ENTITY details_valid_header "valid">
|
||||
|
|
|
@ -8,11 +8,6 @@ title_app=Firefox App Manager: %S
|
|||
runtimeButton_label=Select Runtime
|
||||
projectButton_label=Open App
|
||||
|
||||
local_runtime=Local Runtime
|
||||
remote_runtime=Remote Runtime
|
||||
remote_runtime_promptTitle=Remote Runtime
|
||||
remote_runtime_promptMessage=hostname:port
|
||||
|
||||
importPackagedApp_title=Select directory
|
||||
importHostedApp_title=Open Hosted App
|
||||
importHostedApp_header=Enter Manifest URL
|
||||
|
|
|
@ -20,7 +20,6 @@ const AppActorFront = require("devtools/app-actor-front");
|
|||
const {getDeviceFront} = require("devtools/server/actors/device");
|
||||
const {setTimeout} = require("sdk/timers");
|
||||
const {Task} = Cu.import("resource://gre/modules/Task.jsm", {});
|
||||
const {USBRuntime, SimulatorRuntime, gLocalRuntime, gRemoteRuntime} = require("devtools/webide/runtimes");
|
||||
|
||||
const Strings = Services.strings.createBundle("chrome://webide/content/webide.properties");
|
||||
|
||||
|
@ -42,10 +41,7 @@ exports.AppManager = AppManager = {
|
|||
this.webAppsStore = new WebappsStore(this.connection);
|
||||
this.webAppsStore.on("store-ready", this.onWebAppsStoreready);
|
||||
|
||||
this.runtimeList = {usb: [], simulator: [], custom: [gRemoteRuntime]};
|
||||
if (Services.prefs.getBoolPref("devtools.webide.enableLocalRuntime")) {
|
||||
this.runtimeList.custom.push(gLocalRuntime);
|
||||
}
|
||||
this.runtimeList = {usb: [], simulator: []};
|
||||
this.trackUSBRuntimes();
|
||||
this.trackSimulatorRuntimes();
|
||||
},
|
||||
|
@ -280,14 +276,9 @@ exports.AppManager = AppManager = {
|
|||
}
|
||||
this.connection.on(Connection.Events.CONNECTED, onConnectedOrDisconnected);
|
||||
this.connection.on(Connection.Events.DISCONNECTED, onConnectedOrDisconnected);
|
||||
try {
|
||||
this.selectedRuntime.connect(this.connection).then(
|
||||
() => {},
|
||||
() => {deferred.reject()});
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
deferred.reject();
|
||||
}
|
||||
this.selectedRuntime.connect(this.connection).then(
|
||||
() => {},
|
||||
() => {deferred.reject()});
|
||||
|
||||
return deferred.promise;
|
||||
},
|
||||
|
@ -546,3 +537,56 @@ exports.AppManager = AppManager = {
|
|||
}
|
||||
|
||||
EventEmitter.decorate(AppManager);
|
||||
|
||||
/* RUNTIMES */
|
||||
|
||||
function USBRuntime(id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
USBRuntime.prototype = {
|
||||
connect: function(connection) {
|
||||
let device = Devices.getByName(this.id);
|
||||
if (!device) {
|
||||
console.error("Can't find device: " + id);
|
||||
return promise.reject();
|
||||
}
|
||||
return device.connect().then((port) => {
|
||||
connection.host = "localhost";
|
||||
connection.port = port;
|
||||
connection.connect();
|
||||
});
|
||||
},
|
||||
getID: function() {
|
||||
return this.id;
|
||||
},
|
||||
getName: function() {
|
||||
return this.id;
|
||||
},
|
||||
}
|
||||
|
||||
function SimulatorRuntime(version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
SimulatorRuntime.prototype = {
|
||||
connect: function(connection) {
|
||||
let port = ConnectionManager.getFreeTCPPort();
|
||||
let simulator = Simulator.getByVersion(this.version);
|
||||
if (!simulator || !simulator.launch) {
|
||||
console.error("Can't find simulator: " + this.version);
|
||||
return promise.reject();
|
||||
}
|
||||
return simulator.launch({port: port}).then(() => {
|
||||
connection.port = port;
|
||||
connection.keepConnecting = true;
|
||||
connection.connect();
|
||||
});
|
||||
},
|
||||
getID: function() {
|
||||
return this.version;
|
||||
},
|
||||
getName: function() {
|
||||
return this.version;
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,108 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
const {Cu} = require("chrome");
|
||||
const {Devices} = Cu.import("resource://gre/modules/devtools/Devices.jsm");
|
||||
const {Services} = Cu.import("resource://gre/modules/Services.jsm");
|
||||
const {Simulator} = Cu.import("resource://gre/modules/devtools/Simulator.jsm");
|
||||
const {ConnectionManager, Connection} = require("devtools/client/connection-manager");
|
||||
const {DebuggerServer} = require("resource://gre/modules/devtools/dbg-server.jsm");
|
||||
|
||||
const Strings = Services.strings.createBundle("chrome://webide/content/webide.properties");
|
||||
|
||||
function USBRuntime(id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
USBRuntime.prototype = {
|
||||
connect: function(connection) {
|
||||
let device = Devices.getByName(this.id);
|
||||
if (!device) {
|
||||
return promise.reject("Can't find device: " + id);
|
||||
}
|
||||
return device.connect().then((port) => {
|
||||
connection.host = "localhost";
|
||||
connection.port = port;
|
||||
connection.connect();
|
||||
});
|
||||
},
|
||||
getID: function() {
|
||||
return this.id;
|
||||
},
|
||||
getName: function() {
|
||||
return this.id;
|
||||
},
|
||||
}
|
||||
|
||||
function SimulatorRuntime(version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
SimulatorRuntime.prototype = {
|
||||
connect: function(connection) {
|
||||
let port = ConnectionManager.getFreeTCPPort();
|
||||
let simulator = Simulator.getByVersion(this.version);
|
||||
if (!simulator || !simulator.launch) {
|
||||
return promise.reject("Can't find simulator: " + this.version);
|
||||
}
|
||||
return simulator.launch({port: port}).then(() => {
|
||||
connection.port = port;
|
||||
connection.keepConnecting = true;
|
||||
connection.connect();
|
||||
});
|
||||
},
|
||||
getID: function() {
|
||||
return this.version;
|
||||
},
|
||||
getName: function() {
|
||||
return this.version;
|
||||
},
|
||||
}
|
||||
|
||||
let gLocalRuntime = {
|
||||
supportApps: false, // Temporary static value
|
||||
connect: function(connection) {
|
||||
if (!DebuggerServer.initialized) {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
connection.port = null;
|
||||
connection.host = null; // Force Pipe transport
|
||||
connection.connect();
|
||||
return promise.resolve();
|
||||
},
|
||||
getName: function() {
|
||||
return Strings.GetStringFromName("local_runtime");
|
||||
},
|
||||
}
|
||||
|
||||
let gRemoteRuntime = {
|
||||
connect: function(connection) {
|
||||
let win = Services.wm.getMostRecentWindow("devtools:webide");
|
||||
if (!win) {
|
||||
return promise.reject();
|
||||
}
|
||||
let ret = {value: connection.host + ":" + connection.port};
|
||||
Services.prompt.prompt(win,
|
||||
Strings.GetStringFromName("remote_runtime_promptTitle"),
|
||||
Strings.GetStringFromName("remote_runtime_promptMessage"),
|
||||
ret, null, {});
|
||||
let [host,port] = ret.value.split(":");
|
||||
if (!host || !port) {
|
||||
return promise.reject();
|
||||
}
|
||||
connection.host = host;
|
||||
connection.port = port;
|
||||
connection.connect();
|
||||
return promise.resolve();
|
||||
},
|
||||
getName: function() {
|
||||
return Strings.GetStringFromName("remote_runtime");
|
||||
},
|
||||
}
|
||||
|
||||
exports.USBRuntime = USBRuntime;
|
||||
exports.SimulatorRuntime = SimulatorRuntime;
|
||||
exports.gRemoteRuntime = gRemoteRuntime;
|
||||
exports.gLocalRuntime = gLocalRuntime;
|
|
@ -17,11 +17,9 @@ const {AppProjects} = require("devtools/app-manager/app-projects");
|
|||
const TEST_BASE = "chrome://mochitests/content/chrome/browser/devtools/webide/test/";
|
||||
|
||||
Services.prefs.setBoolPref("devtools.webide.enabled", true);
|
||||
Services.prefs.setBoolPref("devtools.webide.enableLocalRuntime", true);
|
||||
|
||||
SimpleTest.registerCleanupFunction(() => {
|
||||
Services.prefs.clearUserPref("devtools.webide.enabled");
|
||||
Services.prefs.clearUserPref("devtools.webide.enableLocalRuntime");
|
||||
});
|
||||
|
||||
function openWebIDE() {
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
is(json.name, "xxx", "manifest written on disc");
|
||||
|
||||
// Make the manifest invalid on disk
|
||||
delete json.name;
|
||||
delete json.name
|
||||
let Encoder = new TextEncoder();
|
||||
data = Encoder.encode(JSON.stringify(json));
|
||||
yield OS.File.writeAtomic(manifestPath, data , {tmpPath: manifestPath + ".tmp"});
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
yield win.Cmds.showRuntimePanel();
|
||||
|
||||
let panelNode = win.document.querySelector("#runtime-panel");
|
||||
let items = panelNode.querySelectorAll(".runtime-panel-item-usb");
|
||||
let items = panelNode.querySelectorAll(".runtime-panel-item-usbruntime");
|
||||
is(items.length, 1, "Found one runtime button");
|
||||
|
||||
let deferred = promise.defer();
|
||||
|
@ -67,8 +67,6 @@
|
|||
|
||||
yield deferred.promise;
|
||||
|
||||
is(Object.keys(DebuggerServer._connections).length, 1, "Connected");
|
||||
|
||||
yield nextTick();
|
||||
|
||||
ok(!isPlayActive(), "play button is disabled 2");
|
||||
|
@ -99,24 +97,11 @@
|
|||
|
||||
yield win.Cmds.disconnectRuntime();
|
||||
|
||||
is(Object.keys(DebuggerServer._connections).length, 0, "Disconnected");
|
||||
|
||||
ok(win.AppManager.selectedProject, "A project is still selected");
|
||||
ok(!isPlayActive(), "play button is disabled 6");
|
||||
ok(!isStopActive(), "stop button is disabled 6");
|
||||
|
||||
deferred = promise.defer();
|
||||
win.AppManager.connection.once(
|
||||
win.Connection.Events.CONNECTED,
|
||||
() => deferred.resolve());
|
||||
|
||||
win.document.querySelectorAll(".runtime-panel-item-custom")[1].click();
|
||||
|
||||
yield deferred.promise;
|
||||
|
||||
is(Object.keys(DebuggerServer._connections).length, 1, "Locally connected");
|
||||
|
||||
yield win.Cmds.disconnectRuntime();
|
||||
|
||||
yield closeWebIDE(win);
|
||||
|
||||
|
|
|
@ -173,22 +173,20 @@ panel > .panel-arrowcontainer > .panel-arrowcontent {
|
|||
padding: 12px 0 0;
|
||||
}
|
||||
|
||||
#runtime-panel-custom {
|
||||
#runtime-panel-simulators {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
#runtime-permissions,
|
||||
#runtime-screenshot,
|
||||
.runtime-panel-item-usb,
|
||||
.runtime-panel-item-custom,
|
||||
.runtime-panel-item-usbruntime,
|
||||
.runtime-panel-item-simulator {
|
||||
list-style-image: url("icons.png");
|
||||
}
|
||||
|
||||
#runtime-screenshot { -moz-image-region: rect(200px, 640px, 240px, 600px) }
|
||||
#runtime-permissions { -moz-image-region: rect(100px, 840px, 140px, 800px) }
|
||||
.runtime-panel-item-usb { -moz-image-region: rect(100px, 640px, 140px, 600px) }
|
||||
.runtime-panel-item-custom { -moz-image-region: rect(100px, 640px, 140px, 600px) }
|
||||
.runtime-panel-item-usbruntime { -moz-image-region: rect(100px, 640px, 140px, 600px) }
|
||||
.runtime-panel-item-simulator { -moz-image-region: rect(100px, 740px, 140px, 700px) }
|
||||
|
||||
#runtime-actions {
|
||||
|
@ -205,7 +203,7 @@ panel > .panel-arrowcontainer > .panel-arrowcontent {
|
|||
}
|
||||
|
||||
#runtime-actions > toolbarbutton:hover {
|
||||
background-color: #CBF0FE;
|
||||
background-color: rgba(221,221,221,1);
|
||||
}
|
||||
|
||||
#runtime-actions > toolbarbutton:last-child {
|
||||
|
|
|
@ -6,4 +6,3 @@
|
|||
pref("devtools.webide.showProjectEditor", true);
|
||||
pref("devtools.webide.templatesURL", "http://fixme/");
|
||||
pref("devtools.webide.lastprojectlocation", "");
|
||||
pref("devtools.webide.enableLocalRuntime", false);
|
||||
|
|
|
@ -798,11 +798,6 @@ WebappsActor.prototype = {
|
|||
|
||||
let deferred = promise.defer();
|
||||
|
||||
if (Services.appinfo.ID != "{3c2e2abc-06d4-11e1-ac3b-374f68613e61}") {
|
||||
return { error: "notSupported",
|
||||
message: "Not B2G. Can't launch app." };
|
||||
}
|
||||
|
||||
DOMApplicationRegistry.launch(
|
||||
aRequest.manifestURL,
|
||||
aRequest.startPoint || "",
|
||||
|
|
Загрузка…
Ссылка в новой задаче