1. Use Xulrunner v34.0.5.
2. Enable duckduckgo page mode in your conkerorrc.js - require("duckduckgo");
3. Do a search on duckduck go with the duckduckgo webjump
4. Press 'j' to navigate down in the search results
Nothing happens and the following error is logged:
Error: TypeError: window.nkda is not a function
I have investigate this some more and the problem can be found in the duckduckgo_call_command function.
The buffer.top_frame.wrappedJSObject does not expose the page defined functions on the window object.
This is true both outside and inside the sandbox.
This works fine in version 33.1.1 of the xulrunner package.
Don't know if this is a xulrunner bug or conkeror bug but something changed between the above mentioned
Note that this is not restricted to duckduckgo.com and it can easily be reproduced by creating your own
test case that tries to access paged defined global functions.
This can apparently be fixed by not assigning the window to the sandbox but instead add the function
objects directly to the sandbox. Seems as assigning a window to a sandbox somehow cripples the window object.
I attach a patch that solves the problem.
This assigns all nkfoo functions to the sandbox that can then be used by the script. I can't find
anything on the conkeror.org page about procedures external patches so I hope that this is alright.