Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(867)

Unified Diff: chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc

Issue 2172363002: Created min size for print preview dialog and modified to allow the Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge ConstrainedWebDialog functions Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc
diff --git a/chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc b/chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc
index 57fefa85d47a93229320c9ecb890f33807bad225..f42909393a927f4c958c65e5442dacd6206b900f 100644
--- a/chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc
+++ b/chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc
@@ -11,10 +11,12 @@
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/webui/chrome_web_contents_handler.h"
#include "components/constrained_window/constrained_window_views.h"
+#include "components/guest_view/browser/guest_view_base.h"
#include "components/web_modal/web_contents_modal_dialog_manager.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
+#include "ui/gfx/native_widget_types.h"
#include "ui/views/controls/webview/unhandled_keyboard_event_handler.h"
#include "ui/views/controls/webview/webview.h"
#include "ui/views/view.h"
@@ -29,13 +31,12 @@ namespace {
// potential use after destruction.
class InitiatorWebContentsObserver
: public content::WebContentsObserver {
- public:
- explicit InitiatorWebContentsObserver(content::WebContents* web_contents)
- : content::WebContentsObserver(web_contents) {
- }
+ public:
+ explicit InitiatorWebContentsObserver(content::WebContents* web_contents)
+ : content::WebContentsObserver(web_contents) {}
- private:
- DISALLOW_COPY_AND_ASSIGN(InitiatorWebContentsObserver);
+ private:
+ DISALLOW_COPY_AND_ASSIGN(InitiatorWebContentsObserver);
};
class WebDialogWebContentsDelegateViews
@@ -153,7 +154,8 @@ class ConstrainedWebDialogDelegateViewViews
const gfx::Size& max_size)
: views::WebView(browser_context),
initiator_observer_(web_contents),
- impl_(new ConstrainedWebDialogDelegateViews(browser_context, delegate,
+ impl_(new ConstrainedWebDialogDelegateViews(browser_context,
+ delegate,
&initiator_observer_,
this)),
min_size_(min_size),
@@ -206,7 +208,15 @@ class ConstrainedWebDialogDelegateViewViews
// No close button if the dialog doesn't want a title bar.
return impl_->GetWebDialogDelegate()->ShouldShowDialogTitle();
}
- ui::ModalType GetModalType() const override { return ui::MODAL_TYPE_CHILD; }
+ ui::ModalType GetModalType() const override {
+#if defined(OS_MACOSX)
+ return ui::MODAL_TYPE_CHILD;
+#elif defined(OS_WIN)
+ return ui::MODAL_TYPE_NONE;
+#else // Linux, ChromeOS
+ return ui::MODAL_TYPE_WINDOW;
+#endif
+ }
// views::WebView:
bool AcceleratorPressed(const ui::Accelerator& accelerator) override {
@@ -247,10 +257,10 @@ class ConstrainedWebDialogDelegateViewViews
content::WebContents* top_level_web_contents =
constrained_window::GetTopLevelWebContents(
initiator_observer_.web_contents());
- if (top_level_web_contents) {
- constrained_window::ShowModalDialog(GetWidget()->GetNativeWindow(),
- top_level_web_contents);
- }
+ if (top_level_web_contents)
+ constrained_window::ShowTopLevelModalDialog(
+ GetWidget()->GetNativeWindow(),
+ top_level_web_contents, this);
}
}
@@ -274,15 +284,37 @@ class ConstrainedWebDialogDelegateViewViews
} // namespace
+// TODO: Rename this to ShowConstrainedWebDialogInWindow and propagate to all
+// tests.
+ConstrainedWebDialogDelegate* ShowTopLevelConstrainedWebDialogInWindow(
+ content::BrowserContext* browser_context,
+ ui::WebDialogDelegate* delegate,
+ content::WebContents* web_contents,
+ gfx::NativeView dialog_host_window) {
+ ConstrainedWebDialogDelegateViewViews* dialog =
+ new ConstrainedWebDialogDelegateViewViews(browser_context, delegate,
+ web_contents, gfx::Size(),
+ gfx::Size());
+ content::WebContents* top_web_contents =
+ guest_view::GuestViewBase::GetTopLevelWebContents(web_contents);
+ views::Widget* widget =
+ views::DialogDelegate::CreateDialogWidget(dialog,
+ dialog_host_window,
+ nullptr);
+ constrained_window::ShowTopLevelModalDialog(widget->GetNativeWindow(),
+ top_web_contents, dialog);
+ return dialog;
+}
+
ConstrainedWebDialogDelegate* ShowConstrainedWebDialog(
content::BrowserContext* browser_context,
ui::WebDialogDelegate* delegate,
content::WebContents* web_contents) {
ConstrainedWebDialogDelegateViewViews* dialog =
- new ConstrainedWebDialogDelegateViewViews(
- browser_context, delegate, web_contents,
- gfx::Size(), gfx::Size());
- constrained_window::ShowWebModalDialogViews(dialog, web_contents);
+ new ConstrainedWebDialogDelegateViewViews(browser_context, delegate,
+ web_contents, gfx::Size(),
+ gfx::Size());
+ constrained_window::ShowWebModalDialogViews(dialog, web_contents, dialog);
return dialog;
}
@@ -297,8 +329,7 @@ ConstrainedWebDialogDelegate* ShowConstrainedWebDialogWithAutoResize(
ConstrainedWebDialogDelegateViewViews* dialog =
new ConstrainedWebDialogDelegateViewViews(
browser_context, delegate, web_contents,
- min_size, max_size);
-
+ min_size, max_size);//, false);
// For embedded WebContents, use the embedder's WebContents for constrained
// window.
content::WebContents* top_level_web_contents =
« no previous file with comments | « chrome/browser/ui/cocoa/constrained_web_dialog_delegate_mac.mm ('k') | chrome/browser/ui/webui/certificate_viewer_webui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698