Correctly bypass sync calls in UIManager during remote debugging (#25162)

Summary:
Remote debugging stopped working (since 0.58, according to #23254). See https://github.com/facebook/react-native/issues/23254#issuecomment-474692753 for repro steps.

The root cause is incorrect checks for Chrome debugging environment in `UIManager.js`.
- In one place where sync function `lazilyLoadView` should be avoided, we effectively use `if (__DEV__ && !global.nativeCallSyncHook)` to check remote debugging, which misses ship flavor (i.e. `__DEV__` is false).
- In another place where we want to pre-populate view managers' constants to avoid calling sync function `getConstantsForViewManager`, `if (__DEV__)` is used, also missing ship flavor.

This PR fixes both checks, only using the absense of `global.nativeCallSyncHook` to determine remote debugging environments.

## Changelog

[JavaScript] [Fixed] - Correctly bypass sync calls in UIManager during remote debugging
Pull Request resolved: https://github.com/facebook/react-native/pull/25162

Differential Revision: D15692492

Pulled By: cpojer

fbshipit-source-id: 173b688f140916b767fcdbbaaf68a5c303adbcd1
This commit is contained in:
Brian Zhao 2019-06-06 04:24:12 -07:00 коммит произвёл Facebook Github Bot
Родитель 831f5fe210
Коммит 417e191a1c
1 изменённых файлов: 3 добавлений и 5 удалений

Просмотреть файл

@ -78,10 +78,8 @@ const UIManagerJS: UIManagerJSInterface = {
// If we're in the Chrome Debugger, let's not even try calling the sync
// method.
if (__DEV__) {
if (!global.nativeCallSyncHook) {
return config;
}
if (!global.nativeCallSyncHook) {
return config;
}
if (
@ -182,7 +180,7 @@ if (Platform.OS === 'ios') {
}
}
if (__DEV__) {
if (!global.nativeCallSyncHook) {
Object.keys(getConstants()).forEach(viewManagerName => {
if (!UIManagerProperties.includes(viewManagerName)) {
if (!viewManagerConfigs[viewManagerName]) {