Skip to content

Commit

Permalink
fix: page.goto should support pages with self requests (#1391) (#1781)
Browse files Browse the repository at this point in the history
This patch fixes `page.goto` for websites that re-request document URL with javascript.

Fixes #1391.
  • Loading branch information
yujiosaka authored and aslushnikov committed Jan 12, 2018
1 parent aed7019 commit c866c17
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/Page.js
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,10 @@ class Page extends EventEmitter {

const requests = new Map();
const eventListeners = [
helper.addEventListener(this._networkManager, NetworkManager.Events.Request, request => requests.set(request.url(), request))
helper.addEventListener(this._networkManager, NetworkManager.Events.Request, request => {
if (!requests.get(request.url()))
requests.set(request.url(), request);
})
];

const mainFrame = this._frameManager.mainFrame();
Expand Down
5 changes: 5 additions & 0 deletions test/assets/self-request.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<script>
var req = new XMLHttpRequest();
req.open('GET', '/self-request.html');
req.send(null);
</script>
5 changes: 5 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1193,6 +1193,11 @@ describe('Page', function() {
expect(requests.length).toBe(1);
expect(requests[0].url()).toBe(server.EMPTY_PAGE);
});
it('should work with self requesting page', async({page, server}) => {
const response = await page.goto(server.PREFIX + '/self-request.html');
expect(response.status()).toBe(200);
expect(response.url()).toContain('self-request.html');
});
});

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

0 comments on commit c866c17

Please sign in to comment.