mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Bug 1492856 - Remove compatiblity code to guard against miss of RootActor.getRoot r=jdescottes
MozReview-Commit-ID: L5kkG9r7Rtv Differential Revision: https://phabricator.services.mozilla.com/D6755 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
4c1bb0403e
commit
3ad83b9241
@ -718,7 +718,7 @@ var UI = {
|
|||||||
async checkRuntimeVersion() {
|
async checkRuntimeVersion() {
|
||||||
if (AppManager.connected) {
|
if (AppManager.connected) {
|
||||||
const { client } = AppManager.connection;
|
const { client } = AppManager.connection;
|
||||||
const report = await client.checkRuntimeVersion(AppManager.listTabsForm);
|
const report = await client.checkRuntimeVersion();
|
||||||
if (report.incompatible == "too-recent") {
|
if (report.incompatible == "too-recent") {
|
||||||
this.reportError("error_runtimeVersionTooRecent", report.runtimeID,
|
this.reportError("error_runtimeVersionTooRecent", report.runtimeID,
|
||||||
report.localID);
|
report.localID);
|
||||||
|
@ -152,16 +152,17 @@ var AppManager = exports.AppManager = {
|
|||||||
this.preferenceFront = null;
|
this.preferenceFront = null;
|
||||||
} else {
|
} else {
|
||||||
const response = await this.connection.client.listTabs();
|
const response = await this.connection.client.listTabs();
|
||||||
// RootClient.getRoot request was introduced in FF59, but RootClient.getFront
|
|
||||||
// expects it to work. Override its root form with the listTabs results (which is
|
|
||||||
// an equivalent) in orfer to fix RootClient.getFront.
|
|
||||||
Object.defineProperty(this.connection.client.mainRoot, "rootForm", {
|
|
||||||
value: response
|
|
||||||
});
|
|
||||||
this._listTabsResponse = response;
|
this._listTabsResponse = response;
|
||||||
this.deviceFront = await this.connection.client.mainRoot.getFront("device");
|
try {
|
||||||
this.preferenceFront = await this.connection.client.mainRoot.getFront("preference");
|
this.deviceFront = await this.connection.client.mainRoot.getFront("device");
|
||||||
this._recordRuntimeInfo();
|
this.preferenceFront = await this.connection.client.mainRoot.getFront("preference");
|
||||||
|
this._recordRuntimeInfo();
|
||||||
|
} catch (e) {
|
||||||
|
// This may fail on <FF55 (because of lack of bug 1352157) but we will want to
|
||||||
|
// emit runtime-global-actors in order to call checkRuntimeVersion and display
|
||||||
|
// the compatibility popup.
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
this.update("runtime-global-actors");
|
this.update("runtime-global-actors");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -512,10 +513,6 @@ var AppManager = exports.AppManager = {
|
|||||||
this._listTabsResponse.consoleActor);
|
this._listTabsResponse.consoleActor);
|
||||||
},
|
},
|
||||||
|
|
||||||
get listTabsForm() {
|
|
||||||
return this._listTabsResponse;
|
|
||||||
},
|
|
||||||
|
|
||||||
disconnectRuntime: function() {
|
disconnectRuntime: function() {
|
||||||
if (!this.connected) {
|
if (!this.connected) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
@ -206,18 +206,34 @@ DebuggerClient.prototype = {
|
|||||||
* * String deviceID
|
* * String deviceID
|
||||||
* Build ID of remote runtime. A date with like this: YYYYMMDD.
|
* Build ID of remote runtime. A date with like this: YYYYMMDD.
|
||||||
*/
|
*/
|
||||||
async checkRuntimeVersion(listTabsForm) {
|
async checkRuntimeVersion() {
|
||||||
let incompatible = null;
|
const localID = Services.appinfo.appBuildID.substr(0, 8);
|
||||||
|
|
||||||
const deviceFront = await this.mainRoot.getFront("device");
|
let deviceFront;
|
||||||
|
try {
|
||||||
|
deviceFront = await this.mainRoot.getFront("device");
|
||||||
|
} catch (e) {
|
||||||
|
// On <FF55, getFront is going to call RootActor.getRoot and fail
|
||||||
|
// because this method doesn't exists.
|
||||||
|
if (e.error == "unrecognizedPacketType") {
|
||||||
|
return {
|
||||||
|
incompatible: "too-old",
|
||||||
|
minVersion: MIN_SUPPORTED_PLATFORM_VERSION,
|
||||||
|
runtimeVersion: "<55",
|
||||||
|
localID,
|
||||||
|
runtimeID: "?",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
const desc = await deviceFront.getDescription();
|
const desc = await deviceFront.getDescription();
|
||||||
|
let incompatible = null;
|
||||||
|
|
||||||
// 1) Check for Firefox too recent on device.
|
// 1) Check for Firefox too recent on device.
|
||||||
// Compare device and firefox build IDs
|
// Compare device and firefox build IDs
|
||||||
// and only compare by day (strip hours/minutes) to prevent
|
// and only compare by day (strip hours/minutes) to prevent
|
||||||
// warning against builds of the same day.
|
// warning against builds of the same day.
|
||||||
const runtimeID = desc.appbuildid.substr(0, 8);
|
const runtimeID = desc.appbuildid.substr(0, 8);
|
||||||
const localID = Services.appinfo.appBuildID.substr(0, 8);
|
|
||||||
function buildIDToDate(buildID) {
|
function buildIDToDate(buildID) {
|
||||||
const fields = buildID.match(/(\d{4})(\d{2})(\d{2})/);
|
const fields = buildID.match(/(\d{4})(\d{2})(\d{2})/);
|
||||||
// Date expects 0 - 11 for months
|
// Date expects 0 - 11 for months
|
||||||
|
@ -35,9 +35,6 @@ function RootClient(client, greeting) {
|
|||||||
this.traits = greeting.traits;
|
this.traits = greeting.traits;
|
||||||
|
|
||||||
// Cache root form as this will always be the same value.
|
// Cache root form as this will always be the same value.
|
||||||
//
|
|
||||||
// Note that rootForm is overloaded by DebuggerClient.checkRuntimeVersion
|
|
||||||
// in order to support <FF59 that doesn't support getRoot request.
|
|
||||||
Object.defineProperty(this, "rootForm", {
|
Object.defineProperty(this, "rootForm", {
|
||||||
get() {
|
get() {
|
||||||
delete this.rootForm;
|
delete this.rootForm;
|
||||||
|
Loading…
Reference in New Issue
Block a user