Home | History | Annotate | Download | only in appcache
      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.
     17 inline WebApplicationCacheHostImpl* GetHost(int id) {
     18   return WebApplicationCacheHostImpl::FromId(id);
     19 }
     20 
     21 void AppCacheFrontendImpl::OnCacheSelected(int host_id,
     22                                            const appcache::AppCacheInfo& info) {
     23   WebApplicationCacheHostImpl* host = GetHost(host_id);
     24   if (host)
     25     host->OnCacheSelected(info);
     26 }
     27 
     28 void AppCacheFrontendImpl::OnStatusChanged(const std::vector<int>& host_ids,
     29                                            appcache::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 
     38 void AppCacheFrontendImpl::OnEventRaised(const std::vector<int>& host_ids,
     39                                          appcache::AppCacheEventID event_id) {
     40   DCHECK(event_id !=
     41          appcache::APPCACHE_PROGRESS_EVENT);  // See OnProgressEventRaised.
     42   DCHECK(event_id != appcache::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 
     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 
     64 void AppCacheFrontendImpl::OnErrorEventRaised(
     65     const std::vector<int>& host_ids,
     66     const appcache::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 
     75 void AppCacheFrontendImpl::OnLogMessage(int host_id,
     76                                         appcache::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 
     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::APPCACHE_STATUS_UNCACHED, Uncached);
     94 COMPILE_ASSERT((int)WebApplicationCacheHost::Idle ==
     95                (int)appcache::APPCACHE_STATUS_IDLE, Idle);
     96 COMPILE_ASSERT((int)WebApplicationCacheHost::Checking ==
     97                (int)appcache::APPCACHE_STATUS_CHECKING, Checking);
     98 COMPILE_ASSERT((int)WebApplicationCacheHost::Downloading ==
     99                (int)appcache::APPCACHE_STATUS_DOWNLOADING, Downloading);
    100 COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReady ==
    101                (int)appcache::APPCACHE_STATUS_UPDATE_READY, UpdateReady);
    102 COMPILE_ASSERT((int)WebApplicationCacheHost::Obsolete ==
    103                (int)appcache::APPCACHE_STATUS_OBSOLETE, Obsolete);
    104 
    105 COMPILE_ASSERT((int)WebApplicationCacheHost::CheckingEvent ==
    106                (int)appcache::APPCACHE_CHECKING_EVENT, CheckingEvent);
    107 COMPILE_ASSERT((int)WebApplicationCacheHost::ErrorEvent ==
    108                (int)appcache::APPCACHE_ERROR_EVENT, ErrorEvent);
    109 COMPILE_ASSERT((int)WebApplicationCacheHost::NoUpdateEvent ==
    110                (int)appcache::APPCACHE_NO_UPDATE_EVENT, NoUpdateEvent);
    111 COMPILE_ASSERT((int)WebApplicationCacheHost::DownloadingEvent ==
    112                (int)appcache::APPCACHE_DOWNLOADING_EVENT, DownloadingEvent);
    113 COMPILE_ASSERT((int)WebApplicationCacheHost::ProgressEvent ==
    114                (int)appcache::APPCACHE_PROGRESS_EVENT, ProgressEvent);
    115 COMPILE_ASSERT((int)WebApplicationCacheHost::UpdateReadyEvent ==
    116                (int)appcache::APPCACHE_UPDATE_READY_EVENT, UpdateReadyEvent);
    117 COMPILE_ASSERT((int)WebApplicationCacheHost::CachedEvent ==
    118                (int)appcache::APPCACHE_CACHED_EVENT, CachedEvent);
    119 COMPILE_ASSERT((int)WebApplicationCacheHost::ObsoleteEvent ==
    120                (int)appcache::APPCACHE_OBSOLETE_EVENT, ObsoleteEvent);
    121 
    122 COMPILE_ASSERT((int)WebConsoleMessage::LevelDebug ==
    123                (int)appcache::APPCACHE_LOG_DEBUG, LevelDebug);
    124 COMPILE_ASSERT((int)WebConsoleMessage::LevelLog ==
    125                (int)appcache::APPCACHE_LOG_INFO, LevelLog);
    126 COMPILE_ASSERT((int)WebConsoleMessage::LevelWarning ==
    127                (int)appcache::APPCACHE_LOG_WARNING, LevelWarning);
    128 COMPILE_ASSERT((int)WebConsoleMessage::LevelError ==
    129                (int)appcache::APPCACHE_LOG_ERROR, LevelError);
    130 
    131 COMPILE_ASSERT((int)WebApplicationCacheHost::ManifestError ==
    132                    (int)appcache::APPCACHE_MANIFEST_ERROR,
    133                ManifestError);
    134 COMPILE_ASSERT((int)WebApplicationCacheHost::SignatureError ==
    135                    (int)appcache::APPCACHE_SIGNATURE_ERROR,
    136                SignatureError);
    137 COMPILE_ASSERT((int)WebApplicationCacheHost::ResourceError ==
    138                    (int)appcache::APPCACHE_RESOURCE_ERROR,
    139                ResourceError);
    140 COMPILE_ASSERT((int)WebApplicationCacheHost::ChangedError ==
    141                    (int)appcache::APPCACHE_CHANGED_ERROR,
    142                ChangedError);
    143 COMPILE_ASSERT((int)WebApplicationCacheHost::AbortError ==
    144                    (int)appcache::APPCACHE_ABORT_ERROR,
    145                AbortError);
    146 COMPILE_ASSERT((int)WebApplicationCacheHost::QuotaError ==
    147                    (int)appcache::APPCACHE_QUOTA_ERROR,
    148                QuotaError);
    149 COMPILE_ASSERT((int)WebApplicationCacheHost::PolicyError ==
    150                    (int)appcache::APPCACHE_POLICY_ERROR,
    151                PolicyError);
    152 COMPILE_ASSERT((int)WebApplicationCacheHost::UnknownError ==
    153                    (int)appcache::APPCACHE_UNKNOWN_ERROR,
    154                UnknownError);
    155 
    156 }  // namespace content
    157