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

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

Issue 702433002: Refactor GuestViewContainer to split out WebView related logic and MimeHandlerView related logic. (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/guest_view_container.h
diff --git a/extensions/renderer/guest_view/guest_view_container.h b/extensions/renderer/guest_view/guest_view_container.h
index d891775c94c90f162512625eac67485d46e56f16..a5e212eaa26ee5c769f3ebe030cc3f82352d7130 100644
--- a/extensions/renderer/guest_view/guest_view_container.h
+++ b/extensions/renderer/guest_view/guest_view_container.h
@@ -2,104 +2,38 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_RENDERER_GUEST_VIEW_GUEST_VIEW_CONTAINER_H_
-#define CHROME_RENDERER_GUEST_VIEW_GUEST_VIEW_CONTAINER_H_
+#ifndef EXTENSIONS_RENDERER_GUEST_VIEW_GUEST_VIEW_CONTAINER_H_
+#define EXTENSIONS_RENDERER_GUEST_VIEW_GUEST_VIEW_CONTAINER_H_
-#include <queue>
-
-#include "base/memory/linked_ptr.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/values.h"
#include "content/public/renderer/browser_plugin_delegate.h"
#include "content/public/renderer/render_frame_observer.h"
-#include "extensions/renderer/scoped_persistent.h"
+#include "ipc/ipc_message.h"
namespace extensions {
class GuestViewContainer : public content::BrowserPluginDelegate,
public content::RenderFrameObserver {
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();
-
- int element_instance_id() const { return element_instance_id_; }
-
- int guest_instance_id() const { return guest_instance_id_; }
-
- base::DictionaryValue* attach_params() const {
- return params_.get();
- }
-
- bool HasCallback() const;
-
- v8::Handle<v8::Function> GetCallback() const;
-
- v8::Isolate* isolate() const { return isolate_; }
-
- private:
- const int element_instance_id_;
- const int guest_instance_id_;
- scoped_ptr<base::DictionaryValue> params_;
- ScopedPersistent<v8::Function> callback_;
- v8::Isolate* const isolate_;
- };
-
- GuestViewContainer(content::RenderFrame* render_frame,
- const std::string& mime_type);
+ explicit GuestViewContainer(content::RenderFrame* render_frame);
~GuestViewContainer() override;
- static GuestViewContainer* FromID(int render_view_routing_id,
- int element_instance_id);
-
- void AttachGuest(linked_ptr<AttachRequest> request);
-
// BrowserPluginDelegate implementation.
void SetElementInstanceID(int element_instance_id) override;
- void DidFinishLoading() override;
- void DidReceiveData(const char* data, int data_length) override;
- void Ready() override;
// RenderFrameObserver override.
void OnDestruct() override;
bool OnMessageReceived(const IPC::Message& message) override;
- private:
- void OnCreateMimeHandlerViewGuestACK(int element_instance_id);
- void OnGuestAttached(int element_instance_id, int guest_proxy_routing_id);
-
- void AttachGuestInternal(linked_ptr<AttachRequest> request);
- void EnqueueAttachRequest(linked_ptr<AttachRequest> request);
- void PerformPendingAttachRequest();
- void HandlePendingResponseCallback(int guest_proxy_routing_id);
+ virtual bool HandlesMessage(const IPC::Message& message) = 0;
+ virtual bool OnMessage(const IPC::Message& message) = 0;
- static bool ShouldHandleMessage(const IPC::Message& mesage);
-
- const std::string mime_type_;
+ protected:
Fady Samuel 2014/11/04 11:47:50 I'd prefer if these member variables are private a
raymes 2014/11/04 22:56:08 Done.
int element_instance_id_;
- std::string html_string_;
- // Save the RenderView RoutingID here so that we can use it during
- // destruction.
int render_view_routing_id_;
- bool attached_;
- bool ready_;
-
- std::deque<linked_ptr<AttachRequest> > pending_requests_;
- linked_ptr<AttachRequest> pending_response_;
-
DISALLOW_COPY_AND_ASSIGN(GuestViewContainer);
};
} // namespace extensions
-#endif // CHROME_RENDERER_GUEST_VIEW_GUEST_VIEW_CONTAINER_H_
+#endif // EXTENSIONS_RENDERER_GUEST_VIEW_GUEST_VIEW_CONTAINER_H_

Powered by Google App Engine
This is Rietveld 408576698