diff --git a/shell/browser/native_window_mac.mm b/shell/browser/native_window_mac.mm index add17177eb2a..160eb406e9dd 100644 --- a/shell/browser/native_window_mac.mm +++ b/shell/browser/native_window_mac.mm @@ -1557,8 +1557,11 @@ void NativeWindowMac::PreviewFile(const std::string& path, } void NativeWindowMac::CloseFilePreview() { - if ([QLPreviewPanel sharedPreviewPanelExists]) { + // Need to be careful about checking [QLPreviewPanel sharedPreviewPanel] as + // simply accessing it will cause it to reinitialize and reappear. + if ([QLPreviewPanel sharedPreviewPanelExists] && preview_item_) { [[QLPreviewPanel sharedPreviewPanel] close]; + preview_item_ = nil; } } diff --git a/spec/api-browser-window-spec.ts b/spec/api-browser-window-spec.ts index 0061357da1bc..075e63005880 100644 --- a/spec/api-browser-window-spec.ts +++ b/spec/api-browser-window-spec.ts @@ -6218,6 +6218,7 @@ describe('BrowserWindow module', () => { w.previewFile(__filename); await setTimeout(500); expect(showCalled).to.equal(false, 'should not have called show twice'); + w.closeFilePreview(); }); });