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

Side by Side Diff: chrome/browser/devtools/devtools_ui_bindings.cc

Issue 784513002: DevTools: speed up DevToolsUIBindings::DispatchProtocolMessage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments addressed Created 6 years 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 | « no previous file | content/shell/browser/shell_devtools_frontend.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 static const char kFrontendHostId[] = "id"; 63 static const char kFrontendHostId[] = "id";
64 static const char kFrontendHostMethod[] = "method"; 64 static const char kFrontendHostMethod[] = "method";
65 static const char kFrontendHostParams[] = "params"; 65 static const char kFrontendHostParams[] = "params";
66 static const char kTitleFormat[] = "Developer Tools - %s"; 66 static const char kTitleFormat[] = "Developer Tools - %s";
67 67
68 static const char kDevToolsActionTakenHistogram[] = "DevTools.ActionTaken"; 68 static const char kDevToolsActionTakenHistogram[] = "DevTools.ActionTaken";
69 static const int kDevToolsActionTakenBoundary = 100; 69 static const int kDevToolsActionTakenBoundary = 100;
70 static const char kDevToolsPanelShownHistogram[] = "DevTools.PanelShown"; 70 static const char kDevToolsPanelShownHistogram[] = "DevTools.PanelShown";
71 static const int kDevToolsPanelShownBoundary = 20; 71 static const int kDevToolsPanelShownBoundary = 20;
72 72
73 // This constant should be in sync with
74 // the constant at shell_devtools_frontend.cc.
73 const size_t kMaxMessageChunkSize = IPC::Channel::kMaximumMessageSize / 4; 75 const size_t kMaxMessageChunkSize = IPC::Channel::kMaximumMessageSize / 4;
74 76
75 typedef std::vector<DevToolsUIBindings*> DevToolsUIBindingsList; 77 typedef std::vector<DevToolsUIBindings*> DevToolsUIBindingsList;
76 base::LazyInstance<DevToolsUIBindingsList>::Leaky g_instances = 78 base::LazyInstance<DevToolsUIBindingsList>::Leaky g_instances =
77 LAZY_INSTANCE_INITIALIZER; 79 LAZY_INSTANCE_INITIALIZER;
78 80
79 std::string SkColorToRGBAString(SkColor color) { 81 std::string SkColorToRGBAString(SkColor color) {
80 // We avoid StringPrintf because it will use locale specific formatters for 82 // We avoid StringPrintf because it will use locale specific formatters for
81 // the double (e.g. ',' instead of '.' in German). 83 // the double (e.g. ',' instead of '.' in German).
82 return "rgba(" + base::IntToString(SkColorGetR(color)) + "," + 84 return "rgba(" + base::IntToString(SkColorGetR(color)) + "," +
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 if (agent_host_.get()) 444 if (agent_host_.get())
443 agent_host_->DispatchProtocolMessage(message); 445 agent_host_->DispatchProtocolMessage(message);
444 } 446 }
445 447
446 // content::DevToolsAgentHostClient implementation -------------------------- 448 // content::DevToolsAgentHostClient implementation --------------------------
447 void DevToolsUIBindings::DispatchProtocolMessage( 449 void DevToolsUIBindings::DispatchProtocolMessage(
448 content::DevToolsAgentHost* agent_host, const std::string& message) { 450 content::DevToolsAgentHost* agent_host, const std::string& message) {
449 DCHECK(agent_host == agent_host_.get()); 451 DCHECK(agent_host == agent_host_.get());
450 452
451 if (message.length() < kMaxMessageChunkSize) { 453 if (message.length() < kMaxMessageChunkSize) {
452 base::StringValue message_value(message); 454 base::string16 javascript = base::UTF8ToUTF16(
453 CallClientFunction("DevToolsAPI.dispatchMessage", 455 "DevToolsAPI.dispatchMessage(" + message + ");");
454 &message_value, NULL, NULL); 456 web_contents_->GetMainFrame()->ExecuteJavaScript(javascript);
455 return; 457 return;
456 } 458 }
457 459
458 base::FundamentalValue total_size(static_cast<int>(message.length())); 460 base::FundamentalValue total_size(static_cast<int>(message.length()));
459 for (size_t pos = 0; pos < message.length(); pos += kMaxMessageChunkSize) { 461 for (size_t pos = 0; pos < message.length(); pos += kMaxMessageChunkSize) {
460 base::StringValue message_value(message.substr(pos, kMaxMessageChunkSize)); 462 base::StringValue message_value(message.substr(pos, kMaxMessageChunkSize));
461 CallClientFunction("DevToolsAPI.dispatchMessageChunk", 463 CallClientFunction("DevToolsAPI.dispatchMessageChunk",
462 &message_value, pos ? NULL : &total_size, NULL); 464 &message_value, pos ? NULL : &total_size, NULL);
463 } 465 }
464 } 466 }
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
901 if (frontend_loaded_) 903 if (frontend_loaded_)
902 return; 904 return;
903 frontend_loaded_ = true; 905 frontend_loaded_ = true;
904 906
905 // Call delegate first - it seeds importants bit of information. 907 // Call delegate first - it seeds importants bit of information.
906 delegate_->OnLoadCompleted(); 908 delegate_->OnLoadCompleted();
907 909
908 UpdateTheme(); 910 UpdateTheme();
909 AddDevToolsExtensionsToClient(); 911 AddDevToolsExtensionsToClient();
910 } 912 }
OLDNEW
« no previous file with comments | « no previous file | content/shell/browser/shell_devtools_frontend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698