| <!DOCTYPE html> |
| <!-- |
| Copyright 2020 The Chromium Authors |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| <head> |
| <meta charset="utf-8"> |
| <meta |
| name="viewport" |
| content="width=device-width, initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5"> |
| <title>Max Pay</title> |
| </head> |
| <body> |
| <button onclick="confirm()" id="confirmButton">confirm</button> |
| <button onclick="cancel()">cancel</button> |
| <button onclick="fail()">fail</button> |
| <div>Messages:</div> |
| <pre id="log"></pre> |
| </body> |
| |
| <script> |
| let window_client_ready = false; |
| |
| /** |
| * Insert a message to the widget called 'log'. |
| * @param {string} text - the text that is intended to be inserted |
| * into the log. |
| */ |
| function updateLogView(text) { |
| const messageElement = document.getElementById('log'); |
| messageElement.innerText = text + '\n' + messageElement.innerText; |
| } |
| |
| function confirm() { |
| navigator.serviceWorker.controller.postMessage('confirm'); |
| updateLogView('confirm is invoked.'); |
| return 'confirmed'; |
| } |
| |
| function fail() { |
| navigator.serviceWorker.controller.postMessage('fail'); |
| updateLogView('fail is invoked.'); |
| return 'failed'; |
| } |
| |
| function cancel() { |
| navigator.serviceWorker.controller.postMessage('cancel'); |
| updateLogView('cancel is invoked.'); |
| return 'canceled'; |
| } |
| |
| function isWindowClientReady() { |
| return window_client_ready; |
| } |
| |
| window.onload = function() { |
| navigator.serviceWorker.controller.postMessage('app_is_ready'); |
| updateLogView('app is ready.'); |
| } |
| |
| navigator.serviceWorker.addEventListener('message', (evt) => { |
| if (!evt.data) { |
| updateLogView('Received an empty message'); |
| return; |
| } |
| |
| if (evt.data === 'window_client_ready') { |
| window_client_ready = true; |
| } |
| updateLogView(evt.data); |
| }); |
| </script> |