相关疑难解决方法(0)

如何更改chrome打包的应用程序ID或者为什么我们需要manifest.json中的关键字段?

我正在使用一次性Chrome钱包付款为chrome商店开发打包应用程序.对于我的应用程序,我需要在运行时检查用户是否购买了应用程序,以决定它是演示功能还是完整功能.

根据chrome identity API文档:

要使应用程序ID保持不变,您需要将已安装的manifest.json中的密钥复制到源清单.

我有2个关于此程序的问题:

1)在什么条件下我的申请的ID可能会改变?我试图重新安装应用程序并进行更新,但应用程序ID保持不变..如果没有办法更改应用程序ID,为什么我需要此程序?

2)如何将带有manifest.json(包含"key"字段)的zip存档上传到chrome仪表板?问题是上传者向我抛出错误:

发生错误:无法处理您的商品.

清单中不允许使用关键字段.

google-chrome chromium google-chrome-extension google-chrome-devtools google-chrome-app

47
推荐指数
2
解决办法
3万
查看次数

Chrome.identity不可用/未定义

我正在编写一个chrome扩展,我正在尝试使用chrome.identity API.但我的Chrome无法识别身份.

在开发人员工具中的以下代码中,我收到一条错误消息"无法读取未定义的属性getAuthToken:

chrome.identity.getAuthToken({ 'interactive': false }, function(token) {
Run Code Online (Sandbox Code Playgroud)

我试着在控制台中输入.chrome.extension有效,但chrome.identity未定义.

我的manifest.json在权限中有"身份".我是最新的Chrome v38.是否还需要启用身份API的其他内容?

google-chrome

19
推荐指数
1
解决办法
4765
查看次数

使用Puppeteer检测并测试Chrome扩展程序

有没有办法使用Puppeteer测试Chrome扩展程序?例如,扩展程序可以检测Chrome是否以"测试"模式启动以提供不同的UI,检查内容脚本是否正常工作等?

automated-tests google-chrome-extension puppeteer

14
推荐指数
1
解决办法
5146
查看次数

RVM:"sha256sum和shasum发现"

我刚刚在新机器上安装了RVM,当切换到包含.rvmrc文件的目录时(我接受了)我得到了:

ERROR: Neither sha256sum nor shasum found in the PATH
Run Code Online (Sandbox Code Playgroud)

我在OS X 10.5.8上. - 可能在某处丢失了某些东西.有什么想法,以及如何解决这个问题?

rvm

8
推荐指数
3
解决办法
2万
查看次数

是否需要将 Chrome 扩展程序发布到 Chrome 网上应用店才能使用 Google 的 OAuth?

我正在尝试使用该chrome.identity.launchWebAuthFlow方法在我的 chrome 扩展中验证 Google 用户的登录名以获取他的电子邮件地址,我的代码是:

清单.json

"key": "Key_here",
"oauth2": {
    "client_id": "my_client_id.apps.googleusercontent.com",
    "scopes": [
        "https://www.googleapis.com/auth/userinfo.email"
    ]
}
Run Code Online (Sandbox Code Playgroud)

弹出窗口.js

function startOAuth() {
    chrome.runtime.sendMessage({"message": "start_oauth"});
}

$("#login").on("click", startOAuth);
Run Code Online (Sandbox Code Playgroud)

背景.js

var manifest = chrome.runtime.getManifest();
var clientId = encodeURIComponent(manifest.oauth2.client_id);
var scopes = encodeURIComponent(manifest.oauth2.scopes.join(' '));
var redirect_uri = chrome.identity.getRedirectURL();

chrome.runtime.onMessage.addListener(
        function (request, sender, sendResponse) {
            if (request.message === "start_oauth") {
                chrome.identity.launchWebAuthFlow({
                    "url": "https://accounts.google.com/o/oauth2/v2/auth?" +
                            $.param({
                                "scope": scopes,
                                "response_type": "token",
                                "client_id": clientId,
                                "redirect_uri": redirect_uri,
                                "prompt": "consent"
                            }),
                    "interactive": true
                }, function (response) {
                    console.log('response: …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension oauth-2.0 google-oauth

6
推荐指数
1
解决办法
1109
查看次数

Google Chrome 扩展程序 - 未找到指定的本机消息传递主机

我创建了一个使用本地消息传递到主机的扩展。

扩展的 manifest.json 是:

{
    "manifest_version": 2,
    "version": "1.0",
    "name": "Native Messaging Example",
    "description": "Send a message to a native application",
    "permissions": [
        "nativeMessaging"
    ],
    "browser_action": {
        "default_popup": "popup.html"
    }
}
Run Code Online (Sandbox Code Playgroud)

popup.html:

    <html>
        <head>
            <script src="./main.js"></script>
        </head>
        <body>
            <button id="buttonToPress">Press</button>
        </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

main.js 文件:

    var port = null;

    function connect() {

        port = chrome.runtime.connectNative('com.google.chrome.example.echo');

        port.onMessage.addListener(function(message) {

            alert(message);

            port.disconnect();
        });

        port.onDisconnect.addListener(function() {

            port = null;

            alert(chrome.runtime.lastError.message);
        });

        var message = {
            'filePath': 'C:\\Users\\username\\Desktop\\themes\\Wallpaper\\Architecture\\img13.jpg'
        };

        port.postMessage(message);
    }

    document.addEventListener('DOMContentLoaded', function() {
        document.getElementById('buttonToPress').addEventListener('click', connect); …
Run Code Online (Sandbox Code Playgroud)

javascript json google-chrome-extension chrome-native-messaging

5
推荐指数
2
解决办法
1万
查看次数

在发布之前获取已发布的 Chrome 扩展页面的链接

在发布任何内容之前,我可以有一个指向我的扩展页面(在网上商店中)的链接吗?我不想为了获得链接而重新上传。

google-chrome-extension chrome-web-store

5
推荐指数
1
解决办法
2515
查看次数

如何生成解压扩展程序的Chrome扩展程序ID?

我想与同事分享一个解压缩的扩展程序.它chrome.runtime.sendMessage(string extensionId, any message, object options, function responseCallback)在注入的脚本中使用该方法.为此,我需要提前知道扩展ID.

解包扩展程序的扩展ID在不同系统上是否会有所不同,或者我可以对我在扩展菜单中找到的扩展ID进行硬编码?

google-chrome-extension

5
推荐指数
1
解决办法
2053
查看次数

将RSACryptoServiceProvider RSA XML密钥转换为PKCS8

我在C#代码中使用RSACryptoServiceProvider,并且运行良好,可以导出RSA XML私钥和公钥,但是由于某种原因,我需要将此密钥转换为* .pem,格式为(PKCS8未加密)

我的私钥就像

<RSAKeyValue>
  <Modulus>zYs6baSaRDgLc5fG3/ozwGwS8OAvxd9quE2su+7//Lnz2WuIbe8jMc5kL7p2gsPZUEoB88SFHdGZSYiZJhERDc/1iQ4VsW2/ra8DBW+1m3K33EDvvI3rJ0NIyuRNuwoYql3hYdY0cdW6Gru9ZARCpptgBSJEiUSPjlzDEXz3RaU=</Modulus>
  <Exponent>AQAB</Exponent>
  <P>89aDVrzNZuDfkCCUR6LKlxHul64zb4EBUN4vr6VZ4LrjEqT6m7+a/8lIrgSK03R1hDdOzeg79eS0OLH5cbe6xQ==</P>
  <Q>18vAJpkwmhDSMjcPAE/4LufpZ6ukaOgkcPj9LngZSQlIt/D19LT/4NqZ2BrukX5bFCL6WPPLrJmmYlG/Jj+NYQ==</Q>
  <DP>whMgoi7PxWyCRDLKEmJNoQQSxQNPyRYCuBzAE6sl6CqXhUVuefx9H81TXb4byMXOqxdiT5zh7IrFrsJo6cv0iQ==</DP>
  <DQ>ylGZAZc2XfvPVo0QX3aadT+xMSVXq5OaNuD6XorzCerOZsZfkuHv1NyeyGHXskkJE0QH+0X3ewdDW4LQ+Ac1gQ==</DQ>
  <InverseQ>v4nkldQ2UKhJUZiyJbKnp2xopzfmreDQTTtGbaF4X0UP5pDGJndmUhj1SHITUAVqwUBa+hSl8TvzcO4IRpkOFg==</InverseQ>
  <D>JopbL9Dj7jO2DfwhGcE/7+4z1P+sZYVhbOJ/p5OGY1x4uUVdBQQIjN++0GY9r4JKnq/p0swAC9nPzMZ0tPsRP7gV5x7fmySlMP4tGpALDHbDgGfN098m2+JqK+/MIMYTAdLbnAcwk/1Lp8mB7Urm/OF/M0LOUzRQ1mwXVXNG/sE=</D>
</RSAKeyValue>
Run Code Online (Sandbox Code Playgroud)

我想将其转换为如下所示的(PKCS8未加密)

-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC0Bo/mh3bSiOiP
CUxtpa0c8IhDNJqaRDNWaKiqothEjgI7D/IU/uHacPotyedjzLFNr0cnhgguO4dQ
dNaSN+tAlgBqcexBbAl31+BEghNy+1PB189VNVSf8G+qOfF0SIKuBbb/+Q4TrvOD
XPrzulQpLcHMqRGqRE4PkT6574pKyiQGJvjeLBLEQtiobKkzoG3HOFkl9RsKae1f
Tuf8f25aVhKjoUyWp1mOfhHwdfT+76rmrz7F9X1s6M7pxigIfCiYPXHrWh02GTbj
EVLKTpVBg31JmrKErNJsv/j5P3wuSI12TCW4u1RXfahBHhi263oGCQ/2JO/Fm4+v
5wtX20x5AgMBAAECggEBAJjceZPlsp9SYSYTXzI7W6MXGpz2LdCP2IemlpFNdRXA
/2PnRkdNpbk19TisGC5FwMeV7XVB+fBH274Vd5zwnnFY7UF1OobSlbeNNoD1ck5P
2e7esM5JWnH0VtzUFpIGf/AEKj9v2uQbyenhKbWKoavVjpmZdcZ9+Up+qiR3oZWe
YiScMlYm5KL+pTD1IMZQ46DoxU17VhOVxbZoZOf+a5iAPtskjJyz12EOVldHASGz
VZkM54C+BrCTdJjOB5C7cth94D7J7nhgovBP0jz6A7WZtDpgBB6j1lFBwKSWw0U4
0LGZb/Mlb29txAoeR1YSHCe6RKuyyY3oas6fJ1kdRgECgYEA12r1nkK8fjNybMbp
No+TsWD9YDTLZrndHBMIR+GtUKWCXTpw7EwT0BCU4ATm6TiTje0ZI9kZW1tnbB4W
iCIyU8o/OeIBBbqKMLtk2iN82KFrNbIbA4IER0J441evYZTnh9NbkJks8iyATPdC
hypRiOi1V4n9CFDguGHj+IsKpLUCgYEA1fC65ASTYGhQ5iQ56G48iKV5XIBldKad
MFcaxzAA/Hp6GMywHqEiYvk/WmCakDmIK1g7Rf7LURvWTYp1nytRBzTRDvrf4ESU
WF4z5Mr6EcnqKEpqDO/tDCwUp+4BReXMrf99KXRAWYig9zjq8garYEmIznoIc02i
4Q/X1uu1RzUCgYEAxzQFxj/4hsuUeLrIVsgWz+Tc6eZoYapmqdt/wNkUqIslLoko
e5suhy2OPkrKLck/yfMDWH8eT7kKvpRkSac12v4f0asJPv7tY3snHAHNJZa/yXvW
Nzw4MJ1rpPAlIpvML3JoLiM3yQsV6haM0ulzVKO9biIQd2wzIs6DPgd15DECgYEA
lQ2vaAW4GEcVdgJvRfznt9xx/XyHMwqSIYfOZFCRn1ZFktmpKu3g40v8U59SkIFE
2c4THeUzCkN2v3dkE40+WuL1dJZdPAcLw7V+Oj0glRw0Q/X0hSbz5LMhgQ5VXLmK
LP//183it351h0jkh9MVu3QAGLr1AEBq5pr/KgH2vrECgYEAr6y3cCo/gdUi6v3Y
39B6LTcmqeKZbpqh3LzBl+I6Ke9t/TOqCZhwtuolMDkFLhZ9woGDeB1VBfV7yUW4
xyF3rE6uMSEZyD5ivku7VC2Gsz/2XuRGl8iToGXgGxzzg6HMQr6Hw36+0VFzzxSo
xn9/6PuHd1bNooOv1S3s0WVkTJw=
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

我在这名安全人员中并不专业,并且不确定是否可以将其转换为否?谁能帮忙代码示例?

c# security rsa rsacryptoserviceprovider pkcs#8

5
推荐指数
1
解决办法
2943
查看次数

如何使用 C# 生成用于打包 chrome 扩展的 .pem 安全文件

摘要:如何使用 C# 生成用于打包 google 扩展的 key.pem 文件?

据我所知,Google 扩展中使用的 pem 文件是使用以下代码生成的

openssl pkcs8 -topk8 -nocrypt -out key.pem
Run Code Online (Sandbox Code Playgroud)

它是pkcs8 密钥,我尝试使用 bouncycastle 从 RSA XML 文件生成它,如本文中所述,但最终生成的 .pem 文件不被 google chrome 接受,它的结构是正确的,但文件的长度几乎是一半chrome浏览器在打包过程中生成的。

谷歌浏览器所需的最终密钥如下所示

-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC0Bo/mh3bSiOiP
CUxtpa0c8IhDNJqaRDNWaKiqothEjgI7D/IU/uHacPotyedjzLFNr0cnhgguO4dQ
dNaSN+tAlgBqcexBbAl31+BEghNy+1PB189VNVSf8G+qOfF0SIKuBbb/+Q4TrvOD
XPrzulQpLcHMqRGqRE4PkT6574pKyiQGJvjeLBLEQtiobKkzoG3HOFkl9RsKae1f
Tuf8f25aVhKjoUyWp1mOfhHwdfT+76rmrz7F9X1s6M7pxigIfCiYPXHrWh02GTbj
EVLKTpVBg31JmrKErNJsv/j5P3wuSI12TCW4u1RXfahBHhi263oGCQ/2JO/Fm4+v
5wtX20x5AgMBAAECggEBAJjceZPlsp9SYSYTXzI7W6MXGpz2LdCP2IemlpFNdRXA
/2PnRkdNpbk19TisGC5FwMeV7XVB+fBH274Vd5zwnnFY7UF1OobSlbeNNoD1ck5P
2e7esM5JWnH0VtzUFpIGf/AEKj9v2uQbyenhKbWKoavVjpmZdcZ9+Up+qiR3oZWe
YiScMlYm5KL+pTD1IMZQ46DoxU17VhOVxbZoZOf+a5iAPtskjJyz12EOVldHASGz
VZkM54C+BrCTdJjOB5C7cth94D7J7nhgovBP0jz6A7WZtDpgBB6j1lFBwKSWw0U4
0LGZb/Mlb29txAoeR1YSHCe6RKuyyY3oas6fJ1kdRgECgYEA12r1nkK8fjNybMbp
No+TsWD9YDTLZrndHBMIR+GtUKWCXTpw7EwT0BCU4ATm6TiTje0ZI9kZW1tnbB4W
iCIyU8o/OeIBBbqKMLtk2iN82KFrNbIbA4IER0J441evYZTnh9NbkJks8iyATPdC
hypRiOi1V4n9CFDguGHj+IsKpLUCgYEA1fC65ASTYGhQ5iQ56G48iKV5XIBldKad
MFcaxzAA/Hp6GMywHqEiYvk/WmCakDmIK1g7Rf7LURvWTYp1nytRBzTRDvrf4ESU
WF4z5Mr6EcnqKEpqDO/tDCwUp+4BReXMrf99KXRAWYig9zjq8garYEmIznoIc02i
4Q/X1uu1RzUCgYEAxzQFxj/4hsuUeLrIVsgWz+Tc6eZoYapmqdt/wNkUqIslLoko
e5suhy2OPkrKLck/yfMDWH8eT7kKvpRkSac12v4f0asJPv7tY3snHAHNJZa/yXvW
Nzw4MJ1rpPAlIpvML3JoLiM3yQsV6haM0ulzVKO9biIQd2wzIs6DPgd15DECgYEA
lQ2vaAW4GEcVdgJvRfznt9xx/XyHMwqSIYfOZFCRn1ZFktmpKu3g40v8U59SkIFE
2c4THeUzCkN2v3dkE40+WuL1dJZdPAcLw7V+Oj0glRw0Q/X0hSbz5LMhgQ5VXLmK
LP//183it351h0jkh9MVu3QAGLr1AEBq5pr/KgH2vrECgYEAr6y3cCo/gdUi6v3Y
39B6LTcmqeKZbpqh3LzBl+I6Ke9t/TOqCZhwtuolMDkFLhZ9woGDeB1VBfV7yUW4
xyF3rE6uMSEZyD5ivku7VC2Gsz/2XuRGl8iToGXgGxzzg6HMQr6Hw36+0VFzzxSo
xn9/6PuHd1bNooOv1S3s0WVkTJw=
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

c# google-chrome pkcs#8 google-chrome-extension

5
推荐指数
0
解决办法
1162
查看次数

在开发过程中保持chrome扩展ID相同

我试图在不同的机器上测试我的chrome扩展,并且我看到扩展ID每次都会更改,因为我将它作为解压扩展加载.

但是,我真的需要保持相同的扩展ID.我的扩展程序通过OAuth 2.0与外部非Google提供商进行.当我向外部提供商注册我的扩展时,我提供了重定向URI, chrome-extension://<extension-id>/callback.html如果我再次加载解压缩的扩展名,则ID会更改,我的应用程序将不再适用,因为重定向URI会更改.不断更改重定向URI几乎是不可行的.我如何保持相同的ID?

google-chrome oauth google-chrome-extension

5
推荐指数
1
解决办法
3077
查看次数

将消息发送到后台脚本

我正在尝试实施一个屏幕共享Web应用程序,该应用程序将使用desktopCapture Chrome API在网页上显示用户屏幕.我创建了chrome扩展,并在后台运行了一个事件监听器.我的问题是当我尝试从网页发送消息到扩展名(获取userMedia id)时,我没有在扩展端收到任何内容.我也试图将getUserMedia id返回到网页以显示feed.我已经附上了我拥有的东西.谢谢

表现

{
"name": "Class Mate Manifest",
"description": "Extension that allows for user to share their screen",
"version": "1",
"manifest_version": 2,

"background": {
  "scripts": ["background.js"]
},
"permissions": [
"desktopCapture",
"tabs"
],
"browser_action": {
  "default_icon": "icon.png",
"default_popup": "index.html"
    }
 }
Run Code Online (Sandbox Code Playgroud)

background.js

chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(request.greeting);
if(request.greeting == yes){
 chrome.desktopCapture.chooseDesktopMedia(["screen", "window"], sendResponse);
 return true;
 }
 });
Run Code Online (Sandbox Code Playgroud)

webpage.js

function gotStream(stream) {
console.log("Received local stream");
var video = document.querySelector("video");
video.src = URL.createObjectURL(stream);
localstream = stream;
// stream.onended = …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome video-capture google-chrome-extension web

3
推荐指数
1
解决办法
3876
查看次数