我正在尝试简单地修改extension example以运行firefox,但出现消息提示:
Firefox is already running,but is no responding. To open a new new window, you must firest close the existing Firefox process, or restart your system.
#!/usr/bin/env python3
import sys
import json
import struct
import subprocess
try:
# Python 3.x version
# Read a message from stdin and decode it.
def getMessage():
rawLength = sys.stdin.buffer.read(4)
if len(rawLength) == 0:
sys.exit(0)
messageLength = struct.unpack('@I', rawLength)[0]
message = sys.stdin.buffer.read(messageLength).decode('utf-8')
return json.loads(message)
# Encode a message for transmission,
# given its content.
def encodeMessage(messageContent):
encodedContent = json.dumps(messageContent).encode('utf-8')
encodedLength = struct.pack('@I', len(encodedContent))
return {'length': encodedLength, 'content': encodedContent}
# Send an encoded message to stdout
def sendMessage(encodedMessage):
sys.stdout.buffer.write(encodedMessage['length'])
sys.stdout.buffer.write(encodedMessage['content'])
sys.stdout.buffer.flush()
while True:
receivedMessage = getMessage()
if receivedMessage == "ping":
run_result=subprocess.run('firefox -P firefox_word ',shell=True,stdout=subprocess.PIPE)
sendMessage(encodeMessage("pong3"))
except AttributeError:
pass
我的目的是通过扩展程序或扩展程序的本机应用程序打开本地html文件。
答案 0 :(得分:0)
前一段时间,当我尝试WebExtensions示例时,我遇到了类似的问题。我认为问题出在您的Firefox个人资料上。对我有用的解决方案是创建一个新的配置文件,然后(大约一天后)重新打开以前的配置文件。从那以后一直很好。我不知道有关该问题的更多详细信息。
Mozilla页面"Firefox is already running but is not responding" error message - How to fix it描述了该解决方案以及其他解决方案(我曾尝试过,但没有成功)。
您可以按照以下说明(see here for complete details)启动Firefox Profile Manager:
答案 1 :(得分:0)
对我来说,我需要在相同的配置文件中工作,现在我的解决方案已做成一个shell脚本作为守护程序来读取fifo,而我的扩展程序的本机应用程序则在需要运行firefox时编写了fifo。 请注意,您需要在扩展程序的本机应用程序之外运行该守护程序。