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

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

Issue 2867273003: PaymentHandler: Replace GetAllManifests() with GetAllPaymentApps(). (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 unified diff | Download patch
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 <utility> 7 #include <utility>
8 8
9 #include "base/android/jni_array.h" 9 #include "base/android/jni_array.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/android/scoped_java_ref.h" 11 #include "base/android/scoped_java_ref.h"
12 #include "chrome/browser/profiles/profile_manager.h" 12 #include "chrome/browser/profiles/profile_manager.h"
13 #include "components/payments/mojom/payment_app.mojom.h" 13 #include "components/payments/mojom/payment_app.mojom.h"
14 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/payment_app_provider.h" 15 #include "content/public/browser/payment_app_provider.h"
16 #include "content/public/browser/web_contents.h" 16 #include "content/public/browser/web_contents.h"
17 #include "jni/ServiceWorkerPaymentAppBridge_jni.h" 17 #include "jni/ServiceWorkerPaymentAppBridge_jni.h"
18 18
19 using base::android::AttachCurrentThread; 19 using base::android::AttachCurrentThread;
20 using base::android::ConvertJavaStringToUTF8; 20 using base::android::ConvertJavaStringToUTF8;
21 using base::android::ConvertUTF8ToJavaString; 21 using base::android::ConvertUTF8ToJavaString;
22 using base::android::JavaParamRef; 22 using base::android::JavaParamRef;
23 using base::android::JavaRef; 23 using base::android::JavaRef;
24 using base::android::ScopedJavaGlobalRef; 24 using base::android::ScopedJavaGlobalRef;
25 using base::android::ScopedJavaLocalRef; 25 using base::android::ScopedJavaLocalRef;
26 using base::android::ToJavaArrayOfStrings;
26 using payments::mojom::PaymentAppRequest; 27 using payments::mojom::PaymentAppRequest;
27 using payments::mojom::PaymentAppRequestPtr; 28 using payments::mojom::PaymentAppRequestPtr;
28 using payments::mojom::PaymentCurrencyAmount; 29 using payments::mojom::PaymentCurrencyAmount;
29 using payments::mojom::PaymentDetailsModifier; 30 using payments::mojom::PaymentDetailsModifier;
30 using payments::mojom::PaymentDetailsModifierPtr; 31 using payments::mojom::PaymentDetailsModifierPtr;
31 using payments::mojom::PaymentItem; 32 using payments::mojom::PaymentItem;
32 using payments::mojom::PaymentMethodData; 33 using payments::mojom::PaymentMethodData;
33 using payments::mojom::PaymentMethodDataPtr; 34 using payments::mojom::PaymentMethodDataPtr;
please use gerrit instead 2017/05/09 18:54:36 Please move all the "using" statements inside of t
zino 2017/05/10 18:28:39 Done.
please use gerrit instead 2017/05/10 18:30:31 You seem to have missed this one.
zino 2017/05/11 01:34:29 Oh.. Sorry. Done.
34 35
35 namespace { 36 namespace {
36 37
37 void OnGotAllManifests(const JavaRef<jobject>& jweb_contents, 38 void OnGotAllPaymentApps(const JavaRef<jobject>& jweb_contents,
38 const JavaRef<jobject>& jcallback, 39 const JavaRef<jobject>& jcallback,
39 content::PaymentAppProvider::Manifests manifests) { 40 content::PaymentAppProvider::PaymentApps apps) {
40 JNIEnv* env = AttachCurrentThread(); 41 JNIEnv* env = AttachCurrentThread();
41 42
42 for (const auto& entry : manifests) { 43 for (const auto& app_info : apps) {
43 ScopedJavaLocalRef<jobject> java_manifest = 44 ScopedJavaLocalRef<jobject> java_instruments =
44 Java_ServiceWorkerPaymentAppBridge_createManifest( 45 Java_ServiceWorkerPaymentAppBridge_createInstrumentList(env);
45 env, entry.first, ConvertUTF8ToJavaString(env, entry.second->name), 46 for (const auto& instrument : app_info.second) {
46 entry.second->icon 47 Java_ServiceWorkerPaymentAppBridge_addInstrument(
47 ? ConvertUTF8ToJavaString(env, *entry.second->icon) 48 env, java_instruments, jweb_contents, instrument->registration_id,
48 : nullptr); 49 ConvertUTF8ToJavaString(env, instrument->instrument_key),
49 for (const auto& option : entry.second->options) { 50 ConvertUTF8ToJavaString(env, instrument->name),
50 ScopedJavaLocalRef<jobject> java_option = 51 ToJavaArrayOfStrings(env, instrument->enabled_methods));
51 Java_ServiceWorkerPaymentAppBridge_createAndAddOption(
52 env, java_manifest, ConvertUTF8ToJavaString(env, option->id),
53 ConvertUTF8ToJavaString(env, option->name),
54 option->icon ? ConvertUTF8ToJavaString(env, *option->icon)
55 : nullptr);
56 for (const auto& enabled_method : option->enabled_methods) {
57 Java_ServiceWorkerPaymentAppBridge_addEnabledMethod(
58 env, java_option, ConvertUTF8ToJavaString(env, enabled_method));
59 }
60 } 52 }
61 53 Java_ServiceWorkerPaymentAppBridge_onPaymentAppCreated(
62 Java_ServiceWorkerPaymentAppBridge_onGotManifest(env, java_manifest, 54 env, java_instruments, jweb_contents, jcallback);
63 jweb_contents, jcallback);
64 } 55 }
65 56 Java_ServiceWorkerPaymentAppBridge_onAllPaymentAppsCreated(env, jcallback);
66 Java_ServiceWorkerPaymentAppBridge_onGotAllManifests(env, jcallback);
67 } 57 }
68 58
69 void OnPaymentAppInvoked(const JavaRef<jobject>& jweb_contents, 59 void OnPaymentAppInvoked(const JavaRef<jobject>& jweb_contents,
70 const JavaRef<jobject>& jcallback, 60 const JavaRef<jobject>& jcallback,
71 payments::mojom::PaymentAppResponsePtr app_response) { 61 payments::mojom::PaymentAppResponsePtr app_response) {
72 JNIEnv* env = AttachCurrentThread(); 62 JNIEnv* env = AttachCurrentThread();
73 63
74 Java_ServiceWorkerPaymentAppBridge_onPaymentAppInvoked( 64 Java_ServiceWorkerPaymentAppBridge_onPaymentAppInvoked(
75 env, jcallback, ConvertUTF8ToJavaString(env, app_response->method_name), 65 env, jcallback, ConvertUTF8ToJavaString(env, app_response->method_name),
76 ConvertUTF8ToJavaString(env, app_response->stringified_details)); 66 ConvertUTF8ToJavaString(env, app_response->stringified_details));
77 } 67 }
78 68
79 } // namespace 69 } // namespace
80 70
81 static void GetAllAppManifests(JNIEnv* env, 71 static void GetAllPaymentApps(JNIEnv* env,
82 const JavaParamRef<jclass>& jcaller, 72 const JavaParamRef<jclass>& jcaller,
83 const JavaParamRef<jobject>& jweb_contents, 73 const JavaParamRef<jobject>& jweb_contents,
84 const JavaParamRef<jobject>& jcallback) { 74 const JavaParamRef<jobject>& jcallback) {
85 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 75 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
86 76
87 content::WebContents* web_contents = 77 content::WebContents* web_contents =
88 content::WebContents::FromJavaWebContents(jweb_contents); 78 content::WebContents::FromJavaWebContents(jweb_contents);
89 79
90 content::PaymentAppProvider::GetInstance()->GetAllManifests( 80 content::PaymentAppProvider::GetInstance()->GetAllPaymentApps(
91 web_contents->GetBrowserContext(), 81 web_contents->GetBrowserContext(),
92 base::Bind(&OnGotAllManifests, 82 base::Bind(&OnGotAllPaymentApps,
93 ScopedJavaGlobalRef<jobject>(env, jweb_contents), 83 ScopedJavaGlobalRef<jobject>(env, jweb_contents),
94 ScopedJavaGlobalRef<jobject>(env, jcallback))); 84 ScopedJavaGlobalRef<jobject>(env, jcallback)));
95 } 85 }
96 86
97 static void InvokePaymentApp(JNIEnv* env, 87 static void InvokePaymentApp(JNIEnv* env,
98 const JavaParamRef<jclass>& jcaller, 88 const JavaParamRef<jclass>& jcaller,
99 const JavaParamRef<jobject>& jweb_contents, 89 const JavaParamRef<jobject>& jweb_contents,
100 jlong registration_id, 90 jlong registration_id,
101 const JavaParamRef<jstring>& joption_id, 91 const JavaParamRef<jstring>& joption_id,
102 const JavaParamRef<jstring>& jorigin, 92 const JavaParamRef<jstring>& jorigin,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 web_contents->GetBrowserContext(), registration_id, 172 web_contents->GetBrowserContext(), registration_id,
183 std::move(app_request), 173 std::move(app_request),
184 base::Bind(&OnPaymentAppInvoked, 174 base::Bind(&OnPaymentAppInvoked,
185 ScopedJavaGlobalRef<jobject>(env, jweb_contents), 175 ScopedJavaGlobalRef<jobject>(env, jweb_contents),
186 ScopedJavaGlobalRef<jobject>(env, jcallback))); 176 ScopedJavaGlobalRef<jobject>(env, jcallback)));
187 } 177 }
188 178
189 bool RegisterServiceWorkerPaymentAppBridge(JNIEnv* env) { 179 bool RegisterServiceWorkerPaymentAppBridge(JNIEnv* env) {
190 return RegisterNativesImpl(env); 180 return RegisterNativesImpl(env);
191 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698