Index: third_party/WebKit/Source/core/page/ChromeClient.cpp |
diff --git a/third_party/WebKit/Source/core/page/ChromeClient.cpp b/third_party/WebKit/Source/core/page/ChromeClient.cpp |
index ac605312b7dd7d5df7401adf1fe9ecdd92d03755..89c71fea82d11e0100527ddc253ea19e0e147ace 100644 |
--- a/third_party/WebKit/Source/core/page/ChromeClient.cpp |
+++ b/third_party/WebKit/Source/core/page/ChromeClient.cpp |
@@ -167,9 +167,20 @@ void ChromeClient::setToolTip(const HitTestResult& result) |
} |
} |
+ if (m_lastToolTipPoint == result.hitTestLocation().point() && m_lastToolTipText == toolTip) |
+ return; |
+ m_lastToolTipPoint = result.hitTestLocation().point(); |
+ m_lastToolTipText = toolTip; |
setToolTip(toolTip, toolTipDirection); |
} |
+void ChromeClient::clearToolTip() |
+{ |
+ // Do not check m_lastToolTip* and do not update them intentionally. |
+ // We don't want to show tooltips with same content after clearToolTip(). |
+ setToolTip(String(), LTR); |
+} |
+ |
void ChromeClient::print(LocalFrame* frame) |
{ |
// Defer loads in case the client method runs a new event loop that would |