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

Unified Diff: components/guest_view/browser/guest_view_base.h

Issue 1392343002: Reduce the public method footprint of GuestViewBase and derived types. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Reverted reordering in cc files. Created 5 years, 2 months 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
« no previous file with comments | « no previous file | components/guest_view/browser/guest_view_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/guest_view/browser/guest_view_base.h
diff --git a/components/guest_view/browser/guest_view_base.h b/components/guest_view/browser/guest_view_base.h
index 0884fcd247574be12cad55b3be8a423da907758f..588826fc1c9a765e1545cb7780e1d51e3c0740d6 100644
--- a/components/guest_view/browser/guest_view_base.h
+++ b/components/guest_view/browser/guest_view_base.h
@@ -82,123 +82,50 @@ class GuestViewBase : public content::BrowserPluginGuestDelegate,
static bool IsGuest(content::WebContents* web_contents);
+ // Returns the name of the derived type of this GuestView.
virtual const char* GetViewType() const = 0;
- // This method is called after the guest has been attached to an embedder and
- // suspended resource loads have been resumed.
- //
- // This method can be overriden by subclasses. This gives the derived class
- // an opportunity to perform setup actions after attachment.
- virtual void DidAttachToEmbedder() {}
-
- // This method is called after this GuestViewBase has been initiated.
- //
- // This gives the derived class an opportunity to perform additional
- // initialization.
- virtual void DidInitialize(const base::DictionaryValue& create_params) {}
-
- // This method is called when the initial set of frames within the page have
- // completed loading.
- virtual void GuestViewDidStopLoading() {}
-
- // This method is called when the embedder's zoom changes.
- virtual void EmbedderZoomChanged(double old_zoom_level,
- double new_zoom_level) {}
-
- // This method is called when the guest WebContents has been destroyed. This
- // object will be destroyed after this call returns.
- //
- // This gives the derived class an opportunity to perform some cleanup.
- virtual void GuestDestroyed() {}
-
- // This method is invoked when the guest RenderView is ready, e.g. because we
- // recreated it after a crash or after reattachment.
- //
- // This gives the derived class an opportunity to perform some initialization
- // work.
- virtual void GuestReady() {}
-
- // This method is called when the guest's zoom changes.
- virtual void GuestZoomChanged(double old_zoom_level, double new_zoom_level) {}
-
- // This method is called when embedder WebContents's fullscreen is toggled.
- //
- // If the guest asked the embedder to enter fullscreen, the guest uses this
- // signal to exit fullscreen state.
- virtual void EmbedderFullscreenToggled(bool entered_fullscreen) {}
-
- // This method is invoked when the contents auto-resized to give the container
- // an opportunity to match it if it wishes.
- //
- // This gives the derived class an opportunity to inform its container element
- // or perform other actions.
- virtual void GuestSizeChangedDueToAutoSize(const gfx::Size& old_size,
- const gfx::Size& new_size) {}
-
// This method queries whether autosize is supported for this particular view.
// By default, autosize is not supported. Derived classes can override this
// behavior to support autosize.
virtual bool IsAutoSizeSupported() const;
- // This method is invoked when the contents preferred size changes. This will
- // only ever fire if IsPreferredSizeSupported returns true.
- virtual void OnPreferredSizeChanged(const gfx::Size& pref_size) {}
-
// This method queries whether preferred size events are enabled for this
// view. By default, preferred size events are disabled, since they add a
// small amount of overhead.
virtual bool IsPreferredSizeModeEnabled() const;
- // This method is called immediately before suspended resource loads have been
- // resumed on attachment to an embedder.
- //
- // This method can be overriden by subclasses. This gives the derived class
- // an opportunity to perform setup actions before attachment.
- virtual void WillAttachToEmbedder() {}
-
- // This method is called when the guest WebContents is about to be destroyed.
- //
- // This gives the derived class an opportunity to perform some cleanup prior
- // to destruction.
- virtual void WillDestroy() {}
-
- // This method is to be implemented by the derived class. This indicates
- // whether zoom should propagate from the embedder to the guest content.
+ // This indicates whether zoom should propagate from the embedder to the guest
+ // content.
virtual bool ZoomPropagatesFromEmbedderToGuest() const;
- // This method is to be implemented by the derived class. Access to guest
- // views are determined by the availability of the internal extension API
- // used to implement the guest view.
+ // Access to guest views are determined by the availability of the internal
+ // extension API used to implement the guest view.
//
// This should be the name of the API as it appears in the _api_features.json
// file.
virtual const char* GetAPINamespace() const = 0;
- // This method is to be implemented by the derived class. This method is the
- // task prefix to show for a task produced by this GuestViewBase's derived
- // type.
+ // This method is the task prefix to show for a task produced by this
+ // GuestViewBase's derived type.
virtual int GetTaskPrefix() const = 0;
- // This method is to be implemented by the derived class. Given a set of
- // initialization parameters, a concrete subclass of GuestViewBase can
- // create a specialized WebContents that it returns back to GuestViewBase.
- using WebContentsCreatedCallback =
- base::Callback<void(content::WebContents*)>;
- virtual void CreateWebContents(
- const base::DictionaryValue& create_params,
- const WebContentsCreatedCallback& callback) = 0;
+ // Dispatches an event to the guest proxy.
+ void DispatchEventToGuestProxy(GuestViewEvent* event);
+
+ // Dispatches an event to the view.
+ void DispatchEventToView(GuestViewEvent* event);
// This creates a WebContents and initializes |this| GuestViewBase to use the
// newly created WebContents.
+ using WebContentsCreatedCallback =
+ base::Callback<void(content::WebContents*)>;
void Init(const base::DictionaryValue& create_params,
const WebContentsCreatedCallback& callback);
void InitWithWebContents(const base::DictionaryValue& create_params,
content::WebContents* guest_web_contents);
- void LoadURLWithParams(
- const content::NavigationController::LoadURLParams& load_params);
-
bool IsViewType(const char* const view_type) const {
return !strcmp(GetViewType(), view_type);
}
@@ -271,36 +198,115 @@ class GuestViewBase : public content::BrowserPluginGuestDelegate,
void SetAttachParams(const base::DictionaryValue& params);
void SetOpener(GuestViewBase* opener);
- content::WebContents* CreateNewGuestWindow(
- const content::WebContents::CreateParams& create_params) final;
- void DidAttach(int guest_proxy_routing_id) final;
- void DidDetach() final;
- content::WebContents* GetOwnerWebContents() const final;
- bool Find(int request_id,
- const base::string16& search_text,
- const blink::WebFindOptions& options) final;
- bool StopFinding(content::StopFindAction action) final;
- void GuestSizeChanged(const gfx::Size& new_size) final;
- void SetGuestHost(content::GuestHost* guest_host) final;
- void WillAttach(content::WebContents* embedder_web_contents,
- int browser_plugin_instance_id,
- bool is_full_page_plugin,
- const base::Closure& callback) final;
+ protected:
+ explicit GuestViewBase(content::WebContents* owner_web_contents);
- // ui_zoom::ZoomObserver implementation.
- void OnZoomChanged(
- const ui_zoom::ZoomController::ZoomChangedEventData& data) final;
+ ~GuestViewBase() override;
- // Dispatches an event to the guest proxy.
- void DispatchEventToGuestProxy(GuestViewEvent* event);
+ // BrowserPluginGuestDelegate implementation.
+ void SetContextMenuPosition(const gfx::Point& position) override;
- // Dispatches an event to the view.
- void DispatchEventToView(GuestViewEvent* event);
+ // WebContentsDelegate implementation.
+ void HandleKeyboardEvent(
+ content::WebContents* source,
+ const content::NativeWebKeyboardEvent& event) override;
+ bool PreHandleGestureEvent(content::WebContents* source,
+ const blink::WebGestureEvent& event) override;
+ void FindReply(content::WebContents* source,
+ int request_id,
+ int number_of_matches,
+ const gfx::Rect& selection_rect,
+ int active_match_ordinal,
+ bool final_update) override;
- protected:
- explicit GuestViewBase(content::WebContents* owner_web_contents);
+ // WebContentsObserver implementation.
+ void DidNavigateMainFrame(
+ const content::LoadCommittedDetails& details,
+ const content::FrameNavigateParams& params) override;
- ~GuestViewBase() override;
+ // Given a set of initialization parameters, a concrete subclass of
+ // GuestViewBase can create a specialized WebContents that it returns back to
+ // GuestViewBase.
+ virtual void CreateWebContents(
+ const base::DictionaryValue& create_params,
+ const WebContentsCreatedCallback& callback) = 0;
+
+ // This method is called after the guest has been attached to an embedder and
+ // suspended resource loads have been resumed.
+ //
+ // This method can be overriden by subclasses. This gives the derived class
+ // an opportunity to perform setup actions after attachment.
+ virtual void DidAttachToEmbedder() {}
+
+ // This method is called after this GuestViewBase has been initiated.
+ //
+ // This gives the derived class an opportunity to perform additional
+ // initialization.
+ virtual void DidInitialize(const base::DictionaryValue& create_params) {}
+
+ // This method is called when embedder WebContents's fullscreen is toggled.
+ //
+ // If the guest asked the embedder to enter fullscreen, the guest uses this
+ // signal to exit fullscreen state.
+ virtual void EmbedderFullscreenToggled(bool entered_fullscreen) {}
+
+ // This method is called when the initial set of frames within the page have
+ // completed loading.
+ virtual void GuestViewDidStopLoading() {}
+
+ // This method is called when the guest WebContents has been destroyed. This
+ // object will be destroyed after this call returns.
+ //
+ // This gives the derived class an opportunity to perform some cleanup.
+ virtual void GuestDestroyed() {}
+
+ // This method is invoked when the guest RenderView is ready, e.g. because we
+ // recreated it after a crash or after reattachment.
+ //
+ // This gives the derived class an opportunity to perform some initialization
+ // work.
+ virtual void GuestReady() {}
+
+ // This method is called when the guest's zoom changes.
+ virtual void GuestZoomChanged(double old_zoom_level, double new_zoom_level) {}
+
+ // This method is invoked when the contents auto-resized to give the container
+ // an opportunity to match it if it wishes.
+ //
+ // This gives the derived class an opportunity to inform its container element
+ // or perform other actions.
+ virtual void GuestSizeChangedDueToAutoSize(const gfx::Size& old_size,
+ const gfx::Size& new_size) {}
+
+ // This method is invoked when the contents preferred size changes. This will
+ // only ever fire if IsPreferredSizeSupported returns true.
+ virtual void OnPreferredSizeChanged(const gfx::Size& pref_size) {}
+
+ // Signals that the guest view is ready. The default implementation signals
+ // immediately, but derived class can override this if they need to do
+ // asynchronous setup.
+ virtual void SignalWhenReady(const base::Closure& callback);
+
+ // Returns true if this guest should handle find requests for its
+ // embedder. This should generally be true for guests that make up the
+ // entirety of the embedder's content.
+ virtual bool ShouldHandleFindRequestsForEmbedder() const;
+
+ // This method is called immediately before suspended resource loads have been
+ // resumed on attachment to an embedder.
+ //
+ // This method can be overriden by subclasses. This gives the derived class
+ // an opportunity to perform setup actions before attachment.
+ virtual void WillAttachToEmbedder() {}
+
+ // This method is called when the guest WebContents is about to be destroyed.
+ //
+ // This gives the derived class an opportunity to perform some cleanup prior
+ // to destruction.
+ virtual void WillDestroy() {}
+
+ void LoadURLWithParams(
+ const content::NavigationController::LoadURLParams& load_params);
// Convert sizes in pixels from logical to physical numbers of pixels.
// Note that a size can consist of a fractional number of logical pixels
@@ -316,66 +322,61 @@ class GuestViewBase : public content::BrowserPluginGuestDelegate,
// is represented as an int).
double PhysicalPixelsToLogicalPixels(int physical_pixels) const;
- // WebContentsObserver implementation.
- void DidStopLoading() final;
- void RenderViewReady() final;
- void WebContentsDestroyed() final;
- void DidNavigateMainFrame(
- const content::LoadCommittedDetails& details,
- const content::FrameNavigateParams& params) override;
+ void SetGuestZoomLevelToMatchEmbedder();
+
+ private:
+ friend class GuestViewMessageFilter;
+
+ class OwnerContentsObserver;
+ class OpenerLifetimeObserver;
+
+ // BrowserPluginGuestDelegate implementation.
+ content::WebContents* CreateNewGuestWindow(
+ const content::WebContents::CreateParams& create_params) final;
+ void DidAttach(int guest_proxy_routing_id) final;
+ void DidDetach() final;
+ content::WebContents* GetOwnerWebContents() const final;
+ bool HandleFindForEmbedder(int request_id,
+ const base::string16& search_text,
+ const blink::WebFindOptions& options) final;
+ bool HandleStopFindingForEmbedder(content::StopFindAction action) final;
+ void GuestSizeChanged(const gfx::Size& new_size) final;
+ void SetGuestHost(content::GuestHost* guest_host) final;
+ void WillAttach(content::WebContents* embedder_web_contents,
+ int browser_plugin_instance_id,
+ bool is_full_page_plugin,
+ const base::Closure& callback) final;
// WebContentsDelegate implementation.
void ActivateContents(content::WebContents* contents) final;
void ContentsMouseEvent(content::WebContents* source,
const gfx::Point& location,
- bool motion) override;
- void ContentsZoomChange(bool zoom_in) override;
- void HandleKeyboardEvent(
- content::WebContents* source,
- const content::NativeWebKeyboardEvent& event) override;
+ bool motion) final;
+ void ContentsZoomChange(bool zoom_in) final;
void LoadingStateChanged(content::WebContents* source,
bool to_different_document) final;
content::ColorChooser* OpenColorChooser(
content::WebContents* web_contents,
SkColor color,
- const std::vector<content::ColorSuggestion>& suggestions) override;
+ const std::vector<content::ColorSuggestion>& suggestions) final;
void ResizeDueToAutoResize(content::WebContents* web_contents,
- const gfx::Size& new_size) override;
+ const gfx::Size& new_size) final;
void RunFileChooser(content::WebContents* web_contents,
- const content::FileChooserParams& params) override;
+ const content::FileChooserParams& params) final;
bool ShouldFocusPageAfterCrash() final;
- bool PreHandleGestureEvent(content::WebContents* source,
- const blink::WebGestureEvent& event) override;
void UpdatePreferredSize(content::WebContents* web_contents,
const gfx::Size& pref_size) final;
- void UpdateTargetURL(content::WebContents* source, const GURL& url) override;
- bool ShouldResumeRequestsForCreatedWindow() override;
- void FindReply(content::WebContents* source,
- int request_id,
- int number_of_matches,
- const gfx::Rect& selection_rect,
- int active_match_ordinal,
- bool final_update) override;
+ void UpdateTargetURL(content::WebContents* source, const GURL& url) final;
+ bool ShouldResumeRequestsForCreatedWindow() final;
- void SetGuestZoomLevelToMatchEmbedder();
-
- // Signals that the guest view is ready. The default implementation signals
- // immediately, but derived class can override this if they need to do
- // asynchronous setup.
- virtual void SignalWhenReady(const base::Closure& callback);
-
- // Returns true if this guest should handle find requests for its
- // embedder. This should generally be true for guests that make up the
- // entirety of the embedder's content.
- virtual bool ShouldHandleFindRequestsForEmbedder() const;
-
- // BrowserPluginGuestDelegate implementation.
- void SetContextMenuPosition(const gfx::Point& position) override;
-
- private:
- class OwnerContentsObserver;
+ // WebContentsObserver implementation.
+ void DidStopLoading() final;
+ void RenderViewReady() final;
+ void WebContentsDestroyed() final;
- class OpenerLifetimeObserver;
+ // ui_zoom::ZoomObserver implementation.
+ void OnZoomChanged(
+ const ui_zoom::ZoomController::ZoomChangedEventData& data) final;
void SendQueuedEvents();
« no previous file with comments | « no previous file | components/guest_view/browser/guest_view_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698