mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
fd6e130b00
## Summary To make the config `supportsNativeInspection` explicit, set it to default to `false` and only allow it in the extension. ## How did you test this change? When disabled on **React DevTools extension** <img width="419" alt="Screenshot 2024-06-06 at 17 34 02" src="https://github.com/facebook/react/assets/5188459/0052b645-2214-475c-8b41-4f9207ca3343"> When enabled on **React DevTools extension** (the chosen config) <img width="425" alt="Screenshot 2024-06-06 at 17 34 53" src="https://github.com/facebook/react/assets/5188459/df34ec8e-2039-4984-86c8-74feaf89bbdd"> When enabled on **React DevTools in Fusebox** <img width="1170" alt="Screenshot 2024-06-06 at 17 29 24" src="https://github.com/facebook/react/assets/5188459/ae52274b-583d-463c-8482-2323d502f4c0"> When disabled on **React DevTools in Fusebox** (the chosen config) <img width="1453" alt="Screenshot 2024-06-06 at 17 30 31" src="https://github.com/facebook/react/assets/5188459/cba5b51b-c973-412d-8ad0-382a4f9bf115"> When enabled on **React DevTools Inline** <img width="915" alt="Screenshot 2024-06-06 at 17 24 20" src="https://github.com/facebook/react/assets/5188459/f0d61d99-2b75-4a87-a19e-db431be697e3"> When disabled on **React DevTools Inline** (the chosen config) <img width="844" alt="Screenshot 2024-06-06 at 17 19 39" src="https://github.com/facebook/react/assets/5188459/d3bcc8a7-535d-4656-844d-f9f89bb2b248"> When enabled on **React DevTools standalone** <img width="1227" alt="Screenshot 2024-06-06 at 17 23 16" src="https://github.com/facebook/react/assets/5188459/174fbae6-1412-4539-bbe6-e1d0e8baa7d5"> When disabled on **React DevTools standalone** (the chosen config) <img width="844" alt="Screenshot 2024-06-06 at 17 19 39" src="https://github.com/facebook/react/assets/5188459/00c46907-e3a6-4766-a1b4-dd088cac2157">
81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
import * as React from 'react';
|
|
import {createRoot} from 'react-dom/client';
|
|
import Bridge from 'react-devtools-shared/src/bridge';
|
|
import Store from 'react-devtools-shared/src/devtools/store';
|
|
import DevTools from 'react-devtools-shared/src/devtools/views/DevTools';
|
|
|
|
import type {
|
|
BrowserTheme,
|
|
Wall,
|
|
} from 'react-devtools-shared/src/frontend/types';
|
|
import type {FrontendBridge} from 'react-devtools-shared/src/bridge';
|
|
import type {
|
|
ViewAttributeSource,
|
|
ViewElementSource,
|
|
CanViewElementSource,
|
|
} from 'react-devtools-shared/src/devtools/views/DevTools';
|
|
import type {Config} from 'react-devtools-shared/src/devtools/store';
|
|
|
|
export function createBridge(wall?: Wall): FrontendBridge {
|
|
if (wall != null) {
|
|
return new Bridge(wall);
|
|
}
|
|
|
|
return new Bridge({listen: () => {}, send: () => {}});
|
|
}
|
|
|
|
export function createStore(bridge: FrontendBridge, config?: Config): Store {
|
|
return new Store(bridge, {
|
|
checkBridgeProtocolCompatibility: true,
|
|
supportsTraceUpdates: true,
|
|
...config,
|
|
});
|
|
}
|
|
|
|
type InitializationOptions = {
|
|
bridge: FrontendBridge,
|
|
store: Store,
|
|
theme?: BrowserTheme,
|
|
viewAttributeSourceFunction?: ViewAttributeSource,
|
|
viewElementSourceFunction?: ViewElementSource,
|
|
canViewElementSourceFunction?: CanViewElementSource,
|
|
};
|
|
|
|
export function initialize(
|
|
contentWindow: Element | Document,
|
|
options: InitializationOptions,
|
|
): void {
|
|
const {
|
|
bridge,
|
|
store,
|
|
theme = 'light',
|
|
viewAttributeSourceFunction,
|
|
viewElementSourceFunction,
|
|
canViewElementSourceFunction,
|
|
} = options;
|
|
const root = createRoot(contentWindow);
|
|
|
|
root.render(
|
|
<DevTools
|
|
bridge={bridge}
|
|
browserTheme={theme}
|
|
store={store}
|
|
showTabBar={true}
|
|
warnIfLegacyBackendDetected={true}
|
|
enabledInspectedElementContextMenu={true}
|
|
viewAttributeSourceFunction={viewAttributeSourceFunction}
|
|
viewElementSourceFunction={viewElementSourceFunction}
|
|
canViewElementSourceFunction={canViewElementSourceFunction}
|
|
/>,
|
|
);
|
|
}
|