Contents
- Focused plugins prevent Conkeror key bindings from working
- Loading many windows at once leaves only the first properly set up
- --help shows non-working options
- Duplicates when completing on both history and bookmarks
- Command-line remoting does not work on OS X
- Gdk-WARNING **: XID collision, trouble ahead
- html input boxes too small
- ui.caretWidth
- Ci.nsIContentPolicy.shouldProcess
- Web elements' colors affected by GTK theme make some text unreadable
- missing scrollbar in first buffer of window (xulrunner >= 2)
- nsIJSON.encode/decode not present in some versions of xulrunner
- Save Password dialog fails to appear
- Conkeror does neither work with XULRunner 14 nor with early (alpha/beta) versions of 15 and 16
The following XULRunner bugs affect Conkeror.
1. Focused plugins prevent Conkeror key bindings from working
When a plugin such a Flash or Java becomes focused, Gecko gives the plugin complete control over the keyboard. You have to use the mouse to unfocus the plugin. For lack of a time machine to go back and throttle the individual who wrote this into the Mozilla platform, there happens to exist the following work-around in Conkeror. Bind a key in your window manager to run the following command:
conkeror -f unfocus
This command remotes the command unfocus to the active conkeror window. A message will appear in the minibuffer on success.
Further information: https://wiki.mozilla.org/Plugins:AdvancedKeyHandling
2. Loading many windows at once leaves only the first properly set up
Conkeror does most of the initialisation for a window (including creating the minibuffer and initial buffer) in a Javascript function (window_initialize) called from an onload attribute in conkeror.xul. However the XULRunner cache screws up and only executes the onload attribute for the first window, so all the rest don't get properly set up.
There are a couple of workarounds, you can create the windows asynchronously using setTimeout with a 0 timeout, or append a unique query string to the chrome URL, the latter of which make_chrome_window now implements for you.
Update: this was apparently fixed recently. (xulrunner 1.9.3 maybe?) to-do: test it and determine when we can safely remove the workaround.
3. --help shows non-working options
-width and -height do not work in any xulrunner application. This is a bug inherited from Mozilla and known since 2000. See https://bugzilla.mozilla.org/show_bug.cgi?id=50201
4. Duplicates when completing on both history and bookmarks
When url_completion_use_bookmarks and url_completion_use_history are both true, there may be duplicates in the completions list. Due to a as-yet-unimplemented flag called QUERY_TYPE_UNIFIED in Mozilla. See bug 378798 and bug 425726.
5. Command-line remoting does not work on OS X
Status of this problem is uncertain. The description of bug 380163 appears to describe exactly what we're seeing, but this bug has been marked resolved by a patch that doesn't seem to have affected the problem as we see it at all.
What does work is opening URLs from the command line using the Mac OS X "open" command:
open -a Conkeror http://conkeror.org/
However, you can only open URLs, not use any of the other command line features of Conkeror, such as executing commands.
6. Gdk-WARNING **: XID collision, trouble ahead
http://bugs.adobe.com/jira/browse/FP-2253
https://bugzilla.mozilla.org/show_bug.cgi?id=497561
7. html input boxes too small
The specific cause of the problem is hard to guess at, but on some web pages, html input boxes appear smaller than they ought to be, not tall enough to fit the height of the text they contain. Xulrunner is incorrectly applying quirks mode to these elements, causing them to be rendered in an emulation of Internet Explorer's notorious flawed box model. It has been reported that this is related to issue 157. Xulrunner 1.9.0.x has this bug, and to a lesser extent, so does Xulrunner 1.9.1. Here is a work-around that you can put in your rc. This first work-around has the disadvantage that it will result in improper sizing of fields which are *supposed* to be in quirks mode.
register_user_stylesheet( "data:text/css," + escape( "@namespace url(\"http://www.w3.org/1999/xhtml\");\n" + "input:not([type=\"image\"]), textarea {\n"+ " -moz-box-sizing: content-box !important;\n"+ "}"));
Another approach is to explicitly list the websites that exhibit the problem in an @-moz-document form in the css. For details on the syntax of @-moz-document, see @-moz-document MDC. An example of the code for Conkeror is like this:
register_user_stylesheet( "data:text/css," + escape( "@namespace url(\"http://www.w3.org/1999/xhtml\");\n"+ "@-moz-document url-prefix(http://www.naxosmusiclibrary.com/)\n"+ "{\n"+ "input:not([type=\"image\"]), textarea {\n"+ " -moz-box-sizing: content-box !important;\n"+ "}}"));
8. ui.caretWidth
This pref would be so cool if we could use it dynamically, and have a different caret width in caret-mode vs. text-input-mode. However, the pref cannot be set dynamically. It is necessary to restart Mozilla for a new value to take effect.
9. Ci.nsIContentPolicy.shouldProcess
This is documented as a way by which an application or extension could modify content as it was downloaded. This would be tremendously useful to Conkeror because it could be used to cleanly solve focus-stealing problems, and several other things. However, it doesn't work as documented.
10. Web elements' colors affected by GTK theme make some text unreadable
Xulrunner draws some elements (mainly input elements) with partialy fixed coloring. The fixed colors are taken from GTK theme. Result of this missbehavior is that when you have GTK theme 'white on black' the background of the input element will always be black, but the Author CSS can modify its text color to black. That's black on black, unreadable text. Doesn't matter if Author is relying on the default 'black on white' theme or sets the background color explicitly, the xulrunner will ignore the background color. This was even issued in some Firefox releases on Ubuntu. You can fix this with custom coloring.
11. missing scrollbar in first buffer of window (xulrunner >= 2)
This problem affects versions of Conkeror older than September 6, 2011 (0.9.3 and earlier). If you are experiencing this problem, the simplest solution is to just update your Conkeror to 1.0pre or later. If you are using Conkeror 1.0pre or later and still experiencing this problem, see below.
11.1. before 1.0pre
The workaround for versions of Conkeror earlier than 1.0pre is to put the following snippet in your rc:
add_hook("create_buffer_late_hook", function (buffer) { buffer.top_frame.scrollbars.visible = true; });
11.2. 1.0pre
It has come to light that the workaround included in Conkeror 1.0pre has a side-effect that breaks opening of new buffers when browser_default_open_target is set to OPEN_NEW_WINDOW. If you use this setting, you will still need a workaround in your rc. Here is the code:
browser_default_open_target = OPEN_NEW_WINDOW; add_hook("window_initialize_hook", initialize_first_buffer_type); add_hook("window_initialize_late_hook", function (window) { window.buffers.get_buffer(0).top_frame.scrollbars.visible = true; });
12. nsIJSON.encode/decode not present in some versions of xulrunner
The encode and decode methods were removed from nsIJSON on March 28 2011 and then restored on July 22. Conkeror's session save/restore uses these methods so xulrunner nightly builds from between those dates will not work. Known affected XULRunner versions are 7.0a2.
13. Save Password dialog fails to appear
http://bugs.conkeror.org/issue358 https://bugzilla.mozilla.org/show_bug.cgi?id=626626
Issue was resolved in XULRunner 9.
14. Conkeror does neither work with XULRunner 14 nor with early (alpha/beta) versions of 15 and 16
Conkeror does neither work with XULRunner 14 (at least up to 14.0.1) nor with early versions of 15 and 16 due to https://bugzilla.mozilla.org/show_bug.cgi?id=756786 -- This has been fixed in XULRunner 15b3 and will be fixed in XULRunner 16a3, too (16a2 may be fixed already, too, not sure).
XULRunner up to version 13 and fixed XULRunner 15 and 16 versions work fine with Conkeror.