Closed Bug 688324 Opened 13 years ago Closed 13 years ago

XULRunner host application support broken in multiple ways

Categories

(Add-on SDK Graveyard :: Documentation, defect, P1)

x86
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: myk, Assigned: wbamberg)

Details

(Whiteboard: [cherry-pick-1.2])

Attachments

(1 file)

XULRunner host application support appears to be broken in multiple ways.

The first problem is a "harness-options.json file must exist" error message followed by a hang when I run `cfx testex` (the simplest set of core tests that exercise the functionality):

(addon-sdk)mykbook:addon-sdk myk$ cfx testex --app xulrunner
Testing annotator...
Using binary at '/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/Test App.app/Contents/MacOS/xulrunner'.

  WARNING: cannot determine Firefox version; please ensure you are running
  a Mozilla application equivalent to Firefox 4.0 or greater.
  
Using profile at '/var/folders/bN/bN4Z5w6UEdC60cFgLX32NU+++TI/-Tmp-/tmpZ3M53b.mozrunner'.
Error: harness-options.json file must exist. (file:///Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/app-extension/components/harness.js:515)
stack:
Error("harness-options.json file must exist.")@:0
getDefaults([object XPCWrappedNative_NoHelper])@file:///Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/app-extension/components/harness.js:515
buildHarnessService([object XPCWrappedNative_NoHelper])@file:///Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/app-extension/components/harness.js:103
NSGetModule([object XPCWrappedNative_NoHelper],[object XPCWrappedNative_NoHelper])@file:///Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/app-extension/components/harness.js:581
^CTraceback (most recent call last):
  File "/Users/myk/Dropbox/addon-sdk/bin/cfx", line 29, in <module>
    cuddlefish.run()
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 461, in run
    test_all_examples(env_root, defaults=options.__dict__)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 357, in test_all_examples
    env_root=env_root)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 754, in run
    enable_mobile=options.enable_mobile)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/runner.py", line 398, in run_app
    time.sleep(0.05)
KeyboardInterrupt


Presumably the binary python-lib/cuddlefish/Test App.app/Contents/MacOS/xulrunner, whatever it is, is way out of date.  But the patch from bug 687706, which removes that file, just exposes the next problem, a platform maxVersion of 2.0.* in python-lib/cuddlefish/app-extension/application.ini:

(addon-sdk)mykbook:addon-sdk myk$ cfx testex --app xulrunner
Testing annotator...
Using binary at '/Library/Frameworks/XUL.framework/xulrunner-bin'.
Error: Platform version '6.0' is not compatible with
minVersion >= 1.9.2.0
maxVersion <= 2.0.*
Traceback (most recent call last):
  File "/Users/myk/Dropbox/addon-sdk/bin/cfx", line 29, in <module>
    cuddlefish.run()
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 461, in run
    test_all_examples(env_root, defaults=options.__dict__)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 357, in test_all_examples
    env_root=env_root)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 748, in run
    enable_mobile=options.enable_mobile)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/runner.py", line 331, in run_app
    version_output = check_output(runner.command + ["-v"])
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/runner.py", line 76, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
cuddlefish.runner.CalledProcessError: Command '['/Library/Frameworks/XUL.framework/xulrunner-bin', '/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/app-extension/application.ini', '-profile', '/var/folders/bN/bN4Z5w6UEdC60cFgLX32NU+++TI/-Tmp-/tmpVcX0GX.mozrunner', '-v']' returned non-zero exit status 1


That's easy enough to fix, but the fix is insufficient, as the command then hangs without appearing to run any tests:

(addon-sdk)mykbook:addon-sdk myk$ cfx testex --app xulrunner
Testing annotator...
Using binary at '/Library/Frameworks/XUL.framework/xulrunner-bin'.

  WARNING: cannot determine Firefox version; please ensure you are running
  a Mozilla application equivalent to Firefox 4.0 or greater.
  
Using profile at '/var/folders/bN/bN4Z5w6UEdC60cFgLX32NU+++TI/-Tmp-/tmp0yaZfG.mozrunner'.
*** LOG addons.manager: Application has been upgraded
*** LOG addons.xpi: startup
*** LOG addons.xpi: Skipping unavailable install location app-system-share
*** LOG addons.xpi: checkForChanges
*** LOG addons.xpi: Opening database
*** LOG addons.xpi: Migrating data from extensions.rdf
*** LOG addons.xpi: Creating database schema
*** LOG addons.xpi: New add-on anonid0-annotator@jetpack installed in app-profile
*** Blocklist::_loadBlocklist: no XML File found
*** LOG addons.xpi: Loading bootstrap scope from /var/folders/bN/bN4Z5w6UEdC60cFgLX32NU+++TI/-Tmp-/tmp0yaZfG.mozrunner/extensions/anonid0-annotator@jetpack
*** LOG addons.xpi: Calling bootstrap method install on anonid0-annotator@jetpack version 1.3a0
*** LOG addons.xpi: No changes found
*** LOG addons.xpi: Add-ons list is missing, recreating
*** LOG addons.xpi: Writing add-ons list
*** LOG addons.xpi: shutdown
^CTraceback (most recent call last):
  File "/Users/myk/Dropbox/addon-sdk/bin/cfx", line 29, in <module>
    cuddlefish.run()
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 461, in run
    test_all_examples(env_root, defaults=options.__dict__)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 357, in test_all_examples
    env_root=env_root)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 748, in run
    enable_mobile=options.enable_mobile)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/runner.py", line 398, in run_app
    time.sleep(0.05)
KeyboardInterrupt


To rule out (or implicate) the recent changes to test packaging and mobile support, I backed those out, but the command seems to hang in the same place, although some of the line numbers and other meta-data in the traceback are slightly different:

^CTraceback (most recent call last):
  File "/Users/myk/Dropbox/addon-sdk/bin/cfx", line 29, in <module>
    cuddlefish.run()
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 456, in run
    test_all_examples(env_root, defaults=options.__dict__)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 352, in test_all_examples
    env_root=env_root)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/__init__.py", line 740, in run
    norun=options.no_run)
  File "/Users/myk/Dropbox/addon-sdk/python-lib/cuddlefish/runner.py", line 383, in run_app
    time.sleep(0.05)
KeyboardInterrupt


I also tried testing against Firefox in XULRunner mode, but that didn't make a difference.


We don't support XULRunner, and --app is an experimental flag, per <https://addons.mozilla.org/en-US/developers/docs/sdk/1.1/dev-guide/addon-development/cfx-tool.html>, so it isn't necessary for us to make it work.

But `cfx --help` calls `--app` a supported flag and doesn't mention that we don't support XULRunner.  So at the very least, we should fix that to note that "xulrunner" (and "fennec", and "thunderbird") are experimental/unsupported values of --app, and --app itself is experimental.

We might take the further step of removing the XULRunner functionality entirely, given that it doesn't work, and we don't have a maintainer for it.
P1, 1.2, for the minimal fix of marking the --app flag as explicitly experimental.
Assignee: nobody → wbamberg
Priority: -- → P1
Target Milestone: --- → 1.2
Comment on attachment 563796 [details] [diff] [review]
Mark --app as experimental in cfx --help

I would leave out "only 'firefox' is currently supported.", since the entire flag is unsupported, and we don't warrant that even --app=firefox will continue to work.
Attachment #563796 - Flags: review?(myk) → review+
Whiteboard: [cherry-pick-wanted]
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
https://github.com/mozilla/addon-sdk/commit/6fedc71c4459ce8da2c5d83d1b7db80bd5107e0b
Whiteboard: [cherry-pick-wanted] → [cherry-pick-1.2]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: