summaryrefslogtreecommitdiffstats
path: root/components/autofill
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-14 22:48:40 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-14 22:48:40 +0000
commitdbdd6027c15ebc71b8d28f9fbbcc7a2bc3d3dbd3 (patch)
tree5c206c6076e0c737f1258399e3c913c3ad2e903e /components/autofill
parent707e73ef490ae86c301e1214d2e7f0a1316eeb8d (diff)
downloadchromium_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')
-rw-r--r--components/autofill/content/browser/request_autocomplete_manager.cc2
-rw-r--r--components/autofill/content/browser/request_autocomplete_manager.h4
-rw-r--r--components/autofill/content/browser/request_autocomplete_manager_unittest.cc8
-rw-r--r--components/autofill/content/common/autofill_messages.h6
-rw-r--r--components/autofill/content/renderer/autofill_agent.cc12
-rw-r--r--components/autofill/content/renderer/autofill_agent.h4
-rw-r--r--components/autofill/core/browser/autofill_manager_delegate.h4
-rw-r--r--components/autofill/core/browser/autofill_manager_unittest.cc1
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());
}