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

Unified Diff: android_webview/native/aw_autofill_client.cc

Issue 2863233002: [WebView] Move files from native to browser (Closed)
Patch Set: Created 3 years, 7 months 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: 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

Powered by Google App Engine
This is Rietveld 408576698