mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Back out "Move RuntimeScheduler initialisation to the start of the runtime"
Summary: Changelog: [internal] Original commit changeset: cbc650f6fbce Fix app size regression. Reviewed By: julian-krzeminski Differential Revision: D29162397 fbshipit-source-id: 54b344c2da631aaa704fd640cdb2a71239ea754f
This commit is contained in:
committed by
Facebook GitHub Bot
parent
d208e7d6ad
commit
279fb3eedc
@@ -39,7 +39,6 @@ rn_android_library(
|
||||
react_native_target("java/com/facebook/react/modules/bundleloader:bundleloader"),
|
||||
react_native_target("java/com/facebook/react/modules/debug:debug"),
|
||||
react_native_target("java/com/facebook/react/modules/fabric:fabric"),
|
||||
react_native_target("java/com/facebook/react/fabric:fabric"),
|
||||
react_native_target("java/com/facebook/react/modules/debug:interfaces"),
|
||||
react_native_target("java/com/facebook/react/modules/deviceinfo:deviceinfo"),
|
||||
react_native_target("java/com/facebook/react/modules/systeminfo:systeminfo"),
|
||||
|
||||
@@ -83,7 +83,6 @@ import com.facebook.react.devsupport.RedBoxHandler;
|
||||
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
||||
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
||||
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
|
||||
import com.facebook.react.fabric.RuntimeSchedulerManager;
|
||||
import com.facebook.react.modules.appearance.AppearanceModule;
|
||||
import com.facebook.react.modules.appregistry.AppRegistry;
|
||||
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
|
||||
@@ -163,7 +162,6 @@ public class ReactInstanceManager {
|
||||
private final DevSupportManager mDevSupportManager;
|
||||
private final boolean mUseDeveloperSupport;
|
||||
private @Nullable ComponentNameResolverManager mComponentNameResolverManager;
|
||||
private @Nullable RuntimeSchedulerManager mRuntimeSchedulerManager;
|
||||
private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
|
||||
private final Object mReactContextLock = new Object();
|
||||
private @Nullable volatile ReactContext mCurrentReactContext;
|
||||
@@ -720,7 +718,6 @@ public class ReactInstanceManager {
|
||||
mViewManagerNames = null;
|
||||
}
|
||||
mComponentNameResolverManager = null;
|
||||
mRuntimeSchedulerManager = null;
|
||||
FLog.d(ReactConstants.TAG, "ReactInstanceManager has been destroyed");
|
||||
}
|
||||
|
||||
@@ -1353,10 +1350,6 @@ public class ReactInstanceManager {
|
||||
});
|
||||
catalystInstance.setGlobalVariable("__fbStaticViewConfig", "true");
|
||||
}
|
||||
if (ReactFeatureFlags.enableRuntimeScheduler) {
|
||||
mRuntimeSchedulerManager = new RuntimeSchedulerManager(catalystInstance.getRuntimeExecutor());
|
||||
}
|
||||
|
||||
ReactMarker.logMarker(ReactMarkerConstants.PRE_RUN_JS_BUNDLE_START);
|
||||
Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "runJSBundle");
|
||||
catalystInstance.runJSBundle();
|
||||
|
||||
@@ -44,8 +44,6 @@ public class ReactFeatureFlags {
|
||||
/** Enables Static ViewConfig in RN Android native code. */
|
||||
public static boolean enableExperimentalStaticViewConfigs = false;
|
||||
|
||||
public static boolean enableRuntimeScheduler = false;
|
||||
|
||||
/** Enables a more aggressive cleanup during destruction of ReactContext */
|
||||
public static boolean enableReactContextCleanupFix = false;
|
||||
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
// (c) Facebook, Inc. and its affiliates. Confidential and proprietary.
|
||||
|
||||
/*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric;
|
||||
|
||||
import com.facebook.jni.HybridData;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.proguard.annotations.DoNotStripAny;
|
||||
import com.facebook.react.bridge.RuntimeExecutor;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
|
||||
@DoNotStripAny
|
||||
public class RuntimeSchedulerManager {
|
||||
|
||||
static {
|
||||
staticInit();
|
||||
}
|
||||
|
||||
@DoNotStrip
|
||||
@SuppressWarnings("unused")
|
||||
private final HybridData mHybridData;
|
||||
|
||||
public RuntimeSchedulerManager(RuntimeExecutor runtimeExecutor) {
|
||||
mHybridData = initHybrid(runtimeExecutor);
|
||||
installJSIBindings();
|
||||
}
|
||||
|
||||
private native HybridData initHybrid(RuntimeExecutor runtimeExecutor);
|
||||
|
||||
private native void installJSIBindings();
|
||||
|
||||
private static void staticInit() {
|
||||
SoLoader.loadLibrary("fabricjni");
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,6 @@
|
||||
#include "CoreComponentsRegistry.h"
|
||||
#include "EventBeatManager.h"
|
||||
#include "EventEmitterWrapper.h"
|
||||
#include "RuntimeSchedulerManager.h"
|
||||
#include "StateWrapperImpl.h"
|
||||
#include "SurfaceHandlerBinding.h"
|
||||
|
||||
@@ -25,6 +24,5 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
|
||||
facebook::react::ComponentFactory::registerNatives();
|
||||
facebook::react::CoreComponentsRegistry::registerNatives();
|
||||
facebook::react::SurfaceHandlerBinding::registerNatives();
|
||||
facebook::react::RuntimeSchedulerManager::registerNatives();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include <fbjni/fbjni.h>
|
||||
#include <jsi/jsi.h>
|
||||
#include <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
||||
#include <react/renderer/runtimescheduler/RuntimeSchedulerBinding.h>
|
||||
|
||||
#include "RuntimeSchedulerManager.h"
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
RuntimeSchedulerManager::RuntimeSchedulerManager(
|
||||
RuntimeExecutor runtimeExecutor)
|
||||
: runtimeExecutor_(runtimeExecutor) {}
|
||||
|
||||
jni::local_ref<RuntimeSchedulerManager::jhybriddata>
|
||||
RuntimeSchedulerManager::initHybrid(
|
||||
jni::alias_ref<jclass>,
|
||||
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor) {
|
||||
return makeCxxInstance(runtimeExecutor->cthis()->get());
|
||||
}
|
||||
|
||||
void RuntimeSchedulerManager::registerNatives() {
|
||||
registerHybrid({
|
||||
makeNativeMethod("initHybrid", RuntimeSchedulerManager::initHybrid),
|
||||
makeNativeMethod(
|
||||
"installJSIBindings", RuntimeSchedulerManager::installJSIBindings),
|
||||
});
|
||||
}
|
||||
|
||||
void RuntimeSchedulerManager::installJSIBindings() {
|
||||
runtimeExecutor_([runtimeExecutor = runtimeExecutor_](jsi::Runtime &runtime) {
|
||||
auto runtimeScheduler = std::make_shared<RuntimeScheduler>(runtimeExecutor);
|
||||
RuntimeSchedulerBinding::createAndInstallIfNeeded(
|
||||
runtime, runtimeScheduler);
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
@@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ReactCommon/CallInvokerHolder.h>
|
||||
#include <ReactCommon/RuntimeExecutor.h>
|
||||
#include <fbjni/fbjni.h>
|
||||
#include <react/jni/JRuntimeExecutor.h>
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
class RuntimeSchedulerManager
|
||||
: public facebook::jni::HybridClass<RuntimeSchedulerManager> {
|
||||
public:
|
||||
static auto constexpr kJavaDescriptor =
|
||||
"Lcom/facebook/react/fabric/RuntimeSchedulerManager;";
|
||||
|
||||
static facebook::jni::local_ref<jhybriddata> initHybrid(
|
||||
jni::alias_ref<jclass>,
|
||||
facebook::jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor);
|
||||
|
||||
static void registerNatives();
|
||||
|
||||
private:
|
||||
friend HybridBase;
|
||||
RuntimeExecutor runtimeExecutor_;
|
||||
|
||||
void installJSIBindings();
|
||||
|
||||
explicit RuntimeSchedulerManager(RuntimeExecutor runtimeExecutor);
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
Reference in New Issue
Block a user