diff --git a/browser/devtools/markupview/markup-view.js b/browser/devtools/markupview/markup-view.js index 29b47fb15b6a..adaaacb9847a 100644 --- a/browser/devtools/markupview/markup-view.js +++ b/browser/devtools/markupview/markup-view.js @@ -2146,7 +2146,7 @@ MarkupElementContainer.prototype = Heritage.extend(MarkupContainer.prototype, { this.tooltipData.data = promise.resolve(res); }); }, () => { - this.tooltipData.data = promise.reject(); + this.tooltipData.data = promise.resolve({}); }); } }, @@ -2166,9 +2166,11 @@ MarkupElementContainer.prototype = Heritage.extend(MarkupContainer.prototype, { } return this.tooltipData.data.then(({data, size}) => { - tooltip.setImageContent(data, size); - }, () => { - tooltip.setBrokenImageContent(); + if (data && size) { + tooltip.setImageContent(data, size); + } else { + tooltip.setBrokenImageContent(); + } }); }, diff --git a/browser/devtools/markupview/test/browser.ini b/browser/devtools/markupview/test/browser.ini index 6c1ff3346dd2..e13446f7f45a 100644 --- a/browser/devtools/markupview/test/browser.ini +++ b/browser/devtools/markupview/test/browser.ini @@ -68,6 +68,7 @@ skip-if = e10s # Bug 1040751 - CodeMirror editor.destroy() isn't e10s compatible skip-if = e10s # Bug 1040751 - CodeMirror editor.destroy() isn't e10s compatible [browser_markupview_events_jquery_2.1.1.js] skip-if = e10s # Bug 1040751 - CodeMirror editor.destroy() isn't e10s compatible +[browser_markupview_load_01.js] [browser_markupview_html_edit_01.js] [browser_markupview_html_edit_02.js] [browser_markupview_html_edit_03.js] diff --git a/browser/devtools/markupview/test/browser_markupview_load_01.js b/browser/devtools/markupview/test/browser_markupview_load_01.js new file mode 100644 index 000000000000..f40ced9f587e --- /dev/null +++ b/browser/devtools/markupview/test/browser_markupview_load_01.js @@ -0,0 +1,70 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests that selecting an element with the 'Inspect Element' context +// menu during a page reload doesn't cause the markup view to become empty. +// See https://bugzilla.mozilla.org/show_bug.cgi?id=1036324 + +const server = createTestHTTPServer(); + +// Register a slow image handler so we can simulate a long time between +// a reload and the load event firing. +server.registerContentType("gif", "image/gif"); +server.registerPathHandler("/slow.gif", function (metadata, response) { + info ("Image has been requested"); + response.processAsync(); + setTimeout(() => { + info ("Image is responding"); + response.finish(); + }, 500); +}); + +// Test page load events. +const TEST_URL = "data:text/html," + + "" + + "
" + + "" + + "Slow script
" + + "" + + "" + + "