diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 027a74982192..63244922ce8f 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -144,6 +144,7 @@ content::ServiceWorkerContext* GetServiceWorkerContext( WebContents::WebContents(brightray::InspectableWebContents* web_contents) : WebContents(web_contents->GetWebContents()) { + type_ = BROWSER_WINDOW; inspectable_web_contents_ = web_contents; } @@ -154,6 +155,7 @@ WebContents::WebContents(content::WebContents* web_contents) guest_host_(nullptr), auto_size_enabled_(false), is_full_page_plugin_(false), + type_(REMOTE), inspectable_web_contents_(nullptr) { AttachAsUserData(web_contents); } @@ -163,7 +165,8 @@ WebContents::WebContents(const mate::Dictionary& options) guest_opaque_(true), guest_host_(nullptr), auto_size_enabled_(false), - is_full_page_plugin_(false) { + is_full_page_plugin_(false), + type_(WEB_VIEW) { auto browser_context = AtomBrowserMainParts::Get()->browser_context(); content::SiteInstance* site_instance = content::SiteInstance::CreateForURL( browser_context, GURL("chrome-guest://fake-host")); diff --git a/atom/browser/api/atom_api_web_contents.h b/atom/browser/api/atom_api_web_contents.h index 741b0398e777..d9e1e9c99388 100644 --- a/atom/browser/api/atom_api_web_contents.h +++ b/atom/browser/api/atom_api_web_contents.h @@ -220,6 +220,12 @@ class WebContents : public mate::TrackableObject, void OnGpuProcessCrashed(base::TerminationStatus exit_code) override; private: + enum Type { + BROWSER_WINDOW, // Used by BrowserWindow. + WEB_VIEW, // Used by . + REMOTE, // Thin wrap around an existing WebContents. + }; + // Called when received a message from renderer. void OnRendererMessage(const base::string16& channel, const base::ListValue& args); @@ -273,6 +279,9 @@ class WebContents : public mate::TrackableObject, // Whether the guest view is inside a plugin document. bool is_full_page_plugin_; + // The type of current WebContents. + Type type_; + // Current InspectableWebContents object, can be nullptr for WebContents of // devtools. It is a weak reference. brightray::InspectableWebContents* inspectable_web_contents_;