| // Copyright 2013 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. |
| |
| #include "content/child/appcache/appcache_frontend_impl.h" |
| |
| #include "base/logging.h" |
| #include "content/child/appcache/web_application_cache_host_impl.h" |
| #include "third_party/WebKit/public/web/WebApplicationCacheHost.h" |
| #include "third_party/WebKit/public/web/WebConsoleMessage.h" |
| |
| using blink::WebApplicationCacheHost; |
| using blink::WebConsoleMessage; |
| |
| namespace content { |
| |
| // Inline helper to keep the lines shorter and unwrapped. |
| inline WebApplicationCacheHostImpl* GetHost(int id) { |
| return WebApplicationCacheHostImpl::FromId(id); |
| } |
| |
| void AppCacheFrontendImpl::OnCacheSelected(int host_id, |
| const appcache::AppCacheInfo& info) { |
| WebApplicationCacheHostImpl* host = GetHost(host_id); |
| if (host) |
| host->OnCacheSelected(info); |
| } |
| |
| void AppCacheFrontendImpl::OnStatusChanged(const std::vector<int>& host_ids, |
| appcache::Status status) { |
| for (std::vector<int>::const_iterator i = host_ids.begin(); |
| i != host_ids.end(); ++i) { |
| WebApplicationCacheHostImpl* host = GetHost(*i); |
| if (host) |
| host->OnStatusChanged(status); |
| } |
| } |
| |
| void AppCacheFrontendImpl::OnEventRaised(const std::vector<int>& host_ids, |
| appcache::EventID event_id) { |
| DCHECK(event_id != appcache::PROGRESS_EVENT); // See OnProgressEventRaised. |
| DCHECK(event_id != appcache::ERROR_EVENT); // See OnErrorEventRaised. |
| for (std::vector<int>::const_iterator i = host_ids.begin(); |
| i != host_ids.end(); ++i) { |
| WebApplicationCacheHostImpl* host = GetHost(*i); |
| if (host) |
| host->OnEventRaised(event_id); |
| } |
| } |
| |
| void AppCacheFrontendImpl::OnProgressEventRaised( |
| const std::vector<int>& host_ids, |
| const GURL& url, |
| int num_total, |
| int num_complete) { |
| for (std::vector<int>::const_iterator i = host_ids.begin(); |
| i != host_ids.end(); ++i) { |
| WebApplicationCacheHostImpl* host = GetHost(*i); |
| if (host) |
| host->OnProgressEventRaised(url, num_total, num_complete); |
| } |
| } |
| |
| void AppCacheFrontendImpl::OnErrorEventRaised(const std::vector<int>& host_ids, |
| const std::string& message) { |
| for (std::vector<int>::const_iterator i = host_ids.begin(); |
| i != host_ids.end(); ++i) { |
| WebApplicationCacheHostImpl* host = GetHost(*i); |
| if (host) |
| host->OnErrorEventRaised(message); |
| } |
| } |
| |
| void AppCacheFrontendImpl::OnLogMessage(int host_id, |
| appcache::LogLevel log_level, |
| const std::string& message) { |
| WebApplicationCacheHostImpl* host = GetHost(host_id); |
| if (host) |
| host->OnLogMessage(log_level, message); |
| } |
| |
| void AppCacheFrontendImpl::OnContentBlocked(int host_id, |
| const GURL& manifest_url) { |
| WebApplicationCacheHostImpl* host = GetHost(host_id); |
| if (host) |
| host->OnContentBlocked(manifest_url); |
| } |
| |
| // Ensure that enum values never get out of sync with the |
| // ones declared for use within the WebKit api |
| COMPILE_ASSERT((int)WebApplicationCacheHost::Uncached == |
| (int)appcache::UNCACHED, Uncached); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::Idle == |
| (int)appcache::IDLE, Idle); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::Checking == |
| (int)appcache::CHECKING, Checking); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::Downloading == |
| (int)appcache::DOWNLOADING, Downloading); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReady == |
| (int)appcache::UPDATE_READY, UpdateReady); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::Obsolete == |
| (int)appcache::OBSOLETE, Obsolete); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::CheckingEvent == |
| (int)appcache::CHECKING_EVENT, CheckingEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::ErrorEvent == |
| (int)appcache::ERROR_EVENT, ErrorEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::NoUpdateEvent == |
| (int)appcache::NO_UPDATE_EVENT, NoUpdateEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::DownloadingEvent == |
| (int)appcache::DOWNLOADING_EVENT, DownloadingEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::ProgressEvent == |
| (int)appcache::PROGRESS_EVENT, ProgressEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReadyEvent == |
| (int)appcache::UPDATE_READY_EVENT, UpdateReadyEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::CachedEvent == |
| (int)appcache::CACHED_EVENT, CachedEvent); |
| COMPILE_ASSERT((int)WebApplicationCacheHost::ObsoleteEvent == |
| (int)appcache::OBSOLETE_EVENT, ObsoleteEvent); |
| COMPILE_ASSERT((int)WebConsoleMessage::LevelDebug == |
| (int)appcache::LOG_DEBUG, LevelDebug); |
| COMPILE_ASSERT((int)WebConsoleMessage::LevelLog == |
| (int)appcache::LOG_INFO, LevelLog); |
| COMPILE_ASSERT((int)WebConsoleMessage::LevelWarning == |
| (int)appcache::LOG_WARNING, LevelWarning); |
| COMPILE_ASSERT((int)WebConsoleMessage::LevelError == |
| (int)appcache::LOG_ERROR, LevelError); |
| |
| } // namespace content |