Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test/fix interoperability with SeaMonkey #29

Open
WilsonKathleen opened this issue Feb 26, 2016 · 3 comments
Open

Test/fix interoperability with SeaMonkey #29

WilsonKathleen opened this issue Feb 26, 2016 · 3 comments

Comments

@WilsonKathleen
Copy link

From a user, posted in mozilla.dev.security.policy: I downloaded Certificate Manager 1.0.2, used the Extension Converter for SeaMonkey at http://addonconverter.fotokraina.com/ in an attempt to make it compatible with SeaMonkey, and installed in SeaMonkey 2.39 on Windows 7. I did not get the icon you describe.

@WilsonKathleen
Copy link
Author

Should work with SeaMonkey without use of the Extension Converter

@sidstamm
Copy link
Owner

If you add seamonkey to the package.json "engines" list, it runs and the addon settings window in seamonkey shows it installed.

Here's a diff:

diff --git a/addon/package.json b/addon/package.json
index 1eb6142..84ed047 100644
--- a/addon/package.json
+++ b/addon/package.json
@@ -6,6 +6,7 @@
   "main": "lib/index.js",
   "author": "Rose-Hulman Senior Project",
   "engines": {
+    "seamonkey": ">=2.40",
     "firefox": ">=38.0a1"
   },
   "license": "MIT",

But no button appears. I'm guessing it has something to do with instantiation of a component not available in seamonkey. Not sure which one. Here's some debug output.

stammsl@stammsl-thinkpad:~/git/FirefoxCertificateManager/addon$ jpm run -b ~/seamonkey/seamonkey
JPM [info] Starting jpm run on Certificate Manager
JPM [info] Creating a new profile
console.error: certmanager: 
Object
    - message = Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]
    - fileName = undefined
    - lineNumber = 22
    - stack = @undefined:22:NaN|@resource://gre/modules/commonjs/sdk/ui/button/view.js:22:28|@resource://gre/modules/commonjs/sdk/ui/button/action.js:20:14|@resource://certmanager/lib/index.js:9:15|run@resource://gre/modules/commonjs/sdk/addon/runner.js:145:19|startup/</<@resource://gre/modules/commonjs/sdk/addon/runner.js:86:7|Handler.prototype.process@resource://gre/modules/Promise-backend.js:934:23|this.PromiseWalker.walkerLoop@resource://gre/modules/Promise-backend.js:813:7|this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise-backend.js:747:1|checkForDefaultClient@resource://gre/components/nsSuiteGlue.js:703:9|SuiteGlue.prototype._onBrowserStartup@resource://gre/components/nsSuiteGlue.js:424:5|SuiteGlue.prototype.observe@resource://gre/components/nsSuiteGlue.js:168:9|sss_run@resource://gre/components/nsSessionStore.js:3638:1|
    - toString = function () /* use strict */ toString
console.error: certmanager: 
Object
    - message = Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]
    - fileName = undefined
    - lineNumber = 22
    - stack = @undefined:22:NaN|@resource://gre/modules/commonjs/sdk/ui/button/view.js:22:28|@resource://gre/modules/commonjs/sdk/ui/button/action.js:20:14|@resource://certmanager/lib/index.js:9:15|run@resource://gre/modules/commonjs/sdk/addon/runner.js:145:19|startup/</<@resource://gre/modules/commonjs/sdk/addon/runner.js:86:7|Handler.prototype.process@resource://gre/modules/Promise-backend.js:934:23|this.PromiseWalker.walkerLoop@resource://gre/modules/Promise-backend.js:813:7|this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise-backend.js:747:1|checkForDefaultClient@resource://gre/components/nsSuiteGlue.js:703:9|SuiteGlue.prototype._onBrowserStartup@resource://gre/components/nsSuiteGlue.js:424:5|SuiteGlue.prototype.observe@resource://gre/components/nsSuiteGlue.js:168:9|sss_run@resource://gre/components/nsSessionStore.js:3638:1|
    - toString = function () /* use strict */ toString
Document http://www.seamonkey-project.org/releases/seamonkey2.40/ loaded successfully

@jufdxdyd
Copy link
Collaborator

I was able to get the plugin to install by making a more traditional installer, using chrome and xul. In order to make our javascript compatible with SeaMonkey, you need to change all of the component acronyms to their full names because they do not exist in SeaMonkey(ie. Cc -> Component.Classes).

However, our Firefox plugin uses some jpm modules that have not been implemented in SeaMonkey, most notably PageWorkers. In order to make the plugin fully functional, you will need to track down how each of these is implemented in Firefox and then reverse engineer them for SeaMonkey.

@jufdxdyd jufdxdyd removed their assignment May 11, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants