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

Unified Diff: polymer_1.0.4/bower_components/platinum-sw/platinum-sw-fetch.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-fetch.html
diff --git a/polymer_1.0.4/bower_components/platinum-sw/platinum-sw-fetch.html b/polymer_1.0.4/bower_components/platinum-sw/platinum-sw-fetch.html
new file mode 100644
index 0000000000000000000000000000000000000000..35d50281985a2fe5590b56d154dd94579852bf52
--- /dev/null
+++ b/polymer_1.0.4/bower_components/platinum-sw/platinum-sw-fetch.html
@@ -0,0 +1,130 @@
+<!--
+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-fetch>` element creates custom [`fetch` event](https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#fetch-event-section)
+ * handlers for given URL patterns. Possible use cases include:
+ *
+ * - Using a special caching strategy for specific URLs.
+ * - Returning static "fallback" responses instead of network errors when a remote API
+ * is unavailable.
+ *
+ * In short, any scenario in which you'd like a service worker to intercept network
+ * requests and provide custom response handling.
+ *
+ * If you'd like a single caching policy applied to all same-origin requests, then an alternative
+ * to using `<platinum-sw-fetch>` is to use `<platinum-sw-cache>` with the `defaultCacheStategy`
+ * property set.
+ *
+ * Under the hood, the [sw-toolbox](https://github.com/googlechrome/sw-toolbox) library is used
+ * for all the request handling logic.
+ *
+ * `<platinum-sw-fetch>` needs to be a child element of `<platinum-sw-register>`.
+ *
+ * An example configuration is:
+ *
+ * <platinum-sw-register>
+ * <platinum-sw-import-script href="custom-fetch-handler.js"></platinum-sw-import-script>
+ * <platinum-sw-fetch handler="customFetchHandler"
+ * path="/(.*)/customFetch"></platinum-sw-fetch>
+ * </platinum-sw-register>
+ *
+ * This implies that there's a `custom-fetch-handler.js` file in the same directory as the current
+ * page, which defines a `sw-toolbox` compliant
+ * [request handler](https://github.com/googlechrome/sw-toolbox#request-handlers) named
+ * `customFetchHandler`. This definition is imported using `<platinum-sw-import-script>`. The
+ * `<platinum-sw-fetch>` element takes care of mapping which request paths are handled by
+ * `customFetchHandler`.
+ *
+ * Anything not matching the `path` pattern is ignored by `<platinum-sw-fetch>`,
+ * and it's possible to have multiple `<platinum-sw-fetch>` elements that each define different
+ * paths and different handlers. The path matching is performed top-down, starting with the first
+ * `<platinum-sw-fetch>` element.
+ */
+ Polymer({
+ is: 'platinum-sw-fetch',
+
+ properties: {
+ /**
+ * The name of the request handler to use. This should be a `sw-toolbox`-style
+ * [request handler](https://github.com/googlechrome/sw-toolbox#request-handlers).
+ *
+ * `handler` is a `String`, not a `function`, so you're providing the name of a function, not
+ * the function itself. It can be a function defined in the
+ * [`toolbox` scope](https://github.com/googlechrome/sw-toolbox#built-in-handlers)
+ * (e.g. 'networkFirst', 'fastest', 'networkOnly', etc.) or a function defined in the
+ * [`ServiceWorkerGlobalScope`](https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#service-worker-global-scope),
+ * like a function that is defined in a file that's imported via `platinum-sw-import-script`.
+ **
+ * @see {@link https://github.com/GoogleChrome/sw-toolbox#built-in-handlers}
+ */
+ handler: String,
+
+ /**
+ * By default, `path` will only match URLs under the current host (i.e. same-origin requests).
+ * If you'd like to apply `handler` to cross-origin requests, then use `origin` to specify
+ * which hosts will match. Setting `origin` is optional.
+ *
+ * `origin` is a `String`, but it is used internally to construct a
+ * [`RegExp` object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions),
+ * which is used for the matching. To properly escape RegExp sequences like `\.`, it's
+ * necessary to add in an extra level of string-escaping first ('\\.').
+ *
+ * Note that the `origin` value will be matched against the full domain name and the protocol.
+ * If you want to match 'http' and 'https', then use 'https?://' at the start of your string.
+ *
+ * Some examples:
+ * - `origin="https?://.+\\.google\\.com"` → a RegExp that matches `http` or `https` requests
+ * made to any domain, as long as it ends in `.google.com`.
+ * - `origin="https://www\\.example\\.com" → a RegExp that will only match `https` requests to
+ * one domain, `www.example.com`.
+ *
+ * @see {@link https://github.com/googlechrome/sw-toolbox#toolboxrouterheadurlpattern-handler-options}
+ */
+ origin: String,
+
+ /**
+ * URLs with paths matching `path` will have `handler` applied to them.
+ *
+ * By default, `path` will only match same-origin URLs. If you'd like it to match
+ * cross-origin URLs, use `path` in conjunction with `origin`.
+ *
+ * As explained in the
+ * [`sw-toolbox` docs](https://github.com/googlechrome/sw-toolbox#toolboxrouterheadurlpattern-handler-options),
+ * the URL path matching is done using the [`path-to-regexp`](https://github.com/pillarjs/path-to-regexp)
+ * module, which is the same logic used in [Express-style routing](http://expressjs.com/guide/routing.html).
+ *
+ * In practice, you need to always use '/' as the first character of your `path`, and then
+ * can use '(.*)' as a wildcard.
+ *
+ * Some examples:
+ * - `path="/(.*)/customFetch"` → matches any path that ends with '/customFetch'.
+ * - `path="/customFetch(.*)"` → matches any path that starts with '/customFetch', optionally
+ * followed by other characters.
+ *
+ * @see {@link https://github.com/pillarjs/path-to-regexp}
+ */
+ path: String
+ },
+
+ _getParameters: function(baseURI) {
+ return new Promise(function(resolve) {
+ var params = {
+ importscriptLate: new URL('bootstrap/sw-toolbox-setup.js', baseURI).href
+ };
+ if (this.path && this.handler) {
+ params.route = [this.path, this.handler, this.origin];
+ }
+ resolve(params);
+ }.bind(this));
+ }
+ });
+</script>

Powered by Google App Engine
This is Rietveld 408576698