ソースコードはきちんと記述できないのでインデントが壊れていますが、以下、動かないコード。batファイルまでは動いていますが、最後のjscriptはダメです。
manifest.json
{
"manifest_version": 2,
"name": "vr_launcher",
"version": "1.0",
"description": "Adds a browser action icon to the toolbar. Click the button to #VRCHBP YouTube VR Channel Player. See https://appletllc.wordpress.com/",
"homepage_url": "https://appletllc.wordpress.com/",
"icons": {
"48": "icons/button_theme7_10B_48.png",
"96": "icons/button_theme7_10B_96.png",
"128": "icons/button_theme7_10B_128.png"
},
“applications”: {
“gecko”: {
“id”: “vr_launcher@appletllc.wordpress.com”,
“strict_min_version”: “50.0”
}
},
“permissions”: [“nativeMessaging”,
“tabs”
],
“background”: {
“scripts”: [“background.js”]
},
“browser_action”: {
“default_icon”: “icons/button_theme7_10B_32.png”,
“default_title”: “vr_launcher”
},
“web_accessible_resources”: []
}
background.js
(function() {
/*
On startup, connect to the #VRCHB&P Player app.
*/
var port = browser.runtime.connectNative("applet_llc.vr_launcher");
/*
Listen for messages from the app.
*/
port.onMessage.addListener((response) => {
console.log(“Received: ” + response);
});
/*
On a click on the browser action, send the app a message.
*/
browser.browserAction.onClicked.addListener(() => {
console.log(“Clicked”);
var tabUrl = browser.tabs.url; //tab.url; //tabs[0].url;
port.postMessage(tabUrl);
});
})()
vr_launcher.json
{
"name": "applet_llc.vr_launcher",
"description": "vr_launcher",
"path": "vr_launcher.bat",
"type": "stdio",
"allowed_extensions": [ "vr_launcher@appletllc.wordpress.com" ]
}
レジストリ
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Mozilla\NativeMessagingHosts\applet_llc.vr_launcher]
@=”C:\\Users\\kazunori\\AppData\\Local\\applet_llc.vr_launcher\\vr_launcher.json”
vr_launcher.bat
@echo off
rem from http://doudemoexe.com/Batch/0005.jsp
setlocal
for /f “tokens=1,* delims=:” %%I in (‘findstr /n .*’) do (
cscript vr_launcher.js %%J
)
vr_launcher.js
// #VRCHBP luncher
var objStdIn = WScript.StdIn;
var objStdOut = WScript.StdOut;
var fs = new ActiveXObject(“Scripting.FileSystemObject”);
var objArgs = WScript.Arguments;
var myShell = WScript.CreateObject(“Shell.Application”);
myShell.ShellExecute(“VR_Channel_Player.exe”, objArgs(1));
WScript.Quit(0);