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

Unified Diff: content/test/data/payments/payment_app.js

Issue 2785093003: Fix flaky TEST PaymentAppBrowserTest.PaymentAppInvocation. (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/data/payments/payment_app.js
diff --git a/content/test/data/payments/payment_app.js b/content/test/data/payments/payment_app.js
index 8d6068bf7a65239f8b2f4d0bcd784a1977e89bc7..ce0246420a7d16d230adb2c358fdc5a69ff162b9 100644
--- a/content/test/data/payments/payment_app.js
+++ b/content/test/data/payments/payment_app.js
@@ -2,44 +2,38 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-function sendResultToTest(data) {
arthursonzogni 2017/03/30 15:15:50 I removed this function. I don't think it is calle
- clients.matchAll({includeUncontrolled: true}).then(clients => {
- clients.forEach(client => {
- if (client.url.indexOf('payment_app_invocation.html') != -1) {
- client.postMessage(data);
- }
- });
- });
-}
-
-function getMessageFromPaymentAppWindow() {
- return new Promise((resolve, reject) => {
- var listener = self.addEventListener('message', e => {
- resolve(e.data);
- self.removeEventListener(listener);
- });
- });
-}
-
self.addEventListener('paymentrequest', e => {
- var payment_app_window;
-
// SW -------------------- openWindow() ------------------> payment_app_window
// SW <----- postMessage('payment_app_window_ready') ------ payment_app_window
// SW -------- postMessage('payment_app_request') --------> payment_app_window
// SW <-- postMessage({methodName: 'test', details: {}}) -- payment_app_window
e.respondWith(new Promise(resolve => {
+ let payment_app_window = undefined;
+ let window_ready = false;
+
+ let maybeSendPaymentRequest = function() {
+ if (payment_app_window && window_ready)
+ payment_app_window.postMessage('payment_app_request');
+ };
+
+ self.addEventListener('message', e => {
+ if (e.data == "payment_app_window_ready") {
+ window_ready = true;
+ maybeSendPaymentRequest();
+ return;
+ }
+
+ if (e.data.methodName) {
+ resolve(e.data);
+ return;
+ }
+ });
+
+ // Open a window
clients.openWindow('payment_app_window.html')
- .then(window_client => {
- payment_app_window = window_client;
- return getMessageFromPaymentAppWindow();
- })
- .then(message => {
- payment_app_window.postMessage('payment_app_request');
- return getMessageFromPaymentAppWindow();
- })
- .then(message => {
- resolve(message);
- });
+ .then(window_client => {
+ payment_app_window = window_client;
+ maybeSendPaymentRequest();
+ })
}));
});
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698