Revert of Class for allocating a chunk of memory for RenderPass (patchset #31 id...
[chromium-blink-merge.git] / content / public / browser / service_worker_context.h
blobe035fbec34ed0a4213bce2dcce0ffdae2c55f83a
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_PUBLIC_BROWSER_SERVICE_WORKER_CONTEXT_H_
6 #define CONTENT_PUBLIC_BROWSER_SERVICE_WORKER_CONTEXT_H_
8 #include "base/basictypes.h"
9 #include "base/callback_forward.h"
10 #include "content/public/browser/service_worker_usage_info.h"
11 #include "url/gurl.h"
13 namespace content {
15 // Represents the per-StoragePartition ServiceWorker data. Must be used from
16 // the IO thread.
17 class ServiceWorkerContext {
18 public:
19 // https://rawgithub.com/slightlyoff/ServiceWorker/master/spec/service_worker/index.html#url-scope:
20 // roughly, must be of the form "<origin>/<path>/*".
21 typedef GURL Scope;
23 typedef base::Callback<void(bool success)> ResultCallback;
25 typedef base::Callback<void(const std::vector<ServiceWorkerUsageInfo>&
26 usage_info)> GetUsageInfoCallback;
28 // Equivalent to calling navigator.serviceWorker.register(script_url, {scope:
29 // pattern}) from a renderer, except that |pattern| is an absolute URL instead
30 // of relative to some current origin. |callback| is passed true when the JS
31 // promise is fulfilled or false when the JS promise is rejected.
33 // The registration can fail if:
34 // * |script_url| is on a different origin from |pattern|
35 // * Fetching |script_url| fails.
36 // * |script_url| fails to parse or its top-level execution fails.
37 // TODO: The error message for this needs to be available to developers.
38 // * Something unexpected goes wrong, like a renderer crash or a full disk.
39 virtual void RegisterServiceWorker(const Scope& pattern,
40 const GURL& script_url,
41 const ResultCallback& callback) = 0;
43 // Equivalent to calling navigator.serviceWorker.unregister(pattern) from a
44 // renderer, except that |pattern| is an absolute URL instead of relative to
45 // some current origin. |callback| is passed true when the JS promise is
46 // fulfilled or false when the JS promise is rejected.
48 // Unregistration can fail if:
49 // * No Service Worker was registered for |pattern|.
50 // * Something unexpected goes wrong, like a renderer crash.
51 virtual void UnregisterServiceWorker(const Scope& pattern,
52 const ResultCallback& callback) = 0;
54 // TODO(jyasskin): Provide a way to SendMessage to a Scope.
56 // Synchronously releases all of the RenderProcessHosts that have Service
57 // Workers running inside them, and prevents any new Service Worker instances
58 // from starting up.
59 virtual void Terminate() = 0;
61 // Methods used in response to browsing data and quota manager requests.
62 virtual void GetAllOriginsInfo(const GetUsageInfoCallback& callback) = 0;
63 virtual void DeleteForOrigin(const GURL& origin_url) = 0;
65 protected:
66 ServiceWorkerContext() {}
67 virtual ~ServiceWorkerContext() {}
70 } // namespace content
72 #endif // CONTENT_PUBLIC_BROWSER_SERVICE_WORKER_CONTEXT_H_