summaryrefslogtreecommitdiffstats
path: root/content/browser/android/in_process
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/android/in_process')
-rw-r--r--content/browser/android/in_process/synchronous_compositor_impl.cc28
-rw-r--r--content/browser/android/in_process/synchronous_compositor_impl.h8
-rw-r--r--content/browser/android/in_process/synchronous_compositor_registry.cc15
-rw-r--r--content/browser/android/in_process/synchronous_compositor_registry.h2
-rw-r--r--content/browser/android/in_process/synchronous_input_event_filter.cc4
-rw-r--r--content/browser/android/in_process/synchronous_input_event_filter.h1
6 files changed, 21 insertions, 37 deletions
diff --git a/content/browser/android/in_process/synchronous_compositor_impl.cc b/content/browser/android/in_process/synchronous_compositor_impl.cc
index 06d622c..9846672 100644
--- a/content/browser/android/in_process/synchronous_compositor_impl.cc
+++ b/content/browser/android/in_process/synchronous_compositor_impl.cc
@@ -8,7 +8,6 @@
#include "base/bind.h"
#include "base/lazy_instance.h"
#include "base/message_loop/message_loop.h"
-#include "cc/input/input_handler.h"
#include "content/browser/android/in_process/synchronous_compositor_external_begin_frame_source.h"
#include "content/browser/android/in_process/synchronous_compositor_factory_impl.h"
#include "content/browser/android/in_process/synchronous_compositor_registry.h"
@@ -21,6 +20,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
+#include "ui/gfx/geometry/scroll_offset.h"
#include "ui/gl/gl_surface.h"
namespace content {
@@ -79,7 +79,7 @@ SynchronousCompositorImpl::SynchronousCompositorImpl(WebContents* contents)
begin_frame_source_(nullptr),
contents_(contents),
routing_id_(contents->GetRoutingID()),
- input_handler_(nullptr),
+ synchronous_input_handler_proxy_(nullptr),
registered_with_client_(false),
is_active_(true),
renderer_needs_begin_frames_(false),
@@ -92,7 +92,7 @@ SynchronousCompositorImpl::SynchronousCompositorImpl(WebContents* contents)
SynchronousCompositorImpl::~SynchronousCompositorImpl() {
DCHECK(!output_surface_);
DCHECK(!begin_frame_source_);
- DCHECK(!input_handler_);
+ DCHECK(!synchronous_input_handler_proxy_);
}
void SynchronousCompositorImpl::SetClient(
@@ -120,7 +120,7 @@ void SynchronousCompositorImpl::RegisterWithClient() {
DCHECK(CalledOnValidThread());
DCHECK(compositor_client_);
DCHECK(output_surface_);
- DCHECK(input_handler_);
+ DCHECK(synchronous_input_handler_proxy_);
DCHECK(!registered_with_client_);
registered_with_client_ = true;
@@ -130,12 +130,10 @@ void SynchronousCompositorImpl::RegisterWithClient() {
base::Bind(&SynchronousCompositorImpl::DidActivatePendingTree,
weak_ptr_factory_.GetWeakPtr()));
- // Setting the delegate causes UpdateRootLayerState immediately so do it
- // after setting the client.
- input_handler_->SetRootLayerScrollOffsetDelegate(this);
// This disables the input system from animating inputs autonomously, instead
// routing all input animations through the SynchronousInputHandler, which is
- // |this| class.
+ // |this| class. Calling this causes an UpdateRootLayerState() immediately so,
+ // do it after setting the client.
synchronous_input_handler_proxy_->SetOnlySynchronouslyAnimateRootFlings(this);
}
@@ -155,19 +153,16 @@ void SynchronousCompositor::SetUseIpcCommandBuffer() {
void SynchronousCompositorImpl::DidInitializeRendererObjects(
SynchronousCompositorOutputSurface* output_surface,
SynchronousCompositorExternalBeginFrameSource* begin_frame_source,
- cc::InputHandler* input_handler,
SynchronousInputHandlerProxy* synchronous_input_handler_proxy) {
DCHECK(!output_surface_);
DCHECK(!begin_frame_source_);
DCHECK(output_surface);
DCHECK(begin_frame_source);
DCHECK(compositor_client_);
- DCHECK(input_handler);
DCHECK(synchronous_input_handler_proxy);
output_surface_ = output_surface;
begin_frame_source_ = begin_frame_source;
- input_handler_ = input_handler;
synchronous_input_handler_proxy_ = synchronous_input_handler_proxy;
output_surface_->SetCompositor(this);
@@ -180,16 +175,18 @@ void SynchronousCompositorImpl::DidDestroyRendererObjects() {
DCHECK(compositor_client_);
if (registered_with_client_) {
- input_handler_->SetRootLayerScrollOffsetDelegate(nullptr);
output_surface_->SetTreeActivationCallback(base::Closure());
compositor_client_->DidDestroyCompositor(this);
registered_with_client_ = false;
}
+ // This object is being destroyed, so remove pointers to it.
begin_frame_source_->SetCompositor(nullptr);
output_surface_->SetCompositor(nullptr);
+ synchronous_input_handler_proxy_->SetOnlySynchronouslyAnimateRootFlings(
+ nullptr);
- input_handler_ = nullptr;
+ synchronous_input_handler_proxy_ = nullptr;
begin_frame_source_ = nullptr;
output_surface_ = nullptr;
// Don't propogate this signal from one renderer to the next.
@@ -276,9 +273,10 @@ void SynchronousCompositorImpl::PostInvalidate() {
void SynchronousCompositorImpl::DidChangeRootLayerScrollOffset(
const gfx::ScrollOffset& root_offset) {
DCHECK(CalledOnValidThread());
- if (!input_handler_)
+ if (!synchronous_input_handler_proxy_)
return;
- input_handler_->OnRootLayerDelegatedScrollOffsetChanged(root_offset);
+ synchronous_input_handler_proxy_->SynchronouslySetRootScrollOffset(
+ root_offset);
}
void SynchronousCompositorImpl::SetIsActive(bool is_active) {
diff --git a/content/browser/android/in_process/synchronous_compositor_impl.h b/content/browser/android/in_process/synchronous_compositor_impl.h
index 2f310bd..049fe78 100644
--- a/content/browser/android/in_process/synchronous_compositor_impl.h
+++ b/content/browser/android/in_process/synchronous_compositor_impl.h
@@ -10,7 +10,6 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
-#include "cc/input/layer_scroll_offset_delegate.h"
#include "content/browser/android/in_process/synchronous_compositor_output_surface.h"
#include "content/common/input/input_event_ack_state.h"
#include "content/public/browser/android/synchronous_compositor.h"
@@ -38,8 +37,7 @@ struct DidOverscrollParams;
// This class is created on the main thread but most of the APIs are called
// from the Compositor thread.
class SynchronousCompositorImpl
- : public cc::LayerScrollOffsetDelegate,
- public SynchronousInputHandler,
+ : public SynchronousInputHandler,
public SynchronousCompositor,
public WebContentsUserData<SynchronousCompositorImpl> {
public:
@@ -55,7 +53,6 @@ class SynchronousCompositorImpl
void DidInitializeRendererObjects(
SynchronousCompositorOutputSurface* output_surface,
SynchronousCompositorExternalBeginFrameSource* begin_frame_source,
- cc::InputHandler* input_handler,
SynchronousInputHandlerProxy* synchronous_input_handler_proxy);
void DidDestroyRendererObjects();
@@ -86,8 +83,6 @@ class SynchronousCompositorImpl
// SynchronousInputHandler
void SetNeedsSynchronousAnimateInput() override;
-
- // LayerScrollOffsetDelegate
void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset,
const gfx::ScrollOffset& max_scroll_offset,
const gfx::SizeF& scrollable_size,
@@ -117,7 +112,6 @@ class SynchronousCompositorImpl
SynchronousCompositorExternalBeginFrameSource* begin_frame_source_;
WebContents* contents_;
const int routing_id_;
- cc::InputHandler* input_handler_;
SynchronousInputHandlerProxy* synchronous_input_handler_proxy_;
bool registered_with_client_;
bool is_active_;
diff --git a/content/browser/android/in_process/synchronous_compositor_registry.cc b/content/browser/android/in_process/synchronous_compositor_registry.cc
index 84c45a2..d101797 100644
--- a/content/browser/android/in_process/synchronous_compositor_registry.cc
+++ b/content/browser/android/in_process/synchronous_compositor_registry.cc
@@ -107,13 +107,11 @@ void SynchronousCompositorRegistry::UnregisterOutputSurface(
void SynchronousCompositorRegistry::RegisterInputHandler(
int routing_id,
- cc::InputHandler* input_handler,
SynchronousInputHandlerProxy* synchronous_input_handler_proxy) {
DCHECK(CalledOnValidThread());
- DCHECK(input_handler);
+ DCHECK(synchronous_input_handler_proxy);
Entry& entry = entry_map_[routing_id];
- DCHECK(!entry.input_handler);
- entry.input_handler = input_handler;
+ DCHECK(!entry.synchronous_input_handler_proxy);
entry.synchronous_input_handler_proxy = synchronous_input_handler_proxy;
CheckIsReady(routing_id);
}
@@ -125,7 +123,7 @@ void SynchronousCompositorRegistry::UnregisterInputHandler(int routing_id) {
if (entry.IsReady())
UnregisterObjects(routing_id);
- entry.input_handler = nullptr;
+ entry.synchronous_input_handler_proxy = nullptr;
RemoveEntryIfNeeded(routing_id);
}
@@ -134,7 +132,7 @@ void SynchronousCompositorRegistry::CheckIsReady(int routing_id) {
Entry& entry = entry_map_[routing_id];
if (entry.IsReady()) {
entry.compositor->DidInitializeRendererObjects(
- entry.output_surface, entry.begin_frame_source, entry.input_handler,
+ entry.output_surface, entry.begin_frame_source,
entry.synchronous_input_handler_proxy);
}
}
@@ -150,7 +148,7 @@ void SynchronousCompositorRegistry::RemoveEntryIfNeeded(int routing_id) {
DCHECK(entry_map_.find(routing_id) != entry_map_.end());
Entry& entry = entry_map_[routing_id];
if (!entry.compositor && !entry.begin_frame_source && !entry.output_surface &&
- !entry.input_handler) {
+ !entry.synchronous_input_handler_proxy) {
entry_map_.erase(routing_id);
}
}
@@ -163,11 +161,10 @@ SynchronousCompositorRegistry::Entry::Entry()
: compositor(nullptr),
begin_frame_source(nullptr),
output_surface(nullptr),
- input_handler(nullptr),
synchronous_input_handler_proxy(nullptr) {}
bool SynchronousCompositorRegistry::Entry::IsReady() {
- return compositor && begin_frame_source && output_surface && input_handler &&
+ return compositor && begin_frame_source && output_surface &&
synchronous_input_handler_proxy;
}
diff --git a/content/browser/android/in_process/synchronous_compositor_registry.h b/content/browser/android/in_process/synchronous_compositor_registry.h
index f84bb0d..f7dc913 100644
--- a/content/browser/android/in_process/synchronous_compositor_registry.h
+++ b/content/browser/android/in_process/synchronous_compositor_registry.h
@@ -41,7 +41,6 @@ class SynchronousCompositorRegistry {
SynchronousCompositorOutputSurface* output_surface);
void RegisterInputHandler(
int routing_id,
- cc::InputHandler* input_handler,
SynchronousInputHandlerProxy* synchronous_input_handler_proxy);
void UnregisterInputHandler(int routing_id);
@@ -54,7 +53,6 @@ class SynchronousCompositorRegistry {
SynchronousCompositorImpl* compositor;
SynchronousCompositorExternalBeginFrameSource* begin_frame_source;
SynchronousCompositorOutputSurface* output_surface;
- cc::InputHandler* input_handler;
SynchronousInputHandlerProxy* synchronous_input_handler_proxy;
Entry();
diff --git a/content/browser/android/in_process/synchronous_input_event_filter.cc b/content/browser/android/in_process/synchronous_input_event_filter.cc
index c3669af..6645607 100644
--- a/content/browser/android/in_process/synchronous_input_event_filter.cc
+++ b/content/browser/android/in_process/synchronous_input_event_filter.cc
@@ -5,7 +5,6 @@
#include "content/browser/android/in_process/synchronous_input_event_filter.h"
#include "base/callback.h"
-#include "cc/input/input_handler.h"
#include "content/browser/android/in_process/synchronous_compositor_impl.h"
#include "content/browser/android/in_process/synchronous_compositor_registry.h"
#include "content/public/browser/browser_thread.h"
@@ -48,11 +47,10 @@ void SynchronousInputEventFilter::SetBoundHandlerOnUIThread(
void SynchronousInputEventFilter::DidAddInputHandler(
int routing_id,
- cc::InputHandler* input_handler,
SynchronousInputHandlerProxy* synchronous_input_handler_proxy) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
SynchronousCompositorRegistry::GetInstance()->RegisterInputHandler(
- routing_id, input_handler, synchronous_input_handler_proxy);
+ routing_id, synchronous_input_handler_proxy);
}
void SynchronousInputEventFilter::DidRemoveInputHandler(int routing_id) {
diff --git a/content/browser/android/in_process/synchronous_input_event_filter.h b/content/browser/android/in_process/synchronous_input_event_filter.h
index 9174a4d..89feee1 100644
--- a/content/browser/android/in_process/synchronous_input_event_filter.h
+++ b/content/browser/android/in_process/synchronous_input_event_filter.h
@@ -35,7 +35,6 @@ class SynchronousInputEventFilter : public InputHandlerManagerClient {
void SetBoundHandler(const Handler& handler) override;
void DidAddInputHandler(
int routing_id,
- cc::InputHandler* input_handler,
SynchronousInputHandlerProxy* synchronous_input_handler_proxy) override;
void DidRemoveInputHandler(int routing_id) override;
void DidOverscroll(int routing_id,