1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file.
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "android_webview/native/aw_autofill_manager_delegate.h"
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "android_webview/browser/aw_browser_context.h"
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "android_webview/browser/aw_content_browser_client.h"
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "android_webview/browser/aw_pref_store.h"
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "android_webview/native/aw_contents.h"
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/android/jni_android.h"
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/android/jni_string.h"
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/android/scoped_java_ref.h"
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/logging.h"
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/prefs/pref_registry_simple.h"
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/prefs/pref_service.h"
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/prefs/pref_service_builder.h"
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/content/browser/autocheckout/whitelist_manager.h"
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/browser/autofill_popup_delegate.h"
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/autofill/core/common/autofill_pref_names.h"
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "components/user_prefs/user_prefs.h"
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/browser/web_contents.h"
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/browser/web_contents_view.h"
24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "jni/AwAutofillManagerDelegate_jni.h"
25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochusing base::android::AttachCurrentThread;
27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochusing base::android::ConvertUTF16ToJavaString;
28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochusing base::android::ScopedJavaLocalRef;
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochusing content::WebContents;
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochDEFINE_WEB_CONTENTS_USER_DATA_KEY(android_webview::AwAutofillManagerDelegate);
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace android_webview {
34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Ownership: The native object is created (if autofill enabled) and owned by
36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// AwContents. The native object creates the java peer which handles most
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// autofill functionality at the java side. The java peer is owned by Java
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// AwContents. The native object only maintains a weak ref to it.
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochAwAutofillManagerDelegate::AwAutofillManagerDelegate(WebContents* contents)
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    : web_contents_(contents),
41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      save_form_data_(false) {
42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  JNIEnv* env = AttachCurrentThread();
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ScopedJavaLocalRef<jobject> delegate;
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  delegate.Reset(
45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      Java_AwAutofillManagerDelegate_create(env, reinterpret_cast<jint>(this)));
46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  AwContents* aw_contents = AwContents::FromWebContents(web_contents_);
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  aw_contents->SetAwAutofillManagerDelegate(delegate.obj());
49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  java_ref_ = JavaObjectWeakGlobalRef(env, delegate.obj());
50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochAwAutofillManagerDelegate::~AwAutofillManagerDelegate() {
53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  HideAutofillPopup();
54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::SetSaveFormData(bool enabled) {
57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  save_form_data_ = enabled;
58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
60eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool AwAutofillManagerDelegate::GetSaveFormData() {
61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return save_form_data_;
62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
64eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPrefService* AwAutofillManagerDelegate::GetPrefs() {
65eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return user_prefs::UserPrefs::Get(
66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      AwContentBrowserClient::GetAwBrowserContext());
67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
68eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
69eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochautofill::PersonalDataManager*
70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochAwAutofillManagerDelegate::GetPersonalDataManager() {
71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return NULL;
72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochautofill::autocheckout::WhitelistManager*
75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochAwAutofillManagerDelegate::GetAutocheckoutWhitelistManager() const {
76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return NULL;
77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
79eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::ShowAutofillPopup(
80eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const gfx::RectF& element_bounds,
81eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    base::i18n::TextDirection text_direction,
82eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<string16>& values,
83eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<string16>& labels,
84eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<string16>& icons,
85eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<int>& identifiers,
86eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    base::WeakPtr<autofill::AutofillPopupDelegate> delegate) {
87eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
88eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  values_ = values;
89eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  identifiers_ = identifiers;
90eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  delegate_ = delegate;
91eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
92eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Convert element_bounds to be in screen space.
93eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  gfx::Rect client_area;
94eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  web_contents_->GetView()->GetContainerBounds(&client_area);
95eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  gfx::RectF element_bounds_in_screen_space =
96eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      element_bounds + client_area.OffsetFromOrigin();
97eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
98eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ShowAutofillPopupImpl(element_bounds_in_screen_space,
99eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                        values,
100eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                        labels,
101eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                        identifiers);
102eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
103eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
104eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::ShowAutofillPopupImpl(
105eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const gfx::RectF& element_bounds,
106eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<string16>& values,
107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<string16>& labels,
108eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const std::vector<int>& identifiers) {
109eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  JNIEnv* env = AttachCurrentThread();
110eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
111eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (obj.is_null())
112eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return;
113eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
114eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // We need an array of AutofillSuggestion.
115eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  size_t count = values.size();
116eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
117eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ScopedJavaLocalRef<jobjectArray> data_array =
118eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      Java_AwAutofillManagerDelegate_createAutofillSuggestionArray(env, count);
119eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
120eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  for (size_t i = 0; i < count; ++i) {
121eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    ScopedJavaLocalRef<jstring> name = ConvertUTF16ToJavaString(env, values[i]);
122eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    ScopedJavaLocalRef<jstring> label =
123eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        ConvertUTF16ToJavaString(env, labels[i]);
124eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    Java_AwAutofillManagerDelegate_addToAutofillSuggestionArray(
125eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        env,
126eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        data_array.obj(),
127eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        i,
128eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        name.obj(),
129eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        label.obj(),
130eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        identifiers[i]);
131eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  }
132eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
133eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  Java_AwAutofillManagerDelegate_showAutofillPopup(
134eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      env,
135eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      obj.obj(),
136eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      element_bounds.x(),
137eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      element_bounds.y(), element_bounds.width(),
138eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      element_bounds.height(), data_array.obj());
139eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
140eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
141ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochvoid AwAutofillManagerDelegate::UpdateAutofillPopupDataListValues(
142ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    const std::vector<base::string16>& values,
143ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    const std::vector<base::string16>& labels) {
144ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  NOTIMPLEMENTED();
145ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch}
146ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
147eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::HideAutofillPopup() {
148eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  JNIEnv* env = AttachCurrentThread();
149eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
150eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (obj.is_null())
151eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return;
152eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  delegate_.reset();
153eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  Java_AwAutofillManagerDelegate_hideAutofillPopup(env, obj.obj());
154eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
155eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
156eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool AwAutofillManagerDelegate::IsAutocompleteEnabled() {
157eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return GetSaveFormData();
158eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
159eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
160eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::SuggestionSelected(JNIEnv* env,
161eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                                                   jobject object,
162eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                                                   jint position) {
163eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (delegate_)
164eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    delegate_->DidAcceptSuggestion(values_[position], identifiers_[position]);
165eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
166eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
167eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::HideRequestAutocompleteDialog() {
168eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
169eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
170eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
171eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::OnAutocheckoutError() {
172eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
173eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
174eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
175eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::OnAutocheckoutSuccess() {
176eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
177eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
178eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
179eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::ShowAutofillSettings() {
180eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
181eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
182eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
183eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::ConfirmSaveCreditCard(
184eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const autofill::AutofillMetrics& metric_logger,
185eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const autofill::CreditCard& credit_card,
186eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const base::Closure& save_card_callback) {
187eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
188eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
189eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
190bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdochbool AwAutofillManagerDelegate::ShowAutocheckoutBubble(
191eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const gfx::RectF& bounding_box,
192eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    bool is_google_user,
1937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    const base::Callback<void(autofill::AutocheckoutBubbleState)>& callback) {
194eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
195bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  return false;
196eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
197eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
198eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::HideAutocheckoutBubble() {
199eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
200eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
201eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
202eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::ShowRequestAutocompleteDialog(
203eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const autofill::FormData& form,
204eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const GURL& source_url,
205eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    autofill::DialogType dialog_type,
206eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const base::Callback<void(const autofill::FormStructure*,
207eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                              const std::string&)>& callback) {
208eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
209eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
210eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
211eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::AddAutocheckoutStep(
212eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    autofill::AutocheckoutStepType step_type) {
213eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
214eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
215eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
216eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid AwAutofillManagerDelegate::UpdateAutocheckoutStep(
217eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    autofill::AutocheckoutStepType step_type,
218eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    autofill::AutocheckoutStepStatus step_status) {
219eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTIMPLEMENTED();
220eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
221eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
222eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool RegisterAwAutofillManagerDelegate(JNIEnv* env) {
223eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return RegisterNativesImpl(env) >= 0;
224eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
225eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
226eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace android_webview
227