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

Side by Side Diff: chrome/browser/android/payments/service_worker_payment_app_bridge.cc

Issue 2609103002: PaymentApp: Add PaymentAppProvider class. (Closed)
Patch Set: Remove override keyword Created 3 years, 11 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/browsing_data/browsing_data_remover_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chrome/browser/android/payments/service_worker_payment_app_bridge.h" 5 #include "chrome/browser/android/payments/service_worker_payment_app_bridge.h"
6 6
7 #include "base/android/jni_string.h" 7 #include "base/android/jni_string.h"
8 #include "base/android/scoped_java_ref.h" 8 #include "base/android/scoped_java_ref.h"
9 #include "chrome/browser/profiles/profile_manager.h" 9 #include "chrome/browser/profiles/profile_manager.h"
10 #include "components/payments/payment_app.mojom.h" 10 #include "components/payments/payment_app.mojom.h"
11 #include "content/public/browser/browser_context.h" 11 #include "content/public/browser/browser_context.h"
12 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
13 #include "content/public/browser/payment_app_context.h" 13 #include "content/public/browser/payment_app_provider.h"
14 #include "content/public/browser/storage_partition.h" 14 #include "content/public/browser/storage_partition.h"
15 #include "content/public/browser/web_contents.h" 15 #include "content/public/browser/web_contents.h"
16 #include "jni/ServiceWorkerPaymentAppBridge_jni.h" 16 #include "jni/ServiceWorkerPaymentAppBridge_jni.h"
17 17
18 using base::android::AttachCurrentThread; 18 using base::android::AttachCurrentThread;
19 using base::android::ConvertUTF8ToJavaString; 19 using base::android::ConvertUTF8ToJavaString;
20 using base::android::JavaParamRef; 20 using base::android::JavaParamRef;
21 using base::android::JavaRef; 21 using base::android::JavaRef;
22 using base::android::ScopedJavaGlobalRef; 22 using base::android::ScopedJavaGlobalRef;
23 using base::android::ScopedJavaLocalRef; 23 using base::android::ScopedJavaLocalRef;
24 24
25 namespace { 25 namespace {
26 26
27 void OnGotAllManifests(const JavaRef<jobject>& jweb_contents, 27 void OnGotAllManifests(const JavaRef<jobject>& jweb_contents,
28 const JavaRef<jobject>& jcallback, 28 const JavaRef<jobject>& jcallback,
29 content::PaymentAppContext::Manifests manifests) { 29 content::PaymentAppProvider::Manifests manifests) {
30 JNIEnv* env = AttachCurrentThread(); 30 JNIEnv* env = AttachCurrentThread();
31 31
32 for (const auto& entry : manifests) { 32 for (const auto& entry : manifests) {
33 ScopedJavaLocalRef<jobject> java_manifest = 33 ScopedJavaLocalRef<jobject> java_manifest =
34 Java_ServiceWorkerPaymentAppBridge_createManifest( 34 Java_ServiceWorkerPaymentAppBridge_createManifest(
35 env, entry.first, ConvertUTF8ToJavaString(env, entry.second->name), 35 env, entry.first, ConvertUTF8ToJavaString(env, entry.second->name),
36 entry.second->icon 36 entry.second->icon
37 ? ConvertUTF8ToJavaString(env, *entry.second->icon) 37 ? ConvertUTF8ToJavaString(env, *entry.second->icon)
38 : nullptr); 38 : nullptr);
39 for (const auto& option : entry.second->options) { 39 for (const auto& option : entry.second->options) {
(...skipping 20 matching lines...) Expand all
60 60
61 static void GetAllAppManifests(JNIEnv* env, 61 static void GetAllAppManifests(JNIEnv* env,
62 const JavaParamRef<jclass>& jcaller, 62 const JavaParamRef<jclass>& jcaller,
63 const JavaParamRef<jobject>& jweb_contents, 63 const JavaParamRef<jobject>& jweb_contents,
64 const JavaParamRef<jobject>& jcallback) { 64 const JavaParamRef<jobject>& jcallback) {
65 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 65 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
66 66
67 content::WebContents* web_contents = 67 content::WebContents* web_contents =
68 content::WebContents::FromJavaWebContents(jweb_contents); 68 content::WebContents::FromJavaWebContents(jweb_contents);
69 69
70 content::BrowserContext* browser_context = web_contents->GetBrowserContext(); 70 content::PaymentAppProvider::GetInstance()->GetAllManifests(
71 71 web_contents->GetBrowserContext(),
72 content::StoragePartition* storage_partition = 72 base::Bind(&OnGotAllManifests,
73 content::BrowserContext::GetDefaultStoragePartition(browser_context); 73 ScopedJavaGlobalRef<jobject>(env, jweb_contents),
74 74 ScopedJavaGlobalRef<jobject>(env, jcallback)));
75 content::PaymentAppContext* payment_app_context =
76 storage_partition->GetPaymentAppContext();
77
78 payment_app_context->GetAllManifests(base::Bind(
79 &OnGotAllManifests, ScopedJavaGlobalRef<jobject>(env, jweb_contents),
80 ScopedJavaGlobalRef<jobject>(env, jcallback)));
81 } 75 }
82 76
83 static void InvokePaymentApp(JNIEnv* env, 77 static void InvokePaymentApp(JNIEnv* env,
84 const JavaParamRef<jclass>& jcaller, 78 const JavaParamRef<jclass>& jcaller,
85 const JavaParamRef<jobject>& jweb_contents, 79 const JavaParamRef<jobject>& jweb_contents,
86 jlong registration_id, 80 jlong registration_id,
87 const JavaParamRef<jstring>& joption_id, 81 const JavaParamRef<jstring>& joption_id,
88 const JavaParamRef<jobjectArray>& jmethod_data) { 82 const JavaParamRef<jobjectArray>& jmethod_data) {
89 // TODO(tommyt): crbug.com/669876. Implement this 83 // TODO(tommyt): crbug.com/669876. Implement this
90 NOTIMPLEMENTED(); 84 NOTIMPLEMENTED();
91 } 85 }
92 86
93 bool RegisterServiceWorkerPaymentAppBridge(JNIEnv* env) { 87 bool RegisterServiceWorkerPaymentAppBridge(JNIEnv* env) {
94 return RegisterNativesImpl(env); 88 return RegisterNativesImpl(env);
95 } 89 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/browsing_data/browsing_data_remover_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698