MCPcopy
hub / github.com/facebook/react / createBridge

Function createBridge

packages/react-devtools-extensions/src/main/index.js:50–144  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

48const hookNamesModuleLoaderFunction = () => resolvedParseHookNames;
49
50function createBridge() {
51 bridge = new Bridge({
52 listen(fn) {
53 const bridgeListener = message => fn(message);
54 // Store the reference so that we unsubscribe from the same object.
55 const portOnMessage = port.onMessage;
56 portOnMessage.addListener(bridgeListener);
57
58 lastSubscribedBridgeListener = bridgeListener;
59
60 return () => {
61 port?.onMessage.removeListener(bridgeListener);
62 lastSubscribedBridgeListener = null;
63 };
64 },
65
66 send(event: string, payload: any, transferable?: Array<any>) {
67 port?.postMessage({event, payload}, transferable);
68 },
69 });
70
71 bridge.addListener('reloadAppForProfiling', () => {
72 localStorageSetItem(LOCAL_STORAGE_SUPPORTS_PROFILING_KEY, 'true');
73 chrome.devtools.inspectedWindow.eval('window.location.reload();');
74 });
75
76 bridge.addListener(
77 'syncSelectionToBuiltinElementsPanel',
78 setBrowserSelectionFromReact,
79 );
80
81 bridge.addListener('extensionBackendInitialized', () => {
82 // Initialize the renderer's trace-updates setting.
83 // This handles the case of navigating to a new page after the DevTools have already been shown.
84 bridge.send(
85 'setTraceUpdatesEnabled',
86 localStorageGetItem(LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY) === 'true',
87 );
88 });
89
90 const sourcesPanel = chrome.devtools.panels.sources;
91
92 const onBrowserElementSelectionChanged = () =>
93 setReactSelectionFromBrowser(bridge);
94 const onBrowserSourceSelectionChanged = (location: {
95 url: string,
96 startLine: number,
97 startColumn: number,
98 endLine: number,
99 endColumn: number,
100 }) => {
101 if (
102 currentSelectedSource === null ||
103 currentSelectedSource.url !== location.url
104 ) {
105 currentSelectedSource = {
106 url: location.url,
107 selectionRef: {

Callers 1

createBridgeAndStoreFunction · 0.70

Calls 3

localStorageSetItemFunction · 0.90
localStorageGetItemFunction · 0.90
addListenerMethod · 0.65

Tested by

no test coverage detected