static fetchUploadedFileWithIdenticalHash()

in resources/perf.webkit.org/public/v3/models/uploaded-file.js [34:57]


    static fetchUploadedFileWithIdenticalHash(file)
    {
        if (file.size > UploadedFile.fileUploadSizeLimit)
            return Promise.reject('FileSizeLimitExceeded');
        return new Promise((resolve, reject) => {
            const reader = new FileReader();
            reader.onload = () => resolve(reader.result);
            reader.onerror = () => reject();
            reader.readAsArrayBuffer(file);
        }).then((content) => {
            return this._computeSHA256Hash(content);
        }).then((sha256) => {
            const map = this.namedStaticMap('sha256');
            if (map && sha256 in map)
                return map[sha256];
            return RemoteAPI.getJSON(`../api/uploaded-file?sha256=${sha256}`).then((rawData) => {
                if (rawData['status'] == 'NotFound' || !rawData['uploadedFile'])
                    return null;
                if (rawData['status'] != 'OK')
                    return Promise.reject(rawData['status']);
                return UploadedFile.ensureSingleton(rawData['uploadedFile'].id, rawData['uploadedFile']);
            });
        });
    }