Skip to content

Commit 7611e10

Browse files
committed
Fix compatibility with Firefox Nightly
1 parent d89d73e commit 7611e10

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

lib/firequery-actor.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,26 @@ function safeRequire(devtools, ...args) {
3434
return {};
3535
}
3636

37+
function safeGet(devtools, ...args) {
38+
for (var i=0; i<args.length; i++) {
39+
var url = args[i];
40+
if (url.startsWith("resource://")) {
41+
try {
42+
return Cu["import"](url, {});
43+
}
44+
catch (err) {
45+
}
46+
} else if (url.startsWith("devtools/")) {
47+
try {
48+
return devtools["require"](url);
49+
}
50+
catch (err) {
51+
}
52+
}
53+
}
54+
return {};
55+
}
56+
3757
// DevTools
3858
// See also: https://bugzilla.mozilla.org/show_bug.cgi?id=912121
3959
const devtools = safeImport(
@@ -50,9 +70,17 @@ const DevToolsUtils = safeRequire(devtools,
5070
const { NodeActor } = devtools["require"]("devtools/server/actors/inspector");
5171
const makeInfallible = DevToolsUtils.makeInfallible;
5272

53-
const { DebuggerServer } = devtools["require"]("devtools/server/main");
54-
const protocol = devtools["require"]("devtools/server/protocol");
55-
const { method, RetVal, ActorClass, Actor, Arg, types } = protocol;
73+
const Protocol = safeRequire(devtools,
74+
"devtools/shared/protocol",
75+
"devtools/server/protocol"
76+
);
77+
78+
const DebuggerServer = safeGet(devtools,
79+
"devtools/server/main",
80+
"resource://gre/modules/devtools/dbg-server.jsm"
81+
).DebuggerServer;
82+
83+
const { method, RetVal, ActorClass, Actor, Arg, types } = Protocol;
5684

5785
// Make sure the DebuggerServer.ObjectActorPreviewers is initialized.
5886
// See also: https://github.com/firebug/firequery/issues/32

lib/firequery-front.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ const { Cu } = require("chrome");
1111
const Events = require("sdk/event/core");
1212

1313
// DevTools
14-
const { devtools } = require("firebug.sdk/lib/core/devtools.js");
15-
const { Front, FrontClass } = devtools["require"]("devtools/server/protocol");
16-
const { custom } = devtools["require"]("devtools/server/protocol");
14+
const DevTools = require("firebug.sdk/lib/core/devtools.js");
15+
const { Front, FrontClass, custom } = DevTools.Protocol;
1716

1817
// Firebug SDK
1918
const { Trace, TraceError } = require("firebug.sdk/lib/core/trace.js").get(module.id);

0 commit comments

Comments
 (0)