Go to file
Sonu Kapoor 00efacf561 feat(service-worker): support timeout in `registerWhenStable` SW registration strategy (#35870)
Previously, when using the `registerWhenStable` ServiceWorker
registration strategy (which is also the default) Angular would wait
indefinitely for the [app to stabilize][1], before registering the
ServiceWorker script. This could lead to a situation where the
ServiceWorker would never be registered when there was a long-running
task (such as an interval or recurring timeout).

Such tasks can often be started by a 3rd-party dependency (beyond the
developer's control or even without them realizing). In addition, this
situation is particularly hard to detect, because the ServiceWorker is
typically not used during development and on production builds a
previous ServiceWorker instance might be already active.

This commit enhances the `registerWhenStable` registration strategy by
adding support for an optional `<timeout>` argument, which guarantees
that the ServiceWorker will be registered when the timeout expires, even
if the app has not stabilized yet.

For example, with `registerWhenStable:5000` the ServiceWorker will be
registered as soon as the app stabilizes or after 5 seconds if the app
has not stabilized by then.

Related to #34464.

[1]: https://angular.io/api/core/ApplicationRef#is-stable-examples

PR Close #35870
2020-03-27 10:47:44 -07:00
.circleci build: ensure that refs and shas for PRs only need to be requested once (#36207) 2020-03-25 11:49:42 -07:00
.devcontainer build: update the recommended `Dockerfile` for VSCode remote development (#34697) 2020-01-09 13:31:14 -08:00
.github fix(dev-infra): do not run the `lock-closed` GitHub action on forks (#36000) 2020-03-11 14:45:47 -04:00
.vscode build: fix @bazel/bazel to bazelisk leftovers (#36132) 2020-03-19 08:58:47 -07:00
.yarn build: vendor yarn using the .yarnrc yarn-path value (#34902) 2020-01-23 11:41:23 -08:00
aio docs: update glossary defs for components, templates, and views (#35559) 2020-03-27 10:46:49 -07:00
dev-infra fix(dev-infra): change circular deps positional params to camelCase (#36165) 2020-03-23 11:36:28 -07:00
docs build: depend on bazelisk rather than directly on Bazel (#36078) 2020-03-16 10:58:06 -07:00
goldens fix(common): let `KeyValuePipe` accept type unions with `null` (#36093) 2020-03-24 14:41:41 -07:00
integration build(docs-infra): update project structure to cli@9 3/12 (`title in a h1 tag`) (#36015) 2020-03-18 10:00:01 -07:00
modules feat(benchpress): create component_benchmark macro (#35692) 2020-03-20 10:19:25 -07:00
packages feat(service-worker): support timeout in `registerWhenStable` SW registration strategy (#35870) 2020-03-27 10:47:44 -07:00
scripts build: fix @bazel/bazel to bazelisk leftovers (#36132) 2020-03-19 08:58:47 -07:00
third_party ci: Remove old vendoring solution in favor of relying on yarn-path (#35083) 2020-02-06 15:30:51 -08:00
tools build: ensure that refs and shas for PRs only need to be requested once (#36207) 2020-03-25 11:49:42 -07:00
.bazelignore build: add npm package manifest to npm_integration_test (#35669) 2020-02-26 12:58:35 -08:00
.bazelrc build: remove CI_CHROMEDIRVER_VERSION_ARG from integration/bazel-schematics (#33927) 2020-02-24 08:59:18 -08:00
.bazelversion build: depend on bazelisk rather than directly on Bazel (#36078) 2020-03-16 10:58:06 -07:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.dev-infra.json feat(dev-infra): create commit-message validation script/tooling (#36117) 2020-03-20 10:20:12 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes test: fix ts api guardian and public guard tests on windows (#30105) 2019-04-26 16:32:22 -07:00
.gitignore ci: do not run benchmark measurements in circleci (#34753) 2020-01-29 09:22:27 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: migrate to node@12.14.1 (#34955) 2020-01-27 09:31:22 -08:00
.pullapprove.yml fix(dev-infra): use @angular/dev-infra-private package for pullapprove verification (#35996) 2020-03-24 10:14:05 -07:00
.yarnrc build: vendor yarn using the .yarnrc yarn-path value (#34902) 2020-01-23 11:41:23 -08:00
BUILD.bazel build: remove rollup packaging from dev-infra (#35647) 2020-03-17 12:27:07 -07:00
CHANGELOG.md docs: coalesce release notes for the v9.1.0 release (#36247) 2020-03-25 14:11:07 -07:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs(dev-infra): update triage and contributing docs for dev-infra (#35995) 2020-03-10 21:02:17 -04:00
LICENSE build: bump year (#34651) 2020-01-13 07:21:43 -08:00
README.md docs: remove browserstack badge from readme (#35684) 2020-03-17 09:29:43 -07:00
WORKSPACE build: depend on bazelisk rather than directly on Bazel (#36078) 2020-03-16 10:58:06 -07:00
browser-providers.conf.js ci: update the browser test matrix to match supported browsers (#35202) 2020-02-14 11:14:05 -08:00
gulpfile.js build: no longer run tslint from within gulp task (#35800) 2020-03-03 09:20:49 -08:00
karma-js.conf.js ci: ensure saucelabs browsers can load karma test page (#35171) 2020-02-06 15:36:27 -08:00
package.json fix(dev-infra): use @angular/dev-infra-private package for pullapprove verification (#35996) 2020-03-24 10:14:05 -07:00
protractor-perf.conf.js test: ensure global options for benchmark tests can be set in bazel (#34753) 2020-01-29 09:22:27 -08:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js refactor: rename unpatched event flag in Zone from `BLACK_LISTED_EVENTS` to `UNPATCHED_EVENTS` (#29617) 2019-10-04 08:44:58 -07:00
test-main.js feat(ivy): i18n - implement compile-time inlining (#32881) 2019-10-09 13:19:38 -07:00
tslint.json build: no longer run tslint from within gulp task (#35800) 2020-03-03 09:20:49 -08:00
yarn.lock fix(dev-infra): use @angular/dev-infra-private package for pullapprove verification (#35996) 2020-03-24 10:14:05 -07:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

README.md

CircleCI Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.