Chromium Code Reviews| Index: ios/chrome/browser/itunes_links/itunes_links_observer.mm |
| diff --git a/ios/chrome/browser/itunes_links/itunes_links_observer.mm b/ios/chrome/browser/itunes_links/itunes_links_observer.mm |
| index fc39792bbc8280871c587f2f4d7e705fac6326ae..7347f7251a089579645d18d3fe644bf57266f711 100644 |
| --- a/ios/chrome/browser/itunes_links/itunes_links_observer.mm |
| +++ b/ios/chrome/browser/itunes_links/itunes_links_observer.mm |
| @@ -8,9 +8,9 @@ |
| #include "base/logging.h" |
| #include "base/strings/sys_string_conversions.h" |
| -#import "ios/chrome/browser/storekit_launcher.h" |
| -#import "ios/web/public/web_state/web_state_observer_bridge.h" |
| +#import "ios/chrome/browser/store_kit/store_kit_tab_helper.h" |
| #include "ios/web/public/web_state/web_state.h" |
|
sdefresne
2017/03/06 19:44:03
#import (this forward-declares UIView, so it is an
pkl (ping after 24h if needed)
2017/03/07 01:17:53
Done.
|
| +#import "ios/web/public/web_state/web_state_observer_bridge.h" |
| #include "url/gurl.h" |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| @@ -28,7 +28,7 @@ |
| @end |
| @implementation ITunesLinksObserver { |
| - __weak id<StoreKitLauncher> _storeKitLauncher; |
| + web::WebState* _webState; |
| std::unique_ptr<web::WebStateObserverBridge> _webStateObserverBridge; |
| } |
| @@ -37,6 +37,7 @@ |
| if (self) { |
| _webStateObserverBridge.reset( |
| new web::WebStateObserverBridge(webState, self)); |
| + _webState = webState; |
| } |
| return self; |
| } |
| @@ -57,17 +58,22 @@ |
| return base::SysUTF8ToNSString(productID); |
| } |
| -#pragma mark - CRWWebStateObserver |
| +#pragma mark - WebStateObserverBridge |
| - (void)webState:(web::WebState*)webState didLoadPageWithSuccess:(BOOL)success { |
| GURL URL = webState->GetLastCommittedURL(); |
| NSString* productID = [ITunesLinksObserver productIDFromURL:URL]; |
| - if (productID) |
| - [_storeKitLauncher openAppStore:productID]; |
| + if (productID) { |
| + StoreKitTabHelper* tab_helper = StoreKitTabHelper::FromWebState(_webState); |
| + if (tab_helper) |
| + tab_helper->OpenAppStore(productID); |
| + } |
| } |
| - (void)setStoreKitLauncher:(id<StoreKitLauncher>)storeKitLauncher { |
| - _storeKitLauncher = storeKitLauncher; |
| + StoreKitTabHelper* tab_helper = StoreKitTabHelper::FromWebState(_webState); |
| + if (tab_helper) |
| + tab_helper->SetLauncher(storeKitLauncher); |
| } |
| @end |