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

Side by Side Diff: content/shell/webkit_test_runner_bindings.cc

Issue 11573035: [content shell] implement testRunner.execCommand (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add comment Created 8 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 | Annotate | Revision Log
« no previous file with comments | « content/shell/webkit_test_runner.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « content/shell/webkit_test_runner.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698