1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "android_webview/browser/aw_devtools_manager_delegate.h" 6 7 #include "android_webview/browser/gfx/browser_view_renderer.h" 8 #include "android_webview/common/aw_content_client.h" 9 #include "base/json/json_writer.h" 10 #include "base/memory/ptr_util.h" 11 #include "base/strings/stringprintf.h" 12 #include "base/strings/utf_string_conversions.h" 13 #include "content/public/browser/devtools_agent_host.h" 14 #include "content/public/browser/web_contents.h" 15 16 using content::DevToolsAgentHost; 17 18 namespace android_webview { 19 AwDevToolsManagerDelegate()20AwDevToolsManagerDelegate::AwDevToolsManagerDelegate() { 21 } 22 ~AwDevToolsManagerDelegate()23AwDevToolsManagerDelegate::~AwDevToolsManagerDelegate() { 24 } 25 GetTargetDescription(content::WebContents * web_contents)26std::string AwDevToolsManagerDelegate::GetTargetDescription( 27 content::WebContents* web_contents) { 28 android_webview::BrowserViewRenderer* bvr = 29 android_webview::BrowserViewRenderer::FromWebContents(web_contents); 30 if (!bvr) 31 return ""; 32 base::DictionaryValue description; 33 description.SetBoolean("attached", bvr->attached_to_window()); 34 description.SetBoolean("never_attached", !bvr->was_attached()); 35 description.SetBoolean("visible", bvr->IsVisible()); 36 gfx::Rect screen_rect = bvr->GetScreenRect(); 37 description.SetInteger("screenX", screen_rect.x()); 38 description.SetInteger("screenY", screen_rect.y()); 39 description.SetBoolean("empty", screen_rect.size().IsEmpty()); 40 if (!screen_rect.size().IsEmpty()) { 41 description.SetInteger("width", screen_rect.width()); 42 description.SetInteger("height", screen_rect.height()); 43 } 44 std::string json; 45 base::JSONWriter::Write(description, &json); 46 return json; 47 } 48 GetDiscoveryPageHTML()49std::string AwDevToolsManagerDelegate::GetDiscoveryPageHTML() { 50 const char html[] = 51 "<html>" 52 "<head><title>WebView remote debugging</title></head>" 53 "<body>Please use <a href=\'chrome://inspect\'>chrome://inspect</a>" 54 "</body>" 55 "</html>"; 56 return html; 57 } 58 IsBrowserTargetDiscoverable()59bool AwDevToolsManagerDelegate::IsBrowserTargetDiscoverable() { 60 return true; 61 } 62 63 } // namespace android_webview 64