| Index: chrome/browser/device_orientation/dispatcher_host.cc
|
| ===================================================================
|
| --- chrome/browser/device_orientation/dispatcher_host.cc (revision 68877)
|
| +++ chrome/browser/device_orientation/dispatcher_host.cc (working copy)
|
| @@ -1,112 +0,0 @@
|
| -// Copyright (c) 2010 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/device_orientation/dispatcher_host.h"
|
| -
|
| -#include "base/scoped_ptr.h"
|
| -#include "chrome/browser/browser_thread.h"
|
| -#include "chrome/browser/device_orientation/orientation.h"
|
| -#include "chrome/browser/device_orientation/provider.h"
|
| -#include "chrome/browser/renderer_host/render_view_host.h"
|
| -#include "chrome/browser/renderer_host/render_view_host_notification_task.h"
|
| -#include "chrome/common/render_messages.h"
|
| -#include "chrome/common/render_messages_params.h"
|
| -#include "ipc/ipc_message.h"
|
| -
|
| -namespace device_orientation {
|
| -
|
| -DispatcherHost::DispatcherHost(int process_id)
|
| - : process_id_(process_id),
|
| - observers_map_(),
|
| - provider_(NULL) {
|
| -}
|
| -
|
| -DispatcherHost::~DispatcherHost() {
|
| -}
|
| -
|
| -class DispatcherHost::ObserverDelegate
|
| - : public base::RefCounted<ObserverDelegate>, public Provider::Observer {
|
| - public:
|
| - // Create ObserverDelegate that observes provider and forwards updates to
|
| - // render_view_id in process_id.
|
| - // Will stop observing provider when destructed.
|
| - ObserverDelegate(Provider* provider,
|
| - int process_id,
|
| - int render_view_id);
|
| -
|
| - // From Provider::Observer.
|
| - virtual void OnOrientationUpdate(const Orientation& orientation);
|
| -
|
| - private:
|
| - friend class base::RefCounted<ObserverDelegate>;
|
| - virtual ~ObserverDelegate();
|
| -
|
| - scoped_refptr<Provider> provider_;
|
| - int process_id_;
|
| - int render_view_id_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ObserverDelegate);
|
| -};
|
| -
|
| -DispatcherHost::ObserverDelegate::ObserverDelegate(Provider* provider,
|
| - int process_id,
|
| - int render_view_id)
|
| - : provider_(provider),
|
| - process_id_(process_id),
|
| - render_view_id_(render_view_id) {
|
| - provider_->AddObserver(this);
|
| -}
|
| -
|
| -DispatcherHost::ObserverDelegate::~ObserverDelegate() {
|
| - provider_->RemoveObserver(this);
|
| -}
|
| -
|
| -void DispatcherHost::ObserverDelegate::OnOrientationUpdate(
|
| - const Orientation& orientation) {
|
| - ViewMsg_DeviceOrientationUpdated_Params params;
|
| - params.can_provide_alpha = orientation.can_provide_alpha_;
|
| - params.alpha = orientation.alpha_;
|
| - params.can_provide_beta = orientation.can_provide_beta_;
|
| - params.beta = orientation.beta_;
|
| - params.can_provide_gamma = orientation.can_provide_gamma_;
|
| - params.gamma = orientation.gamma_;
|
| -
|
| - IPC::Message* message = new ViewMsg_DeviceOrientationUpdated(render_view_id_,
|
| - params);
|
| - CallRenderViewHost(process_id_, render_view_id_, &RenderViewHost::Send,
|
| - message);
|
| -}
|
| -
|
| -bool DispatcherHost::OnMessageReceived(const IPC::Message& msg,
|
| - bool* msg_was_ok) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP_EX(DispatcherHost, msg, *msg_was_ok)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DeviceOrientation_StartUpdating,
|
| - OnStartUpdating)
|
| - IPC_MESSAGE_HANDLER(ViewHostMsg_DeviceOrientation_StopUpdating,
|
| - OnStopUpdating)
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| - IPC_END_MESSAGE_MAP()
|
| - return handled;
|
| -}
|
| -
|
| -void DispatcherHost::OnStartUpdating(int render_view_id) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| -
|
| - if (!provider_)
|
| - provider_ = Provider::GetInstance();
|
| -
|
| - observers_map_[render_view_id] = new ObserverDelegate(provider_,
|
| - process_id_,
|
| - render_view_id);
|
| -}
|
| -
|
| -void DispatcherHost::OnStopUpdating(int render_view_id) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| -
|
| - observers_map_.erase(render_view_id);
|
| -}
|
| -
|
| -} // namespace device_orientation
|
|
|