Skip to content

Commit

Permalink
feat(webkit): disable pause on click (#2077)
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelfeldman committed May 1, 2020
1 parent bba1cff commit f8bea85
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
1 change: 0 additions & 1 deletion src/webkit/wkPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,6 @@ export class WKPage implements PageDelegate {
}

async setActivityPaused(paused: boolean): Promise<void> {
await this._session.send('Page.setActivityPaused', { paused });
}

async getContentQuads(handle: dom.ElementHandle): Promise<types.Quad[] | null> {
Expand Down
30 changes: 26 additions & 4 deletions test/click.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,7 @@ describe('Page.click', function() {
expect(await page.evaluate(() => window.clicked)).toBe(undefined);
expect(error.message).toContain('timeout exceeded');
});
it.fail(CHROMIUM || FFOX)('should pause animations', async({page}) => {
it.skip(true)('should pause animations', async({page}) => {
// This test requires pausing the page.
await page.setContent(`<style>
@keyframes spinner {
Expand All @@ -605,7 +605,7 @@ describe('Page.click', function() {
await page.click('#target', { __testHookBeforeHitTarget: () => new Promise(f => setTimeout(f, 1000)) });
expect(await page.evaluate(() => window.clicked)).toBe(true);
});
it.fail(CHROMIUM || FFOX)('should defer timers', async({page}) => {
it.skip(true)('should defer timers', async({page}) => {
// This test requires pausing the page.
await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`);
await page.click('button', { __testHookBeforeHitTarget: async () => {
Expand All @@ -616,7 +616,7 @@ describe('Page.click', function() {
}});
expect(await page.evaluate(() => window.clicked)).toBe(true);
});
it.fail(CHROMIUM || FFOX)('should defer rafs', async({page}) => {
it.skip(true)('should defer rafs', async({page}) => {
// This test requires pausing the page.
await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`);
await page.click('button', { __testHookBeforeHitTarget: async () => {
Expand All @@ -627,7 +627,7 @@ describe('Page.click', function() {
}});
expect(await page.evaluate(() => window.clicked)).toBe(true);
});
it.fail(CHROMIUM || FFOX)('should defer fetch', async({page, server}) => {
it.skip(true)('should defer fetch', async({page, server}) => {
// This test requires pausing the page.
await page.goto(server.EMPTY_PAGE);
await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`);
Expand All @@ -639,6 +639,28 @@ describe('Page.click', function() {
}});
expect(await page.evaluate(() => window.clicked)).toBe(true);
});
it('should dispatch microtasks in order', async({page, server}) => {
await page.setContent(`
<button id=button>Click me</button>
<script>
let mutationCount = 0;
const observer = new MutationObserver((mutationsList, observer) => {
for(let mutation of mutationsList)
++mutationCount;
});
observer.observe(document.body, { attributes: true, childList: true, subtree: true });
button.addEventListener('mousedown', () => {
mutationCount = 0;
document.body.appendChild(document.createElement('div'));
});
button.addEventListener('mouseup', () => {
window.result = mutationCount;
});
</script>
`);
await page.click('button');
expect(await page.evaluate(() => window.result)).toBe(1);
});
});

describe('Page.check', function() {
Expand Down

0 comments on commit f8bea85

Please sign in to comment.