Index: chrome/browser/ui/webui/constrained_web_dialog_ui.h |
diff --git a/chrome/browser/ui/webui/constrained_web_dialog_ui.h b/chrome/browser/ui/webui/constrained_web_dialog_ui.h |
index 79a152c1a5a0848f96ecf7368f9495d021c057cd..89f16844f4aca0d7e6f9592b3cd5c6b34bc3bec3 100644 |
--- a/chrome/browser/ui/webui/constrained_web_dialog_ui.h |
+++ b/chrome/browser/ui/webui/constrained_web_dialog_ui.h |
@@ -5,6 +5,8 @@ |
#ifndef CHROME_BROWSER_UI_WEBUI_CONSTRAINED_WEB_DIALOG_UI_H_ |
#define CHROME_BROWSER_UI_WEBUI_CONSTRAINED_WEB_DIALOG_UI_H_ |
+#include <memory> |
+ |
#include "base/compiler_specific.h" |
#include "base/macros.h" |
#include "content/public/browser/web_ui_controller.h" |
@@ -32,10 +34,9 @@ class ConstrainedWebDialogDelegate { |
// message from WebUI. |
virtual void OnDialogCloseFromWebUI() = 0; |
- // If called, on dialog closure, the dialog will release its WebContents |
- // instead of destroying it. After which point, the caller will own the |
- // released WebContents. |
- virtual void ReleaseWebContentsOnDialogClose() = 0; |
+ // If called, the dialog will release the ownership of its WebContents. |
+ // The dialog will continue to use it until it is destroyed. |
+ virtual std::unique_ptr<content::WebContents> ReleaseWebContents() = 0; |
// Returns the WebContents owned by the constrained window. |
virtual content::WebContents* GetWebContents() = 0; |
@@ -74,6 +75,7 @@ class ConstrainedWebDialogUI : public content::WebUIController { |
// Sets the delegate on the WebContents. |
static void SetConstrainedDelegate(content::WebContents* web_contents, |
ConstrainedWebDialogDelegate* delegate); |
+ static void ClearConstrainedDelegate(content::WebContents* web_contents); |
protected: |
// Returns the ConstrainedWebDialogDelegate saved with the WebContents. |