Safari 10.1 fails to upload a patch on perf try bots page
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Jul 2017 02:59:11 +0000 (02:59 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Jul 2017 02:59:11 +0000 (02:59 +0000)
https://bugs.webkit.org/show_bug.cgi?id=174214

Reviewed by Chris Dumez.

Added the workaround to make the analysis task page work on Safari 10.1

* public/v3/components/instant-file-uploader.js:
(InstantFileUploader.prototype._uploadFiles): Convert files to an array since for-of doesn't work otherwise on Safari 10.1.
* public/v3/models/uploaded-file.js:
(UploadedFile._computeSHA256Hash): Fallback to crypto.webkitSubtle since crypto.subtle isn't available on Safari 10.1 or 11.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219232 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/v3/components/instant-file-uploader.js
Websites/perf.webkit.org/public/v3/models/uploaded-file.js

index 667e6fa..d7f820a 100644 (file)
@@ -1,3 +1,17 @@
+2017-07-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Safari 10.1 fails to upload a patch on perf try bots page
+        https://bugs.webkit.org/show_bug.cgi?id=174214
+
+        Reviewed by Chris Dumez.
+
+        Added the workaround to make the analysis task page work on Safari 10.1
+
+        * public/v3/components/instant-file-uploader.js:
+        (InstantFileUploader.prototype._uploadFiles): Convert files to an array since for-of doesn't work otherwise on Safari 10.1.
+        * public/v3/models/uploaded-file.js:
+        (UploadedFile._computeSHA256Hash): Fallback to crypto.webkitSubtle since crypto.subtle isn't available on Safari 10.1 or 11.
+
 2017-07-03  Ryosuke Niwa  <rniwa@webkit.org>
 
         Fix a typo pointed out by Andreas Kling.
index 21e5a9c..6930515 100644 (file)
@@ -153,6 +153,7 @@ class InstantFileUploader extends ComponentBase {
     _uploadFiles(files)
     {
         const limit = UploadedFile.fileUploadSizeLimit;
+        files = Array.from(files);
         for (let file of files) {
             if (file.size > limit) {
                 alert(`The specified file "${file.name}" is too big (${this._fileSizeFormatter(file.size)}). It must be smaller than ${this._fileSizeFormatter(limit)}`);
index 88b11e8..665f4b5 100644 (file)
@@ -58,7 +58,7 @@ class UploadedFile extends DataModelObject {
 
     static _computeSHA256Hash(content)
     {
-        return crypto.subtle.digest('SHA-256', content).then((digest) => {
+        return (crypto.subtle || crypto.webkitSubtle).digest('SHA-256', content).then((digest) => {
             return Array.from(new Uint8Array(digest)).map((byte) => {
                 if (byte < 0x10)
                     return '0' + byte.toString(16);