Skip to content

Releases: code-charity/History-Manager-with-no-DB

1.0-alpha.7

19 Feb 23:18
Compare
Choose a tag to compare

Changelog:

  • Search Bar: browser-style address bar features

1.0-alpha.6

14 Feb 23:11
Compare
Choose a tag to compare

Changelog:

  • Fixed a bug where history was not loaded on first launch
  • Fixed scrolling function in dropdown tables
  • Added function to sort dropdown tables
  • Removed "%s" from search link
  • Added loading of last used search
  • Added Bing, DuckDuckGo, Ecosia, Yahoo search engines
  • Minor CSS improvements

1.0-alpha.5

03 Feb 19:50
Compare
Choose a tag to compare
1.0-alpha.5 Pre-release
Pre-release

Changelog:

  • Improved UI for better focus
  • Scrollbar has been disabled for "main" component
  • Fixed pinned tabs status in table #4
  • Added unsorted table data for old Satus (for real tabs order in table #4)
  • Improved "Pin" feature. Now function only updates the tab options, does not re-create it

v1.0-alpha.4

20 Nov 15:46
Compare
Choose a tag to compare
v1.0-alpha.4 Pre-release
Pre-release

General

  • Updated Satus
  • Minor optimizations

Backend

Bookmarks

  • Removed all storage-based Star functions (now syncs with bookmarks)
  • Added Bookmarks data collection
  • Added function of creating a bookmark
  • Added function of removing a bookmark
  • Added real-time bookmarks data updater (when the HM page is already open)

Pinned tabs

  • Added Pinned tabs data collection
  • Added function of creating a pinned tab
  • Added function of removing a pinned tab
  • Added real-time pinned tabs data updater (when the HM page is already open)

GUI

  • Added Pinned tabs column
  • Added "Pin" button which works as status too
  • Added simple button hover effect

v1.0-alpha.3

21 Oct 03:06
Compare
Choose a tag to compare
v1.0-alpha.3 Pre-release
Pre-release

New:

  • Added Visit count updater for Top 100 websites & All websites
  • Added Top 100 websites updater (when loading all websites)
  • 3rd table data is now stored separately [storage._all.params = visitCount, storage._top.params = visitCount] (only items are added whose url includes the "q" (/[?&]q=[^&]+/) parameter)
  • Search algorithm adapted to recent data structure changes
  • "Select" feature adapted to recent data structure changes
  • Now the selected rows will not be lost if you update the table (sorting, pagination, etc...)
  • All websites loading adapted to recent data structure changes
  • Added simple loading screen
  • Added language selection
  • Added Russian locale
  • Improved responsiveness of column labels
  • Now scrollbar increases width on hover
  • Upgraded Satus

Fixes:

  • Fixed a bug where new history items did not include recent visits
  • Fixed a bug where the table was empty after searching and it was required to use pagination
  • Fixed a bug where 3rd table could not update
  • Fixed a bug where the extension would stop working if the browser history is empty
  • Fixed a bug where the table sorts Top 100 websites but not All websites
  • Fixed action buttons in the toolbar (when selecting items in the table)

Deprecated:

  • Removed duplicate function of loading All websites data
  • Removed unnecessary decodeURI function from 2nd table

Current data structure:

Objective: develop a data structure that will allow the extension to run faster, but will not complicate future updates.

{
    /*------------------------------------------------------------------------------
    >>> Top 100 websites (sorted by visit count)
    --------------------------------------------------------------------------------
      The data size is small & fixed, so this is loaded & rendered first.
    ------------------------------------------------------------------------------*/

    "_top": {
        "domains": { // First table data
            "mywebsite.com": 83, /* domain: visit count */
            "improvedtube.com": 24,
            ...
        },
        "pages": { // Second table data
            "https://mywebsite.com/about": {
                "star": 1, // Bookmark status (soon)
                "tags": "tag1,tag2",
                "title": "About My Website",
                "visitCount": 56
            },
            "https://improvedtube/uninstalled": {
                "star": 0,
                "tags": "tag1",
                "title": "ImprovedTube - Uninstalled",
                "visitCount": 9
            },
            ...
        },
        "params": { /* Third table data. Looks very similar to the first table's data right?
                      But this is stored separately, because the first table includes items whose URL does not have a "q" parameter. */
            "mywebsite.com": 83,
            "improvedtube.com": 24,
            ...
        }
    },


    /*------------------------------------------------------------------------------
    >>> All websites
    --------------------------------------------------------------------------------
      Similar to "_top" but has 100+ items.

      The data size is large, so this is only loaded & rendered after actions:
      - Search
      - Sorting
      - Pagination
      - ...
    ------------------------------------------------------------------------------*/

    "_all": {
        "domains": {
            "mywebsite.com": 83,
            "improvedtube.com": 24,
            ...
        },
        "pages": {
            "https://mywebsite.com/about": {
                "star": 0,
                "tags": "tag1,tag2",
                "title": "About My Website",
                "visitCount": 56
            },
            "https://improvedtube/uninstalled": {
                "star": 0,
                "tags": "tag1",
                "title": "ImprovedTube - Uninstalled",
                "visitCount": 9
            },
            ...
        },
        "params": {
            "mywebsite.com": 83,
            "improvedtube.com": 24,
            ...
        }
    },


    /*------------------------------------------------------------------------------
    >>> Recently visited websites
    --------------------------------------------------------------------------------
      To prevent slow down the user's browser when opening any new page,
      the new item is loaded into the "_new" storage property.

      This data will be moved to "_top" when user open an empty tab, then will be moved to "_all" (when the user request "_all" data).
    ------------------------------------------------------------------------------*/

    "_new": {
        "domains": {
            "mywebsite.com": 1,
            "improvedtube.com": 2,
            ...
        },
        "pages": {
            "https://mywebsite.com/about": {
                "star": 1,
                "tags": "tag1,tag2",
                "title": "About My Website",
                "visitCount": 1
            },
            "https://improvedtube/uninstalled": {
                "star": 0,
                "tags": "tag1",
                "title": "ImprovedTube - Uninstalled",
                "visitCount": 1
            },
            ...
        },
        "params": {
            "mywebsite.com": 1,
            "improvedtube.com": 2,
            ...
        }
    },


    /*------------------------------------------------------------------------------
    >>> All data per website
    --------------------------------------------------------------------------------
      The data size is very large, so this is only loaded & rendered after actions:
      - Drop-down table opening
    ------------------------------------------------------------------------------*/

    "https://mywebsite.com": {
        "/about": {
            "title": "About My Website",
            "visitCount": 56
        },
        "/search?q=hello+world": {
            "title": "About My Website",
            "visitCount": 2,
            "params": [
                "?q=hello+world"
            ]
        },
        ...
    },
    "https://improvedtube.com": {
        "/uninstalled": {
            "title": "ImprovedTube - Uninstalled",
            "visitCount": 9
        },
        ...
    },
    ...
}

October Alpha

06 Oct 22:33
Compare
Choose a tag to compare
October Alpha Pre-release
Pre-release

Performance

  • Removed global sorting by visitCount from chrome.runtime.onInstalled
  • Large items {"any_domain": {visitCount: visitCount, items: {"any_pathname": {...}, ...}}, ...} from the domain list have been changed to {"any_domain": visit_count, ...}
  • Specific domain items (by pathname) are now loaded only on request
  • List of items for 3rd table has been removed from browser storage (now generated from domain list)
  • Now each table gets the top 100 items first (saves most of the wasted time when opening a new tab)
  • All items are now loaded & replace the top 100 only after first sorting, search, pagination, etc.
  • chrome.tabs.onUpdated replaced with chrome.history.onVisited
  • New history items are now stored separately (fixes freezes when opening new a page)
  • Redeveloped CSS of table component (affects scrolling & animations)
  • Fixed issue causing double request for localization files (saves ~20ms (on SSD) when opening a new tab)
  • Favicons are now loaded only by domain name (fixes double loading & caching of the same favicon)

User Interface

  • Upgraded Satus
  • Added "Compact mode"
  • Added drop-down tables with search queries
  • Improved styles of drop-down tables
  • Fixed pagination in tables
  • Scrollbar now moves up when paginating or sorting

Other

  • Added extension icons
  • Fixed visit counting algorithm
  • Search adapted to the latest changes
  • Many minor fixes & improvements

September Alpha

17 Sep 15:50
Compare
Choose a tag to compare
September Alpha Pre-release
Pre-release

A new way to get history data:

  • OLD: getting big data on first chrome://newtab load -> getting missing data on next chrome://newtab loads
  • NEW: getting big data when installing an extension -> getting 1 item when loading any page

  • Improved performance of history parsing
  • chrome://newtab no longer uses chrome.history.search, only chrome.storage.local.get (saves 1-7 sec on each load)
  • History items limit (when installing extension) increased to 999,999,999
  • Data for tables 2 & 3 are no longer limited to 1000 items (previous algorithms did not allow working with a large number without long freezes)
  • Added async big data search
  • Added favicons (chrome://favicon/PAGE_URL)
  • Other minor changes

Satus table component:

  • Upgraded pagination
  • Bug fixes

Satus storage module:

  • Changed structure + removed unnecessary calculations
  • Bug fixes