| 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 weak_ptr_factory_(this) { | 573 has_added_input_handler_(false) { |
| 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 // TODO(!wjmaclean): We should be able to just remove this function, and | 1839 blink::WebLayerTreeView* ltv = RenderWidget::initializeLayerTreeView(); |
| 1840 // expect the RenderWidget version of the function to be called instead. | 1840 RenderWidgetCompositor* rwc = compositor(); |
| 1841 // However, we have a diamond inheritance pattern going on: | 1841 if (!rwc) |
| 1842 // WebWidgetClient | 1842 return ltv; |
| 1843 // | | | 1843 |
| 1844 // RenderWidget WebViewClient | 1844 RenderThreadImpl* render_thread = RenderThreadImpl::current(); |
| 1845 // | | | 1845 // render_thread may be NULL in tests. |
| 1846 // RenderViewImpl | 1846 InputHandlerManager* input_handler_manager = |
| 1847 // | 1847 render_thread ? render_thread->input_handler_manager() : NULL; |
| 1848 // and this seems to prefer calling the empty version in WebWidgetClient | 1848 if (input_handler_manager) { |
| 1849 // or WebViewClient over the non-empty one in RenderWidget. | 1849 input_handler_manager->AddInputHandler( |
| 1850 return RenderWidget::initializeLayerTreeView(); | 1850 GetRoutingID(), rwc->GetInputHandler(), AsWeakPtr(), |
| 1851 webkit_preferences_.enable_scroll_animator); |
| 1852 has_added_input_handler_ = true; |
| 1853 } |
| 1854 return ltv; |
| 1851 } | 1855 } |
| 1852 | 1856 |
| 1853 void RenderViewImpl::closeWidgetSoon() { | 1857 void RenderViewImpl::closeWidgetSoon() { |
| 1854 RenderWidget::closeWidgetSoon(); | 1858 RenderWidget::closeWidgetSoon(); |
| 1855 } | 1859 } |
| 1856 | 1860 |
| 1857 void RenderViewImpl::convertViewportToWindow(blink::WebRect* rect) { | 1861 void RenderViewImpl::convertViewportToWindow(blink::WebRect* rect) { |
| 1858 RenderWidget::convertViewportToWindow(rect); | 1862 RenderWidget::convertViewportToWindow(rect); |
| 1859 } | 1863 } |
| 1860 | 1864 |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2462 return intent; | 2466 return intent; |
| 2463 } | 2467 } |
| 2464 } | 2468 } |
| 2465 return WebURL(); | 2469 return WebURL(); |
| 2466 } | 2470 } |
| 2467 | 2471 |
| 2468 void RenderViewImpl::scheduleContentIntent(const WebURL& intent, | 2472 void RenderViewImpl::scheduleContentIntent(const WebURL& intent, |
| 2469 bool is_main_frame) { | 2473 bool is_main_frame) { |
| 2470 // Introduce a short delay so that the user can notice the content. | 2474 // Introduce a short delay so that the user can notice the content. |
| 2471 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 2475 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
| 2472 FROM_HERE, base::Bind(&RenderViewImpl::LaunchAndroidContentIntent, | 2476 FROM_HERE, |
| 2473 weak_ptr_factory_.GetWeakPtr(), intent, | 2477 base::Bind(&RenderViewImpl::LaunchAndroidContentIntent, AsWeakPtr(), |
| 2474 expected_content_intent_id_, is_main_frame), | 2478 intent, expected_content_intent_id_, is_main_frame), |
| 2475 base::TimeDelta::FromMilliseconds(kContentIntentDelayMilliseconds)); | 2479 base::TimeDelta::FromMilliseconds(kContentIntentDelayMilliseconds)); |
| 2476 } | 2480 } |
| 2477 | 2481 |
| 2478 void RenderViewImpl::cancelScheduledContentIntents() { | 2482 void RenderViewImpl::cancelScheduledContentIntents() { |
| 2479 ++expected_content_intent_id_; | 2483 ++expected_content_intent_id_; |
| 2480 } | 2484 } |
| 2481 | 2485 |
| 2482 void RenderViewImpl::LaunchAndroidContentIntent(const GURL& intent, | 2486 void RenderViewImpl::LaunchAndroidContentIntent(const GURL& intent, |
| 2483 size_t request_id, | 2487 size_t request_id, |
| 2484 bool is_main_frame) { | 2488 bool is_main_frame) { |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2727 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 2731 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
| 2728 } | 2732 } |
| 2729 | 2733 |
| 2730 std::unique_ptr<InputEventAck> ack( | 2734 std::unique_ptr<InputEventAck> ack( |
| 2731 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type(), | 2735 new InputEventAck(InputEventAckSource::MAIN_THREAD, input_event->type(), |
| 2732 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); | 2736 INPUT_EVENT_ACK_STATE_NOT_CONSUMED)); |
| 2733 OnInputEventAck(std::move(ack)); | 2737 OnInputEventAck(std::move(ack)); |
| 2734 } | 2738 } |
| 2735 | 2739 |
| 2736 } // namespace content | 2740 } // namespace content |
| OLD | NEW |