Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit acaef6f

Browse files
authored
Revert "Added the ability to set the initial route via launch urls. (#21336)" (#22337)
1 parent f3c5ecd commit acaef6f

File tree

9 files changed

+17
-130
lines changed

9 files changed

+17
-130
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -942,8 +942,6 @@ FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlugin
942942
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterViewController.h
943943
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Info.plist
944944
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm
945-
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegateTest.mm
946-
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate_Test.h
947945
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.h
948946
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.mm
949947
FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelayTest.mm

shell/platform/darwin/ios/BUILD.gn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,6 @@ shared_library("ios_test_flutter") {
208208
"//build/config:symbol_visibility_hidden",
209209
]
210210
sources = [
211-
"framework/Source/FlutterAppDelegateTest.mm",
212211
"framework/Source/FlutterBinaryMessengerRelayTest.mm",
213212
"framework/Source/FlutterDartProjectTest.mm",
214213
"framework/Source/FlutterEngineTest.mm",

shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm

Lines changed: 17 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,15 @@
44

55
#import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterAppDelegate.h"
66

7-
#import "flutter/fml/logging.h"
7+
#include "flutter/fml/logging.h"
88
#import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterPluginAppLifeCycleDelegate.h"
99
#import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterViewController.h"
10-
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate_Test.h"
11-
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Internal.h"
1210
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterPluginAppLifeCycleDelegate_internal.h"
1311

1412
static NSString* kUIBackgroundMode = @"UIBackgroundModes";
1513
static NSString* kRemoteNotificationCapabitiliy = @"remote-notification";
1614
static NSString* kBackgroundFetchCapatibility = @"fetch";
1715

18-
@interface FlutterAppDelegate ()
19-
@property(nonatomic, copy) FlutterViewController* (^rootFlutterViewControllerGetter)(void);
20-
@end
21-
2216
@implementation FlutterAppDelegate {
2317
FlutterPluginAppLifeCycleDelegate* _lifeCycleDelegate;
2418
}
@@ -32,7 +26,6 @@ - (instancetype)init {
3226

3327
- (void)dealloc {
3428
[_lifeCycleDelegate release];
35-
[_rootFlutterViewControllerGetter release];
3629
[super dealloc];
3730
}
3831

@@ -48,13 +41,10 @@ - (BOOL)application:(UIApplication*)application
4841

4942
// Returns the key window's rootViewController, if it's a FlutterViewController.
5043
// Otherwise, returns nil.
51-
- (FlutterViewController*)rootFlutterViewController {
52-
if (_rootFlutterViewControllerGetter != nil) {
53-
return _rootFlutterViewControllerGetter();
54-
}
55-
UIViewController* rootViewController = _window.rootViewController;
56-
if ([rootViewController isKindOfClass:[FlutterViewController class]]) {
57-
return (FlutterViewController*)rootViewController;
44+
+ (FlutterViewController*)rootFlutterViewController {
45+
UIViewController* viewController = [UIApplication sharedApplication].keyWindow.rootViewController;
46+
if ([viewController isKindOfClass:[FlutterViewController class]]) {
47+
return (FlutterViewController*)viewController;
5848
}
5949
return nil;
6050
}
@@ -134,28 +124,7 @@ - (void)userNotificationCenter:(UNUserNotificationCenter*)center
134124
- (BOOL)application:(UIApplication*)application
135125
openURL:(NSURL*)url
136126
options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>*)options {
137-
if ([_lifeCycleDelegate application:application openURL:url options:options]) {
138-
return YES;
139-
} else {
140-
FlutterViewController* flutterViewController = [self rootFlutterViewController];
141-
if (flutterViewController) {
142-
[flutterViewController.engine
143-
waitForFirstFrame:3.0
144-
callback:^(BOOL didTimeout) {
145-
if (didTimeout) {
146-
FML_LOG(ERROR)
147-
<< "Timeout waiting for the first frame when launching an URL.";
148-
} else {
149-
[flutterViewController.engine.navigationChannel invokeMethod:@"pushRoute"
150-
arguments:url.path];
151-
}
152-
}];
153-
return YES;
154-
} else {
155-
FML_LOG(ERROR) << "Attempting to open an URL without a Flutter RootViewController.";
156-
return NO;
157-
}
158-
}
127+
return [_lifeCycleDelegate application:application openURL:url options:options];
159128
}
160129

161130
- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url {
@@ -206,25 +175,27 @@ - (BOOL)application:(UIApplication*)application
206175
#pragma mark - FlutterPluginRegistry methods. All delegating to the rootViewController
207176

208177
- (NSObject<FlutterPluginRegistrar>*)registrarForPlugin:(NSString*)pluginKey {
209-
FlutterViewController* flutterRootViewController = [self rootFlutterViewController];
210-
if (flutterRootViewController) {
211-
return [[flutterRootViewController pluginRegistry] registrarForPlugin:pluginKey];
178+
UIViewController* rootViewController = _window.rootViewController;
179+
if ([rootViewController isKindOfClass:[FlutterViewController class]]) {
180+
return
181+
[[(FlutterViewController*)rootViewController pluginRegistry] registrarForPlugin:pluginKey];
212182
}
213183
return nil;
214184
}
215185

216186
- (BOOL)hasPlugin:(NSString*)pluginKey {
217-
FlutterViewController* flutterRootViewController = [self rootFlutterViewController];
218-
if (flutterRootViewController) {
219-
return [[flutterRootViewController pluginRegistry] hasPlugin:pluginKey];
187+
UIViewController* rootViewController = _window.rootViewController;
188+
if ([rootViewController isKindOfClass:[FlutterViewController class]]) {
189+
return [[(FlutterViewController*)rootViewController pluginRegistry] hasPlugin:pluginKey];
220190
}
221191
return false;
222192
}
223193

224194
- (NSObject*)valuePublishedByPlugin:(NSString*)pluginKey {
225-
FlutterViewController* flutterRootViewController = [self rootFlutterViewController];
226-
if (flutterRootViewController) {
227-
return [[flutterRootViewController pluginRegistry] valuePublishedByPlugin:pluginKey];
195+
UIViewController* rootViewController = _window.rootViewController;
196+
if ([rootViewController isKindOfClass:[FlutterViewController class]]) {
197+
return [[(FlutterViewController*)rootViewController pluginRegistry]
198+
valuePublishedByPlugin:pluginKey];
228199
}
229200
return nil;
230201
}

shell/platform/darwin/ios/framework/Source/FlutterAppDelegateTest.mm

Lines changed: 0 additions & 41 deletions
This file was deleted.

shell/platform/darwin/ios/framework/Source/FlutterAppDelegate_Test.h

Lines changed: 0 additions & 9 deletions
This file was deleted.

shell/platform/darwin/ios/framework/Source/FlutterEngine.mm

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -914,19 +914,6 @@ - (void)onLocaleUpdated:(NSNotification*)notification {
914914
[self.localizationChannel invokeMethod:@"setLocale" arguments:localeData];
915915
}
916916

917-
- (void)waitForFirstFrame:(NSTimeInterval)timeout
918-
callback:(void (^_Nonnull)(BOOL didTimeout))callback {
919-
dispatch_queue_t queue = dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0);
920-
dispatch_async(queue, ^{
921-
fml::TimeDelta waitTime = fml::TimeDelta::FromMilliseconds(timeout * 1000);
922-
BOOL didTimeout =
923-
self.shell.WaitForFirstFrame(waitTime).code() == fml::StatusCode::kDeadlineExceeded;
924-
dispatch_async(dispatch_get_main_queue(), ^{
925-
callback(didTimeout);
926-
});
927-
});
928-
}
929-
930917
@end
931918

932919
@implementation FlutterEngineRegistrar {

shell/platform/darwin/ios/framework/Source/FlutterEngineTest.mm

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -102,19 +102,6 @@ - (void)testRunningInitialRouteSendsNavigationMessage {
102102
message:encodedSetInitialRouteMethod]);
103103
}
104104

105-
- (void)testWaitForFirstFrameTimeout {
106-
FlutterEngine* engine = [[FlutterEngine alloc] initWithName:@"foobar"];
107-
[engine run];
108-
XCTestExpectation* timeoutFirstFrame = [self expectationWithDescription:@"timeoutFirstFrame"];
109-
[engine waitForFirstFrame:0.1
110-
callback:^(BOOL didTimeout) {
111-
if (timeoutFirstFrame) {
112-
[timeoutFirstFrame fulfill];
113-
}
114-
}];
115-
[self waitForExpectationsWithTimeout:1 handler:nil];
116-
}
117-
118105
- (void)testPlatformViewsControllerRenderingMetalBackend {
119106
FlutterEngine* engine = [[FlutterEngine alloc] init];
120107
[engine run];
@@ -133,5 +120,4 @@ - (void)testPlatformViewsControllerRenderingSoftware {
133120

134121
XCTAssertEqual(renderingApi, flutter::IOSRenderingAPI::kSoftware);
135122
}
136-
137123
@end

shell/platform/darwin/ios/framework/Source/FlutterEngine_Internal.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
- (void)notifyLowMemory;
4949
- (flutter::PlatformViewIOS*)iosPlatformView;
5050

51-
- (void)waitForFirstFrame:(NSTimeInterval)timeout callback:(void (^)(BOOL didTimeout))callback;
5251
@end
5352

5453
#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_FLUTTERENGINE_INTERNAL_H_

shell/platform/darwin/ios/framework/Source/FlutterEngine_Test.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
#import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterEngine.h"
66
#import "flutter/shell/platform/darwin/ios/rendering_api_selection.h"
77

8-
@class FlutterBinaryMessengerRelay;
9-
108
// Category to add test-only visibility.
119
@interface FlutterEngine (Test) <FlutterBinaryMessenger>
1210
- (void)setBinaryMessenger:(FlutterBinaryMessengerRelay*)binaryMessenger;
13-
- (void)waitForFirstFrame:(NSTimeInterval)timeout callback:(void (^)(BOOL didTimeout))callback;
1411
- (flutter::IOSRenderingAPI)platformViewsRenderingAPI;
1512
@end

0 commit comments

Comments
 (0)