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 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 #include "content/public/common/url_constants.h" | 64 #include "content/public/common/url_constants.h" |
65 #include "content/public/common/url_utils.h" | 65 #include "content/public/common/url_utils.h" |
66 #include "content/public/common/web_preferences.h" | 66 #include "content/public/common/web_preferences.h" |
67 #include "content/public/renderer/content_renderer_client.h" | 67 #include "content/public/renderer/content_renderer_client.h" |
68 #include "content/public/renderer/document_state.h" | 68 #include "content/public/renderer/document_state.h" |
69 #include "content/public/renderer/navigation_state.h" | 69 #include "content/public/renderer/navigation_state.h" |
70 #include "content/public/renderer/render_view_observer.h" | 70 #include "content/public/renderer/render_view_observer.h" |
71 #include "content/public/renderer/render_view_visitor.h" | 71 #include "content/public/renderer/render_view_visitor.h" |
72 #include "content/renderer/browser_plugin/browser_plugin.h" | 72 #include "content/renderer/browser_plugin/browser_plugin.h" |
73 #include "content/renderer/browser_plugin/browser_plugin_manager.h" | 73 #include "content/renderer/browser_plugin/browser_plugin_manager.h" |
74 #include "content/renderer/devtools/devtools_agent.h" | |
75 #include "content/renderer/disambiguation_popup_helper.h" | 74 #include "content/renderer/disambiguation_popup_helper.h" |
76 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" | 75 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" |
77 #include "content/renderer/drop_data_builder.h" | 76 #include "content/renderer/drop_data_builder.h" |
78 #include "content/renderer/gpu/render_widget_compositor.h" | 77 #include "content/renderer/gpu/render_widget_compositor.h" |
79 #include "content/renderer/history_controller.h" | 78 #include "content/renderer/history_controller.h" |
80 #include "content/renderer/history_serialization.h" | 79 #include "content/renderer/history_serialization.h" |
81 #include "content/renderer/idle_user_detector.h" | 80 #include "content/renderer/idle_user_detector.h" |
82 #include "content/renderer/ime_event_guard.h" | 81 #include "content/renderer/ime_event_guard.h" |
83 #include "content/renderer/input/input_handler_manager.h" | 82 #include "content/renderer/input/input_handler_manager.h" |
84 #include "content/renderer/internal_document_state_data.h" | 83 #include "content/renderer/internal_document_state_data.h" |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 | 401 |
403 static void ConvertToFaviconSizes( | 402 static void ConvertToFaviconSizes( |
404 const blink::WebVector<blink::WebSize>& web_sizes, | 403 const blink::WebVector<blink::WebSize>& web_sizes, |
405 std::vector<gfx::Size>* sizes) { | 404 std::vector<gfx::Size>* sizes) { |
406 DCHECK(sizes->empty()); | 405 DCHECK(sizes->empty()); |
407 sizes->reserve(web_sizes.size()); | 406 sizes->reserve(web_sizes.size()); |
408 for (size_t i = 0; i < web_sizes.size(); ++i) | 407 for (size_t i = 0; i < web_sizes.size(); ++i) |
409 sizes->push_back(gfx::Size(web_sizes[i])); | 408 sizes->push_back(gfx::Size(web_sizes[i])); |
410 } | 409 } |
411 | 410 |
| 411 static blink::WebDevToolsAgent* GetWebDevToolsAgent(WebView* webview) { |
| 412 if (!webview || !webview->mainFrame()->isWebLocalFrame()) |
| 413 return nullptr; |
| 414 return webview->mainFrame()->toWebLocalFrame()->devToolsAgent(); |
| 415 } |
| 416 |
412 /////////////////////////////////////////////////////////////////////////////// | 417 /////////////////////////////////////////////////////////////////////////////// |
413 | 418 |
414 struct RenderViewImpl::PendingFileChooser { | 419 struct RenderViewImpl::PendingFileChooser { |
415 PendingFileChooser(const FileChooserParams& p, WebFileChooserCompletion* c) | 420 PendingFileChooser(const FileChooserParams& p, WebFileChooserCompletion* c) |
416 : params(p), | 421 : params(p), |
417 completion(c) { | 422 completion(c) { |
418 } | 423 } |
419 FileChooserParams params; | 424 FileChooserParams params; |
420 WebFileChooserCompletion* completion; // MAY BE NULL to skip callback. | 425 WebFileChooserCompletion* completion; // MAY BE NULL to skip callback. |
421 }; | 426 }; |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 history_list_offset_(-1), | 628 history_list_offset_(-1), |
624 history_list_length_(0), | 629 history_list_length_(0), |
625 frames_in_progress_(0), | 630 frames_in_progress_(0), |
626 target_url_status_(TARGET_NONE), | 631 target_url_status_(TARGET_NONE), |
627 uses_temporary_zoom_level_(false), | 632 uses_temporary_zoom_level_(false), |
628 #if defined(OS_ANDROID) | 633 #if defined(OS_ANDROID) |
629 top_controls_constraints_(TOP_CONTROLS_STATE_BOTH), | 634 top_controls_constraints_(TOP_CONTROLS_STATE_BOTH), |
630 #endif | 635 #endif |
631 has_scrolled_focused_editable_node_into_rect_(false), | 636 has_scrolled_focused_editable_node_into_rect_(false), |
632 speech_recognition_dispatcher_(NULL), | 637 speech_recognition_dispatcher_(NULL), |
633 devtools_agent_(NULL), | |
634 mouse_lock_dispatcher_(NULL), | 638 mouse_lock_dispatcher_(NULL), |
635 #if defined(OS_ANDROID) | 639 #if defined(OS_ANDROID) |
636 expected_content_intent_id_(0), | 640 expected_content_intent_id_(0), |
637 #endif | 641 #endif |
638 #if defined(OS_WIN) | 642 #if defined(OS_WIN) |
639 focused_plugin_id_(-1), | 643 focused_plugin_id_(-1), |
640 #endif | 644 #endif |
641 #if defined(ENABLE_PLUGINS) | 645 #if defined(ENABLE_PLUGINS) |
642 plugin_find_handler_(NULL), | 646 plugin_find_handler_(NULL), |
643 focused_pepper_plugin_(NULL), | 647 focused_pepper_plugin_(NULL), |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
761 OnResize(params.initial_size); | 765 OnResize(params.initial_size); |
762 } else { | 766 } else { |
763 OnEnableAutoResize(params.min_size, params.max_size); | 767 OnEnableAutoResize(params.min_size, params.max_size); |
764 } | 768 } |
765 | 769 |
766 new MHTMLGenerator(this); | 770 new MHTMLGenerator(this); |
767 #if defined(OS_MACOSX) | 771 #if defined(OS_MACOSX) |
768 new TextInputClientObserver(this); | 772 new TextInputClientObserver(this); |
769 #endif // defined(OS_MACOSX) | 773 #endif // defined(OS_MACOSX) |
770 | 774 |
| 775 // TODO(dgozman): do this not for main frame, but for local frame roots. |
| 776 if (blink::WebDevToolsAgent* devToolsAgent = GetWebDevToolsAgent(webview())) { |
| 777 if (RenderWidgetCompositor* rwc = compositor()) |
| 778 devToolsAgent->setLayerTreeId(rwc->GetLayerTreeId()); |
| 779 } |
| 780 |
771 // The next group of objects all implement RenderViewObserver, so are deleted | 781 // The next group of objects all implement RenderViewObserver, so are deleted |
772 // along with the RenderView automatically. | 782 // along with the RenderView automatically. |
773 if (!proxy) { | |
774 devtools_agent_ = new DevToolsAgent(main_render_frame_.get()); | |
775 if (RenderWidgetCompositor* rwc = compositor()) | |
776 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); | |
777 } | |
778 | |
779 mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this); | 783 mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this); |
780 | 784 |
781 history_controller_.reset(new HistoryController(this)); | 785 history_controller_.reset(new HistoryController(this)); |
782 | 786 |
783 new IdleUserDetector(this); | 787 new IdleUserDetector(this); |
784 | 788 |
785 if (command_line.HasSwitch(switches::kDomAutomationController)) | 789 if (command_line.HasSwitch(switches::kDomAutomationController)) |
786 enabled_bindings_ |= BINDINGS_POLICY_DOM_AUTOMATION; | 790 enabled_bindings_ |= BINDINGS_POLICY_DOM_AUTOMATION; |
787 if (command_line.HasSwitch(switches::kStatsCollectionController)) | 791 if (command_line.HasSwitch(switches::kStatsCollectionController)) |
788 enabled_bindings_ |= BINDINGS_POLICY_STATS_COLLECTION; | 792 enabled_bindings_ |= BINDINGS_POLICY_STATS_COLLECTION; |
(...skipping 1218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2007 Send(new ViewHostMsg_FocusedNodeTouched( | 2011 Send(new ViewHostMsg_FocusedNodeTouched( |
2008 routing_id(), text_input_type != blink::WebTextInputTypeNone)); | 2012 routing_id(), text_input_type != blink::WebTextInputTypeNone)); |
2009 #endif | 2013 #endif |
2010 } | 2014 } |
2011 | 2015 |
2012 void RenderViewImpl::initializeLayerTreeView() { | 2016 void RenderViewImpl::initializeLayerTreeView() { |
2013 RenderWidget::initializeLayerTreeView(); | 2017 RenderWidget::initializeLayerTreeView(); |
2014 RenderWidgetCompositor* rwc = compositor(); | 2018 RenderWidgetCompositor* rwc = compositor(); |
2015 if (!rwc) | 2019 if (!rwc) |
2016 return; | 2020 return; |
2017 if (webview() && webview()->devToolsAgent()) | 2021 // TODO(dgozman): do this not for main frame, but for local frame roots. |
2018 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); | 2022 if (blink::WebDevToolsAgent* devToolsAgent = GetWebDevToolsAgent(webview())) |
| 2023 devToolsAgent->setLayerTreeId(rwc->GetLayerTreeId()); |
2019 | 2024 |
2020 bool use_threaded_event_handling = true; | 2025 bool use_threaded_event_handling = true; |
2021 #if defined(OS_MACOSX) && !defined(OS_IOS) | 2026 #if defined(OS_MACOSX) && !defined(OS_IOS) |
2022 // Disable threaded event handling if content is not handling the elastic | 2027 // Disable threaded event handling if content is not handling the elastic |
2023 // overscroll effect. This includes the cases where the elastic overscroll | 2028 // overscroll effect. This includes the cases where the elastic overscroll |
2024 // effect is being handled by Blink (because of command line flags) and older | 2029 // effect is being handled by Blink (because of command line flags) and older |
2025 // operating system versions which do not have an elastic overscroll effect | 2030 // operating system versions which do not have an elastic overscroll effect |
2026 // (SnowLeopard, which has Aqua scrollbars which need synchronous updates). | 2031 // (SnowLeopard, which has Aqua scrollbars which need synchronous updates). |
2027 use_threaded_event_handling = compositor_deps_->IsElasticOverscrollEnabled(); | 2032 use_threaded_event_handling = compositor_deps_->IsElasticOverscrollEnabled(); |
2028 #endif | 2033 #endif |
(...skipping 1772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3801 std::vector<gfx::Size> sizes; | 3806 std::vector<gfx::Size> sizes; |
3802 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); | 3807 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); |
3803 if (!url.isEmpty()) | 3808 if (!url.isEmpty()) |
3804 urls.push_back( | 3809 urls.push_back( |
3805 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); | 3810 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); |
3806 } | 3811 } |
3807 SendUpdateFaviconURL(urls); | 3812 SendUpdateFaviconURL(urls); |
3808 } | 3813 } |
3809 | 3814 |
3810 } // namespace content | 3815 } // namespace content |
OLD | NEW |