Merge pull request #1794 from brendandahl/fix-fallback

Fix fallback after new download.
This commit is contained in:
Yury Delendik 2012-06-04 18:23:38 -07:00
commit 3a240263b0
2 changed files with 23 additions and 4 deletions

View File

@ -216,7 +216,7 @@ ChromeActions.prototype = {
searchEnabled: function() {
return getBoolPref(PREF_PREFIX + '.searchEnabled', false);
},
fallback: function(url) {
fallback: function(url, sendResponse) {
var self = this;
var domWindow = this.domWindow;
var strings = getLocalizedStrings('chrome.properties');
@ -225,17 +225,32 @@ ChromeActions.prototype = {
var win = Services.wm.getMostRecentWindow('navigator:browser');
var browser = win.gBrowser.getBrowserForDocument(domWindow.top.document);
var notificationBox = win.gBrowser.getNotificationBox(browser);
// Flag so we don't call the response callback twice, since if the user
// clicks open with different viewer both the button callback and
// eventCallback will be called.
var sentResponse = false;
var buttons = [{
label: getLocalizedString(strings, 'open_with_different_viewer'),
accessKey: getLocalizedString(strings, 'open_with_different_viewer',
'accessKey'),
callback: function() {
self.download(url);
sentResponse = true;
sendResponse(true);
}
}];
notificationBox.appendNotification(message, 'pdfjs-fallback', null,
notificationBox.PRIORITY_WARNING_LOW,
buttons);
buttons,
function eventsCallback(eventType) {
// Currently there is only one event "removed" but if there are any other
// added in the future we still only care about removed at the moment.
if (eventType !== 'removed')
return;
// Don't send a response again if we already responded when the button was
// clicked.
if (!sentResponse)
sendResponse(false);
});
}
};

View File

@ -468,7 +468,11 @@ var PDFView = {
return;
this.fellback = true;
var url = this.url.split('#')[0];
FirefoxCom.request('fallback', url);
FirefoxCom.request('fallback', url, function response(download) {
if (!download)
return;
PDFView.download();
});
},
navigateTo: function pdfViewNavigateTo(dest) {