| Index: content/renderer/browser_plugin/browser_plugin_impl.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin_impl.cc b/content/renderer/browser_plugin/browser_plugin_impl.cc
|
| index 716a6927a2662ecd1859266d68fc98e357b18aa6..8bb6adf3cf91d73c7785c9be0e25dc1ce55485f1 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin_impl.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin_impl.cc
|
| @@ -85,7 +85,7 @@ BrowserPluginImpl::BrowserPluginImpl(
|
| resize_ack_received_(true),
|
| sad_guest_(NULL),
|
| guest_crashed_(false),
|
| - navigate_src_sent_(false),
|
| + guest_allocated_(false),
|
| auto_size_ack_pending_(false),
|
| guest_process_id_(-1),
|
| guest_route_id_(-1),
|
| @@ -102,14 +102,13 @@ BrowserPluginImpl::BrowserPluginImpl(
|
| compositing_enabled_(false),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(
|
| weak_ptr_factory_(this)) {
|
| - GetContentClient()->renderer()->BrowserPluginCreated(this);
|
| }
|
|
|
| BrowserPluginImpl::~BrowserPluginImpl() {
|
| // If the BrowserPlugin has never navigated then the browser process and
|
| // BrowserPluginManager don't know about it and so there is nothing to do
|
| // here.
|
| - if (!navigate_src_sent_)
|
| + if (!guest_allocated_)
|
| return;
|
| browser_plugin_manager()->RemoveBrowserPlugin(instance_id_);
|
| browser_plugin_manager()->Send(
|
| @@ -225,7 +224,7 @@ std::string BrowserPluginImpl::GetPartitionAttribute() const {
|
| }
|
|
|
| void BrowserPluginImpl::ParseNameAttribute() {
|
| - if (!navigate_src_sent_)
|
| + if (!guest_allocated_)
|
| return;
|
| browser_plugin_manager()->Send(
|
| new BrowserPluginHostMsg_SetName(render_view_routing_id_,
|
| @@ -245,7 +244,7 @@ bool BrowserPluginImpl::ParseSrcAttribute(std::string* error_message) {
|
| // If we haven't created the guest yet, do so now. We will navigate it right
|
| // after creation. If |src| is empty, we can delay the creation until we
|
| // actually need it.
|
| - if (!navigate_src_sent_) {
|
| + if (!guest_allocated_) {
|
| // On initial navigation, we request an instance ID from the browser
|
| // process. We essentially ignore all subsequent calls to SetSrcAttribute
|
| // until we receive an instance ID. |allocate_instance_id_sent_|
|
| @@ -289,7 +288,7 @@ void BrowserPluginImpl::UpdateGuestAutoSizeState(bool current_auto_size) {
|
| // If we haven't yet heard back from the guest about the last resize request,
|
| // then we don't issue another request until we do in
|
| // BrowserPluginImpl::UpdateRect.
|
| - if (!navigate_src_sent_ || !resize_ack_received_)
|
| + if (!guest_allocated_ || !resize_ack_received_)
|
| return;
|
| BrowserPluginHostMsg_AutoSize_Params auto_size_params;
|
| BrowserPluginHostMsg_ResizeGuest_Params resize_guest_params;
|
| @@ -357,7 +356,7 @@ void BrowserPluginImpl::SetInstanceID(int instance_id) {
|
| // Record that we sent a navigation request to the browser process.
|
| // Once this instance has navigated, the storage partition cannot be changed,
|
| // so this value is used for enforcing this.
|
| - navigate_src_sent_ = true;
|
| + guest_allocated_ = true;
|
| }
|
|
|
| void BrowserPluginImpl::OnAdvanceFocus(int instance_id, bool reverse) {
|
| @@ -769,9 +768,9 @@ bool BrowserPluginImpl::ParsePartitionAttribute(std::string* error_message) {
|
|
|
| bool BrowserPluginImpl::CanRemovePartitionAttribute(
|
| std::string* error_message) {
|
| - if (navigate_src_sent_)
|
| + if (guest_allocated_)
|
| *error_message = browser_plugin::kErrorCannotRemovePartition;
|
| - return !navigate_src_sent_;
|
| + return !guest_allocated_;
|
| }
|
|
|
| void BrowserPluginImpl::ParseAttributes() {
|
| @@ -851,33 +850,8 @@ void BrowserPluginImpl::WeakCallbackForPersistObject(
|
| }
|
| }
|
|
|
| -void BrowserPluginImpl::Back() {
|
| - if (!navigate_src_sent_)
|
| - return;
|
| - browser_plugin_manager()->Send(
|
| - new BrowserPluginHostMsg_Go(render_view_routing_id_,
|
| - instance_id_, -1));
|
| -}
|
| -
|
| -void BrowserPluginImpl::Forward() {
|
| - if (!navigate_src_sent_)
|
| - return;
|
| - browser_plugin_manager()->Send(
|
| - new BrowserPluginHostMsg_Go(render_view_routing_id_,
|
| - instance_id_, 1));
|
| -}
|
| -
|
| -void BrowserPluginImpl::Go(int relative_index) {
|
| - if (!navigate_src_sent_)
|
| - return;
|
| - browser_plugin_manager()->Send(
|
| - new BrowserPluginHostMsg_Go(render_view_routing_id_,
|
| - instance_id_,
|
| - relative_index));
|
| -}
|
| -
|
| void BrowserPluginImpl::TerminateGuest() {
|
| - if (!navigate_src_sent_ || guest_crashed_)
|
| + if (!guest_allocated_ || guest_crashed_)
|
| return;
|
| browser_plugin_manager()->Send(
|
| new BrowserPluginHostMsg_TerminateGuest(render_view_routing_id_,
|
| @@ -885,7 +859,7 @@ void BrowserPluginImpl::TerminateGuest() {
|
| }
|
|
|
| void BrowserPluginImpl::Stop() {
|
| - if (!navigate_src_sent_)
|
| + if (!guest_allocated_)
|
| return;
|
| browser_plugin_manager()->Send(
|
| new BrowserPluginHostMsg_Stop(render_view_routing_id_,
|
| @@ -893,7 +867,7 @@ void BrowserPluginImpl::Stop() {
|
| }
|
|
|
| void BrowserPluginImpl::Reload() {
|
| - if (!navigate_src_sent_)
|
| + if (!guest_allocated_)
|
| return;
|
| browser_plugin_manager()->Send(
|
| new BrowserPluginHostMsg_Reload(render_view_routing_id_,
|
| @@ -901,7 +875,7 @@ void BrowserPluginImpl::Reload() {
|
| }
|
|
|
| void BrowserPluginImpl::UpdateGuestFocusState() {
|
| - if (!navigate_src_sent_)
|
| + if (!guest_allocated_)
|
| return;
|
| bool should_be_focused = ShouldGuestBeFocused();
|
| browser_plugin_manager()->Send(new BrowserPluginHostMsg_SetFocus(
|
| @@ -966,6 +940,7 @@ bool BrowserPluginImpl::initialize(WebPluginContainer* container) {
|
| container_ = container;
|
| container_->setWantsWheelEvents(true);
|
| ParseAttributes();
|
| + GetContentClient()->renderer()->BrowserPluginCreated(this);
|
| return true;
|
| }
|
|
|
| @@ -1064,7 +1039,7 @@ void BrowserPluginImpl::paint(WebCanvas* canvas, const WebRect& rect) {
|
| canvas->drawRect(image_data_rect, paint);
|
| // Stay a solid color if we have never set a non-empty src, or we don't have a
|
| // backing store.
|
| - if (!backing_store_.get() || !navigate_src_sent_)
|
| + if (!backing_store_.get() || !guest_allocated_)
|
| return;
|
| float inverse_scale_factor = 1.0f / backing_store_->GetScaleFactor();
|
| canvas->scale(inverse_scale_factor, inverse_scale_factor);
|
| @@ -1086,14 +1061,6 @@ bool BrowserPluginImpl::InBounds(const gfx::Point& position) const {
|
| return result;
|
| }
|
|
|
| -RenderView* BrowserPluginImpl::GetRenderView() const {
|
| - return render_view_.get();
|
| -}
|
| -
|
| -WebKit::WebPluginContainer* BrowserPluginImpl::GetContainer() const {
|
| - return container();
|
| -}
|
| -
|
| void BrowserPluginImpl::AddMethodBinding(
|
| BrowserPluginMethodBinding* method_binding) {
|
| bindings_->AddMethodBinding(method_binding);
|
| @@ -1104,6 +1071,18 @@ void BrowserPluginImpl::AddPropertyBinding(
|
| bindings_->AddPropertyBinding(method_binding);
|
| }
|
|
|
| +RenderView* BrowserPluginImpl::GetRenderView() const {
|
| + return render_view_.get();
|
| +}
|
| +
|
| +int BrowserPluginImpl::GetRoutingID() const {
|
| + return render_view_routing_id_;
|
| +}
|
| +
|
| +WebKit::WebPluginContainer* BrowserPluginImpl::GetContainer() const {
|
| + return container();
|
| +}
|
| +
|
| void BrowserPluginImpl::TriggerEvent(
|
| const std::string& event_name,
|
| std::map<std::string, base::Value*>* props) {
|
| @@ -1180,8 +1159,8 @@ bool BrowserPluginImpl::HasDOMAttribute(
|
| WebKit::WebString::fromUTF8(attribute_name));
|
| }
|
|
|
| -bool BrowserPluginImpl::HasNavigated() const {
|
| - return navigate_src_sent_;
|
| +bool BrowserPluginImpl::HasGuest() const {
|
| + return guest_allocated_;
|
| }
|
|
|
| bool BrowserPluginImpl::Send(IPC::Message* message) {
|
| @@ -1213,7 +1192,7 @@ void BrowserPluginImpl::updateGeometry(
|
| // until the previous one is ACK'ed.
|
| // TODO(mthiesse): Assess the performance of calling GetAutoSizeAttribute() on
|
| // resize.
|
| - if (!navigate_src_sent_ ||
|
| + if (!guest_allocated_ ||
|
| !resize_ack_received_ ||
|
| (old_width == window_rect.width && old_height == window_rect.height) ||
|
| GetAutoSizeAttribute()) {
|
| @@ -1331,7 +1310,7 @@ void BrowserPluginImpl::updateVisibility(bool visible) {
|
| return;
|
|
|
| visible_ = visible;
|
| - if (!navigate_src_sent_)
|
| + if (!guest_allocated_)
|
| return;
|
|
|
| if (compositing_helper_)
|
| @@ -1349,7 +1328,7 @@ bool BrowserPluginImpl::acceptsInputEvents() {
|
|
|
| bool BrowserPluginImpl::handleInputEvent(const WebKit::WebInputEvent& event,
|
| WebKit::WebCursorInfo& cursor_info) {
|
| - if (guest_crashed_ || !navigate_src_sent_ ||
|
| + if (guest_crashed_ || !guest_allocated_ ||
|
| event.type == WebKit::WebInputEvent::ContextMenu)
|
| return false;
|
| browser_plugin_manager()->Send(
|
| @@ -1367,7 +1346,7 @@ bool BrowserPluginImpl::handleDragStatusUpdate(
|
| WebKit::WebDragOperationsMask mask,
|
| const WebKit::WebPoint& position,
|
| const WebKit::WebPoint& screen) {
|
| - if (guest_crashed_ || !navigate_src_sent_)
|
| + if (guest_crashed_ || !guest_allocated_)
|
| return false;
|
| browser_plugin_manager()->Send(new BrowserPluginHostMsg_DragStatusUpdate(
|
| render_view_routing_id_,
|
|
|