Skip to content

Commit

Permalink
Release v1.3.1
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit bf77d3ddfc8f24c42b387e46e183688d6a1d1eff
Author: John Dunning <[email protected]>
Date:   Sat Jan 4 14:27:55 2020 -0800

    Move addURLs() to recentTabs.getAll()

    When deleting a closed tab, also remove it from the recents list, so that if the user just scrolled down to the closed tabs section and deleted one, it would disappear.
    Filter out unsuspended closed tabs that have the same URL as suspended open tabs.
    Fix renamed initTabs() in app.js.
    Return the item from addURLs().

commit a3687e24323a8e288f46e28d2898c253fe94fbf8
Author: John Dunning <[email protected]>
Date:   Sat Jan 4 11:45:56 2020 -0800

    Update version to 1.3.1

    Allow closed tabs to be deleted from history.
    Rename initTabs() to loadTabs().
    Refactor decoding URL strings into decode.js.
    ES6ify copy-to-clipboard.js.
    Remove bluebird.min.js.
    Update releases/index.md and docs/index.md.

commit 09324fbdc7f8df2fd7cf84543ecf7cecfba0532e
Author: John Dunning <[email protected]>
Date:   Thu Jan 2 20:16:00 2020 -0800

    Handle history items with empty titles

commit fe1b6d4381b830d74654f2f079f21a53ef0354d7
Author: John Dunning <[email protected]>
Date:   Thu Jan 2 19:29:17 2020 -0800

    Open a bookmark/history item in a new tab with ctrl-click

    Prevent the close button from stealing focus from the search box.
    Add IsMac and Platform to constants.js, so checking navigator.platform isn't needed everywhere.
    Add ModKeyBoolean to key-constants.js
    Add focus() method to SearchBox and Input, though they're not currently used.
    Use Platform from constants in app-container.js.
    Update releases/index.md.

commit 9c502c25d4342034b26d98f0c86e7d9cc7bd811b
Author: John Dunning <[email protected]>
Date:   Thu Jan 2 12:06:58 2020 -0800

    Update description with info on deleting bookmarks and history

    Clean up closeTab().
    Don't send a tabs close event when onRemoved is received, since we were already firing it in closeTab().
    Update description of ctrl-W shortcut on Options page.

commit 9e3a2d4b134d8613ec451956885f87096d442784
Author: John Dunning <[email protected]>
Date:   Wed Jan 1 18:05:38 2020 -0800

    Show close buttons on bookmarks and history items

    Let the user delete history items and bookmarks, after a confirmation.
    Add originalURL to history items so that if a suspended page from history is deleted, we can remove the right history item.
    Set the tooltip on the close button according to the mode.

commit 7902dfe006cb2248b829e9b54f6334041ff66496
Author: John Dunning <[email protected]>
Date:   Wed Jan 1 16:47:25 2020 -0800

    Rearrange order of methods in popup/app.js

commit 8ccb8233373721591e088cb9e1a97632539565ea
Author: John Dunning <[email protected]>
Date:   Wed Jan 1 15:54:03 2020 -0800

    Score items in loadPromisedItems()

    Just sort the history items when getting a /h command in getMatchingItems(), instead of scoring them, too.
    Add a reload param to loadPromisedItems() to force it to replace the existing promise.
    Update releases/index.md to list updating the results if a tab is closed while the menu is open.

commit f25e386e3658988af66142a019a6d5c23de903de
Author: John Dunning <[email protected]>
Date:   Tue Dec 31 19:22:14 2019 -0800

    Only show unsuspended versions of pages in history

    Add unsuspend param to addURLs() to force the unsuspended URLs to be used.
    ES6ify get-bookmarks.js and get-history.js.
    Update releases/index.md.

commit 4ed1abe82809015997388aabe0a299891b1a7356
Author: John Dunning <[email protected]>
Date:   Tue Dec 31 15:36:23 2019 -0800

    Update results list when a tab is closed

    Refactor componentWillMount() to be much simpler.
    Add initTabs() method to app.
    Add a tab.onRemoved handler to re-init the list.
    Check that the item has a tab ID before trying to close it.
    Renamed get-tabs.js to init-tabs.js.
    Add includeClosedTabs param to recentTabs.getAll(), so that that module doesn't need to check the settings.
    Clean up the createStorage() params.

commit 0bd88ba898affd5979bc627d575cb512650c95e0
Author: John Dunning <[email protected]>
Date:   Mon Dec 30 15:17:21 2019 -0800

    Return the constants object from a function

    Even though you can call define() with a bare object, WebStorm doesn't understand that, so it was highlighting keys on the constants object.

commit f028d21fff712911bf1ee97655604b8ab2771cef
Author: John Dunning <[email protected]>
Date:   Mon Dec 30 13:04:20 2019 -0800

    Refactor componentWillMount()

    Move setting recentBoost to getTabs().

commit 13a4d1f731bf91f15b22cf3fd76dcde354fee317
Author: John Dunning <[email protected]>
Date:   Sat Dec 28 19:42:00 2019 -0800

    Add option to normalize non-standard whitespace chars

    Fix copy to clipboard buttons on ctrl-tab/index.md, which weren't working.
    Re-enable clean:rjs in Gruntfile.js.
    ES6ify add-urls.js and get-tabs.js.

commit 2e408261e9f45e02634bb6007985bcc59ff72099
Author: John Dunning <[email protected]>
Date:   Fri Dec 27 19:17:18 2019 -0800

    Update babel target to Chrome 55

    Add search terms for Edge store to chrome-store-description.txt.

commit 49ca3baaa5ede7eeb85bcaed3c90c82ccc9bb44a
Author: John Dunning <[email protected]>
Date:   Sat Dec 21 19:59:52 2019 -0800

    Use bluebird.core.min.js

    Unfortunately, it doesn't fix the unicode issue, but at least it's smaller.

commit cbcdb809e314cc8e1e7b067c9a221798e98034b2
Author: John Dunning <[email protected]>
Date:   Sat Dec 21 18:59:32 2019 -0800

    Fix mangled modifier characters

    The bluebird.min.js file seems to cause any Unicode characters that come after it in the same file to be parsed incorrectly by Chrome.
    Use \u strings to explicitly set the keys instead of raw chars.
    Use the skinny arrows for keys on Mac.

commit b4524aa1df04aca0b8956f778ca65cb6558ec8ba
Author: John Dunning <[email protected]>
Date:   Fri Dec 20 12:59:44 2019 -0800

    Use \u strings instead of chars in get-chrome-shortcuts.js

commit 8facfc0d13861790209ee26a8860f0c1914d8d36
Author: John Dunning <[email protected]>
Date:   Tue Dec 17 23:33:04 2019 -0800

    Use \u codes for the Mac modifiers in get-chrome-shortcuts.js
  • Loading branch information
fwextensions committed Jan 4, 2020
1 parent d387c6d commit 565c0a1
Show file tree
Hide file tree
Showing 31 changed files with 707 additions and 502 deletions.
2 changes: 1 addition & 1 deletion .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"@babel/preset-env",
{
"targets": {
"chrome": 51
"chrome": 55
},
"loose": true,
"corejs": 3,
Expand Down
28 changes: 22 additions & 6 deletions docs/chrome-store-description.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,17 @@ Switch tabs or access bookmarks and history with a Quicksilver-style search or a
Switch tabs with a Quicksilver-style search or a most recently used (MRU) tab list


# Search terms in Edge store

tab switcher
tab manager
MRU tab menu
most recently used tabs menu
recent tabs menu
tab search
ctrl-tab navigation


↑ ↓
Expand All @@ -93,7 +104,7 @@ You can customize the shortcut keys (other than CTRL-TAB) by right-clicking the
★ Switch between the most recently used tabs

➤ NOTE: When first installed, QuicKey doesn't know which tabs have been
recently used, but as you use Chrome, it will start adding tabs to the
recently used, but as you use Chrome, tabs will get added to the
most recently used (MRU) list.

Opening QuicKey displays a list of the last 50 tabs you've visited, in order of recency. Click a tab to switch to it, or use one of the keyboard shortcuts below to navigate the recently used tab history:
Expand Down Expand Up @@ -160,9 +171,9 @@ If you change the keyboard shortcut for showing the QuicKey menu to something ot

To close the selected tab, press CTRL-W (CMD-CTRL-W on macOS). Or hover over a tab and click the X button on the right side of the menu.

When you open QuicKey, the 25 most recently closed tabs are listed below the recent tabs and shown in a faded state with a clock icon. They are also returned when you type a query, though their score is discounted compared to open tabs. Click a closed tab to reopen it in its original location and with all of its browsing history intact.
When you open QuicKey, the 25 most recently closed tabs are listed below the recent tabs and shown in a faded state with a clock icon. They are also returned when you type a query, though their rank in the list of results is lower than open tabs. Click a closed tab to reopen it in its original location and with all of its browsing history intact.

If you don't want closed tabs to be shown, open the QuicKey options page and uncheck "Include recently closed tabs in the search results".
If you don't want any closed tabs to be shown, open the QuicKey options page and uncheck "Include recently closed tabs in the search results". You can also remove a specific closed tab from the browser's history by pressing CTRL-W (CMD-CTRL-W on macOS) or by clicking its X button on the right side of the menu.


★ Move tabs
Expand All @@ -182,7 +193,7 @@ A tab that has the same title as other open tabs will display a number to indica

★ Search bookmarks

To find a bookmark, type "/b" in the search box, then a space, and then part of the bookmark's name or URL.
To find a bookmark, type "/b" and a space in the search box, then part of the bookmark's name or URL.

• Press ENTER to open it in the current tab.
• Press CTRL-ENTER (CMD-ENTER on macOS) to open it in a new tab in
Expand All @@ -192,11 +203,16 @@ To find a bookmark, type "/b" in the search box, then a space, and then part of

★ Search the browser history

To find something in the last 2000 pages of your browser history, type "/h" in the search box, then a space, and then part of the page's name or URL.
To find something in the last 2000 pages of your browser history, type "/h" and a space in the search box, then part of the page's name or URL.

The same CTRL-ENTER (CMD-ENTER on macOS) and SHIFT-ENTER shortcuts will open the visited page in a new tab or window.

As soon as you type "/h", the pages from your history will be listed in order of recency, so you can get back to a page you had visited without having to remember its name.
As soon as you type "/h ", the pages from your history will be listed in order of recency, so you can get back to a page you had recently visited without having to remember its name.


★ Delete bookmarks and history items

To delete the selected bookmark or history item, press CTRL-W (CMD-CTRL-W on macOS). Or hover over an item and click the X button on the right side of the menu. You'll be asked to confirm the deletion of bookmarks.


★ The Great Suspender integration
Expand Down
27 changes: 16 additions & 11 deletions docs/ctrl-tab/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Chrome's *Keyboard shortcuts* screen normally blocks you from using <b><kbd>ctrl
keybinding: "Ctrl+Tab"
});

<button class="copy" onclick="copyCode(1)">Copy to Clipboard</button>
<button class="copy" onclick="copyCode(0)">Copy to Clipboard</button>

6. Click into the console area of DevTools and paste the code next to the `>`.

Expand Down Expand Up @@ -88,7 +88,7 @@ Follow [steps 1 through 4](#option-1-1) from option 1 above.
keybinding: "Ctrl+Shift+Tab"
});

<button class="copy" onclick="copyCode(2)">Copy to Clipboard</button>
<button class="copy" onclick="copyCode(1)">Copy to Clipboard</button>

6. Click into the console area of DevTools and paste the code next to the `>`.

Expand Down Expand Up @@ -136,16 +136,21 @@ The other default shortcuts continue to work, so you can still press <b><kbd>alt
{
var copyFrom = document.createElement("textarea"),
body = document.body,
source = document.getElementsByTagName("pre")[index],
result;

copyFrom.textContent = document.getElementsByClassName("highlight")[index].textContent;
body.appendChild(copyFrom);
copyFrom.select();
result = document.execCommand("copy");
body.removeChild(copyFrom);

if (!result) {
alert("The browser blocked the copy action for some reason.");
}
if (source) {
copyFrom.textContent = source.textContent;
body.appendChild(copyFrom);
copyFrom.select();
result = document.execCommand("copy");
body.removeChild(copyFrom);

if (!result) {
alert("The browser blocked the copy action for some reason.");
}
} else {
alert("The code couldn't be found. Please copy it manually.");
}
}
</script>
14 changes: 10 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ You can customize the shortcut key by right-clicking the *QuicKey* icon and sele

## <a name="mru"></a>Switch between the most recently used tabs

> **Note:** When first installed, *QuicKey* doesn't know which tabs have been recently used, but as you use Chrome, it will start adding tabs to the most recently used (MRU) list.
> **Note:** When first installed, *QuicKey* doesn't know which tabs have been recently used, but as you use Chrome, tabs will get added to the most recently used (MRU) list.
Opening *QuicKey* displays a list of the last 50 tabs you've visited, in order of recency. Click a tab to switch to it, or use one of the keyboard shortcuts below to navigate the recently used tab history:

Expand Down Expand Up @@ -135,9 +135,9 @@ When you open *QuicKey*, the 25 most recently closed tabs are listed below the r

![Closed tab](img/closed-tab.png)

They are also returned when you type a query, though their score is discounted compared to open tabs. Click a closed tab to reopen it in its original location and with all of its browsing history intact.
They are also returned when you type a query, though their rank in the list of results is lower than open tabs. Click a closed tab to reopen it in its original location and with all of its browsing history intact.

If you don't want closed tabs to be shown, open the *QuicKey options* page and uncheck *Include recently closed tabs in the search results*.
If you don't want any closed tabs to be shown, open the *QuicKey options* page and uncheck *Include recently closed tabs in the search results*. You can also remove a specific closed tab from the browser's history by pressing <b><kbd>ctrl</kbd><kbd>W</kbd></b> (<b><kbd>cmd</kbd><kbd>ctrl</kbd><kbd>W</kbd></b> on macOS) or by clicking the its <img src="img/clear.svg" style="height: 1em; vertical-align: middle;"> button on the right side of the menu.


## Move tabs
Expand Down Expand Up @@ -168,13 +168,19 @@ To find a bookmark, type <b><kbd>/</kbd><kbd>b</kbd><kbd>space</kbd></b> in the

## <a name="history"></a>Search the browser history

To see the last 2000 pages of your browser history in order of recency, type <b><kbd>/</kbd><kbd>h</kbd><kbd>space</kbd></b> in the search box. Or type part of the page's name or URL to narrow the search.
To find something in the last 2000 pages of your browser history, type <b><kbd>/</kbd><kbd>h</kbd><kbd>space</kbd></b> in the search box, and then part of the page's name or URL.

![Search history](img/search-history.png)

The same <b><kbd>ctrl</kbd><kbd>enter</kbd></b> (<b><kbd>cmd</kbd><kbd>enter</kbd></b> on macOS) and <b><kbd>shift</kbd><kbd>enter</kbd></b> shortcuts will open the visited page in a new tab or window.

As soon as you type <b><kbd>/</kbd><kbd>h</kbd><kbd>space</kbd></b>, the pages from your history will be listed in order of recency, so you can get back to a page you had visited without having to remember its name.
As soon as you type <b><kbd>/</kbd><kbd>h</kbd><kbd>space</kbd></b>, the pages from your history will be listed in order of recency, so you can get back to a page you had recently visited without having to remember its name.


## Delete bookmarks and history items

To delete the selected bookmark or history item, press <b><kbd>ctrl</kbd><kbd>W</kbd></b> (<b><kbd>cmd</kbd><kbd>ctrl</kbd><kbd>W</kbd></b> on macOS). Or hover over an item and click the <img src="img/clear.svg" style="height: 1em; vertical-align: middle;"> button on the right side of the menu. You'll be asked to confirm the deletion of bookmarks.


## <a href="https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg?hl=en"><img src="img/tgs-icon.png" style="height: 24px;"></a> The Great Suspender integration
Expand Down
24 changes: 24 additions & 0 deletions docs/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,25 @@ comments: true
# Release history


## 1.3.1 - 2020-01-15

### Added

* Closed tabs, bookmarks, and entries in the browser history can be deleted by clicking the X button on each item or with the close-tab keyboard shortcut.

* Ctrl- or cmd-clicking a bookmark or history item will open it in a new tab.

### Fixed

* Non-breaking spaces and other non-standard space characters in titles will now match spaces typed in the query.

* Worked around a Chrome bug that caused some Unicode characters like ⌘ to sometimes not be recognized correctly, which could break keyboard shortcuts.

* The list of results will update if a tab is closed while the menu is open.

* Only the unsuspended versions of pages are listed when searching the history.


## 1.3.0 - 2019-12-15

### Added
Expand Down Expand Up @@ -63,6 +82,7 @@ comments: true
### Added

* On the new options page you can change the behavior of the <kbd>space</kbd> and <kbd>esc</kbd> keys, hide closed tabs from the search results, and customize many of the keyboard shortcuts. In particular, you can change the key that's used to navigate the MRU menu, which is helpful if you change the default <b><kbd>alt</kbd><kbd>Q</kbd></b> shortcut.

* A [support page](https://fwextensions.github.io/QuicKey/support/) on the QuicKey website.

### Changed
Expand All @@ -72,6 +92,7 @@ comments: true
### Fixed

* Moving tabs to the left or right of the current one sometimes positions it in the wrong place.

* Improved error handling.


Expand Down Expand Up @@ -102,8 +123,11 @@ comments: true
### Fixed

* HTML isn't escaped in recent tab menu when there is no query.

* Maintain recent tab information when a tab is replaced, such as when it's been unloaded from memory by Chrome.

* Skip tabs that were closed without the extension noticing when navigating to earlier tabs.

* Switching to a previous tab via the shortcut key after Chrome restarts without first opening the menu often fails.


Expand Down
14 changes: 7 additions & 7 deletions src/css/popup.css
Original file line number Diff line number Diff line change
Expand Up @@ -269,16 +269,16 @@ input.search-box::-webkit-search-cancel-button:hover:active {
background: #fafafa;
}

.results-list-item.tabs.selected:not(.closed):hover {
padding-right: 36px;
}

.results-list-item .close-button {
outline: none;
display: none;
}

.results-list-item.tabs.selected:not(.closed):hover .close-button {
.results-list-item.selected:hover {
padding-right: 36px;
}

.results-list-item.selected:hover .close-button {
width: 24px;
height: 24px;
right: 6px;
Expand All @@ -296,12 +296,12 @@ input.search-box::-webkit-search-cancel-button:hover:active {
display: block;
}

.results-list-item.tabs.selected:hover .close-button:hover {
.results-list-item.selected:hover .close-button:hover {
background-color: #dcdcdc;
opacity: 1;
}

.results-list-item.tabs.selected:hover .close-button:hover:active {
.results-list-item.selected:hover .close-button:hover:active {
background-color: #bbb;
}

Expand Down
6 changes: 3 additions & 3 deletions src/js/background/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -333,15 +333,15 @@ DEBUG && console.log("=== reloading");
backgroundTracker.event("extension", "update-available",
details && details.version);
} catch (e) {
console.log(e);
DEBUG && console.log(e);
}

restartExtension();
});


window.log = function() {
DEBUG && console.log.apply(console, arguments);
window.log = function(...args) {
DEBUG && console.log.apply(console, args);
};


Expand Down
58 changes: 32 additions & 26 deletions src/js/background/constants.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,33 @@
define({
SpaceBehavior: {
Key: "spaceBehavior",
Select: "select",
Space: "space"
},
EscBehavior: {
Key: "escBehavior",
Clear: "clear",
Close: "close"
},
MarkTabsInOtherWindows: {
Key: "markTabsInOtherWindows"
},
IncludeClosedTabs: {
Key: "includeClosedTabs"
},
Shortcuts: {
Key: "shortcuts",
MRUSelect: "mruSelect",
CloseTab: "closeTab",
MoveTabLeft: "moveTabLeft",
MoveTabRight: "moveTabRight",
CopyURL: "copyURL",
CopyTitleURL: "copyTitleURL"
}
define(function() {
const IsMac = /Mac/i.test(navigator.platform);

return {
IsMac,
Platform: IsMac ? "mac" : "win",
SpaceBehavior: {
Key: "spaceBehavior",
Select: "select",
Space: "space"
},
EscBehavior: {
Key: "escBehavior",
Clear: "clear",
Close: "close"
},
MarkTabsInOtherWindows: {
Key: "markTabsInOtherWindows"
},
IncludeClosedTabs: {
Key: "includeClosedTabs"
},
Shortcuts: {
Key: "shortcuts",
MRUSelect: "mruSelect",
CloseTab: "closeTab",
MoveTabLeft: "moveTabLeft",
MoveTabRight: "moveTabRight",
CopyURL: "copyURL",
CopyTitleURL: "copyTitleURL"
}
};
});
42 changes: 33 additions & 9 deletions src/js/background/get-chrome-shortcuts.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,42 @@ define([
"Del": "Delete",
"Comma": ",",
"Period": ".",
"←": "ArrowLeft",
"→": "ArrowRight",
"↑": "ArrowUp",
"↓": "ArrowDown",
"⌃": "Ctrl",
"⇧": "Shift",
"⌥": "Opt",
"⌘": "Cmd",
// Unicode chars used as keys show up as broken chars in Chrome after
// r.js combines the files
// "←": "ArrowLeft",
// "→": "ArrowRight",
// "↑": "ArrowUp",
// "↓": "ArrowDown",
// "⌃": "Ctrl",
// "⇧": "Shift",
// "⌥": "Opt",
// "⌘": "Cmd",
// babel converts these back to single chars during the build
// ["\u2303"]: "Ctrl",
// ["\u21E7"]: "Shift",
// ["\u2325"]: "Opt",
// ["\u2318"]: "Cmd",
// "\u2303": "Ctrl",
// "\u21E7": "Shift",
// "\u2325": "Opt",
// "\u2318": "Cmd",
};
const ShortcutSeparator = "+";
const MacShortcutPattern = /([⌃⇧⌥⌘]+)(.+)/;
const MacShortcutPattern = /([\u2303\u21E7\u2325\u2318]+)(.+)/;
// Unicode chars in a regex also show up broken
// const MacShortcutPattern = /([⌃⇧⌥⌘]+)(.+)/;

// the only way to prevent babel from converting the \u strings to
// literal chars seems to be to set the keys this way after the object's
// been created
KeyAliases["\u2190"] = "ArrowLeft";
KeyAliases["\u2192"] = "ArrowRight";
KeyAliases["\u2191"] = "ArrowUp";
KeyAliases["\u2193"] = "ArrowDown";
KeyAliases["\u2303"] = "Ctrl";
KeyAliases["\u21E7"] = "Shift";
KeyAliases["\u2325"] = "Opt";
KeyAliases["\u2318"] = "Cmd";

return function getShortcuts()
{
Expand Down
Loading

0 comments on commit 565c0a1

Please sign in to comment.