| Index: ppapi/proxy/ppb_network_monitor_private_proxy.cc
|
| diff --git a/ppapi/proxy/ppb_network_monitor_private_proxy.cc b/ppapi/proxy/ppb_network_monitor_private_proxy.cc
|
| deleted file mode 100644
|
| index 26bad030e69f52b788171e9972c997a4c8f5fc42..0000000000000000000000000000000000000000
|
| --- a/ppapi/proxy/ppb_network_monitor_private_proxy.cc
|
| +++ /dev/null
|
| @@ -1,174 +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 "ppapi/proxy/ppb_network_monitor_private_proxy.h"
|
| -
|
| -#include "ppapi/proxy/enter_proxy.h"
|
| -#include "ppapi/proxy/ppapi_messages.h"
|
| -#include "ppapi/shared_impl/proxy_lock.h"
|
| -#include "ppapi/thunk/ppb_network_monitor_api.h"
|
| -
|
| -namespace ppapi {
|
| -namespace proxy {
|
| -
|
| -class PPB_NetworkMonitor_Private_Proxy::NetworkMonitor
|
| - : public Resource,
|
| - public thunk::PPB_NetworkMonitor_API,
|
| - public base::SupportsWeakPtr<
|
| - PPB_NetworkMonitor_Private_Proxy::NetworkMonitor> {
|
| - public:
|
| - NetworkMonitor(PP_Instance instance,
|
| - PPB_NetworkMonitor_Private_Proxy* proxy)
|
| - : Resource(OBJECT_IS_PROXY, instance),
|
| - proxy_(proxy),
|
| - initial_list_sent_(false),
|
| - network_list_(NULL) {
|
| - }
|
| -
|
| - virtual ~NetworkMonitor() {
|
| - if (TrackedCallback::IsPending(update_callback_))
|
| - update_callback_->PostAbort();
|
| - proxy_->OnNetworkMonitorDeleted(this, pp_instance());
|
| - }
|
| -
|
| - // thunk::PPB_NetworkMonitor_API interface.
|
| - virtual int32_t UpdateNetworkList(
|
| - PP_Resource* network_list,
|
| - scoped_refptr<TrackedCallback> callback) OVERRIDE {
|
| - if (!network_list)
|
| - return PP_ERROR_BADARGUMENT;
|
| - if (TrackedCallback::IsPending(update_callback_))
|
| - return PP_ERROR_INPROGRESS;
|
| -
|
| - if (current_list_ && !initial_list_sent_) {
|
| - initial_list_sent_ = true;
|
| - thunk::EnterResourceCreationNoLock enter(pp_instance());
|
| - *network_list = PPB_NetworkList_Private_Shared::Create(
|
| - OBJECT_IS_PROXY, pp_instance(), current_list_);
|
| - return PP_OK;
|
| - }
|
| -
|
| - network_list_ = network_list;
|
| - update_callback_ = callback;
|
| - return PP_OK_COMPLETIONPENDING;
|
| - }
|
| -
|
| - // Resource overrides.
|
| - virtual ppapi::thunk::PPB_NetworkMonitor_API*
|
| - AsPPB_NetworkMonitor_API() OVERRIDE {
|
| - return this;
|
| - }
|
| -
|
| - // This is invoked when a network list is received for this monitor (either
|
| - // initially or on a change).
|
| - void OnNetworkListReceived(const scoped_refptr<NetworkListStorage>& list) {
|
| - current_list_ = list;
|
| -
|
| - if (TrackedCallback::IsPending(update_callback_)) {
|
| - initial_list_sent_ = true;
|
| - {
|
| - thunk::EnterResourceCreationNoLock enter(pp_instance());
|
| - *network_list_ = PPB_NetworkList_Private_Shared::Create(
|
| - OBJECT_IS_PROXY, pp_instance(), list);
|
| - network_list_ = NULL;
|
| - }
|
| - update_callback_->Run(PP_OK);
|
| - }
|
| - }
|
| -
|
| - private:
|
| - PPB_NetworkMonitor_Private_Proxy* proxy_;
|
| - scoped_refptr<NetworkListStorage> current_list_;
|
| - bool initial_list_sent_;
|
| -
|
| - // Parameters passed to UpdateNetworkList();
|
| - PP_Resource* network_list_;
|
| - scoped_refptr<TrackedCallback> update_callback_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(NetworkMonitor);
|
| -};
|
| -
|
| -PPB_NetworkMonitor_Private_Proxy::PPB_NetworkMonitor_Private_Proxy(
|
| - Dispatcher* dispatcher)
|
| - : InterfaceProxy(dispatcher),
|
| - monitors_(ObserverList<NetworkMonitor>::NOTIFY_EXISTING_ONLY) {
|
| -}
|
| -
|
| -PPB_NetworkMonitor_Private_Proxy::~PPB_NetworkMonitor_Private_Proxy() {
|
| - DCHECK(!monitors_.might_have_observers());
|
| -}
|
| -
|
| -// static
|
| -PP_Resource PPB_NetworkMonitor_Private_Proxy::CreateProxyResource(
|
| - PP_Instance instance) {
|
| - // TODO(dmichael): Check that this thread has a valid message loop associated
|
| - // with it.
|
| - PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
|
| - if (!dispatcher)
|
| - return 0;
|
| - PPB_NetworkMonitor_Private_Proxy* proxy =
|
| - static_cast<PPB_NetworkMonitor_Private_Proxy*>(
|
| - dispatcher->GetInterfaceProxy(kApiID));
|
| - if (!proxy)
|
| - return 0;
|
| -
|
| - scoped_refptr<NetworkMonitor> result(new NetworkMonitor(instance, proxy));
|
| -
|
| - bool first_network_monitor = !proxy->monitors_.might_have_observers();
|
| - proxy->monitors_.AddObserver(result.get());
|
| - if (first_network_monitor) {
|
| - // If that is the first network monitor then send Start message.
|
| - PluginGlobals::Get()->GetBrowserSender()->Send(
|
| - new PpapiHostMsg_PPBNetworkMonitor_Start(
|
| - dispatcher->plugin_dispatcher_id()));
|
| -
|
| - // We could have received network list message after sending the
|
| - // previous Stop message. This list is stale now, so reset it
|
| - // here.
|
| - proxy->current_list_ = NULL;
|
| - } else if (proxy->current_list_.get()) {
|
| - result->OnNetworkListReceived(proxy->current_list_);
|
| - }
|
| -
|
| - return result->GetReference();
|
| -}
|
| -
|
| -bool PPB_NetworkMonitor_Private_Proxy::OnMessageReceived(
|
| - const IPC::Message& msg) {
|
| - bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP(PPB_NetworkMonitor_Private_Proxy, msg)
|
| - IPC_MESSAGE_HANDLER(PpapiMsg_PPBNetworkMonitor_NetworkList,
|
| - OnPluginMsgNetworkList)
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| - IPC_END_MESSAGE_MAP()
|
| - return handled;
|
| -}
|
| -
|
| -void PPB_NetworkMonitor_Private_Proxy::OnPluginMsgNetworkList(
|
| - uint32 plugin_dispatcher_id,
|
| - const ppapi::NetworkList& list) {
|
| - scoped_refptr<NetworkListStorage> list_storage(new NetworkListStorage(list));
|
| - current_list_ = list_storage;
|
| - FOR_EACH_OBSERVER(NetworkMonitor, monitors_,
|
| - OnNetworkListReceived(list_storage));
|
| -}
|
| -
|
| -void PPB_NetworkMonitor_Private_Proxy::OnNetworkMonitorDeleted(
|
| - NetworkMonitor* monitor,
|
| - PP_Instance instance) {
|
| - monitors_.RemoveObserver(monitor);
|
| - if (!monitors_.might_have_observers()) {
|
| - // Send Stop message if that was the last NetworkMonitor.
|
| - PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
|
| - if (dispatcher) {
|
| - PluginGlobals::Get()->GetBrowserSender()->Send(
|
| - new PpapiHostMsg_PPBNetworkMonitor_Stop(
|
| - dispatcher->plugin_dispatcher_id()));
|
| - }
|
| - current_list_ = NULL;
|
| - }
|
| -}
|
| -
|
| -} // namespace proxy
|
| -} // namespace ppapi
|
|
|