From 1bd66d9aa9efc8fdda1111ac5b94657398c2e8fd Mon Sep 17 00:00:00 2001 From: Valentin Shergin Date: Tue, 18 Dec 2018 12:26:53 -0800 Subject: [PATCH] RCTSurface: Calling `start` is now required to start the Surface Summary: So, it does not start itself automatically right after instantiation. (Classic RCTSurface still kinda start itself automatically but only because start/stop concept is not implemented for this yet.) Reviewed By: sahrens Differential Revision: D13461294 fbshipit-source-id: 05430688f69a0d9bf75d03e6d25f02ccd5d3176a --- Libraries/SurfaceBackedComponent/RCTSurfaceBackedComponent.mm | 2 ++ React/Base/Surface/RCTSurface.h | 2 +- React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm | 1 + React/Fabric/Surface/RCTFabricSurface.mm | 2 -- React/Fabric/Surface/RCTFabricSurfaceHostingView.mm | 2 ++ 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Libraries/SurfaceBackedComponent/RCTSurfaceBackedComponent.mm b/Libraries/SurfaceBackedComponent/RCTSurfaceBackedComponent.mm index 404cc22bd..051acadb0 100644 --- a/Libraries/SurfaceBackedComponent/RCTSurfaceBackedComponent.mm +++ b/Libraries/SurfaceBackedComponent/RCTSurfaceBackedComponent.mm @@ -38,6 +38,8 @@ moduleName:moduleName initialProperties:properties]; + [surface start]; + state = [RCTSurfaceBackedComponentState newWithSurface:surface]; CKComponentScope::replaceState(scope, state); diff --git a/React/Base/Surface/RCTSurface.h b/React/Base/Surface/RCTSurface.h index cb3772af4..5adbd0bef 100644 --- a/React/Base/Surface/RCTSurface.h +++ b/React/Base/Surface/RCTSurface.h @@ -118,7 +118,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Starts or stops the Surface. - * Those methods are not implemented yet for regular RCTSurface. + * Those methods are a no-op for regular RCTSurface (for now), but all call sites must call them appropriately. */ - (BOOL)start; - (BOOL)stop; diff --git a/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm b/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm index f3d999d97..9f55e6351 100644 --- a/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +++ b/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm @@ -43,6 +43,7 @@ RCT_NOT_IMPLEMENTED(- (nullable instancetype)initWithCoder:(NSCoder *)coder) sizeMeasureMode:(RCTSurfaceSizeMeasureMode)sizeMeasureMode { RCTSurface *surface = [[self class] createSurfaceWithBridge:bridge moduleName:moduleName initialProperties:initialProperties]; + [surface start]; return [self initWithSurface:surface sizeMeasureMode:sizeMeasureMode]; } diff --git a/React/Fabric/Surface/RCTFabricSurface.mm b/React/Fabric/Surface/RCTFabricSurface.mm index bf0679946..ddc187568 100644 --- a/React/Fabric/Surface/RCTFabricSurface.mm +++ b/React/Fabric/Surface/RCTFabricSurface.mm @@ -55,8 +55,6 @@ _touchHandler = [RCTSurfaceTouchHandler new]; _stage = RCTSurfaceStageSurfaceDidInitialize; - - [self start]; } return self; diff --git a/React/Fabric/Surface/RCTFabricSurfaceHostingView.mm b/React/Fabric/Surface/RCTFabricSurfaceHostingView.mm index 30cff6d44..fb07a87a9 100644 --- a/React/Fabric/Surface/RCTFabricSurfaceHostingView.mm +++ b/React/Fabric/Surface/RCTFabricSurfaceHostingView.mm @@ -7,6 +7,7 @@ #import "RCTFabricSurfaceHostingView.h" +#import #import "RCTFabricSurface.h" @implementation RCTFabricSurfaceHostingView @@ -19,6 +20,7 @@ RCTSurface *surface = (RCTSurface *)[[RCTFabricSurface alloc] initWithBridge:bridge moduleName:moduleName initialProperties:initialProperties]; + [surface start]; return [self initWithSurface:surface sizeMeasureMode:sizeMeasureMode]; }