feat: expose win.isContentProtected() (#47242)

* feat: expose win.isContentProtected()

* chore: remove stray _isContentProtected
This commit is contained in:
Shelley Vohr 2025-05-30 11:00:13 +02:00 committed by GitHub
commit c84e8c6c22
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 7 deletions

View file

@ -1350,6 +1350,10 @@ On Windows it calls SetWindowDisplayAffinity with `WDA_EXCLUDEFROMCAPTURE`.
For Windows 10 version 2004 and up the window will be removed from capture entirely, For Windows 10 version 2004 and up the window will be removed from capture entirely,
older Windows versions behave as if `WDA_MONITOR` is applied capturing a black window. older Windows versions behave as if `WDA_MONITOR` is applied capturing a black window.
#### `win.isContentProtected()` _macOS_ _Windows_
Returns `boolean` - whether or not content protection is currently enabled.
#### `win.setFocusable(focusable)` _macOS_ _Windows_ #### `win.setFocusable(focusable)` _macOS_ _Windows_
* `focusable` boolean * `focusable` boolean

View file

@ -1534,6 +1534,10 @@ On Windows it calls SetWindowDisplayAffinity with `WDA_EXCLUDEFROMCAPTURE`.
For Windows 10 version 2004 and up the window will be removed from capture entirely, For Windows 10 version 2004 and up the window will be removed from capture entirely,
older Windows versions behave as if `WDA_MONITOR` is applied capturing a black window. older Windows versions behave as if `WDA_MONITOR` is applied capturing a black window.
#### `win.isContentProtected()` _macOS_ _Windows_
Returns `boolean` - whether or not content protection is currently enabled.
#### `win.setFocusable(focusable)` _macOS_ _Windows_ #### `win.setFocusable(focusable)` _macOS_ _Windows_
* `focusable` boolean * `focusable` boolean

View file

@ -1204,7 +1204,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
.SetMethod("isDocumentEdited", &BaseWindow::IsDocumentEdited) .SetMethod("isDocumentEdited", &BaseWindow::IsDocumentEdited)
.SetMethod("setIgnoreMouseEvents", &BaseWindow::SetIgnoreMouseEvents) .SetMethod("setIgnoreMouseEvents", &BaseWindow::SetIgnoreMouseEvents)
.SetMethod("setContentProtection", &BaseWindow::SetContentProtection) .SetMethod("setContentProtection", &BaseWindow::SetContentProtection)
.SetMethod("_isContentProtected", &BaseWindow::IsContentProtected) .SetMethod("isContentProtected", &BaseWindow::IsContentProtected)
.SetMethod("setFocusable", &BaseWindow::SetFocusable) .SetMethod("setFocusable", &BaseWindow::SetFocusable)
.SetMethod("isFocusable", &BaseWindow::IsFocusable) .SetMethod("isFocusable", &BaseWindow::IsFocusable)
.SetMethod("setMenu", &BaseWindow::SetMenu) .SetMethod("setMenu", &BaseWindow::SetMenu)

View file

@ -331,8 +331,7 @@ describe('BrowserWindow module', () => {
afterEach(closeAllWindows); afterEach(closeAllWindows);
it('can set content protection', async () => { it('can set content protection', async () => {
const w = new BrowserWindow({ show: false }); const w = new BrowserWindow({ show: false });
// @ts-expect-error This is a private API expect(w.isContentProtected()).to.equal(false);
expect(w._isContentProtected()).to.equal(false);
const shown = once(w, 'show'); const shown = once(w, 'show');
@ -340,8 +339,7 @@ describe('BrowserWindow module', () => {
await shown; await shown;
w.setContentProtection(true); w.setContentProtection(true);
// @ts-expect-error This is a private API expect(w.isContentProtected()).to.equal(true);
expect(w._isContentProtected()).to.equal(true);
}); });
it('does not remove content protection after the window is hidden and shown', async () => { it('does not remove content protection after the window is hidden and shown', async () => {
@ -360,8 +358,7 @@ describe('BrowserWindow module', () => {
w.show(); w.show();
await shown; await shown;
// @ts-expect-error This is a private API expect(w.isContentProtected()).to.equal(true);
expect(w._isContentProtected()).to.equal(true);
}); });
}); });