| OLD | NEW |
| 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 "content/common/npobject_stub.h" | 5 #include "content/common/npobject_stub.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "content/common/np_channel_base.h" | 8 #include "content/common/np_channel_base.h" |
| 9 #include "content/common/npobject_util.h" | 9 #include "content/common/npobject_util.h" |
| 10 #include "content/common/plugin_messages.h" | 10 #include "content/common/plugin_messages.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 page_url_(page_url) { | 30 page_url_(page_url) { |
| 31 channel_->AddMappingForNPObjectStub(route_id, npobject); | 31 channel_->AddMappingForNPObjectStub(route_id, npobject); |
| 32 channel_->AddRoute(route_id, this, this); | 32 channel_->AddRoute(route_id, this, this); |
| 33 | 33 |
| 34 // We retain the object just as PluginHost does if everything was in-process. | 34 // We retain the object just as PluginHost does if everything was in-process. |
| 35 WebBindings::retainObject(npobject_); | 35 WebBindings::retainObject(npobject_); |
| 36 } | 36 } |
| 37 | 37 |
| 38 NPObjectStub::~NPObjectStub() { | 38 NPObjectStub::~NPObjectStub() { |
| 39 channel_->RemoveRoute(route_id_); | 39 channel_->RemoveRoute(route_id_); |
| 40 CHECK(!npobject_); | 40 DCHECK(!npobject_); |
| 41 } | 41 } |
| 42 | 42 |
| 43 void NPObjectStub::DeleteSoon() { | 43 void NPObjectStub::DeleteSoon() { |
| 44 if (npobject_) { | 44 if (npobject_) { |
| 45 channel_->RemoveMappingForNPObjectStub(route_id_, npobject_); | 45 channel_->RemoveMappingForNPObjectStub(route_id_, npobject_); |
| 46 | 46 |
| 47 // We need to NULL npobject_ prior to calling releaseObject() to avoid | 47 // We need to NULL npobject_ prior to calling releaseObject() to avoid |
| 48 // problems with re-entrancy. See http://crbug.com/94179#c17 for more | 48 // problems with re-entrancy. See http://crbug.com/94179#c17 for more |
| 49 // details on how this can happen. | 49 // details on how this can happen. |
| 50 NPObject* npobject = npobject_; | 50 NPObject* npobject = npobject_; |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 | 388 |
| 389 bool return_value = WebBindings::evaluateHelper(0, popups_allowed, npobject_, | 389 bool return_value = WebBindings::evaluateHelper(0, popups_allowed, npobject_, |
| 390 &script_string, &result_var); | 390 &script_string, &result_var); |
| 391 | 391 |
| 392 NPVariant_Param result_param; | 392 NPVariant_Param result_param; |
| 393 CreateNPVariantParam( | 393 CreateNPVariantParam( |
| 394 result_var, channel_, &result_param, true, containing_window_, page_url_); | 394 result_var, channel_, &result_param, true, containing_window_, page_url_); |
| 395 NPObjectMsg_Evaluate::WriteReplyParams(reply_msg, result_param, return_value); | 395 NPObjectMsg_Evaluate::WriteReplyParams(reply_msg, result_param, return_value); |
| 396 channel_->Send(reply_msg); | 396 channel_->Send(reply_msg); |
| 397 } | 397 } |
| OLD | NEW |