diff options
author | paulmeyer <paulmeyer@chromium.org> | 2015-04-21 13:56:28 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-21 20:56:28 +0000 |
commit | f8bf5839b50c481c048dc087357d34cf7ddc425b (patch) | |
tree | c86fdd6f710a95db8f5e436a8d415b9d130832d9 /extensions | |
parent | 6b19b3fbaa6209961a7c3272cabf2f3ad263db10 (diff) | |
download | chromium_src-f8bf5839b50c481c048dc087357d34cf7ddc425b.zip chromium_src-f8bf5839b50c481c048dc087357d34cf7ddc425b.tar.gz chromium_src-f8bf5839b50c481c048dc087357d34cf7ddc425b.tar.bz2 |
Created GuestViewBase::GetTopLevelWebContents(), and used it in GetEmbedderWebContents().
BUG=452452
Review URL: https://codereview.chromium.org/1089213003
Cr-Commit-Position: refs/heads/master@{#326109}
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/browser/guest_view/guest_view_base.cc | 7 | ||||
-rw-r--r-- | extensions/browser/guest_view/guest_view_base.h | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/extensions/browser/guest_view/guest_view_base.cc b/extensions/browser/guest_view/guest_view_base.cc index 9a09562..134c326 100644 --- a/extensions/browser/guest_view/guest_view_base.cc +++ b/extensions/browser/guest_view/guest_view_base.cc @@ -341,6 +341,13 @@ GuestViewBase* GuestViewBase::From(int owner_process_id, } // static +WebContents* GuestViewBase::GetTopLevelWebContents(WebContents* web_contents) { + while (GuestViewBase* guest = FromWebContents(web_contents)) + web_contents = guest->owner_web_contents(); + return web_contents; +} + +// static bool GuestViewBase::IsGuest(WebContents* web_contents) { return !!GuestViewBase::FromWebContents(web_contents); } diff --git a/extensions/browser/guest_view/guest_view_base.h b/extensions/browser/guest_view/guest_view_base.h index e342889..7969cb9 100644 --- a/extensions/browser/guest_view/guest_view_base.h +++ b/extensions/browser/guest_view/guest_view_base.h @@ -65,6 +65,12 @@ class GuestViewBase : public content::BrowserPluginGuestDelegate, static GuestViewBase* From(int owner_process_id, int instance_id); + // Given a |web_contents|, returns the top level owner WebContents. If + // |web_contents| does not belong to a GuestView, it will be returned + // unchanged. + static content::WebContents* GetTopLevelWebContents( + content::WebContents* web_contents); + static bool IsGuest(content::WebContents* web_contents); virtual const char* GetViewType() const = 0; |