瀏覽代碼

Fix滚动截屏存储失败的问题;更新FeHelper到最新版

zxlie 6 年之前
父節點
當前提交
009035ee17

+ 2 - 2
apps/background/index.js

@@ -317,7 +317,7 @@ var BgPageInstance = (function () {
             if (!chrome.downloads) {
                 let a = document.createElement('a');
                 a.href = url;
-                a.download = crxName || crxId;
+                a.download = crxName || (crxId + '.crx');
                 (document.body || document.documentElement).appendChild(a);
                 a.click();
                 a.remove();
@@ -372,7 +372,7 @@ var BgPageInstance = (function () {
             // feHelper.manifest.name
             if (confirm('下载最新版【FeHelper】并分享给其他小伙伴儿,走你~~~')) {
                 let crxId = MSG_TYPE.STABLE_EXTENSION_ID;
-                let crxName = feHelper.manifest.name + '- latestVersion';
+                let crxName = feHelper.manifest.name + '- latestVersion.crx';
 
                 downloadCrxFileByCrxId(crxId, crxName, () => {
                     chrome.tabs.create({

+ 2 - 2
apps/manifest.json

@@ -1,6 +1,6 @@
 {
   "name": "WEB前端助手(FeHelper)",
-  "version": "2019.04.1715",
+  "version": "2019.04.1811",
   "manifest_version": 2,
   "default_locale": "zh_CN",
   "description": "FE助手:JSON格式化、JSON比对、二维码生成与解码、信息编解码、代码压缩&美化、页面取色、Markdown与HTML、网页截屏、编码设置、正则、时间转换、网页性能检测、Ajax调试、密码生成器、便签笔记、chrome插件下载",
@@ -130,7 +130,7 @@
       "all_frames": true
     }
   ],
-  "content_security_policy": "style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-eval'; object-src 'self' ;",
+  "content_security_policy": "style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-eval'; object-src 'self' ; media-src 'self' filesystem:",
   "update_url": "https://clients2.google.com/service/update2/crx",
   "homepage_url": "https://www.baidufe.com/fehelper"
 }

+ 29 - 7
apps/page-capture/capture-api.js

@@ -236,7 +236,7 @@ module.exports = function (MSG_TYPE) {
                 fileEntry.createWriter(function (fileWriter) {
                     fileWriter.onwriteend = onwriteend;
                     fileWriter.write(blob);
-                }, errback); // TODO - standardize error callbacks?
+                }, errback);
             }, errback);
         }, errback);
     }
@@ -345,17 +345,39 @@ module.exports = function (MSG_TYPE) {
 
             // 获取原始数据,用这个
             successForDataURI: function (screenshots) {
+
+                // 生成临时文件名
                 capturedData = {
                     pageInfo: tab,
                     filename: buildFilenameFromUrl(tab.url),
-                    imageURI: screenshots.map(function (screenshot) {
-                        return screenshot.canvas.toDataURL();
-                    })
+                    // 暂时不需要这个用这个字段来显示和存储图片,而是用本地缓存好的这张图片来展示和存储:fileSystemUrl
+                    // imageURI: screenshots.map(function (screenshot) {
+                    //     return screenshot.canvas.toDataURL();
+                    // })
                 };
 
-                chrome.tabs.create({
-                    url: 'page-capture/index.html'
-                });
+
+                let _callback = (fsUrl) => {
+                    capturedData.fileSystemUrl = fsUrl;
+                    chrome.tabs.create({
+                        url: 'page-capture/index.html'
+                    });
+                };
+
+                let doneback = (screenshots) => {
+                    let blobs = getBlobs(screenshots);
+                    let i = 0;
+                    let len = blobs.length;
+
+                    // 保存 & 打开
+                    (function doNext() {
+                        saveBlob(blobs[i], capturedData.filename, i, function (filename) {
+                            ++i >= len ? _callback(filename) : doNext();
+                        }, _callback);
+                    })();
+                };
+                doneback(screenshots);
+
             },
 
             fail: reason => {

+ 2 - 2
apps/page-capture/index.js

@@ -14,8 +14,8 @@ new Vue({
     mounted: function () {
         let bpInstance = chrome.extension.getBackgroundPage().BgPageInstance;
         let capturedData = bpInstance.getCapturedData();
-        if (capturedData && capturedData.imageURI && capturedData.imageURI.length) {
-            this.capturedImage = capturedData.imageURI[0];
+        if (capturedData && capturedData.fileSystemUrl) {
+            this.capturedImage = capturedData.fileSystemUrl;
             this.imageHTML = `<img class="img-result" src="${this.capturedImage}" />`;
             this.originPageInfo = JSON.stringify(capturedData.pageInfo, null, 4);
             this.defaultFilename = capturedData.filename;

二進制
apps/static/screenshot/crx/WEB前端助手(FeHelper)- v2019.04.1811.crx