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

Side by Side Diff: content/browser/devtools/render_frame_devtools_agent_host.cc

Issue 2263843002: DevTools: merge devtools target with devtools host, part 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for landing 3 Created 4 years, 3 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
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/browser/devtools/render_frame_devtools_agent_host.h" 5 #include "content/browser/devtools/render_frame_devtools_agent_host.h"
6 6
7 #include <tuple> 7 #include <tuple>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/guid.h"
10 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
11 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
12 #include "build/build_config.h" 13 #include "build/build_config.h"
13 #include "content/browser/bad_message.h" 14 #include "content/browser/bad_message.h"
14 #include "content/browser/child_process_security_policy_impl.h" 15 #include "content/browser/child_process_security_policy_impl.h"
15 #include "content/browser/devtools/devtools_frame_trace_recorder.h" 16 #include "content/browser/devtools/devtools_frame_trace_recorder.h"
17 #include "content/browser/devtools/devtools_manager.h"
16 #include "content/browser/devtools/devtools_protocol_handler.h" 18 #include "content/browser/devtools/devtools_protocol_handler.h"
17 #include "content/browser/devtools/page_navigation_throttle.h" 19 #include "content/browser/devtools/page_navigation_throttle.h"
18 #include "content/browser/devtools/protocol/browser_handler.h" 20 #include "content/browser/devtools/protocol/browser_handler.h"
19 #include "content/browser/devtools/protocol/dom_handler.h" 21 #include "content/browser/devtools/protocol/dom_handler.h"
20 #include "content/browser/devtools/protocol/emulation_handler.h" 22 #include "content/browser/devtools/protocol/emulation_handler.h"
21 #include "content/browser/devtools/protocol/input_handler.h" 23 #include "content/browser/devtools/protocol/input_handler.h"
22 #include "content/browser/devtools/protocol/inspector_handler.h" 24 #include "content/browser/devtools/protocol/inspector_handler.h"
23 #include "content/browser/devtools/protocol/io_handler.h" 25 #include "content/browser/devtools/protocol/io_handler.h"
24 #include "content/browser/devtools/protocol/network_handler.h" 26 #include "content/browser/devtools/protocol/network_handler.h"
25 #include "content/browser/devtools/protocol/page_handler.h" 27 #include "content/browser/devtools/protocol/page_handler.h"
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 // main frame. 365 // main frame.
364 if (agent_host && agent_host->page_handler_) { 366 if (agent_host && agent_host->page_handler_) {
365 return agent_host->page_handler_->CreateThrottleForNavigation( 367 return agent_host->page_handler_->CreateThrottleForNavigation(
366 navigation_handle); 368 navigation_handle);
367 } 369 }
368 return nullptr; 370 return nullptr;
369 } 371 }
370 372
371 RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( 373 RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
372 RenderFrameHostImpl* host) 374 RenderFrameHostImpl* host)
373 : browser_handler_(new devtools::browser::BrowserHandler()), 375 : DevToolsAgentHostImpl(base::GenerateGUID()),
376 browser_handler_(new devtools::browser::BrowserHandler()),
374 dom_handler_(new devtools::dom::DOMHandler()), 377 dom_handler_(new devtools::dom::DOMHandler()),
375 input_handler_(new devtools::input::InputHandler()), 378 input_handler_(new devtools::input::InputHandler()),
376 inspector_handler_(new devtools::inspector::InspectorHandler()), 379 inspector_handler_(new devtools::inspector::InspectorHandler()),
377 io_handler_(new devtools::io::IOHandler(GetIOContext())), 380 io_handler_(new devtools::io::IOHandler(GetIOContext())),
378 network_handler_(new devtools::network::NetworkHandler()), 381 network_handler_(new devtools::network::NetworkHandler()),
379 page_handler_(nullptr), 382 page_handler_(nullptr),
380 schema_handler_(new devtools::schema::SchemaHandler()), 383 schema_handler_(new devtools::schema::SchemaHandler()),
381 security_handler_(nullptr), 384 security_handler_(nullptr),
382 service_worker_handler_( 385 service_worker_handler_(
383 new devtools::service_worker::ServiceWorkerHandler()), 386 new devtools::service_worker::ServiceWorkerHandler()),
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 RenderFrameHostImpl* host = 856 RenderFrameHostImpl* host =
854 static_cast<RenderFrameHostImpl*>(wc->GetMainFrame()); 857 static_cast<RenderFrameHostImpl*>(wc->GetMainFrame());
855 DCHECK(host); 858 DCHECK(host);
856 frame_tree_node_ = host->frame_tree_node(); 859 frame_tree_node_ = host->frame_tree_node();
857 current_ = std::move(disconnected_); 860 current_ = std::move(disconnected_);
858 SetPending(host); 861 SetPending(host);
859 CommitPending(); 862 CommitPending();
860 WebContentsObserver::Observe(WebContents::FromRenderFrameHost(host)); 863 WebContentsObserver::Observe(WebContents::FromRenderFrameHost(host));
861 } 864 }
862 865
863 DevToolsAgentHost::Type RenderFrameDevToolsAgentHost::GetType() { 866 std::string RenderFrameDevToolsAgentHost::GetParentId() {
864 return IsChildFrame() ? TYPE_FRAME : TYPE_WEB_CONTENTS; 867 if (IsChildFrame()) {
868 RenderFrameHostImpl* frame_host = current_->host();
869 while (frame_host && !ShouldCreateDevToolsFor(frame_host))
870 frame_host = frame_host->GetParent();
871 if (frame_host)
872 return DevToolsAgentHost::GetOrCreateFor(frame_host)->GetId();
873 }
874
875 WebContentsImpl* contents = static_cast<WebContentsImpl*>(web_contents());
876 if (!contents)
877 return "";
878 contents = contents->GetOuterWebContents();
879 if (contents)
880 return DevToolsAgentHost::GetOrCreateFor(contents)->GetId();
881 return "";
882 }
883
884 std::string RenderFrameDevToolsAgentHost::GetType() {
885 DevToolsManager* manager = DevToolsManager::GetInstance();
886 if (manager->delegate())
887 return manager->delegate()->GetTargetType(current_->host());
888 return kTypeOther;
865 } 889 }
866 890
867 std::string RenderFrameDevToolsAgentHost::GetTitle() { 891 std::string RenderFrameDevToolsAgentHost::GetTitle() {
868 if (IsChildFrame()) 892 DevToolsManager* manager = DevToolsManager::GetInstance();
869 return GetURL().spec(); 893 std::string result;
870 if (WebContents* web_contents = GetWebContents()) 894 if (manager->delegate())
871 return base::UTF16ToUTF8(web_contents->GetTitle()); 895 result = manager->delegate()->GetTargetTitle(current_->host());
896 if (!result.empty())
897 return result;
898 content::WebContents* web_contents = GetWebContents();
899 if (web_contents)
900 result = base::UTF16ToUTF8(web_contents->GetTitle());
901 return GetURL().spec();
902 }
903
904 std::string RenderFrameDevToolsAgentHost::GetDescription() {
872 return ""; 905 return "";
873 } 906 }
874 907
875 GURL RenderFrameDevToolsAgentHost::GetURL() { 908 GURL RenderFrameDevToolsAgentHost::GetURL() {
876 // Order is important here. 909 // Order is important here.
877 WebContents* web_contents = GetWebContents(); 910 WebContents* web_contents = GetWebContents();
878 if (web_contents && !IsChildFrame()) 911 if (web_contents && !IsChildFrame())
879 return web_contents->GetVisibleURL(); 912 return web_contents->GetVisibleURL();
880 if (pending_) 913 if (pending_)
881 return pending_->host()->GetLastCommittedURL(); 914 return pending_->host()->GetLastCommittedURL();
882 if (current_) 915 if (current_)
883 return current_->host()->GetLastCommittedURL(); 916 return current_->host()->GetLastCommittedURL();
884 return GURL(); 917 return GURL();
885 } 918 }
886 919
920 GURL RenderFrameDevToolsAgentHost::GetFaviconURL() {
921 return GURL();
922 }
923
887 bool RenderFrameDevToolsAgentHost::Activate() { 924 bool RenderFrameDevToolsAgentHost::Activate() {
888 WebContentsImpl* wc = static_cast<WebContentsImpl*>(web_contents()); 925 WebContentsImpl* wc = static_cast<WebContentsImpl*>(web_contents());
889 if (wc) { 926 if (wc) {
890 wc->Activate(); 927 wc->Activate();
891 return true; 928 return true;
892 } 929 }
893 return false; 930 return false;
894 } 931 }
895 932
933 void RenderFrameDevToolsAgentHost::Reload() {
934 WebContentsImpl* wc = static_cast<WebContentsImpl*>(web_contents());
935 if (wc)
936 wc->GetController().Reload(true);
937 }
938
896 bool RenderFrameDevToolsAgentHost::Close() { 939 bool RenderFrameDevToolsAgentHost::Close() {
897 if (web_contents()) { 940 if (web_contents()) {
898 web_contents()->ClosePage(); 941 web_contents()->ClosePage();
899 return true; 942 return true;
900 } 943 }
901 return false; 944 return false;
902 } 945 }
903 946
947 base::TimeTicks RenderFrameDevToolsAgentHost::GetLastActivityTime() {
948 if (content::WebContents* contents = web_contents())
949 return contents->GetLastActiveTime();
950 return base::TimeTicks();
951 }
952
904 void RenderFrameDevToolsAgentHost::OnSwapCompositorFrame( 953 void RenderFrameDevToolsAgentHost::OnSwapCompositorFrame(
905 const IPC::Message& message) { 954 const IPC::Message& message) {
906 ViewHostMsg_SwapCompositorFrame::Param param; 955 ViewHostMsg_SwapCompositorFrame::Param param;
907 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, &param)) 956 if (!ViewHostMsg_SwapCompositorFrame::Read(&message, &param))
908 return; 957 return;
909 if (page_handler_) 958 if (page_handler_)
910 page_handler_->OnSwapCompositorFrame( 959 page_handler_->OnSwapCompositorFrame(
911 std::move(std::get<1>(param).metadata)); 960 std::move(std::get<1>(param).metadata));
912 if (input_handler_) 961 if (input_handler_)
913 input_handler_->OnSwapCompositorFrame(std::get<1>(param).metadata); 962 input_handler_->OnSwapCompositorFrame(std::get<1>(param).metadata);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 void RenderFrameDevToolsAgentHost::OnRequestNewWindow( 997 void RenderFrameDevToolsAgentHost::OnRequestNewWindow(
949 RenderFrameHost* sender, 998 RenderFrameHost* sender,
950 int new_routing_id) { 999 int new_routing_id) {
951 RenderFrameHostImpl* frame_host = RenderFrameHostImpl::FromID( 1000 RenderFrameHostImpl* frame_host = RenderFrameHostImpl::FromID(
952 sender->GetProcess()->GetID(), new_routing_id); 1001 sender->GetProcess()->GetID(), new_routing_id);
953 1002
954 bool success = false; 1003 bool success = false;
955 if (IsAttached() && sender->GetRoutingID() != new_routing_id && frame_host) { 1004 if (IsAttached() && sender->GetRoutingID() != new_routing_id && frame_host) {
956 scoped_refptr<DevToolsAgentHost> agent = 1005 scoped_refptr<DevToolsAgentHost> agent =
957 DevToolsAgentHost::GetOrCreateFor(frame_host); 1006 DevToolsAgentHost::GetOrCreateFor(frame_host);
958 success = static_cast<DevToolsAgentHostImpl*>(agent.get())-> 1007 success = agent->Inspect();
959 Inspect(agent->GetBrowserContext());
960 } 1008 }
961 1009
962 sender->Send(new DevToolsAgentMsg_RequestNewWindow_ACK( 1010 sender->Send(new DevToolsAgentMsg_RequestNewWindow_ACK(
963 sender->GetRoutingID(), success)); 1011 sender->GetRoutingID(), success));
964 } 1012 }
965 1013
966 bool RenderFrameDevToolsAgentHost::HasRenderFrameHost( 1014 bool RenderFrameDevToolsAgentHost::HasRenderFrameHost(
967 RenderFrameHost* host) { 1015 RenderFrameHost* host) {
968 return (current_ && current_->host() == host) || 1016 return (current_ && current_->host() == host) ||
969 (pending_ && pending_->host() == host); 1017 (pending_ && pending_->host() == host);
970 } 1018 }
971 1019
972 bool RenderFrameDevToolsAgentHost::IsChildFrame() { 1020 bool RenderFrameDevToolsAgentHost::IsChildFrame() {
973 return current_ && current_->host()->GetParent(); 1021 return current_ && current_->host()->GetParent();
974 } 1022 }
975 1023
976 } // namespace content 1024 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698