OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "android_webview/native/aw_form_database.h" | 5 #include "android_webview/native/aw_form_database.h" |
6 | 6 |
7 #include "android_webview/browser/aw_browser_context.h" | 7 #include "android_webview/browser/aw_browser_context.h" |
8 #include "android_webview/browser/aw_content_browser_client.h" | 8 #include "android_webview/browser/aw_content_browser_client.h" |
| 9 #include "android_webview/browser/aw_form_database_service.h" |
9 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
10 #include "base/logging.h" | 11 #include "base/logging.h" |
11 #include "base/time.h" | 12 #include "base/time.h" |
12 #include "components/autofill/browser/webdata/autofill_webdata_service.h" | 13 #include "components/autofill/browser/webdata/autofill_webdata_service.h" |
13 #include "jni/AwFormDatabase_jni.h" | 14 #include "jni/AwFormDatabase_jni.h" |
14 | 15 |
| 16 // static |
| 17 scoped_refptr<autofill::AutofillWebDataService> |
| 18 autofill::AutofillWebDataService::FromBrowserContext( |
| 19 content::BrowserContext* context) { |
| 20 |
| 21 DCHECK(context); |
| 22 android_webview::AwFormDatabaseService* service = |
| 23 static_cast<android_webview::AwBrowserContext*>( |
| 24 context)->GetFormDatabaseService(); |
| 25 DCHECK(service); |
| 26 return service->get_autofill_webdata_service(); |
| 27 } |
| 28 |
15 namespace android_webview { | 29 namespace android_webview { |
16 | 30 |
| 31 namespace { |
| 32 |
| 33 AwFormDatabaseService* GetFormDatabaseService() { |
| 34 |
| 35 AwBrowserContext* context = AwContentBrowserClient::GetAwBrowserContext(); |
| 36 AwFormDatabaseService* service = context->GetFormDatabaseService(); |
| 37 return service; |
| 38 } |
| 39 |
| 40 } // anonymous namespace |
| 41 |
| 42 |
| 43 // static |
| 44 jboolean HasFormData(JNIEnv*, jclass) { |
| 45 return GetFormDatabaseService()->HasFormData(); |
| 46 } |
| 47 |
17 // static | 48 // static |
18 void ClearFormData(JNIEnv*, jclass) { | 49 void ClearFormData(JNIEnv*, jclass) { |
19 AwBrowserContext* context = AwContentBrowserClient::GetAwBrowserContext(); | 50 GetFormDatabaseService()->ClearFormData(); |
20 DCHECK(context); | |
21 | |
22 autofill::AutofillWebDataService* service = | |
23 autofill::AutofillWebDataService::FromBrowserContext(context).get(); | |
24 if (service == NULL) { | |
25 LOG(WARNING) << "No webdata service found, ignoring ClearFormData"; | |
26 return; | |
27 } | |
28 | |
29 base::Time begin; | |
30 base::Time end = base::Time::Max(); | |
31 service->RemoveFormElementsAddedBetween(begin, end); | |
32 service->RemoveAutofillDataModifiedBetween(begin, end); | |
33 } | 51 } |
34 | 52 |
35 bool RegisterFormDatabase(JNIEnv* env) { | 53 bool RegisterAwFormDatabase(JNIEnv* env) { |
36 return RegisterNativesImpl(env) >= 0; | 54 return RegisterNativesImpl(env) >= 0; |
37 } | 55 } |
38 | 56 |
39 } // namespace android_webview | 57 } // namespace android_webview |
OLD | NEW |