| <!DOCTYPE html> |
| <html> |
| <title>Service Workers: ready</title> |
| <head> |
| <link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#navigator-service-worker-ready"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| </head> |
| <body> |
| |
| <!-- |
| |
| `navigator.serviceWorker.ready` attribute must return the result of running |
| these steps: |
| |
| 1. Let `promise` be a newly-created [promise][1]. |
| 2. Return `promise`. |
| 3. Run the following steps asynchronously: |
| 1. Let `registration` be the result of running [_ScopeMatch |
| algorithm][2] with document's url as its argument. |
| 2. If `registration` is null, then: |
| 1. Wait for the document to have a matching [registration][3]. |
| 3. If the [registration][3], represented by `registration`, for the |
| document has an [active worker][4], then: |
| 1. Resolve `promise` with the [ServiceWorker][5] object associated |
| with the [active worker][4]. |
| 2. Abort these steps. |
| 4. If the [registration][3], represented by `registration`, for the |
| document has a [worker in waiting][6], then: |
| 1. Resolve `promise` with the [ServiceWorker][5] object associated |
| with the [worker in waiting][6]. |
| 2. Abort these steps. |
| 5. Wait until the [registration][3], represented by `registration`, |
| for the document acquires a [worker in waiting][6] through a new |
| [installation process][7]. |
| 6. Resolve `promise` with the [ServiceWorker][5] object associated |
| with the [worker in waiting][6]. |
| Note that `ready` attribute is desinged in a way that the returned [promise][1] |
| will never reject. Instead, it waits until the [promise][1] resolves with a |
| newly installed [worker in waiting][6]. Hence, the `state` of the acquired |
| [`ServiceWorker`][8] object is either `installed`, `activating` or `activated`. |
| |
| |
| |
| [1]: http://goo.gl/3TobQS |
| [2]: #scope-match-algorithm |
| [3]: #registration |
| [4]: #active-worker |
| [5]: #service-worker-interface |
| [6]: #worker-in-waiting |
| [7]: #installation-process |
| [8]: #service-worker |
| |
| --> |
| |
| |
| |
| <script> |
| test(function() { |
| // not_implemented(); |
| }, "There are no tests for section ready so far."); |
| </script> |
| |
| </body> |
| </html> |
| |