Index: third_party/WebKit/Source/web/ChromeClientImpl.cpp |
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.cpp b/third_party/WebKit/Source/web/ChromeClientImpl.cpp |
index cb3e93d7e04f494913bb57c2e5a3d389e5b991fa..5488a951af657152cd3f6241aaf0d61bd38b3f31 100644 |
--- a/third_party/WebKit/Source/web/ChromeClientImpl.cpp |
+++ b/third_party/WebKit/Source/web/ChromeClientImpl.cpp |
@@ -122,6 +122,7 @@ static WebAXEvent toWebAXEvent(AXObjectCache::AXNotification notification) |
ChromeClientImpl::ChromeClientImpl(WebViewImpl* webView) |
: m_webView(webView) |
, m_cursorOverridden(false) |
+ , m_didRequestNonEmptyToolTip(false) |
{ |
} |
@@ -576,8 +577,17 @@ void ChromeClientImpl::showMouseOverURL(const HitTestResult& result) |
void ChromeClientImpl::setToolTip(const String& tooltipText, TextDirection dir) |
{ |
- if (m_webView->client()) |
+ if (!m_webView->client()) |
+ return; |
+ if (!tooltipText.isEmpty()) { |
m_webView->client()->setToolTipText(tooltipText, toWebTextDirection(dir)); |
+ m_didRequestNonEmptyToolTip = true; |
+ } else if (m_didRequestNonEmptyToolTip) { |
+ // WebViewClient::setToolTipText will send an IPC message. We'd like to |
+ // reduce the number of setToolTipText calls. |
+ m_webView->client()->setToolTipText(tooltipText, toWebTextDirection(dir)); |
+ m_didRequestNonEmptyToolTip = false; |
+ } |
} |
void ChromeClientImpl::dispatchViewportPropertiesDidChange(const ViewportDescription& description) const |