summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_policy.h
diff options
context:
space:
mode:
authormichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-17 22:20:36 +0000
committermichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-17 22:20:36 +0000
commitea776d0208899b770ea386b994216ef476197a46 (patch)
treecb614ced5bd6e764e01f244813d07b0a48870a0a /webkit/appcache/appcache_policy.h
parenta3d3a7cf3b81cc8d00490bb7bfd92b57f0146d9c (diff)
downloadchromium_src-ea776d0208899b770ea386b994216ef476197a46.zip
chromium_src-ea776d0208899b770ea386b994216ef476197a46.tar.gz
chromium_src-ea776d0208899b770ea386b994216ef476197a46.tar.bz2
Introduce an AppCachePolicy interface that allows the containing browser to determine appcache permissions. The policy can allow or deny loading existing manifests or the creation of new manifests. The policy check for creating new manifests can be async to allow for a user prompt.
BUG=none TEST=new unit tests added Review URL: http://codereview.chromium.org/565042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39280 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_policy.h')
-rw-r--r--webkit/appcache/appcache_policy.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/webkit/appcache/appcache_policy.h b/webkit/appcache/appcache_policy.h
new file mode 100644
index 0000000..7d3e844
--- /dev/null
+++ b/webkit/appcache/appcache_policy.h
@@ -0,0 +1,38 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_APPCACHE_APPCACHE_POLICY_H_
+#define WEBKIT_APPCACHE_APPCACHE_POLICY_H_
+
+#include "net/base/completion_callback.h"
+
+class GURL;
+
+namespace appcache {
+
+class AppCachePolicy {
+ public:
+ AppCachePolicy() {}
+
+ // Called prior to loading a main resource from the appache.
+ // Returns true if allowed. This is expected to return immediately
+ // without any user prompt.
+ virtual bool CanLoadAppCache(const GURL& manifest_url) = 0;
+
+ // Called prior to creating a new appcache.
+ // Returns net::OK if allowed, net::ERR_ACCESS_DENIED if not allowed.
+ // May also return net::ERR_IO_PENDING to indicate
+ // that the completion callback will be notified (asynchronously and on
+ // the current thread) of the final result. Note: The completion callback
+ // must remain valid until notified.
+ virtual int CanCreateAppCache(const GURL& manifest_url,
+ net::CompletionCallback* callback) = 0;
+
+ protected:
+ ~AppCachePolicy() {}
+};
+
+} // namespace appcache
+
+#endif // WEBKIT_APPCACHE_APPCACHE_POLICY_H_