Repository: cordova-plugin-inappbrowser Updated Branches: refs/heads/master 49757716f -> 8fb224443
fix async self usage Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/1bc51f93 Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/1bc51f93 Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/1bc51f93 Branch: refs/heads/master Commit: 1bc51f9381ccade59dad29f7a41dd37ec2a62f32 Parents: 1912d12 Author: Jesse MacFadyen <[email protected]> Authored: Tue Nov 17 11:50:40 2015 -0800 Committer: Jesse MacFadyen <[email protected]> Committed: Tue Nov 17 11:50:40 2015 -0800 ---------------------------------------------------------------------- src/ios/CDVInAppBrowser.m | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/blob/1bc51f93/src/ios/CDVInAppBrowser.m ---------------------------------------------------------------------- diff --git a/src/ios/CDVInAppBrowser.m b/src/ios/CDVInAppBrowser.m index 1e64a30..9549e73 100644 --- a/src/ios/CDVInAppBrowser.m +++ b/src/ios/CDVInAppBrowser.m @@ -214,14 +214,17 @@ _previousStatusBarStyle = [UIApplication sharedApplication].statusBarStyle; - CDVInAppBrowserNavigationController* nav = [[CDVInAppBrowserNavigationController alloc] + __block CDVInAppBrowserNavigationController* nav = [[CDVInAppBrowserNavigationController alloc] initWithRootViewController:self.inAppBrowserViewController]; nav.orientationDelegate = self.inAppBrowserViewController; nav.navigationBarHidden = YES; + + __weak CDVInAppBrowser* weakSelf = self; + // Run later to avoid the "took a long time" log message. dispatch_async(dispatch_get_main_queue(), ^{ - if (self.inAppBrowserViewController != nil) { - [self.viewController presentViewController:nav animated:YES completion:nil]; + if (weakSelf.inAppBrowserViewController != nil) { + [weakSelf.viewController presentViewController:nav animated:YES completion:nil]; } }); } @@ -755,12 +758,14 @@ [self.navigationDelegate browserExit]; } + __weak UIViewController* weakSelf = self; + // Run later to avoid the "took a long time" log message. dispatch_async(dispatch_get_main_queue(), ^{ - if ([self respondsToSelector:@selector(presentingViewController)]) { - [[self presentingViewController] dismissViewControllerAnimated:YES completion:nil]; + if ([weakSelf respondsToSelector:@selector(presentingViewController)]) { + [[weakSelf presentingViewController] dismissViewControllerAnimated:YES completion:nil]; } else { - [[self parentViewController] dismissViewControllerAnimated:YES completion:nil]; + [[weakSelf parentViewController] dismissViewControllerAnimated:YES completion:nil]; } }); } @@ -772,10 +777,11 @@ if (_userAgentLockToken != 0) { [self.webView loadRequest:request]; } else { + __weak CDVInAppBrowser* weakSelf = self; [CDVUserAgentUtil acquireLock:^(NSInteger lockToken) { _userAgentLockToken = lockToken; [CDVUserAgentUtil setUserAgent:_userAgent lockToken:lockToken]; - [self.webView loadRequest:request]; + [weakSelf.webView loadRequest:request]; }]; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
