diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/console/actions/console.js | 9 | ||||
| -rw-r--r-- | src/console/actions/index.js | 3 | ||||
| -rw-r--r-- | src/console/components/console.js | 27 | ||||
| -rw-r--r-- | src/console/index.html | 4 | ||||
| -rw-r--r-- | src/console/index.js | 25 | ||||
| -rw-r--r-- | src/console/reducers/index.js | 5 | ||||
| -rw-r--r-- | src/console/site.scss | 10 | ||||
| -rw-r--r-- | src/content/actions/operation.js | 7 | ||||
| -rw-r--r-- | src/content/console-frames.js | 7 | ||||
| -rw-r--r-- | src/shared/messages.js | 1 | 
10 files changed, 68 insertions, 30 deletions
diff --git a/src/console/actions/console.js b/src/console/actions/console.js index aacc21a..0d891bb 100644 --- a/src/console/actions/console.js +++ b/src/console/actions/console.js @@ -14,6 +14,13 @@ const showError = (text) => {    };  }; +const showInfo = (text) => { +  return { +    type: actions.CONSOLE_SHOW_INFO, +    text: text +  }; +}; +  const hideCommand = () => {    return {      type: actions.CONSOLE_HIDE_COMMAND, @@ -40,6 +47,6 @@ const completionPrev = () => {  };  export { -  showCommand, showError, hideCommand, +  showCommand, showError, showInfo, hideCommand,    setCompletions, completionNext, completionPrev  }; diff --git a/src/console/actions/index.js b/src/console/actions/index.js index 3a6cf07..c4f88cd 100644 --- a/src/console/actions/index.js +++ b/src/console/actions/index.js @@ -1,9 +1,10 @@  export default {    // console commands    CONSOLE_SHOW_COMMAND: 'console.show.command', -  CONSOLE_SET_COMPLETIONS: 'console.set.completions',    CONSOLE_SHOW_ERROR: 'console.show.error', +  CONSOLE_SHOW_INFO: 'console.show.info',    CONSOLE_HIDE_COMMAND: 'console.hide.command', +  CONSOLE_SET_COMPLETIONS: 'console.set.completions',    CONSOLE_COMPLETION_NEXT: 'console.completion.next',    CONSOLE_COMPLETION_PREV: 'console.completion.prev',  }; diff --git a/src/console/components/console.js b/src/console/components/console.js index b8431ce..93802f8 100644 --- a/src/console/components/console.js +++ b/src/console/components/console.js @@ -16,7 +16,7 @@ export default class ConsoleComponent {      input.addEventListener('keyup', this.onKeyUp.bind(this));      this.hideCommand(); -    this.hideError(); +    this.hideMessage();    }    onBlur() { @@ -78,11 +78,10 @@ export default class ConsoleComponent {        this.hideCommand();      } -    if (state.mode === 'error') { -      this.setErrorText(state.messageText); -      this.showError(); +    if (state.mode === 'error' || state.mode === 'info') { +      this.showMessage(state.mode, state.messageText);      } else { -      this.hideError(); +      this.hideMessage();      }      if (state.groupSelection >= 0 && state.itemSelection >= 0) { @@ -128,21 +127,21 @@ export default class ConsoleComponent {      input.value = this.completionOrigin;    } -  setErrorText(text) { +  showMessage(mode, text) {      let doc = this.wrapper.ownerDocument; -    let error = doc.querySelector('#vimvixen-console-error'); +    let error = doc.querySelector('#vimvixen-console-message'); +    error.classList.remove( +      'vimvixen-console-info', +      'vimvixen-console-error' +    ); +    error.classList.add('vimvixen-console-' + mode);      error.textContent = text; -  } - -  showError() { -    let doc = this.wrapper.ownerDocument; -    let error = doc.querySelector('#vimvixen-console-error');      error.style.display = 'block';    } -  hideError() { +  hideMessage() {      let doc = this.wrapper.ownerDocument; -    let error = doc.querySelector('#vimvixen-console-error'); +    let error = doc.querySelector('#vimvixen-console-message');      error.style.display = 'none';    }  } diff --git a/src/console/index.html b/src/console/index.html index 4222f12..f41a8dc 100644 --- a/src/console/index.html +++ b/src/console/index.html @@ -6,8 +6,8 @@      <script src='console.js'></script>    </head>    <body class='vimvixen-console'> -    <p id='vimvixen-console-error' -       class='vimvixen-console-error'></p> +    <p id='vimvixen-console-message' +       class='vimvixen-console-message'></p>      <div id='vimvixen-console-command'>        <ul id='vimvixen-console-completion' class='vimvixen-console-completion'></ul>        <div class='vimvixen-console-command'> diff --git a/src/console/index.js b/src/console/index.js index b07d8e7..895fcc2 100644 --- a/src/console/index.js +++ b/src/console/index.js @@ -17,18 +17,25 @@ window.addEventListener('load', () => {    consoleComponent = new ConsoleComponent(document.body, store);  }); -store.subscribe(() => { -  completionComponent.update(); -  consoleComponent.update(); -}); - -browser.runtime.onMessage.addListener((action) => { -  switch (action.type) { +const onMessage = (message) => { +  switch (message.type) {    case messages.CONSOLE_SHOW_COMMAND: -    return store.dispatch(consoleActions.showCommand(action.command)); +    return store.dispatch(consoleActions.showCommand(message.command));    case messages.CONSOLE_SHOW_ERROR: -    return store.dispatch(consoleActions.showError(action.text)); +    return store.dispatch(consoleActions.showError(message.text)); +  case messages.CONSOLE_SHOW_INFO: +    return store.dispatch(consoleActions.showInfo(message.text));    case messages.CONSOLE_HIDE_COMMAND:      return store.dispatch(consoleActions.hideCommand());    } +}; + +store.subscribe(() => { +  completionComponent.update(); +  consoleComponent.update();  }); + +browser.runtime.onMessage.addListener(onMessage); +window.addEventListener('message', (message) => { +  onMessage(JSON.parse(message.data)); +}, false); diff --git a/src/console/reducers/index.js b/src/console/reducers/index.js index 78b73b0..d4affa7 100644 --- a/src/console/reducers/index.js +++ b/src/console/reducers/index.js @@ -57,6 +57,11 @@ export default function reducer(state = defaultState, action = {}) {        mode: 'error',        messageText: action.text,      }); +  case actions.CONSOLE_SHOW_INFO: +    return Object.assign({}, state, { +      mode: 'info', +      messageText: action.text, +    });    case actions.CONSOLE_HIDE_COMMAND:      return Object.assign({}, state, {        mode: state.mode === 'command' ? '' : state.mode, diff --git a/src/console/site.scss b/src/console/site.scss index 5823dce..e5cb2df 100644 --- a/src/console/site.scss +++ b/src/console/site.scss @@ -64,12 +64,20 @@ body {      }    } +  &-message { +    @include consoole-font; +  } +    &-error {      background-color: red;      font-weight: bold;      color: white; +  } -    @include consoole-font; +  &-info { +    background-color: white; +    font-weight: normal; +    color: green;    }    &-command { diff --git a/src/content/actions/operation.js b/src/content/actions/operation.js index 0c8b0ff..0d5088b 100644 --- a/src/content/actions/operation.js +++ b/src/content/actions/operation.js @@ -4,6 +4,7 @@ import * as scrolls from 'content/scrolls';  import * as navigates from 'content/navigates';  import * as urls from 'content/urls';  import * as followActions from 'content/actions/follow'; +import * as consoleFrames from 'content/console-frames';  const exec = (operation) => {    switch (operation.type) { @@ -34,7 +35,11 @@ const exec = (operation) => {    case operations.NAVIGATE_ROOT:      return navigates.root(window);    case operations.URLS_YANK: -    return urls.yank(window); +    urls.yank(window); +    return consoleFrames.postMessage(window.document, { +      type: messages.CONSOLE_SHOW_INFO, +      text: 'Current url yanked', +    });    default:      browser.runtime.sendMessage({        type: messages.BACKGROUND_OPERATION, diff --git a/src/content/console-frames.js b/src/content/console-frames.js index 3f06466..35b975f 100644 --- a/src/content/console-frames.js +++ b/src/content/console-frames.js @@ -15,4 +15,9 @@ const blur = (doc) => {    iframe.blur();  }; -export { initialize, blur }; +const postMessage = (doc, message) => { +  let iframe = doc.getElementById('vimvixen-console-frame'); +  iframe.contentWindow.postMessage(JSON.stringify(message), '*'); +}; + +export { initialize, blur, postMessage }; diff --git a/src/shared/messages.js b/src/shared/messages.js index bba730e..2467a67 100644 --- a/src/shared/messages.js +++ b/src/shared/messages.js @@ -8,6 +8,7 @@ export default {    CONSOLE_QUERY_COMPLETIONS: 'console.query.completions',    CONSOLE_SHOW_COMMAND: 'console.show.command',    CONSOLE_SHOW_ERROR: 'console.show.error', +  CONSOLE_SHOW_INFO: 'console.show.info',    CONSOLE_HIDE_COMMAND: 'console.hide.command',    OPEN_URL: 'open.url',  | 
