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.
5 #include "content/child/appcache/appcache_frontend_impl.h"
7 #include "base/logging.h"
8 #include "content/child/appcache/web_application_cache_host_impl.h"
9 #include "third_party/WebKit/public/web/WebApplicationCacheHost.h"
10 #include "third_party/WebKit/public/web/WebConsoleMessage.h"
12 using WebKit::WebApplicationCacheHost
;
13 using WebKit::WebConsoleMessage
;
17 // Inline helper to keep the lines shorter and unwrapped.
18 inline WebApplicationCacheHostImpl
* GetHost(int id
) {
19 return WebApplicationCacheHostImpl::FromId(id
);
22 void AppCacheFrontendImpl::OnCacheSelected(int host_id
,
23 const appcache::AppCacheInfo
& info
) {
24 WebApplicationCacheHostImpl
* host
= GetHost(host_id
);
26 host
->OnCacheSelected(info
);
29 void AppCacheFrontendImpl::OnStatusChanged(const std::vector
<int>& host_ids
,
30 appcache::Status status
) {
31 for (std::vector
<int>::const_iterator i
= host_ids
.begin();
32 i
!= host_ids
.end(); ++i
) {
33 WebApplicationCacheHostImpl
* host
= GetHost(*i
);
35 host
->OnStatusChanged(status
);
39 void AppCacheFrontendImpl::OnEventRaised(const std::vector
<int>& host_ids
,
40 appcache::EventID event_id
) {
41 DCHECK(event_id
!= 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
);
47 host
->OnEventRaised(event_id
);
51 void AppCacheFrontendImpl::OnProgressEventRaised(
52 const std::vector
<int>& host_ids
,
56 for (std::vector
<int>::const_iterator i
= host_ids
.begin();
57 i
!= host_ids
.end(); ++i
) {
58 WebApplicationCacheHostImpl
* host
= GetHost(*i
);
60 host
->OnProgressEventRaised(url
, num_total
, num_complete
);
64 void AppCacheFrontendImpl::OnErrorEventRaised(const std::vector
<int>& host_ids
,
65 const std::string
& message
) {
66 for (std::vector
<int>::const_iterator i
= host_ids
.begin();
67 i
!= host_ids
.end(); ++i
) {
68 WebApplicationCacheHostImpl
* host
= GetHost(*i
);
70 host
->OnErrorEventRaised(message
);
74 void AppCacheFrontendImpl::OnLogMessage(int host_id
,
75 appcache::LogLevel log_level
,
76 const std::string
& message
) {
77 WebApplicationCacheHostImpl
* host
= GetHost(host_id
);
79 host
->OnLogMessage(log_level
, message
);
82 void AppCacheFrontendImpl::OnContentBlocked(int host_id
,
83 const GURL
& manifest_url
) {
84 WebApplicationCacheHostImpl
* host
= GetHost(host_id
);
86 host
->OnContentBlocked(manifest_url
);
89 // Ensure that enum values never get out of sync with the
90 // ones declared for use within the WebKit api
91 COMPILE_ASSERT((int)WebApplicationCacheHost::Uncached
==
92 (int)appcache::UNCACHED
, Uncached
);
93 COMPILE_ASSERT((int)WebApplicationCacheHost::Idle
==
94 (int)appcache::IDLE
, Idle
);
95 COMPILE_ASSERT((int)WebApplicationCacheHost::Checking
==
96 (int)appcache::CHECKING
, Checking
);
97 COMPILE_ASSERT((int)WebApplicationCacheHost::Downloading
==
98 (int)appcache::DOWNLOADING
, Downloading
);
99 COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReady
==
100 (int)appcache::UPDATE_READY
, UpdateReady
);
101 COMPILE_ASSERT((int)WebApplicationCacheHost::Obsolete
==
102 (int)appcache::OBSOLETE
, Obsolete
);
103 COMPILE_ASSERT((int)WebApplicationCacheHost::CheckingEvent
==
104 (int)appcache::CHECKING_EVENT
, CheckingEvent
);
105 COMPILE_ASSERT((int)WebApplicationCacheHost::ErrorEvent
==
106 (int)appcache::ERROR_EVENT
, ErrorEvent
);
107 COMPILE_ASSERT((int)WebApplicationCacheHost::NoUpdateEvent
==
108 (int)appcache::NO_UPDATE_EVENT
, NoUpdateEvent
);
109 COMPILE_ASSERT((int)WebApplicationCacheHost::DownloadingEvent
==
110 (int)appcache::DOWNLOADING_EVENT
, DownloadingEvent
);
111 COMPILE_ASSERT((int)WebApplicationCacheHost::ProgressEvent
==
112 (int)appcache::PROGRESS_EVENT
, ProgressEvent
);
113 COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReadyEvent
==
114 (int)appcache::UPDATE_READY_EVENT
, UpdateReadyEvent
);
115 COMPILE_ASSERT((int)WebApplicationCacheHost::CachedEvent
==
116 (int)appcache::CACHED_EVENT
, CachedEvent
);
117 COMPILE_ASSERT((int)WebApplicationCacheHost::ObsoleteEvent
==
118 (int)appcache::OBSOLETE_EVENT
, ObsoleteEvent
);
119 COMPILE_ASSERT((int)WebConsoleMessage::LevelDebug
==
120 (int)appcache::LOG_DEBUG
, LevelDebug
);
121 COMPILE_ASSERT((int)WebConsoleMessage::LevelLog
==
122 (int)appcache::LOG_INFO
, LevelLog
);
123 COMPILE_ASSERT((int)WebConsoleMessage::LevelWarning
==
124 (int)appcache::LOG_WARNING
, LevelWarning
);
125 COMPILE_ASSERT((int)WebConsoleMessage::LevelError
==
126 (int)appcache::LOG_ERROR
, LevelError
);
128 } // namespace content