diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-17 04:15:10 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-17 04:15:10 +0000 |
commit | 07d0a6bf3c7b947e76ac2d05649fb5e8ebce6f6e (patch) | |
tree | e4489dcaa64a9a09a7d3aff67c0f9c5c4743fa36 /ppapi/proxy/network_monitor_resource.h | |
parent | f27ebb8c25f88e5caea6ff3bc184b6ec47d369bc (diff) | |
download | chromium_src-07d0a6bf3c7b947e76ac2d05649fb5e8ebce6f6e.zip chromium_src-07d0a6bf3c7b947e76ac2d05649fb5e8ebce6f6e.tar.gz chromium_src-07d0a6bf3c7b947e76ac2d05649fb5e8ebce6f6e.tar.bz2 |
Simplify PPB_NetworkMonitor proxy.
The new proxy is based on ppapi::proxy::PluginResource and
ppapi::host::ResourceHost which simplifies code significantly. Also
the permission check is consistent with socket APIs now.
BUG=281781
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=223482
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=223494
R=brettw@chromium.org, yzshen@chromium.org
Review URL: https://codereview.chromium.org/23819033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223535 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/network_monitor_resource.h')
-rw-r--r-- | ppapi/proxy/network_monitor_resource.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/ppapi/proxy/network_monitor_resource.h b/ppapi/proxy/network_monitor_resource.h new file mode 100644 index 0000000..d227934 --- /dev/null +++ b/ppapi/proxy/network_monitor_resource.h @@ -0,0 +1,58 @@ +// Copyright 2013 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. + +#ifndef PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_ +#define PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_ + +#include <list> + +#include "ppapi/proxy/network_list_resource.h" +#include "ppapi/proxy/plugin_resource.h" +#include "ppapi/shared_impl/scoped_pp_resource.h" +#include "ppapi/thunk/ppb_network_monitor_api.h" + +namespace base { +class MessageLoopProxy; +} // namespace base + +namespace ppapi { +namespace proxy { + +class NetworkMonitorResource : public PluginResource, + public thunk::PPB_NetworkMonitor_API { + public: + explicit NetworkMonitorResource(Connection connection, + PP_Instance instance); + virtual ~NetworkMonitorResource(); + + // PluginResource overrides. + ppapi::thunk::PPB_NetworkMonitor_API* AsPPB_NetworkMonitor_API() OVERRIDE; + virtual void OnReplyReceived(const ResourceMessageReplyParams& params, + const IPC::Message& msg) OVERRIDE; + + // thunk::PPB_NetworkMonitor_API interface + virtual int32_t UpdateNetworkList( + PP_Resource* network_list, + scoped_refptr<TrackedCallback> callback) OVERRIDE; + + private: + // IPC message handlers for the messages received from the browser. + void OnPluginMsgNetworkList(const ResourceMessageReplyParams& params, + const SerializedNetworkList& list); + void OnPluginMsgForbidden(const ResourceMessageReplyParams& params); + + ScopedPPResource current_list_; + bool forbidden_; + + // Parameters passed to UpdateNetworkList(). + PP_Resource* network_list_; + scoped_refptr<TrackedCallback> update_callback_; + + DISALLOW_COPY_AND_ASSIGN(NetworkMonitorResource); +}; + +} // namespace proxy +} // namespace ppapi + +#endif // PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_ |