Index: extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h |
diff --git a/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h b/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h |
index 9ba3fc8814dfac8266a41e2a31f9038e5ef9d632..8b9fe269d6c66cb2ecbc583ca627f4c1bf61b9e2 100644 |
--- a/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h |
+++ b/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h |
@@ -5,10 +5,13 @@ |
#ifndef EXTENSIONS_RENDERER_GUEST_VIEW_MIME_HANDLER_VIEW_CONTAINER_H_ |
#define EXTENSIONS_RENDERER_GUEST_VIEW_MIME_HANDLER_VIEW_CONTAINER_H_ |
+#include "base/memory/weak_ptr.h" |
#include "extensions/renderer/guest_view/guest_view_container.h" |
+#include "extensions/renderer/scoped_persistent.h" |
#include "third_party/WebKit/public/platform/WebURLLoader.h" |
#include "third_party/WebKit/public/platform/WebURLLoaderClient.h" |
#include "url/gurl.h" |
+#include "v8/include/v8.h" |
namespace extensions { |
@@ -37,10 +40,11 @@ class MimeHandlerViewContainer : public GuestViewContainer, |
~MimeHandlerViewContainer() override; |
// BrowserPluginDelegate implementation. |
+ void Ready() override; |
void DidFinishLoading() override; |
void DidReceiveData(const char* data, int data_length) override; |
bool OnMessageReceived(const IPC::Message& message) override; |
- void Ready() override; |
+ v8::Local<v8::Object> V8ScriptableObject(v8::Isolate*) override; |
// WebURLLoaderClient overrides. |
void didReceiveData(blink::WebURLLoader* loader, |
@@ -51,9 +55,15 @@ class MimeHandlerViewContainer : public GuestViewContainer, |
double finish_time, |
int64_t total_encoded_data_length) override; |
+ // Post a JavaScript message to the guest. |
+ void PostMessage(v8::Isolate* isolate, |
+ v8::Handle<v8::Value> message); |
+ |
private: |
// Message handlers. |
void OnCreateMimeHandlerViewGuestACK(int element_instance_id); |
+ void OnGuestAttached(int element_instance_id, |
+ int guest_proxy_routing_id); |
void CreateMimeHandlerViewGuest(); |
@@ -69,10 +79,18 @@ class MimeHandlerViewContainer : public GuestViewContainer, |
// The original URL of the plugin. |
GURL original_url_; |
+ // The RenderView routing ID of the guest. |
+ int guest_proxy_routing_id_; |
+ |
// A URL loader to load the |original_url_| when the plugin is embedded. In |
// the embedded case, no URL request is made automatically. |
scoped_ptr<blink::WebURLLoader> loader_; |
+ // The scriptable object that backs the plugin. |
+ ScopedPersistent<v8::Object> scriptable_object_; |
+ |
+ base::WeakPtrFactory<MimeHandlerViewContainer> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MimeHandlerViewContainer); |
}; |