Commit b500f269 authored by Natalia Csoregi's avatar Natalia Csoregi
Browse files

Backed out changeset 2f394b22e31d (bug 1108425) for causing failures on...

Backed out changeset 2f394b22e31d (bug 1108425) for causing failures on bidi/726420-1.html. CLOSED TREE
parent a872c84c
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -1177,15 +1177,12 @@ void SetDirectionalityFromValue(Element* aElement, const nsAString& value,
    dir = eDir_LTR;
  }

  if (aElement->GetDirectionality() != dir) {
  aElement->SetDirectionality(dir, aNotify);
}
}

void OnSetDirAttr(Element* aElement, const nsAttrValue* aNewValue,
                  bool hadValidDir, bool hadDirAuto, bool aNotify) {
  if (aElement->IsHTMLElement(nsGkAtoms::input) ||
      aElement->IsHTMLElement(nsGkAtoms::textarea)) {
  if (aElement->IsHTMLElement(nsGkAtoms::input)) {
    return;
  }

+1 −23
Original line number Diff line number Diff line
@@ -667,16 +667,6 @@ nsresult HTMLTextAreaElement::SetValueFromSetRangeText(
                                   ValueSetterOption::SetValueChanged});
}

void HTMLTextAreaElement::SetDirectionFromValue(bool aNotify,
                                                const nsAString* aKnownValue) {
  nsAutoString value;
  if (!aKnownValue) {
    GetValue(value);
    aKnownValue = &value;
  }
  SetDirectionalityFromValue(this, *aKnownValue, aNotify);
}

nsresult HTMLTextAreaElement::Reset() {
  nsAutoString resetVal;
  GetDefaultValue(resetVal, IgnoreErrors());
@@ -807,11 +797,6 @@ nsresult HTMLTextAreaElement::BindToTree(BindContext& aContext,
      nsGenericHTMLFormControlElementWithState::BindToTree(aContext, aParent);
  NS_ENSURE_SUCCESS(rv, rv);

  // Set direction based on value if dir=auto
  if (HasDirAuto()) {
    SetDirectionFromValue(false);
  }

  // If there is a disabled fieldset in the parent chain, the element is now
  // barred from constraint validation and can't suffer from value missing.
  UpdateValueMissingValidityState();
@@ -938,9 +923,6 @@ void HTMLTextAreaElement::AfterSetAttr(int32_t aNameSpaceID, nsAtom* aName,
      if (nsTextControlFrame* f = do_QueryFrame(GetPrimaryFrame())) {
        f->PlaceholderChanged(aOldValue, aValue);
      }
    } else if (aName == nsGkAtoms::dir && aValue &&
               aValue->Equals(nsGkAtoms::_auto, eIgnoreCase)) {
      SetDirectionFromValue(aNotify);
    }
  }

@@ -1133,7 +1115,7 @@ void HTMLTextAreaElement::InitializeKeyboardEventListeners() {

void HTMLTextAreaElement::OnValueChanged(ValueChangeKind aKind,
                                         bool aNewValueEmpty,
                                         const nsAString* aKnownNewValue) {
                                         const nsAString*) {
  if (aKind != ValueChangeKind::Internal) {
    mLastValueChangeWasInteractive = aKind == ValueChangeKind::UserInteraction;
  }
@@ -1151,10 +1133,6 @@ void HTMLTextAreaElement::OnValueChanged(ValueChangeKind aKind,
  UpdateTooShortValidityState();
  UpdateValueMissingValidityState();

  if (HasDirAuto()) {
    SetDirectionFromValue(true, aKnownNewValue);
  }

  if (validBefore != IsValid() ||
      (emptyBefore != IsValueEmpty() && HasAttr(nsGkAtoms::placeholder))) {
    UpdateState(true);
+0 −3
Original line number Diff line number Diff line
@@ -347,9 +347,6 @@ class HTMLTextAreaElement final : public TextControlElement,
                    const nsAttrValue* aValue, const nsAttrValue* aOldValue,
                    nsIPrincipal* aSubjectPrincipal, bool aNotify) override;

  void SetDirectionFromValue(bool aNotify,
                             const nsAString* aKnownValue = nullptr);

  /**
   * Return if an element should have a specific validity UI
   * (with :-moz-ui-invalid and :-moz-ui-valid pseudo-classes).
+58 −0
Original line number Diff line number Diff line
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>HTML Test: textarea with dir=auto, all N+EN</title>
  <link rel="author" title="Aharon Lanin" href="mailto:aharon@google.com">
  <link rel="author" title="HTML5 bidi test WG" href="mailto:html5bidi@googlegroups.com">
  <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#the-dir-attribute">
  <link rel="help" href="http://dev.w3.org/csswg/css3-writing-modes/#unicode-bidi0">
   <meta name="assert" content="
   When dir='auto', the direction is set according to the first strong character
   of the text.
   For textarea and pre elements, the heuristic is applied on a per-paragraph level.
   If there is no strong character, as in this test, the direction defaults to LTR.">
    <style>
      body { text-align:left }
      textarea {
        font-size:18px;
        text-align:left;
        resize: none;
      }
      .ref {
        border: medium solid gray;
        width: 400px;
        margin: 20px;
      }
      .comments {
        display: none;
      }
    </style>
  </head>
  <body>
    <div class="comments">
      We use text-align:left because neither the dir="auto" nor the unicode-bidi:plaintext
      specification states whether text-align:start and text-align:end should obey the paragraph
      direction or the direction property in a unicode-bidi:plaintext element. 
      The ...! paragraph, being neutral, is supposed to be displayed LTR (i.e. as ...!, not as !...)
      despite both the paragraph before it and the paragraph after it being all-RTL, which makes the
      element as a whole RTL.
    </div>
   <div class="ref">
      <div dir="ltr">
        <textarea rows="5" dir="ltr">@123!
&#x05d0;
...!
&#x05d0;
	</textarea>
      </div>
      <div dir="rtl">
        <textarea rows="5" dir="ltr">@123!
&#x05d0;
...!
&#x05d0;
        </textarea>
      </div>
    </div>
  </body>
</html>
+58 −0
Original line number Diff line number Diff line
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>HTML Test: textarea with dir=auto, all N+EN</title>
  <link rel="author" title="Aharon Lanin" href="mailto:aharon@google.com">
  <link rel="author" title="HTML5 bidi test WG" href="mailto:html5bidi@googlegroups.com">
  <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#the-dir-attribute">
  <link rel="help" href="http://dev.w3.org/csswg/css3-writing-modes/#unicode-bidi0">
   <meta name="assert" content="
   When dir='auto', the direction is set according to the first strong character
   of the text.
   For textarea and pre elements, the heuristic is applied on a per-paragraph level.
   If there is no strong character, as in this test, the direction defaults to LTR.">
    <style>
      body { text-align:left; }
      textarea {
        font-size:18px;
        text-align:left;
        resize: none;
      }
      .test {
        border: medium solid gray;
        width: 400px;
        margin: 20px;
      }
      .comments {
        display: none;
      }
    </style>
  </head>
  <body>
    <div class="comments">
      We use text-align:left because neither the dir="auto" nor the unicode-bidi:plaintext
      specification states whether text-align:start and text-align:end should obey the paragraph
      direction or the direction property in a unicode-bidi:plaintext element. 
      The ...! paragraph, being neutral, is supposed to be displayed LTR (i.e. as ...!, not as !...)
      despite both the paragraph before it and the paragraph after it being all-RTL, which makes the
      element as a whole RTL.
    </div>
    <div class="test">
      <div dir="ltr">
        <textarea rows="5" dir="auto">@123!
&#x05d0;
...!
&#x05d0;
	</textarea>
      </div>
      <div dir="rtl">
        <textarea rows="5" dir="auto">@123!
&#x05d0;
...!
&#x05d0;
	</textarea>
      </div>
    </div>
 </body>
</html>
Loading