Bug 1650099 - Unify UrlbarProviders logger boilerplate. r=adw

Differential Revision: https://phabricator.services.mozilla.com/D82939
This commit is contained in:
Marco Bonardo 2020-07-12 19:54:09 +00:00
parent dccd26f8a7
commit 595dcb2420
17 changed files with 72 additions and 101 deletions

View File

@ -289,6 +289,9 @@ pref("browser.urlbar.speculativeConnect.enabled", true);
// search for bookmarklets typing "javascript: " followed by the actual query. // search for bookmarklets typing "javascript: " followed by the actual query.
pref("browser.urlbar.filter.javascript", true); pref("browser.urlbar.filter.javascript", true);
// Enable a certain level of urlbar logging to the Browser Console. See Log.jsm.
pref("browser.urlbar.loglevel", "Error");
// the maximum number of results to show in autocomplete when doing richResults // the maximum number of results to show in autocomplete when doing richResults
pref("browser.urlbar.maxRichResults", 10); pref("browser.urlbar.maxRichResults", 10);

View File

@ -14,11 +14,11 @@ XPCOMUtils.defineLazyModuleGetters(this, {
clearTimeout: "resource://gre/modules/Timer.jsm", clearTimeout: "resource://gre/modules/Timer.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
setTimeout: "resource://gre/modules/Timer.jsm", setTimeout: "resource://gre/modules/Timer.jsm",
Log: "resource://gre/modules/Log.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () => XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.EventBufferer") UrlbarUtils.getLogger({ prefix: "EventBufferer" })
); );
// Maximum time events can be deferred for. // Maximum time events can be deferred for.

View File

@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm", UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
UrlbarMuxer: "resource:///modules/UrlbarUtils.jsm", UrlbarMuxer: "resource:///modules/UrlbarUtils.jsm",
@ -22,7 +21,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () => XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Muxer.UnifiedComplete") UrlbarUtils.getLogger({ prefix: "MuxerUnifiedComplete" })
); );
function groupFromResult(result) { function groupFromResult(result) {

View File

@ -286,6 +286,7 @@ class UrlbarProviderExtension extends UrlbarProvider {
name: "UrlbarProviderExtension notification timer", name: "UrlbarProviderExtension notification timer",
time: UrlbarProviderExtension.notificationTimeout, time: UrlbarProviderExtension.notificationTimeout,
reportErrorOnTimeout: true, reportErrorOnTimeout: true,
logger: this.logger,
}); });
result = await Promise.race([ result = await Promise.race([
timer.promise, timer.promise,

View File

@ -16,7 +16,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm", UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm", UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
@ -25,10 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.HeuristicFallback")
);
/** /**
* Class used to create the provider. * Class used to create the provider.
*/ */
@ -83,7 +78,6 @@ class ProviderHeuristicFallback extends UrlbarProvider {
* @returns {Promise} resolved when the query stops. * @returns {Promise} resolved when the query stops.
*/ */
async startQuery(queryContext, addCallback) { async startQuery(queryContext, addCallback) {
logger.info(`Starting query for ${queryContext.searchString}`);
let instance = {}; let instance = {};
this.queries.set(queryContext, instance); this.queries.set(queryContext, instance);
@ -131,7 +125,6 @@ class ProviderHeuristicFallback extends UrlbarProvider {
* @param {object} queryContext The query context object * @param {object} queryContext The query context object
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
} }

View File

@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
AppUpdater: "resource:///modules/AppUpdater.jsm", AppUpdater: "resource:///modules/AppUpdater.jsm",
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
Log: "resource://gre/modules/Log.jsm",
NLP: "resource://gre/modules/NLP.jsm", NLP: "resource://gre/modules/NLP.jsm",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
ResetProfile: "resource://gre/modules/ResetProfile.jsm", ResetProfile: "resource://gre/modules/ResetProfile.jsm",
@ -25,10 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.Interventions")
);
XPCOMUtils.defineLazyGetter(this, "appUpdater", () => new AppUpdater()); XPCOMUtils.defineLazyGetter(this, "appUpdater", () => new AppUpdater());
// The possible tips to show. These names (except NONE) are used in the names // The possible tips to show. These names (except NONE) are used in the names
@ -666,7 +661,6 @@ class ProviderInterventions extends UrlbarProvider {
* query for. * query for.
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
// If we're waiting for appUpdater to finish its update check, // If we're waiting for appUpdater to finish its update check,

View File

@ -15,7 +15,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
ExtensionSearchHandler: "resource://gre/modules/ExtensionSearchHandler.jsm", ExtensionSearchHandler: "resource://gre/modules/ExtensionSearchHandler.jsm",
SkippableTimer: "resource:///modules/UrlbarUtils.jsm", SkippableTimer: "resource:///modules/UrlbarUtils.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm", UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
@ -23,10 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.Omnibox")
);
// After this time, we'll give up waiting for the extension to return matches. // After this time, we'll give up waiting for the extension to return matches.
const MAXIMUM_ALLOWED_EXTENSION_TIME_MS = 3000; const MAXIMUM_ALLOWED_EXTENSION_TIME_MS = 3000;
@ -116,7 +111,6 @@ class ProviderOmnibox extends UrlbarProvider {
* The callback invoked by this method to add each result. * The callback invoked by this method to add each result.
*/ */
async startQuery(queryContext, addCallback) { async startQuery(queryContext, addCallback) {
logger.info(`Starting query for ${queryContext.searchString}`);
let instance = {}; let instance = {};
this.queries.set(queryContext, instance); this.queries.set(queryContext, instance);
@ -173,7 +167,7 @@ class ProviderOmnibox extends UrlbarProvider {
let timeoutPromise = new SkippableTimer({ let timeoutPromise = new SkippableTimer({
name: "ProviderOmnibox", name: "ProviderOmnibox",
time: MAXIMUM_ALLOWED_EXTENSION_TIME_MS, time: MAXIMUM_ALLOWED_EXTENSION_TIME_MS,
logger, logger: this.logger,
}).promise; }).promise;
await Promise.race([timeoutPromise, this._resultsPromise]).catch( await Promise.race([timeoutPromise, this._resultsPromise]).catch(
Cu.reportError Cu.reportError

View File

@ -15,7 +15,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm", PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm", UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
UrlbarProvidersManager: "resource:///modules/UrlbarProvidersManager.jsm", UrlbarProvidersManager: "resource:///modules/UrlbarProvidersManager.jsm",
@ -23,10 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.OpenTabs")
);
/** /**
* Class used to create the provider. * Class used to create the provider.
*/ */
@ -156,7 +151,6 @@ class ProviderOpenTabs extends UrlbarProvider {
// temp table to return proper frecency. // temp table to return proper frecency.
// TODO: // TODO:
// * properly search and handle tokens, this is just a mock for now. // * properly search and handle tokens, this is just a mock for now.
logger.info(`Starting query for ${queryContext.searchString}`);
let instance = {}; let instance = {};
this.queries.set(queryContext, instance); this.queries.set(queryContext, instance);
let conn = await this.promiseDb(); let conn = await this.promiseDb();
@ -193,7 +187,6 @@ class ProviderOpenTabs extends UrlbarProvider {
* @param {object} queryContext The query context object * @param {object} queryContext The query context object
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
} }
} }

View File

@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
SkippableTimer: "resource:///modules/UrlbarUtils.jsm", SkippableTimer: "resource:///modules/UrlbarUtils.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm", UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
@ -23,10 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.PrivateSearch")
);
XPCOMUtils.defineLazyPreferenceGetter( XPCOMUtils.defineLazyPreferenceGetter(
this, this,
"separatePrivateDefaultUIEnabled", "separatePrivateDefaultUIEnabled",
@ -92,8 +87,6 @@ class ProviderPrivateSearch extends UrlbarProvider {
* @returns {Promise} resolved when the query stops. * @returns {Promise} resolved when the query stops.
*/ */
async startQuery(queryContext, addCallback) { async startQuery(queryContext, addCallback) {
logger.info(`Starting query for ${queryContext.searchString}`);
let searchString = queryContext.searchString.trim(); let searchString = queryContext.searchString.trim();
if ( if (
queryContext.tokens.some( queryContext.tokens.some(
@ -119,7 +112,7 @@ class ProviderPrivateSearch extends UrlbarProvider {
: await Services.search.getDefaultPrivate(); : await Services.search.getDefaultPrivate();
let isPrivateEngine = let isPrivateEngine =
separatePrivateDefault && engine != (await Services.search.getDefault()); separatePrivateDefault && engine != (await Services.search.getDefault());
logger.info(`isPrivateEngine: ${isPrivateEngine}`); this.logger.info(`isPrivateEngine: ${isPrivateEngine}`);
// This is a delay added before returning results, to avoid flicker. // This is a delay added before returning results, to avoid flicker.
// Our result must appear only when all results are searches, but if search // Our result must appear only when all results are searches, but if search
@ -128,7 +121,7 @@ class ProviderPrivateSearch extends UrlbarProvider {
await new SkippableTimer({ await new SkippableTimer({
name: "ProviderPrivateSearch", name: "ProviderPrivateSearch",
time: 100, time: 100,
logger, logger: this.logger,
}).promise; }).promise;
let result = new UrlbarResult( let result = new UrlbarResult(
@ -152,7 +145,6 @@ class ProviderPrivateSearch extends UrlbarProvider {
* @param {object} queryContext The query context object * @param {object} queryContext The query context object
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
} }
} }

View File

@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
SearchSuggestionController: SearchSuggestionController:
"resource://gre/modules/SearchSuggestionController.jsm", "resource://gre/modules/SearchSuggestionController.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
@ -27,10 +26,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.SearchSuggestions")
);
/** /**
* Returns whether the passed in string looks like a url. * Returns whether the passed in string looks like a url.
* @param {string} str * @param {string} str
@ -215,7 +210,6 @@ class ProviderSearchSuggestions extends UrlbarProvider {
* @returns {Promise} resolved when the query stops. * @returns {Promise} resolved when the query stops.
*/ */
async startQuery(queryContext, addCallback) { async startQuery(queryContext, addCallback) {
logger.info(`Starting query for ${queryContext.searchString}`);
let instance = {}; let instance = {};
this.queries.set(queryContext, instance); this.queries.set(queryContext, instance);
@ -327,8 +321,6 @@ class ProviderSearchSuggestions extends UrlbarProvider {
* @param {object} queryContext The query context object * @param {object} queryContext The query context object
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
if (this._suggestionsController) { if (this._suggestionsController) {
this._suggestionsController.stop(); this._suggestionsController.stop();
this._suggestionsController = null; this._suggestionsController = null;
@ -434,7 +426,7 @@ class ProviderSearchSuggestions extends UrlbarProvider {
let tailTimer = new SkippableTimer({ let tailTimer = new SkippableTimer({
name: "ProviderSearchSuggestions", name: "ProviderSearchSuggestions",
time: 100, time: 100,
logger, logger: this.logger,
}); });
for (let entry of fetchData.remote) { for (let entry of fetchData.remote) {

View File

@ -19,7 +19,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm", AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
DefaultBrowserCheck: "resource:///modules/BrowserGlue.jsm", DefaultBrowserCheck: "resource:///modules/BrowserGlue.jsm",
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
Log: "resource://gre/modules/Log.jsm",
ProfileAge: "resource://gre/modules/ProfileAge.jsm", ProfileAge: "resource://gre/modules/ProfileAge.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
setTimeout: "resource://gre/modules/Timer.jsm", setTimeout: "resource://gre/modules/Timer.jsm",
@ -30,10 +29,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.SearchTips")
);
XPCOMUtils.defineLazyServiceGetter( XPCOMUtils.defineLazyServiceGetter(
this, this,
"updateManager", "updateManager",
@ -230,7 +225,6 @@ class ProviderSearchTips extends UrlbarProvider {
* query for. * query for.
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
} }

View File

@ -14,17 +14,12 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm", UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
UrlbarResult: "resource:///modules/UrlbarResult.jsm", UrlbarResult: "resource:///modules/UrlbarResult.jsm",
UrlbarSearchUtils: "resource:///modules/UrlbarSearchUtils.jsm", UrlbarSearchUtils: "resource:///modules/UrlbarSearchUtils.jsm",
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm", UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.TokenAliasEngines")
);
/** /**
* Class used to create the provider. * Class used to create the provider.
*/ */
@ -80,7 +75,6 @@ class ProviderTokenAliasEngines extends UrlbarProvider {
* result. * result.
*/ */
async startQuery(queryContext, addCallback) { async startQuery(queryContext, addCallback) {
logger.info(`Starting query for ${queryContext.searchString}`);
let instance = {}; let instance = {};
this.queries.set(queryContext, instance); this.queries.set(queryContext, instance);
@ -127,7 +121,6 @@ class ProviderTokenAliasEngines extends UrlbarProvider {
* @param {object} queryContext The query context object * @param {object} queryContext The query context object
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
} }
} }

View File

@ -12,7 +12,6 @@ const { XPCOMUtils } = ChromeUtils.import(
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
AboutNewTab: "resource:///modules/AboutNewTab.jsm", AboutNewTab: "resource:///modules/AboutNewTab.jsm",
Log: "resource://gre/modules/Log.jsm",
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm", PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm", UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
@ -25,10 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
TOP_SITES_DEFAULT_ROWS: "resource://activity-stream/common/Reducers.jsm", TOP_SITES_DEFAULT_ROWS: "resource://activity-stream/common/Reducers.jsm",
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.TopSites")
);
/** /**
* This module exports a provider returning the user's newtab Top Sites. * This module exports a provider returning the user's newtab Top Sites.
*/ */
@ -247,7 +242,6 @@ class ProviderTopSites extends UrlbarProvider {
* query for. * query for.
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
this.queries.delete(queryContext); this.queries.delete(queryContext);
} }
} }

View File

@ -16,7 +16,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm", PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
Services: "resource://gre/modules/Services.jsm", Services: "resource://gre/modules/Services.jsm",
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm", UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
@ -31,10 +30,6 @@ XPCOMUtils.defineLazyServiceGetter(
"nsIAutoCompleteSearch" "nsIAutoCompleteSearch"
); );
XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Provider.UnifiedComplete")
);
/** /**
* Class used to create the provider. * Class used to create the provider.
*/ */
@ -80,7 +75,6 @@ class ProviderUnifiedComplete extends UrlbarProvider {
* @returns {Promise} resolved when the query stops. * @returns {Promise} resolved when the query stops.
*/ */
async startQuery(queryContext, addCallback) { async startQuery(queryContext, addCallback) {
logger.info(`Starting query for ${queryContext.searchString}`);
let instance = {}; let instance = {};
this.queries.set(queryContext, instance); this.queries.set(queryContext, instance);
let urls = new Set(); let urls = new Set();
@ -111,7 +105,6 @@ class ProviderUnifiedComplete extends UrlbarProvider {
* @param {object} queryContext The query context object * @param {object} queryContext The query context object
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Canceling query for ${queryContext.searchString}`);
// This doesn't properly support being used concurrently by multiple fields. // This doesn't properly support being used concurrently by multiple fields.
this.queries.delete(queryContext); this.queries.delete(queryContext);
unifiedComplete.stopSearch(); unifiedComplete.stopSearch();

View File

@ -15,7 +15,6 @@ const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
Log: "resource://gre/modules/Log.jsm",
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm", PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
SkippableTimer: "resource:///modules/UrlbarUtils.jsm", SkippableTimer: "resource:///modules/UrlbarUtils.jsm",
UrlbarMuxer: "resource:///modules/UrlbarUtils.jsm", UrlbarMuxer: "resource:///modules/UrlbarUtils.jsm",
@ -27,7 +26,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
}); });
XPCOMUtils.defineLazyGetter(this, "logger", () => XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.ProvidersManager") UrlbarUtils.getLogger({ prefix: "ProvidersManager" })
); );
// List of available local providers, each is implemented in its own jsm module // List of available local providers, each is implemented in its own jsm module
@ -234,7 +233,7 @@ class ProvidersManager {
* @param {object} queryContext * @param {object} queryContext
*/ */
cancelQuery(queryContext) { cancelQuery(queryContext) {
logger.info(`Query cancel ${queryContext.searchString}`); logger.info(`Query cancel "${queryContext.searchString}"`);
let query = this.queries.get(queryContext); let query = this.queries.get(queryContext);
if (!query) { if (!query) {
throw new Error("Couldn't find a matching query for the given context"); throw new Error("Couldn't find a matching query for the given context");
@ -363,13 +362,21 @@ class Query {
} }
// Start querying active providers. // Start querying active providers.
let queryPromises = []; let queryPromises = [];
let startQuery = provider => {
provider.logger.info(`Starting query for "${this.context.searchString}"`);
return provider.tryMethod(
"startQuery",
this.context,
this.add.bind(this)
);
};
for (let provider of activeProviders) { for (let provider of activeProviders) {
if (provider.type == UrlbarUtils.PROVIDER_TYPE.HEURISTIC) { if (provider.type == UrlbarUtils.PROVIDER_TYPE.HEURISTIC) {
this.context.pendingHeuristicProviders.add(provider.name); this.context.pendingHeuristicProviders.add(provider.name);
queryPromises.push( queryPromises.push(startQuery(provider));
provider.tryMethod("startQuery", this.context, this.add.bind(this))
);
continue; continue;
} }
if (!this._sleepTimer) { if (!this._sleepTimer) {
@ -379,20 +386,13 @@ class Query {
this._sleepTimer = new SkippableTimer({ this._sleepTimer = new SkippableTimer({
name: "Query provider timer", name: "Query provider timer",
time: UrlbarPrefs.get("delay"), time: UrlbarPrefs.get("delay"),
logger, logger: provider.logger,
}); });
} }
queryPromises.push( queryPromises.push(
this._sleepTimer.promise.then(() => { this._sleepTimer.promise.then(() =>
if (this.canceled) { this.canceled ? undefined : startQuery(provider)
return undefined; )
}
return provider.tryMethod(
"startQuery",
this.context,
this.add.bind(this)
);
})
); );
} }
@ -418,6 +418,9 @@ class Query {
} }
this.canceled = true; this.canceled = true;
for (let provider of this.providers) { for (let provider of this.providers) {
provider.logger.info(
`Canceling query for "${this.context.searchString}"`
);
provider.tryMethod("cancelQuery", this.context); provider.tryMethod("cancelQuery", this.context);
} }
if (this._chunkTimer) { if (this._chunkTimer) {
@ -518,7 +521,7 @@ class Query {
name: "Heuristic provider timer", name: "Heuristic provider timer",
callback: () => this._notifyResults(), callback: () => this._notifyResults(),
time: CHUNK_RESULTS_DELAY_MS, time: CHUNK_RESULTS_DELAY_MS,
logger, logger: provider.logger,
}); });
} }
} else if (!this._chunkTimer) { } else if (!this._chunkTimer) {
@ -526,7 +529,7 @@ class Query {
name: "Query chunk timer", name: "Query chunk timer",
callback: () => this._notifyResults(), callback: () => this._notifyResults(),
time: CHUNK_RESULTS_DELAY_MS, time: CHUNK_RESULTS_DELAY_MS,
logger, logger: provider.logger,
}); });
} }
// If all active heuristic providers have returned results, we can skip the // If all active heuristic providers have returned results, we can skip the
@ -570,13 +573,13 @@ class Query {
// Crop results to the requested number, taking their result spans into // Crop results to the requested number, taking their result spans into
// account. // account.
logger.debug(
`Cropping ${this.context.results.length} results to ${this.context.maxResults}`
);
let resultCount = this.context.maxResults; let resultCount = this.context.maxResults;
for (let i = 0; i < this.context.results.length; i++) { for (let i = 0; i < this.context.results.length; i++) {
resultCount -= UrlbarUtils.getSpanForResult(this.context.results[i]); resultCount -= UrlbarUtils.getSpanForResult(this.context.results[i]);
if (resultCount < 0) { if (resultCount < 0) {
logger.debug(
`Splicing results from ${i} to crop results to ${this.context.maxResults}`
);
this.context.results.splice(i, this.context.results.length - i); this.context.results.splice(i, this.context.results.length - i);
break; break;
} }

View File

@ -15,11 +15,13 @@ var EXPORTED_SYMBOLS = ["UrlbarTokenizer"];
const { XPCOMUtils } = ChromeUtils.import( const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm" "resource://gre/modules/XPCOMUtils.jsm"
); );
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); XPCOMUtils.defineLazyModuleGetters(this, {
Services: "resource://gre/modules/Services.jsm",
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
});
ChromeUtils.defineModuleGetter(this, "Log", "resource://gre/modules/Log.jsm");
XPCOMUtils.defineLazyGetter(this, "logger", () => XPCOMUtils.defineLazyGetter(this, "logger", () =>
Log.repository.getLogger("Urlbar.Tokenizer") UrlbarUtils.getLogger({ prefix: "Tokenizer" })
); );
var UrlbarTokenizer = { var UrlbarTokenizer = {

View File

@ -23,6 +23,7 @@ const { XPCOMUtils } = ChromeUtils.import(
XPCOMUtils.defineLazyModuleGetters(this, { XPCOMUtils.defineLazyModuleGetters(this, {
BrowserUtils: "resource://gre/modules/BrowserUtils.jsm", BrowserUtils: "resource://gre/modules/BrowserUtils.jsm",
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
Log: "resource://gre/modules/Log.jsm",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
PlacesUIUtils: "resource:///modules/PlacesUIUtils.jsm", PlacesUIUtils: "resource:///modules/PlacesUIUtils.jsm",
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm", PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
@ -659,6 +660,30 @@ var UrlbarUtils = {
} }
return context.heuristicResult; return context.heuristicResult;
}, },
/**
* Creates a logger.
* Logging level can be controlled through browser.urlbar.loglevel.
* @param {string} [prefix] Prefix to use for the logged messages, "::" will
* be appended automatically to the prefix.
* @returns {object} The logger.
*/
getLogger({ prefix = "" } = {}) {
if (!this._logger) {
this._logger = Log.repository.getLogger("urlbar");
this._logger.manageLevelFromPref("browser.urlbar.loglevel");
this._logger.addAppender(
new Log.ConsoleAppender(new Log.BasicFormatter())
);
}
if (prefix) {
// This is not an early return because it is necessary to invoke getLogger
// at least once before getLoggerWithMessagePrefix; it replaces a
// method of the original logger, rather than using an actual Proxy.
return Log.repository.getLoggerWithMessagePrefix("urlbar", prefix + "::");
}
return this._logger;
},
}; };
XPCOMUtils.defineLazyGetter(UrlbarUtils.ICON, "DEFAULT", () => { XPCOMUtils.defineLazyGetter(UrlbarUtils.ICON, "DEFAULT", () => {
@ -1100,6 +1125,12 @@ class UrlbarMuxer {
* The provider scope is to query a datasource and return results from it. * The provider scope is to query a datasource and return results from it.
*/ */
class UrlbarProvider { class UrlbarProvider {
constructor() {
XPCOMUtils.defineLazyGetter(this, "logger", () =>
UrlbarUtils.getLogger({ prefix: `Provider.${this.name}` })
);
}
/** /**
* Unique name for the provider, used by the context to filter on providers. * Unique name for the provider, used by the context to filter on providers.
* Not using a unique name will cause the newest registration to win. * Not using a unique name will cause the newest registration to win.