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

Unified Diff: chrome/renderer/autofill/autofill_agent.cc

Issue 8490017: Setting up external delegate calls to allow a future delegate to handle autofill (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Adding code review changes Created 9 years, 1 month 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: chrome/renderer/autofill/autofill_agent.cc
diff --git a/chrome/renderer/autofill/autofill_agent.cc b/chrome/renderer/autofill/autofill_agent.cc
index f293635e2f12f19b1138d00a1f81ae2c817d37e4..c84843b07e09c0dcb0814550b65e91fd7bd68288 100644
--- a/chrome/renderer/autofill/autofill_agent.cc
+++ b/chrome/renderer/autofill/autofill_agent.cc
@@ -19,6 +19,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/l10n/l10n_util.h"
@@ -59,6 +60,7 @@ AutofillAgent::AutofillAgent(
suggestions_clear_index_(-1),
suggestions_options_index_(-1),
has_shown_autofill_popup_for_current_edit_(false),
+ has_external_delegate_(false),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
render_view->GetWebView()->setAutofillClient(this);
}
@@ -74,6 +76,8 @@ bool AutofillAgent::OnMessageReceived(const IPC::Message& message) {
OnFieldTypePredictionsAvailable)
IPC_MESSAGE_HANDLER(AutofillMsg_SelectAutofillSuggestionAtIndex,
OnSelectAutofillSuggestionAtIndex)
+ IPC_MESSAGE_HANDLER(AutofillMsg_SetHasExternalDelegate,
+ OnSetHasExternalDelegate)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -124,6 +128,9 @@ bool AutofillAgent::InputElementClicked(const WebInputElement& element,
}
bool AutofillAgent::InputElementLostFocus() {
+ if (has_external_delegate_)
John Grabowski 2011/11/08 20:46:02 Can you confirm this is called when, for example,
csharp 2011/11/09 16:18:37 This function is not called in both of these cases
Ilya Sherman 2011/11/09 20:34:19 My hunch is that we'll want to add something along
+ Send(new AutofillHostMsg_HideAutofillPopup(routing_id()));
+
return false;
}
@@ -315,11 +322,24 @@ void AutofillAgent::OnSuggestionsReturned(int query_id,
separator_index = values.size();
}
- // Send to WebKit for display.
if (!v.empty() && !autofill_query_element_.isNull() &&
autofill_query_element_.isFocusable()) {
- web_view->applyAutofillSuggestions(
- autofill_query_element_, v, l, i, ids, separator_index);
+ if (has_external_delegate_) {
+ // Send to an external delegate for display.
+ WebKit::WebRect autofill_element_rect =
+ autofill_query_element_.getRect();
+
+ Send(new AutofillHostMsg_AutofillElementBounds(
+ routing_id(),
+ autofill_element_rect.x,
+ autofill_element_rect.y,
+ autofill_element_rect.width,
+ autofill_element_rect.height));
+ } else {
+ // Send to WebKit for display.
+ web_view->applyAutofillSuggestions(
+ autofill_query_element_, v, l, i, ids, separator_index);
+ }
}
Send(new AutofillHostMsg_DidShowAutofillSuggestions(
@@ -362,6 +382,10 @@ void AutofillAgent::OnSelectAutofillSuggestionAtIndex(int listIndex) {
// render_view()->webview()->selectAutofillSuggestionAtIndex(listIndex);
}
+void AutofillAgent::OnSetHasExternalDelegate(bool has_external_delegate) {
+ has_external_delegate_ = has_external_delegate;
+}
+
void AutofillAgent::ShowSuggestions(const WebInputElement& element,
bool autofill_on_empty_values,
bool requires_caret_at_end,
« chrome/browser/autofill/autofill_manager.h ('K') | « chrome/renderer/autofill/autofill_agent.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698