OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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. | |
4 | |
5 #ifndef WEBKIT_RENDERER_APPCACHE_WEB_APPLICATION_CACHE_HOST_IMPL_H_ | |
6 #define WEBKIT_RENDERER_APPCACHE_WEB_APPLICATION_CACHE_HOST_IMPL_H_ | |
7 | |
8 #include <string> | |
9 | |
10 #include "third_party/WebKit/public/platform/WebURLResponse.h" | |
11 #include "third_party/WebKit/public/platform/WebVector.h" | |
12 #include "third_party/WebKit/public/web/WebApplicationCacheHostClient.h" | |
13 #include "url/gurl.h" | |
14 #include "webkit/common/appcache/appcache_interfaces.h" | |
15 #include "webkit/renderer/webkit_storage_renderer_export.h" | |
16 | |
17 namespace WebKit { | |
18 class WebFrame; | |
19 } | |
20 | |
21 namespace appcache { | |
22 | |
23 class WEBKIT_STORAGE_RENDERER_EXPORT WebApplicationCacheHostImpl | |
24 : NON_EXPORTED_BASE(public WebKit::WebApplicationCacheHost) { | |
25 public: | |
26 // Returns the host having given id or NULL if there is no such host. | |
27 static WebApplicationCacheHostImpl* FromId(int id); | |
28 | |
29 // Returns the host associated with the current document in frame. | |
30 static WebApplicationCacheHostImpl* FromFrame(const WebKit::WebFrame* frame); | |
31 | |
32 WebApplicationCacheHostImpl(WebKit::WebApplicationCacheHostClient* client, | |
33 AppCacheBackend* backend); | |
34 virtual ~WebApplicationCacheHostImpl(); | |
35 | |
36 int host_id() const { return host_id_; } | |
37 AppCacheBackend* backend() const { return backend_; } | |
38 WebKit::WebApplicationCacheHostClient* client() const { return client_; } | |
39 | |
40 virtual void OnCacheSelected(const appcache::AppCacheInfo& info); | |
41 void OnStatusChanged(appcache::Status); | |
42 void OnEventRaised(appcache::EventID); | |
43 void OnProgressEventRaised(const GURL& url, int num_total, int num_complete); | |
44 void OnErrorEventRaised(const std::string& message); | |
45 virtual void OnLogMessage(LogLevel log_level, const std::string& message) {} | |
46 virtual void OnContentBlocked(const GURL& manifest_url) {} | |
47 | |
48 // WebApplicationCacheHost methods | |
49 virtual void willStartMainResourceRequest(WebKit::WebURLRequest&, | |
50 const WebKit::WebFrame*); | |
51 virtual void willStartSubResourceRequest(WebKit::WebURLRequest&); | |
52 virtual void selectCacheWithoutManifest(); | |
53 virtual bool selectCacheWithManifest(const WebKit::WebURL& manifestURL); | |
54 virtual void didReceiveResponseForMainResource(const WebKit::WebURLResponse&); | |
55 virtual void didReceiveDataForMainResource(const char* data, int len); | |
56 virtual void didFinishLoadingMainResource(bool success); | |
57 virtual WebKit::WebApplicationCacheHost::Status status(); | |
58 virtual bool startUpdate(); | |
59 virtual bool swapCache(); | |
60 virtual void getResourceList(WebKit::WebVector<ResourceInfo>* resources); | |
61 virtual void getAssociatedCacheInfo(CacheInfo* info); | |
62 | |
63 private: | |
64 enum IsNewMasterEntry { | |
65 MAYBE, | |
66 YES, | |
67 NO | |
68 }; | |
69 | |
70 WebKit::WebApplicationCacheHostClient* client_; | |
71 AppCacheBackend* backend_; | |
72 int host_id_; | |
73 appcache::Status status_; | |
74 WebKit::WebURLResponse document_response_; | |
75 GURL document_url_; | |
76 bool is_scheme_supported_; | |
77 bool is_get_method_; | |
78 IsNewMasterEntry is_new_master_entry_; | |
79 appcache::AppCacheInfo cache_info_; | |
80 GURL original_main_resource_url_; // Used to detect redirection. | |
81 bool was_select_cache_called_; | |
82 }; | |
83 | |
84 } // namespace | |
85 | |
86 #endif // WEBKIT_RENDERER_APPCACHE_WEB_APPLICATION_CACHE_HOST_IMPL_H_ | |
OLD | NEW |