kBGRA_8888_SkColorType);
}
-void NativeWindow::CloseWebContents() {
+content::WebContents* NativeWindow::GetWebContents() const {
+ if (inspectable_web_contents_)
+ return inspectable_web_contents_->GetWebContents();
+ else
+ return nullptr;
+}
+
+void NativeWindow::RequestToClosePage() {
bool prevent_default = false;
FOR_EACH_OBSERVER(NativeWindowObserver,
observers_,
web_contents->Close();
}
-content::WebContents* NativeWindow::GetWebContents() const {
- if (inspectable_web_contents_)
- return inspectable_web_contents_->GetWebContents();
- else
- return nullptr;
-}
-
void NativeWindow::AppendExtraCommandLineSwitches(
base::CommandLine* command_line) {
// Append --node-integration to renderer process.
virtual void SetMenuBarVisibility(bool visible);
virtual bool IsMenuBarVisible();
- // The same with closing a tab in a real browser.
- //
- // Should be called by platform code when user want to close the window.
- virtual void CloseWebContents();
-
base::WeakPtr<NativeWindow> GetWeakPtr() {
return weak_factory_.GetWeakPtr();
}
content::WebContents* GetWebContents() const;
+ // Requests the WebContents to close, can be cancelled by the page.
+ virtual void RequestToClosePage();
+
// Methods called by the WebContents.
virtual void CloseContents(content::WebContents* source);
virtual void RendererUnresponsive(content::WebContents* source);
// When user tries to close the window by clicking the close button, we do
// not close the window immediately, instead we try to close the web page
// fisrt, and when the web page is closed the window will also be closed.
- shell_->CloseWebContents();
+ shell_->RequestToClosePage();
return NO;
}
virtual ~NativeWindowClientView() {}
bool CanClose() override {
- static_cast<NativeWindowViews*>(contents_view())->CloseWebContents();
+ static_cast<NativeWindowViews*>(contents_view())->RequestToClosePage();
return false;
}