summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorpaulmeyer <paulmeyer@chromium.org>2015-04-21 13:56:28 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-21 20:56:28 +0000
commitf8bf5839b50c481c048dc087357d34cf7ddc425b (patch)
treec86fdd6f710a95db8f5e436a8d415b9d130832d9 /extensions
parent6b19b3fbaa6209961a7c3272cabf2f3ad263db10 (diff)
downloadchromium_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.cc7
-rw-r--r--extensions/browser/guest_view/guest_view_base.h6
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;