// 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_