Skip to content

Commit

Permalink
fix: IncrementCapturerCount doesn't increase the capturer count
Browse files Browse the repository at this point in the history
This regression was introduced by commit 22a70eb.
  • Loading branch information
zeeker999 committed Feb 18, 2022
1 parent b1463d2 commit 4765de4
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 2 deletions.
5 changes: 3 additions & 2 deletions shell/browser/api/electron_api_web_contents.cc
Expand Up @@ -3122,8 +3122,9 @@ void WebContents::IncrementCapturerCount(gin::Arguments* args) {
// get stayAwake arguments if they exist
args->GetNext(&stay_awake);

std::ignore =
web_contents()->IncrementCapturerCount(size, stay_hidden, stay_awake);
std::ignore = web_contents()
->IncrementCapturerCount(size, stay_hidden, stay_awake)
.Release();
}

void WebContents::DecrementCapturerCount(gin::Arguments* args) {
Expand Down
62 changes: 62 additions & 0 deletions spec-main/api-browser-view-spec.ts
Expand Up @@ -302,4 +302,66 @@ describe('BrowserView module', () => {
view.webContents.loadFile(path.join(fixtures, 'pages', 'window-open.html'));
});
});

describe('BrowserView.capturePage(rect)', () => {
it('returns a Promise with a Buffer', async () => {
view = new BrowserView({
webPreferences: {
backgroundThrottling: false
}
});
w.addBrowserView(view);
view.setBounds({
...w.getBounds(),
x: 0,
y: 0
});
const image = await view.webContents.capturePage({
x: 0,
y: 0,
width: 100,
height: 100
});

expect(image.isEmpty()).to.equal(true);
});

xit('resolves after the window is hidden and capturer count is non-zero', async () => {
view = new BrowserView({
webPreferences: {
backgroundThrottling: false
}
});
w.setBrowserView(view);
view.setBounds({
...w.getBounds(),
x: 0,
y: 0
});
await view.webContents.loadFile(path.join(fixtures, 'pages', 'a.html'));

view.webContents.incrementCapturerCount();
const image = await view.webContents.capturePage();
expect(image.isEmpty()).to.equal(false);
});

it('capturer count should be increased', () => {
view = new BrowserView({
webPreferences: {
backgroundThrottling: false
}
});
w.setBrowserView(view);
view.setBounds({
...w.getBounds(),
x: 0,
y: 0
});

view.webContents.incrementCapturerCount();
expect(view.webContents.isBeingCaptured()).to.be.true();
view.webContents.decrementCapturerCount();
expect(view.webContents.isBeingCaptured()).to.be.false();
});
});
});
24 changes: 24 additions & 0 deletions spec-main/api-browser-window-spec.ts
Expand Up @@ -1399,6 +1399,11 @@ describe('BrowserWindow module', () => {
});

expect(image.isEmpty()).to.equal(true);

w.webContents.loadFile(path.join(fixtures, 'pages', 'theme-color.html'));
await emittedOnce(w, 'ready-to-show');
w.webContents.incrementCapturerCount();
expect((await w.webContents.capturePage()).isEmpty()).to.equal(false);
});

it('resolves after the window is hidden', async () => {
Expand All @@ -1417,6 +1422,17 @@ describe('BrowserWindow module', () => {
expect(hiddenImage.isEmpty()).to.equal(isEmpty);
});

it('resolves after the window is hidden and capturer count is non-zero', async () => {
const w = new BrowserWindow({ show: false });
w.webContents.setBackgroundThrottling(false);
w.loadFile(path.join(fixtures, 'pages', 'a.html'));
await emittedOnce(w, 'ready-to-show');

w.webContents.incrementCapturerCount();
const image = await w.capturePage();
expect(image.isEmpty()).to.equal(false);
});

it('preserves transparency', async () => {
const w = new BrowserWindow({ show: false, transparent: true });
w.loadFile(path.join(fixtures, 'pages', 'theme-color.html'));
Expand All @@ -1430,6 +1446,14 @@ describe('BrowserWindow module', () => {
// Values can be 0,2,3,4, or 6. We want 6, which is RGB + Alpha
expect(imgBuffer[25]).to.equal(6);
});

it('capturer count should be increased', () => {
const w = new BrowserWindow({ show: false });
w.webContents.incrementCapturerCount();
expect(w.webContents.isBeingCaptured()).to.be.true();
w.webContents.decrementCapturerCount();
expect(w.webContents.isBeingCaptured()).to.be.false();
});
});

describe('BrowserWindow.setProgressBar(progress)', () => {
Expand Down

0 comments on commit 4765de4

Please sign in to comment.