Attachment #536698: Style system patch updated to comments for bug #613149

View | Details | Raw Unified | Return to bug 613149
Collapse All | Expand All

(-)a/layout/base/nsBidiPresUtils.cpp (-20 / +15 lines)
Line     Link Here 
 Lines 492-508   nsBidiPresUtils::Resolve(nsBlockFrame* a Link Here 
492
{
492
{
493
  BidiParagraphData bpd;
493
  BidiParagraphData bpd;
494
  bpd.Init(aBlockFrame);
494
  bpd.Init(aBlockFrame);
495
495
496
  // handle bidi-override being set on the block itself before calling
496
  // handle bidi-override being set on the block itself before calling
497
  // TraverseFrames.
497
  // TraverseFrames.
498
  const nsStyleTextReset* text = aBlockFrame->GetStyleTextReset();
498
  const nsStyleTextReset* text = aBlockFrame->GetStyleTextReset();
499
  PRUnichar ch = 0;
499
  PRUnichar ch = 0;
500
  if (text->mUnicodeBidi == NS_STYLE_UNICODE_BIDI_OVERRIDE) {
500
  if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_OVERRIDE) {
501
    const nsStyleVisibility* vis = aBlockFrame->GetStyleVisibility();
501
    const nsStyleVisibility* vis = aBlockFrame->GetStyleVisibility();
502
    if (NS_STYLE_DIRECTION_RTL == vis->mDirection) {
502
    if (NS_STYLE_DIRECTION_RTL == vis->mDirection) {
503
      ch = kRLO;
503
      ch = kRLO;
504
    }
504
    }
505
    else if (NS_STYLE_DIRECTION_LTR == vis->mDirection) {
505
    else if (NS_STYLE_DIRECTION_LTR == vis->mDirection) {
506
      ch = kLRO;
506
      ch = kLRO;
507
    }
507
    }
508
    if (ch != 0) {
508
    if (ch != 0) {
 Lines 800-834   nsBidiPresUtils::TraverseFrames(nsBlockF Link Here 
800
        frame = realFrame;
800
        frame = realFrame;
801
      }
801
      }
802
    }
802
    }
803
803
804
    PRUnichar ch = 0;
804
    PRUnichar ch = 0;
805
    if (frame->IsFrameOfType(nsIFrame::eBidiInlineContainer)) {
805
    if (frame->IsFrameOfType(nsIFrame::eBidiInlineContainer)) {
806
      const nsStyleVisibility* vis = frame->GetStyleVisibility();
806
      const nsStyleVisibility* vis = frame->GetStyleVisibility();
807
      const nsStyleTextReset* text = frame->GetStyleTextReset();
807
      const nsStyleTextReset* text = frame->GetStyleTextReset();
808
      switch (text->mUnicodeBidi) {
808
      if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_OVERRIDE) {
809
        case NS_STYLE_UNICODE_BIDI_NORMAL:
809
        if (NS_STYLE_DIRECTION_RTL == vis->mDirection) {
810
          break;
810
          ch = kRLO;
811
        case NS_STYLE_UNICODE_BIDI_EMBED:
811
        }
812
          if (NS_STYLE_DIRECTION_RTL == vis->mDirection) {
812
        else if (NS_STYLE_DIRECTION_LTR == vis->mDirection) {
813
            ch = kRLE;
813
          ch = kLRO;
814
          }
814
        }
815
          else if (NS_STYLE_DIRECTION_LTR == vis->mDirection) {
815
      } else if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_EMBED) {
816
            ch = kLRE;
816
        if (NS_STYLE_DIRECTION_RTL == vis->mDirection) {
817
          }
817
          ch = kRLE;
818
          break;
818
        }
819
        case NS_STYLE_UNICODE_BIDI_OVERRIDE:
819
        else if (NS_STYLE_DIRECTION_LTR == vis->mDirection) {
820
          if (NS_STYLE_DIRECTION_RTL == vis->mDirection) {
820
          ch = kLRE;
821
            ch = kRLO;
821
        }
822
          }
823
          else if (NS_STYLE_DIRECTION_LTR == vis->mDirection) {
824
            ch = kLRO;
825
          }
826
          break;
827
      }
822
      }
828
823
829
      // Add a dummy frame pointer representing a bidi control code before the
824
      // Add a dummy frame pointer representing a bidi control code before the
830
      // first frame of an element specifying embedding or override
825
      // first frame of an element specifying embedding or override
831
      if (ch != 0 && !frame->GetPrevContinuation()) {
826
      if (ch != 0 && !frame->GetPrevContinuation()) {
832
        aBpd->PushBidiControl(ch);
827
        aBpd->PushBidiControl(ch);
833
      }
828
      }
834
    }
829
    }
(-)a/layout/base/nsStyleConsts.h (-3 / +5 lines)
Line     Link Here 
 Lines 713-731   static inline mozilla::css::Side operato Link Here 
713
#define NS_STYLE_HYPHENS_NONE                   0
713
#define NS_STYLE_HYPHENS_NONE                   0
714
#define NS_STYLE_HYPHENS_MANUAL                 1
714
#define NS_STYLE_HYPHENS_MANUAL                 1
715
#define NS_STYLE_HYPHENS_AUTO                   2
715
#define NS_STYLE_HYPHENS_AUTO                   2
716
716
717
// See nsStyleText
717
// See nsStyleText
718
#define NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT       0
718
#define NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT       0
719
719
720
// See nsStyleText
720
// See nsStyleText
721
#define NS_STYLE_UNICODE_BIDI_NORMAL            0
721
#define NS_STYLE_UNICODE_BIDI_NORMAL            0x0
722
#define NS_STYLE_UNICODE_BIDI_EMBED             1
722
#define NS_STYLE_UNICODE_BIDI_EMBED             0x1
723
#define NS_STYLE_UNICODE_BIDI_OVERRIDE          2
723
#define NS_STYLE_UNICODE_BIDI_ISOLATE           0x2
724
#define NS_STYLE_UNICODE_BIDI_OVERRIDE          0x4
725
#define NS_STYLE_UNICODE_BIDI_PLAINTEXT         0x8
724
726
725
// See nsStyleTable (here for HTML 4.0 for now, should probably change to side flags)
727
// See nsStyleTable (here for HTML 4.0 for now, should probably change to side flags)
726
#define NS_STYLE_TABLE_FRAME_NONE               0
728
#define NS_STYLE_TABLE_FRAME_NONE               0
727
#define NS_STYLE_TABLE_FRAME_ABOVE              1
729
#define NS_STYLE_TABLE_FRAME_ABOVE              1
728
#define NS_STYLE_TABLE_FRAME_BELOW              2
730
#define NS_STYLE_TABLE_FRAME_BELOW              2
729
#define NS_STYLE_TABLE_FRAME_HSIDES             3
731
#define NS_STYLE_TABLE_FRAME_HSIDES             3
730
#define NS_STYLE_TABLE_FRAME_VSIDES             4
732
#define NS_STYLE_TABLE_FRAME_VSIDES             4
731
#define NS_STYLE_TABLE_FRAME_LEFT               5
733
#define NS_STYLE_TABLE_FRAME_LEFT               5
(-)a/layout/style/nsCSSKeywordList.h (+2 lines)
Line     Link Here 
 Lines 121-136   CSS_KEY(-moz-hyperlinktext, _moz_hyperli Link Here 
121
CSS_KEY(-moz-html-cellhighlight, _moz_html_cellhighlight)
121
CSS_KEY(-moz-html-cellhighlight, _moz_html_cellhighlight)
122
CSS_KEY(-moz-html-cellhighlighttext, _moz_html_cellhighlighttext)
122
CSS_KEY(-moz-html-cellhighlighttext, _moz_html_cellhighlighttext)
123
CSS_KEY(-moz-image-rect, _moz_image_rect)
123
CSS_KEY(-moz-image-rect, _moz_image_rect)
124
CSS_KEY(-moz-info, _moz_info)
124
CSS_KEY(-moz-info, _moz_info)
125
CSS_KEY(-moz-initial, _moz_initial)
125
CSS_KEY(-moz-initial, _moz_initial)
126
CSS_KEY(-moz-inline-box, _moz_inline_box)
126
CSS_KEY(-moz-inline-box, _moz_inline_box)
127
CSS_KEY(-moz-inline-grid, _moz_inline_grid)
127
CSS_KEY(-moz-inline-grid, _moz_inline_grid)
128
CSS_KEY(-moz-inline-stack, _moz_inline_stack)
128
CSS_KEY(-moz-inline-stack, _moz_inline_stack)
129
CSS_KEY(-moz-isolate, _moz_isolate)
129
CSS_KEY(-moz-japanese-formal, _moz_japanese_formal)
130
CSS_KEY(-moz-japanese-formal, _moz_japanese_formal)
130
CSS_KEY(-moz-japanese-informal, _moz_japanese_informal)
131
CSS_KEY(-moz-japanese-informal, _moz_japanese_informal)
131
CSS_KEY(-moz-kannada, _moz_kannada)
132
CSS_KEY(-moz-kannada, _moz_kannada)
132
CSS_KEY(-moz-khmer, _moz_khmer)
133
CSS_KEY(-moz-khmer, _moz_khmer)
133
CSS_KEY(-moz-lao, _moz_lao)
134
CSS_KEY(-moz-lao, _moz_lao)
134
CSS_KEY(-moz-left, _moz_left)
135
CSS_KEY(-moz-left, _moz_left)
135
CSS_KEY(-moz-list, _moz_list)
136
CSS_KEY(-moz-list, _moz_list)
136
CSS_KEY(-moz-mac-alternateprimaryhighlight, _moz_mac_alternateprimaryhighlight)
137
CSS_KEY(-moz-mac-alternateprimaryhighlight, _moz_mac_alternateprimaryhighlight)
 Lines 152-167   CSS_KEY(-moz-menubarhovertext, _moz_menu Link Here 
152
CSS_KEY(-moz-middle-with-baseline, _moz_middle_with_baseline)
153
CSS_KEY(-moz-middle-with-baseline, _moz_middle_with_baseline)
153
CSS_KEY(-moz-min-content, _moz_min_content)
154
CSS_KEY(-moz-min-content, _moz_min_content)
154
CSS_KEY(-moz-myanmar, _moz_myanmar)
155
CSS_KEY(-moz-myanmar, _moz_myanmar)
155
CSS_KEY(-moz-nativehyperlinktext, _moz_nativehyperlinktext)
156
CSS_KEY(-moz-nativehyperlinktext, _moz_nativehyperlinktext)
156
CSS_KEY(-moz-none, _moz_none)
157
CSS_KEY(-moz-none, _moz_none)
157
CSS_KEY(-moz-oddtreerow, _moz_oddtreerow)
158
CSS_KEY(-moz-oddtreerow, _moz_oddtreerow)
158
CSS_KEY(-moz-oriya, _moz_oriya)
159
CSS_KEY(-moz-oriya, _moz_oriya)
159
CSS_KEY(-moz-persian, _moz_persian)
160
CSS_KEY(-moz-persian, _moz_persian)
161
CSS_KEY(-moz-plaintext, _moz_plaintext)
160
CSS_KEY(-moz-popup, _moz_popup)
162
CSS_KEY(-moz-popup, _moz_popup)
161
CSS_KEY(-moz-pull-down-menu, _moz_pull_down_menu)
163
CSS_KEY(-moz-pull-down-menu, _moz_pull_down_menu)
162
CSS_KEY(-moz-right, _moz_right)
164
CSS_KEY(-moz-right, _moz_right)
163
CSS_KEY(-moz-scrollbars-horizontal, _moz_scrollbars_horizontal)
165
CSS_KEY(-moz-scrollbars-horizontal, _moz_scrollbars_horizontal)
164
CSS_KEY(-moz-scrollbars-none, _moz_scrollbars_none)
166
CSS_KEY(-moz-scrollbars-none, _moz_scrollbars_none)
165
CSS_KEY(-moz-scrollbars-vertical, _moz_scrollbars_vertical)
167
CSS_KEY(-moz-scrollbars-vertical, _moz_scrollbars_vertical)
166
CSS_KEY(-moz-show-background, _moz_show_background)
168
CSS_KEY(-moz-show-background, _moz_show_background)
167
CSS_KEY(-moz-simp-chinese-formal, _moz_simp_chinese_formal)
169
CSS_KEY(-moz-simp-chinese-formal, _moz_simp_chinese_formal)
(-)a/layout/style/nsCSSParser.cpp (+33 lines)
Line     Link Here 
 Lines 511-526   protected: Link Here 
511
  PRBool ParseMozTransform();
511
  PRBool ParseMozTransform();
512
  PRBool ParseOutline();
512
  PRBool ParseOutline();
513
  PRBool ParseOverflow();
513
  PRBool ParseOverflow();
514
  PRBool ParsePadding();
514
  PRBool ParsePadding();
515
  PRBool ParseQuotes();
515
  PRBool ParseQuotes();
516
  PRBool ParseSize();
516
  PRBool ParseSize();
517
  PRBool ParseTextDecoration();
517
  PRBool ParseTextDecoration();
518
  PRBool ParseTextDecorationLine(nsCSSValue& aValue);
518
  PRBool ParseTextDecorationLine(nsCSSValue& aValue);
519
  PRBool ParseUnicodeBidi(nsCSSValue& aValue);
519
520
520
  PRBool ParseShadowItem(nsCSSValue& aValue, PRBool aIsBoxShadow);
521
  PRBool ParseShadowItem(nsCSSValue& aValue, PRBool aIsBoxShadow);
521
  PRBool ParseShadowList(nsCSSProperty aProperty);
522
  PRBool ParseShadowList(nsCSSProperty aProperty);
522
  PRBool ParseTransitionProperty();
523
  PRBool ParseTransitionProperty();
523
  PRBool ParseTransitionTimingFunctionValues(nsCSSValue& aValue);
524
  PRBool ParseTransitionTimingFunctionValues(nsCSSValue& aValue);
524
  PRBool ParseTransitionTimingFunctionValueComponent(float& aComponent,
525
  PRBool ParseTransitionTimingFunctionValueComponent(float& aComponent,
525
                                                     char aStop,
526
                                                     char aStop,
526
                                                     PRBool aCheckRange);
527
                                                     PRBool aCheckRange);
 Lines 5603-5618   CSSParserImpl::ParseSingleValueProperty( Link Here 
5603
      case eCSSProperty_font_family:
5604
      case eCSSProperty_font_family:
5604
        return ParseFamily(aValue);
5605
        return ParseFamily(aValue);
5605
      case eCSSProperty_font_weight:
5606
      case eCSSProperty_font_weight:
5606
        return ParseFontWeight(aValue);
5607
        return ParseFontWeight(aValue);
5607
      case eCSSProperty_marks:
5608
      case eCSSProperty_marks:
5608
        return ParseMarks(aValue);
5609
        return ParseMarks(aValue);
5609
      case eCSSProperty_text_decoration_line:
5610
      case eCSSProperty_text_decoration_line:
5610
        return ParseTextDecorationLine(aValue);
5611
        return ParseTextDecorationLine(aValue);
5612
      case eCSSProperty_unicode_bidi:
5613
        return ParseUnicodeBidi(aValue);
5611
      default:
5614
      default:
5612
        NS_ABORT_IF_FALSE(PR_FALSE, "should not reach here");
5615
        NS_ABORT_IF_FALSE(PR_FALSE, "should not reach here");
5613
        return PR_FALSE;
5616
        return PR_FALSE;
5614
    }
5617
    }
5615
  }
5618
  }
5616
5619
5617
  PRUint32 variant = nsCSSProps::ParserVariant(aPropID);
5620
  PRUint32 variant = nsCSSProps::ParserVariant(aPropID);
5618
  if (variant == 0) {
5621
  if (variant == 0) {
 Lines 8038-8053   CSSParserImpl::ParseTextDecorationLine(n Link Here 
8038
        aValue.SetIntValue(intValue, eCSSUnit_Enumerated);
8041
        aValue.SetIntValue(intValue, eCSSUnit_Enumerated);
8039
      }
8042
      }
8040
    }
8043
    }
8041
    return PR_TRUE;
8044
    return PR_TRUE;
8042
  }
8045
  }
8043
  return PR_FALSE;
8046
  return PR_FALSE;
8044
}
8047
}
8045
8048
8049
PRBool
8050
CSSParserImpl::ParseUnicodeBidi(nsCSSValue& aValue)
8051
{
8052
  if (ParseVariant(aValue, VARIANT_HK, nsCSSProps::kUnicodeBidiKTable)) {
8053
    if (eCSSUnit_Enumerated == aValue.GetUnit()) {
8054
      PRInt32 intValue = aValue.GetIntValue();
8055
      // unicode-bidi can have at most two values. The only legal combinations
8056
      // of two values are:
8057
      //  isolate plaintext
8058
      //  isolate bidi-override
8059
      if (intValue != NS_STYLE_UNICODE_BIDI_NORMAL &&
8060
          intValue != NS_STYLE_UNICODE_BIDI_EMBED) {
8061
        // look for more keywords
8062
        nsCSSValue  keyword;
8063
        if (ParseEnum(keyword, nsCSSProps::kUnicodeBidiKTable)) {
8064
          intValue |= keyword.GetIntValue();
8065
          if (intValue != (NS_STYLE_UNICODE_BIDI_ISOLATE |
8066
                           NS_STYLE_UNICODE_BIDI_PLAINTEXT) &&
8067
              intValue != (NS_STYLE_UNICODE_BIDI_ISOLATE |
8068
                           NS_STYLE_UNICODE_BIDI_OVERRIDE)) {
8069
            return PR_FALSE;
8070
          }
8071
        }
8072
        aValue.SetIntValue(intValue, eCSSUnit_Enumerated);
8073
      }
8074
    }
8075
    return PR_TRUE;
8076
  }
8077
  return PR_FALSE;
8078
}
8046
8079
8047
PRBool
8080
PRBool
8048
CSSParserImpl::ParseTransitionProperty()
8081
CSSParserImpl::ParseTransitionProperty()
8049
{
8082
{
8050
  nsCSSValue value;
8083
  nsCSSValue value;
8051
  if (ParseVariant(value, VARIANT_INHERIT | VARIANT_NONE | VARIANT_ALL,
8084
  if (ParseVariant(value, VARIANT_INHERIT | VARIANT_NONE | VARIANT_ALL,
8052
                   nsnull)) {
8085
                   nsnull)) {
8053
    // 'inherit', 'initial', 'none', and 'all' must be alone
8086
    // 'inherit', 'initial', 'none', and 'all' must be alone
(-)a/layout/style/nsCSSPropList.h (-2 / +3 lines)
Line     Link Here 
 Lines 2305-2322   CSS_PROP_DISPLAY( Link Here 
2305
    VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
2305
    VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
2306
    kTransitionTimingFunctionKTable,
2306
    kTransitionTimingFunctionKTable,
2307
    CSS_PROP_NO_OFFSET,
2307
    CSS_PROP_NO_OFFSET,
2308
    eStyleAnimType_None)
2308
    eStyleAnimType_None)
2309
CSS_PROP_TEXTRESET(
2309
CSS_PROP_TEXTRESET(
2310
    unicode-bidi,
2310
    unicode-bidi,
2311
    unicode_bidi,
2311
    unicode_bidi,
2312
    UnicodeBidi,
2312
    UnicodeBidi,
2313
    CSS_PROPERTY_PARSE_VALUE,
2313
    CSS_PROPERTY_PARSE_VALUE |
2314
    VARIANT_HK,
2314
        CSS_PROPERTY_VALUE_PARSER_FUNCTION,
2315
    0,
2315
    kUnicodeBidiKTable,
2316
    kUnicodeBidiKTable,
2316
    CSS_PROP_NO_OFFSET,
2317
    CSS_PROP_NO_OFFSET,
2317
    eStyleAnimType_None)
2318
    eStyleAnimType_None)
2318
CSS_PROP_USERINTERFACE(
2319
CSS_PROP_USERINTERFACE(
2319
    -moz-user-focus,
2320
    -moz-user-focus,
2320
    user_focus,
2321
    user_focus,
2321
    CSS_PROP_DOMPROP_PREFIXED(UserFocus),
2322
    CSS_PROP_DOMPROP_PREFIXED(UserFocus),
2322
    CSS_PROPERTY_PARSE_VALUE,
2323
    CSS_PROPERTY_PARSE_VALUE,
(-)a/layout/style/nsCSSProps.cpp (+2 lines)
Line     Link Here 
 Lines 1234-1249   const PRInt32 nsCSSProps::kTransitionTim Link Here 
1234
  eCSSKeyword_step_end, NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_END,
1234
  eCSSKeyword_step_end, NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_END,
1235
  eCSSKeyword_UNKNOWN,-1
1235
  eCSSKeyword_UNKNOWN,-1
1236
};
1236
};
1237
1237
1238
const PRInt32 nsCSSProps::kUnicodeBidiKTable[] = {
1238
const PRInt32 nsCSSProps::kUnicodeBidiKTable[] = {
1239
  eCSSKeyword_normal, NS_STYLE_UNICODE_BIDI_NORMAL,
1239
  eCSSKeyword_normal, NS_STYLE_UNICODE_BIDI_NORMAL,
1240
  eCSSKeyword_embed, NS_STYLE_UNICODE_BIDI_EMBED,
1240
  eCSSKeyword_embed, NS_STYLE_UNICODE_BIDI_EMBED,
1241
  eCSSKeyword_bidi_override, NS_STYLE_UNICODE_BIDI_OVERRIDE,
1241
  eCSSKeyword_bidi_override, NS_STYLE_UNICODE_BIDI_OVERRIDE,
1242
  eCSSKeyword__moz_isolate, NS_STYLE_UNICODE_BIDI_ISOLATE,
1243
  eCSSKeyword__moz_plaintext, NS_STYLE_UNICODE_BIDI_PLAINTEXT,
1242
  eCSSKeyword_UNKNOWN,-1
1244
  eCSSKeyword_UNKNOWN,-1
1243
};
1245
};
1244
1246
1245
const PRInt32 nsCSSProps::kUserFocusKTable[] = {
1247
const PRInt32 nsCSSProps::kUserFocusKTable[] = {
1246
  eCSSKeyword_none,           NS_STYLE_USER_FOCUS_NONE,
1248
  eCSSKeyword_none,           NS_STYLE_USER_FOCUS_NONE,
1247
  eCSSKeyword_normal,         NS_STYLE_USER_FOCUS_NORMAL,
1249
  eCSSKeyword_normal,         NS_STYLE_USER_FOCUS_NORMAL,
1248
  eCSSKeyword_ignore,         NS_STYLE_USER_FOCUS_IGNORE,
1250
  eCSSKeyword_ignore,         NS_STYLE_USER_FOCUS_IGNORE,
1249
  eCSSKeyword_select_all,     NS_STYLE_USER_FOCUS_SELECT_ALL,
1251
  eCSSKeyword_select_all,     NS_STYLE_USER_FOCUS_SELECT_ALL,
(-)a/layout/style/nsCSSValue.cpp (+13 lines)
Line     Link Here 
 Lines 815-830   nsCSSValue::AppendToString(nsCSSProperty Link Here 
815
                           aResult);
815
                           aResult);
816
      } else {
816
      } else {
817
        nsStyleUtil::AppendBitmaskCSSValue(aProperty, intValue,
817
        nsStyleUtil::AppendBitmaskCSSValue(aProperty, intValue,
818
                                           NS_STYLE_PAGE_MARKS_CROP,
818
                                           NS_STYLE_PAGE_MARKS_CROP,
819
                                           NS_STYLE_PAGE_MARKS_REGISTER,
819
                                           NS_STYLE_PAGE_MARKS_REGISTER,
820
                                           aResult);
820
                                           aResult);
821
      }
821
      }
822
    }
822
    }
823
    else if (eCSSProperty_unicode_bidi == aProperty) {
824
      PRInt32 intValue = GetIntValue();
825
      if (NS_STYLE_UNICODE_BIDI_NORMAL == intValue) {
826
        AppendASCIItoUTF16(nsCSSProps::LookupPropertyValue(aProperty, intValue),
827
                           aResult);
828
      } else {
829
        nsStyleUtil::AppendBitmaskCSSValue(
830
          aProperty, intValue,
831
          NS_STYLE_UNICODE_BIDI_EMBED,
832
          NS_STYLE_UNICODE_BIDI_PLAINTEXT,
833
          aResult);
834
      }
835
    }
823
    else {
836
    else {
824
      const nsAFlatCString& name = nsCSSProps::LookupPropertyValue(aProperty, GetIntValue());
837
      const nsAFlatCString& name = nsCSSProps::LookupPropertyValue(aProperty, GetIntValue());
825
      AppendASCIItoUTF16(name, aResult);
838
      AppendASCIItoUTF16(name, aResult);
826
    }
839
    }
827
  }
840
  }
828
  else if (eCSSUnit_EnumColor == unit) {
841
  else if (eCSSUnit_EnumColor == unit) {
829
    // we can lookup the property in the ColorTable and then
842
    // we can lookup the property in the ColorTable and then
830
    // get a string mapping the name
843
    // get a string mapping the name
(-)a/layout/style/nsComputedDOMStyle.cpp (-3 / +13 lines)
Line     Link Here 
 Lines 2495-2513   nsComputedDOMStyle::DoGetDirection() Link Here 
2495
                                   nsCSSProps::kDirectionKTable));
2495
                                   nsCSSProps::kDirectionKTable));
2496
  return val;
2496
  return val;
2497
}
2497
}
2498
2498
2499
nsIDOMCSSValue*
2499
nsIDOMCSSValue*
2500
nsComputedDOMStyle::DoGetUnicodeBidi()
2500
nsComputedDOMStyle::DoGetUnicodeBidi()
2501
{
2501
{
2502
  nsROCSSPrimitiveValue *val = GetROCSSPrimitiveValue();
2502
  nsROCSSPrimitiveValue *val = GetROCSSPrimitiveValue();
2503
  val->SetIdent(
2503
  PRInt32 intValue = GetStyleTextReset()->mUnicodeBidi;
2504
    nsCSSProps::ValueToKeywordEnum(GetStyleTextReset()->mUnicodeBidi,
2504
2505
                                   nsCSSProps::kUnicodeBidiKTable));
2505
  if (NS_STYLE_UNICODE_BIDI_NORMAL == intValue) {
2506
    val->SetIdent(eCSSKeyword_normal);
2507
  } else {
2508
    nsAutoString unicodeBidiString;
2509
    nsStyleUtil::AppendBitmaskCSSValue(eCSSProperty_unicode_bidi, intValue,
2510
                                       NS_STYLE_UNICODE_BIDI_EMBED,
2511
                                       NS_STYLE_UNICODE_BIDI_PLAINTEXT,
2512
                                       unicodeBidiString);
2513
    val->SetString(unicodeBidiString);
2514
  }
2515
2506
  return val;
2516
  return val;
2507
}
2517
}
2508
2518
2509
nsIDOMCSSValue*
2519
nsIDOMCSSValue*
2510
nsComputedDOMStyle::DoGetCursor()
2520
nsComputedDOMStyle::DoGetCursor()
2511
{
2521
{
2512
  nsDOMCSSValueList *valueList = GetROCSSValueList(PR_TRUE);
2522
  nsDOMCSSValueList *valueList = GetROCSSValueList(PR_TRUE);
2513
2523
(-)a/layout/style/test/property_database.js (-2 / +2 lines)
Line     Link Here 
 Lines 2588-2605   var gCSSProperties = { Link Here 
2588
		other_values: [ "linear", "ease-in", "ease-out", "ease-in-out", "linear, ease-in, cubic-bezier(0.1, 0.2, 0.8, 0.9)", "cubic-bezier(0.5, 0.5, 0.5, 0.5)", "cubic-bezier(0.25, 1.5, 0.75, -0.5)", "step-start", "step-end", "steps(1)", "steps(2, start)", "steps(386)", "steps(3, end)" ],
2588
		other_values: [ "linear", "ease-in", "ease-out", "ease-in-out", "linear, ease-in, cubic-bezier(0.1, 0.2, 0.8, 0.9)", "cubic-bezier(0.5, 0.5, 0.5, 0.5)", "cubic-bezier(0.25, 1.5, 0.75, -0.5)", "step-start", "step-end", "steps(1)", "steps(2, start)", "steps(386)", "steps(3, end)" ],
2589
		invalid_values: [ "none", "auto", "cubic-bezier(0.25, 0.1, 0.25)", "cubic-bezier(0.25, 0.1, 0.25, 0.25, 1.0)", "cubic-bezier(-0.5, 0.5, 0.5, 0.5)", "cubic-bezier(1.5, 0.5, 0.5, 0.5)", "cubic-bezier(0.5, 0.5, -0.5, 0.5)", "cubic-bezier(0.5, 0.5, 1.5, 0.5)", "steps(2, step-end)", "steps(0)", "steps(-2)", "steps(0, step-end, 1)" ]
2589
		invalid_values: [ "none", "auto", "cubic-bezier(0.25, 0.1, 0.25)", "cubic-bezier(0.25, 0.1, 0.25, 0.25, 1.0)", "cubic-bezier(-0.5, 0.5, 0.5, 0.5)", "cubic-bezier(1.5, 0.5, 0.5, 0.5)", "cubic-bezier(0.5, 0.5, -0.5, 0.5)", "cubic-bezier(0.5, 0.5, 1.5, 0.5)", "steps(2, step-end)", "steps(0)", "steps(-2)", "steps(0, step-end, 1)" ]
2590
	},
2590
	},
2591
	"unicode-bidi": {
2591
	"unicode-bidi": {
2592
		domProp: "unicodeBidi",
2592
		domProp: "unicodeBidi",
2593
		inherited: false,
2593
		inherited: false,
2594
		type: CSS_TYPE_LONGHAND,
2594
		type: CSS_TYPE_LONGHAND,
2595
		initial_values: [ "normal" ],
2595
		initial_values: [ "normal" ],
2596
		other_values: [ "embed", "bidi-override" ],
2596
		other_values: [ "embed", "bidi-override", "-moz-isolate", "-moz-plaintext", "-moz-isolate bidi-override", "bidi-override -moz-isolate", "-moz-isolate -moz-plaintext", "-moz-plaintext -moz-isolate" ],
2597
		invalid_values: [ "auto", "none" ]
2597
		invalid_values: [ "auto", "none", "normal embed", "normal bidi-override", "normal -moz-isolate", "normal -moz-plaintext", "embed -moz-isolate", "bidi-override -moz-plaintext", "-moz-isolate embed", "embed normal" ]
2598
	},
2598
	},
2599
	"vertical-align": {
2599
	"vertical-align": {
2600
		domProp: "verticalAlign",
2600
		domProp: "verticalAlign",
2601
		inherited: false,
2601
		inherited: false,
2602
		type: CSS_TYPE_LONGHAND,
2602
		type: CSS_TYPE_LONGHAND,
2603
		initial_values: [ "baseline" ],
2603
		initial_values: [ "baseline" ],
2604
		other_values: [ "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom", "15%", "3px", "0.2em", "-5px", "-3%",
2604
		other_values: [ "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom", "15%", "3px", "0.2em", "-5px", "-3%",
2605
			"-moz-calc(2px)",
2605
			"-moz-calc(2px)",
(-)a/layout/svg/base/src/nsSVGGlyphFrame.cpp (-1 / +1 lines)
Line     Link Here 
 Lines 1546-1562   nsSVGGlyphFrame::EnsureTextRun(float *aD Link Here 
1546
     * new text chunk, so we always set the base direction according to the
1546
     * new text chunk, so we always set the base direction according to the
1547
     * direction property
1547
     * direction property
1548
     *
1548
     *
1549
     * See also XXXsmontagu comments in nsSVGTextFrame::UpdateGlyphPositioning
1549
     * See also XXXsmontagu comments in nsSVGTextFrame::UpdateGlyphPositioning
1550
     */
1550
     */
1551
    
1551
    
1552
    // Get the unicodeBidi property from the parent, because it doesn't
1552
    // Get the unicodeBidi property from the parent, because it doesn't
1553
    // inherit
1553
    // inherit
1554
    PRBool bidiOverride = (mParent->GetStyleTextReset()->mUnicodeBidi ==
1554
    PRBool bidiOverride = (mParent->GetStyleTextReset()->mUnicodeBidi &
1555
                           NS_STYLE_UNICODE_BIDI_OVERRIDE);
1555
                           NS_STYLE_UNICODE_BIDI_OVERRIDE);
1556
    nsBidiLevel baseDirection =
1556
    nsBidiLevel baseDirection =
1557
      GetStyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL ?
1557
      GetStyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL ?
1558
        NSBIDI_RTL : NSBIDI_LTR;
1558
        NSBIDI_RTL : NSBIDI_LTR;
1559
    nsBidiPresUtils::CopyLogicalToVisual(text, visualText,
1559
    nsBidiPresUtils::CopyLogicalToVisual(text, visualText,
1560
                                         baseDirection, bidiOverride);
1560
                                         baseDirection, bidiOverride);
1561
    if (!visualText.IsEmpty()) {
1561
    if (!visualText.IsEmpty()) {
1562
      text = visualText;
1562
      text = visualText;

Return to bug 613149