Skip to content

Commit

Permalink
chore: deprecate textured BrowserWindow type option on macOS (ele…
Browse files Browse the repository at this point in the history
  • Loading branch information
codebytere authored Aug 12, 2024
1 parent c9b7806 commit d294871
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 15 deletions.
3 changes: 1 addition & 2 deletions docs/api/structures/base-window-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,7 @@ Possible values are:
-webkit-app-region: drag. This type is commonly used for splash screens.
* The `notification` type creates a window that behaves like a system notification.
* On macOS, possible types are `desktop`, `textured`, `panel`.
* The `textured` type adds metal gradient appearance
(`NSWindowStyleMaskTexturedBackground`).
* The `textured` type adds metal gradient appearance. This option is **deprecated**.
* The `desktop` type places the window at the desktop background window level
(`kCGDesktopWindowLevel - 1`). Note that desktop window will not receive
focus, keyboard or mouse events, but you can use `globalShortcut` to receive
Expand Down
4 changes: 4 additions & 0 deletions docs/breaking-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ This document uses the following convention to categorize breaking changes:

## Planned Breaking API Changes (33.0)

### Deprecated: `textured` option in `BrowserWindowConstructorOption.type`

The `textured` option of `type` in `BrowserWindowConstructorOptions` has been deprecated with no replacement. This option relied on the [`NSWindowStyleMaskTexturedBackground`](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemasktexturedbackground) style mask on macOS, which has been deprecated with no alternative.

### Removed: macOS 10.15 support

macOS 10.15 (Catalina) is no longer supported by [Chromium](https://chromium-review.googlesource.com/c/chromium/src/+/5734361).
Expand Down
21 changes: 12 additions & 9 deletions shell/browser/native_window_mac.mm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include "shell/common/gin_helper/dictionary.h"
#include "shell/common/node_includes.h"
#include "shell/common/options_switches.h"
#include "shell/common/process_util.h"
#include "skia/ext/skia_utils_mac.h"
#include "third_party/webrtc/modules/desktop_capture/mac/window_list_utils.h"
#include "ui/base/hit_test.h"
Expand Down Expand Up @@ -154,14 +155,6 @@ static bool FromV8(v8::Isolate* isolate,
bool hiddenInMissionControl = false;
options.Get(options::kHiddenInMissionControl, &hiddenInMissionControl);

bool useStandardWindow = true;
// eventually deprecate separate "standardWindow" option in favor of
// standard / textured window types
options.Get(options::kStandardWindow, &useStandardWindow);
if (windowType == "textured") {
useStandardWindow = false;
}

// The window without titlebar is treated the same with frameless window.
if (title_bar_style_ != TitleBarStyle::kNormal)
set_has_frame(false);
Expand All @@ -186,8 +179,18 @@ static bool FromV8(v8::Isolate* isolate,
styleMask |= NSWindowStyleMaskClosable;
if (resizable)
styleMask |= NSWindowStyleMaskResizable;
if (!useStandardWindow || transparent() || !has_frame())

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if (windowType == "textured" || transparent() || !has_frame()) {
node::Environment* env =
node::Environment::GetCurrent(JavascriptEnvironment::GetIsolate());
EmitWarning(env,
"The 'textured' window type is deprecated and will be removed",
"DeprecationWarning");
styleMask |= NSWindowStyleMaskTexturedBackground;
}
#pragma clang diagnostic pop

// -Wdeprecated-declarations
#pragma clang diagnostic pop
Expand Down
3 changes: 0 additions & 3 deletions shell/common/options_switches.cc
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,6 @@ const char kType[] = "type";
// Disable auto-hiding cursor.
const char kDisableAutoHideCursor[] = "disableAutoHideCursor";

// Use the macOS' standard window instead of the textured window.
const char kStandardWindow[] = "standardWindow";

// Default browser window background color.
const char kBackgroundColor[] = "backgroundColor";

Expand Down
1 change: 0 additions & 1 deletion shell/common/options_switches.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ extern const char kDarkTheme[];
extern const char kTransparent[];
extern const char kType[];
extern const char kDisableAutoHideCursor[];
extern const char kStandardWindow[];
extern const char kBackgroundColor[];
extern const char kHasShadow[];
extern const char kOpacity[];
Expand Down

0 comments on commit d294871

Please sign in to comment.