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/renderer/gpu/gpu_benchmarking_extension.h" | 5 #include "content/renderer/gpu/gpu_benchmarking_extension.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 if (args->PeekNext()->IsUndefined()) { | 136 if (args->PeekNext()->IsUndefined()) { |
137 args->Skip(); | 137 args->Skip(); |
138 return true; | 138 return true; |
139 } | 139 } |
140 return GetArg(args, value); | 140 return GetArg(args, value); |
141 } | 141 } |
142 | 142 |
143 class CallbackAndContext : public base::RefCounted<CallbackAndContext> { | 143 class CallbackAndContext : public base::RefCounted<CallbackAndContext> { |
144 public: | 144 public: |
145 CallbackAndContext(v8::Isolate* isolate, | 145 CallbackAndContext(v8::Isolate* isolate, |
146 v8::Handle<v8::Function> callback, | 146 v8::Local<v8::Function> callback, |
147 v8::Handle<v8::Context> context) | 147 v8::Local<v8::Context> context) |
148 : isolate_(isolate) { | 148 : isolate_(isolate) { |
149 callback_.Reset(isolate_, callback); | 149 callback_.Reset(isolate_, callback); |
150 context_.Reset(isolate_, context); | 150 context_.Reset(isolate_, context); |
151 } | 151 } |
152 | 152 |
153 v8::Isolate* isolate() { | 153 v8::Isolate* isolate() { |
154 return isolate_; | 154 return isolate_; |
155 } | 155 } |
156 | 156 |
157 v8::Handle<v8::Function> GetCallback() { | 157 v8::Local<v8::Function> GetCallback() { |
158 return v8::Local<v8::Function>::New(isolate_, callback_); | 158 return v8::Local<v8::Function>::New(isolate_, callback_); |
159 } | 159 } |
160 | 160 |
161 v8::Handle<v8::Context> GetContext() { | 161 v8::Local<v8::Context> GetContext() { |
162 return v8::Local<v8::Context>::New(isolate_, context_); | 162 return v8::Local<v8::Context>::New(isolate_, context_); |
163 } | 163 } |
164 | 164 |
165 private: | 165 private: |
166 friend class base::RefCounted<CallbackAndContext>; | 166 friend class base::RefCounted<CallbackAndContext>; |
167 | 167 |
168 virtual ~CallbackAndContext() { | 168 virtual ~CallbackAndContext() { |
169 callback_.Reset(); | 169 callback_.Reset(); |
170 context_.Reset(); | 170 context_.Reset(); |
171 } | 171 } |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 RenderWidgetCompositor* compositor_; | 240 RenderWidgetCompositor* compositor_; |
241 | 241 |
242 DISALLOW_COPY_AND_ASSIGN(GpuBenchmarkingContext); | 242 DISALLOW_COPY_AND_ASSIGN(GpuBenchmarkingContext); |
243 }; | 243 }; |
244 | 244 |
245 void OnMicroBenchmarkCompleted( | 245 void OnMicroBenchmarkCompleted( |
246 CallbackAndContext* callback_and_context, | 246 CallbackAndContext* callback_and_context, |
247 scoped_ptr<base::Value> result) { | 247 scoped_ptr<base::Value> result) { |
248 v8::Isolate* isolate = callback_and_context->isolate(); | 248 v8::Isolate* isolate = callback_and_context->isolate(); |
249 v8::HandleScope scope(isolate); | 249 v8::HandleScope scope(isolate); |
250 v8::Handle<v8::Context> context = callback_and_context->GetContext(); | 250 v8::Local<v8::Context> context = callback_and_context->GetContext(); |
251 v8::Context::Scope context_scope(context); | 251 v8::Context::Scope context_scope(context); |
252 WebLocalFrame* frame = WebLocalFrame::frameForContext(context); | 252 WebLocalFrame* frame = WebLocalFrame::frameForContext(context); |
253 if (frame) { | 253 if (frame) { |
254 scoped_ptr<V8ValueConverter> converter = | 254 scoped_ptr<V8ValueConverter> converter = |
255 make_scoped_ptr(V8ValueConverter::create()); | 255 make_scoped_ptr(V8ValueConverter::create()); |
256 v8::Handle<v8::Value> value = converter->ToV8Value(result.get(), context); | 256 v8::Local<v8::Value> value = converter->ToV8Value(result.get(), context); |
257 v8::Handle<v8::Value> argv[] = { value }; | 257 v8::Local<v8::Value> argv[] = { value }; |
258 | 258 |
259 frame->callFunctionEvenIfScriptDisabled( | 259 frame->callFunctionEvenIfScriptDisabled( |
260 callback_and_context->GetCallback(), | 260 callback_and_context->GetCallback(), |
261 v8::Object::New(isolate), | 261 v8::Object::New(isolate), |
262 1, | 262 1, |
263 argv); | 263 argv); |
264 } | 264 } |
265 } | 265 } |
266 | 266 |
267 void OnSyntheticGestureCompleted(CallbackAndContext* callback_and_context) { | 267 void OnSyntheticGestureCompleted(CallbackAndContext* callback_and_context) { |
268 v8::Isolate* isolate = callback_and_context->isolate(); | 268 v8::Isolate* isolate = callback_and_context->isolate(); |
269 v8::HandleScope scope(isolate); | 269 v8::HandleScope scope(isolate); |
270 v8::Handle<v8::Context> context = callback_and_context->GetContext(); | 270 v8::Local<v8::Context> context = callback_and_context->GetContext(); |
271 v8::Context::Scope context_scope(context); | 271 v8::Context::Scope context_scope(context); |
272 WebLocalFrame* frame = WebLocalFrame::frameForContext(context); | 272 WebLocalFrame* frame = WebLocalFrame::frameForContext(context); |
273 if (frame) { | 273 if (frame) { |
274 frame->callFunctionEvenIfScriptDisabled( | 274 frame->callFunctionEvenIfScriptDisabled( |
275 callback_and_context->GetCallback(), v8::Object::New(isolate), 0, NULL); | 275 callback_and_context->GetCallback(), v8::Object::New(isolate), 0, NULL); |
276 } | 276 } |
277 } | 277 } |
278 | 278 |
279 bool BeginSmoothScroll(v8::Isolate* isolate, | 279 bool BeginSmoothScroll(v8::Isolate* isolate, |
280 float pixels_to_scroll, | 280 float pixels_to_scroll, |
281 v8::Handle<v8::Function> callback, | 281 v8::Local<v8::Function> callback, |
282 int gesture_source_type, | 282 int gesture_source_type, |
283 const std::string& direction, | 283 const std::string& direction, |
284 float speed_in_pixels_s, | 284 float speed_in_pixels_s, |
285 bool prevent_fling, | 285 bool prevent_fling, |
286 float start_x, | 286 float start_x, |
287 float start_y) { | 287 float start_y) { |
288 GpuBenchmarkingContext context; | 288 GpuBenchmarkingContext context; |
289 if (!context.Init(false)) | 289 if (!context.Init(false)) |
290 return false; | 290 return false; |
291 | 291 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 base::Bind(&OnSyntheticGestureCompleted, callback_and_context)); | 348 base::Bind(&OnSyntheticGestureCompleted, callback_and_context)); |
349 | 349 |
350 return true; | 350 return true; |
351 } | 351 } |
352 | 352 |
353 bool BeginSmoothDrag(v8::Isolate* isolate, | 353 bool BeginSmoothDrag(v8::Isolate* isolate, |
354 float start_x, | 354 float start_x, |
355 float start_y, | 355 float start_y, |
356 float end_x, | 356 float end_x, |
357 float end_y, | 357 float end_y, |
358 v8::Handle<v8::Function> callback, | 358 v8::Local<v8::Function> callback, |
359 int gesture_source_type, | 359 int gesture_source_type, |
360 float speed_in_pixels_s) { | 360 float speed_in_pixels_s) { |
361 GpuBenchmarkingContext context; | 361 GpuBenchmarkingContext context; |
362 if (!context.Init(false)) | 362 if (!context.Init(false)) |
363 return false; | 363 return false; |
364 scoped_refptr<CallbackAndContext> callback_and_context = | 364 scoped_refptr<CallbackAndContext> callback_and_context = |
365 new CallbackAndContext(isolate, callback, | 365 new CallbackAndContext(isolate, callback, |
366 context.web_frame()->mainWorldScriptContext()); | 366 context.web_frame()->mainWorldScriptContext()); |
367 | 367 |
368 scoped_ptr<SyntheticSmoothDragGestureParams> gesture_params( | 368 scoped_ptr<SyntheticSmoothDragGestureParams> gesture_params( |
(...skipping 24 matching lines...) Expand all Loading... |
393 } | 393 } |
394 | 394 |
395 } // namespace | 395 } // namespace |
396 | 396 |
397 gin::WrapperInfo GpuBenchmarking::kWrapperInfo = {gin::kEmbedderNativeGin}; | 397 gin::WrapperInfo GpuBenchmarking::kWrapperInfo = {gin::kEmbedderNativeGin}; |
398 | 398 |
399 // static | 399 // static |
400 void GpuBenchmarking::Install(blink::WebFrame* frame) { | 400 void GpuBenchmarking::Install(blink::WebFrame* frame) { |
401 v8::Isolate* isolate = blink::mainThreadIsolate(); | 401 v8::Isolate* isolate = blink::mainThreadIsolate(); |
402 v8::HandleScope handle_scope(isolate); | 402 v8::HandleScope handle_scope(isolate); |
403 v8::Handle<v8::Context> context = frame->mainWorldScriptContext(); | 403 v8::Local<v8::Context> context = frame->mainWorldScriptContext(); |
404 if (context.IsEmpty()) | 404 if (context.IsEmpty()) |
405 return; | 405 return; |
406 | 406 |
407 v8::Context::Scope context_scope(context); | 407 v8::Context::Scope context_scope(context); |
408 | 408 |
409 gin::Handle<GpuBenchmarking> controller = | 409 gin::Handle<GpuBenchmarking> controller = |
410 gin::CreateHandle(isolate, new GpuBenchmarking()); | 410 gin::CreateHandle(isolate, new GpuBenchmarking()); |
411 if (controller.IsEmpty()) | 411 if (controller.IsEmpty()) |
412 return; | 412 return; |
413 | 413 |
414 v8::Handle<v8::Object> chrome = GetOrCreateChromeObject(isolate, | 414 v8::Local<v8::Object> chrome = GetOrCreateChromeObject(isolate, |
415 context->Global()); | 415 context->Global()); |
416 chrome->Set(gin::StringToV8(isolate, "gpuBenchmarking"), controller.ToV8()); | 416 chrome->Set(gin::StringToV8(isolate, "gpuBenchmarking"), controller.ToV8()); |
417 } | 417 } |
418 | 418 |
419 GpuBenchmarking::GpuBenchmarking() { | 419 GpuBenchmarking::GpuBenchmarking() { |
420 } | 420 } |
421 | 421 |
422 GpuBenchmarking::~GpuBenchmarking() { | 422 GpuBenchmarking::~GpuBenchmarking() { |
423 } | 423 } |
424 | 424 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 | 504 |
505 bool GpuBenchmarking::SmoothScrollBy(gin::Arguments* args) { | 505 bool GpuBenchmarking::SmoothScrollBy(gin::Arguments* args) { |
506 GpuBenchmarkingContext context; | 506 GpuBenchmarkingContext context; |
507 if (!context.Init(true)) | 507 if (!context.Init(true)) |
508 return false; | 508 return false; |
509 | 509 |
510 float page_scale_factor = context.web_view()->pageScaleFactor(); | 510 float page_scale_factor = context.web_view()->pageScaleFactor(); |
511 blink::WebRect rect = context.render_view_impl()->windowRect(); | 511 blink::WebRect rect = context.render_view_impl()->windowRect(); |
512 | 512 |
513 float pixels_to_scroll = 0; | 513 float pixels_to_scroll = 0; |
514 v8::Handle<v8::Function> callback; | 514 v8::Local<v8::Function> callback; |
515 float start_x = rect.width / (page_scale_factor * 2); | 515 float start_x = rect.width / (page_scale_factor * 2); |
516 float start_y = rect.height / (page_scale_factor * 2); | 516 float start_y = rect.height / (page_scale_factor * 2); |
517 int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; | 517 int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; |
518 std::string direction = "down"; | 518 std::string direction = "down"; |
519 float speed_in_pixels_s = 800; | 519 float speed_in_pixels_s = 800; |
520 | 520 |
521 if (!GetOptionalArg(args, &pixels_to_scroll) || | 521 if (!GetOptionalArg(args, &pixels_to_scroll) || |
522 !GetOptionalArg(args, &callback) || | 522 !GetOptionalArg(args, &callback) || |
523 !GetOptionalArg(args, &start_x) || | 523 !GetOptionalArg(args, &start_x) || |
524 !GetOptionalArg(args, &start_y) || | 524 !GetOptionalArg(args, &start_y) || |
(...skipping 16 matching lines...) Expand all Loading... |
541 | 541 |
542 bool GpuBenchmarking::SmoothDrag(gin::Arguments* args) { | 542 bool GpuBenchmarking::SmoothDrag(gin::Arguments* args) { |
543 GpuBenchmarkingContext context; | 543 GpuBenchmarkingContext context; |
544 if (!context.Init(true)) | 544 if (!context.Init(true)) |
545 return false; | 545 return false; |
546 | 546 |
547 float start_x; | 547 float start_x; |
548 float start_y; | 548 float start_y; |
549 float end_x; | 549 float end_x; |
550 float end_y; | 550 float end_y; |
551 v8::Handle<v8::Function> callback; | 551 v8::Local<v8::Function> callback; |
552 int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; | 552 int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; |
553 float speed_in_pixels_s = 800; | 553 float speed_in_pixels_s = 800; |
554 | 554 |
555 if (!GetArg(args, &start_x) || | 555 if (!GetArg(args, &start_x) || |
556 !GetArg(args, &start_y) || | 556 !GetArg(args, &start_y) || |
557 !GetArg(args, &end_x) || | 557 !GetArg(args, &end_x) || |
558 !GetArg(args, &end_y) || | 558 !GetArg(args, &end_y) || |
559 !GetOptionalArg(args, &callback) || | 559 !GetOptionalArg(args, &callback) || |
560 !GetOptionalArg(args, &gesture_source_type) || | 560 !GetOptionalArg(args, &gesture_source_type) || |
561 !GetOptionalArg(args, &speed_in_pixels_s)) { | 561 !GetOptionalArg(args, &speed_in_pixels_s)) { |
(...skipping 13 matching lines...) Expand all Loading... |
575 bool GpuBenchmarking::Swipe(gin::Arguments* args) { | 575 bool GpuBenchmarking::Swipe(gin::Arguments* args) { |
576 GpuBenchmarkingContext context; | 576 GpuBenchmarkingContext context; |
577 if (!context.Init(true)) | 577 if (!context.Init(true)) |
578 return false; | 578 return false; |
579 | 579 |
580 float page_scale_factor = context.web_view()->pageScaleFactor(); | 580 float page_scale_factor = context.web_view()->pageScaleFactor(); |
581 blink::WebRect rect = context.render_view_impl()->windowRect(); | 581 blink::WebRect rect = context.render_view_impl()->windowRect(); |
582 | 582 |
583 std::string direction = "up"; | 583 std::string direction = "up"; |
584 float pixels_to_scroll = 0; | 584 float pixels_to_scroll = 0; |
585 v8::Handle<v8::Function> callback; | 585 v8::Local<v8::Function> callback; |
586 float start_x = rect.width / (page_scale_factor * 2); | 586 float start_x = rect.width / (page_scale_factor * 2); |
587 float start_y = rect.height / (page_scale_factor * 2); | 587 float start_y = rect.height / (page_scale_factor * 2); |
588 float speed_in_pixels_s = 800; | 588 float speed_in_pixels_s = 800; |
589 | 589 |
590 if (!GetOptionalArg(args, &direction) || | 590 if (!GetOptionalArg(args, &direction) || |
591 !GetOptionalArg(args, &pixels_to_scroll) || | 591 !GetOptionalArg(args, &pixels_to_scroll) || |
592 !GetOptionalArg(args, &callback) || | 592 !GetOptionalArg(args, &callback) || |
593 !GetOptionalArg(args, &start_x) || | 593 !GetOptionalArg(args, &start_x) || |
594 !GetOptionalArg(args, &start_y) || | 594 !GetOptionalArg(args, &start_y) || |
595 !GetOptionalArg(args, &speed_in_pixels_s)) { | 595 !GetOptionalArg(args, &speed_in_pixels_s)) { |
(...skipping 16 matching lines...) Expand all Loading... |
612 if (!context.Init(false)) | 612 if (!context.Init(false)) |
613 return false; | 613 return false; |
614 | 614 |
615 float page_scale_factor = context.web_view()->pageScaleFactor(); | 615 float page_scale_factor = context.web_view()->pageScaleFactor(); |
616 blink::WebRect rect = context.render_view_impl()->windowRect(); | 616 blink::WebRect rect = context.render_view_impl()->windowRect(); |
617 | 617 |
618 std::string direction = "down"; | 618 std::string direction = "down"; |
619 float distance_length = 0; | 619 float distance_length = 0; |
620 float overscroll_length = 0; | 620 float overscroll_length = 0; |
621 int repeat_count = 1; | 621 int repeat_count = 1; |
622 v8::Handle<v8::Function> callback; | 622 v8::Local<v8::Function> callback; |
623 float start_x = rect.width / (page_scale_factor * 2); | 623 float start_x = rect.width / (page_scale_factor * 2); |
624 float start_y = rect.height / (page_scale_factor * 2); | 624 float start_y = rect.height / (page_scale_factor * 2); |
625 float speed_in_pixels_s = 800; | 625 float speed_in_pixels_s = 800; |
626 | 626 |
627 if (!GetOptionalArg(args, &direction) || | 627 if (!GetOptionalArg(args, &direction) || |
628 !GetOptionalArg(args, &distance_length) || | 628 !GetOptionalArg(args, &distance_length) || |
629 !GetOptionalArg(args, &overscroll_length) || | 629 !GetOptionalArg(args, &overscroll_length) || |
630 !GetOptionalArg(args, &repeat_count) || | 630 !GetOptionalArg(args, &repeat_count) || |
631 !GetOptionalArg(args, &callback) || | 631 !GetOptionalArg(args, &callback) || |
632 !GetOptionalArg(args, &start_x) || | 632 !GetOptionalArg(args, &start_x) || |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 } | 684 } |
685 | 685 |
686 bool GpuBenchmarking::PinchBy(gin::Arguments* args) { | 686 bool GpuBenchmarking::PinchBy(gin::Arguments* args) { |
687 GpuBenchmarkingContext context; | 687 GpuBenchmarkingContext context; |
688 if (!context.Init(false)) | 688 if (!context.Init(false)) |
689 return false; | 689 return false; |
690 | 690 |
691 float scale_factor; | 691 float scale_factor; |
692 float anchor_x; | 692 float anchor_x; |
693 float anchor_y; | 693 float anchor_y; |
694 v8::Handle<v8::Function> callback; | 694 v8::Local<v8::Function> callback; |
695 float relative_pointer_speed_in_pixels_s = 800; | 695 float relative_pointer_speed_in_pixels_s = 800; |
696 | 696 |
697 | 697 |
698 if (!GetArg(args, &scale_factor) || | 698 if (!GetArg(args, &scale_factor) || |
699 !GetArg(args, &anchor_x) || | 699 !GetArg(args, &anchor_x) || |
700 !GetArg(args, &anchor_y) || | 700 !GetArg(args, &anchor_y) || |
701 !GetOptionalArg(args, &callback) || | 701 !GetOptionalArg(args, &callback) || |
702 !GetOptionalArg(args, &relative_pointer_speed_in_pixels_s)) { | 702 !GetOptionalArg(args, &relative_pointer_speed_in_pixels_s)) { |
703 return false; | 703 return false; |
704 } | 704 } |
(...skipping 26 matching lines...) Expand all Loading... |
731 return true; | 731 return true; |
732 } | 732 } |
733 | 733 |
734 bool GpuBenchmarking::Tap(gin::Arguments* args) { | 734 bool GpuBenchmarking::Tap(gin::Arguments* args) { |
735 GpuBenchmarkingContext context; | 735 GpuBenchmarkingContext context; |
736 if (!context.Init(false)) | 736 if (!context.Init(false)) |
737 return false; | 737 return false; |
738 | 738 |
739 float position_x; | 739 float position_x; |
740 float position_y; | 740 float position_y; |
741 v8::Handle<v8::Function> callback; | 741 v8::Local<v8::Function> callback; |
742 int duration_ms = 50; | 742 int duration_ms = 50; |
743 int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; | 743 int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; |
744 | 744 |
745 if (!GetArg(args, &position_x) || | 745 if (!GetArg(args, &position_x) || |
746 !GetArg(args, &position_y) || | 746 !GetArg(args, &position_y) || |
747 !GetOptionalArg(args, &callback) || | 747 !GetOptionalArg(args, &callback) || |
748 !GetOptionalArg(args, &duration_ms) || | 748 !GetOptionalArg(args, &duration_ms) || |
749 !GetOptionalArg(args, &gesture_source_type)) { | 749 !GetOptionalArg(args, &gesture_source_type)) { |
750 return false; | 750 return false; |
751 } | 751 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
786 void GpuBenchmarking::ClearImageCache() { | 786 void GpuBenchmarking::ClearImageCache() { |
787 WebImageCache::clear(); | 787 WebImageCache::clear(); |
788 } | 788 } |
789 | 789 |
790 int GpuBenchmarking::RunMicroBenchmark(gin::Arguments* args) { | 790 int GpuBenchmarking::RunMicroBenchmark(gin::Arguments* args) { |
791 GpuBenchmarkingContext context; | 791 GpuBenchmarkingContext context; |
792 if (!context.Init(true)) | 792 if (!context.Init(true)) |
793 return 0; | 793 return 0; |
794 | 794 |
795 std::string name; | 795 std::string name; |
796 v8::Handle<v8::Function> callback; | 796 v8::Local<v8::Function> callback; |
797 v8::Handle<v8::Object> arguments; | 797 v8::Local<v8::Object> arguments; |
798 | 798 |
799 if (!GetArg(args, &name) || !GetArg(args, &callback) || | 799 if (!GetArg(args, &name) || !GetArg(args, &callback) || |
800 !GetOptionalArg(args, &arguments)) { | 800 !GetOptionalArg(args, &arguments)) { |
801 return 0; | 801 return 0; |
802 } | 802 } |
803 | 803 |
804 scoped_refptr<CallbackAndContext> callback_and_context = | 804 scoped_refptr<CallbackAndContext> callback_and_context = |
805 new CallbackAndContext(args->isolate(), | 805 new CallbackAndContext(args->isolate(), |
806 callback, | 806 callback, |
807 context.web_frame()->mainWorldScriptContext()); | 807 context.web_frame()->mainWorldScriptContext()); |
808 | 808 |
809 scoped_ptr<V8ValueConverter> converter = | 809 scoped_ptr<V8ValueConverter> converter = |
810 make_scoped_ptr(V8ValueConverter::create()); | 810 make_scoped_ptr(V8ValueConverter::create()); |
811 v8::Handle<v8::Context> v8_context = callback_and_context->GetContext(); | 811 v8::Local<v8::Context> v8_context = callback_and_context->GetContext(); |
812 scoped_ptr<base::Value> value = | 812 scoped_ptr<base::Value> value = |
813 make_scoped_ptr(converter->FromV8Value(arguments, v8_context)); | 813 make_scoped_ptr(converter->FromV8Value(arguments, v8_context)); |
814 | 814 |
815 return context.compositor()->ScheduleMicroBenchmark( | 815 return context.compositor()->ScheduleMicroBenchmark( |
816 name, | 816 name, |
817 value.Pass(), | 817 value.Pass(), |
818 base::Bind(&OnMicroBenchmarkCompleted, callback_and_context)); | 818 base::Bind(&OnMicroBenchmarkCompleted, callback_and_context)); |
819 } | 819 } |
820 | 820 |
821 bool GpuBenchmarking::SendMessageToMicroBenchmark( | 821 bool GpuBenchmarking::SendMessageToMicroBenchmark( |
822 int id, | 822 int id, |
823 v8::Handle<v8::Object> message) { | 823 v8::Local<v8::Object> message) { |
824 GpuBenchmarkingContext context; | 824 GpuBenchmarkingContext context; |
825 if (!context.Init(true)) | 825 if (!context.Init(true)) |
826 return false; | 826 return false; |
827 | 827 |
828 scoped_ptr<V8ValueConverter> converter = | 828 scoped_ptr<V8ValueConverter> converter = |
829 make_scoped_ptr(V8ValueConverter::create()); | 829 make_scoped_ptr(V8ValueConverter::create()); |
830 v8::Handle<v8::Context> v8_context = | 830 v8::Local<v8::Context> v8_context = |
831 context.web_frame()->mainWorldScriptContext(); | 831 context.web_frame()->mainWorldScriptContext(); |
832 scoped_ptr<base::Value> value = | 832 scoped_ptr<base::Value> value = |
833 make_scoped_ptr(converter->FromV8Value(message, v8_context)); | 833 make_scoped_ptr(converter->FromV8Value(message, v8_context)); |
834 | 834 |
835 return context.compositor()->SendMessageToMicroBenchmark(id, value.Pass()); | 835 return context.compositor()->SendMessageToMicroBenchmark(id, value.Pass()); |
836 } | 836 } |
837 | 837 |
838 bool GpuBenchmarking::HasGpuProcess() { | 838 bool GpuBenchmarking::HasGpuProcess() { |
839 GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); | 839 GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); |
840 return !!gpu_channel; | 840 return !!gpu_channel; |
841 } | 841 } |
842 | 842 |
843 } // namespace content | 843 } // namespace content |
OLD | NEW |