Index: chrome/browser/appcache/appcache_dispatcher_host.cc |
=================================================================== |
--- chrome/browser/appcache/appcache_dispatcher_host.cc (revision 75978) |
+++ chrome/browser/appcache/appcache_dispatcher_host.cc (working copy) |
@@ -1,237 +0,0 @@ |
-// Copyright (c) 2011 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 "chrome/browser/appcache/appcache_dispatcher_host.h" |
- |
-#include "base/callback.h" |
-#include "chrome/browser/appcache/chrome_appcache_service.h" |
-#include "chrome/browser/metrics/user_metrics.h" |
-#include "chrome/browser/net/chrome_url_request_context.h" |
-#include "chrome/browser/renderer_host/browser_render_process_host.h" |
-#include "chrome/common/render_messages.h" |
- |
-AppCacheDispatcherHost::AppCacheDispatcherHost( |
- net::URLRequestContext* request_context, |
- int process_id) |
- : ALLOW_THIS_IN_INITIALIZER_LIST(frontend_proxy_(this)), |
- request_context_(request_context), |
- process_id_(process_id) { |
- DCHECK(request_context_.get()); |
-} |
- |
-AppCacheDispatcherHost::AppCacheDispatcherHost( |
- URLRequestContextGetter* request_context_getter, |
- int process_id) |
- : ALLOW_THIS_IN_INITIALIZER_LIST(frontend_proxy_(this)), |
- request_context_getter_(request_context_getter), |
- process_id_(process_id) { |
- DCHECK(request_context_getter_.get()); |
-} |
- |
-AppCacheDispatcherHost::~AppCacheDispatcherHost() {} |
- |
-void AppCacheDispatcherHost::OnChannelConnected(int32 peer_pid) { |
- BrowserMessageFilter::OnChannelConnected(peer_pid); |
- |
- DCHECK(request_context_.get() || request_context_getter_.get()); |
- |
- // Get the AppCacheService (it can only be accessed from IO thread). |
- net::URLRequestContext* context = request_context_.get(); |
- if (!context) |
- context = request_context_getter_->GetURLRequestContext(); |
- appcache_service_ = |
- static_cast<ChromeURLRequestContext*>(context)->appcache_service(); |
- request_context_ = NULL; |
- request_context_getter_ = NULL; |
- |
- if (appcache_service_.get()) { |
- backend_impl_.Initialize( |
- appcache_service_.get(), &frontend_proxy_, process_id_); |
- get_status_callback_.reset( |
- NewCallback(this, &AppCacheDispatcherHost::GetStatusCallback)); |
- start_update_callback_.reset( |
- NewCallback(this, &AppCacheDispatcherHost::StartUpdateCallback)); |
- swap_cache_callback_.reset( |
- NewCallback(this, &AppCacheDispatcherHost::SwapCacheCallback)); |
- } |
-} |
- |
-bool AppCacheDispatcherHost::OnMessageReceived(const IPC::Message& message, |
- bool* message_was_ok) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP_EX(AppCacheDispatcherHost, message, *message_was_ok) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_RegisterHost, OnRegisterHost) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_UnregisterHost, OnUnregisterHost) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_GetResourceList, OnGetResourceList) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_SelectCache, OnSelectCache) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_SelectCacheForWorker, |
- OnSelectCacheForWorker) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_SelectCacheForSharedWorker, |
- OnSelectCacheForSharedWorker) |
- IPC_MESSAGE_HANDLER(AppCacheMsg_MarkAsForeignEntry, OnMarkAsForeignEntry) |
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AppCacheMsg_GetStatus, OnGetStatus) |
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AppCacheMsg_StartUpdate, OnStartUpdate) |
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AppCacheMsg_SwapCache, OnSwapCache) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP_EX() |
- |
- return handled; |
-} |
- |
-void AppCacheDispatcherHost::BadMessageReceived() { |
- UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_ACDH")); |
- BrowserMessageFilter::BadMessageReceived(); |
-} |
- |
-void AppCacheDispatcherHost::OnRegisterHost(int host_id) { |
- if (appcache_service_.get()) { |
- if (!backend_impl_.RegisterHost(host_id)) { |
- BadMessageReceived(); |
- } |
- } |
-} |
- |
-void AppCacheDispatcherHost::OnUnregisterHost(int host_id) { |
- if (appcache_service_.get()) { |
- if (!backend_impl_.UnregisterHost(host_id)) { |
- BadMessageReceived(); |
- } |
- } |
-} |
- |
-void AppCacheDispatcherHost::OnSelectCache( |
- int host_id, const GURL& document_url, |
- int64 cache_document_was_loaded_from, |
- const GURL& opt_manifest_url) { |
- if (appcache_service_.get()) { |
- if (!backend_impl_.SelectCache(host_id, document_url, |
- cache_document_was_loaded_from, |
- opt_manifest_url)) { |
- BadMessageReceived(); |
- } |
- } else { |
- frontend_proxy_.OnCacheSelected(host_id, appcache::AppCacheInfo()); |
- } |
-} |
- |
-void AppCacheDispatcherHost::OnSelectCacheForWorker( |
- int host_id, int parent_process_id, int parent_host_id) { |
- if (appcache_service_.get()) { |
- if (!backend_impl_.SelectCacheForWorker( |
- host_id, parent_process_id, parent_host_id)) { |
- BadMessageReceived(); |
- } |
- } else { |
- frontend_proxy_.OnCacheSelected(host_id, appcache::AppCacheInfo()); |
- } |
-} |
- |
-void AppCacheDispatcherHost::OnSelectCacheForSharedWorker( |
- int host_id, int64 appcache_id) { |
- if (appcache_service_.get()) { |
- if (!backend_impl_.SelectCacheForSharedWorker(host_id, appcache_id)) |
- BadMessageReceived(); |
- } else { |
- frontend_proxy_.OnCacheSelected(host_id, appcache::AppCacheInfo()); |
- } |
-} |
- |
-void AppCacheDispatcherHost::OnMarkAsForeignEntry( |
- int host_id, const GURL& document_url, |
- int64 cache_document_was_loaded_from) { |
- if (appcache_service_.get()) { |
- if (!backend_impl_.MarkAsForeignEntry(host_id, document_url, |
- cache_document_was_loaded_from)) { |
- BadMessageReceived(); |
- } |
- } |
-} |
- |
-void AppCacheDispatcherHost::OnGetResourceList( |
- int host_id, std::vector<appcache::AppCacheResourceInfo>* params) { |
- if (appcache_service_.get()) |
- backend_impl_.GetResourceList(host_id, params); |
-} |
- |
-void AppCacheDispatcherHost::OnGetStatus(int host_id, |
- IPC::Message* reply_msg) { |
- if (pending_reply_msg_.get()) { |
- BadMessageReceived(); |
- delete reply_msg; |
- return; |
- } |
- |
- pending_reply_msg_.reset(reply_msg); |
- if (appcache_service_.get()) { |
- if (!backend_impl_.GetStatusWithCallback( |
- host_id, get_status_callback_.get(), reply_msg)) { |
- BadMessageReceived(); |
- } |
- return; |
- } |
- |
- GetStatusCallback(appcache::UNCACHED, reply_msg); |
-} |
- |
-void AppCacheDispatcherHost::OnStartUpdate(int host_id, |
- IPC::Message* reply_msg) { |
- if (pending_reply_msg_.get()) { |
- BadMessageReceived(); |
- delete reply_msg; |
- return; |
- } |
- |
- pending_reply_msg_.reset(reply_msg); |
- if (appcache_service_.get()) { |
- if (!backend_impl_.StartUpdateWithCallback( |
- host_id, start_update_callback_.get(), reply_msg)) { |
- BadMessageReceived(); |
- } |
- return; |
- } |
- |
- StartUpdateCallback(false, reply_msg); |
-} |
- |
-void AppCacheDispatcherHost::OnSwapCache(int host_id, |
- IPC::Message* reply_msg) { |
- if (pending_reply_msg_.get()) { |
- BadMessageReceived(); |
- delete reply_msg; |
- return; |
- } |
- |
- pending_reply_msg_.reset(reply_msg); |
- if (appcache_service_.get()) { |
- if (!backend_impl_.SwapCacheWithCallback( |
- host_id, swap_cache_callback_.get(), reply_msg)) { |
- BadMessageReceived(); |
- } |
- return; |
- } |
- |
- SwapCacheCallback(false, reply_msg); |
-} |
- |
-void AppCacheDispatcherHost::GetStatusCallback( |
- appcache::Status status, void* param) { |
- IPC::Message* reply_msg = reinterpret_cast<IPC::Message*>(param); |
- DCHECK_EQ(reply_msg, pending_reply_msg_.get()); |
- AppCacheMsg_GetStatus::WriteReplyParams(reply_msg, status); |
- Send(pending_reply_msg_.release()); |
-} |
- |
-void AppCacheDispatcherHost::StartUpdateCallback(bool result, void* param) { |
- IPC::Message* reply_msg = reinterpret_cast<IPC::Message*>(param); |
- DCHECK_EQ(reply_msg, pending_reply_msg_.get()); |
- AppCacheMsg_StartUpdate::WriteReplyParams(reply_msg, result); |
- Send(pending_reply_msg_.release()); |
-} |
- |
-void AppCacheDispatcherHost::SwapCacheCallback(bool result, void* param) { |
- IPC::Message* reply_msg = reinterpret_cast<IPC::Message*>(param); |
- DCHECK_EQ(reply_msg, pending_reply_msg_.get()); |
- AppCacheMsg_SwapCache::WriteReplyParams(reply_msg, result); |
- Send(pending_reply_msg_.release()); |
-} |