Simplify waitFor code (#92)
This commit is contained in:
parent
5ca92ffb71
commit
bef9982687
@ -178,25 +178,28 @@ class FrameManager extends EventEmitter {
|
|||||||
* @return {!Promise<undefined>}
|
* @return {!Promise<undefined>}
|
||||||
*/
|
*/
|
||||||
async _waitForInFrame(selector, frame) {
|
async _waitForInFrame(selector, frame) {
|
||||||
let code = selector => {
|
|
||||||
let promise = new Promise(fulfill => {
|
function code(selector) {
|
||||||
|
if (document.querySelector(selector))
|
||||||
|
return Promise.resolve();
|
||||||
|
|
||||||
|
let callback;
|
||||||
|
const result = new Promise(fulfill => callback = fulfill);
|
||||||
|
|
||||||
|
const mo = new MutationObserver((mutations, observer) => {
|
||||||
if (document.querySelector(selector)) {
|
if (document.querySelector(selector)) {
|
||||||
fulfill();
|
observer.disconnect();
|
||||||
|
callback();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
new MutationObserver((mutations, observer) => {
|
|
||||||
if (document.querySelector(selector)) {
|
|
||||||
observer.disconnect();
|
|
||||||
fulfill();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}).observe(document.documentElement, {
|
|
||||||
childList: true,
|
|
||||||
subtree: true
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
return promise;
|
mo.observe(document.documentElement, {
|
||||||
};
|
childList: true,
|
||||||
|
subtree: true
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
let contextId = undefined;
|
let contextId = undefined;
|
||||||
if (!frame.isMainFrame()) {
|
if (!frame.isMainFrame()) {
|
||||||
contextId = this._frameIdToExecutionContextId.get(frame._id);
|
contextId = this._frameIdToExecutionContextId.get(frame._id);
|
||||||
|
Loading…
Reference in New Issue
Block a user