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:
Samuel Susla
2021-06-16 08:40:29 -07:00
committed by Facebook GitHub Bot
parent d208e7d6ad
commit 279fb3eedc
7 changed files with 0 additions and 139 deletions
@@ -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