diff options
Diffstat (limited to 'browser/components/firefoxview/HistoryController.mjs')
-rw-r--r-- | browser/components/firefoxview/HistoryController.mjs | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/browser/components/firefoxview/HistoryController.mjs b/browser/components/firefoxview/HistoryController.mjs deleted file mode 100644 index d2bda5cec2..0000000000 --- a/browser/components/firefoxview/HistoryController.mjs +++ /dev/null @@ -1,188 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -const lazy = {}; - -ChromeUtils.defineESModuleGetters(lazy, { - FirefoxViewPlacesQuery: - "resource:///modules/firefox-view-places-query.sys.mjs", - PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs", -}); - -let XPCOMUtils = ChromeUtils.importESModule( - "resource://gre/modules/XPCOMUtils.sys.mjs" -).XPCOMUtils; - -XPCOMUtils.defineLazyPreferenceGetter( - lazy, - "maxRowsPref", - "browser.firefox-view.max-history-rows", - -1 -); - -const HISTORY_MAP_L10N_IDS = { - sidebar: { - "history-date-today": "sidebar-history-date-today", - "history-date-yesterday": "sidebar-history-date-yesterday", - "history-date-this-month": "sidebar-history-date-this-month", - "history-date-prev-month": "sidebar-history-date-prev-month", - }, - firefoxview: { - "history-date-today": "firefoxview-history-date-today", - "history-date-yesterday": "firefoxview-history-date-yesterday", - "history-date-this-month": "firefoxview-history-date-this-month", - "history-date-prev-month": "firefoxview-history-date-prev-month", - }, -}; - -export class HistoryController { - host; - allHistoryItems; - historyMapByDate; - historyMapBySite; - searchQuery; - searchResults; - sortOption; - - constructor(host, options) { - this.allHistoryItems = new Map(); - this.historyMapByDate = []; - this.historyMapBySite = []; - this.placesQuery = new lazy.FirefoxViewPlacesQuery(); - this.searchQuery = ""; - this.searchResults = null; - this.sortOption = "date"; - this.searchResultsLimit = options?.searchResultsLimit || 300; - this.component = HISTORY_MAP_L10N_IDS?.[options?.component] - ? options?.component - : "firefoxview"; - this.host = host; - - host.addController(this); - } - - async hostConnected() { - this.placesQuery.observeHistory(data => this.updateAllHistoryItems(data)); - await this.updateHistoryData(); - this.createHistoryMaps(); - } - - hostDisconnected() { - this.placesQuery.close(); - } - - deleteFromHistory() { - lazy.PlacesUtils.history.remove(this.host.triggerNode.url); - } - - async onSearchQuery(e) { - this.searchQuery = e.detail.query; - await this.updateSearchResults(); - this.host.requestUpdate(); - } - - async onChangeSortOption(e) { - this.sortOption = e.target.value; - await this.updateHistoryData(); - await this.updateSearchResults(); - this.host.requestUpdate(); - } - - async updateHistoryData() { - this.allHistoryItems = await this.placesQuery.getHistory({ - daysOld: 60, - limit: lazy.maxRowsPref, - sortBy: this.sortOption, - }); - } - - async updateAllHistoryItems(allHistoryItems) { - if (allHistoryItems) { - this.allHistoryItems = allHistoryItems; - } else { - await this.updateHistoryData(); - } - this.resetHistoryMaps(); - this.host.requestUpdate(); - await this.updateSearchResults(); - } - - async updateSearchResults() { - if (this.searchQuery) { - try { - this.searchResults = await this.placesQuery.searchHistory( - this.searchQuery, - this.searchResultsLimit - ); - } catch (e) { - // Connection interrupted, ignore. - } - } else { - this.searchResults = null; - } - } - - resetHistoryMaps() { - this.historyMapByDate = []; - this.historyMapBySite = []; - } - - createHistoryMaps() { - if (!this.historyMapByDate.length) { - const { - visitsFromToday, - visitsFromYesterday, - visitsByDay, - visitsByMonth, - } = this.placesQuery; - - // Add visits from today and yesterday. - if (visitsFromToday.length) { - this.historyMapByDate.push({ - l10nId: HISTORY_MAP_L10N_IDS[this.component]["history-date-today"], - items: visitsFromToday, - }); - } - if (visitsFromYesterday.length) { - this.historyMapByDate.push({ - l10nId: - HISTORY_MAP_L10N_IDS[this.component]["history-date-yesterday"], - items: visitsFromYesterday, - }); - } - - // Add visits from this month, grouped by day. - visitsByDay.forEach(visits => { - this.historyMapByDate.push({ - l10nId: - HISTORY_MAP_L10N_IDS[this.component]["history-date-this-month"], - items: visits, - }); - }); - - // Add visits from previous months, grouped by month. - visitsByMonth.forEach(visits => { - this.historyMapByDate.push({ - l10nId: - HISTORY_MAP_L10N_IDS[this.component]["history-date-prev-month"], - items: visits, - }); - }); - } else if ( - this.sortOption === "site" && - !this.historyMapBySite.length && - this.component === "firefoxview" - ) { - this.historyMapBySite = Array.from( - this.allHistoryItems.entries(), - ([domain, items]) => ({ - domain, - items, - l10nId: domain ? null : "firefoxview-history-site-localhost", - }) - ).sort((a, b) => a.domain.localeCompare(b.domain)); - } - this.host.requestUpdate(); - } -} |