fix: don't throw on bad icons in BrowserWindow constructor (#27441)
* fix: do not throw if NativeImage conversion fails. Throwing is an unannounced semver/major breaking change, so revert that behavior but keep the rest of the #26546 refactor. * test: add invalid icon test * refactor: be explicit about when to throw or warn.
This commit is contained in:
parent
d69e0d0573
commit
5a8f40ae13
5 changed files with 49 additions and 12 deletions
|
@ -101,7 +101,7 @@ BaseWindow::BaseWindow(v8::Isolate* isolate,
|
|||
#if defined(TOOLKIT_VIEWS)
|
||||
v8::Local<v8::Value> icon;
|
||||
if (options.Get(options::kIcon, &icon)) {
|
||||
SetIcon(isolate, icon);
|
||||
SetIconImpl(isolate, icon, NativeImage::OnConvertError::kWarn);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -1009,8 +1009,15 @@ bool BaseWindow::SetThumbarButtons(gin_helper::Arguments* args) {
|
|||
|
||||
#if defined(TOOLKIT_VIEWS)
|
||||
void BaseWindow::SetIcon(v8::Isolate* isolate, v8::Local<v8::Value> icon) {
|
||||
SetIconImpl(isolate, icon, NativeImage::OnConvertError::kThrow);
|
||||
}
|
||||
|
||||
void BaseWindow::SetIconImpl(v8::Isolate* isolate,
|
||||
v8::Local<v8::Value> icon,
|
||||
NativeImage::OnConvertError on_error) {
|
||||
NativeImage* native_image = nullptr;
|
||||
if (!NativeImage::TryConvertNativeImage(isolate, icon, &native_image))
|
||||
if (!NativeImage::TryConvertNativeImage(isolate, icon, &native_image,
|
||||
on_error))
|
||||
return;
|
||||
|
||||
#if defined(OS_WIN)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue