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

Side by Side Diff: webkit/plugins/ppapi/ppapi_plugin_instance.cc

Issue 7471006: Revert 93223 - Reland http://codereview.chromium.org/7452002/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 5 months 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 | « webkit/plugins/ppapi/ppapi_plugin_instance.h ('k') | webkit/plugins/ppapi/ppapi_unittest.cc » ('j') | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/ppapi/ppapi_plugin_instance.h" 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 PluginModule* module, 193 PluginModule* module,
194 const void* ppp_instance_if_0_5) { 194 const void* ppp_instance_if_0_5) {
195 const PPP_Instance_0_5* interface = 195 const PPP_Instance_0_5* interface =
196 static_cast<const PPP_Instance_0_5*>(ppp_instance_if_0_5); 196 static_cast<const PPP_Instance_0_5*>(ppp_instance_if_0_5);
197 return new PluginInstance( 197 return new PluginInstance(
198 delegate, 198 delegate,
199 module, 199 module,
200 new ::ppapi::PPP_Instance_Combined(*interface)); 200 new ::ppapi::PPP_Instance_Combined(*interface));
201 } 201 }
202 202
203 // static
204 PluginInstance* PluginInstance::Create1_0(PluginDelegate* delegate,
205 PluginModule* module,
206 const void* ppp_instance_if_1_0) {
207 const PPP_Instance_1_0* interface =
208 static_cast<const PPP_Instance_1_0*>(ppp_instance_if_1_0);
209 return new PluginInstance(
210 delegate,
211 module,
212 new ::ppapi::PPP_Instance_Combined(*interface));
213 }
214
215 PluginInstance::PluginInstance( 203 PluginInstance::PluginInstance(
216 PluginDelegate* delegate, 204 PluginDelegate* delegate,
217 PluginModule* module, 205 PluginModule* module,
218 ::ppapi::PPP_Instance_Combined* instance_interface) 206 ::ppapi::PPP_Instance_Combined* instance_interface)
219 : delegate_(delegate), 207 : delegate_(delegate),
220 module_(module), 208 module_(module),
221 instance_interface_(instance_interface), 209 instance_interface_(instance_interface),
222 pp_instance_(0), 210 pp_instance_(0),
223 container_(NULL), 211 container_(NULL),
224 full_frame_(false), 212 full_frame_(false),
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 412
425 size_t argc = 0; 413 size_t argc = 0;
426 scoped_array<const char*> argn(new const char*[arg_names.size()]); 414 scoped_array<const char*> argn(new const char*[arg_names.size()]);
427 scoped_array<const char*> argv(new const char*[arg_names.size()]); 415 scoped_array<const char*> argv(new const char*[arg_names.size()]);
428 for (size_t i = 0; i < arg_names.size(); ++i) { 416 for (size_t i = 0; i < arg_names.size(); ++i) {
429 argn[argc] = arg_names[i].c_str(); 417 argn[argc] = arg_names[i].c_str();
430 argv[argc] = arg_values[i].c_str(); 418 argv[argc] = arg_values[i].c_str();
431 argc++; 419 argc++;
432 } 420 }
433 421
434 return PP_ToBool(instance_interface_->DidCreate(pp_instance(), 422 return PPBoolToBool(instance_interface_->DidCreate(pp_instance(),
435 argc, 423 argc,
436 argn.get(), 424 argn.get(),
437 argv.get())); 425 argv.get()));
438 } 426 }
439 427
440 bool PluginInstance::HandleDocumentLoad(PPB_URLLoader_Impl* loader) { 428 bool PluginInstance::HandleDocumentLoad(PPB_URLLoader_Impl* loader) {
441 Resource::ScopedResourceId resource(loader); 429 Resource::ScopedResourceId resource(loader);
442 return PP_ToBool(instance_interface_->HandleDocumentLoad(pp_instance(), 430 return PPBoolToBool(instance_interface_->HandleDocumentLoad(pp_instance(),
443 resource.id)); 431 resource.id));
444 } 432 }
445 433
446 bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event, 434 bool PluginInstance::HandleInputEvent(const WebKit::WebInputEvent& event,
447 WebCursorInfo* cursor_info) { 435 WebCursorInfo* cursor_info) {
448 // Keep a reference on the stack. See NOTE above. 436 // Keep a reference on the stack. See NOTE above.
449 scoped_refptr<PluginInstance> ref(this); 437 scoped_refptr<PluginInstance> ref(this);
450 438
451 bool rv = false; 439 bool rv = false;
452 if (LoadInputEventInterface()) { 440 if (LoadInputEventInterface()) {
453 PP_InputEvent_Class event_class = ClassifyInputEvent(event.type); 441 PP_InputEvent_Class event_class = ClassifyInputEvent(event.type);
(...skipping 10 matching lines...) Expand all
464 ResourceTracker* tracker = ResourceTracker::Get(); 452 ResourceTracker* tracker = ResourceTracker::Get();
465 for (size_t i = 0; i < events.size(); i++) { 453 for (size_t i = 0; i < events.size(); i++) {
466 if (filtered_input_event_mask_ & event_class) 454 if (filtered_input_event_mask_ & event_class)
467 events[i].is_filtered = true; 455 events[i].is_filtered = true;
468 else 456 else
469 rv = true; // Unfiltered events are assumed to be handled. 457 rv = true; // Unfiltered events are assumed to be handled.
470 scoped_refptr<PPB_InputEvent_Impl> event_resource( 458 scoped_refptr<PPB_InputEvent_Impl> event_resource(
471 new PPB_InputEvent_Impl(this, events[i])); 459 new PPB_InputEvent_Impl(this, events[i]));
472 PP_Resource resource = event_resource->GetReference(); 460 PP_Resource resource = event_resource->GetReference();
473 461
474 rv |= PP_ToBool(plugin_input_event_interface_->HandleInputEvent( 462 rv |= PPBoolToBool(plugin_input_event_interface_->HandleInputEvent(
475 pp_instance(), event_resource->GetReference())); 463 pp_instance(), event_resource->GetReference()));
476 464
477 // Release the reference we took above. 465 // Release the reference we took above.
478 tracker->UnrefResource(resource); 466 tracker->UnrefResource(resource);
479 } 467 }
480 } 468 }
481 } 469 }
482 470
483 // For compatibility, also send all input events through the old interface, 471 // For compatibility, also send all input events through the old interface.
484 // if it exists.
485 // TODO(brettw) remove this. 472 // TODO(brettw) remove this.
486 if (instance_interface_->HandleInputEvent_0_5) { 473 std::vector<PP_InputEvent> pp_events;
487 std::vector<PP_InputEvent> pp_events; 474 CreatePPEvent(event, &pp_events);
488 CreatePPEvent(event, &pp_events);
489 475
490 // Each input event may generate more than one PP_InputEvent. 476 // Each input event may generate more than one PP_InputEvent.
491 for (size_t i = 0; i < pp_events.size(); i++) { 477 for (size_t i = 0; i < pp_events.size(); i++) {
492 rv |= PP_ToBool( 478 rv |= PPBoolToBool(instance_interface_->HandleInputEvent(pp_instance(),
493 instance_interface_->HandleInputEvent_0_5(pp_instance(), 479 &pp_events[i]));
494 &pp_events[i]));
495 }
496 } 480 }
497 481
498 if (cursor_.get()) 482 if (cursor_.get())
499 *cursor_info = *cursor_; 483 *cursor_info = *cursor_;
500 return rv; 484 return rv;
501 } 485 }
502 486
503 void PluginInstance::HandleMessage(PP_Var message) { 487 void PluginInstance::HandleMessage(PP_Var message) {
504 // Keep a reference on the stack. See NOTE above. 488 // Keep a reference on the stack. See NOTE above.
505 scoped_refptr<PluginInstance> ref(this); 489 scoped_refptr<PluginInstance> ref(this);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 526
543 void PluginInstance::SetWebKitFocus(bool has_focus) { 527 void PluginInstance::SetWebKitFocus(bool has_focus) {
544 if (has_webkit_focus_ == has_focus) 528 if (has_webkit_focus_ == has_focus)
545 return; 529 return;
546 530
547 bool old_plugin_focus = PluginHasFocus(); 531 bool old_plugin_focus = PluginHasFocus();
548 has_webkit_focus_ = has_focus; 532 has_webkit_focus_ = has_focus;
549 if (PluginHasFocus() != old_plugin_focus) { 533 if (PluginHasFocus() != old_plugin_focus) {
550 delegate()->PluginFocusChanged(PluginHasFocus()); 534 delegate()->PluginFocusChanged(PluginHasFocus());
551 instance_interface_->DidChangeFocus(pp_instance(), 535 instance_interface_->DidChangeFocus(pp_instance(),
552 PP_FromBool(PluginHasFocus())); 536 BoolToPPBool(PluginHasFocus()));
553 } 537 }
554 } 538 }
555 539
556 void PluginInstance::SetContentAreaFocus(bool has_focus) { 540 void PluginInstance::SetContentAreaFocus(bool has_focus) {
557 if (has_content_area_focus_ == has_focus) 541 if (has_content_area_focus_ == has_focus)
558 return; 542 return;
559 543
560 bool old_plugin_focus = PluginHasFocus(); 544 bool old_plugin_focus = PluginHasFocus();
561 has_content_area_focus_ = has_focus; 545 has_content_area_focus_ = has_focus;
562 if (PluginHasFocus() != old_plugin_focus) { 546 if (PluginHasFocus() != old_plugin_focus) {
563 instance_interface_->DidChangeFocus(pp_instance(), 547 instance_interface_->DidChangeFocus(pp_instance(),
564 PP_FromBool(PluginHasFocus())); 548 BoolToPPBool(PluginHasFocus()));
565 } 549 }
566 } 550 }
567 551
568 void PluginInstance::ViewInitiatedPaint() { 552 void PluginInstance::ViewInitiatedPaint() {
569 if (GetBoundGraphics2D()) 553 if (GetBoundGraphics2D())
570 GetBoundGraphics2D()->ViewInitiatedPaint(); 554 GetBoundGraphics2D()->ViewInitiatedPaint();
571 else if (GetBoundGraphics3D()) 555 else if (GetBoundGraphics3D())
572 GetBoundGraphics3D()->ViewInitiatedPaint(); 556 GetBoundGraphics3D()->ViewInitiatedPaint();
573 else if (GetBoundSurface3D()) 557 else if (GetBoundSurface3D())
574 GetBoundSurface3D()->ViewInitiatedPaint(); 558 GetBoundSurface3D()->ViewInitiatedPaint();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 return true; 598 return true;
615 } 599 }
616 600
617 string16 PluginInstance::GetSelectedText(bool html) { 601 string16 PluginInstance::GetSelectedText(bool html) {
618 // Keep a reference on the stack. See NOTE above. 602 // Keep a reference on the stack. See NOTE above.
619 scoped_refptr<PluginInstance> ref(this); 603 scoped_refptr<PluginInstance> ref(this);
620 if (!LoadSelectionInterface()) 604 if (!LoadSelectionInterface())
621 return string16(); 605 return string16();
622 606
623 PP_Var rv = plugin_selection_interface_->GetSelectedText(pp_instance(), 607 PP_Var rv = plugin_selection_interface_->GetSelectedText(pp_instance(),
624 PP_FromBool(html)); 608 BoolToPPBool(html));
625 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv)); 609 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv));
626 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us. 610 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us.
627 if (!string) 611 if (!string)
628 return string16(); 612 return string16();
629 return UTF8ToUTF16(string->value()); 613 return UTF8ToUTF16(string->value());
630 } 614 }
631 615
632 string16 PluginInstance::GetLinkAtPosition(const gfx::Point& point) { 616 string16 PluginInstance::GetLinkAtPosition(const gfx::Point& point) {
633 // Keep a reference on the stack. See NOTE above. 617 // Keep a reference on the stack. See NOTE above.
634 scoped_refptr<PluginInstance> ref(this); 618 scoped_refptr<PluginInstance> ref(this);
635 if (!LoadPdfInterface()) 619 if (!LoadPdfInterface())
636 return string16(); 620 return string16();
637 621
638 PP_Point p; 622 PP_Point p;
639 p.x = point.x(); 623 p.x = point.x();
640 p.y = point.y(); 624 p.y = point.y();
641 PP_Var rv = plugin_pdf_interface_->GetLinkAtPosition(pp_instance(), p); 625 PP_Var rv = plugin_pdf_interface_->GetLinkAtPosition(pp_instance(), p);
642 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv)); 626 scoped_refptr<StringVar> string(StringVar::FromPPVar(rv));
643 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us. 627 Var::PluginReleasePPVar(rv); // Release the ref the plugin transfered to us.
644 if (!string) 628 if (!string)
645 return string16(); 629 return string16();
646 return UTF8ToUTF16(string->value()); 630 return UTF8ToUTF16(string->value());
647 } 631 }
648 632
649 void PluginInstance::Zoom(double factor, bool text_only) { 633 void PluginInstance::Zoom(double factor, bool text_only) {
650 // Keep a reference on the stack. See NOTE above. 634 // Keep a reference on the stack. See NOTE above.
651 scoped_refptr<PluginInstance> ref(this); 635 scoped_refptr<PluginInstance> ref(this);
652 if (!LoadZoomInterface()) 636 if (!LoadZoomInterface())
653 return; 637 return;
654 plugin_zoom_interface_->Zoom(pp_instance(), factor, PP_FromBool(text_only)); 638 plugin_zoom_interface_->Zoom(pp_instance(), factor, BoolToPPBool(text_only));
655 } 639 }
656 640
657 bool PluginInstance::StartFind(const string16& search_text, 641 bool PluginInstance::StartFind(const string16& search_text,
658 bool case_sensitive, 642 bool case_sensitive,
659 int identifier) { 643 int identifier) {
660 // Keep a reference on the stack. See NOTE above. 644 // Keep a reference on the stack. See NOTE above.
661 scoped_refptr<PluginInstance> ref(this); 645 scoped_refptr<PluginInstance> ref(this);
662 if (!LoadFindInterface()) 646 if (!LoadFindInterface())
663 return false; 647 return false;
664 find_identifier_ = identifier; 648 find_identifier_ = identifier;
665 return PP_ToBool( 649 return PPBoolToBool(
666 plugin_find_interface_->StartFind( 650 plugin_find_interface_->StartFind(
667 pp_instance(), 651 pp_instance(),
668 UTF16ToUTF8(search_text.c_str()).c_str(), 652 UTF16ToUTF8(search_text.c_str()).c_str(),
669 PP_FromBool(case_sensitive))); 653 BoolToPPBool(case_sensitive)));
670 } 654 }
671 655
672 void PluginInstance::SelectFindResult(bool forward) { 656 void PluginInstance::SelectFindResult(bool forward) {
673 // Keep a reference on the stack. See NOTE above. 657 // Keep a reference on the stack. See NOTE above.
674 scoped_refptr<PluginInstance> ref(this); 658 scoped_refptr<PluginInstance> ref(this);
675 if (LoadFindInterface()) 659 if (LoadFindInterface())
676 plugin_find_interface_->SelectFindResult(pp_instance(), 660 plugin_find_interface_->SelectFindResult(pp_instance(),
677 PP_FromBool(forward)); 661 BoolToPPBool(forward));
678 } 662 }
679 663
680 void PluginInstance::StopFind() { 664 void PluginInstance::StopFind() {
681 // Keep a reference on the stack. See NOTE above. 665 // Keep a reference on the stack. See NOTE above.
682 scoped_refptr<PluginInstance> ref(this); 666 scoped_refptr<PluginInstance> ref(this);
683 if (!LoadFindInterface()) 667 if (!LoadFindInterface())
684 return; 668 return;
685 find_identifier_ = -1; 669 find_identifier_ = -1;
686 plugin_find_interface_->StopFind(pp_instance()); 670 plugin_find_interface_->StopFind(pp_instance());
687 } 671 }
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
1511 } 1495 }
1512 1496
1513 PP_Bool PluginInstance::IsFullscreen(PP_Instance instance) { 1497 PP_Bool PluginInstance::IsFullscreen(PP_Instance instance) {
1514 return PP_FromBool(fullscreen_); 1498 return PP_FromBool(fullscreen_);
1515 } 1499 }
1516 1500
1517 PP_Bool PluginInstance::SetFullscreen(PP_Instance instance, 1501 PP_Bool PluginInstance::SetFullscreen(PP_Instance instance,
1518 PP_Bool fullscreen) { 1502 PP_Bool fullscreen) {
1519 // TODO(yzshen): Re-enable it once fullscreen mode is supported on Windows. 1503 // TODO(yzshen): Re-enable it once fullscreen mode is supported on Windows.
1520 #if !defined(OS_WIN) 1504 #if !defined(OS_WIN)
1521 SetFullscreen(PP_ToBool(fullscreen), true); 1505 SetFullscreen(PPBoolToBool(fullscreen), true);
1522 return PP_TRUE; 1506 return PP_TRUE;
1523 #else 1507 #else
1524 return PP_FALSE; 1508 return PP_FALSE;
1525 #endif 1509 #endif
1526 } 1510 }
1527 1511
1528 PP_Bool PluginInstance::GetScreenSize(PP_Instance instance, PP_Size* size) { 1512 PP_Bool PluginInstance::GetScreenSize(PP_Instance instance, PP_Size* size) {
1529 gfx::Size screen_size = delegate()->GetScreenSize(); 1513 gfx::Size screen_size = delegate()->GetScreenSize();
1530 *size = PP_MakeSize(screen_size.width(), screen_size.height()); 1514 *size = PP_MakeSize(screen_size.width(), screen_size.height());
1531 return PP_TRUE; 1515 return PP_TRUE;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1586 } 1570 }
1587 delegate()->ZoomLimitsChanged(minimum_factor, maximium_factor); 1571 delegate()->ZoomLimitsChanged(minimum_factor, maximium_factor);
1588 } 1572 }
1589 1573
1590 void PluginInstance::PostMessage(PP_Instance instance, PP_Var message) { 1574 void PluginInstance::PostMessage(PP_Instance instance, PP_Var message) {
1591 message_channel_->PostMessageToJavaScript(message); 1575 message_channel_->PostMessageToJavaScript(message);
1592 } 1576 }
1593 1577
1594 } // namespace ppapi 1578 } // namespace ppapi
1595 } // namespace webkit 1579 } // namespace webkit
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/ppapi_plugin_instance.h ('k') | webkit/plugins/ppapi/ppapi_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698