0

Explicitly specify NATIVE_WIDGET_OWNS_WIDGET in //ash (4 of 8).

We are refactoring Views code with an eye towards changing the
default ownership model of widgets from NATIVE_WIDGET_OWNS_WIDGET
to CLIENT_OWNS_WIDGET. One of the first steps in that is to specify
the ownership explicitly in existing uses of the Widget InitParams
struct, so that we can then change the default without breaking
existing uses.

This CL changes the uses in //ash/capture_mode, //ash/components,
//ash/curtain, //ash/display, //ash/drag_drop, and //ash/fast_ink.

There should be no functional changes.

Bug: 339619005
Change-Id: I26fadd03433b6133b25e281728d5f200658fb236
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5551618
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Dirk Pranke <dpranke@google.com>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1304154}
This commit is contained in:
Dirk Pranke
2024-05-22 00:15:45 +00:00
committed by Chromium LUCI CQ
parent 1bdb999ce2
commit ca409c889d
17 changed files with 45 additions and 29 deletions

@ -178,7 +178,9 @@ const CameraInfo* GetCameraInfoById(const CameraId& id,
// Returns the widget init params needed to create the camera preview widget.
views::Widget::InitParams CreateWidgetParams(const gfx::Rect& bounds) {
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
params.parent =
CaptureModeController::Get()->GetOnCaptureSurfaceWidgetParentWindow();
params.bounds = bounds;

@ -112,7 +112,9 @@ bool ShouldConsiderKey(ui::KeyboardCode key_code) {
views::Widget::InitParams CreateWidgetParams(
VideoRecordingWatcher* video_recording_watcher) {
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
params.parent =
video_recording_watcher->GetOnCaptureSurfaceWidgetParentWindow();
params.child = true;
@ -465,4 +467,4 @@ void CaptureModeDemoToolsController::OnTouchDragged(
highlight_layer->CenterAroundPoint(event_location_in_window);
}
} // namespace ash
} // namespace ash

@ -290,7 +290,9 @@ void CaptureModeEducationController::ShowQuickSettingsNudge() {
void CaptureModeEducationController::CreateAndShowTutorialDialog() {
// As we are creating a system modal dialog, it will automatically be parented
// to `kShellWindowId_SystemModalContainer`.
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
params.delegate = CreateDialogView().release();
params.name = "CaptureModeEducationTutorialWidget";
params.activatable = views::Widget::InitParams::Activatable::kYes;

@ -220,7 +220,9 @@ views::Widget::InitParams CreateWidgetParams(aura::Window* parent,
const std::string& name) {
// Use a popup widget to get transient properties, such as not needing to
// click on the widget first to get capture before receiving events.
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.parent = parent;
params.bounds = bounds;

@ -46,7 +46,9 @@ std::u16string GetCaptureToastTextOnToastType(
// Returns the init params that will be used for the toast widget.
views::Widget::InitParams CreateWidgetParams(aura::Window* parent) {
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.parent = parent;
params.name = "CaptureModeToastWidget";

@ -81,6 +81,7 @@ class FakeFolderSelectionDialog : public ui::SelectFileDialog {
const GURL* caller) override {
dialog_widget_ = views::UniqueWidgetPtr(std::make_unique<views::Widget>());
views::Widget::InitParams widget_params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
widget_params.parent = owning_window;
widget_params.bounds = owning_window->GetRootWindow()->bounds();

@ -167,6 +167,7 @@ RecordingOverlayController::RecordingOverlayController(
const gfx::Rect& initial_bounds_in_parent) {
DCHECK(window_being_recorded);
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.name = "RecordingOverlayWidget";
params.child = true;

@ -40,9 +40,9 @@ std::vector<std::unique_ptr<ui::Layer>> InitWidgetLayers(
}
views::Widget::InitParams GetWidgetInitParams(aura::Window* parent) {
views::Widget::InitParams result;
result.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
result.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
views::Widget::InitParams result(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
result.name = "CurtainOverlayWidget";
result.opacity = views::Widget::InitParams::WindowOpacity::kOpaque;
result.parent = parent;

@ -139,15 +139,15 @@ gfx::Point GetPillOrigin(const gfx::Size& pill_size,
views::Widget::InitParams CreateInitParams(int64_t display_id,
const std::string& target_name) {
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
aura::Window* root =
Shell::GetRootWindowControllerWithDisplayId(display_id)->GetRootWindow();
params.parent = Shell::GetContainer(root, kShellWindowId_OverlayContainer);
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.ownership =
views::Widget::InitParams::Ownership::WIDGET_OWNS_NATIVE_WIDGET;
params.activatable = views::Widget::InitParams::Activatable::kNo;
params.accept_events = false;
params.name = target_name;

@ -31,8 +31,8 @@ std::unique_ptr<views::Widget> CreateHighlightWidget(
DCHECK_NE(display_id, display::kInvalidDisplayId);
views::Widget::InitParams params(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
params.activatable = views::Widget::InitParams::Activatable::kNo;
params.accept_events = false;
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;

@ -48,9 +48,9 @@ views::Widget* CreateTestWidgetWithParent(views::Widget::InitParams::Type type,
gfx::NativeView parent,
const gfx::Rect& bounds,
bool child) {
views::Widget::InitParams params(type);
views::Widget::InitParams params(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET, type);
params.delegate = nullptr;
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
params.parent = parent;
params.bounds = bounds;
params.child = child;

@ -26,10 +26,11 @@ std::unique_ptr<views::Widget> CreateWidget(const gfx::Rect& bounds) {
display::Display display =
display::Screen::GetScreen()->GetDisplayMatching(bounds);
auto widget = std::make_unique<views::Widget>();
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
views::Widget::InitParams params(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET,
views::Widget::InitParams::TYPE_POPUP);
params.context = Shell::GetRootWindowControllerWithDisplayId(display.id())
->GetRootWindow();
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.z_order = ui::ZOrderLevel::kFloatingUIElement;
params.layer_type = ui::LAYER_SOLID_COLOR;

@ -86,8 +86,9 @@ constexpr float kHandIconHorizontalOffsetFactor = 7.f / 32.f;
// Returns the initialization params for the widget that contains the touch
// calibrator view.
views::Widget::InitParams GetWidgetParams(aura::Window* root_window) {
views::Widget::InitParams params;
params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.name = kWidgetName;
params.z_order = ui::ZOrderLevel::kFloatingWindow;
params.accept_events = true;

@ -528,9 +528,9 @@ class DragDropControllerTest : public AshTestBase {
protected:
std::unique_ptr<views::Widget> CreateFramelessWidget() {
std::unique_ptr<views::Widget> widget = std::make_unique<views::Widget>();
views::Widget::InitParams params;
params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
views::Widget::InitParams params(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.context = GetContext();
widget->Init(std::move(params));
widget->Show();

@ -65,8 +65,9 @@ views::Widget* CreateWidget(std::unique_ptr<views::View> contents_view,
const gfx::Rect& bounds,
aura::Window* context) {
views::Widget* widget = new views::Widget;
views::Widget::InitParams params;
params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.accept_events = true;
params.bounds = bounds;
params.context = context;

@ -31,13 +31,13 @@ DragImageView::~DragImageView() = default;
std::unique_ptr<views::Widget> DragImageView::Create(
aura::Window* root_window,
ui::mojom::DragEventSource event_source) {
views::Widget::InitParams params;
params.type = views::Widget::InitParams::TYPE_TOOLTIP;
views::Widget::InitParams params(
views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET,
views::Widget::InitParams::TYPE_TOOLTIP);
params.name = "DragWidget";
params.accept_events = false;
params.shadow_type = views::Widget::InitParams::ShadowType::kNone;
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
params.parent =
root_window->GetChildById(kShellWindowId_DragImageAndTooltipContainer);
if (!params.parent)

@ -19,8 +19,9 @@ FastInkView::~FastInkView() = default;
views::UniqueWidgetPtr FastInkView::CreateWidgetWithContents(
std::unique_ptr<FastInkView> fast_ink_view,
aura::Window* container) {
views::Widget::InitParams params;
params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
views::Widget::InitParams params(
views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET,
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.name = "FastInkOverlay";
params.accept_events = false;
params.activatable = views::Widget::InitParams::Activatable::kNo;