Index: android_webview/native/aw_autofill_client.cc |
diff --git a/android_webview/native/aw_autofill_client.cc b/android_webview/native/aw_autofill_client.cc |
deleted file mode 100644 |
index 26f2b946f5c91cf429f4936975f27252938bb601..0000000000000000000000000000000000000000 |
--- a/android_webview/native/aw_autofill_client.cc |
+++ /dev/null |
@@ -1,287 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "android_webview/native/aw_autofill_client.h" |
- |
-#include "android_webview/browser/aw_browser_context.h" |
-#include "android_webview/browser/aw_content_browser_client.h" |
-#include "android_webview/browser/aw_form_database_service.h" |
-#include "android_webview/native/aw_contents.h" |
-#include "base/android/jni_android.h" |
-#include "base/android/jni_string.h" |
-#include "base/android/scoped_java_ref.h" |
-#include "base/logging.h" |
-#include "components/autofill/core/browser/autofill_popup_delegate.h" |
-#include "components/autofill/core/browser/suggestion.h" |
-#include "components/autofill/core/browser/webdata/autofill_webdata_service.h" |
-#include "components/autofill/core/common/autofill_pref_names.h" |
-#include "components/prefs/pref_registry_simple.h" |
-#include "components/prefs/pref_service.h" |
-#include "components/prefs/pref_service_factory.h" |
-#include "components/user_prefs/user_prefs.h" |
-#include "content/public/browser/android/content_view_core.h" |
-#include "content/public/browser/navigation_entry.h" |
-#include "content/public/browser/ssl_status.h" |
-#include "content/public/browser/web_contents.h" |
-#include "jni/AwAutofillClient_jni.h" |
-#include "ui/android/view_android.h" |
-#include "ui/gfx/geometry/rect_f.h" |
- |
-using base::android::AttachCurrentThread; |
-using base::android::ConvertUTF16ToJavaString; |
-using base::android::JavaParamRef; |
-using base::android::ScopedJavaLocalRef; |
-using content::WebContents; |
- |
-DEFINE_WEB_CONTENTS_USER_DATA_KEY(android_webview::AwAutofillClient); |
- |
-namespace android_webview { |
- |
-// Ownership: The native object is created (if autofill enabled) and owned by |
-// AwContents. The native object creates the java peer which handles most |
-// autofill functionality at the java side. The java peer is owned by Java |
-// AwContents. The native object only maintains a weak ref to it. |
-AwAutofillClient::AwAutofillClient(WebContents* contents) |
- : web_contents_(contents), save_form_data_(false) { |
- JNIEnv* env = AttachCurrentThread(); |
- ScopedJavaLocalRef<jobject> delegate; |
- delegate.Reset( |
- Java_AwAutofillClient_create(env, reinterpret_cast<intptr_t>(this))); |
- |
- AwContents* aw_contents = AwContents::FromWebContents(web_contents_); |
- aw_contents->SetAwAutofillClient(delegate); |
- java_ref_ = JavaObjectWeakGlobalRef(env, delegate); |
-} |
- |
-AwAutofillClient::~AwAutofillClient() { |
- HideAutofillPopup(); |
-} |
- |
-void AwAutofillClient::SetSaveFormData(bool enabled) { |
- save_form_data_ = enabled; |
-} |
- |
-bool AwAutofillClient::GetSaveFormData() { |
- return save_form_data_; |
-} |
- |
-PrefService* AwAutofillClient::GetPrefs() { |
- return user_prefs::UserPrefs::Get( |
- AwContentBrowserClient::GetAwBrowserContext()); |
-} |
- |
-syncer::SyncService* AwAutofillClient::GetSyncService() { |
- return nullptr; |
-} |
- |
-IdentityProvider* AwAutofillClient::GetIdentityProvider() { |
- return nullptr; |
-} |
- |
-rappor::RapporServiceImpl* AwAutofillClient::GetRapporServiceImpl() { |
- return nullptr; |
-} |
- |
-ukm::UkmService* AwAutofillClient::GetUkmService() { |
- return nullptr; |
-} |
- |
-autofill::SaveCardBubbleController* |
-AwAutofillClient::GetSaveCardBubbleController() { |
- return nullptr; |
-} |
- |
-autofill::PersonalDataManager* AwAutofillClient::GetPersonalDataManager() { |
- return nullptr; |
-} |
- |
-scoped_refptr<autofill::AutofillWebDataService> |
-AwAutofillClient::GetDatabase() { |
- android_webview::AwFormDatabaseService* service = |
- static_cast<android_webview::AwBrowserContext*>( |
- web_contents_->GetBrowserContext())->GetFormDatabaseService(); |
- return service->get_autofill_webdata_service(); |
-} |
- |
-void AwAutofillClient::ShowAutofillPopup( |
- const gfx::RectF& element_bounds, |
- base::i18n::TextDirection text_direction, |
- const std::vector<autofill::Suggestion>& suggestions, |
- base::WeakPtr<autofill::AutofillPopupDelegate> delegate) { |
- suggestions_ = suggestions; |
- delegate_ = delegate; |
- |
- // Convert element_bounds to be in screen space. |
- gfx::Rect client_area = web_contents_->GetContainerBounds(); |
- gfx::RectF element_bounds_in_screen_space = |
- element_bounds + client_area.OffsetFromOrigin(); |
- |
- ShowAutofillPopupImpl(element_bounds_in_screen_space, |
- text_direction == base::i18n::RIGHT_TO_LEFT, |
- suggestions); |
-} |
- |
-void AwAutofillClient::ShowAutofillPopupImpl( |
- const gfx::RectF& element_bounds, |
- bool is_rtl, |
- const std::vector<autofill::Suggestion>& suggestions) { |
- JNIEnv* env = AttachCurrentThread(); |
- ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
- if (obj.is_null()) |
- return; |
- |
- // We need an array of AutofillSuggestion. |
- size_t count = suggestions.size(); |
- |
- ScopedJavaLocalRef<jobjectArray> data_array = |
- Java_AwAutofillClient_createAutofillSuggestionArray(env, count); |
- |
- for (size_t i = 0; i < count; ++i) { |
- ScopedJavaLocalRef<jstring> name = |
- ConvertUTF16ToJavaString(env, suggestions[i].value); |
- ScopedJavaLocalRef<jstring> label = |
- ConvertUTF16ToJavaString(env, suggestions[i].label); |
- Java_AwAutofillClient_addToAutofillSuggestionArray( |
- env, data_array, i, name, label, suggestions[i].frontend_id); |
- } |
- ui::ViewAndroid* view_android = web_contents_->GetNativeView(); |
- if (!view_android) |
- return; |
- |
- const ScopedJavaLocalRef<jobject> current_view = anchor_view_.view(); |
- if (current_view.is_null()) |
- anchor_view_ = view_android->AcquireAnchorView(); |
- |
- const ScopedJavaLocalRef<jobject> view = anchor_view_.view(); |
- if (view.is_null()) |
- return; |
- |
- view_android->SetAnchorRect(view, element_bounds); |
- Java_AwAutofillClient_showAutofillPopup(env, obj, view, is_rtl, data_array); |
-} |
- |
-void AwAutofillClient::UpdateAutofillPopupDataListValues( |
- const std::vector<base::string16>& values, |
- const std::vector<base::string16>& labels) { |
- // Leaving as an empty method since updating autofill popup window |
- // dynamically does not seem to be a useful feature for android webview. |
- // See crrev.com/18102002 if need to implement. |
-} |
- |
-void AwAutofillClient::HideAutofillPopup() { |
- JNIEnv* env = AttachCurrentThread(); |
- ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
- if (obj.is_null()) |
- return; |
- delegate_.reset(); |
- Java_AwAutofillClient_hideAutofillPopup(env, obj); |
-} |
- |
-bool AwAutofillClient::IsAutocompleteEnabled() { |
- return GetSaveFormData(); |
-} |
- |
-void AwAutofillClient::PropagateAutofillPredictions( |
- content::RenderFrameHost* rfh, |
- const std::vector<autofill::FormStructure*>& forms) {} |
- |
-void AwAutofillClient::DidFillOrPreviewField( |
- const base::string16& autofilled_value, |
- const base::string16& profile_full_name) {} |
- |
-bool AwAutofillClient::IsContextSecure() { |
- content::SSLStatus ssl_status; |
- content::NavigationEntry* navigation_entry = |
- web_contents_->GetController().GetLastCommittedEntry(); |
- if (!navigation_entry) |
- return false; |
- |
- ssl_status = navigation_entry->GetSSL(); |
- // Note: The implementation below is a copy of the one in |
- // ChromeAutofillClient::IsContextSecure, and should be kept in sync |
- // until crbug.com/505388 gets implemented. |
- return navigation_entry->GetURL().SchemeIsCryptographic() && |
- ssl_status.certificate && |
- (!net::IsCertStatusError(ssl_status.cert_status) || |
- net::IsCertStatusMinorError(ssl_status.cert_status)) && |
- !(ssl_status.content_status & |
- content::SSLStatus::RAN_INSECURE_CONTENT); |
-} |
- |
-bool AwAutofillClient::ShouldShowSigninPromo() { |
- return false; |
-} |
- |
-void AwAutofillClient::StartSigninFlow() {} |
- |
-void AwAutofillClient::ShowHttpNotSecureExplanation() {} |
- |
-void AwAutofillClient::Dismissed(JNIEnv* env, |
- const JavaParamRef<jobject>& obj) { |
- anchor_view_.Reset(); |
-} |
- |
-void AwAutofillClient::SuggestionSelected(JNIEnv* env, |
- const JavaParamRef<jobject>& object, |
- jint position) { |
- if (delegate_) { |
- delegate_->DidAcceptSuggestion(suggestions_[position].value, |
- suggestions_[position].frontend_id, |
- position); |
- } |
-} |
- |
-void AwAutofillClient::ShowAutofillSettings() { |
- NOTIMPLEMENTED(); |
-} |
- |
-void AwAutofillClient::ShowUnmaskPrompt( |
- const autofill::CreditCard& card, |
- UnmaskCardReason reason, |
- base::WeakPtr<autofill::CardUnmaskDelegate> delegate) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void AwAutofillClient::OnUnmaskVerificationResult(PaymentsRpcResult result) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void AwAutofillClient::ConfirmSaveCreditCardLocally( |
- const autofill::CreditCard& card, |
- const base::Closure& callback) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void AwAutofillClient::ConfirmSaveCreditCardToCloud( |
- const autofill::CreditCard& card, |
- std::unique_ptr<base::DictionaryValue> legal_message, |
- bool should_cvc_be_requested, |
- const base::Closure& callback) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void AwAutofillClient::ConfirmCreditCardFillAssist( |
- const autofill::CreditCard& card, |
- const base::Closure& callback) { |
- NOTIMPLEMENTED(); |
-} |
- |
-void AwAutofillClient::LoadRiskData( |
- const base::Callback<void(const std::string&)>& callback) { |
- NOTIMPLEMENTED(); |
-} |
- |
-bool AwAutofillClient::HasCreditCardScanFeature() { |
- return false; |
-} |
- |
-void AwAutofillClient::ScanCreditCard(const CreditCardScanCallback& callback) { |
- NOTIMPLEMENTED(); |
-} |
- |
-bool RegisterAwAutofillClient(JNIEnv* env) { |
- return RegisterNativesImpl(env); |
-} |
- |
-} // namespace android_webview |