Add type for WebContents

This commit is contained in:
Cheng Zhao 2015-06-24 21:44:27 +08:00
parent 87f44c42df
commit 2532318bee
2 changed files with 13 additions and 1 deletions

View file

@ -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"));

View file

@ -220,6 +220,12 @@ class WebContents : public mate::TrackableObject<WebContents>,
void OnGpuProcessCrashed(base::TerminationStatus exit_code) override;
private:
enum Type {
BROWSER_WINDOW, // Used by BrowserWindow.
WEB_VIEW, // Used by <webview>.
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<WebContents>,
// 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_;