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 "content/shell/renderer/test_runner/test_runner.h" | 5 #include "content/shell/renderer/test_runner/test_runner.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "content/shell/common/test_runner/test_preferences.h" | 10 #include "content/shell/common/test_runner/test_preferences.h" |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 void AddMockSpeechRecognitionResult(const std::string& transcript, | 274 void AddMockSpeechRecognitionResult(const std::string& transcript, |
275 double confidence); | 275 double confidence); |
276 void SetMockSpeechRecognitionError(const std::string& error, | 276 void SetMockSpeechRecognitionError(const std::string& error, |
277 const std::string& message); | 277 const std::string& message); |
278 bool WasMockSpeechRecognitionAborted(); | 278 bool WasMockSpeechRecognitionAborted(); |
279 void AddWebPageOverlay(); | 279 void AddWebPageOverlay(); |
280 void RemoveWebPageOverlay(); | 280 void RemoveWebPageOverlay(); |
281 void DisplayAsync(); | 281 void DisplayAsync(); |
282 void DisplayAsyncThen(v8::Handle<v8::Function> callback); | 282 void DisplayAsyncThen(v8::Handle<v8::Function> callback); |
283 void CapturePixelsAsyncThen(v8::Handle<v8::Function> callback); | 283 void CapturePixelsAsyncThen(v8::Handle<v8::Function> callback); |
| 284 void CopyImageAtAndCapturePixelsAsyncThen(int x, |
| 285 int y, |
| 286 v8::Handle<v8::Function> callback); |
284 void SetCustomTextOutput(std::string output); | 287 void SetCustomTextOutput(std::string output); |
285 void SetViewSourceForFrame(const std::string& name, bool enabled); | 288 void SetViewSourceForFrame(const std::string& name, bool enabled); |
286 void SetMockPushClientSuccess(const std::string& endpoint, | 289 void SetMockPushClientSuccess(const std::string& endpoint, |
287 const std::string& registration_id); | 290 const std::string& registration_id); |
288 void SetMockPushClientError(const std::string& message); | 291 void SetMockPushClientError(const std::string& message); |
289 | 292 |
290 bool GlobalFlag(); | 293 bool GlobalFlag(); |
291 void SetGlobalFlag(bool value); | 294 void SetGlobalFlag(bool value); |
292 std::string PlatformName(); | 295 std::string PlatformName(); |
293 std::string TooltipText(); | 296 std::string TooltipText(); |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 &TestRunnerBindings::SetMockSpeechRecognitionError) | 524 &TestRunnerBindings::SetMockSpeechRecognitionError) |
522 .SetMethod("wasMockSpeechRecognitionAborted", | 525 .SetMethod("wasMockSpeechRecognitionAborted", |
523 &TestRunnerBindings::WasMockSpeechRecognitionAborted) | 526 &TestRunnerBindings::WasMockSpeechRecognitionAborted) |
524 .SetMethod("addWebPageOverlay", &TestRunnerBindings::AddWebPageOverlay) | 527 .SetMethod("addWebPageOverlay", &TestRunnerBindings::AddWebPageOverlay) |
525 .SetMethod("removeWebPageOverlay", | 528 .SetMethod("removeWebPageOverlay", |
526 &TestRunnerBindings::RemoveWebPageOverlay) | 529 &TestRunnerBindings::RemoveWebPageOverlay) |
527 .SetMethod("displayAsync", &TestRunnerBindings::DisplayAsync) | 530 .SetMethod("displayAsync", &TestRunnerBindings::DisplayAsync) |
528 .SetMethod("displayAsyncThen", &TestRunnerBindings::DisplayAsyncThen) | 531 .SetMethod("displayAsyncThen", &TestRunnerBindings::DisplayAsyncThen) |
529 .SetMethod("capturePixelsAsyncThen", | 532 .SetMethod("capturePixelsAsyncThen", |
530 &TestRunnerBindings::CapturePixelsAsyncThen) | 533 &TestRunnerBindings::CapturePixelsAsyncThen) |
| 534 .SetMethod("copyImageAtAndCapturePixelsAsyncThen", |
| 535 &TestRunnerBindings::CopyImageAtAndCapturePixelsAsyncThen) |
531 .SetMethod("setCustomTextOutput", | 536 .SetMethod("setCustomTextOutput", |
532 &TestRunnerBindings::SetCustomTextOutput) | 537 &TestRunnerBindings::SetCustomTextOutput) |
533 .SetMethod("setViewSourceForFrame", | 538 .SetMethod("setViewSourceForFrame", |
534 &TestRunnerBindings::SetViewSourceForFrame) | 539 &TestRunnerBindings::SetViewSourceForFrame) |
535 .SetMethod("setMockPushClientSuccess", | 540 .SetMethod("setMockPushClientSuccess", |
536 &TestRunnerBindings::SetMockPushClientSuccess) | 541 &TestRunnerBindings::SetMockPushClientSuccess) |
537 .SetMethod("setMockPushClientError", | 542 .SetMethod("setMockPushClientError", |
538 &TestRunnerBindings::SetMockPushClientError) | 543 &TestRunnerBindings::SetMockPushClientError) |
539 | 544 |
540 // Properties. | 545 // Properties. |
(...skipping 802 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1343 if (runner_) | 1348 if (runner_) |
1344 runner_->DisplayAsyncThen(callback); | 1349 runner_->DisplayAsyncThen(callback); |
1345 } | 1350 } |
1346 | 1351 |
1347 void TestRunnerBindings::CapturePixelsAsyncThen( | 1352 void TestRunnerBindings::CapturePixelsAsyncThen( |
1348 v8::Handle<v8::Function> callback) { | 1353 v8::Handle<v8::Function> callback) { |
1349 if (runner_) | 1354 if (runner_) |
1350 runner_->CapturePixelsAsyncThen(callback); | 1355 runner_->CapturePixelsAsyncThen(callback); |
1351 } | 1356 } |
1352 | 1357 |
| 1358 void TestRunnerBindings::CopyImageAtAndCapturePixelsAsyncThen( |
| 1359 int x, int y, v8::Handle<v8::Function> callback) { |
| 1360 if (runner_) |
| 1361 runner_->CopyImageAtAndCapturePixelsAsyncThen(x, y, callback); |
| 1362 } |
| 1363 |
1353 void TestRunnerBindings::SetCustomTextOutput(std::string output) { | 1364 void TestRunnerBindings::SetCustomTextOutput(std::string output) { |
1354 runner_->setCustomTextOutput(output); | 1365 runner_->setCustomTextOutput(output); |
1355 } | 1366 } |
1356 | 1367 |
1357 void TestRunnerBindings::SetViewSourceForFrame(const std::string& name, | 1368 void TestRunnerBindings::SetViewSourceForFrame(const std::string& name, |
1358 bool enabled) { | 1369 bool enabled) { |
1359 if (runner_ && runner_->web_view_) { | 1370 if (runner_ && runner_->web_view_) { |
1360 WebFrame* target_frame = | 1371 WebFrame* target_frame = |
1361 runner_->web_view_->findFrameByName(WebString::fromUTF8(name)); | 1372 runner_->web_view_->findFrameByName(WebString::fromUTF8(name)); |
1362 if (target_frame) | 1373 if (target_frame) |
(...skipping 1419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2782 } | 2793 } |
2783 | 2794 |
2784 void TestRunner::CapturePixelsAsyncThen(v8::Handle<v8::Function> callback) { | 2795 void TestRunner::CapturePixelsAsyncThen(v8::Handle<v8::Function> callback) { |
2785 scoped_ptr<InvokeCallbackTask> task( | 2796 scoped_ptr<InvokeCallbackTask> task( |
2786 new InvokeCallbackTask(this, callback)); | 2797 new InvokeCallbackTask(this, callback)); |
2787 proxy_->CapturePixelsAsync(base::Bind(&TestRunner::CapturePixelsCallback, | 2798 proxy_->CapturePixelsAsync(base::Bind(&TestRunner::CapturePixelsCallback, |
2788 base::Unretained(this), | 2799 base::Unretained(this), |
2789 base::Passed(&task))); | 2800 base::Passed(&task))); |
2790 } | 2801 } |
2791 | 2802 |
| 2803 void TestRunner::CopyImageAtAndCapturePixelsAsyncThen( |
| 2804 int x, int y, v8::Handle<v8::Function> callback) { |
| 2805 scoped_ptr<InvokeCallbackTask> task( |
| 2806 new InvokeCallbackTask(this, callback)); |
| 2807 proxy_->CopyImageAtAndCapturePixels( |
| 2808 x, y, base::Bind(&TestRunner::CapturePixelsCallback, |
| 2809 base::Unretained(this), |
| 2810 base::Passed(&task))); |
| 2811 } |
| 2812 |
2792 void TestRunner::CapturePixelsCallback(scoped_ptr<InvokeCallbackTask> task, | 2813 void TestRunner::CapturePixelsCallback(scoped_ptr<InvokeCallbackTask> task, |
2793 const SkBitmap& snapshot) { | 2814 const SkBitmap& snapshot) { |
2794 v8::Isolate* isolate = blink::mainThreadIsolate(); | 2815 v8::Isolate* isolate = blink::mainThreadIsolate(); |
2795 v8::HandleScope handle_scope(isolate); | 2816 v8::HandleScope handle_scope(isolate); |
2796 | 2817 |
2797 v8::Handle<v8::Context> context = | 2818 v8::Handle<v8::Context> context = |
2798 web_view_->mainFrame()->mainWorldScriptContext(); | 2819 web_view_->mainFrame()->mainWorldScriptContext(); |
2799 if (context.IsEmpty()) | 2820 if (context.IsEmpty()) |
2800 return; | 2821 return; |
2801 | 2822 |
2802 v8::Context::Scope context_scope(context); | 2823 v8::Context::Scope context_scope(context); |
2803 v8::Handle<v8::Value> argv[3]; | 2824 v8::Handle<v8::Value> argv[3]; |
2804 SkAutoLockPixels snapshot_lock(snapshot); | 2825 SkAutoLockPixels snapshot_lock(snapshot); |
2805 | 2826 |
| 2827 // Size can be 0 for cases where copyImageAt was called on position |
| 2828 // that doesn't have an image. |
2806 int width = snapshot.info().fWidth; | 2829 int width = snapshot.info().fWidth; |
2807 DCHECK_NE(0, width); | |
2808 argv[0] = v8::Number::New(isolate, width); | 2830 argv[0] = v8::Number::New(isolate, width); |
2809 | 2831 |
2810 int height = snapshot.info().fHeight; | 2832 int height = snapshot.info().fHeight; |
2811 DCHECK_NE(0, height); | |
2812 argv[1] = v8::Number::New(isolate, height); | 2833 argv[1] = v8::Number::New(isolate, height); |
2813 | 2834 |
2814 blink::WebArrayBuffer buffer = | 2835 blink::WebArrayBuffer buffer = |
2815 blink::WebArrayBuffer::create(snapshot.getSize(), 1); | 2836 blink::WebArrayBuffer::create(snapshot.getSize(), 1); |
2816 memcpy(buffer.data(), snapshot.getPixels(), buffer.byteLength()); | 2837 memcpy(buffer.data(), snapshot.getPixels(), buffer.byteLength()); |
2817 #if (SK_R32_SHIFT == 16) && !SK_B32_SHIFT | 2838 #if (SK_R32_SHIFT == 16) && !SK_B32_SHIFT |
2818 { | 2839 { |
2819 // Skia's internal byte order is BGRA. Must swap the B and R channels in | 2840 // Skia's internal byte order is BGRA. Must swap the B and R channels in |
2820 // order to provide a consistent ordering to the layout tests. | 2841 // order to provide a consistent ordering to the layout tests. |
2821 unsigned char* pixels = static_cast<unsigned char*>(buffer.data()); | 2842 unsigned char* pixels = static_cast<unsigned char*>(buffer.data()); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2889 } | 2910 } |
2890 | 2911 |
2891 void TestRunner::DidLosePointerLockInternal() { | 2912 void TestRunner::DidLosePointerLockInternal() { |
2892 bool was_locked = pointer_locked_; | 2913 bool was_locked = pointer_locked_; |
2893 pointer_locked_ = false; | 2914 pointer_locked_ = false; |
2894 if (was_locked) | 2915 if (was_locked) |
2895 web_view_->didLosePointerLock(); | 2916 web_view_->didLosePointerLock(); |
2896 } | 2917 } |
2897 | 2918 |
2898 } // namespace content | 2919 } // namespace content |
OLD | NEW |