content-handler.js: fix incorrect call to get_buffer_from_frame
authorJeremy Maitin-Shepard <jeremy@jeremyms.com>
Sat, 9 Feb 2013 23:11:09 +0000 (9 15:11 -0800)
committerJeremy Maitin-Shepard <jeremy@jeremyms.com>
Sat, 9 Feb 2013 23:28:40 +0000 (9 15:28 -0800)
As a result, the fallback on get_recent_conkeror_window() was always
being used, which resulted in non-working downloads in the case where
the user has set browser_default_open_target = OPEN_NEW_WINDOW and the
download link results in a new window being opened by Mozilla.

Additionally, some error messages were added for cases that should not
normally occur, so that other bugs in content-handler.js will be more
easily noticed in the future.

modules/content-handler.js

index 3f0aa8b..f1a938b 100644 (file)
@@ -35,8 +35,10 @@ function content_handler_context (launcher, context) {
                           Ci.nsIDOMWindow :
                           Ci.nsIDOMWindowInternal)
         this.window = get_window_from_frame(this.frame);
-        this.buffer = get_buffer_from_frame(this.frame);
+        this.buffer = get_buffer_from_frame(this.window, this.frame);
     } catch (e) {
+        dumpln("Error: Failed to find buffer corresponding to content handler context");
+        dump_error(e);
         this.window = get_recent_conkeror_window();
         if (this.window) {
             this.buffer = this.window.buffers.current;
@@ -223,6 +225,7 @@ download_helper.prototype = {
     show: function (launcher, context, reason) {
         var ctx = new content_handler_context(launcher, context);
         if (! ctx.window) {
+            dumpln("Warning: Aborting download because of lack of window");
             ctx.abort(); //XXX: impolite; need better solution.
             return;
         }