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

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

Issue 1023783004: [DevTools] Move DevToolsAgent to RenderFrameImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed comments Created 5 years, 9 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') | no next file » | 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 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
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 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 408
410 static void ConvertToFaviconSizes( 409 static void ConvertToFaviconSizes(
411 const blink::WebVector<blink::WebSize>& web_sizes, 410 const blink::WebVector<blink::WebSize>& web_sizes,
412 std::vector<gfx::Size>* sizes) { 411 std::vector<gfx::Size>* sizes) {
413 DCHECK(sizes->empty()); 412 DCHECK(sizes->empty());
414 sizes->reserve(web_sizes.size()); 413 sizes->reserve(web_sizes.size());
415 for (size_t i = 0; i < web_sizes.size(); ++i) 414 for (size_t i = 0; i < web_sizes.size(); ++i)
416 sizes->push_back(gfx::Size(web_sizes[i])); 415 sizes->push_back(gfx::Size(web_sizes[i]));
417 } 416 }
418 417
418 static blink::WebDevToolsAgent* GetWebDevToolsAgent(WebView* webview) {
419 if (!webview || !webview->mainFrame()->isWebLocalFrame())
420 return nullptr;
421 return webview->mainFrame()->toWebLocalFrame()->devToolsAgent();
422 }
423
419 /////////////////////////////////////////////////////////////////////////////// 424 ///////////////////////////////////////////////////////////////////////////////
420 425
421 struct RenderViewImpl::PendingFileChooser { 426 struct RenderViewImpl::PendingFileChooser {
422 PendingFileChooser(const FileChooserParams& p, WebFileChooserCompletion* c) 427 PendingFileChooser(const FileChooserParams& p, WebFileChooserCompletion* c)
423 : params(p), 428 : params(p),
424 completion(c) { 429 completion(c) {
425 } 430 }
426 FileChooserParams params; 431 FileChooserParams params;
427 WebFileChooserCompletion* completion; // MAY BE NULL to skip callback. 432 WebFileChooserCompletion* completion; // MAY BE NULL to skip callback.
428 }; 433 };
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 history_list_offset_(-1), 635 history_list_offset_(-1),
631 history_list_length_(0), 636 history_list_length_(0),
632 frames_in_progress_(0), 637 frames_in_progress_(0),
633 target_url_status_(TARGET_NONE), 638 target_url_status_(TARGET_NONE),
634 uses_temporary_zoom_level_(false), 639 uses_temporary_zoom_level_(false),
635 #if defined(OS_ANDROID) 640 #if defined(OS_ANDROID)
636 top_controls_constraints_(TOP_CONTROLS_STATE_BOTH), 641 top_controls_constraints_(TOP_CONTROLS_STATE_BOTH),
637 #endif 642 #endif
638 has_scrolled_focused_editable_node_into_rect_(false), 643 has_scrolled_focused_editable_node_into_rect_(false),
639 speech_recognition_dispatcher_(NULL), 644 speech_recognition_dispatcher_(NULL),
640 devtools_agent_(NULL),
641 mouse_lock_dispatcher_(NULL), 645 mouse_lock_dispatcher_(NULL),
642 #if defined(OS_ANDROID) 646 #if defined(OS_ANDROID)
643 expected_content_intent_id_(0), 647 expected_content_intent_id_(0),
644 #endif 648 #endif
645 #if defined(OS_WIN) 649 #if defined(OS_WIN)
646 focused_plugin_id_(-1), 650 focused_plugin_id_(-1),
647 #endif 651 #endif
648 #if defined(ENABLE_PLUGINS) 652 #if defined(ENABLE_PLUGINS)
649 plugin_find_handler_(NULL), 653 plugin_find_handler_(NULL),
650 focused_pepper_plugin_(NULL), 654 focused_pepper_plugin_(NULL),
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 744
741 // In --site-per-process, just use the WebRemoteFrame as the main frame. 745 // In --site-per-process, just use the WebRemoteFrame as the main frame.
742 if (command_line.HasSwitch(switches::kSitePerProcess) && proxy) { 746 if (command_line.HasSwitch(switches::kSitePerProcess) && proxy) {
743 webview()->setMainFrame(proxy->web_frame()); 747 webview()->setMainFrame(proxy->web_frame());
744 // Initialize the WebRemoteFrame with information replicated from the 748 // Initialize the WebRemoteFrame with information replicated from the
745 // browser process. 749 // browser process.
746 proxy->SetReplicatedState(params.replicated_frame_state); 750 proxy->SetReplicatedState(params.replicated_frame_state);
747 } else { 751 } else {
748 webview()->setMainFrame(main_render_frame_->GetWebFrame()); 752 webview()->setMainFrame(main_render_frame_->GetWebFrame());
749 } 753 }
754 // Here we have |main_render_frame_|, which does not really have blink::Frame
755 // instance inside, and creating DevToolsAgent fails with assertions.
756 // This happens because WebView receives WebRemoteFrame as a main frame,
757 // but |main_render_frame_| still points to WebLocalFrame instance.
750 main_render_frame_->Initialize(); 758 main_render_frame_->Initialize();
dgozman 2015/03/25 16:25:50 This causes crash for me. See comment above. Any i
751 759
752 if (switches::IsTouchDragDropEnabled()) 760 if (switches::IsTouchDragDropEnabled())
753 webview()->settings()->setTouchDragDropEnabled(true); 761 webview()->settings()->setTouchDragDropEnabled(true);
754 762
755 if (switches::IsTouchEditingEnabled()) 763 if (switches::IsTouchEditingEnabled())
756 webview()->settings()->setTouchEditingEnabled(true); 764 webview()->settings()->setTouchEditingEnabled(true);
757 765
758 if (!params.frame_name.empty()) 766 if (!params.frame_name.empty())
759 webview()->mainFrame()->setName(params.frame_name); 767 webview()->mainFrame()->setName(params.frame_name);
760 768
761 // TODO(davidben): Move this state from Blink into content. 769 // TODO(davidben): Move this state from Blink into content.
762 if (params.window_was_created_with_opener) 770 if (params.window_was_created_with_opener)
763 webview()->setOpenedByDOM(); 771 webview()->setOpenedByDOM();
764 772
765 OnSetRendererPrefs(params.renderer_preferences); 773 OnSetRendererPrefs(params.renderer_preferences);
766 774
767 if (!params.enable_auto_resize) { 775 if (!params.enable_auto_resize) {
768 OnResize(params.initial_size); 776 OnResize(params.initial_size);
769 } else { 777 } else {
770 OnEnableAutoResize(params.min_size, params.max_size); 778 OnEnableAutoResize(params.min_size, params.max_size);
771 } 779 }
772 780
773 new MHTMLGenerator(this); 781 new MHTMLGenerator(this);
774 #if defined(OS_MACOSX) 782 #if defined(OS_MACOSX)
775 new TextInputClientObserver(this); 783 new TextInputClientObserver(this);
776 #endif // defined(OS_MACOSX) 784 #endif // defined(OS_MACOSX)
777 785
786 // TODO(dgozman): do this not for main frame, but for local frame roots.
787 if (blink::WebDevToolsAgent* devToolsAgent = GetWebDevToolsAgent(webview())) {
788 if (RenderWidgetCompositor* rwc = compositor())
789 devToolsAgent->setLayerTreeId(rwc->GetLayerTreeId());
790 }
791
778 // The next group of objects all implement RenderViewObserver, so are deleted 792 // The next group of objects all implement RenderViewObserver, so are deleted
779 // along with the RenderView automatically. 793 // along with the RenderView automatically.
780 if (!proxy) {
781 devtools_agent_ = new DevToolsAgent(main_render_frame_.get());
782 if (RenderWidgetCompositor* rwc = compositor())
783 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId());
784 }
785
786 mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this); 794 mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this);
787 795
788 history_controller_.reset(new HistoryController(this)); 796 history_controller_.reset(new HistoryController(this));
789 797
790 new IdleUserDetector(this); 798 new IdleUserDetector(this);
791 799
792 if (command_line.HasSwitch(switches::kDomAutomationController)) 800 if (command_line.HasSwitch(switches::kDomAutomationController))
793 enabled_bindings_ |= BINDINGS_POLICY_DOM_AUTOMATION; 801 enabled_bindings_ |= BINDINGS_POLICY_DOM_AUTOMATION;
794 if (command_line.HasSwitch(switches::kStatsCollectionController)) 802 if (command_line.HasSwitch(switches::kStatsCollectionController))
795 enabled_bindings_ |= BINDINGS_POLICY_STATS_COLLECTION; 803 enabled_bindings_ |= BINDINGS_POLICY_STATS_COLLECTION;
(...skipping 1218 matching lines...) Expand 10 before | Expand all | Expand 10 after
2014 Send(new ViewHostMsg_FocusedNodeTouched( 2022 Send(new ViewHostMsg_FocusedNodeTouched(
2015 routing_id(), text_input_type != blink::WebTextInputTypeNone)); 2023 routing_id(), text_input_type != blink::WebTextInputTypeNone));
2016 #endif 2024 #endif
2017 } 2025 }
2018 2026
2019 void RenderViewImpl::initializeLayerTreeView() { 2027 void RenderViewImpl::initializeLayerTreeView() {
2020 RenderWidget::initializeLayerTreeView(); 2028 RenderWidget::initializeLayerTreeView();
2021 RenderWidgetCompositor* rwc = compositor(); 2029 RenderWidgetCompositor* rwc = compositor();
2022 if (!rwc) 2030 if (!rwc)
2023 return; 2031 return;
2024 if (webview() && webview()->devToolsAgent()) 2032 // TODO(dgozman): do this not for main frame, but for local frame roots.
2025 webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); 2033 if (blink::WebDevToolsAgent* devToolsAgent = GetWebDevToolsAgent(webview()))
2034 devToolsAgent->setLayerTreeId(rwc->GetLayerTreeId());
2026 2035
2027 bool use_threaded_event_handling = true; 2036 bool use_threaded_event_handling = true;
2028 #if defined(OS_MACOSX) && !defined(OS_IOS) 2037 #if defined(OS_MACOSX) && !defined(OS_IOS)
2029 // Disable threaded event handling if content is not handling the elastic 2038 // Disable threaded event handling if content is not handling the elastic
2030 // overscroll effect. This includes the cases where the elastic overscroll 2039 // overscroll effect. This includes the cases where the elastic overscroll
2031 // effect is being handled by Blink (because of command line flags) and older 2040 // effect is being handled by Blink (because of command line flags) and older
2032 // operating system versions which do not have an elastic overscroll effect 2041 // operating system versions which do not have an elastic overscroll effect
2033 // (SnowLeopard, which has Aqua scrollbars which need synchronous updates). 2042 // (SnowLeopard, which has Aqua scrollbars which need synchronous updates).
2034 use_threaded_event_handling = compositor_deps_->IsElasticOverscrollEnabled(); 2043 use_threaded_event_handling = compositor_deps_->IsElasticOverscrollEnabled();
2035 #endif 2044 #endif
(...skipping 1927 matching lines...) Expand 10 before | Expand all | Expand 10 after
3963 std::vector<gfx::Size> sizes; 3972 std::vector<gfx::Size> sizes;
3964 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 3973 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
3965 if (!url.isEmpty()) 3974 if (!url.isEmpty())
3966 urls.push_back( 3975 urls.push_back(
3967 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 3976 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
3968 } 3977 }
3969 SendUpdateFaviconURL(urls); 3978 SendUpdateFaviconURL(urls);
3970 } 3979 }
3971 3980
3972 } // namespace content 3981 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698