Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 2479663002: Move compositor InputHandler from RenderViewImpl to RenderWidget. (Closed)
Patch Set: Rebase to master@{#445291}. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/renderer/render_widget.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 page_zoom_level_(params.page_zoom_level), 563 page_zoom_level_(params.page_zoom_level),
564 main_render_frame_(nullptr), 564 main_render_frame_(nullptr),
565 frame_widget_(nullptr), 565 frame_widget_(nullptr),
566 speech_recognition_dispatcher_(NULL), 566 speech_recognition_dispatcher_(NULL),
567 #if defined(OS_ANDROID) 567 #if defined(OS_ANDROID)
568 expected_content_intent_id_(0), 568 expected_content_intent_id_(0),
569 was_created_by_renderer_(false), 569 was_created_by_renderer_(false),
570 #endif 570 #endif
571 enumeration_completion_id_(0), 571 enumeration_completion_id_(0),
572 session_storage_namespace_id_(params.session_storage_namespace_id), 572 session_storage_namespace_id_(params.session_storage_namespace_id),
573 has_added_input_handler_(false) { 573 weak_ptr_factory_(this) {
574 GetWidget()->set_owner_delegate(this); 574 GetWidget()->set_owner_delegate(this);
575 } 575 }
576 576
577 void RenderViewImpl::Initialize( 577 void RenderViewImpl::Initialize(
578 const mojom::CreateViewParams& params, 578 const mojom::CreateViewParams& params,
579 const RenderWidget::ShowCallback& show_callback) { 579 const RenderWidget::ShowCallback& show_callback) {
580 bool was_created_by_renderer = !show_callback.is_null(); 580 bool was_created_by_renderer = !show_callback.is_null();
581 #if defined(OS_ANDROID) 581 #if defined(OS_ANDROID)
582 // TODO(sgurun): crbug.com/325351 Needed only for android webview's deprecated 582 // TODO(sgurun): crbug.com/325351 Needed only for android webview's deprecated
583 // HandleNavigation codepath. 583 // HandleNavigation codepath.
(...skipping 1245 matching lines...) Expand 10 before | Expand all | Expand 10 after
1829 bool event_cancelled) { 1829 bool event_cancelled) {
1830 RenderWidget::didHandleGestureEvent(event, event_cancelled); 1830 RenderWidget::didHandleGestureEvent(event, event_cancelled);
1831 1831
1832 if (!event_cancelled) { 1832 if (!event_cancelled) {
1833 for (auto& observer : observers_) 1833 for (auto& observer : observers_)
1834 observer.DidHandleGestureEvent(event); 1834 observer.DidHandleGestureEvent(event);
1835 } 1835 }
1836 } 1836 }
1837 1837
1838 blink::WebLayerTreeView* RenderViewImpl::initializeLayerTreeView() { 1838 blink::WebLayerTreeView* RenderViewImpl::initializeLayerTreeView() {
1839 blink::WebLayerTreeView* ltv = RenderWidget::initializeLayerTreeView(); 1839 // TODO(!wjmaclean): We should be able to just remove this function, and
1840 RenderWidgetCompositor* rwc = compositor(); 1840 // expect the RenderWidget version of the function to be called instead.
1841 if (!rwc) 1841 // However, we have a diamond inheritance pattern going on:
1842 return ltv; 1842 // WebWidgetClient
1843 1843 // | |
1844 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 1844 // RenderWidget WebViewClient
1845 // render_thread may be NULL in tests. 1845 // | |
1846 InputHandlerManager* input_handler_manager = 1846 // RenderViewImpl
1847 render_thread ? render_thread->input_handler_manager() : NULL; 1847 //
1848 if (input_handler_manager) { 1848 // and this seems to prefer calling the empty version in WebWidgetClient
1849 input_handler_manager->AddInputHandler( 1849 // or WebViewClient over the non-empty one in RenderWidget.
1850 GetRoutingID(), rwc->GetInputHandler(), AsWeakPtr(), 1850 return RenderWidget::initializeLayerTreeView();
1851 webkit_preferences_.enable_scroll_animator);
1852 has_added_input_handler_ = true;
1853 }
1854 return ltv;
1855 } 1851 }
1856 1852
1857 void RenderViewImpl::closeWidgetSoon() { 1853 void RenderViewImpl::closeWidgetSoon() {
1858 RenderWidget::closeWidgetSoon(); 1854 RenderWidget::closeWidgetSoon();
1859 } 1855 }
1860 1856
1861 void RenderViewImpl::convertViewportToWindow(blink::WebRect* rect) { 1857 void RenderViewImpl::convertViewportToWindow(blink::WebRect* rect) {
1862 RenderWidget::convertViewportToWindow(rect); 1858 RenderWidget::convertViewportToWindow(rect);
1863 } 1859 }
1864 1860
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after
2466 return intent; 2462 return intent;
2467 } 2463 }
2468 } 2464 }
2469 return WebURL(); 2465 return WebURL();
2470 } 2466 }
2471 2467
2472 void RenderViewImpl::scheduleContentIntent(const WebURL& intent, 2468 void RenderViewImpl::scheduleContentIntent(const WebURL& intent,
2473 bool is_main_frame) { 2469 bool is_main_frame) {
2474 // Introduce a short delay so that the user can notice the content. 2470 // Introduce a short delay so that the user can notice the content.
2475 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( 2471 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
2476 FROM_HERE, 2472 FROM_HERE, base::Bind(&RenderViewImpl::LaunchAndroidContentIntent,
2477 base::Bind(&RenderViewImpl::LaunchAndroidContentIntent, AsWeakPtr(), 2473 weak_ptr_factory_.GetWeakPtr(), intent,
2478 intent, expected_content_intent_id_, is_main_frame), 2474 expected_content_intent_id_, is_main_frame),
2479 base::TimeDelta::FromMilliseconds(kContentIntentDelayMilliseconds)); 2475 base::TimeDelta::FromMilliseconds(kContentIntentDelayMilliseconds));
2480 } 2476 }
2481 2477
2482 void RenderViewImpl::cancelScheduledContentIntents() { 2478 void RenderViewImpl::cancelScheduledContentIntents() {
2483 ++expected_content_intent_id_; 2479 ++expected_content_intent_id_;
2484 } 2480 }
2485 2481
2486 void RenderViewImpl::LaunchAndroidContentIntent(const GURL& intent, 2482 void RenderViewImpl::LaunchAndroidContentIntent(const GURL& intent,
2487 size_t request_id, 2483 size_t request_id,
2488 bool is_main_frame) { 2484 bool is_main_frame) {
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
2731 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 2727 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
2732 } 2728 }
2733 2729
2734 std::unique_ptr<InputEventAck> ack( 2730 std::unique_ptr<InputEventAck> ack(
2735 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type(), 2731 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type(),
2736 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); 2732 INPUT_EVENT_ACK_STATE_NOT_CONSUMED));
2737 OnInputEventAck(std::move(ack)); 2733 OnInputEventAck(std::move(ack));
2738 } 2734 }
2739 2735
2740 } // namespace content 2736 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/renderer/render_widget.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698