| Index: content/public/browser/service_worker_context.h
|
| diff --git a/content/browser/service_worker/service_worker_context.h b/content/public/browser/service_worker_context.h
|
| similarity index 13%
|
| rename from content/browser/service_worker/service_worker_context.h
|
| rename to content/public/browser/service_worker_context.h
|
| index d9f51f3165c14c89f134d2d74807bceb7a8a2b69..e9d860bcedfb8394d394e43478287adee6856191 100644
|
| --- a/content/browser/service_worker/service_worker_context.h
|
| +++ b/content/public/browser/service_worker_context.h
|
| @@ -2,27 +2,61 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_H_
|
| -#define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_H_
|
| +#ifndef CONTENT_PUBLIC_BROWSER_SERVICE_WORKER_CONTEXT_H_
|
| +#define CONTENT_PUBLIC_BROWSER_SERVICE_WORKER_CONTEXT_H_
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/callback_forward.h"
|
| +#include "url/gurl.h"
|
|
|
| namespace content {
|
|
|
| -// Represents the per-BrowserContext ServiceWorker data.
|
| +// Represents the per-StoragePartition ServiceWorker data. Must be used from
|
| +// the UI thread.
|
| class ServiceWorkerContext {
|
| public:
|
| - // TODO(michaeln): This class is a place holder for content/public api
|
| - // which will come later. Promote this class when we get there.
|
| + // https://rawgithub.com/slightlyoff/ServiceWorker/master/spec/service_worker/index.html#url-scope:
|
| + // roughly, must be of the form "<origin>/<path>/*".
|
| + typedef GURL Scope;
|
| +
|
| + typedef base::Callback<void(bool success)> ResultCallback;
|
| +
|
| + // Equivalent to calling navigator.serviceWorker.register(script_url, {scope:
|
| + // pattern}) from a renderer in |source_process_id|, except that |pattern| is
|
| + // an absolute URL instead of relative to some current origin. |callback| is
|
| + // passed true when the JS promise is fulfilled or false when the JS
|
| + // promise is rejected.
|
| + //
|
| + // The registration can fail if:
|
| + // * |script_url| is on a different origin from |pattern|
|
| + // * Fetching |script_url| fails.
|
| + // * |script_url| fails to parse or its top-level execution fails.
|
| + // TODO: The error message for this needs to be available to developers.
|
| + // * Something unexpected goes wrong, like a renderer crash or a full disk.
|
| + virtual void RegisterServiceWorker(const Scope& pattern,
|
| + const GURL& script_url,
|
| + int source_process_id,
|
| + const ResultCallback& callback) = 0;
|
| +
|
| + // Equivalent to calling navigator.serviceWorker.unregister(pattern) from a
|
| + // renderer in |source_process_id|, except that |pattern| is an absolute URL
|
| + // instead of relative to some current origin. |callback| is passed true
|
| + // when the JS promise is fulfilled or false when the JS promise is rejected.
|
| + //
|
| + // Unregistration can fail if:
|
| + // * No Service Worker was registered for |pattern|.
|
| + // * Something unexpected goes wrong, like a renderer crash.
|
| + virtual void UnregisterServiceWorker(const Scope& pattern,
|
| + int source_process_id,
|
| + const ResultCallback& callback) = 0;
|
| +
|
| + // TODO(jyasskin): Provide a way to SendMessage to a Scope.
|
|
|
| protected:
|
| ServiceWorkerContext() {}
|
| virtual ~ServiceWorkerContext() {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ServiceWorkerContext);
|
| };
|
|
|
| } // namespace content
|
|
|
| -#endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_H_
|
| +#endif // CONTENT_PUBLIC_BROWSER_SERVICE_WORKER_CONTEXT_H_
|
|
|