Bug 1366218 - Use fast path to check empty value. r?smaug draft
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Tue, 23 May 2017 12:27:23 +0900
changeset 582798 fd136c3a03ddd52eb1b3029edddc7bdf1404b62f
parent 582730 5bc1c758ab57c1885dceab4e7837e58af27b998c
child 629854 95f3665045660d0f8419865ffd1cde65a5c20cef
push id60175
push userbmo:m_kato@ga2.so-net.ne.jp
push dateTue, 23 May 2017 03:35:40 +0000
reviewerssmaug
bugs1366218
milestone55.0a1
Bug 1366218 - Use fast path to check empty value. r?smaug HTMLInputElement::IsValueEmpty uses DocumentEncoder when input element has focus. DocumentEncoder is slow, so we should use fast path (nsTextEditorState::HasNonEmptyValue) to check whether value is empty. MozReview-Commit-ID: 1JxAeZ6z5A4
dom/html/HTMLInputElement.cpp
--- a/dom/html/HTMLInputElement.cpp
+++ b/dom/html/HTMLInputElement.cpp
@@ -1783,16 +1783,20 @@ HTMLInputElement::GetNonFileValueInterna
       }
       return;
   }
 }
 
 bool
 HTMLInputElement::IsValueEmpty() const
 {
+  if (GetValueMode() == VALUE_MODE_VALUE && IsSingleLineTextControl(false)) {
+    return !mInputData.mState->HasNonEmptyValue();
+  }
+
   nsAutoString value;
   GetNonFileValueInternal(value);
 
   return value.IsEmpty();
 }
 
 void
 HTMLInputElement::ClearFiles(bool aSetValueChanged)