From 9d8f7a0477146b185d76c1ff0a36a4b0e61267c4 Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Fri, 13 Jul 2012 11:26:20 +0900 Subject: [PATCH] Bug 772327 - Password mask timer is too short on Android. r=blassy --- editor/libeditor/text/nsTextEditRules.cpp | 3 ++- widget/LookAndFeel.h | 6 ++++++ widget/android/nsLookAndFeel.cpp | 7 +++++++ widget/android/nsLookAndFeel.h | 1 + widget/xpwidgets/nsXPLookAndFeel.cpp | 7 +++++++ widget/xpwidgets/nsXPLookAndFeel.h | 5 +++++ 6 files changed, 28 insertions(+), 1 deletion(-) diff --git a/editor/libeditor/text/nsTextEditRules.cpp b/editor/libeditor/text/nsTextEditRules.cpp index eb7bdbd1fce4..4861d3a4b6a4 100644 --- a/editor/libeditor/text/nsTextEditRules.cpp +++ b/editor/libeditor/text/nsTextEditRules.cpp @@ -648,7 +648,8 @@ nsTextEditRules::WillInsertText(nsEditor::OperationID aAction, mTimer = do_CreateInstance("@mozilla.org/timer;1", &res); NS_ENSURE_SUCCESS(res, res); } - mTimer->InitWithCallback(this, 600, nsITimer::TYPE_ONE_SHOT); + mTimer->InitWithCallback(this, LookAndFeel::GetPasswordMaskDelay(), + nsITimer::TYPE_ONE_SHOT); } else { diff --git a/widget/LookAndFeel.h b/widget/LookAndFeel.h index 02bfd5b10fbd..5668d9cde130 100644 --- a/widget/LookAndFeel.h +++ b/widget/LookAndFeel.h @@ -505,6 +505,12 @@ public: */ static bool GetEchoPassword(); + /** + * The millisecond to mask password value. + * This value is only valid when GetEchoPassword() returns true. + */ + static PRUint32 GetPasswordMaskDelay(); + /** * When system look and feel is changed, Refresh() must be called. Then, * cached data would be released. diff --git a/widget/android/nsLookAndFeel.cpp b/widget/android/nsLookAndFeel.cpp index bf0a36f40497..4248f1951dab 100644 --- a/widget/android/nsLookAndFeel.cpp +++ b/widget/android/nsLookAndFeel.cpp @@ -472,3 +472,10 @@ nsLookAndFeel::GetEchoPasswordImpl() } return mShowPassword; } + +PRUint32 +nsLookAndFeel::GetPasswordMaskDelayImpl() +{ + // This value is hard-coded in PasswordTransformationMethod.java + return 1500; +} diff --git a/widget/android/nsLookAndFeel.h b/widget/android/nsLookAndFeel.h index 2ea84ecd6fbe..e8714ad35e37 100644 --- a/widget/android/nsLookAndFeel.h +++ b/widget/android/nsLookAndFeel.h @@ -19,6 +19,7 @@ public: virtual nsresult GetFloatImpl(FloatID aID, float &aResult); virtual bool GetFontImpl(FontID aID, nsString& aName, gfxFontStyle& aStyle); virtual bool GetEchoPasswordImpl(); + virtual PRUint32 GetPasswordMaskDelayImpl(); protected: static bool mInitializedSystemColors; diff --git a/widget/xpwidgets/nsXPLookAndFeel.cpp b/widget/xpwidgets/nsXPLookAndFeel.cpp index 1795c713787b..026002c2642d 100644 --- a/widget/xpwidgets/nsXPLookAndFeel.cpp +++ b/widget/xpwidgets/nsXPLookAndFeel.cpp @@ -728,6 +728,13 @@ LookAndFeel::GetEchoPassword() return nsLookAndFeel::GetInstance()->GetEchoPasswordImpl(); } +// static +PRUint32 +LookAndFeel::GetPasswordMaskDelay() +{ + return nsLookAndFeel::GetInstance()->GetPasswordMaskDelayImpl(); +} + // static void LookAndFeel::Refresh() diff --git a/widget/xpwidgets/nsXPLookAndFeel.h b/widget/xpwidgets/nsXPLookAndFeel.h index 33c85f6f0618..a78cf618e061 100644 --- a/widget/xpwidgets/nsXPLookAndFeel.h +++ b/widget/xpwidgets/nsXPLookAndFeel.h @@ -73,6 +73,11 @@ public: return false; } + virtual PRUint32 GetPasswordMaskDelayImpl() + { + return 600; + } + protected: nsXPLookAndFeel();