forked from firefox-devtools/debugger
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
74 lines (62 loc) · 1.85 KB
/
index.js
File metadata and controls
74 lines (62 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// @flow
import * as firefox from "./firefox";
import * as chrome from "./chrome";
import { prefs, features } from "../utils/prefs";
import { isFirefoxPanel } from "devtools-config";
import {
bootstrapApp,
bootstrapStore,
bootstrapWorkers
} from "../utils/bootstrap";
function loadFromPrefs(actions: Object) {
const { pauseOnExceptions, ignoreCaughtExceptions } = prefs;
if (pauseOnExceptions || ignoreCaughtExceptions) {
return actions.pauseOnExceptions(pauseOnExceptions, ignoreCaughtExceptions);
}
}
function getClient(connection: any) {
const { tab: { clientType } } = connection;
return clientType == "firefox" ? firefox : chrome;
}
async function onConnect(
connection: Object,
{ services, toolboxActions }: Object
) {
// NOTE: the landing page does not connect to a JS process
if (!connection) {
return;
}
const client = getClient(connection);
const commands = client.clientCommands;
const { store, actions, selectors } = bootstrapStore(commands, {
services,
toolboxActions
});
bootstrapWorkers();
const { bpClients } = await client.onConnect(connection, actions);
await loadFromPrefs(actions);
window.getGlobalsForTesting = () => {
return {
store,
actions,
selectors,
client: client.clientCommands,
prefs,
features,
connection,
bpClients,
services
};
};
if (!isFirefoxPanel()) {
console.group("Development Notes");
const baseUrl = "https://devtools-html.github.io/debugger.html";
const localDevelopmentUrl = `${baseUrl}/docs/local-development.html`;
console.log("Debugging Tips", localDevelopmentUrl);
console.log("getGlobalsForTesting", window.getGlobalsForTesting());
console.groupEnd();
}
bootstrapApp(connection, { store, actions });
return { store, actions, selectors, client: commands };
}
export { onConnect };