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

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

Issue 15941006: Track NPObject ownership by the originating plugins' NPP identifier. [2/3] (Chrome) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix CppBoundClass. Created 7 years, 7 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
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 "webkit/plugins/ppapi/ppapi_plugin_instance.h" 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 input_event_mask_(0), 430 input_event_mask_(0),
431 filtered_input_event_mask_(0), 431 filtered_input_event_mask_(0),
432 text_input_type_(kPluginDefaultTextInputType), 432 text_input_type_(kPluginDefaultTextInputType),
433 text_input_caret_(0, 0, 0, 0), 433 text_input_caret_(0, 0, 0, 0),
434 text_input_caret_bounds_(0, 0, 0, 0), 434 text_input_caret_bounds_(0, 0, 0, 0),
435 text_input_caret_set_(false), 435 text_input_caret_set_(false),
436 selection_caret_(0), 436 selection_caret_(0),
437 selection_anchor_(0), 437 selection_anchor_(0),
438 pending_user_gesture_(0.0), 438 pending_user_gesture_(0.0),
439 document_loader_(NULL), 439 document_loader_(NULL),
440 nacl_document_load_(false) { 440 nacl_document_load_(false),
441 npp_(new NPP_t) {
441 pp_instance_ = HostGlobals::Get()->AddInstance(this); 442 pp_instance_ = HostGlobals::Get()->AddInstance(this);
442 443
443 memset(&current_print_settings_, 0, sizeof(current_print_settings_)); 444 memset(&current_print_settings_, 0, sizeof(current_print_settings_));
444 DCHECK(delegate); 445 DCHECK(delegate);
445 module_->InstanceCreated(this); 446 module_->InstanceCreated(this);
446 delegate_->InstanceCreated(this); 447 delegate_->InstanceCreated(this);
447 message_channel_.reset(new MessageChannel(this));
448 448
449 view_data_.is_page_visible = delegate->IsPageVisible(); 449 view_data_.is_page_visible = delegate->IsPageVisible();
450
451 resource_creation_ = delegate_->CreateResourceCreationAPI(this); 450 resource_creation_ = delegate_->CreateResourceCreationAPI(this);
452 451
453 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. 452 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed.
454 // We must defer certain plugin events for NaCl instances since we switch 453 // We must defer certain plugin events for NaCl instances since we switch
455 // from the in-process to the out-of-process proxy after instantiating them. 454 // from the in-process to the out-of-process proxy after instantiating them.
456 if (module->name() == "Native Client") 455 if (module->name() == "Native Client")
457 nacl_document_load_ = true; 456 nacl_document_load_ = true;
458 } 457 }
459 458
460 PluginInstance::~PluginInstance() { 459 PluginInstance::~PluginInstance() {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 // 6 : 3D content but GPU is blacklisted on XP 626 // 6 : 3D content but GPU is blacklisted on XP
628 // 7 : 3D content and GPU is not blacklisted on XP 627 // 7 : 3D content and GPU is not blacklisted on XP
629 UMA_HISTOGRAM_ENUMERATION("Flash.UsesGPU", 628 UMA_HISTOGRAM_ENUMERATION("Flash.UsesGPU",
630 is_xp * 4 + needs_gpu * 2 + prefs.is_webgl_supported, 8); 629 is_xp * 4 + needs_gpu * 2 + prefs.is_webgl_supported, 8);
631 #endif 630 #endif
632 } 631 }
633 632
634 bool PluginInstance::Initialize(const std::vector<std::string>& arg_names, 633 bool PluginInstance::Initialize(const std::vector<std::string>& arg_names,
635 const std::vector<std::string>& arg_values, 634 const std::vector<std::string>& arg_values,
636 bool full_frame) { 635 bool full_frame) {
636 message_channel_.reset(new MessageChannel(this));
637
637 full_frame_ = full_frame; 638 full_frame_ = full_frame;
638 639
639 UpdateTouchEventRequest(); 640 UpdateTouchEventRequest();
640 container_->setWantsWheelEvents(IsAcceptingWheelEvents()); 641 container_->setWantsWheelEvents(IsAcceptingWheelEvents());
641 642
642 SetGPUHistogram(delegate_->GetPreferences(), arg_names, arg_values); 643 SetGPUHistogram(delegate_->GetPreferences(), arg_names, arg_values);
643 644
644 argn_ = arg_names; 645 argn_ = arg_names;
645 argv_ = arg_values; 646 argv_ = arg_values;
646 scoped_ptr<const char*[]> argn_array(StringVectorToArgArray(argn_)); 647 scoped_ptr<const char*[]> argn_array(StringVectorToArgArray(argn_));
(...skipping 1891 matching lines...) Expand 10 before | Expand all | Expand 10 after
2538 2539
2539 return PP_NACL_OK; 2540 return PP_NACL_OK;
2540 } 2541 }
2541 2542
2542 bool PluginInstance::IsValidInstanceOf(PluginModule* module) { 2543 bool PluginInstance::IsValidInstanceOf(PluginModule* module) {
2543 DCHECK(module); 2544 DCHECK(module);
2544 return module == module_.get() || 2545 return module == module_.get() ||
2545 module == original_module_.get(); 2546 module == original_module_.get();
2546 } 2547 }
2547 2548
2549 NPP PluginInstance::instanceNPP() {
2550 return npp_.get();
2551 }
2552
2548 void PluginInstance::DoSetCursor(WebCursorInfo* cursor) { 2553 void PluginInstance::DoSetCursor(WebCursorInfo* cursor) {
2549 cursor_.reset(cursor); 2554 cursor_.reset(cursor);
2550 if (fullscreen_container_) { 2555 if (fullscreen_container_) {
2551 fullscreen_container_->DidChangeCursor(*cursor); 2556 fullscreen_container_->DidChangeCursor(*cursor);
2552 } else { 2557 } else {
2553 delegate()->DidChangeCursor(this, *cursor); 2558 delegate()->DidChangeCursor(this, *cursor);
2554 } 2559 }
2555 } 2560 }
2556 2561
2557 bool PluginInstance::CanAccessMainFrame() const { 2562 bool PluginInstance::CanAccessMainFrame() const {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2608 screen_size_for_fullscreen_ = gfx::Size(); 2613 screen_size_for_fullscreen_ = gfx::Size();
2609 WebElement element = container_->element(); 2614 WebElement element = container_->element();
2610 element.setAttribute(WebString::fromUTF8(kWidth), width_before_fullscreen_); 2615 element.setAttribute(WebString::fromUTF8(kWidth), width_before_fullscreen_);
2611 element.setAttribute(WebString::fromUTF8(kHeight), height_before_fullscreen_); 2616 element.setAttribute(WebString::fromUTF8(kHeight), height_before_fullscreen_);
2612 element.setAttribute(WebString::fromUTF8(kBorder), border_before_fullscreen_); 2617 element.setAttribute(WebString::fromUTF8(kBorder), border_before_fullscreen_);
2613 element.setAttribute(WebString::fromUTF8(kStyle), style_before_fullscreen_); 2618 element.setAttribute(WebString::fromUTF8(kStyle), style_before_fullscreen_);
2614 } 2619 }
2615 2620
2616 } // namespace ppapi 2621 } // namespace ppapi
2617 } // namespace webkit 2622 } // namespace webkit
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/ppapi_plugin_instance.h ('k') | webkit/plugins/ppapi/ppapi_webplugin_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698