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 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 |
OLD | NEW |