aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2018-07-13 22:36:56 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2018-07-13 22:36:56 +0900
commit944dea59199fa03f77e0e7c0d3c02acf8ccb458f (patch)
tree5f44471cdb32376a8c93e6f6eba738180f08c96f /src/shared
parent77b4e807e2a8b3e7ddb5f042719a34962a31b1c4 (diff)
parent28bfa3ac8124d3453cd539db26da4f4703e783df (diff)
Merge remote-tracking branch 'origin/master' into greenkeeper/css-loader-1.0.0
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/blacklists.js13
-rw-r--r--src/shared/commands/docs.js11
-rw-r--r--src/shared/settings/properties.js8
-rw-r--r--src/shared/store/index.js53
-rw-r--r--src/shared/store/provider.jsx15
-rw-r--r--src/shared/versions/index.js38
-rw-r--r--src/shared/versions/release-notes.js8
-rw-r--r--src/shared/versions/storage.js10
8 files changed, 31 insertions, 125 deletions
diff --git a/src/shared/blacklists.js b/src/shared/blacklists.js
new file mode 100644
index 0000000..19ed3f1
--- /dev/null
+++ b/src/shared/blacklists.js
@@ -0,0 +1,13 @@
+import * as re from 'shared/utils/re';
+
+const includes = (blacklist, url) => {
+ let u = new URL(url);
+ return blacklist.some((item) => {
+ if (!item.includes('/')) {
+ return re.fromWildcard(item).test(u.hostname);
+ }
+ return re.fromWildcard(item).test(u.hostname + u.pathname);
+ });
+};
+
+export { includes };
diff --git a/src/shared/commands/docs.js b/src/shared/commands/docs.js
new file mode 100644
index 0000000..c73eb71
--- /dev/null
+++ b/src/shared/commands/docs.js
@@ -0,0 +1,11 @@
+export default {
+ set: 'Set a value of the property',
+ open: 'Open a URL or search by keywords in current tab',
+ tabopen: 'Open a URL or search by keywords in new tab',
+ winopen: 'Open a URL or search by keywords in new window',
+ buffer: 'Sekect tabs by matched keywords',
+ bdelete: 'Close a certain tab matched by keywords',
+ bdeletes: 'Close all tabs matched by keywords',
+ quit: 'Close the current tab',
+ quitall: 'Close all tabs',
+};
diff --git a/src/shared/settings/properties.js b/src/shared/settings/properties.js
index 4bda8d6..b392cbb 100644
--- a/src/shared/settings/properties.js
+++ b/src/shared/settings/properties.js
@@ -15,4 +15,10 @@ const defaults = {
adjacenttab: true,
};
-export { types, defaults };
+const docs = {
+ hintchars: 'Hint characters on follow mode',
+ smoothscroll: 'smooth scroll',
+ adjacenttab: 'open adjacent tabs',
+};
+
+export { types, defaults, docs };
diff --git a/src/shared/store/index.js b/src/shared/store/index.js
deleted file mode 100644
index 2fafdf1..0000000
--- a/src/shared/store/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-class Store {
- constructor(reducer, catcher) {
- this.reducer = reducer;
- this.catcher = catcher;
- this.subscribers = [];
- try {
- this.state = this.reducer(undefined, {});
- } catch (e) {
- catcher(e);
- }
- }
-
- dispatch(action, sender) {
- if (action instanceof Promise) {
- action.then((a) => {
- this.transitNext(a, sender);
- }).catch((e) => {
- this.catcher(e, sender);
- });
- } else {
- try {
- this.transitNext(action, sender);
- } catch (e) {
- this.catcher(e, sender);
- }
- }
- return action;
- }
-
- getState() {
- return this.state;
- }
-
- subscribe(callback) {
- this.subscribers.push(callback);
- }
-
- transitNext(action, sender) {
- let newState = this.reducer(this.state, action);
- if (JSON.stringify(this.state) !== JSON.stringify(newState)) {
- this.state = newState;
- this.subscribers.forEach(f => f(sender));
- }
- }
-}
-
-const empty = () => {};
-
-const createStore = (reducer, catcher = empty) => {
- return new Store(reducer, catcher);
-};
-
-export { createStore };
diff --git a/src/shared/store/provider.jsx b/src/shared/store/provider.jsx
deleted file mode 100644
index fe925aa..0000000
--- a/src/shared/store/provider.jsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import { h, Component } from 'preact';
-
-class Provider extends Component {
- getChildContext() {
- return { store: this.props.store };
- }
-
- render() {
- return <div>
- { this.props.children }
- </div>;
- }
-}
-
-export default Provider;
diff --git a/src/shared/versions/index.js b/src/shared/versions/index.js
deleted file mode 100644
index ba3d183..0000000
--- a/src/shared/versions/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as storage from './storage';
-import * as releaseNotes from './release-notes';
-import manifest from '../../../manifest.json';
-
-const NOTIFICATION_ID = 'vimvixen-update';
-
-const notificationClickListener = (id) => {
- if (id !== NOTIFICATION_ID) {
- return;
- }
-
- browser.tabs.create({ url: releaseNotes.url(manifest.version) });
- browser.notifications.onClicked.removeListener(notificationClickListener);
-};
-
-const checkUpdated = async() => {
- let prev = await storage.load();
- if (!prev) {
- return true;
- }
- return manifest.version !== prev;
-};
-
-const notify = () => {
- browser.notifications.onClicked.addListener(notificationClickListener);
- return browser.notifications.create(NOTIFICATION_ID, {
- 'type': 'basic',
- 'iconUrl': browser.extension.getURL('resources/icon_48x48.png'),
- 'title': 'Vim Vixen ' + manifest.version + ' has been installed',
- 'message': 'Click here to see release notes',
- });
-};
-
-const commit = () => {
- storage.save(manifest.version);
-};
-
-export { checkUpdated, notify, commit };
diff --git a/src/shared/versions/release-notes.js b/src/shared/versions/release-notes.js
deleted file mode 100644
index 6ef2335..0000000
--- a/src/shared/versions/release-notes.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const url = (version) => {
- if (version) {
- return 'https://github.com/ueokande/vim-vixen/releases/tag/' + version;
- }
- return 'https://github.com/ueokande/vim-vixen/releases/';
-};
-
-export { url };
diff --git a/src/shared/versions/storage.js b/src/shared/versions/storage.js
deleted file mode 100644
index 7883258..0000000
--- a/src/shared/versions/storage.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const load = async() => {
- let { version } = await browser.storage.local.get('version');
- return version;
-};
-
-const save = (version) => {
- return browser.storage.local.set({ version });
-};
-
-export { load, save };