support history navigation

jh-changes
Shin'ya Ueoka 7 years ago
parent eec7973060
commit 1afbde6e19
  1. 2
      src/background/key-queue.js
  2. 8
      src/content/histories.js
  3. 9
      src/content/index.js
  4. 6
      src/shared/actions.js

@ -15,6 +15,8 @@ const DEFAULT_KEYMAP = [
{ keys: [{ code: KeyboardEvent.DOM_VK_L }], action: [ actions.TABS_NEXT, 1 ]}, { keys: [{ code: KeyboardEvent.DOM_VK_L }], action: [ actions.TABS_NEXT, 1 ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_F }], action: [ actions.FOLLOW_START, false ]}, { keys: [{ code: KeyboardEvent.DOM_VK_F }], action: [ actions.FOLLOW_START, false ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_F, shift: true }], action: [ actions.FOLLOW_START, true ]}, { keys: [{ code: KeyboardEvent.DOM_VK_F, shift: true }], action: [ actions.FOLLOW_START, true ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_H, shift: true }], action: [ actions.HISTORY_PREV ]},
{ keys: [{ code: KeyboardEvent.DOM_VK_L, shift: true }], action: [ actions.HISTORY_NEXT ]},
] ]
export default class KeyQueue { export default class KeyQueue {

@ -0,0 +1,8 @@
const prev = (win) => {
win.history.back()
};
const next = (win) => {
win.history.forward()
};
export { prev, next };

@ -1,7 +1,8 @@
import * as scrolls from './scrolls'; import * as scrolls from './scrolls';
import * as histories from './histories';
import * as actions from '../shared/actions';
import FooterLine from './footer-line'; import FooterLine from './footer-line';
import Follow from './follow'; import Follow from './follow';
import * as actions from '../shared/actions';
var footer = null; var footer = null;
@ -56,6 +57,12 @@ const invokeEvent = (action) => {
case actions.FOLLOW_START: case actions.FOLLOW_START:
new Follow(window.document, action[1] || false); new Follow(window.document, action[1] || false);
break; break;
case actions.HISTORY_PREV:
histories.prev(window);
break;
case actions.HISTORY_NEXT:
histories.next(window);
break;
} }
} }

@ -9,6 +9,8 @@ export const SCROLL_DOWN = 'scroll.down';
export const SCROLL_TOP = 'scroll.top'; export const SCROLL_TOP = 'scroll.top';
export const SCROLL_BOTTOM = 'scroll.bottom'; export const SCROLL_BOTTOM = 'scroll.bottom';
export const FOLLOW_START = 'follow.start'; export const FOLLOW_START = 'follow.start';
export const HISTORY_PREV = 'history.prev';
export const HISTORY_NEXT = 'history.next';
const BACKGROUND_ACTION_SET = new Set([ const BACKGROUND_ACTION_SET = new Set([
TABS_CLOSE, TABS_CLOSE,
@ -24,7 +26,9 @@ const CONTENT_ACTION_SET = new Set([
SCROLL_DOWN, SCROLL_DOWN,
SCROLL_TOP, SCROLL_TOP,
SCROLL_BOTTOM, SCROLL_BOTTOM,
FOLLOW_START FOLLOW_START,
HISTORY_PREV,
HISTORY_NEXT
]); ]);
export const isBackgroundAction = (action) => { export const isBackgroundAction = (action) => {