feat(Frame): reject error for addScriptTag/addStyleTag (#1287)

fix #1221
This commit is contained in:
Xingan Wang
2017-11-06 22:04:40 -08:00
committed by Andrey Lushnikov
parent bdd5718630
commit 8e445734c6
2 changed files with 46 additions and 6 deletions

View File

@@ -326,8 +326,14 @@ class Frame {
* @return {!Promise<!ElementHandle>}
*/
async addScriptTag(options) {
if (typeof options.url === 'string')
return this._context.evaluateHandle(addScriptUrl, options.url);
if (typeof options.url === 'string') {
const url = options.url;
try {
return await this._context.evaluateHandle(addScriptUrl, url);
} catch (error) {
throw new Error(`Loading script from ${url} failed`);
}
}
if (typeof options.path === 'string') {
let contents = await readFileAsync(options.path, 'utf8');
@@ -349,7 +355,10 @@ class Frame {
const script = document.createElement('script');
script.src = url;
document.head.appendChild(script);
await new Promise(x => script.onload = x);
await new Promise((res, rej) => {
script.onload = res;
script.onerror = rej;
});
return script;
}
@@ -371,8 +380,14 @@ class Frame {
* @return {!Promise<!ElementHandle>}
*/
async addStyleTag(options) {
if (typeof options.url === 'string')
return await this._context.evaluateHandle(addStyleUrl, options.url);
if (typeof options.url === 'string') {
const url = options.url;
try {
return await this._context.evaluateHandle(addStyleUrl, url);
} catch (error) {
throw new Error(`Loading style from ${url} failed`);
}
}
if (typeof options.path === 'string') {
let contents = await readFileAsync(options.path, 'utf8');
@@ -395,7 +410,10 @@ class Frame {
link.rel = 'stylesheet';
link.href = url;
document.head.appendChild(link);
await new Promise(x => link.onload = x);
await new Promise((res, rej) => {
link.onload = res;
link.onerror = rej;
});
return link;
}