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

Unified Diff: extensions/renderer/guest_view/extensions_guest_view_container.h

Issue 764863003: Revert of Refactor GuestViewContainer::AttachRequest to allow for other request types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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/extensions_guest_view_container.h
diff --git a/extensions/renderer/guest_view/extensions_guest_view_container.h b/extensions/renderer/guest_view/extensions_guest_view_container.h
index 0efec2668aa17792f6937dc643fa63d44a807089..9b1424d54da033ffecb31b49c00b45b3d0465240 100644
--- a/extensions/renderer/guest_view/extensions_guest_view_container.h
+++ b/extensions/renderer/guest_view/extensions_guest_view_container.h
@@ -17,18 +17,26 @@
class ExtensionsGuestViewContainer : public GuestViewContainer {
public:
+ // This class represents an AttachGuest request from Javascript. It includes
+ // the input parameters and the callback function. The Attach operation may
+ // not execute immediately, if the container is not ready or if there are
+ // other attach operations in flight.
+ class AttachRequest {
+ public:
+ AttachRequest(int element_instance_id,
+ int guest_instance_id,
+ scoped_ptr<base::DictionaryValue> params,
+ v8::Handle<v8::Function> callback,
+ v8::Isolate* isolate);
+ ~AttachRequest();
- class Request {
- public:
- Request(GuestViewContainer* container,
- v8::Handle<v8::Function> callback,
- v8::Isolate* isolate);
- virtual ~Request();
+ int element_instance_id() const { return element_instance_id_; }
- virtual void PerformRequest() = 0;
- virtual void HandleResponse(const IPC::Message& message) = 0;
+ int guest_instance_id() const { return guest_instance_id_; }
- GuestViewContainer* container() const { return container_; }
+ base::DictionaryValue* attach_params() const {
+ return params_.get();
+ }
bool HasCallback() const;
@@ -37,38 +45,20 @@
v8::Isolate* isolate() const { return isolate_; }
private:
- GuestViewContainer* container_;
+ const int element_instance_id_;
+ const int guest_instance_id_;
+ scoped_ptr<base::DictionaryValue> params_;
ScopedPersistent<v8::Function> callback_;
v8::Isolate* const isolate_;
- };
-
- // This class represents an AttachGuest request from Javascript. It includes
- // the input parameters and the callback function. The Attach operation may
- // not execute immediately, if the container is not ready or if there are
- // other attach operations in flight.
- class AttachRequest : public Request {
- public:
- AttachRequest(GuestViewContainer* container,
- int guest_instance_id,
- scoped_ptr<base::DictionaryValue> params,
- v8::Handle<v8::Function> callback,
- v8::Isolate* isolate);
- ~AttachRequest() override;
-
- void PerformRequest() override;
- void HandleResponse(const IPC::Message& message) override;
-
- private:
- const int guest_instance_id_;
- scoped_ptr<base::DictionaryValue> params_;
};
explicit ExtensionsGuestViewContainer(content::RenderFrame* render_frame);
~ExtensionsGuestViewContainer() override;
- static ExtensionsGuestViewContainer* FromID(int element_instance_id);
+ static ExtensionsGuestViewContainer* FromID(int render_view_routing_id,
+ int element_instance_id);
- void IssueRequest(linked_ptr<Request> request);
+ void AttachGuest(linked_ptr<AttachRequest> request);
// BrowserPluginDelegate implementation.
void SetElementInstanceID(int element_instance_id) override;
@@ -79,16 +69,18 @@
bool OnMessage(const IPC::Message& message) override;
private:
- void OnHandleCallback(const IPC::Message& message);
+ void OnGuestAttached(int element_instance_id,
+ int guest_proxy_routing_id);
- void EnqueueRequest(linked_ptr<Request> request);
- void PerformPendingRequest();
- void HandlePendingResponseCallback(const IPC::Message& message);
+ void AttachGuestInternal(linked_ptr<AttachRequest> request);
+ void EnqueueAttachRequest(linked_ptr<AttachRequest> request);
+ void PerformPendingAttachRequest();
+ void HandlePendingResponseCallback(int guest_proxy_routing_id);
bool ready_;
- std::deque<linked_ptr<Request> > pending_requests_;
- linked_ptr<Request> pending_response_;
+ std::deque<linked_ptr<AttachRequest> > pending_requests_;
+ linked_ptr<AttachRequest> pending_response_;
DISALLOW_COPY_AND_ASSIGN(ExtensionsGuestViewContainer);
};

Powered by Google App Engine
This is Rietveld 408576698