diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-14 22:48:40 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-14 22:48:40 +0000 |
commit | dbdd6027c15ebc71b8d28f9fbbcc7a2bc3d3dbd3 (patch) | |
tree | 5c206c6076e0c737f1258399e3c913c3ad2e903e /components/autofill | |
parent | 707e73ef490ae86c301e1214d2e7f0a1316eeb8d (diff) | |
download | chromium_src-dbdd6027c15ebc71b8d28f9fbbcc7a2bc3d3dbd3.zip chromium_src-dbdd6027c15ebc71b8d28f9fbbcc7a2bc3d3dbd3.tar.gz chromium_src-dbdd6027c15ebc71b8d28f9fbbcc7a2bc3d3dbd3.tar.bz2 |
Console logging for rAc developer errors.
Second half of the linked bug.
Depends on https://codereview.chromium.org/229723002/
BUG=361216
TBR=michaelbai@chromium.org
Review URL: https://codereview.chromium.org/232263002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263736 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/autofill')
8 files changed, 34 insertions, 7 deletions
diff --git a/components/autofill/content/browser/request_autocomplete_manager.cc b/components/autofill/content/browser/request_autocomplete_manager.cc index fc96528..8cc0dc5 100644 --- a/components/autofill/content/browser/request_autocomplete_manager.cc +++ b/components/autofill/content/browser/request_autocomplete_manager.cc @@ -67,6 +67,7 @@ void RequestAutocompleteManager::OnCancelRequestAutocomplete() { void RequestAutocompleteManager::ReturnAutocompleteResult( AutofillManagerDelegate::RequestAutocompleteResult result, + const base::string16& debug_message, const FormStructure* form_structure) { // autofill_driver_->GetWebContents() will be NULL when the interactive // autocomplete is closed due to a tab or browser window closing. @@ -81,6 +82,7 @@ void RequestAutocompleteManager::ReturnAutocompleteResult( host->Send(new AutofillMsg_RequestAutocompleteResult( host->GetRoutingID(), ToWebkitAutocompleteResult(result), + debug_message, form_structure ? form_structure->ToFormData() : FormData())); } diff --git a/components/autofill/content/browser/request_autocomplete_manager.h b/components/autofill/content/browser/request_autocomplete_manager.h index 164f31c..aa5d250 100644 --- a/components/autofill/content/browser/request_autocomplete_manager.h +++ b/components/autofill/content/browser/request_autocomplete_manager.h @@ -33,9 +33,11 @@ class RequestAutocompleteManager { private: // Tells the renderer that the current interactive autocomplete dialog // finished with the |result| saying if it was successful or not, and - // |form_structure| containing the filled form data. + // |form_structure| containing the filled form data. |debug_message| will + // be printed to the developer console. void ReturnAutocompleteResult( AutofillManagerDelegate::RequestAutocompleteResult result, + const base::string16& debug_message, const FormStructure* form_structure); // Shows the requestAutocomplete dialog for |source_url| with data from |form| diff --git a/components/autofill/content/browser/request_autocomplete_manager_unittest.cc b/components/autofill/content/browser/request_autocomplete_manager_unittest.cc index 7ab11b8..8d38434 100644 --- a/components/autofill/content/browser/request_autocomplete_manager_unittest.cc +++ b/components/autofill/content/browser/request_autocomplete_manager_unittest.cc @@ -51,9 +51,12 @@ class CustomTestAutofillManagerDelegate : public TestAutofillManagerDelegate { const ResultCallback& callback) OVERRIDE { if (should_simulate_success_) { FormStructure form_structure(form); - callback.Run(AutocompleteResultSuccess, &form_structure); + callback.Run(AutocompleteResultSuccess, + base::string16(), + &form_structure); } else { callback.Run(AutofillManagerDelegate::AutocompleteResultErrorDisabled, + base::string16(), NULL); } } @@ -124,7 +127,8 @@ class RequestAutocompleteManagerTest : process()->sink().GetFirstMessageMatching(kMsgID); if (!message) return false; - Tuple2<blink::WebFormElement::AutocompleteResult, FormData> autofill_param; + Tuple3<blink::WebFormElement::AutocompleteResult, base::string16, FormData> + autofill_param; AutofillMsg_RequestAutocompleteResult::Read(message, &autofill_param); *result = autofill_param.a; process()->sink().ClearMessages(); diff --git a/components/autofill/content/common/autofill_messages.h b/components/autofill/content/common/autofill_messages.h index 387a435..c734cd2 100644 --- a/components/autofill/content/common/autofill_messages.h +++ b/components/autofill/content/common/autofill_messages.h @@ -152,9 +152,11 @@ IPC_MESSAGE_ROUTED1(AutofillMsg_FormNotBlacklisted, // Sent when requestAutocomplete() finishes (either succesfully or with an // error). If it was a success, the renderer fills the form that requested -// autocomplete with the |form_data| values input by the user. -IPC_MESSAGE_ROUTED2(AutofillMsg_RequestAutocompleteResult, +// autocomplete with the |form_data| values input by the user. |message| +// is printed to the console if non-empty. +IPC_MESSAGE_ROUTED3(AutofillMsg_RequestAutocompleteResult, blink::WebFormElement::AutocompleteResult /* result */, + base::string16 /* message */, autofill::FormData /* form_data */) // Sent when Autofill manager gets the query response from the Autofill server diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc index d520754..89e5505 100644 --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc @@ -32,6 +32,7 @@ #include "net/cert/cert_status_flags.h" #include "third_party/WebKit/public/platform/WebRect.h" #include "third_party/WebKit/public/platform/WebURLRequest.h" +#include "third_party/WebKit/public/web/WebConsoleMessage.h" #include "third_party/WebKit/public/web/WebDataSource.h" #include "third_party/WebKit/public/web/WebDocument.h" #include "third_party/WebKit/public/web/WebElementCollection.h" @@ -47,6 +48,7 @@ #include "ui/events/keycodes/keyboard_codes.h" using blink::WebAutofillClient; +using blink::WebConsoleMessage; using blink::WebElement; using blink::WebElementCollection; using blink::WebFormControlElement; @@ -501,6 +503,7 @@ void AutofillAgent::OnAcceptPasswordAutofillSuggestion( void AutofillAgent::OnRequestAutocompleteResult( WebFormElement::AutocompleteResult result, + const base::string16& message, const FormData& form_data) { if (in_flight_request_form_.isNull()) return; @@ -512,6 +515,15 @@ void AutofillAgent::OnRequestAutocompleteResult( } in_flight_request_form_.finishRequestAutocomplete(result); + + if (!message.empty()) { + const base::string16 prefix(base::ASCIIToUTF16("requestAutocomplete: ")); + WebConsoleMessage console_message = WebConsoleMessage( + WebConsoleMessage::LevelLog, WebString(prefix + message)); + in_flight_request_form_.document().frame()->addMessageToConsole( + console_message); + } + in_flight_request_form_.reset(); } diff --git a/components/autofill/content/renderer/autofill_agent.h b/components/autofill/content/renderer/autofill_agent.h index bb06b0d..5b268d9 100644 --- a/components/autofill/content/renderer/autofill_agent.h +++ b/components/autofill/content/renderer/autofill_agent.h @@ -104,9 +104,11 @@ class AutofillAgent : public content::RenderViewObserver, void OnAcceptDataListSuggestion(const base::string16& value); void OnAcceptPasswordAutofillSuggestion(const base::string16& username); - // Called when interactive autocomplete finishes. + // Called when interactive autocomplete finishes. |message| is printed to + // the console if non-empty. void OnRequestAutocompleteResult( blink::WebFormElement::AutocompleteResult result, + const base::string16& message, const FormData& form_data); // Called when an autocomplete request succeeds or fails with the |result|. diff --git a/components/autofill/core/browser/autofill_manager_delegate.h b/components/autofill/core/browser/autofill_manager_delegate.h index 7b7ecd2..0e70151 100644 --- a/components/autofill/core/browser/autofill_manager_delegate.h +++ b/components/autofill/core/browser/autofill_manager_delegate.h @@ -54,7 +54,9 @@ class AutofillManagerDelegate { }; typedef base::Callback< - void(RequestAutocompleteResult, const FormStructure*)> ResultCallback; + void(RequestAutocompleteResult, + const base::string16&, + const FormStructure*)> ResultCallback; virtual ~AutofillManagerDelegate() {} diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc index c849561..f3a64b1 100644 --- a/components/autofill/core/browser/autofill_manager_unittest.cc +++ b/components/autofill/core/browser/autofill_manager_unittest.cc @@ -2860,6 +2860,7 @@ class MockAutofillManagerDelegate : public TestAutofillManagerDelegate { const ResultCallback& callback) OVERRIDE { callback.Run(user_supplied_data_ ? AutocompleteResultSuccess : AutocompleteResultErrorDisabled, + base::string16(), user_supplied_data_.get()); } |