我正在将google-chrome扩展程序改编为firefox。
此扩展非常简单,只需重新加载当前浏览器窗口并将特定字符串放入其中(它用于激活Odoo
上的调试状态。)
但是,当我对mozilla测试网站进行测试时,它表示测试已经过去,扩展应该准备好了。
但是每次我在about:debugging
上尝试使用我的浏览器时,它会一遍又一遍地抛出同样的东西。
刚刚将浏览器更新为版本57.0
,同样的故事也在继续。
这是我的目录结构(我已将插件添加到zip文件中)
background.js
LICENSE
manifest.json
off.png
on.png
README.md
super_on.png
我的清单文件:
{
"name": "My Debug",
"version": "3.3",
"manifest_version": 2,
"description": "Toggle debug mode",
"short_name": "My Debug",
"offline_enabled": true,
"browser_action": {
"default_icon": "off_.png",
"default_title": "- Click for Debug \n- Double Click for Debug"
},
"applications": {
"id": "email@email.com"
},
"incognito": "spanning",
"background": {
"scripts": ["background.js"]
},
"permissions": ["activeTab", "webNavigation", "*://*/*", "tabs"],
"icons": {
"16": "off.png",
"128": "off.png"
}
}
它抛出了我:
There was an error during installation: Extension is invalid
我知道install.rdf
不再需要了。
清单文件可能有些错误?
答案 0 :(得分:1)
在Odoo中,默认情况下不需要chrome或firefox扩展来激活和设置调试模式。您可以使用Odoo框架执行类似以下代码的操作。这取自this Odoo module
使用设置值
创建一个类class DevelopmentToolsConfigSettings(models.TransientModel):
_name = 'development_tools.config.settings'
development_mode = fields.Boolean(
string='Development mode as default',
required=False,
readonly=False,
index=False,
default=True,
help='Set development mode by default'
)
@api.model
def get_default_values(self, values):
return dict(
development_mode=self.get_debug_mode(),
)
def get_debug_mode(self):
param = self._get_parameter('development_mode')
if param:
value = self._safe_eval(param.value, bool)
else:
value = self._defaults['development_mode']
return value
def _set_debug_mode(self):
param = self._get_parameter('development_mode', force=True)
param.value = unicode(self.development_mode)
覆盖web.Home
控制器并添加自动调试模式行为:
from openerp.http import route, request, Controller, redirect_with_hash
import openerp.addons.web.controllers.main as webmain
from openerp.tools.translate import _
from logging import getLogger
import werkzeug
_logger = getLogger(__name__)
class Home(webmain.Home):
@route()
def web_client(self, s_action=None, **kw):
result = None
if not request.debug and request.db and self._get_debug_mode():
_logger.info(self._debug_message)
result = self._build_debug_response()
return result or super(Home, self).web_client(s_action, **kw)
def _get_debug_mode(self):
config = request.env['development_tools.config.settings']
debug = config.get_debug_mode()
return debug == True
def _build_debug_response(self):
result = None
try:
query = request.params
query.update({'debug': u''})
url = '/web?' + werkzeug.url_encode(query)
result = redirect_with_hash(url)
except Exception as ex:
_logger.error(self._error_response.format(ex))
return result
_debug_message = _(u'Auto-redirect to enter in debug mode')
_error_response = _(
u'The debug response could not be built.\n'
u'System has said: {}'
)