summaryrefslogtreecommitdiff
path: root/chromium/components/constrained_window
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-02 12:21:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-12 08:13:00 +0000
commit606d85f2a5386472314d39923da28c70c60dc8e7 (patch)
treea8f4d7bf997f349f45605e6058259fba0630e4d7 /chromium/components/constrained_window
parent5786336dda477d04fb98483dca1a5426eebde2d7 (diff)
downloadqtwebengine-chromium-606d85f2a5386472314d39923da28c70c60dc8e7.tar.gz
BASELINE: Update Chromium to 96.0.4664.181
Change-Id: I762cd1da89d73aa6313b4a753fe126c34833f046 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/constrained_window')
-rw-r--r--chromium/components/constrained_window/BUILD.gn5
-rw-r--r--chromium/components/constrained_window/DEPS1
-rw-r--r--chromium/components/constrained_window/constrained_window_views.cc31
-rw-r--r--chromium/components/constrained_window/constrained_window_views_unittest.cc21
-rw-r--r--chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h7
5 files changed, 48 insertions, 17 deletions
diff --git a/chromium/components/constrained_window/BUILD.gn b/chromium/components/constrained_window/BUILD.gn
index d8b713ca492..bca689e3981 100644
--- a/chromium/components/constrained_window/BUILD.gn
+++ b/chromium/components/constrained_window/BUILD.gn
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ozone.gni")
import("//build/config/ui.gni")
import("//ui/base/ui_features.gni")
@@ -33,6 +34,10 @@ static_library("constrained_window") {
"//ui/wm",
]
}
+
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
}
source_set("unit_tests") {
diff --git a/chromium/components/constrained_window/DEPS b/chromium/components/constrained_window/DEPS
index 74864f33fdf..8a179bd47d9 100644
--- a/chromium/components/constrained_window/DEPS
+++ b/chromium/components/constrained_window/DEPS
@@ -6,6 +6,7 @@ include_rules = [
"+ui/compositor",
"+ui/display",
"+ui/gfx",
+ "+ui/ozone/public",
"+ui/views",
"+ui/wm",
]
diff --git a/chromium/components/constrained_window/constrained_window_views.cc b/chromium/components/constrained_window/constrained_window_views.cc
index 0e01d5b8b49..480286e38b0 100644
--- a/chromium/components/constrained_window/constrained_window_views.cc
+++ b/chromium/components/constrained_window/constrained_window_views.cc
@@ -21,6 +21,10 @@
#include "ui/views/widget/widget_observer.h"
#include "ui/views/window/dialog_delegate.h"
+#if defined(USE_OZONE)
+#include "ui/ozone/public/ozone_platform.h"
+#endif
+
using web_modal::ModalDialogHost;
using web_modal::ModalDialogHostObserver;
@@ -40,13 +44,12 @@ const char* const kWidgetModalDialogHostObserverViewsKey =
"__WIDGET_MODAL_DIALOG_HOST_OBSERVER_VIEWS__";
// Applies positioning changes from the ModalDialogHost to the Widget.
-class WidgetModalDialogHostObserverViews
- : public views::WidgetObserver,
- public ModalDialogHostObserver {
+class WidgetModalDialogHostObserverViews : public views::WidgetObserver,
+ public ModalDialogHostObserver {
public:
WidgetModalDialogHostObserverViews(ModalDialogHost* host,
views::Widget* target_widget,
- const char *const native_window_property)
+ const char* const native_window_property)
: host_(host),
target_widget_(target_widget),
native_window_property_(native_window_property) {
@@ -56,6 +59,11 @@ class WidgetModalDialogHostObserverViews
target_widget_->AddObserver(this);
}
+ WidgetModalDialogHostObserverViews(
+ const WidgetModalDialogHostObserverViews&) = delete;
+ WidgetModalDialogHostObserverViews& operator=(
+ const WidgetModalDialogHostObserverViews&) = delete;
+
~WidgetModalDialogHostObserverViews() override {
if (host_)
host_->RemoveObserver(this);
@@ -81,8 +89,6 @@ class WidgetModalDialogHostObserverViews
ModalDialogHost* host_;
views::Widget* target_widget_;
const char* const native_window_property_;
-
- DISALLOW_COPY_AND_ASSIGN(WidgetModalDialogHostObserverViews);
};
void UpdateModalDialogPosition(views::Widget* widget,
@@ -110,7 +116,16 @@ void UpdateModalDialogPosition(views::Widget* widget,
position.set_y(position.y() -
widget->non_client_view()->frame_view()->GetInsets().top());
- if (widget->is_top_level()) {
+ const bool supports_global_screen_coordinates =
+#if !defined(USE_OZONE)
+ true;
+#else
+ ui::OzonePlatform::GetInstance()
+ ->GetPlatformProperties()
+ .supports_global_screen_coordinates;
+#endif
+
+ if (widget->is_top_level() && supports_global_screen_coordinates) {
position += host_widget->GetClientAreaBoundsInScreen().OffsetFromOrigin();
// If the dialog extends partially off any display, clamp its position to
// be fully visible within that display. If the dialog doesn't intersect
@@ -218,4 +233,4 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
return widget;
}
-} // namespace constrained window
+} // namespace constrained_window
diff --git a/chromium/components/constrained_window/constrained_window_views_unittest.cc b/chromium/components/constrained_window/constrained_window_views_unittest.cc
index 63c10ae34fd..daf753c4a57 100644
--- a/chromium/components/constrained_window/constrained_window_views_unittest.cc
+++ b/chromium/components/constrained_window/constrained_window_views_unittest.cc
@@ -32,6 +32,11 @@ class TestConstrainedWindowViewsClient
public:
TestConstrainedWindowViewsClient() = default;
+ TestConstrainedWindowViewsClient(const TestConstrainedWindowViewsClient&) =
+ delete;
+ TestConstrainedWindowViewsClient& operator=(
+ const TestConstrainedWindowViewsClient&) = delete;
+
// ConstrainedWindowViewsClient:
web_modal::ModalDialogHost* GetModalDialogHost(
gfx::NativeWindow parent) override {
@@ -40,9 +45,6 @@ class TestConstrainedWindowViewsClient
gfx::NativeView GetDialogHostView(gfx::NativeWindow parent) override {
return nullptr;
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestConstrainedWindowViewsClient);
};
// ViewsDelegate to provide context to dialog creation functions such as
@@ -52,6 +54,10 @@ class TestViewsDelegateWithContext : public views::TestViewsDelegate {
public:
TestViewsDelegateWithContext() = default;
+ TestViewsDelegateWithContext(const TestViewsDelegateWithContext&) = delete;
+ TestViewsDelegateWithContext& operator=(const TestViewsDelegateWithContext&) =
+ delete;
+
void set_context(gfx::NativeWindow context) { context_ = context; }
// ViewsDelegate:
@@ -65,13 +71,16 @@ class TestViewsDelegateWithContext : public views::TestViewsDelegate {
private:
gfx::NativeWindow context_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(TestViewsDelegateWithContext);
};
class ConstrainedWindowViewsTest : public views::ViewsTestBase {
public:
ConstrainedWindowViewsTest() = default;
+
+ ConstrainedWindowViewsTest(const ConstrainedWindowViewsTest&) = delete;
+ ConstrainedWindowViewsTest& operator=(const ConstrainedWindowViewsTest&) =
+ delete;
+
~ConstrainedWindowViewsTest() override = default;
void SetUp() override {
@@ -124,8 +133,6 @@ class ConstrainedWindowViewsTest : public views::ViewsTestBase {
views::View* contents_ = nullptr;
std::unique_ptr<web_modal::TestWebContentsModalDialogHost> dialog_host_;
Widget* dialog_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(ConstrainedWindowViewsTest);
};
} // namespace
diff --git a/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h b/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h
index 03eaacdcf29..801fc0b6b79 100644
--- a/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h
+++ b/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h
@@ -29,6 +29,11 @@ class NativeWebContentsModalDialogManagerViews
gfx::NativeWindow dialog,
web_modal::SingleWebContentsDialogManagerDelegate* native_delegate);
+ NativeWebContentsModalDialogManagerViews(
+ const NativeWebContentsModalDialogManagerViews&) = delete;
+ NativeWebContentsModalDialogManagerViews& operator=(
+ const NativeWebContentsModalDialogManagerViews&) = delete;
+
~NativeWebContentsModalDialogManagerViews() override;
// Sets up this object to manage the |dialog_|. Registers for closing events
@@ -78,8 +83,6 @@ class NativeWebContentsModalDialogManagerViews
bool host_destroying_ = false;
std::set<views::Widget*> observed_widgets_;
std::set<views::Widget*> shown_widgets_;
-
- DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerViews);
};
} // namespace constrained_window