• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 #include "content/child/appcache/appcache_frontend_impl.h"
6 
7 #include "base/logging.h"
8 #include "content/child/appcache/web_application_cache_host_impl.h"
9 #include "third_party/WebKit/public/web/WebConsoleMessage.h"
10 
11 using blink::WebApplicationCacheHost;
12 using blink::WebConsoleMessage;
13 
14 namespace content {
15 
16 // Inline helper to keep the lines shorter and unwrapped.
GetHost(int id)17 inline WebApplicationCacheHostImpl* GetHost(int id) {
18   return WebApplicationCacheHostImpl::FromId(id);
19 }
20 
OnCacheSelected(int host_id,const AppCacheInfo & info)21 void AppCacheFrontendImpl::OnCacheSelected(int host_id,
22                                            const AppCacheInfo& info) {
23   WebApplicationCacheHostImpl* host = GetHost(host_id);
24   if (host)
25     host->OnCacheSelected(info);
26 }
27 
OnStatusChanged(const std::vector<int> & host_ids,AppCacheStatus status)28 void AppCacheFrontendImpl::OnStatusChanged(const std::vector<int>& host_ids,
29                                            AppCacheStatus status) {
30   for (std::vector<int>::const_iterator i = host_ids.begin();
31        i != host_ids.end(); ++i) {
32     WebApplicationCacheHostImpl* host = GetHost(*i);
33     if (host)
34       host->OnStatusChanged(status);
35   }
36 }
37 
OnEventRaised(const std::vector<int> & host_ids,AppCacheEventID event_id)38 void AppCacheFrontendImpl::OnEventRaised(const std::vector<int>& host_ids,
39                                          AppCacheEventID event_id) {
40   DCHECK(event_id !=
41          APPCACHE_PROGRESS_EVENT);  // See OnProgressEventRaised.
42   DCHECK(event_id != APPCACHE_ERROR_EVENT); // See OnErrorEventRaised.
43   for (std::vector<int>::const_iterator i = host_ids.begin();
44        i != host_ids.end(); ++i) {
45     WebApplicationCacheHostImpl* host = GetHost(*i);
46     if (host)
47       host->OnEventRaised(event_id);
48   }
49 }
50 
OnProgressEventRaised(const std::vector<int> & host_ids,const GURL & url,int num_total,int num_complete)51 void AppCacheFrontendImpl::OnProgressEventRaised(
52     const std::vector<int>& host_ids,
53     const GURL& url,
54     int num_total,
55     int num_complete) {
56   for (std::vector<int>::const_iterator i = host_ids.begin();
57        i != host_ids.end(); ++i) {
58     WebApplicationCacheHostImpl* host = GetHost(*i);
59     if (host)
60       host->OnProgressEventRaised(url, num_total, num_complete);
61   }
62 }
63 
OnErrorEventRaised(const std::vector<int> & host_ids,const AppCacheErrorDetails & details)64 void AppCacheFrontendImpl::OnErrorEventRaised(
65     const std::vector<int>& host_ids,
66     const AppCacheErrorDetails& details) {
67   for (std::vector<int>::const_iterator i = host_ids.begin();
68        i != host_ids.end(); ++i) {
69     WebApplicationCacheHostImpl* host = GetHost(*i);
70     if (host)
71       host->OnErrorEventRaised(details);
72   }
73 }
74 
OnLogMessage(int host_id,AppCacheLogLevel log_level,const std::string & message)75 void AppCacheFrontendImpl::OnLogMessage(int host_id,
76                                         AppCacheLogLevel log_level,
77                                         const std::string& message) {
78   WebApplicationCacheHostImpl* host = GetHost(host_id);
79   if (host)
80     host->OnLogMessage(log_level, message);
81 }
82 
OnContentBlocked(int host_id,const GURL & manifest_url)83 void AppCacheFrontendImpl::OnContentBlocked(int host_id,
84                                             const GURL& manifest_url) {
85   WebApplicationCacheHostImpl* host = GetHost(host_id);
86   if (host)
87     host->OnContentBlocked(manifest_url);
88 }
89 
90 // Ensure that enum values never get out of sync with the
91 // ones declared for use within the WebKit api
92 COMPILE_ASSERT((int)WebApplicationCacheHost::Uncached ==
93                (int)APPCACHE_STATUS_UNCACHED, Uncached);
94 COMPILE_ASSERT((int)WebApplicationCacheHost::Idle ==
95                (int)APPCACHE_STATUS_IDLE, Idle);
96 COMPILE_ASSERT((int)WebApplicationCacheHost::Checking ==
97                (int)APPCACHE_STATUS_CHECKING, Checking);
98 COMPILE_ASSERT((int)WebApplicationCacheHost::Downloading ==
99                (int)APPCACHE_STATUS_DOWNLOADING, Downloading);
100 COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReady ==
101                (int)APPCACHE_STATUS_UPDATE_READY, UpdateReady);
102 COMPILE_ASSERT((int)WebApplicationCacheHost::Obsolete ==
103                (int)APPCACHE_STATUS_OBSOLETE, Obsolete);
104 
105 COMPILE_ASSERT((int)WebApplicationCacheHost::CheckingEvent ==
106                (int)APPCACHE_CHECKING_EVENT, CheckingEvent);
107 COMPILE_ASSERT((int)WebApplicationCacheHost::ErrorEvent ==
108                (int)APPCACHE_ERROR_EVENT, ErrorEvent);
109 COMPILE_ASSERT((int)WebApplicationCacheHost::NoUpdateEvent ==
110                (int)APPCACHE_NO_UPDATE_EVENT, NoUpdateEvent);
111 COMPILE_ASSERT((int)WebApplicationCacheHost::DownloadingEvent ==
112                (int)APPCACHE_DOWNLOADING_EVENT, DownloadingEvent);
113 COMPILE_ASSERT((int)WebApplicationCacheHost::ProgressEvent ==
114                (int)APPCACHE_PROGRESS_EVENT, ProgressEvent);
115 COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReadyEvent ==
116                (int)APPCACHE_UPDATE_READY_EVENT, UpdateReadyEvent);
117 COMPILE_ASSERT((int)WebApplicationCacheHost::CachedEvent ==
118                (int)APPCACHE_CACHED_EVENT, CachedEvent);
119 COMPILE_ASSERT((int)WebApplicationCacheHost::ObsoleteEvent ==
120                (int)APPCACHE_OBSOLETE_EVENT, ObsoleteEvent);
121 
122 COMPILE_ASSERT((int)WebConsoleMessage::LevelDebug ==
123                (int)APPCACHE_LOG_DEBUG, LevelDebug);
124 COMPILE_ASSERT((int)WebConsoleMessage::LevelLog ==
125                (int)APPCACHE_LOG_INFO, LevelLog);
126 COMPILE_ASSERT((int)WebConsoleMessage::LevelWarning ==
127                (int)APPCACHE_LOG_WARNING, LevelWarning);
128 COMPILE_ASSERT((int)WebConsoleMessage::LevelError ==
129                (int)APPCACHE_LOG_ERROR, LevelError);
130 
131 COMPILE_ASSERT((int)WebApplicationCacheHost::ManifestError ==
132                    (int)APPCACHE_MANIFEST_ERROR,
133                ManifestError);
134 COMPILE_ASSERT((int)WebApplicationCacheHost::SignatureError ==
135                    (int)APPCACHE_SIGNATURE_ERROR,
136                SignatureError);
137 COMPILE_ASSERT((int)WebApplicationCacheHost::ResourceError ==
138                    (int)APPCACHE_RESOURCE_ERROR,
139                ResourceError);
140 COMPILE_ASSERT((int)WebApplicationCacheHost::ChangedError ==
141                    (int)APPCACHE_CHANGED_ERROR,
142                ChangedError);
143 COMPILE_ASSERT((int)WebApplicationCacheHost::AbortError ==
144                    (int)APPCACHE_ABORT_ERROR,
145                AbortError);
146 COMPILE_ASSERT((int)WebApplicationCacheHost::QuotaError ==
147                    (int)APPCACHE_QUOTA_ERROR,
148                QuotaError);
149 COMPILE_ASSERT((int)WebApplicationCacheHost::PolicyError ==
150                    (int)APPCACHE_POLICY_ERROR,
151                PolicyError);
152 COMPILE_ASSERT((int)WebApplicationCacheHost::UnknownError ==
153                    (int)APPCACHE_UNKNOWN_ERROR,
154                UnknownError);
155 
156 }  // namespace content
157