OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/shell/webkit_test_runner_bindings.h" | 5 #include "content/shell/webkit_test_runner_bindings.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/string_piece.h" | 8 #include "base/string_piece.h" |
9 #include "content/public/renderer/render_view.h" | 9 #include "content/public/renderer/render_view.h" |
10 #include "content/shell/shell_render_process_observer.h" | 10 #include "content/shell/shell_render_process_observer.h" |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 WebKitTestRunner* runner = | 151 WebKitTestRunner* runner = |
152 ShellRenderProcessObserver::GetInstance()->main_test_runner(); | 152 ShellRenderProcessObserver::GetInstance()->main_test_runner(); |
153 if (!runner) | 153 if (!runner) |
154 return v8::Undefined(); | 154 return v8::Undefined(); |
155 | 155 |
156 runner->EvaluateInWebInspector(args[0]->Int32Value(), | 156 runner->EvaluateInWebInspector(args[0]->Int32Value(), |
157 *v8::String::AsciiValue(args[1])); | 157 *v8::String::AsciiValue(args[1])); |
158 return v8::Undefined(); | 158 return v8::Undefined(); |
159 } | 159 } |
160 | 160 |
| 161 v8::Handle<v8::Value> ExecCommand(const v8::Arguments& args) { |
| 162 // This method takes one, two, or three parameters, however, we only care |
| 163 // about the first and third parameter which (if present) need to be strings. |
| 164 // We ignore the second parameter (user interface) since this command |
| 165 // emulates a manual action. |
| 166 if (args.Length() == 0 || args.Length() > 3) |
| 167 return v8::Undefined(); |
| 168 |
| 169 if (!args[0]->IsString() || (args.Length() == 3 && !args[2]->IsString())) |
| 170 return v8::Undefined(); |
| 171 |
| 172 WebKitTestRunner* runner = |
| 173 ShellRenderProcessObserver::GetInstance()->main_test_runner(); |
| 174 if (!runner) |
| 175 return v8::Undefined(); |
| 176 |
| 177 std::string command(*v8::String::AsciiValue(args[0])); |
| 178 std::string value; |
| 179 if (args.Length() == 3) |
| 180 value = *v8::String::AsciiValue(args[2]); |
| 181 |
| 182 runner->ExecCommand(command, value); |
| 183 return v8::Undefined(); |
| 184 } |
| 185 |
161 v8::Handle<v8::Value> GetGlobalFlag(const v8::Arguments& args) { | 186 v8::Handle<v8::Value> GetGlobalFlag(const v8::Arguments& args) { |
162 return v8::Boolean::New(g_global_flag); | 187 return v8::Boolean::New(g_global_flag); |
163 } | 188 } |
164 | 189 |
165 v8::Handle<v8::Value> SetGlobalFlag(const v8::Arguments& args) { | 190 v8::Handle<v8::Value> SetGlobalFlag(const v8::Arguments& args) { |
166 if (args.Length() == 1 && args[0]->IsBoolean()) | 191 if (args.Length() == 1 && args[0]->IsBoolean()) |
167 g_global_flag = args[0]->BooleanValue(); | 192 g_global_flag = args[0]->BooleanValue(); |
168 return v8::Undefined(); | 193 return v8::Undefined(); |
169 } | 194 } |
170 | 195 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 if (name->Equals(v8::String::New("SetXSSAuditorEnabled"))) | 255 if (name->Equals(v8::String::New("SetXSSAuditorEnabled"))) |
231 return v8::FunctionTemplate::New(SetXSSAuditorEnabled); | 256 return v8::FunctionTemplate::New(SetXSSAuditorEnabled); |
232 if (name->Equals(v8::String::New("GetWorkerThreadCount"))) | 257 if (name->Equals(v8::String::New("GetWorkerThreadCount"))) |
233 return v8::FunctionTemplate::New(GetWorkerThreadCount); | 258 return v8::FunctionTemplate::New(GetWorkerThreadCount); |
234 if (name->Equals(v8::String::New("ShowWebInspector"))) | 259 if (name->Equals(v8::String::New("ShowWebInspector"))) |
235 return v8::FunctionTemplate::New(ShowWebInspector); | 260 return v8::FunctionTemplate::New(ShowWebInspector); |
236 if (name->Equals(v8::String::New("CloseWebInspector"))) | 261 if (name->Equals(v8::String::New("CloseWebInspector"))) |
237 return v8::FunctionTemplate::New(CloseWebInspector); | 262 return v8::FunctionTemplate::New(CloseWebInspector); |
238 if (name->Equals(v8::String::New("EvaluateInWebInspector"))) | 263 if (name->Equals(v8::String::New("EvaluateInWebInspector"))) |
239 return v8::FunctionTemplate::New(EvaluateInWebInspector); | 264 return v8::FunctionTemplate::New(EvaluateInWebInspector); |
| 265 if (name->Equals(v8::String::New("ExecCommand"))) |
| 266 return v8::FunctionTemplate::New(ExecCommand); |
240 if (name->Equals(v8::String::New("GetGlobalFlag"))) | 267 if (name->Equals(v8::String::New("GetGlobalFlag"))) |
241 return v8::FunctionTemplate::New(GetGlobalFlag); | 268 return v8::FunctionTemplate::New(GetGlobalFlag); |
242 if (name->Equals(v8::String::New("SetGlobalFlag"))) | 269 if (name->Equals(v8::String::New("SetGlobalFlag"))) |
243 return v8::FunctionTemplate::New(SetGlobalFlag); | 270 return v8::FunctionTemplate::New(SetGlobalFlag); |
244 if (name->Equals(v8::String::New("NotImplemented"))) | 271 if (name->Equals(v8::String::New("NotImplemented"))) |
245 return v8::FunctionTemplate::New(NotImplemented); | 272 return v8::FunctionTemplate::New(NotImplemented); |
246 | 273 |
247 NOTREACHED(); | 274 NOTREACHED(); |
248 return v8::FunctionTemplate::New(); | 275 return v8::FunctionTemplate::New(); |
249 } | 276 } |
250 | 277 |
251 } // namespace content | 278 } // namespace content |
OLD | NEW |