OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/devtools/devtools_ui_bindings.h" | 5 #include "chrome/browser/devtools/devtools_ui_bindings.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
861 } | 861 } |
862 | 862 |
863 bool DevToolsUIBindings::IsAttachedTo(content::DevToolsAgentHost* agent_host) { | 863 bool DevToolsUIBindings::IsAttachedTo(content::DevToolsAgentHost* agent_host) { |
864 return agent_host_.get() == agent_host; | 864 return agent_host_.get() == agent_host; |
865 } | 865 } |
866 | 866 |
867 void DevToolsUIBindings::CallClientFunction(const std::string& function_name, | 867 void DevToolsUIBindings::CallClientFunction(const std::string& function_name, |
868 const base::Value* arg1, | 868 const base::Value* arg1, |
869 const base::Value* arg2, | 869 const base::Value* arg2, |
870 const base::Value* arg3) { | 870 const base::Value* arg3) { |
871 std::string params; | 871 std::string javascript = function_name + "("; |
872 if (arg1) { | 872 if (arg1) { |
873 std::string json; | 873 std::string json; |
874 base::JSONWriter::Write(arg1, &json); | 874 base::JSONWriter::Write(arg1, &json); |
875 params.append(json); | 875 javascript.append(json); |
876 if (arg2) { | 876 if (arg2) { |
877 base::JSONWriter::Write(arg2, &json); | 877 base::JSONWriter::Write(arg2, &json); |
878 params.append(", " + json); | 878 javascript.append(", ").append(json); |
879 if (arg3) { | 879 if (arg3) { |
880 base::JSONWriter::Write(arg3, &json); | 880 base::JSONWriter::Write(arg3, &json); |
881 params.append(", " + json); | 881 javascript.append(", ").append(json); |
882 } | 882 } |
883 } | 883 } |
884 } | 884 } |
885 | 885 javascript.append(");"); |
886 base::string16 javascript = base::UTF8ToUTF16( | 886 web_contents_->GetMainFrame()->ExecuteJavaScript( |
887 function_name + "(" + params + ");"); | 887 base::UTF8ToUTF16(javascript)); |
888 web_contents_->GetMainFrame()->ExecuteJavaScript(javascript); | |
889 } | 888 } |
890 | 889 |
891 void DevToolsUIBindings::DocumentOnLoadCompletedInMainFrame() { | 890 void DevToolsUIBindings::DocumentOnLoadCompletedInMainFrame() { |
892 // In the DEBUG_DEVTOOLS mode, the DocumentOnLoadCompletedInMainFrame event | 891 // In the DEBUG_DEVTOOLS mode, the DocumentOnLoadCompletedInMainFrame event |
893 // arrives before the LoadCompleted event, thus it should not trigger the | 892 // arrives before the LoadCompleted event, thus it should not trigger the |
894 // frontend load handling. | 893 // frontend load handling. |
895 #if !defined(DEBUG_DEVTOOLS) | 894 #if !defined(DEBUG_DEVTOOLS) |
896 FrontendLoaded(); | 895 FrontendLoaded(); |
897 #endif | 896 #endif |
898 } | 897 } |
899 | 898 |
900 void DevToolsUIBindings::DidNavigateMainFrame() { | 899 void DevToolsUIBindings::DidNavigateMainFrame() { |
901 frontend_loaded_ = false; | 900 frontend_loaded_ = false; |
902 } | 901 } |
903 | 902 |
904 void DevToolsUIBindings::FrontendLoaded() { | 903 void DevToolsUIBindings::FrontendLoaded() { |
905 if (frontend_loaded_) | 904 if (frontend_loaded_) |
906 return; | 905 return; |
907 frontend_loaded_ = true; | 906 frontend_loaded_ = true; |
908 | 907 |
909 // Call delegate first - it seeds importants bit of information. | 908 // Call delegate first - it seeds importants bit of information. |
910 delegate_->OnLoadCompleted(); | 909 delegate_->OnLoadCompleted(); |
911 | 910 |
912 UpdateTheme(); | 911 UpdateTheme(); |
913 AddDevToolsExtensionsToClient(); | 912 AddDevToolsExtensionsToClient(); |
914 } | 913 } |
OLD | NEW |