| Index: extensions/renderer/guest_view/extensions_guest_view_container.cc | 
| diff --git a/extensions/renderer/guest_view/guest_view_container.cc b/extensions/renderer/guest_view/extensions_guest_view_container.cc | 
| similarity index 50% | 
| copy from extensions/renderer/guest_view/guest_view_container.cc | 
| copy to extensions/renderer/guest_view/extensions_guest_view_container.cc | 
| index 781027063a16d8079aa3dc2de2d08a7222e5c59d..3790d56f39d8636c0ee239f98c073134a047c4d0 100644 | 
| --- a/extensions/renderer/guest_view/guest_view_container.cc | 
| +++ b/extensions/renderer/guest_view/extensions_guest_view_container.cc | 
| @@ -2,9 +2,8 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -#include "extensions/renderer/guest_view/guest_view_container.h" | 
| +#include "extensions/renderer/guest_view/extensions_guest_view_container.h" | 
|  | 
| -#include "content/public/renderer/browser_plugin_delegate.h" | 
| #include "content/public/renderer/render_frame.h" | 
| #include "content/public/renderer/render_view.h" | 
| #include "extensions/common/extension_messages.h" | 
| @@ -15,15 +14,15 @@ | 
|  | 
| namespace { | 
| typedef std::pair<int, int> GuestViewID; | 
| -typedef std::map<GuestViewID, extensions::GuestViewContainer*> | 
| -    GuestViewContainerMap; | 
| -static base::LazyInstance<GuestViewContainerMap> g_guest_view_container_map = | 
| -    LAZY_INSTANCE_INITIALIZER; | 
| +typedef std::map<GuestViewID, extensions::ExtensionsGuestViewContainer*> | 
| +    ExtensionsGuestViewContainerMap; | 
| +static base::LazyInstance<ExtensionsGuestViewContainerMap> | 
| +    g_guest_view_container_map = LAZY_INSTANCE_INITIALIZER; | 
| }  // namespace | 
|  | 
| namespace extensions { | 
|  | 
| -GuestViewContainer::AttachRequest::AttachRequest( | 
| +ExtensionsGuestViewContainer::AttachRequest::AttachRequest( | 
| int element_instance_id, | 
| int guest_instance_id, | 
| scoped_ptr<base::DictionaryValue> params, | 
| @@ -36,136 +35,90 @@ GuestViewContainer::AttachRequest::AttachRequest( | 
| isolate_(isolate) { | 
| } | 
|  | 
| -GuestViewContainer::AttachRequest::~AttachRequest() { | 
| +ExtensionsGuestViewContainer::AttachRequest::~AttachRequest() { | 
| } | 
|  | 
| -bool GuestViewContainer::AttachRequest::HasCallback() const { | 
| +bool ExtensionsGuestViewContainer::AttachRequest::HasCallback() const { | 
| return !callback_.IsEmpty(); | 
| } | 
|  | 
| v8::Handle<v8::Function> | 
| -GuestViewContainer::AttachRequest::GetCallback() const { | 
| +ExtensionsGuestViewContainer::AttachRequest::GetCallback() const { | 
| return callback_.NewHandle(isolate_); | 
| } | 
|  | 
| -GuestViewContainer::GuestViewContainer( | 
| -    content::RenderFrame* render_frame, | 
| -    const std::string& mime_type) | 
| -    : content::BrowserPluginDelegate(render_frame, mime_type), | 
| -      content::RenderFrameObserver(render_frame), | 
| -      mime_type_(mime_type), | 
| -      element_instance_id_(guestview::kInstanceIDNone), | 
| -      render_view_routing_id_(render_frame->GetRenderView()->GetRoutingID()), | 
| -      attached_(false), | 
| +ExtensionsGuestViewContainer::ExtensionsGuestViewContainer( | 
| +      content::RenderFrame* render_frame) | 
| +    : GuestViewContainer(render_frame), | 
| ready_(false) { | 
| } | 
|  | 
| -GuestViewContainer::~GuestViewContainer() { | 
| -  if (element_instance_id_ != guestview::kInstanceIDNone) { | 
| +ExtensionsGuestViewContainer::~ExtensionsGuestViewContainer() { | 
| +  if (element_instance_id() != guestview::kInstanceIDNone) { | 
| g_guest_view_container_map.Get().erase( | 
| -        GuestViewID(render_view_routing_id_, element_instance_id_)); | 
| +        GuestViewID(render_view_routing_id(), element_instance_id())); | 
| } | 
| } | 
|  | 
| -GuestViewContainer* GuestViewContainer::FromID(int render_view_routing_id, | 
| -                                               int element_instance_id) { | 
| -  GuestViewContainerMap* guest_view_containers = | 
| +ExtensionsGuestViewContainer* ExtensionsGuestViewContainer::FromID( | 
| +    int render_view_routing_id, | 
| +    int element_instance_id) { | 
| +  ExtensionsGuestViewContainerMap* guest_view_containers = | 
| g_guest_view_container_map.Pointer(); | 
| -  GuestViewContainerMap::iterator it = guest_view_containers->find( | 
| +  ExtensionsGuestViewContainerMap::iterator it = guest_view_containers->find( | 
| GuestViewID(render_view_routing_id, element_instance_id)); | 
| return it == guest_view_containers->end() ? NULL : it->second; | 
| } | 
|  | 
| -void GuestViewContainer::AttachGuest(linked_ptr<AttachRequest> request) { | 
| +void ExtensionsGuestViewContainer::AttachGuest( | 
| +    linked_ptr<AttachRequest> request) { | 
| EnqueueAttachRequest(request); | 
| PerformPendingAttachRequest(); | 
| } | 
|  | 
| -void GuestViewContainer::SetElementInstanceID(int element_instance_id) { | 
| -  GuestViewID guest_view_id(render_view_routing_id_, element_instance_id); | 
| -  DCHECK_EQ(element_instance_id_, guestview::kInstanceIDNone); | 
| +void ExtensionsGuestViewContainer::SetElementInstanceID( | 
| +    int element_instance_id) { | 
| +  GuestViewContainer::SetElementInstanceID(element_instance_id); | 
| + | 
| +  GuestViewID guest_view_id(render_view_routing_id(), element_instance_id); | 
| DCHECK(g_guest_view_container_map.Get().find(guest_view_id) == | 
| g_guest_view_container_map.Get().end()); | 
| -  element_instance_id_ = element_instance_id; | 
| g_guest_view_container_map.Get().insert(std::make_pair(guest_view_id, this)); | 
| } | 
|  | 
| -void GuestViewContainer::DidFinishLoading() { | 
| -  if (mime_type_.empty()) | 
| -    return; | 
| - | 
| -  DCHECK_NE(element_instance_id_, guestview::kInstanceIDNone); | 
| -  render_frame()->Send(new ExtensionHostMsg_CreateMimeHandlerViewGuest( | 
| -      routing_id(), html_string_, mime_type_, element_instance_id_)); | 
| -} | 
| - | 
| -void GuestViewContainer::DidReceiveData(const char* data, int data_length) { | 
| -  std::string value(data, data_length); | 
| -  html_string_ += value; | 
| -} | 
| - | 
| -void GuestViewContainer::Ready() { | 
| +void ExtensionsGuestViewContainer::Ready() { | 
| ready_ = true; | 
| CHECK(!pending_response_.get()); | 
| PerformPendingAttachRequest(); | 
| } | 
|  | 
| -void GuestViewContainer::OnDestruct() { | 
| -  // GuestViewContainer's lifetime is managed by BrowserPlugin so don't let | 
| -  // RenderFrameObserver self-destruct here. | 
| +bool ExtensionsGuestViewContainer::HandlesMessage(const IPC::Message& message) { | 
| +  return message.type() == ExtensionMsg_GuestAttached::ID; | 
| } | 
|  | 
| -bool GuestViewContainer::OnMessageReceived(const IPC::Message& message) { | 
| -  if (!ShouldHandleMessage(message)) | 
| -    return false; | 
| - | 
| -  DCHECK_NE(element_instance_id_, guestview::kInstanceIDNone); | 
| -  int element_instance_id = guestview::kInstanceIDNone; | 
| -  PickleIterator iter(message); | 
| -  bool success = iter.ReadInt(&element_instance_id); | 
| -  DCHECK(success); | 
| -  if (element_instance_id != element_instance_id_) | 
| -    return false; | 
| - | 
| -  bool handled = true; | 
| -  IPC_BEGIN_MESSAGE_MAP(GuestViewContainer, message) | 
| -    IPC_MESSAGE_HANDLER(ExtensionMsg_CreateMimeHandlerViewGuestACK, | 
| -                        OnCreateMimeHandlerViewGuestACK) | 
| +bool ExtensionsGuestViewContainer::OnMessage(const IPC::Message& message) { | 
| +  bool handled = false; | 
| +  IPC_BEGIN_MESSAGE_MAP(ExtensionsGuestViewContainer, message) | 
| IPC_MESSAGE_HANDLER(ExtensionMsg_GuestAttached, OnGuestAttached) | 
| IPC_MESSAGE_UNHANDLED(handled = false) | 
| IPC_END_MESSAGE_MAP() | 
| return handled; | 
| } | 
|  | 
| -void GuestViewContainer::OnCreateMimeHandlerViewGuestACK( | 
| -    int element_instance_id) { | 
| -  DCHECK_NE(element_instance_id_, guestview::kInstanceIDNone); | 
| -  DCHECK_EQ(element_instance_id_, element_instance_id); | 
| -  DCHECK(!mime_type_.empty()); | 
| -  render_frame()->AttachGuest(element_instance_id); | 
| -} | 
| - | 
| -void GuestViewContainer::OnGuestAttached(int element_instance_id, | 
| -                                         int guest_proxy_routing_id) { | 
| -  attached_ = true; | 
| - | 
| -  if (!mime_type_.empty()) { | 
| -    // MimeHandlerView's creation and attachment is not done via JS API. | 
| -    return; | 
| -  } | 
| - | 
| +void ExtensionsGuestViewContainer::OnGuestAttached(int /* unused */, | 
| +                                                   int guest_proxy_routing_id) { | 
| // Handle the callback for the current request with a pending response. | 
| HandlePendingResponseCallback(guest_proxy_routing_id); | 
| // Perform the subsequent attach request if one exists. | 
| PerformPendingAttachRequest(); | 
| } | 
|  | 
| -void GuestViewContainer::AttachGuestInternal( | 
| +void ExtensionsGuestViewContainer::AttachGuestInternal( | 
| linked_ptr<AttachRequest> request) { | 
| CHECK(!pending_response_.get()); | 
| // Step 1, send the attach params to chrome/. | 
| render_frame()->Send( | 
| -      new ExtensionHostMsg_AttachGuest(render_view_routing_id_, | 
| +      new ExtensionHostMsg_AttachGuest(render_view_routing_id(), | 
| request->element_instance_id(), | 
| request->guest_instance_id(), | 
| *request->attach_params())); | 
| @@ -176,12 +129,12 @@ void GuestViewContainer::AttachGuestInternal( | 
| pending_response_ = request; | 
| } | 
|  | 
| -void GuestViewContainer::EnqueueAttachRequest( | 
| +void ExtensionsGuestViewContainer::EnqueueAttachRequest( | 
| linked_ptr<AttachRequest> request) { | 
| pending_requests_.push_back(request); | 
| } | 
|  | 
| -void GuestViewContainer::PerformPendingAttachRequest() { | 
| +void ExtensionsGuestViewContainer::PerformPendingAttachRequest() { | 
| if (!ready_ || pending_requests_.empty() || pending_response_.get()) | 
| return; | 
|  | 
| @@ -190,7 +143,7 @@ void GuestViewContainer::PerformPendingAttachRequest() { | 
| AttachGuestInternal(pending_request); | 
| } | 
|  | 
| -void GuestViewContainer::HandlePendingResponseCallback( | 
| +void ExtensionsGuestViewContainer::HandlePendingResponseCallback( | 
| int guest_proxy_routing_id) { | 
| CHECK(pending_response_.get()); | 
| linked_ptr<AttachRequest> pending_response(pending_response_.release()); | 
| @@ -225,16 +178,4 @@ void GuestViewContainer::HandlePendingResponseCallback( | 
| callback->Call(context->Global(), argc, argv); | 
| } | 
|  | 
| -// static | 
| -bool GuestViewContainer::ShouldHandleMessage(const IPC::Message& message) { | 
| -  switch (message.type()) { | 
| -    case ExtensionMsg_CreateMimeHandlerViewGuestACK::ID: | 
| -    case ExtensionMsg_GuestAttached::ID: | 
| -      return true; | 
| -    default: | 
| -      break; | 
| -  } | 
| -  return false; | 
| -} | 
| - | 
| }  // namespace extensions | 
|  |