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

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 5fcf51637814afd5ada14b88d104c5dbbcd331e7..facbf041f935cedd9c641f1083f2ed33d0b44f64 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,9 +40,10 @@ class MimeHandlerViewContainer : public GuestViewContainer,
~MimeHandlerViewContainer() override;
// BrowserPluginDelegate implementation.
+ void Ready() override;
void DidFinishLoading() override;
void DidReceiveData(const char* data, int data_length) override;
- void Ready() override;
+ v8::Local<v8::Object> v8ScriptableObject(v8::Isolate*) override;
// GuestViewContainer overrides.
bool HandlesMessage(const IPC::Message& message) override;
@@ -54,9 +58,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();
@@ -72,10 +82,19 @@ class MimeHandlerViewContainer : public GuestViewContainer,
// The original URL of the plugin.
GURL original_url_;
+ // Save the RenderView RoutingID of the guest here so it can be used to route
Sam McNally 2014/12/18 05:36:47 This comment should be where the routing ID is sav
raymes 2014/12/19 00:00:16 Done.
raymes 2014/12/19 00:00:16 Done.
+ // PostMessage calls.
+ 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