Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(603)

Unified Diff: ios/web_view/internal/cwv_web_view.mm

Issue 2839093002: Implemented new Translate API for purely Objective-C clients. (Closed)
Patch Set: Added some error handling. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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];
}

Powered by Google App Engine
This is Rietveld 408576698