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

Unified Diff: components/autofill/content/browser/request_autocomplete_manager.cc

Issue 229723002: Better error reasons for rAc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: android Created 6 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: components/autofill/content/browser/request_autocomplete_manager.cc
diff --git a/components/autofill/content/browser/request_autocomplete_manager.cc b/components/autofill/content/browser/request_autocomplete_manager.cc
index 8353b862fc4ebdc3da29cf9f7668911b6c3df117..fc96528d46283200e84e7ef39a62d4539122b6e2 100644
--- a/components/autofill/content/browser/request_autocomplete_manager.cc
+++ b/components/autofill/content/browser/request_autocomplete_manager.cc
@@ -11,10 +11,35 @@
#include "components/autofill/core/common/form_data.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
+#include "third_party/WebKit/public/web/WebFormElement.h"
#include "url/gurl.h"
namespace autofill {
+namespace {
+
+blink::WebFormElement::AutocompleteResult ToWebkitAutocompleteResult(
+ AutofillManagerDelegate::RequestAutocompleteResult result) {
+ switch(result) {
+ case AutofillManagerDelegate::AutocompleteResultSuccess:
+ return blink::WebFormElement::AutocompleteResultSuccess;
+ case AutofillManagerDelegate::AutocompleteResultErrorDisabled:
+ return blink::WebFormElement::AutocompleteResultErrorDisabled;
+ case AutofillManagerDelegate::AutocompleteResultErrorCancel:
+ return blink::WebFormElement::AutocompleteResultErrorCancel;
+ case AutofillManagerDelegate::AutocompleteResultErrorInvalid:
+ return blink::WebFormElement::AutocompleteResultErrorInvalid;
+ // TODO(estade): update this when Blink has the proper type.
+ case AutofillManagerDelegate::AutocompleteResultErrorUnsupported:
+ return blink::WebFormElement::AutocompleteResultErrorDisabled;
+ }
+
+ NOTREACHED();
+ return blink::WebFormElement::AutocompleteResultErrorDisabled;
+}
+
+} // namespace
+
RequestAutocompleteManager::RequestAutocompleteManager(
ContentAutofillDriver* autofill_driver)
: autofill_driver_(autofill_driver), weak_ptr_factory_(this) {
@@ -29,8 +54,8 @@ void RequestAutocompleteManager::OnRequestAutocomplete(
if (!IsValidFormData(form))
return;
- base::Callback<void(const FormStructure*)> callback =
- base::Bind(&RequestAutocompleteManager::ReturnAutocompleteData,
+ AutofillManagerDelegate::ResultCallback callback =
+ base::Bind(&RequestAutocompleteManager::ReturnAutocompleteResult,
weak_ptr_factory_.GetWeakPtr());
ShowRequestAutocompleteDialog(form, frame_url, callback);
}
@@ -41,8 +66,8 @@ void RequestAutocompleteManager::OnCancelRequestAutocomplete() {
}
void RequestAutocompleteManager::ReturnAutocompleteResult(
- blink::WebFormElement::AutocompleteResult result,
- const FormData& form_data) {
+ AutofillManagerDelegate::RequestAutocompleteResult result,
+ const FormStructure* form_structure) {
// autofill_driver_->GetWebContents() will be NULL when the interactive
// autocomplete is closed due to a tab or browser window closing.
if (!autofill_driver_->GetWebContents())
@@ -53,26 +78,16 @@ void RequestAutocompleteManager::ReturnAutocompleteResult(
if (!host)
return;
- host->Send(new AutofillMsg_RequestAutocompleteResult(host->GetRoutingID(),
- result,
- form_data));
-}
-
-void RequestAutocompleteManager::ReturnAutocompleteData(
- const FormStructure* result) {
- if (!result) {
- ReturnAutocompleteResult(
- blink::WebFormElement::AutocompleteResultErrorCancel, FormData());
- } else {
- ReturnAutocompleteResult(blink::WebFormElement::AutocompleteResultSuccess,
- result->ToFormData());
- }
+ host->Send(new AutofillMsg_RequestAutocompleteResult(
+ host->GetRoutingID(),
+ ToWebkitAutocompleteResult(result),
+ form_structure ? form_structure->ToFormData() : FormData()));
}
void RequestAutocompleteManager::ShowRequestAutocompleteDialog(
const FormData& form,
const GURL& source_url,
- const base::Callback<void(const FormStructure*)>& callback) {
+ const AutofillManagerDelegate::ResultCallback& callback) {
AutofillManagerDelegate* delegate =
autofill_driver_->autofill_manager()->delegate();
delegate->ShowRequestAutocompleteDialog(form, source_url, callback);

Powered by Google App Engine
This is Rietveld 408576698