OLD | NEW |
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 Loading... |
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 Loading... |
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 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2468 return intent; | 2464 return intent; |
2469 } | 2465 } |
2470 } | 2466 } |
2471 return WebURL(); | 2467 return WebURL(); |
2472 } | 2468 } |
2473 | 2469 |
2474 void RenderViewImpl::scheduleContentIntent(const WebURL& intent, | 2470 void RenderViewImpl::scheduleContentIntent(const WebURL& intent, |
2475 bool is_main_frame) { | 2471 bool is_main_frame) { |
2476 // Introduce a short delay so that the user can notice the content. | 2472 // Introduce a short delay so that the user can notice the content. |
2477 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 2473 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
2478 FROM_HERE, | 2474 FROM_HERE, base::Bind(&RenderViewImpl::LaunchAndroidContentIntent, |
2479 base::Bind(&RenderViewImpl::LaunchAndroidContentIntent, AsWeakPtr(), | 2475 weak_ptr_factory_.GetWeakPtr(), intent, |
2480 intent, expected_content_intent_id_, is_main_frame), | 2476 expected_content_intent_id_, is_main_frame), |
2481 base::TimeDelta::FromMilliseconds(kContentIntentDelayMilliseconds)); | 2477 base::TimeDelta::FromMilliseconds(kContentIntentDelayMilliseconds)); |
2482 } | 2478 } |
2483 | 2479 |
2484 void RenderViewImpl::cancelScheduledContentIntents() { | 2480 void RenderViewImpl::cancelScheduledContentIntents() { |
2485 ++expected_content_intent_id_; | 2481 ++expected_content_intent_id_; |
2486 } | 2482 } |
2487 | 2483 |
2488 void RenderViewImpl::LaunchAndroidContentIntent(const GURL& intent, | 2484 void RenderViewImpl::LaunchAndroidContentIntent(const GURL& intent, |
2489 size_t request_id, | 2485 size_t request_id, |
2490 bool is_main_frame) { | 2486 bool is_main_frame) { |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2733 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2729 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
2734 } | 2730 } |
2735 | 2731 |
2736 std::unique_ptr<InputEventAck> ack( | 2732 std::unique_ptr<InputEventAck> ack( |
2737 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type, | 2733 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type, |
2738 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); | 2734 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); |
2739 OnInputEventAck(std::move(ack)); | 2735 OnInputEventAck(std::move(ack)); |
2740 } | 2736 } |
2741 | 2737 |
2742 } // namespace content | 2738 } // namespace content |
OLD | NEW |