9
9
#include " base/path_service.h"
10
10
#include " base/strings/string_number_conversions.h"
11
11
#include " base/strings/utf_string_conversions.h"
12
+ #include " base/strings/stringprintf.h"
12
13
#include " content/public/browser/devtools_http_handler.h"
13
14
#include " content/public/browser/devtools_manager.h"
14
15
#include " content/public/browser/render_frame_host.h"
@@ -100,6 +101,7 @@ void ShellDevToolsFrontend::HandleMessageFromDevToolsFrontend(
100
101
const std::string& message) {
101
102
std::string method;
102
103
std::string browser_message;
104
+ std::string url;
103
105
int id = 0 ;
104
106
105
107
base::ListValue* params = NULL ;
@@ -112,16 +114,24 @@ void ShellDevToolsFrontend::HandleMessageFromDevToolsFrontend(
112
114
return ;
113
115
}
114
116
115
- if (method != " sendMessageToBrowser" ||
116
- params->GetSize () != 1 ||
117
- !params->GetString (0 , &browser_message)) {
117
+ // handle sendMessageToBrowser
118
+ if (method == " sendMessageToBrowser" &&
119
+ params->GetSize () == 1 &&
120
+ params->GetString (0 , &browser_message)) {
121
+ DevToolsManager::GetInstance ()->DispatchOnInspectorBackend (
122
+ this , browser_message);
123
+ // handle inspectedURLChanged
124
+ } else if (method == " inspectedURLChanged" &&
125
+ params->GetSize () == 1 &&
126
+ params->GetString (0 , &url)) {
127
+ InspectedURLChanged (url);
128
+ // ignore others
129
+ } else {
118
130
return ;
119
131
}
120
- dict->GetInteger (" id" , &id);
121
-
122
- DevToolsManager::GetInstance ()->DispatchOnInspectorBackend (
123
- this , browser_message);
124
132
133
+ dict->GetInteger (" id" , &id);
134
+
125
135
if (id) {
126
136
std::string code = " InspectorFrontendAPI.embedderMessageAck(" +
127
137
base::IntToString (id) + " ,\"\" );" ;
@@ -130,6 +140,14 @@ void ShellDevToolsFrontend::HandleMessageFromDevToolsFrontend(
130
140
}
131
141
}
132
142
143
+ void ShellDevToolsFrontend::InspectedURLChanged (const std::string& url) {
144
+ std::string title = base::StringPrintf (" Developer Tools - %s" , url.c_str ());
145
+ base::ReplaceChars (title, " \\ " , " \\\\ " , &title);
146
+ base::ReplaceChars (title, " \" " , " \\\" " , &title);
147
+ base::string16 javascript = base::UTF8ToUTF16 (base::StringPrintf (" document.title = \" %s\" " , title.c_str ()));
148
+ web_contents ()->GetMainFrame ()->ExecuteJavaScript (javascript);
149
+ }
150
+
133
151
void ShellDevToolsFrontend::HandleMessageFromDevToolsFrontendToBackend (
134
152
const std::string& message) {
135
153
DevToolsManager::GetInstance ()->DispatchOnInspectorBackend (
0 commit comments