зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1650099 - Unify UrlbarProviders logger boilerplate. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D82939
This commit is contained in:
Родитель
64b33a1eaa
Коммит
efd2be2d06
|
@ -289,6 +289,9 @@ pref("browser.urlbar.speculativeConnect.enabled", true);
|
|||
// search for bookmarklets typing "javascript: " followed by the actual query.
|
||||
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
|
||||
pref("browser.urlbar.maxRichResults", 10);
|
||||
|
||||
|
|
|
@ -14,11 +14,11 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
clearTimeout: "resource://gre/modules/Timer.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
setTimeout: "resource://gre/modules/Timer.jsm",
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.EventBufferer")
|
||||
UrlbarUtils.getLogger({ prefix: "EventBufferer" })
|
||||
);
|
||||
|
||||
// Maximum time events can be deferred for.
|
||||
|
|
|
@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
|
||||
UrlbarMuxer: "resource:///modules/UrlbarUtils.jsm",
|
||||
|
@ -22,7 +21,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Muxer.UnifiedComplete")
|
||||
UrlbarUtils.getLogger({ prefix: "MuxerUnifiedComplete" })
|
||||
);
|
||||
|
||||
function groupFromResult(result) {
|
||||
|
|
|
@ -286,6 +286,7 @@ class UrlbarProviderExtension extends UrlbarProvider {
|
|||
name: "UrlbarProviderExtension notification timer",
|
||||
time: UrlbarProviderExtension.notificationTimeout,
|
||||
reportErrorOnTimeout: true,
|
||||
logger: this.logger,
|
||||
});
|
||||
result = await Promise.race([
|
||||
timer.promise,
|
||||
|
|
|
@ -16,7 +16,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
|
||||
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
|
||||
|
@ -25,10 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.HeuristicFallback")
|
||||
);
|
||||
|
||||
/**
|
||||
* Class used to create the provider.
|
||||
*/
|
||||
|
@ -83,7 +78,6 @@ class ProviderHeuristicFallback extends UrlbarProvider {
|
|||
* @returns {Promise} resolved when the query stops.
|
||||
*/
|
||||
async startQuery(queryContext, addCallback) {
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
let instance = {};
|
||||
this.queries.set(queryContext, instance);
|
||||
|
||||
|
@ -131,7 +125,6 @@ class ProviderHeuristicFallback extends UrlbarProvider {
|
|||
* @param {object} queryContext The query context object
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
AppUpdater: "resource:///modules/AppUpdater.jsm",
|
||||
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
NLP: "resource://gre/modules/NLP.jsm",
|
||||
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
|
||||
ResetProfile: "resource://gre/modules/ResetProfile.jsm",
|
||||
|
@ -25,10 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.Interventions")
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "appUpdater", () => new AppUpdater());
|
||||
|
||||
// The possible tips to show. These names (except NONE) are used in the names
|
||||
|
@ -666,7 +661,6 @@ class ProviderInterventions extends UrlbarProvider {
|
|||
* query for.
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
|
||||
// If we're waiting for appUpdater to finish its update check,
|
||||
|
|
|
@ -15,7 +15,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
ExtensionSearchHandler: "resource://gre/modules/ExtensionSearchHandler.jsm",
|
||||
SkippableTimer: "resource:///modules/UrlbarUtils.jsm",
|
||||
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
|
||||
|
@ -23,10 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
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.
|
||||
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.
|
||||
*/
|
||||
async startQuery(queryContext, addCallback) {
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
let instance = {};
|
||||
this.queries.set(queryContext, instance);
|
||||
|
||||
|
@ -173,7 +167,7 @@ class ProviderOmnibox extends UrlbarProvider {
|
|||
let timeoutPromise = new SkippableTimer({
|
||||
name: "ProviderOmnibox",
|
||||
time: MAXIMUM_ALLOWED_EXTENSION_TIME_MS,
|
||||
logger,
|
||||
logger: this.logger,
|
||||
}).promise;
|
||||
await Promise.race([timeoutPromise, this._resultsPromise]).catch(
|
||||
Cu.reportError
|
||||
|
|
|
@ -15,7 +15,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
|
||||
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
|
||||
UrlbarProvidersManager: "resource:///modules/UrlbarProvidersManager.jsm",
|
||||
|
@ -23,10 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.OpenTabs")
|
||||
);
|
||||
|
||||
/**
|
||||
* Class used to create the provider.
|
||||
*/
|
||||
|
@ -156,7 +151,6 @@ class ProviderOpenTabs extends UrlbarProvider {
|
|||
// temp table to return proper frecency.
|
||||
// TODO:
|
||||
// * properly search and handle tokens, this is just a mock for now.
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
let instance = {};
|
||||
this.queries.set(queryContext, instance);
|
||||
let conn = await this.promiseDb();
|
||||
|
@ -193,7 +187,6 @@ class ProviderOpenTabs extends UrlbarProvider {
|
|||
* @param {object} queryContext The query context object
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
SkippableTimer: "resource:///modules/UrlbarUtils.jsm",
|
||||
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
|
||||
|
@ -23,10 +22,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.PrivateSearch")
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyPreferenceGetter(
|
||||
this,
|
||||
"separatePrivateDefaultUIEnabled",
|
||||
|
@ -92,8 +87,6 @@ class ProviderPrivateSearch extends UrlbarProvider {
|
|||
* @returns {Promise} resolved when the query stops.
|
||||
*/
|
||||
async startQuery(queryContext, addCallback) {
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
|
||||
let searchString = queryContext.searchString.trim();
|
||||
if (
|
||||
queryContext.tokens.some(
|
||||
|
@ -119,7 +112,7 @@ class ProviderPrivateSearch extends UrlbarProvider {
|
|||
: await Services.search.getDefaultPrivate();
|
||||
let isPrivateEngine =
|
||||
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.
|
||||
// Our result must appear only when all results are searches, but if search
|
||||
|
@ -128,7 +121,7 @@ class ProviderPrivateSearch extends UrlbarProvider {
|
|||
await new SkippableTimer({
|
||||
name: "ProviderPrivateSearch",
|
||||
time: 100,
|
||||
logger,
|
||||
logger: this.logger,
|
||||
}).promise;
|
||||
|
||||
let result = new UrlbarResult(
|
||||
|
@ -152,7 +145,6 @@ class ProviderPrivateSearch extends UrlbarProvider {
|
|||
* @param {object} queryContext The query context object
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
SearchSuggestionController:
|
||||
"resource://gre/modules/SearchSuggestionController.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
|
@ -27,10 +26,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
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.
|
||||
* @param {string} str
|
||||
|
@ -215,7 +210,6 @@ class ProviderSearchSuggestions extends UrlbarProvider {
|
|||
* @returns {Promise} resolved when the query stops.
|
||||
*/
|
||||
async startQuery(queryContext, addCallback) {
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
let instance = {};
|
||||
this.queries.set(queryContext, instance);
|
||||
|
||||
|
@ -327,8 +321,6 @@ class ProviderSearchSuggestions extends UrlbarProvider {
|
|||
* @param {object} queryContext The query context object
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
|
||||
if (this._suggestionsController) {
|
||||
this._suggestionsController.stop();
|
||||
this._suggestionsController = null;
|
||||
|
@ -434,7 +426,7 @@ class ProviderSearchSuggestions extends UrlbarProvider {
|
|||
let tailTimer = new SkippableTimer({
|
||||
name: "ProviderSearchSuggestions",
|
||||
time: 100,
|
||||
logger,
|
||||
logger: this.logger,
|
||||
});
|
||||
|
||||
for (let entry of fetchData.remote) {
|
||||
|
|
|
@ -19,7 +19,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
|
||||
DefaultBrowserCheck: "resource:///modules/BrowserGlue.jsm",
|
||||
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
ProfileAge: "resource://gre/modules/ProfileAge.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
setTimeout: "resource://gre/modules/Timer.jsm",
|
||||
|
@ -30,10 +29,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.SearchTips")
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyServiceGetter(
|
||||
this,
|
||||
"updateManager",
|
||||
|
@ -230,7 +225,6 @@ class ProviderSearchTips extends UrlbarProvider {
|
|||
* query for.
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,17 +14,12 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
|
||||
UrlbarResult: "resource:///modules/UrlbarResult.jsm",
|
||||
UrlbarSearchUtils: "resource:///modules/UrlbarSearchUtils.jsm",
|
||||
UrlbarUtils: "resource:///modules/UrlbarUtils.jsm",
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.TokenAliasEngines")
|
||||
);
|
||||
|
||||
/**
|
||||
* Class used to create the provider.
|
||||
*/
|
||||
|
@ -80,7 +75,6 @@ class ProviderTokenAliasEngines extends UrlbarProvider {
|
|||
* result.
|
||||
*/
|
||||
async startQuery(queryContext, addCallback) {
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
let instance = {};
|
||||
this.queries.set(queryContext, instance);
|
||||
|
||||
|
@ -127,7 +121,6 @@ class ProviderTokenAliasEngines extends UrlbarProvider {
|
|||
* @param {object} queryContext The query context object
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
AboutNewTab: "resource:///modules/AboutNewTab.jsm",
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
|
||||
|
@ -25,10 +24,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
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.
|
||||
*/
|
||||
|
@ -247,7 +242,6 @@ class ProviderTopSites extends UrlbarProvider {
|
|||
* query for.
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
this.queries.delete(queryContext);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
|
||||
Services: "resource://gre/modules/Services.jsm",
|
||||
UrlbarProvider: "resource:///modules/UrlbarUtils.jsm",
|
||||
|
@ -31,10 +30,6 @@ XPCOMUtils.defineLazyServiceGetter(
|
|||
"nsIAutoCompleteSearch"
|
||||
);
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "logger", () =>
|
||||
Log.repository.getLogger("Urlbar.Provider.UnifiedComplete")
|
||||
);
|
||||
|
||||
/**
|
||||
* Class used to create the provider.
|
||||
*/
|
||||
|
@ -80,7 +75,6 @@ class ProviderUnifiedComplete extends UrlbarProvider {
|
|||
* @returns {Promise} resolved when the query stops.
|
||||
*/
|
||||
async startQuery(queryContext, addCallback) {
|
||||
logger.info(`Starting query for ${queryContext.searchString}`);
|
||||
let instance = {};
|
||||
this.queries.set(queryContext, instance);
|
||||
let urls = new Set();
|
||||
|
@ -111,7 +105,6 @@ class ProviderUnifiedComplete extends UrlbarProvider {
|
|||
* @param {object} queryContext The query context object
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Canceling query for ${queryContext.searchString}`);
|
||||
// This doesn't properly support being used concurrently by multiple fields.
|
||||
this.queries.delete(queryContext);
|
||||
unifiedComplete.stopSearch();
|
||||
|
|
|
@ -15,7 +15,6 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
"resource://gre/modules/XPCOMUtils.jsm"
|
||||
);
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
|
||||
SkippableTimer: "resource:///modules/UrlbarUtils.jsm",
|
||||
UrlbarMuxer: "resource:///modules/UrlbarUtils.jsm",
|
||||
|
@ -27,7 +26,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
|
|||
});
|
||||
|
||||
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
|
||||
|
@ -234,7 +233,7 @@ class ProvidersManager {
|
|||
* @param {object} queryContext
|
||||
*/
|
||||
cancelQuery(queryContext) {
|
||||
logger.info(`Query cancel ${queryContext.searchString}`);
|
||||
logger.info(`Query cancel "${queryContext.searchString}"`);
|
||||
let query = this.queries.get(queryContext);
|
||||
if (!query) {
|
||||
throw new Error("Couldn't find a matching query for the given context");
|
||||
|
@ -363,13 +362,21 @@ class Query {
|
|||
}
|
||||
|
||||
// Start querying active providers.
|
||||
|
||||
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) {
|
||||
if (provider.type == UrlbarUtils.PROVIDER_TYPE.HEURISTIC) {
|
||||
this.context.pendingHeuristicProviders.add(provider.name);
|
||||
queryPromises.push(
|
||||
provider.tryMethod("startQuery", this.context, this.add.bind(this))
|
||||
);
|
||||
queryPromises.push(startQuery(provider));
|
||||
continue;
|
||||
}
|
||||
if (!this._sleepTimer) {
|
||||
|
@ -379,20 +386,13 @@ class Query {
|
|||
this._sleepTimer = new SkippableTimer({
|
||||
name: "Query provider timer",
|
||||
time: UrlbarPrefs.get("delay"),
|
||||
logger,
|
||||
logger: provider.logger,
|
||||
});
|
||||
}
|
||||
queryPromises.push(
|
||||
this._sleepTimer.promise.then(() => {
|
||||
if (this.canceled) {
|
||||
return undefined;
|
||||
}
|
||||
return provider.tryMethod(
|
||||
"startQuery",
|
||||
this.context,
|
||||
this.add.bind(this)
|
||||
);
|
||||
})
|
||||
this._sleepTimer.promise.then(() =>
|
||||
this.canceled ? undefined : startQuery(provider)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -418,6 +418,9 @@ class Query {
|
|||
}
|
||||
this.canceled = true;
|
||||
for (let provider of this.providers) {
|
||||
provider.logger.info(
|
||||
`Canceling query for "${this.context.searchString}"`
|
||||
);
|
||||
provider.tryMethod("cancelQuery", this.context);
|
||||
}
|
||||
if (this._chunkTimer) {
|
||||
|
@ -518,7 +521,7 @@ class Query {
|
|||
name: "Heuristic provider timer",
|
||||
callback: () => this._notifyResults(),
|
||||
time: CHUNK_RESULTS_DELAY_MS,
|
||||
logger,
|
||||
logger: provider.logger,
|
||||
});
|
||||
}
|
||||
} else if (!this._chunkTimer) {
|
||||
|
@ -526,7 +529,7 @@ class Query {
|
|||
name: "Query chunk timer",
|
||||
callback: () => this._notifyResults(),
|
||||
time: CHUNK_RESULTS_DELAY_MS,
|
||||
logger,
|
||||
logger: provider.logger,
|
||||
});
|
||||
}
|
||||
// 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
|
||||
// account.
|
||||
logger.debug(
|
||||
`Cropping ${this.context.results.length} results to ${this.context.maxResults}`
|
||||
);
|
||||
let resultCount = this.context.maxResults;
|
||||
for (let i = 0; i < this.context.results.length; i++) {
|
||||
resultCount -= UrlbarUtils.getSpanForResult(this.context.results[i]);
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -15,11 +15,13 @@ var EXPORTED_SYMBOLS = ["UrlbarTokenizer"];
|
|||
const { XPCOMUtils } = ChromeUtils.import(
|
||||
"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", () =>
|
||||
Log.repository.getLogger("Urlbar.Tokenizer")
|
||||
UrlbarUtils.getLogger({ prefix: "Tokenizer" })
|
||||
);
|
||||
|
||||
var UrlbarTokenizer = {
|
||||
|
|
|
@ -23,6 +23,7 @@ const { XPCOMUtils } = ChromeUtils.import(
|
|||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
BrowserUtils: "resource://gre/modules/BrowserUtils.jsm",
|
||||
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
|
||||
Log: "resource://gre/modules/Log.jsm",
|
||||
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
|
||||
PlacesUIUtils: "resource:///modules/PlacesUIUtils.jsm",
|
||||
PlacesUtils: "resource://gre/modules/PlacesUtils.jsm",
|
||||
|
@ -659,6 +660,30 @@ var UrlbarUtils = {
|
|||
}
|
||||
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", () => {
|
||||
|
@ -1100,6 +1125,12 @@ class UrlbarMuxer {
|
|||
* The provider scope is to query a datasource and return results from it.
|
||||
*/
|
||||
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.
|
||||
* Not using a unique name will cause the newest registration to win.
|
||||
|
|
Загрузка…
Ссылка в новой задаче