Loading layout/base/nsPresContext.cpp +10 −8 Original line number Diff line number Diff line Loading @@ -564,6 +564,9 @@ nsPresContext::GetUserPreferences() mEnableJapaneseTransform = nsContentUtils::GetBoolPref("layout.enable_japanese_specific_transform"); mPrefScrollbarSide = nsContentUtils::GetIntPref("layout.scrollbar.side"); GetFontPreferences(); // * image animation Loading @@ -576,36 +579,36 @@ nsPresContext::GetUserPreferences() else if (animatePref.Equals("once")) mImageAnimationModePref = imgIContainer::kLoopOnceAnimMode; #ifdef IBMBIDI PRUint32 bidiOptions = GetBidi(); PRInt32 prefInt = nsContentUtils::GetIntPref("bidi.direction", nsContentUtils::GetIntPref(IBMBIDI_TEXTDIRECTION_STR, GET_BIDI_OPTION_DIRECTION(bidiOptions)); SET_BIDI_OPTION_DIRECTION(bidiOptions, prefInt); mPrefBidiDirection = prefInt; prefInt = nsContentUtils::GetIntPref("bidi.texttype", nsContentUtils::GetIntPref(IBMBIDI_TEXTTYPE_STR, GET_BIDI_OPTION_TEXTTYPE(bidiOptions)); SET_BIDI_OPTION_TEXTTYPE(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.controlstextmode", nsContentUtils::GetIntPref(IBMBIDI_CONTROLSTEXTMODE_STR, GET_BIDI_OPTION_CONTROLSTEXTMODE(bidiOptions)); SET_BIDI_OPTION_CONTROLSTEXTMODE(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.numeral", nsContentUtils::GetIntPref(IBMBIDI_NUMERAL_STR, GET_BIDI_OPTION_NUMERAL(bidiOptions)); SET_BIDI_OPTION_NUMERAL(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.support", nsContentUtils::GetIntPref(IBMBIDI_SUPPORTMODE_STR, GET_BIDI_OPTION_SUPPORT(bidiOptions)); SET_BIDI_OPTION_SUPPORT(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.characterset", nsContentUtils::GetIntPref(IBMBIDI_CHARSET_STR, GET_BIDI_OPTION_CHARACTERSET(bidiOptions)); SET_BIDI_OPTION_CHARACTERSET(bidiOptions, prefInt); Loading @@ -613,7 +616,6 @@ nsPresContext::GetUserPreferences() // prescontext or we are being called from UpdateAfterPreferencesChanged() // which triggers a reflow anyway. SetBidi(bidiOptions, PR_FALSE); #endif } void Loading layout/base/nsPresContext.h +18 −6 Original line number Diff line number Diff line Loading @@ -103,12 +103,18 @@ enum nsLanguageSpecificTransformType { }; // supported values for cached bool types const PRUint32 kPresContext_UseDocumentColors = 0x01; const PRUint32 kPresContext_UseDocumentFonts = 0x02; const PRUint32 kPresContext_UnderlineLinks = 0x03; enum nsPresContext_CachedBoolPrefType { kPresContext_UseDocumentColors = 1, kPresContext_UseDocumentFonts, kPresContext_UnderlineLinks }; // supported values for cached integer pref types const PRUint32 kPresContext_MinimumFontSize = 0x01; enum nsPresContext_CachedIntPrefType { kPresContext_MinimumFontSize = 1, kPresContext_ScrollbarSide, kPresContext_BidiDirection }; // IDs for the default variable and fixed fonts (not to be changed, see nsFont.h) // To be used for Get/SetDefaultFont(). The other IDs in nsFont.h are also supported. Loading Loading @@ -249,7 +255,7 @@ public: /** Get a cached boolean pref, by its type */ // * - initially created for bugs 31816, 20760, 22963 PRBool GetCachedBoolPref(PRUint32 aPrefType) const PRBool GetCachedBoolPref(nsPresContext_CachedBoolPrefType aPrefType) const { // If called with a constant parameter, the compiler should optimize // this switch statement away. Loading @@ -269,13 +275,17 @@ public: /** Get a cached integer pref, by its type */ // * - initially created for bugs 30910, 61883, 74186, 84398 PRInt32 GetCachedIntPref(PRUint32 aPrefType) const PRInt32 GetCachedIntPref(nsPresContext_CachedIntPrefType aPrefType) const { // If called with a constant parameter, the compiler should optimize // this switch statement away. switch (aPrefType) { case kPresContext_MinimumFontSize: return mMinimumFontSize; case kPresContext_ScrollbarSide: return mPrefScrollbarSide; case kPresContext_BidiDirection: return mPrefBidiDirection; default: NS_ERROR("invalid arg passed to GetCachedIntPref"); } Loading Loading @@ -721,6 +731,8 @@ protected: unsigned mCanPaginatedScroll : 1; unsigned mDoScaledTwips : 1; unsigned mEnableJapaneseTransform : 1; unsigned mPrefBidiDirection : 1; unsigned mPrefScrollbarSide : 2; #ifdef IBMBIDI unsigned mIsVisual : 1; unsigned mIsBidiSystem : 1; Loading layout/generic/nsGfxScrollFrame.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ #include "nsIAccessibilityService.h" #endif #include "nsDisplayList.h" #include "nsBidiUtils.h" static const char kEventQueueServiceCID[] = NS_EVENTQUEUESERVICE_CONTRACTID; Loading Loading @@ -2140,6 +2141,24 @@ nsGfxScrollFrameInner::IsLTR() const return frame->GetStyleVisibility()->mDirection != NS_STYLE_DIRECTION_RTL; } PRBool nsGfxScrollFrameInner::IsScrollbarOnRight() const { nsPresContext *presContext = mOuter->GetPresContext(); switch (presContext->GetCachedIntPref(kPresContext_ScrollbarSide)) { default: case 0: // UI directionality return presContext->GetCachedIntPref(kPresContext_BidiDirection) == IBMBIDI_TEXTDIRECTION_LTR; case 1: // Document / content directionality return IsLTR(); case 2: // Always right return PR_TRUE; case 3: // Always left return PR_FALSE; } } /** * Reflow the scroll area if it needs it and return its size. Also determine if the reflow will * cause any of the scrollbars to need to be reflowed. Loading layout/generic/nsGfxScrollFrame.h +1 −1 Original line number Diff line number Diff line Loading @@ -140,7 +140,7 @@ public: nsMargin GetActualScrollbarSizes() const; nsMargin GetDesiredScrollbarSizes(nsBoxLayoutState* aState); PRBool IsLTR() const; PRBool IsScrollbarOnRight() const { return IsLTR(); } PRBool IsScrollbarOnRight() const; void LayoutScrollbars(nsBoxLayoutState& aState, const nsRect& aContentArea, const nsRect& aOldScrollArea, Loading modules/libpref/src/init/all.js +7 −0 Original line number Diff line number Diff line Loading @@ -954,6 +954,13 @@ pref("layout.frames.force_resizability", false); // pref to report CSS errors to the error console pref("layout.css.report_errors", true); // pref for which side vertical scrollbars should be on // 0 = end-side in UI direction // 1 = end-side in document/content direction // 2 = right // 3 = left pref("layout.scrollbar.side", 0); // pref to permit users to make verified SOAP calls by default pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader", "allAccess"); Loading Loading
layout/base/nsPresContext.cpp +10 −8 Original line number Diff line number Diff line Loading @@ -564,6 +564,9 @@ nsPresContext::GetUserPreferences() mEnableJapaneseTransform = nsContentUtils::GetBoolPref("layout.enable_japanese_specific_transform"); mPrefScrollbarSide = nsContentUtils::GetIntPref("layout.scrollbar.side"); GetFontPreferences(); // * image animation Loading @@ -576,36 +579,36 @@ nsPresContext::GetUserPreferences() else if (animatePref.Equals("once")) mImageAnimationModePref = imgIContainer::kLoopOnceAnimMode; #ifdef IBMBIDI PRUint32 bidiOptions = GetBidi(); PRInt32 prefInt = nsContentUtils::GetIntPref("bidi.direction", nsContentUtils::GetIntPref(IBMBIDI_TEXTDIRECTION_STR, GET_BIDI_OPTION_DIRECTION(bidiOptions)); SET_BIDI_OPTION_DIRECTION(bidiOptions, prefInt); mPrefBidiDirection = prefInt; prefInt = nsContentUtils::GetIntPref("bidi.texttype", nsContentUtils::GetIntPref(IBMBIDI_TEXTTYPE_STR, GET_BIDI_OPTION_TEXTTYPE(bidiOptions)); SET_BIDI_OPTION_TEXTTYPE(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.controlstextmode", nsContentUtils::GetIntPref(IBMBIDI_CONTROLSTEXTMODE_STR, GET_BIDI_OPTION_CONTROLSTEXTMODE(bidiOptions)); SET_BIDI_OPTION_CONTROLSTEXTMODE(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.numeral", nsContentUtils::GetIntPref(IBMBIDI_NUMERAL_STR, GET_BIDI_OPTION_NUMERAL(bidiOptions)); SET_BIDI_OPTION_NUMERAL(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.support", nsContentUtils::GetIntPref(IBMBIDI_SUPPORTMODE_STR, GET_BIDI_OPTION_SUPPORT(bidiOptions)); SET_BIDI_OPTION_SUPPORT(bidiOptions, prefInt); prefInt = nsContentUtils::GetIntPref("bidi.characterset", nsContentUtils::GetIntPref(IBMBIDI_CHARSET_STR, GET_BIDI_OPTION_CHARACTERSET(bidiOptions)); SET_BIDI_OPTION_CHARACTERSET(bidiOptions, prefInt); Loading @@ -613,7 +616,6 @@ nsPresContext::GetUserPreferences() // prescontext or we are being called from UpdateAfterPreferencesChanged() // which triggers a reflow anyway. SetBidi(bidiOptions, PR_FALSE); #endif } void Loading
layout/base/nsPresContext.h +18 −6 Original line number Diff line number Diff line Loading @@ -103,12 +103,18 @@ enum nsLanguageSpecificTransformType { }; // supported values for cached bool types const PRUint32 kPresContext_UseDocumentColors = 0x01; const PRUint32 kPresContext_UseDocumentFonts = 0x02; const PRUint32 kPresContext_UnderlineLinks = 0x03; enum nsPresContext_CachedBoolPrefType { kPresContext_UseDocumentColors = 1, kPresContext_UseDocumentFonts, kPresContext_UnderlineLinks }; // supported values for cached integer pref types const PRUint32 kPresContext_MinimumFontSize = 0x01; enum nsPresContext_CachedIntPrefType { kPresContext_MinimumFontSize = 1, kPresContext_ScrollbarSide, kPresContext_BidiDirection }; // IDs for the default variable and fixed fonts (not to be changed, see nsFont.h) // To be used for Get/SetDefaultFont(). The other IDs in nsFont.h are also supported. Loading Loading @@ -249,7 +255,7 @@ public: /** Get a cached boolean pref, by its type */ // * - initially created for bugs 31816, 20760, 22963 PRBool GetCachedBoolPref(PRUint32 aPrefType) const PRBool GetCachedBoolPref(nsPresContext_CachedBoolPrefType aPrefType) const { // If called with a constant parameter, the compiler should optimize // this switch statement away. Loading @@ -269,13 +275,17 @@ public: /** Get a cached integer pref, by its type */ // * - initially created for bugs 30910, 61883, 74186, 84398 PRInt32 GetCachedIntPref(PRUint32 aPrefType) const PRInt32 GetCachedIntPref(nsPresContext_CachedIntPrefType aPrefType) const { // If called with a constant parameter, the compiler should optimize // this switch statement away. switch (aPrefType) { case kPresContext_MinimumFontSize: return mMinimumFontSize; case kPresContext_ScrollbarSide: return mPrefScrollbarSide; case kPresContext_BidiDirection: return mPrefBidiDirection; default: NS_ERROR("invalid arg passed to GetCachedIntPref"); } Loading Loading @@ -721,6 +731,8 @@ protected: unsigned mCanPaginatedScroll : 1; unsigned mDoScaledTwips : 1; unsigned mEnableJapaneseTransform : 1; unsigned mPrefBidiDirection : 1; unsigned mPrefScrollbarSide : 2; #ifdef IBMBIDI unsigned mIsVisual : 1; unsigned mIsBidiSystem : 1; Loading
layout/generic/nsGfxScrollFrame.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ #include "nsIAccessibilityService.h" #endif #include "nsDisplayList.h" #include "nsBidiUtils.h" static const char kEventQueueServiceCID[] = NS_EVENTQUEUESERVICE_CONTRACTID; Loading Loading @@ -2140,6 +2141,24 @@ nsGfxScrollFrameInner::IsLTR() const return frame->GetStyleVisibility()->mDirection != NS_STYLE_DIRECTION_RTL; } PRBool nsGfxScrollFrameInner::IsScrollbarOnRight() const { nsPresContext *presContext = mOuter->GetPresContext(); switch (presContext->GetCachedIntPref(kPresContext_ScrollbarSide)) { default: case 0: // UI directionality return presContext->GetCachedIntPref(kPresContext_BidiDirection) == IBMBIDI_TEXTDIRECTION_LTR; case 1: // Document / content directionality return IsLTR(); case 2: // Always right return PR_TRUE; case 3: // Always left return PR_FALSE; } } /** * Reflow the scroll area if it needs it and return its size. Also determine if the reflow will * cause any of the scrollbars to need to be reflowed. Loading
layout/generic/nsGfxScrollFrame.h +1 −1 Original line number Diff line number Diff line Loading @@ -140,7 +140,7 @@ public: nsMargin GetActualScrollbarSizes() const; nsMargin GetDesiredScrollbarSizes(nsBoxLayoutState* aState); PRBool IsLTR() const; PRBool IsScrollbarOnRight() const { return IsLTR(); } PRBool IsScrollbarOnRight() const; void LayoutScrollbars(nsBoxLayoutState& aState, const nsRect& aContentArea, const nsRect& aOldScrollArea, Loading
modules/libpref/src/init/all.js +7 −0 Original line number Diff line number Diff line Loading @@ -954,6 +954,13 @@ pref("layout.frames.force_resizability", false); // pref to report CSS errors to the error console pref("layout.css.report_errors", true); // pref for which side vertical scrollbars should be on // 0 = end-side in UI direction // 1 = end-side in document/content direction // 2 = right // 3 = left pref("layout.scrollbar.side", 0); // pref to permit users to make verified SOAP calls by default pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader", "allAccess"); Loading