From fb97c6dffc80d43346e99db0e76f80fcacf1f7ea Mon Sep 17 00:00:00 2001 From: Imran Sobir Date: Thu, 16 Mar 2017 11:33:27 +0500 Subject: [PATCH] Send history item atime in milliseconds. --- qutebrowser/browser/qutescheme.py | 2 +- qutebrowser/javascript/history.js | 24 +++++++++++------------- tests/unit/browser/test_qutescheme.py | 4 ++-- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/qutebrowser/browser/qutescheme.py b/qutebrowser/browser/qutescheme.py index 697c6761b..be6a99c69 100644 --- a/qutebrowser/browser/qutescheme.py +++ b/qutebrowser/browser/qutescheme.py @@ -218,7 +218,7 @@ def qute_history(url): # Use item's url as title if there's no title. item_url = item.url.toDisplayString() item_title = item.title if item.title else item_url - item_time = int(item.atime) + item_time = int(item.atime * 1000) yield {"url": item_url, "title": item_title, "time": item_time} diff --git a/qutebrowser/javascript/history.js b/qutebrowser/javascript/history.js index 149886b0d..836299564 100644 --- a/qutebrowser/javascript/history.js +++ b/qutebrowser/javascript/history.js @@ -20,14 +20,14 @@ "use strict"; window.loadHistory = (function() { - // The time of last history item. - var lastTime = null; + // Date of last seen item. + var lastItemDate = null; // The time to load next. var nextTime = null; - // The cutoff interval for session-separator (30 minutes) - var SESSION_CUTOFF = 30 * 60; + // The cutoff interval for session-separator (30 minutes in milliseconds). + var SESSION_CUTOFF = 30 * 60 * 1000; // The URL to fetch data from. var DATA_URL = "qute://history/data"; @@ -77,9 +77,8 @@ window.loadHistory = (function() { } // Create session-separator and new tbody if necessary - if (tbody.lastChild !== null && lastTime !== null) { - var lastItemDate = new Date(lastTime * 1000); - var interval = (lastItemDate.getTime() - date.getTime()) / 1000.00; + if (tbody.lastChild !== null && lastItemDate !== null) { + var interval = lastItemDate.getTime() - date.getTime(); if (interval > SESSION_CUTOFF) { // Add session-separator var sessionSeparator = document.createElement("td"); @@ -158,12 +157,11 @@ window.loadHistory = (function() { for (var i = 0, len = history.length - 1; i < len; i++) { var item = history[i]; - var atime = new Date(item.time * 1000); - var session = getSessionNode(atime); - var row = makeHistoryRow(item.url, item.title, - atime.toLocaleTimeString()); - session.appendChild(row); - lastTime = item.time; + var currentItemDate = new Date(item.time); + getSessionNode(currentItemDate).appendChild(makeHistoryRow( + item.url, item.title, currentItemDate.toLocaleTimeString() + )); + lastItemDate = currentItemDate; } var next = history[history.length - 1].next; diff --git a/tests/unit/browser/test_qutescheme.py b/tests/unit/browser/test_qutescheme.py index c8e4eac4e..e46038c8d 100644 --- a/tests/unit/browser/test_qutescheme.py +++ b/tests/unit/browser/test_qutescheme.py @@ -130,8 +130,8 @@ class TestHistoryHandler: # test times end_time = start_time - 24*60*60 for item in items: - assert item['time'] <= start_time - assert item['time'] > end_time + assert item['time'] <= start_time * 1000 + assert item['time'] > end_time * 1000 @pytest.mark.parametrize("start_time_offset, next_time", [ (0, 24*60*60),