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

Unified Diff: polymer_1.0.4/bower_components/platinum-sw/platinum-sw-cache.html

Issue 1205703007: Add polymer 1.0 to npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Renamed folder to 1.0.4 Created 5 years, 6 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
Index: polymer_1.0.4/bower_components/platinum-sw/platinum-sw-cache.html
diff --git a/polymer_1.0.4/bower_components/platinum-sw/platinum-sw-cache.html b/polymer_1.0.4/bower_components/platinum-sw/platinum-sw-cache.html
new file mode 100644
index 0000000000000000000000000000000000000000..5769af13c00c9817b42aeaabf70beb613270fc62
--- /dev/null
+++ b/polymer_1.0.4/bower_components/platinum-sw/platinum-sw-cache.html
@@ -0,0 +1,116 @@
+<!--
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="../polymer/polymer.html">
+
+<script>
+ /**
+ * The `<platinum-sw-cache>` element makes it easy to precache specific resources, perform runtime
+ * caching, and serve your cached resources when a network is unavailable.
+ * Under the hood, the [sw-toolbox](https://github.com/googlechrome/sw-toolbox) library is used
+ * for all the caching and request handling logic.
+ * `<platinum-sw-cache>` needs to be a child element of `<platinum-sw-register>`.
+ * A simple, yet useful configuration is
+ *
+ * <platinum-sw-register>
+ * <platinum-sw-cache></platinum-sw-cache>
+ * </platinum-sw-register>
+ *
+ * This is enough to have all of the (local) resources your site uses cached at runtime.
+ * (It uses the default `defaultCacheStrategy` of "networkFirst".)
+ * When there's a network available, visits to your site will go against the network copy of the
+ * resources, but if someone visits your site when they're offline, all the cached resources will
+ * be used.
+ *
+ * @demo demo/index.html An offline-capable eReader demo.
+ */
+ Polymer({
+ is: 'platinum-sw-cache',
+
+ properties: {
+ /**
+ * The caching strategy used for all local (i.e. same-origin) requests.
+ *
+ * For a list of strategies, see the [`sw-toolbox` documentation](https://github.com/GoogleChrome/sw-toolbox#built-in-handlers).
+ * Specify a strategy as a string, without the "toolbox" prefix. E.g., for
+ * `toolbox.networkFirst`, set `defaultCacheStrategy` to "networkFirst".
+ *
+ * Note that the "cacheFirst" and "cacheOnly" strategies are not recommended, and may be
+ * explicitly prevented in a future release. More information can be found at
+ * https://github.com/PolymerElements/platinum-sw#cacheonly--cachefirst-defaultcachestrategy-considered-harmful
+ *
+ * @see {@link https://github.com/GoogleChrome/sw-toolbox#built-in-handlers}
+ */
+ defaultCacheStrategy: {
+ type: String,
+ value: 'networkFirst'
+ },
+
+ /**
+ * Used to provide a list of URLs that are always precached as soon as the service worker is
+ * installed. Corresponds to [`sw-toolbox`'s `precache()` method](https://github.com/GoogleChrome/sw-toolbox#toolboxprecachearrayofurls).
+ *
+ * This is useful for URLs that that wouldn't necessarily be picked up by runtime caching,
+ * i.e. a list of resources that are needed by one of the subpages of your site, or a list of
+ * resources that are only loaded via user interaction.
+ *
+ * `precache` can be used in conjunction with `precacheFile`, and the two arrays will be
+ * concatenated.
+ *
+ * @see {@link https://github.com/GoogleChrome/sw-toolbox#toolboxprecachearrayofurls}
+ */
+ precache: {
+ type: Array,
+ value: function() { return []; }
+ },
+
+ /**
+ * Used to provide a list of URLs that are always precached as soon as the service worker is
+ * installed. Corresponds to [`sw-toolbox`'s `precache()` method](https://github.com/GoogleChrome/sw-toolbox#toolboxprecachearrayofurls).
+ *
+ * While the `precache` option supports provided the array of URLs in as an inline attribute,
+ * this option supports providing them as an array in JSON file, which is fetched at runtime.
+ * This is useful if the array is generated via a separate build step, as it's easier to
+ * write that output to a file then it is to modify inline HTML content.
+ *
+ * `precacheFile` can be used in conjunction with `precache`, and the two arrays will be
+ * concatenated.
+ *
+ * @see {@link https://github.com/GoogleChrome/sw-toolbox#toolboxprecachearrayofurls}
+ */
+ precacheFile: String
+ },
+
+ _getParameters: function(baseURI) {
+ return new Promise(function(resolve) {
+ var params = {
+ importscriptLate: new URL('bootstrap/sw-toolbox-setup.js', baseURI).href,
+ defaultCacheStrategy: this.defaultCacheStrategy,
+ precache: this.precache
+ };
+
+ if (this.precacheFile) {
+ window.fetch(this.precacheFile).then(function(response) {
+ if (!response.ok) {
+ throw Error('unable to load ' + this.precacheFile);
+ }
+ return response.json();
+ }.bind(this)).then(function(files) {
+ params.precache = params.precache.concat(files);
+ }).catch(function(error) {
+ console.info('Skipping precaching: ' + error.message);
+ }).then(function() {
+ resolve(params);
+ });
+ } else {
+ resolve(params);
+ }
+ }.bind(this));
+ }
+ });
+</script>

Powered by Google App Engine
This is Rietveld 408576698