Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: webkit/renderer/appcache/web_application_cache_host_impl.cc

Issue 22410007: Move appcache_frontend_impl.* to content/renderer/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/renderer/appcache/web_application_cache_host_impl.h ('k') | webkit/storage_renderer.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/renderer/appcache/web_application_cache_host_impl.cc
diff --git a/webkit/renderer/appcache/web_application_cache_host_impl.cc b/webkit/renderer/appcache/web_application_cache_host_impl.cc
deleted file mode 100644
index db67df5720b01a6ce7bbd85e733aabc42a65782b..0000000000000000000000000000000000000000
--- a/webkit/renderer/appcache/web_application_cache_host_impl.cc
+++ /dev/null
@@ -1,328 +0,0 @@
-// Copyright (c) 2012 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 "webkit/renderer/appcache/web_application_cache_host_impl.h"
-
-#include "base/compiler_specific.h"
-#include "base/id_map.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "third_party/WebKit/public/web/WebDataSource.h"
-#include "third_party/WebKit/public/web/WebFrame.h"
-#include "third_party/WebKit/public/platform/WebURL.h"
-#include "third_party/WebKit/public/platform/WebURLRequest.h"
-#include "third_party/WebKit/public/platform/WebURLResponse.h"
-
-using WebKit::WebApplicationCacheHost;
-using WebKit::WebApplicationCacheHostClient;
-using WebKit::WebDataSource;
-using WebKit::WebFrame;
-using WebKit::WebURLRequest;
-using WebKit::WebURL;
-using WebKit::WebURLResponse;
-using WebKit::WebVector;
-
-namespace appcache {
-
-namespace {
-
-// Note: the order of the elements in this array must match those
-// of the EventID enum in appcache_interfaces.h.
-const char* kEventNames[] = {
- "Checking", "Error", "NoUpdate", "Downloading", "Progress",
- "UpdateReady", "Cached", "Obsolete"
-};
-
-typedef IDMap<WebApplicationCacheHostImpl> HostsMap;
-
-HostsMap* all_hosts() {
- static HostsMap* map = new HostsMap;
- return map;
-}
-
-GURL ClearUrlRef(const GURL& url) {
- if (!url.has_ref())
- return url;
- GURL::Replacements replacements;
- replacements.ClearRef();
- return url.ReplaceComponents(replacements);
-}
-
-} // anon namespace
-
-WebApplicationCacheHostImpl* WebApplicationCacheHostImpl::FromId(int id) {
- return all_hosts()->Lookup(id);
-}
-
-WebApplicationCacheHostImpl* WebApplicationCacheHostImpl::FromFrame(
- const WebFrame* frame) {
- if (!frame)
- return NULL;
- WebDataSource* data_source = frame->dataSource();
- if (!data_source)
- return NULL;
- return static_cast<WebApplicationCacheHostImpl*>
- (data_source->applicationCacheHost());
-}
-
-WebApplicationCacheHostImpl::WebApplicationCacheHostImpl(
- WebApplicationCacheHostClient* client,
- AppCacheBackend* backend)
- : client_(client),
- backend_(backend),
- host_id_(all_hosts()->Add(this)),
- status_(UNCACHED),
- is_scheme_supported_(false),
- is_get_method_(false),
- is_new_master_entry_(MAYBE),
- was_select_cache_called_(false) {
- DCHECK(client && backend && (host_id_ != kNoHostId));
-
- backend_->RegisterHost(host_id_);
-}
-
-WebApplicationCacheHostImpl::~WebApplicationCacheHostImpl() {
- backend_->UnregisterHost(host_id_);
- all_hosts()->Remove(host_id_);
-}
-
-void WebApplicationCacheHostImpl::OnCacheSelected(
- const appcache::AppCacheInfo& info) {
- cache_info_ = info;
- client_->didChangeCacheAssociation();
-}
-
-void WebApplicationCacheHostImpl::OnStatusChanged(appcache::Status status) {
- // TODO(michaeln): delete me, not used
-}
-
-void WebApplicationCacheHostImpl::OnEventRaised(appcache::EventID event_id) {
- DCHECK(event_id != PROGRESS_EVENT); // See OnProgressEventRaised.
- DCHECK(event_id != ERROR_EVENT); // See OnErrorEventRaised.
-
- // Emit logging output prior to calling out to script as we can get
- // deleted within the script event handler.
- const char* kFormatString = "Application Cache %s event";
- std::string message = base::StringPrintf(kFormatString,
- kEventNames[event_id]);
- OnLogMessage(LOG_INFO, message);
-
- switch (event_id) {
- case CHECKING_EVENT:
- status_ = CHECKING;
- break;
- case DOWNLOADING_EVENT:
- status_ = DOWNLOADING;
- break;
- case UPDATE_READY_EVENT:
- status_ = UPDATE_READY;
- break;
- case CACHED_EVENT:
- case NO_UPDATE_EVENT:
- status_ = IDLE;
- break;
- case OBSOLETE_EVENT:
- status_ = OBSOLETE;
- break;
- default:
- NOTREACHED();
- break;
- }
-
- client_->notifyEventListener(static_cast<EventID>(event_id));
-}
-
-void WebApplicationCacheHostImpl::OnProgressEventRaised(
- const GURL& url, int num_total, int num_complete) {
- // Emit logging output prior to calling out to script as we can get
- // deleted within the script event handler.
- const char* kFormatString = "Application Cache Progress event (%d of %d) %s";
- std::string message = base::StringPrintf(kFormatString, num_complete,
- num_total, url.spec().c_str());
- OnLogMessage(LOG_INFO, message);
- status_ = DOWNLOADING;
- client_->notifyProgressEventListener(url, num_total, num_complete);
-}
-
-void WebApplicationCacheHostImpl::OnErrorEventRaised(
- const std::string& message) {
- // Emit logging output prior to calling out to script as we can get
- // deleted within the script event handler.
- const char* kFormatString = "Application Cache Error event: %s";
- std::string full_message = base::StringPrintf(kFormatString,
- message.c_str());
- OnLogMessage(LOG_ERROR, full_message);
-
- status_ = cache_info_.is_complete ? IDLE : UNCACHED;
- client_->notifyEventListener(static_cast<EventID>(ERROR_EVENT));
-}
-
-void WebApplicationCacheHostImpl::willStartMainResourceRequest(
- WebURLRequest& request, const WebFrame* frame) {
- request.setAppCacheHostID(host_id_);
-
- original_main_resource_url_ = ClearUrlRef(request.url());
-
- std::string method = request.httpMethod().utf8();
- is_get_method_ = (method == kHttpGETMethod);
- DCHECK(method == StringToUpperASCII(method));
-
- if (frame) {
- const WebFrame* spawning_frame = frame->parent();
- if (!spawning_frame)
- spawning_frame = frame->opener();
- if (!spawning_frame)
- spawning_frame = frame;
-
- WebApplicationCacheHostImpl* spawning_host = FromFrame(spawning_frame);
- if (spawning_host && (spawning_host != this) &&
- (spawning_host->status_ != UNCACHED)) {
- backend_->SetSpawningHostId(host_id_, spawning_host->host_id());
- }
- }
-}
-
-void WebApplicationCacheHostImpl::willStartSubResourceRequest(
- WebURLRequest& request) {
- request.setAppCacheHostID(host_id_);
-}
-
-void WebApplicationCacheHostImpl::selectCacheWithoutManifest() {
- if (was_select_cache_called_)
- return;
- was_select_cache_called_ = true;
-
- status_ = (document_response_.appCacheID() == kNoCacheId) ?
- UNCACHED : CHECKING;
- is_new_master_entry_ = NO;
- backend_->SelectCache(host_id_, document_url_,
- document_response_.appCacheID(),
- GURL());
-}
-
-bool WebApplicationCacheHostImpl::selectCacheWithManifest(
- const WebURL& manifest_url) {
- if (was_select_cache_called_)
- return true;
- was_select_cache_called_ = true;
-
- GURL manifest_gurl(ClearUrlRef(manifest_url));
-
- // 6.9.6 The application cache selection algorithm
- // Check for new 'master' entries.
- if (document_response_.appCacheID() == kNoCacheId) {
- if (is_scheme_supported_ && is_get_method_ &&
- (manifest_gurl.GetOrigin() == document_url_.GetOrigin())) {
- status_ = CHECKING;
- is_new_master_entry_ = YES;
- } else {
- status_ = UNCACHED;
- is_new_master_entry_ = NO;
- manifest_gurl = GURL();
- }
- backend_->SelectCache(host_id_, document_url_,
- kNoCacheId, manifest_gurl);
- return true;
- }
-
- DCHECK_EQ(NO, is_new_master_entry_);
-
- // 6.9.6 The application cache selection algorithm
- // Check for 'foreign' entries.
- GURL document_manifest_gurl(document_response_.appCacheManifestURL());
- if (document_manifest_gurl != manifest_gurl) {
- backend_->MarkAsForeignEntry(host_id_, document_url_,
- document_response_.appCacheID());
- status_ = UNCACHED;
- return false; // the navigation will be restarted
- }
-
- status_ = CHECKING;
-
- // Its a 'master' entry thats already in the cache.
- backend_->SelectCache(host_id_, document_url_,
- document_response_.appCacheID(),
- manifest_gurl);
- return true;
-}
-
-void WebApplicationCacheHostImpl::didReceiveResponseForMainResource(
- const WebURLResponse& response) {
- document_response_ = response;
- document_url_ = ClearUrlRef(document_response_.url());
- if (document_url_ != original_main_resource_url_)
- is_get_method_ = true; // A redirect was involved.
- original_main_resource_url_ = GURL();
-
- is_scheme_supported_ = IsSchemeSupported(document_url_);
- if ((document_response_.appCacheID() != kNoCacheId) ||
- !is_scheme_supported_ || !is_get_method_)
- is_new_master_entry_ = NO;
-}
-
-void WebApplicationCacheHostImpl::didReceiveDataForMainResource(
- const char* data, int len) {
- if (is_new_master_entry_ == NO)
- return;
- // TODO(michaeln): write me
-}
-
-void WebApplicationCacheHostImpl::didFinishLoadingMainResource(bool success) {
- if (is_new_master_entry_ == NO)
- return;
- // TODO(michaeln): write me
-}
-
-WebApplicationCacheHost::Status WebApplicationCacheHostImpl::status() {
- return static_cast<WebApplicationCacheHost::Status>(status_);
-}
-
-bool WebApplicationCacheHostImpl::startUpdate() {
- if (!backend_->StartUpdate(host_id_))
- return false;
- if (status_ == IDLE || status_ == UPDATE_READY)
- status_ = CHECKING;
- else
- status_ = backend_->GetStatus(host_id_);
- return true;
-}
-
-bool WebApplicationCacheHostImpl::swapCache() {
- if (!backend_->SwapCache(host_id_))
- return false;
- status_ = backend_->GetStatus(host_id_);
- return true;
-}
-
-void WebApplicationCacheHostImpl::getAssociatedCacheInfo(
- WebApplicationCacheHost::CacheInfo* info) {
- info->manifestURL = cache_info_.manifest_url;
- if (!cache_info_.is_complete)
- return;
- info->creationTime = cache_info_.creation_time.ToDoubleT();
- info->updateTime = cache_info_.last_update_time.ToDoubleT();
- info->totalSize = cache_info_.size;
-}
-
-void WebApplicationCacheHostImpl::getResourceList(
- WebVector<ResourceInfo>* resources) {
- if (!cache_info_.is_complete)
- return;
- std::vector<AppCacheResourceInfo> resource_infos;
- backend_->GetResourceList(host_id_, &resource_infos);
-
- WebVector<ResourceInfo> web_resources(resource_infos.size());
- for (size_t i = 0; i < resource_infos.size(); ++i) {
- web_resources[i].size = resource_infos[i].size;
- web_resources[i].isMaster = resource_infos[i].is_master;
- web_resources[i].isExplicit = resource_infos[i].is_explicit;
- web_resources[i].isManifest = resource_infos[i].is_manifest;
- web_resources[i].isForeign = resource_infos[i].is_foreign;
- web_resources[i].isFallback = resource_infos[i].is_fallback;
- web_resources[i].url = resource_infos[i].url;
- }
- resources->swap(web_resources);
-}
-
-} // appcache namespace
« no previous file with comments | « webkit/renderer/appcache/web_application_cache_host_impl.h ('k') | webkit/storage_renderer.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698