Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DO NOT LAND: But I'm really curious to see if anything blows up #56766

Closed
wants to merge 104 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
2da92cb
Migrate PlatformViewsController to Objective-C
cbracken Nov 22, 2024
3f6b2de
Add Obj-C wrapper to engine
cbracken Nov 22, 2024
2416e53
Eliminate wrapper property on engine class
cbracken Nov 22, 2024
8183daa
Use wrapper class on FlutterViewController, FlutterViewEngineDelegate
cbracken Nov 22, 2024
9230301
Update AccessibilityBridge to use wrapper
cbracken Nov 22, 2024
23e03a2
Pass wrapper to PlatformViewIOS
cbracken Nov 22, 2024
9dd337d
Pass wrapped class to IOSExternalViewEmbedder
cbracken Nov 22, 2024
0966e0e
Extract onMethodCall:result:
cbracken Nov 22, 2024
431dda2
Goodbye WeakPtr
cbracken Nov 22, 2024
f4c64ad
Format
cbracken Nov 22, 2024
fc08ce4
Migrate setTaskRunner
cbracken Nov 22, 2024
2810996
SetTaskRunner
cbracken Nov 22, 2024
8f994c4
Migrate setFlutterView
cbracken Nov 22, 2024
ff6fdb5
Migrate [set]viewController
cbracken Nov 23, 2024
0037903
flutterViewContoller
cbracken Nov 23, 2024
5644c4f
registerViewFactory:withId:policy:
cbracken Nov 23, 2024
c8703c5
beginFrameWithSize:
cbracken Nov 23, 2024
c887bfe
cancelFrame
cbracken Nov 23, 2024
aad6664
prerollCompositeEmbeddedView:withParams:
cbracken Nov 23, 2024
1ffcaa6
flutterTouchInterceptingViewForId:
cbracken Nov 23, 2024
fd5dc58
postPrerollActionWithThreadMerger:impellerEnabled:
cbracken Nov 23, 2024
ba646ae
endFrameWithResubmit:threadMerger:impellerEnabled:
cbracken Nov 23, 2024
283c7fa
compositeEmbeddedViewWithId:
cbracken Nov 23, 2024
23f0a97
reset
cbracken Nov 23, 2024
7967475
submitFrameWithGrContext:iosContext:frame:
cbracken Nov 23, 2024
7576e06
firstResponderPlatformViewId
cbracken Nov 23, 2024
bdf629f
pushFilterToVisitedPlatformViews:withRect:
cbracken Nov 23, 2024
303b32d
pushVisitedPlatformViewId:
cbracken Nov 23, 2024
f774ca0
embeddedViewCount
cbracken Nov 23, 2024
d21753b
platformViewForId:
cbracken Nov 23, 2024
99ddc89
compositeView:withParams:
cbracken Nov 23, 2024
34390e6
compositionParamsForView:
cbracken Nov 23, 2024
18a7851
Remove public instance getter
cbracken Nov 23, 2024
e1742bc
Migrate to weak pointers
cbracken Nov 23, 2024
aa0e076
Move C++ class to implementation file
cbracken Nov 23, 2024
0c9adc6
Switch to unique_ptr
cbracken Nov 23, 2024
b580ed2
Remove unused LayerPoolSize
cbracken Nov 23, 2024
f1c7c7d
Extract PlatformViewData
cbracken Nov 23, 2024
48e8a45
Extract LayerData struct
cbracken Nov 23, 2024
1c1c0e1
Migrate FlutterPlatformViewsController.instance to a property
cbracken Nov 23, 2024
0c2dbe0
add taskRunner property
cbracken Nov 23, 2024
f1f3c48
Migreate flutterView to property
cbracken Nov 23, 2024
04ac3f6
Migrate flutterViewController to property
cbracken Nov 23, 2024
6a7c27d
Migrate registerViewFactory impl
cbracken Nov 23, 2024
416e118
Migrate beginFrameWithSize: impl
cbracken Nov 23, 2024
8437d7b
Migrate postPrerollActionWithThreadMerger: impl
cbracken Nov 23, 2024
9257a57
Migrate cancelFrame impl
cbracken Nov 23, 2024
c363355
Migrate prerollCompositeEmbeddedView: impl
cbracken Nov 23, 2024
e8c9750
Migrate platformViewForId: impl
cbracken Nov 23, 2024
7cca9c5
Migrate flutterTouchInterceptingViewForId: impl
cbracken Nov 23, 2024
a998d21
Migrate endFrameWithResubmit: impl
cbracken Nov 23, 2024
cb1519b
Migrate compositeEmbeddedViewWithId:
cbracken Nov 23, 2024
ede12b9
Migrate reset impl
cbracken Nov 23, 2024
15f9764
Migrate submitFrame impl
cbracken Nov 23, 2024
5c8e0b0
Migrate pushFilterToVisitedPlatformViews impl
cbracken Nov 23, 2024
20663d9
Migrate pushVisitedPlatformViewId
cbracken Nov 23, 2024
b6e7aea
Migrate embeddedViewCount
cbracken Nov 23, 2024
b3ad201
Delete GetCompositionParams
cbracken Nov 23, 2024
6eb0bc1
Migrate resetFrameState
cbracken Nov 23, 2024
42d673b
Migrate createMissingOverlays:
cbracken Nov 23, 2024
70149e0
Migrate performSubmit
cbracken Nov 23, 2024
c9153f4
Migrate compositeView:withParams:
cbracken Nov 23, 2024
62495b1
Migrate viewsToDispose
cbracken Nov 23, 2024
02bdf81
Migrate removeUnusedLayers:
cbracken Nov 23, 2024
20be46a
Migreate createLayerWithIosContext:
cbracken Nov 23, 2024
ccfc428
Migrate nextLayerInPool
cbracken Nov 23, 2024
1bb3392
Migrate bringLayersIntoView
cbracken Nov 23, 2024
5d706fe
Migrate applyMutators
cbracken Nov 23, 2024
26b3afb
Migrate clipViewSetMaskView
cbracken Nov 23, 2024
894bb07
Migrate constructor
cbracken Nov 23, 2024
b1f25d8
Migrate layer_pool
cbracken Nov 23, 2024
cc73df9
Migrate slices
cbracken Nov 23, 2024
3461c8c
Migrate flutter_view_, flutter_view_controller_
cbracken Nov 23, 2024
a6cab02
Migrate mask_view_pool
cbracken Nov 23, 2024
493ea56
Migrate factories
cbracken Nov 23, 2024
632893d
Migrate gesture_recognizers_blocking_policies
cbracken Nov 23, 2024
46e7de8
frame_size and platform_task_runner
cbracken Nov 23, 2024
728936c
Migrate platform_views
cbracken Nov 23, 2024
22e3a79
Remove unnecessary dynamic decls
cbracken Nov 23, 2024
22aa5da
Migrate current_composition_params
cbracken Nov 23, 2024
1c2931d
Migrate views_to_dispose
cbracken Nov 23, 2024
fcda13b
Migrate composition_order
cbracken Nov 23, 2024
d31b2f1
Migrate visited_platform_views
cbracken Nov 23, 2024
0f7b7f1
views_to_recomposite
cbracken Nov 23, 2024
035e508
Migrate non_zero_origin_views
cbracken Nov 23, 2024
ad329de
Migrate previous_composition order and had_platform_views
cbracken Nov 23, 2024
4ee5b82
FORMAT
cbracken Nov 23, 2024
9184dbb
Reorder
cbracken Nov 23, 2024
7326a7a
Identifier cleanup
cbracken Nov 24, 2024
41f56fb
More identifier renaming
cbracken Nov 24, 2024
94dc77e
Add a TODO
cbracken Nov 24, 2024
b44ba77
More renaming
cbracken Nov 24, 2024
1811be2
More renaming
cbracken Nov 24, 2024
c50809a
More renaming
cbracken Nov 24, 2024
43a7e95
More renaming
cbracken Nov 24, 2024
93e5fc6
More renaming
cbracken Nov 24, 2024
b30daa0
More renames
cbracken Nov 24, 2024
cb78b36
Param renaming
cbracken Nov 24, 2024
8085428
More param renaming
cbracken Nov 24, 2024
1348e18
more param renaming
cbracken Nov 24, 2024
19d6bc0
ivar rename but there's no point in this ivar
cbracken Nov 24, 2024
b3f053e
Locals
cbracken Nov 24, 2024
6058423
More locals... and done I think
cbracken Nov 24, 2024
6db991b
Format
cbracken Nov 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 14 additions & 17 deletions shell/platform/darwin/ios/framework/Source/FlutterEngine.mm
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ @interface FlutterEngine () <FlutterIndirectScribbleDelegate,
@property(nonatomic, readonly, assign) BOOL allowHeadlessExecution;
@property(nonatomic, readonly, assign) BOOL restorationEnabled;

@property(nonatomic, strong) FlutterPlatformViewsController* platformViewsController;

// Maintains a dictionary of plugin names that have registered with the engine. Used by
// FlutterEngineRegistrar to implement a FlutterPluginRegistrar.
@property(nonatomic, readonly) NSMutableDictionary* pluginPublications;
Expand Down Expand Up @@ -150,7 +152,6 @@ @implementation FlutterEngine {
std::shared_ptr<flutter::ThreadHost> _threadHost;
std::unique_ptr<flutter::Shell> _shell;

std::shared_ptr<flutter::PlatformViewsController> _platformViewsController;
flutter::IOSRenderingAPI _renderingApi;
std::shared_ptr<flutter::SamplingProfiler> _profiler;

Expand Down Expand Up @@ -264,7 +265,7 @@ - (void)setUpApplicationLifecycleNotifications:(NSNotificationCenter*)center {

- (void)recreatePlatformViewController {
_renderingApi = flutter::GetRenderingAPIForProcess(FlutterView.forceSoftwareRendering);
_platformViewsController.reset(new flutter::PlatformViewsController());
_platformViewsController = [[FlutterPlatformViewsController alloc] init];
}

- (flutter::IOSRenderingAPI)platformViewsRenderingAPI {
Expand Down Expand Up @@ -452,11 +453,7 @@ - (void)destroyContext {
_shell.reset();
_profiler.reset();
_threadHost.reset();
_platformViewsController.reset();
}

- (std::shared_ptr<flutter::PlatformViewsController>&)platformViewsController {
return _platformViewsController;
_platformViewsController = nil;
}

- (NSURL*)observatoryUrl {
Expand Down Expand Up @@ -635,7 +632,7 @@ - (void)maybeSetupPlatformViewChannels {
[self.platformViewsChannel
setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
if (weakSelf) {
weakSelf.platformViewsController->OnMethodCall(call, result);
[weakSelf.platformViewsController onMethodCall:call result:result];
}
}];

Expand Down Expand Up @@ -778,10 +775,10 @@ - (BOOL)createShell:(NSString*)entrypoint
return std::unique_ptr<flutter::PlatformViewIOS>();
}
[strongSelf recreatePlatformViewController];
strongSelf->_platformViewsController->SetTaskRunner(
shell.GetTaskRunners().GetPlatformTaskRunner());
strongSelf.platformViewsController.taskRunner =
shell.GetTaskRunners().GetPlatformTaskRunner();
return std::make_unique<flutter::PlatformViewIOS>(
shell, strongSelf->_renderingApi, strongSelf->_platformViewsController,
shell, strongSelf->_renderingApi, strongSelf.platformViewsController,
shell.GetTaskRunners(), shell.GetConcurrentWorkerTaskRunner(),
shell.GetIsGpuDisabledSyncSwitch());
};
Expand Down Expand Up @@ -1103,7 +1100,7 @@ - (void)flutterTextInputView:(FlutterTextInputView*)textInputView
// Have to check in the next run loop, because iOS requests the previous first responder to
// resign before requesting the next view to become first responder.
dispatch_async(dispatch_get_main_queue(), ^(void) {
long platform_view_id = self.platformViewsController->FindFirstResponderPlatformViewId();
long platform_view_id = self.platformViewsController.firstResponderPlatformViewId;
if (platform_view_id == -1) {
return;
}
Expand Down Expand Up @@ -1401,10 +1398,9 @@ - (FlutterEngine*)spawnWithEntrypoint:(/*nullable*/ NSString*)entrypoint
flutter::Shell::CreateCallback<flutter::PlatformView> on_create_platform_view =
[result, context](flutter::Shell& shell) {
[result recreatePlatformViewController];
result->_platformViewsController->SetTaskRunner(
shell.GetTaskRunners().GetPlatformTaskRunner());
result.platformViewsController.taskRunner = shell.GetTaskRunners().GetPlatformTaskRunner();
return std::make_unique<flutter::PlatformViewIOS>(
shell, context, result->_platformViewsController, shell.GetTaskRunners());
shell, context, result.platformViewsController, shell.GetTaskRunners());
};

flutter::Shell::CreateCallback<flutter::Rasterizer> on_create_rasterizer =
Expand Down Expand Up @@ -1499,8 +1495,9 @@ - (void)registerViewFactory:(NSObject<FlutterPlatformViewFactory>*)factory
withId:(NSString*)factoryId
gestureRecognizersBlockingPolicy:
(FlutterPlatformViewGestureRecognizersBlockingPolicy)gestureRecognizersBlockingPolicy {
[_flutterEngine platformViewsController]->RegisterViewFactory(factory, factoryId,
gestureRecognizersBlockingPolicy);
[_flutterEngine.platformViewsController registerViewFactory:factory
withId:factoryId
gestureRecognizersBlockingPolicy:gestureRecognizersBlockingPolicy];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ NS_ASSUME_NONNULL_BEGIN
base64Encode:(bool)base64Encode;

- (FlutterPlatformPlugin*)platformPlugin;
- (std::shared_ptr<flutter::PlatformViewsController>&)platformViewsController;
- (FlutterTextInputPlugin*)textInputPlugin;
- (FlutterRestorationPlugin*)restorationPlugin;
- (void)launchEngine:(nullable NSString*)entrypoint
Expand Down Expand Up @@ -81,6 +80,7 @@ NS_ASSUME_NONNULL_BEGIN
userData:(nullable void*)userData;

@property(nonatomic, readonly) FlutterDartProject* project;

@end

NS_ASSUME_NONNULL_END
Expand Down
Loading