aw_devtools_manager_delegate.cc 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. #include "android_webview/browser/aw_devtools_manager_delegate.h"
  5. #include "android_webview/browser/gfx/browser_view_renderer.h"
  6. #include "android_webview/common/aw_content_client.h"
  7. #include "base/json/json_writer.h"
  8. #include "base/memory/ptr_util.h"
  9. #include "base/strings/utf_string_conversions.h"
  10. #include "content/public/browser/devtools_agent_host.h"
  11. #include "content/public/browser/web_contents.h"
  12. using content::DevToolsAgentHost;
  13. namespace android_webview {
  14. AwDevToolsManagerDelegate::AwDevToolsManagerDelegate() {
  15. }
  16. AwDevToolsManagerDelegate::~AwDevToolsManagerDelegate() {
  17. }
  18. std::string AwDevToolsManagerDelegate::GetTargetDescription(
  19. content::WebContents* web_contents) {
  20. android_webview::BrowserViewRenderer* bvr =
  21. android_webview::BrowserViewRenderer::FromWebContents(web_contents);
  22. if (!bvr)
  23. return "";
  24. base::DictionaryValue description;
  25. description.SetBoolKey("attached", bvr->attached_to_window());
  26. description.SetBoolKey("never_attached", !bvr->was_attached());
  27. description.SetBoolKey("visible", bvr->IsVisible());
  28. gfx::Rect screen_rect = bvr->GetScreenRect();
  29. description.SetIntKey("screenX", screen_rect.x());
  30. description.SetIntKey("screenY", screen_rect.y());
  31. description.SetBoolKey("empty", screen_rect.size().IsEmpty());
  32. if (!screen_rect.size().IsEmpty()) {
  33. description.SetIntKey("width", screen_rect.width());
  34. description.SetIntKey("height", screen_rect.height());
  35. }
  36. std::string json;
  37. base::JSONWriter::Write(description, &json);
  38. return json;
  39. }
  40. std::string AwDevToolsManagerDelegate::GetDiscoveryPageHTML() {
  41. const char html[] =
  42. "<html>"
  43. "<head><title>WebView remote debugging</title></head>"
  44. "<body>Please use <a href=\'chrome://inspect\'>chrome://inspect</a>"
  45. "</body>"
  46. "</html>";
  47. return html;
  48. }
  49. bool AwDevToolsManagerDelegate::IsBrowserTargetDiscoverable() {
  50. return true;
  51. }
  52. } // namespace android_webview