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

Unified Diff: extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h

Issue 729333002: Add PostMessage support for MimeHandlerView (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698