Bug 1463908 - Lazily instatiate the tooltip text provider. r=bz

MozReview-Commit-ID: Jj0BPiMOywc
This commit is contained in:
Felipe Gomes
2018-05-30 19:57:59 -03:00
parent f109197fd6
commit 291b84ff65
2 changed files with 17 additions and 7 deletions

View File

@@ -1043,16 +1043,25 @@ ChromeTooltipListener::ChromeTooltipListener(nsWebBrowser* aInBrowser,
, mShowingTooltip(false)
, mTooltipShownOnce(false)
{
mTooltipTextProvider = do_GetService(NS_TOOLTIPTEXTPROVIDER_CONTRACTID);
if (!mTooltipTextProvider) {
mTooltipTextProvider = do_GetService(NS_DEFAULTTOOLTIPTEXTPROVIDER_CONTRACTID);
}
}
ChromeTooltipListener::~ChromeTooltipListener()
{
}
nsITooltipTextProvider*
ChromeTooltipListener::GetTooltipTextProvider() {
if (!mTooltipTextProvider) {
mTooltipTextProvider = do_GetService(NS_TOOLTIPTEXTPROVIDER_CONTRACTID);
}
if (!mTooltipTextProvider) {
mTooltipTextProvider = do_GetService(NS_DEFAULTTOOLTIPTEXTPROVIDER_CONTRACTID);
}
return mTooltipTextProvider;
}
// Hook up things to the chrome like context menus and tooltips, if the chrome
// has implemented the right interfaces.
NS_IMETHODIMP
@@ -1342,12 +1351,12 @@ ChromeTooltipListener::sTooltipCallback(nsITimer* aTimer,
// if there is text associated with the node, show the tip and fire
// off a timer to auto-hide it.
if (self->mTooltipTextProvider) {
nsITooltipTextProvider* tooltipProvider = self->GetTooltipTextProvider();
if (tooltipProvider) {
nsString tooltipText;
nsString directionText;
bool textFound = false;
self->mTooltipTextProvider->GetNodeText(
tooltipProvider->GetNodeText(
self->mPossibleTooltipNode, getter_Copies(tooltipText),
getter_Copies(directionText), &textFound);