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_dispatcher.h"
6
7#include "content/common/appcache_messages.h"
8
9namespace content {
10
11AppCacheDispatcher::AppCacheDispatcher(
12    IPC::Sender* sender,
13    appcache::AppCacheFrontend* frontend)
14    : backend_proxy_(sender),
15      frontend_(frontend) {}
16
17AppCacheDispatcher::~AppCacheDispatcher() {}
18
19bool AppCacheDispatcher::OnMessageReceived(const IPC::Message& msg) {
20  bool handled = true;
21  IPC_BEGIN_MESSAGE_MAP(AppCacheDispatcher, msg)
22    IPC_MESSAGE_HANDLER(AppCacheMsg_CacheSelected, OnCacheSelected)
23    IPC_MESSAGE_HANDLER(AppCacheMsg_StatusChanged, OnStatusChanged)
24    IPC_MESSAGE_HANDLER(AppCacheMsg_EventRaised, OnEventRaised)
25    IPC_MESSAGE_HANDLER(AppCacheMsg_ProgressEventRaised, OnProgressEventRaised)
26    IPC_MESSAGE_HANDLER(AppCacheMsg_ErrorEventRaised, OnErrorEventRaised)
27    IPC_MESSAGE_HANDLER(AppCacheMsg_LogMessage, OnLogMessage)
28    IPC_MESSAGE_HANDLER(AppCacheMsg_ContentBlocked, OnContentBlocked)
29    IPC_MESSAGE_UNHANDLED(handled = false)
30  IPC_END_MESSAGE_MAP()
31  return handled;
32}
33
34void AppCacheDispatcher::OnCacheSelected(
35    int host_id, const appcache::AppCacheInfo& info) {
36  frontend_->OnCacheSelected(host_id, info);
37}
38
39void AppCacheDispatcher::OnStatusChanged(const std::vector<int>& host_ids,
40                                         appcache::AppCacheStatus status) {
41  frontend_->OnStatusChanged(host_ids, status);
42}
43
44void AppCacheDispatcher::OnEventRaised(const std::vector<int>& host_ids,
45                                       appcache::AppCacheEventID event_id) {
46  frontend_->OnEventRaised(host_ids, event_id);
47}
48
49void AppCacheDispatcher::OnProgressEventRaised(
50    const std::vector<int>& host_ids,
51    const GURL& url, int num_total, int num_complete) {
52  frontend_->OnProgressEventRaised(host_ids, url, num_total, num_complete);
53}
54
55void AppCacheDispatcher::OnErrorEventRaised(
56    const std::vector<int>& host_ids,
57    const appcache::AppCacheErrorDetails& details) {
58  frontend_->OnErrorEventRaised(host_ids, details);
59}
60
61void AppCacheDispatcher::OnLogMessage(
62    int host_id, int log_level, const std::string& message) {
63  frontend_->OnLogMessage(
64      host_id, static_cast<appcache::AppCacheLogLevel>(log_level), message);
65}
66
67void AppCacheDispatcher::OnContentBlocked(int host_id,
68                                          const GURL& manifest_url) {
69  frontend_->OnContentBlocked(host_id, manifest_url);
70}
71
72}  // namespace content
73