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.
5 #ifndef CONTENT_CHILD_APPCACHE_APPCACHE_DISPATCHER_H_
6 #define CONTENT_CHILD_APPCACHE_APPCACHE_DISPATCHER_H_
11 #include "base/memory/scoped_ptr.h"
12 #include "content/child/appcache/appcache_backend_proxy.h"
13 #include "content/common/appcache_interfaces.h"
14 #include "ipc/ipc_listener.h"
18 // Dispatches appcache related messages sent to a child process from the
19 // main browser process. There is one instance per child process. Messages
20 // are dispatched on the main child thread. The ChildThread base class
21 // creates an instance and delegates calls to it.
22 class AppCacheDispatcher
: public IPC::Listener
{
24 AppCacheDispatcher(IPC::Sender
* sender
,
25 AppCacheFrontend
* frontend
);
26 ~AppCacheDispatcher() override
;
28 AppCacheBackendProxy
* backend_proxy() { return &backend_proxy_
; }
30 // IPC::Listener implementation
31 bool OnMessageReceived(const IPC::Message
& msg
) override
;
34 // Ipc message handlers
35 void OnCacheSelected(int host_id
, const AppCacheInfo
& info
);
36 void OnStatusChanged(const std::vector
<int>& host_ids
,
37 AppCacheStatus status
);
38 void OnEventRaised(const std::vector
<int>& host_ids
,
39 AppCacheEventID event_id
);
40 void OnProgressEventRaised(const std::vector
<int>& host_ids
,
41 const GURL
& url
, int num_total
, int num_complete
);
42 void OnErrorEventRaised(const std::vector
<int>& host_ids
,
43 const AppCacheErrorDetails
& details
);
44 void OnLogMessage(int host_id
, int log_level
, const std::string
& message
);
45 void OnContentBlocked(int host_id
, const GURL
& manifest_url
);
47 AppCacheBackendProxy backend_proxy_
;
48 scoped_ptr
<AppCacheFrontend
> frontend_
;
51 } // namespace content
53 #endif // CONTENT_CHILD_APPCACHE_APPCACHE_DISPATCHER_H_