Skip to content

Commit

Permalink
Disable dev tools in bridgeless mode
Browse files Browse the repository at this point in the history
Summary: Developer tools have a lot of dependencies on the bridge, so for now I'm just disabling them in bridgeless mode entirely by guarding everything in `setUpDeveloperTools` with the `RN$Bridgeless` flag. Also consolidating some of the stuff Dan added to `InitializeCore` for hot reloading in here.

Reviewed By: zackargyle

Differential Revision: D15797924

fbshipit-source-id: 360ea81a2844e49f7281eed259fc16a541148ac2
  • Loading branch information
Emily Janzer authored and facebook-github-bot committed Jun 13, 2019
1 parent 206abb0 commit aeef7b5
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 28 deletions.
9 changes: 0 additions & 9 deletions Libraries/Core/InitializeCore.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,6 @@ require('./setUpSegmentFetcher');
if (__DEV__) {
require('./checkNativeVersion');
require('./setUpDeveloperTools');

// This is used by the require.js polyfill for hot reloading.
// TODO(t9759686) Scan polyfills for dependencies, too
const reload = require('../NativeModules/specs/NativeDevSettings').default
.reload;
if (typeof reload !== 'function') {
throw new Error('Could not find the reload() implementation.');
}
(require: any).reload = reload;
}

const GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');
Expand Down
50 changes: 31 additions & 19 deletions Libraries/Core/setUpDeveloperTools.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,39 @@ import Platform from '../Utilities/Platform';
* You can use this module directly, or just require InitializeCore.
*/
if (__DEV__) {
if (!global.__RCTProfileIsProfiling) {
// not when debugging in chrome
// TODO(t12832058) This check is broken
if (!window.document) {
require('./Devtools/setupDevtools');
// TODO (T45803484) Enable devtools for bridgeless RN
if (!global.RN$Bridgeless) {
if (!global.__RCTProfileIsProfiling) {
// not when debugging in chrome
// TODO(t12832058) This check is broken
if (!window.document) {
require('./Devtools/setupDevtools');
}

// Set up inspector
const JSInspector = require('../JSInspector/JSInspector');
JSInspector.registerAgent(require('../JSInspector/NetworkAgent'));
}

// Set up inspector
const JSInspector = require('../JSInspector/JSInspector');
JSInspector.registerAgent(require('../JSInspector/NetworkAgent'));
}
if (!Platform.isTesting) {
const logToConsole = require('./Devtools/logToConsole');
['log', 'warn', 'info', 'trace'].forEach(level => {
const originalFunction = console[level];
// $FlowFixMe Overwrite console methods
console[level] = function(...args) {
logToConsole(level, args);
originalFunction.apply(console, args);
};
});
}

if (!Platform.isTesting) {
const logToConsole = require('./Devtools/logToConsole');
['log', 'warn', 'info', 'trace'].forEach(level => {
const originalFunction = console[level];
// $FlowFixMe Overwrite console methods
console[level] = function(...args) {
logToConsole(level, args);
originalFunction.apply(console, args);
};
});
// This is used by the require.js polyfill for hot reloading.
// TODO(t9759686) Scan polyfills for dependencies, too
const reload = require('../NativeModules/specs/NativeDevSettings').default
.reload;
if (typeof reload !== 'function') {
throw new Error('Could not find the reload() implementation.');
}
(require: any).reload = reload; // flowlint-line unclear-type: off
}
}

0 comments on commit aeef7b5

Please sign in to comment.