1919const Gatherer = require ( './gatherer' ) ;
2020const manifestParser = require ( '../../lib/manifest-parser' ) ;
2121
22- /* global document, XMLHttpRequest, __returnResults */
23-
24- /* istanbul ignore next */
25- function getManifestContent ( ) {
26- function post ( response ) {
27- // __returnResults is magically inserted by driver.evaluateAsync
28- __returnResults ( response ) ;
29- }
30-
31- const manifestNode = document . querySelector ( 'link[rel=manifest]' ) ;
32- if ( ! manifestNode ) {
33- return post ( { error : 'No <link rel="manifest"> found in DOM.' } ) ;
34- }
35-
36- const manifestURL = manifestNode . href ;
37- if ( ! manifestURL ) {
38- return post ( { error : 'No href found on <link rel="manifest">.' } ) ;
39- }
40-
41- const req = new XMLHttpRequest ( ) ;
42- req . open ( 'GET' , manifestURL ) ;
43- req . onload = function ( ) {
44- if ( req . status !== 200 ) {
45- return post ( {
46- error : `Unable to fetch manifest at \
47- ${ manifestURL } : ${ req . status } - ${ req . statusText } `
48- } ) ;
49- }
50-
51- post ( { manifestContent : req . response } ) ;
52- } ;
53- req . send ( ) ;
54- }
55-
5622class Manifest extends Gatherer {
5723
5824 static _errorManifest ( errorString ) {
@@ -70,23 +36,18 @@ class Manifest extends Gatherer {
7036 * potentially lead to a different asset. Using the original manifest
7137 * resource is tracked in issue #83
7238 */
73- return driver . evaluateAsync ( `(${ getManifestContent . toString ( ) } ())` )
74-
75- . then ( returnedValue => {
76- if ( ! returnedValue ) {
39+ return driver . sendCommand ( 'Page.getAppManifest' )
40+ . then ( response => {
41+ if ( response . errors . length ) {
42+ this . artifact = Manifest . _errorManifest ( response . errors . join ( ', ' ) ) ;
43+ return ;
44+ }
45+
46+ this . artifact = manifestParser ( response . data ) ;
47+ } , _ => {
7748 this . artifact = Manifest . _errorManifest ( 'Unable to retrieve manifest' ) ;
7849 return ;
79- }
80-
81- if ( returnedValue . error ) {
82- this . artifact = Manifest . _errorManifest ( returnedValue . error ) ;
83- } else {
84- this . artifact = manifestParser ( returnedValue . manifestContent ) ;
85- }
86- } , _ => {
87- this . artifact = Manifest . _errorManifest ( 'Unable to retrieve manifest' ) ;
88- return ;
89- } ) ;
50+ } ) ;
9051 }
9152}
9253
0 commit comments