feat(webkit): disable pause on click (#2077)

This commit is contained in:
Pavel Feldman 2020-05-01 12:59:18 -07:00 committed by GitHub
parent bba1cff0a7
commit f8bea85c88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 5 deletions

View File

@ -762,7 +762,6 @@ export class WKPage implements PageDelegate {
} }
async setActivityPaused(paused: boolean): Promise<void> { async setActivityPaused(paused: boolean): Promise<void> {
await this._session.send('Page.setActivityPaused', { paused });
} }
async getContentQuads(handle: dom.ElementHandle): Promise<types.Quad[] | null> { async getContentQuads(handle: dom.ElementHandle): Promise<types.Quad[] | null> {

View File

@ -584,7 +584,7 @@ describe('Page.click', function() {
expect(await page.evaluate(() => window.clicked)).toBe(undefined); expect(await page.evaluate(() => window.clicked)).toBe(undefined);
expect(error.message).toContain('timeout exceeded'); 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. // This test requires pausing the page.
await page.setContent(`<style> await page.setContent(`<style>
@keyframes spinner { @keyframes spinner {
@ -605,7 +605,7 @@ describe('Page.click', function() {
await page.click('#target', { __testHookBeforeHitTarget: () => new Promise(f => setTimeout(f, 1000)) }); await page.click('#target', { __testHookBeforeHitTarget: () => new Promise(f => setTimeout(f, 1000)) });
expect(await page.evaluate(() => window.clicked)).toBe(true); 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. // This test requires pausing the page.
await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`); await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`);
await page.click('button', { __testHookBeforeHitTarget: async () => { await page.click('button', { __testHookBeforeHitTarget: async () => {
@ -616,7 +616,7 @@ describe('Page.click', function() {
}}); }});
expect(await page.evaluate(() => window.clicked)).toBe(true); 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. // This test requires pausing the page.
await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`); await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`);
await page.click('button', { __testHookBeforeHitTarget: async () => { await page.click('button', { __testHookBeforeHitTarget: async () => {
@ -627,7 +627,7 @@ describe('Page.click', function() {
}}); }});
expect(await page.evaluate(() => window.clicked)).toBe(true); 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. // This test requires pausing the page.
await page.goto(server.EMPTY_PAGE); await page.goto(server.EMPTY_PAGE);
await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`); await page.setContent(`<button id=button onclick="window.clicked=true">Click me</button>`);
@ -639,6 +639,28 @@ describe('Page.click', function() {
}}); }});
expect(await page.evaluate(() => window.clicked)).toBe(true); 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() { describe('Page.check', function() {