forked from facebook/react-devtools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackend.js
42 lines (36 loc) · 1.17 KB
/
backend.js
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
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @flow
*/
'use strict';
var Agent = require('../../agent/Agent');
var TraceUpdatesBackendManager = require('../../plugins/TraceUpdates/TraceUpdatesBackendManager');
var Bridge = require('../../agent/Bridge');
var setupHighlighter = require('../../frontend/Highlighter/setup');
var setupRelay = require('../../plugins/Relay/backend');
var inject = require('../../agent/inject');
var wall = {
listen(fn) {
window.addEventListener('message', evt => {
if (evt.source === window.parent) {
fn(evt.data);
}
});
},
send(data) {
window.parent.postMessage(data, '*');
},
};
var bridge = new Bridge(wall);
var agent = new Agent(window);
agent.addBridge(bridge);
inject(window.__REACT_DEVTOOLS_GLOBAL_HOOK__, agent);
setupHighlighter(agent);
setupRelay(bridge, agent, window.__REACT_DEVTOOLS_GLOBAL_HOOK__);
TraceUpdatesBackendManager.init(agent);