Bug 1273202, make sure to not keep objects alive too long because of some useless event dispatching, r=jwatt
This commit is contained in:
@@ -1007,7 +1007,7 @@ HTMLInputElement::HTMLInputElement(already_AddRefed<mozilla::dom::NodeInfo>& aNo
|
||||
HTMLInputElement::~HTMLInputElement()
|
||||
{
|
||||
if (mNumberControlSpinnerIsSpinning) {
|
||||
StopNumberControlSpinnerSpin();
|
||||
StopNumberControlSpinnerSpin(eDisallowDispatchingEvents);
|
||||
}
|
||||
DestroyImageLoadingContent();
|
||||
FreeData();
|
||||
@@ -3597,7 +3597,7 @@ HTMLInputElement::StartNumberControlSpinnerSpin()
|
||||
}
|
||||
|
||||
void
|
||||
HTMLInputElement::StopNumberControlSpinnerSpin()
|
||||
HTMLInputElement::StopNumberControlSpinnerSpin(SpinnerStopState aState)
|
||||
{
|
||||
if (mNumberControlSpinnerIsSpinning) {
|
||||
if (nsIPresShell::GetCapturingContent() == this) {
|
||||
@@ -3608,11 +3608,16 @@ HTMLInputElement::StopNumberControlSpinnerSpin()
|
||||
|
||||
mNumberControlSpinnerIsSpinning = false;
|
||||
|
||||
FireChangeEventIfNeeded();
|
||||
if (aState == eAllowDispatchingEvents) {
|
||||
FireChangeEventIfNeeded();
|
||||
}
|
||||
|
||||
nsNumberControlFrame* numberControlFrame =
|
||||
do_QueryFrame(GetPrimaryFrame());
|
||||
if (numberControlFrame) {
|
||||
MOZ_ASSERT(aState == eAllowDispatchingEvents,
|
||||
"Shouldn't have primary frame for the element when we're not "
|
||||
"allowed to dispatch events to it anymore.");
|
||||
numberControlFrame->SpinnerStateChanged();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user