зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1512297 - Do not need to clear image broken state in BindToTree call; r=smaug
ImageLoadingContent will take care of updating element to correct state, we don't need to do this. Especially for HTMLImageElement, because it may not reload the image after BindToTree ( e.g. the selected source isn't changed), clearing broken state may put element into incorrect state. The original code seems from https://bugzilla.mozilla.org/show_bug.cgi?id=491063#c32 for a performance reason, however I test the http://mozilla.pettay.fi/moztests/1x1image.html again on recent codebase, I don't see difference with/without applying this patch. --HG-- extra : rebase_source : 2de29cced4ad0a18a5a6908641305203cc88a5f4
This commit is contained in:
Родитель
3e767f4f71
Коммит
2f22be013f
|
@ -200,8 +200,6 @@ class nsImageLoadingContent : public nsIImageLoadingContent {
|
|||
*/
|
||||
void DestroyImageLoadingContent();
|
||||
|
||||
void ClearBrokenState() { mBroken = false; }
|
||||
|
||||
/**
|
||||
* Returns the CORS mode that will be used for all future image loads. The
|
||||
* default implementation returns CORS_NONE unconditionally.
|
||||
|
|
|
@ -525,11 +525,6 @@ nsresult HTMLImageElement::BindToTree(Document* aDocument, nsIContent* aParent,
|
|||
// initaiated by a user interaction.
|
||||
mUseUrgentStartForChannel = EventStateManager::IsHandlingUserInput();
|
||||
|
||||
// FIXME: Bug 660963 it would be nice if we could just have
|
||||
// ClearBrokenState update our state and do it fast...
|
||||
ClearBrokenState();
|
||||
RemoveStatesSilently(NS_EVENT_STATE_BROKEN);
|
||||
|
||||
// We still act synchronously for the non-responsive case (Bug
|
||||
// 1076583), but still need to delay if it is unsafe to run
|
||||
// script.
|
||||
|
|
|
@ -4339,10 +4339,6 @@ nsresult HTMLInputElement::BindToTree(Document* aDocument, nsIContent* aParent,
|
|||
// initaiated by a user interaction.
|
||||
mUseUrgentStartForChannel = EventStateManager::IsHandlingUserInput();
|
||||
|
||||
// FIXME: Bug 660963 it would be nice if we could just have
|
||||
// ClearBrokenState update our state and do it fast...
|
||||
ClearBrokenState();
|
||||
RemoveStatesSilently(NS_EVENT_STATE_BROKEN);
|
||||
nsContentUtils::AddScriptRunner(
|
||||
NewRunnableMethod("dom::HTMLInputElement::MaybeLoadImage", this,
|
||||
&HTMLInputElement::MaybeLoadImage));
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<div><img src="" alt="ALT"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head class="reftest-wait"></head>
|
||||
<body>
|
||||
<div><img src="" alt="ALT"></div>
|
||||
<script>
|
||||
var img = document.querySelector('img');
|
||||
img.remove();
|
||||
|
||||
var div = document.querySelector('div');
|
||||
div.appendChild(img);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -64,6 +64,8 @@ pref(permissions.default.image,2) HTTP == bug1196784-with-srcset.html bug1196784
|
|||
# Test video with rotation information can be rotated.
|
||||
== bug1228601-video-rotation-90.html bug1228601-video-rotated-ref.html
|
||||
|
||||
== bug1512297.html bug1512297-ref.html
|
||||
|
||||
# Test that dynamically setting body margin attributes updates style appropriately
|
||||
== body-topmargin-dynamic.html body-topmargin-ref.html
|
||||
|
||||
|
|
|
@ -142,10 +142,6 @@ nsresult SVGFEImageElement::BindToTree(Document* aDocument, nsIContent* aParent,
|
|||
|
||||
if (mStringAttributes[HREF].IsExplicitlySet() ||
|
||||
mStringAttributes[XLINK_HREF].IsExplicitlySet()) {
|
||||
// FIXME: Bug 660963 it would be nice if we could just have
|
||||
// ClearBrokenState update our state and do it fast...
|
||||
ClearBrokenState();
|
||||
RemoveStatesSilently(NS_EVENT_STATE_BROKEN);
|
||||
nsContentUtils::AddScriptRunner(
|
||||
NewRunnableMethod("dom::SVGFEImageElement::MaybeLoadSVGImage", this,
|
||||
&SVGFEImageElement::MaybeLoadSVGImage));
|
||||
|
|
|
@ -190,10 +190,6 @@ nsresult SVGImageElement::BindToTree(Document* aDocument, nsIContent* aParent,
|
|||
|
||||
if (mStringAttributes[HREF].IsExplicitlySet() ||
|
||||
mStringAttributes[XLINK_HREF].IsExplicitlySet()) {
|
||||
// FIXME: Bug 660963 it would be nice if we could just have
|
||||
// ClearBrokenState update our state and do it fast...
|
||||
ClearBrokenState();
|
||||
RemoveStatesSilently(NS_EVENT_STATE_BROKEN);
|
||||
nsContentUtils::AddScriptRunner(
|
||||
NewRunnableMethod("dom::SVGImageElement::MaybeLoadSVGImage", this,
|
||||
&SVGImageElement::MaybeLoadSVGImage));
|
||||
|
|
Загрузка…
Ссылка в новой задаче