Chromium Code Reviews| Index: ios/web_view/internal/cwv_web_view.mm |
| diff --git a/ios/web_view/internal/cwv_web_view.mm b/ios/web_view/internal/cwv_web_view.mm |
| index 503cadd517ccbf86bb37f8a44104ccd04d337d73..ede3291bb1b3ff6f4e3de9554ce4b70ff1e2de0e 100644 |
| --- a/ios/web_view/internal/cwv_web_view.mm |
| +++ b/ios/web_view/internal/cwv_web_view.mm |
| @@ -23,6 +23,7 @@ |
| #import "ios/web_view/internal/cwv_html_element_internal.h" |
| #import "ios/web_view/internal/cwv_navigation_action_internal.h" |
| #import "ios/web_view/internal/cwv_web_view_configuration_internal.h" |
| +#import "ios/web_view/internal/translate/cwv_translation_controller_internal.h" |
| #import "ios/web_view/internal/translate/web_view_translate_client.h" |
| #include "ios/web_view/internal/web_view_browser_state.h" |
| #import "ios/web_view/internal/web_view_java_script_dialog_presenter.h" |
| @@ -82,9 +83,9 @@ static NSString* gUserAgentProduct = nil; |
| @synthesize configuration = _configuration; |
| @synthesize navigationDelegate = _navigationDelegate; |
| -@synthesize translationDelegate = _translationDelegate; |
| @synthesize estimatedProgress = _estimatedProgress; |
| @synthesize UIDelegate = _UIDelegate; |
| +@synthesize translationController = _translationController; |
| + (NSString*)userAgentProduct { |
| return gUserAgentProduct; |
| @@ -187,12 +188,6 @@ static NSString* gUserAgentProduct = nil; |
| _javaScriptDialogPresenter->SetUIDelegate(_UIDelegate); |
| } |
| -- (void)setTranslationDelegate:(id<CWVTranslateDelegate>)translationDelegate { |
| - _translationDelegate = translationDelegate; |
| - ios_web_view::WebViewTranslateClient::FromWebState(_webState.get()) |
| - ->set_translate_delegate(translationDelegate); |
| -} |
| - |
| // ----------------------------------------------------------------------- |
| // WebStateObserver implementation. |
| @@ -290,6 +285,20 @@ static NSString* gUserAgentProduct = nil; |
| return _javaScriptDialogPresenter.get(); |
| } |
| +#pragma mark - Translation |
| + |
| +- (CWVTranslationController*)translationController { |
|
Hiroshi Ichikawa
2017/04/26 08:40:57
When -resetWebStateWithSessionStorage: is called a
jzw1
2017/04/27 04:54:01
Are you OK if i just nil it out _translationContro
Hiroshi Ichikawa
2017/04/27 05:35:42
I believe it doesn't work. Two cases:
1. The user
jzw1
2017/04/27 07:03:18
What if I just set a webState on translationContro
Hiroshi Ichikawa
2017/04/27 07:17:22
Yeah it looks calling -[CWVTranslationController s
|
| + if (!_translationController) { |
| + // Initialize Translate. |
| + ios_web_view::WebViewTranslateClient::CreateForWebState(_webState.get()); |
| + ios_web_view::WebViewTranslateClient* translateClient = |
| + ios_web_view::WebViewTranslateClient::FromWebState(_webState.get()); |
| + _translationController = [[CWVTranslationController alloc] |
| + initWithWebViewTranslateClient:translateClient]; |
| + } |
| + return _translationController; |
| +} |
| + |
| #pragma mark - Preserving and Restoring State |
| - (void)encodeRestorableStateWithCoder:(NSCoder*)coder { |
| @@ -341,9 +350,6 @@ static NSString* gUserAgentProduct = nil; |
| base::MakeUnique<ios_web_view::WebViewJavaScriptDialogPresenter>(self, |
| nullptr); |
| - // Initialize Translate. |
| - ios_web_view::WebViewTranslateClient::CreateForWebState(_webState.get()); |
| - |
| [self addInternalWebViewAsSubview]; |
| } |