summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjyquinn <jyquinn@chromium.org>2015-04-15 11:36:43 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-15 18:45:51 +0000
commit92d84dab53d855a8a7bd9f8922d5f70d840f93bf (patch)
tree19e3595905dab776f57f1719f1321a640f9dd4fe
parent61b860c0b5bf89c0647ea488cf787c79924bd703 (diff)
downloadchromium_src-92d84dab53d855a8a7bd9f8922d5f70d840f93bf.zip
chromium_src-92d84dab53d855a8a7bd9f8922d5f70d840f93bf.tar.gz
chromium_src-92d84dab53d855a8a7bd9f8922d5f70d840f93bf.tar.bz2
Complete WebStateObserverBridge and follow Cocoa naming style.
Adds remaining WebStateObserver methods to WebStateObserverBridge and updates CRWWebStateObserver protocol methods to follow Cocoa style guidelines for naming delegate methods. Review URL: https://codereview.chromium.org/1079693002 Cr-Commit-Position: refs/heads/master@{#325277}
-rw-r--r--components/favicon/ios/web_favicon_driver.cc2
-rw-r--r--components/favicon/ios/web_favicon_driver.h2
-rw-r--r--components/translate/ios/browser/language_detection_controller.h2
-rw-r--r--components/translate/ios/browser/language_detection_controller.mm2
-rw-r--r--ios/chrome/browser/autofill/form_input_accessory_view_controller.mm18
-rw-r--r--ios/chrome/browser/autofill/form_suggestion_controller.mm2
-rw-r--r--ios/web/public/web_state/web_state_observer.h24
-rw-r--r--ios/web/public/web_state/web_state_observer_bridge.h74
-rw-r--r--ios/web/web_state/web_state_observer_bridge.mm91
9 files changed, 160 insertions, 57 deletions
diff --git a/components/favicon/ios/web_favicon_driver.cc b/components/favicon/ios/web_favicon_driver.cc
index b4eaac7..3125f50 100644
--- a/components/favicon/ios/web_favicon_driver.cc
+++ b/components/favicon/ios/web_favicon_driver.cc
@@ -113,7 +113,7 @@ WebFaviconDriver::WebFaviconDriver(web::WebState* web_state,
WebFaviconDriver::~WebFaviconDriver() {
}
-void WebFaviconDriver::FaviconURLUpdated(
+void WebFaviconDriver::FaviconUrlUpdated(
const std::vector<web::FaviconURL>& candidates) {
DCHECK(!candidates.empty());
OnUpdateFaviconURL(FaviconURLsFromWebFaviconURLs(candidates));
diff --git a/components/favicon/ios/web_favicon_driver.h b/components/favicon/ios/web_favicon_driver.h
index 343d2be..b33cac9 100644
--- a/components/favicon/ios/web_favicon_driver.h
+++ b/components/favicon/ios/web_favicon_driver.h
@@ -52,7 +52,7 @@ class WebFaviconDriver : public web::WebStateObserver,
~WebFaviconDriver() override;
// web::WebStateObserver implementation.
- void FaviconURLUpdated(
+ void FaviconUrlUpdated(
const std::vector<web::FaviconURL>& candidates) override;
// Returns the active navigation entry's favicon.
diff --git a/components/translate/ios/browser/language_detection_controller.h b/components/translate/ios/browser/language_detection_controller.h
index 5c1b075..ec98439 100644
--- a/components/translate/ios/browser/language_detection_controller.h
+++ b/components/translate/ios/browser/language_detection_controller.h
@@ -78,7 +78,7 @@ class LanguageDetectionController : public web::WebStateObserver {
// web::WebStateObserver implementation:
void PageLoaded(
web::PageLoadCompletionStatus load_completion_status) override;
- void URLHashChanged() override;
+ void UrlHashChanged() override;
void HistoryStateChanged() override;
void WebStateDestroyed() override;
diff --git a/components/translate/ios/browser/language_detection_controller.mm b/components/translate/ios/browser/language_detection_controller.mm
index 24d7a80..69f37a5 100644
--- a/components/translate/ios/browser/language_detection_controller.mm
+++ b/components/translate/ios/browser/language_detection_controller.mm
@@ -133,7 +133,7 @@ void LanguageDetectionController::PageLoaded(
StartLanguageDetection();
}
-void LanguageDetectionController::URLHashChanged() {
+void LanguageDetectionController::UrlHashChanged() {
StartLanguageDetection();
}
diff --git a/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm b/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm
index 8f82627..97cf164 100644
--- a/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm
+++ b/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm
@@ -362,20 +362,20 @@ bool ComputeFramesOfKeyboardParts(UIView* inputAccessoryView,
#pragma mark -
#pragma mark CRWWebStateObserver
-- (void)pageLoaded:(web::WebState*)webState {
+- (void)webStateDidLoadPage:(web::WebState*)webState {
[self reset];
}
-- (void)formActivity:(web::WebState*)webState
- formName:(const std::string&)formName
- fieldName:(const std::string&)fieldName
- type:(const std::string&)type
- value:(const std::string&)value
- keyCode:(int)keyCode
- error:(BOOL)error {
+- (void)webState:(web::WebState*)webState
+ didRegisterFormActivityWithFormNamed:(const std::string&)formName
+ fieldName:(const std::string&)fieldName
+ type:(const std::string&)type
+ value:(const std::string&)value
+ keyCode:(int)keyCode
+ inputMissing:(BOOL)inputMissing {
web::URLVerificationTrustLevel trustLevel;
const GURL pageURL(webState->GetCurrentURL(&trustLevel));
- if (error || trustLevel != web::URLVerificationTrustLevel::kAbsolute ||
+ if (inputMissing || trustLevel != web::URLVerificationTrustLevel::kAbsolute ||
!web::UrlHasWebScheme(pageURL) || !webState->ContentIsHTML()) {
[self reset];
return;
diff --git a/ios/chrome/browser/autofill/form_suggestion_controller.mm b/ios/chrome/browser/autofill/form_suggestion_controller.mm
index e3eb8ae..d8a0a52 100644
--- a/ios/chrome/browser/autofill/form_suggestion_controller.mm
+++ b/ios/chrome/browser/autofill/form_suggestion_controller.mm
@@ -133,7 +133,7 @@ AutofillSuggestionState::AutofillSuggestionState(const std::string& form_name,
[self detachFromWebState];
}
-- (void)pageLoaded:(web::WebState*)webState {
+- (void)webStateDidLoadPage:(web::WebState*)webState {
[self processPage:webState];
}
diff --git a/ios/web/public/web_state/web_state_observer.h b/ios/web/public/web_state/web_state_observer.h
index da00148..cd254f8 100644
--- a/ios/web/public/web_state/web_state_observer.h
+++ b/ios/web/public/web_state/web_state_observer.h
@@ -10,6 +10,8 @@
#include "base/macros.h"
+class GURL;
+
namespace web {
struct FaviconURL;
@@ -44,15 +46,15 @@ class WebStateObserver {
virtual void InsterstitialDismissed() {}
// Called on URL hash change events.
- virtual void URLHashChanged() {}
+ virtual void UrlHashChanged() {}
// Called on history state change events.
virtual void HistoryStateChanged() {}
- // Called on form submission. |user_interaction| is true if the user
+ // Called on form submission. |user_initiated| is true if the user
// interacted with the page.
virtual void DocumentSubmitted(const std::string& form_name,
- bool user_interaction) {}
+ bool user_initiated) {}
// Called when the user is typing on a form field, with |error| indicating if
// there is any error when parsing the form field information.
@@ -62,10 +64,18 @@ class WebStateObserver {
const std::string& type,
const std::string& value,
int key_code,
- bool error) {}
-
- // Invoked when new FaviconURL candidates are received.
- virtual void FaviconURLUpdated(const std::vector<FaviconURL>& candidates) {}
+ bool input_missing) {}
+
+ // Notifies the observer that the requestAutocomplete API was invoked from
+ // |source_url| for the form with the specified |form_name|.
+ // |user_initiated| indicates whether the API was invoked in response to a
+ // user interaction.
+ virtual void AutocompleteRequested(const GURL& source_url,
+ const std::string& form_name,
+ bool user_initiated) {}
+
+ // Invoked when new favicon URL candidates are received.
+ virtual void FaviconUrlUpdated(const std::vector<FaviconURL>& candidates) {}
// Invoked when the WebState is being destroyed. Gives subclasses a chance
// to cleanup.
diff --git a/ios/web/public/web_state/web_state_observer_bridge.h b/ios/web/public/web_state/web_state_observer_bridge.h
index 0a2d2b9..bc34bd6 100644
--- a/ios/web/public/web_state/web_state_observer_bridge.h
+++ b/ios/web/public/web_state/web_state_observer_bridge.h
@@ -12,25 +12,55 @@
#import "base/ios/weak_nsobject.h"
#import "ios/web/public/web_state/web_state_observer.h"
+class GURL;
+
// Observes page lifecyle events from Objective-C. To use as a
// web::WebStateObserver, wrap in a web::WebStateObserverBridge.
-// NOTE: This is far from complete. Add new methods as needed.
@protocol CRWWebStateObserver<NSObject>
@optional
+// Invoked by WebStateObserverBridge::NavigationItemCommitted.
+- (void)webState:(web::WebState*)webState
+ didCommitNavigationWithDetails:
+ (const web::LoadCommittedDetails&)load_details;
+
+// Invoked by WebStateObserverBridge::PageLoaded.
+- (void)webStateDidLoadPage:(web::WebState*)webState;
+
+// Invoked by WebStateObserverBridge::InterstitialDismissed.
+- (void)webStateDidDismissInterstitial:(web::WebState*)webState;
+
+// Invoked by WebStateObserverBridge::UrlHashChanged.
+- (void)webStateDidChangeURLHash:(web::WebState*)webState;
+
+// Invoked by WebStateObserverBridge::HistoryStateChanged.
+- (void)webStateDidChangeHistoryState:(web::WebState*)webState;
+
+// Invoked by WebStateObserverBridge::DocumentSubmitted.
+- (void)webState:(web::WebState*)webState
+ didSubmitDocumentWithFormNamed:(const std::string&)formName
+ userInitiated:(BOOL)userInitiated;
+
+// Invoked by WebStateObserverBridge::FormActivityRegistered.
+// TODO(ios): Method should take data transfer object rather than parameters.
+- (void)webState:(web::WebState*)webState
+ didRegisterFormActivityWithFormNamed:(const std::string&)formName
+ fieldName:(const std::string&)fieldName
+ type:(const std::string&)type
+ value:(const std::string&)value
+ keyCode:(int)keyCode
+ inputMissing:(BOOL)inputMissing;
+
+// Invoked by WebStateObserverBridge::AutocompleteRequested.
+- (void)webState:(web::WebState*)webState
+ requestAutocompleteForFormNamed:(const std::string&)formName
+ sourceURL:(const GURL&)sourceURL
+ userInitiated:(BOOL)userInitiated;
+
+// Invoked by WebStateObserverBridge::FaviconUrlUpdated.
+- (void)webState:(web::WebState*)webState
+ didUpdateFaviconURLCandidates:
+ (const std::vector<web::FaviconURL>&)candidates;
-// Page lifecycle methods. These are equivalent to the corresponding methods
-// in web::WebStateObserver.
-- (void)pageLoaded:(web::WebState*)webState;
-- (void)documentSubmitted:(web::WebState*)webState
- formName:(const std::string&)formName
- userInteraction:(BOOL)userInteraction;
-- (void)formActivity:(web::WebState*)webState
- formName:(const std::string&)formName
- fieldName:(const std::string&)fieldName
- type:(const std::string&)type
- value:(const std::string&)value
- keyCode:(int)keyCode
- error:(BOOL)error;
// Note: after |webStateDestroyed:| is invoked, the WebState being observed
// is no longer valid.
- (void)webStateDestroyed:(web::WebState*)webState;
@@ -51,18 +81,26 @@ class WebStateObserverBridge : public web::WebStateObserver {
id<CRWWebStateObserver> observer);
~WebStateObserverBridge() override;
- // web::WebStateObserver:
- // NOTE: This is far from complete. Add new methods as needed.
+ // web::WebStateObserver methods.
+ void NavigationItemCommitted(
+ const LoadCommittedDetails& load_details) override;
void PageLoaded(
web::PageLoadCompletionStatus load_completion_status) override;
+ void InsterstitialDismissed() override;
+ void UrlHashChanged() override;
+ void HistoryStateChanged() override;
void DocumentSubmitted(const std::string& form_name,
- bool user_interaction) override;
+ bool user_initiated) override;
void FormActivityRegistered(const std::string& form_name,
const std::string& field_name,
const std::string& type,
const std::string& value,
int key_code,
- bool error) override;
+ bool input_missing) override;
+ void AutocompleteRequested(const GURL& source_url,
+ const std::string& form_name,
+ bool user_initiated) override;
+ void FaviconUrlUpdated(const std::vector<FaviconURL>& candidates) override;
void WebStateDestroyed() override;
private:
diff --git a/ios/web/web_state/web_state_observer_bridge.mm b/ios/web/web_state/web_state_observer_bridge.mm
index c0b2db4..eef1be7 100644
--- a/ios/web/web_state/web_state_observer_bridge.mm
+++ b/ios/web/web_state/web_state_observer_bridge.mm
@@ -14,20 +14,48 @@ WebStateObserverBridge::WebStateObserverBridge(web::WebState* webState,
WebStateObserverBridge::~WebStateObserverBridge() {
}
+void WebStateObserverBridge::NavigationItemCommitted(
+ const web::LoadCommittedDetails& load_detatils) {
+ SEL selector = @selector(webState:didCommitNavigationWithDetails:);
+ if ([observer_ respondsToSelector:selector]) {
+ [observer_ webState:web_state()
+ didCommitNavigationWithDetails:load_detatils];
+ }
+}
+
void WebStateObserverBridge::PageLoaded(
web::PageLoadCompletionStatus load_completion_status) {
- SEL selector = @selector(pageLoaded:);
+ SEL selector = @selector(webStateDidLoadPage:);
+ if ([observer_ respondsToSelector:selector])
+ [observer_ webStateDidLoadPage:web_state()];
+}
+
+void WebStateObserverBridge::InsterstitialDismissed() {
+ SEL selector = @selector(webStateDidDismissInterstitial:);
+ if ([observer_ respondsToSelector:selector])
+ [observer_ webStateDidDismissInterstitial:web_state()];
+}
+
+void WebStateObserverBridge::UrlHashChanged() {
+ SEL selector = @selector(webStateDidChangeURLHash:);
+ if ([observer_ respondsToSelector:selector])
+ [observer_ webStateDidChangeURLHash:web_state()];
+}
+
+void WebStateObserverBridge::HistoryStateChanged() {
+ SEL selector = @selector(webStateDidChangeHistoryState:);
if ([observer_ respondsToSelector:selector])
- [observer_ pageLoaded:web_state()];
+ [observer_ webStateDidChangeHistoryState:web_state()];
}
-void WebStateObserverBridge::DocumentSubmitted(
- const std::string& form_name, bool user_interaction) {
- SEL selector = @selector(documentSubmitted:formName:userInteraction:);
+void WebStateObserverBridge::DocumentSubmitted(const std::string& form_name,
+ bool user_initiated) {
+ SEL selector =
+ @selector(webState:didSubmitDocumentWithFormNamed:userInitiated:);
if ([observer_ respondsToSelector:selector]) {
- [observer_ documentSubmitted:web_state()
- formName:form_name
- userInteraction:user_interaction];
+ [observer_ webState:web_state()
+ didSubmitDocumentWithFormNamed:form_name
+ userInitiated:user_initiated];
}
}
@@ -37,20 +65,47 @@ void WebStateObserverBridge::FormActivityRegistered(
const std::string& type,
const std::string& value,
int key_code,
- bool error) {
- SEL selector =
- @selector(formActivity:formName:fieldName:type:value:keyCode:error:);
+ bool input_missing) {
+ SEL selector = @selector(webState:
+ didRegisterFormActivityWithFormNamed:
+ fieldName:
+ type:
+ value:
+ keyCode:
+ inputMissing:);
if ([observer_ respondsToSelector:selector]) {
- [observer_ formActivity:web_state()
- formName:form_name
- fieldName:field_name
- type:type
- value:value
- keyCode:key_code
- error:error];
+ [observer_ webState:web_state()
+ didRegisterFormActivityWithFormNamed:form_name
+ fieldName:field_name
+ type:type
+ value:value
+ keyCode:key_code
+ inputMissing:input_missing];
}
}
+void WebStateObserverBridge::AutocompleteRequested(const GURL& source_url,
+ const std::string& form_name,
+ bool user_initiated) {
+ SEL selector = @selector(webState:
+ requestAutocompleteForFormNamed:
+ sourceURL:
+ userInitiated:);
+ if ([observer_ respondsToSelector:selector]) {
+ [observer_ webState:web_state()
+ requestAutocompleteForFormNamed:form_name
+ sourceURL:source_url
+ userInitiated:user_initiated];
+ }
+}
+
+void WebStateObserverBridge::FaviconUrlUpdated(
+ const std::vector<FaviconURL>& candidates) {
+ SEL selector = @selector(webState:didUpdateFaviconURLCandidates:);
+ if ([observer_ respondsToSelector:selector])
+ [observer_ webState:web_state() didUpdateFaviconURLCandidates:candidates];
+}
+
void WebStateObserverBridge::WebStateDestroyed() {
SEL selector = @selector(webStateDestroyed:);
if ([observer_ respondsToSelector:selector]) {