| Index: src/webkit/port/rendering/RenderThemeWin.cpp
|
| diff --git a/src/webkit/port/rendering/RenderThemeWin.cpp b/src/webkit/port/rendering/RenderThemeWin.cpp
|
| index a740c9e247ab705a50a707a3de89d25a84b88c27..f7b47f0ae471838b933c0e5b533140bf4d2b403a 100644
|
| --- a/src/webkit/port/rendering/RenderThemeWin.cpp
|
| +++ b/src/webkit/port/rendering/RenderThemeWin.cpp
|
| @@ -182,6 +182,15 @@ static void setSizeIfAuto(RenderStyle* style, const IntSize& size)
|
| style->setHeight(Length(size.height(), Fixed));
|
| }
|
|
|
| +static double querySystemBlinkInterval(double defaultInterval) {
|
| + UINT blinkTime = ::GetCaretBlinkTime();
|
| + if (blinkTime == 0)
|
| + return defaultInterval;
|
| + if (blinkTime == INFINITE)
|
| + return 0;
|
| + return blinkTime / 1000.0;
|
| +}
|
| +
|
| // Implement WebCore::theme() for getting the global RenderTheme.
|
| RenderTheme* theme()
|
| {
|
| @@ -243,8 +252,9 @@ double RenderThemeWin::caretBlinkFrequency() const
|
| if (ChromiumBridge::layoutTestMode())
|
| return 0;
|
|
|
| - // TODO(ericroman): this should be using the platform's blink frequency.
|
| - return RenderTheme::caretBlinkFrequency();
|
| + // This involves a system call, so we cache the result.
|
| + static double blinkInterval = querySystemBlinkInterval(RenderTheme::caretBlinkFrequency());
|
| + return blinkInterval;
|
| }
|
|
|
| void RenderThemeWin::systemFont(int propId, Document* document, FontDescription& fontDescription) const
|
|
|