diff options
| author | mrmr1993 | 2017-10-24 18:36:23 +0100 | 
|---|---|---|
| committer | mrmr1993 | 2017-10-27 18:20:23 +0100 | 
| commit | 51fa63a5e97167b015acf7b80d673d081c2b91da (patch) | |
| tree | c6a8a7ddd9a9923c03404921954688070b440fa6 | |
| parent | fe6fbca08e501e2478bf10da402d5b4f42a89ade (diff) | |
| download | vimium-51fa63a5e97167b015acf7b80d673d081c2b91da.tar.bz2 | |
Move NormalMode to its own content script
| -rw-r--r-- | content_scripts/mode_normal.coffee | 38 | ||||
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 35 | ||||
| -rw-r--r-- | manifest.json | 1 | ||||
| -rw-r--r-- | pages/blank.html | 1 | ||||
| -rw-r--r-- | pages/completion_engines.html | 1 | ||||
| -rw-r--r-- | pages/help_dialog.html | 1 | ||||
| -rw-r--r-- | pages/logging.html | 1 | ||||
| -rw-r--r-- | pages/options.html | 1 | ||||
| -rw-r--r-- | tests/dom_tests/dom_tests.html | 1 | 
9 files changed, 45 insertions, 35 deletions
| diff --git a/content_scripts/mode_normal.coffee b/content_scripts/mode_normal.coffee new file mode 100644 index 00000000..3e1b1ee3 --- /dev/null +++ b/content_scripts/mode_normal.coffee @@ -0,0 +1,38 @@ +class NormalMode extends KeyHandlerMode +  constructor: (options = {}) -> +    defaults = +      name: "normal" +      indicator: false # There is normally no mode indicator in normal mode. +      commandHandler: @commandHandler.bind this + +    super extend defaults, options + +    chrome.storage.local.get "normalModeKeyStateMapping", (items) => +      @setKeyMapping items.normalModeKeyStateMapping + +    chrome.storage.onChanged.addListener (changes, area) => +      if area == "local" and changes.normalModeKeyStateMapping?.newValue +        @setKeyMapping changes.normalModeKeyStateMapping.newValue + +  commandHandler: ({command: registryEntry, count}) -> +    count *= registryEntry.options.count ? 1 +    count = 1 if registryEntry.noRepeat + +    if registryEntry.repeatLimit? and registryEntry.repeatLimit < count +      return unless confirm """ +        You have asked Vimium to perform #{count} repetitions of the command: #{registryEntry.description}.\n +        Are you sure you want to continue?""" + +    if registryEntry.topFrame +      # We never return to a UI-component frame (e.g. the help dialog), it might have lost the focus. +      sourceFrameId = if window.isVimiumUIComponent then 0 else frameId +      chrome.runtime.sendMessage +        handler: "sendMessageToFrames", message: {name: "runInTopFrame", sourceFrameId, registryEntry} +    else if registryEntry.background +      chrome.runtime.sendMessage {handler: "runBackgroundCommand", registryEntry, count} +    else +      Utils.invokeCommandString registryEntry.command, count, {registryEntry} + +root = exports ? (window.root ?= {}) +root.NormalMode = NormalMode +extend window, root unless exports? diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 86e3b682..add7b7f4 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -117,41 +117,6 @@ handlerStack.push          target = target.parentElement      true -class NormalMode extends KeyHandlerMode -  constructor: (options = {}) -> -    defaults = -      name: "normal" -      indicator: false # There is normally no mode indicator in normal mode. -      commandHandler: @commandHandler.bind this - -    super extend defaults, options - -    chrome.storage.local.get "normalModeKeyStateMapping", (items) => -      @setKeyMapping items.normalModeKeyStateMapping - -    chrome.storage.onChanged.addListener (changes, area) => -      if area == "local" and changes.normalModeKeyStateMapping?.newValue -        @setKeyMapping changes.normalModeKeyStateMapping.newValue - -  commandHandler: ({command: registryEntry, count}) -> -    count *= registryEntry.options.count ? 1 -    count = 1 if registryEntry.noRepeat - -    if registryEntry.repeatLimit? and registryEntry.repeatLimit < count -      return unless confirm """ -        You have asked Vimium to perform #{count} repetitions of the command: #{registryEntry.description}.\n -        Are you sure you want to continue?""" - -    if registryEntry.topFrame -      # We never return to a UI-component frame (e.g. the help dialog), it might have lost the focus. -      sourceFrameId = if window.isVimiumUIComponent then 0 else frameId -      chrome.runtime.sendMessage -        handler: "sendMessageToFrames", message: {name: "runInTopFrame", sourceFrameId, registryEntry} -    else if registryEntry.background -      chrome.runtime.sendMessage {handler: "runBackgroundCommand", registryEntry, count} -    else -      Utils.invokeCommandString registryEntry.command, count, {registryEntry} -  installModes = ->    # Install the permanent modes. The permanently-installed insert mode tracks focus/blur events, and    # activates/deactivates itself accordingly. diff --git a/manifest.json b/manifest.json index f90278b7..71d7caba 100644 --- a/manifest.json +++ b/manifest.json @@ -60,6 +60,7 @@               "content_scripts/mode_key_handler.js",               "content_scripts/mode_visual.js",               "content_scripts/hud.js", +             "content_scripts/mode_normal.js",               "content_scripts/vimium_frontend.js"              ],        "css": ["content_scripts/vimium.css"], diff --git a/pages/blank.html b/pages/blank.html index 8f10c7f6..d026912e 100644 --- a/pages/blank.html +++ b/pages/blank.html @@ -19,6 +19,7 @@      <script src="../content_scripts/mode_key_handler.js"></script>      <script src="../content_scripts/mode_visual.js"></script>      <script src="../content_scripts/hud.js"></script> +    <script src="../content_scripts/mode_normal.js"></script>      <script src="../content_scripts/vimium_frontend.js"></script>      <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" /> diff --git a/pages/completion_engines.html b/pages/completion_engines.html index 0c86edf7..3313b26c 100644 --- a/pages/completion_engines.html +++ b/pages/completion_engines.html @@ -22,6 +22,7 @@      <script src="../content_scripts/mode_key_handler.js"></script>      <script src="../content_scripts/mode_visual.js"></script>      <script src="../content_scripts/hud.js"></script> +    <script src="../content_scripts/mode_normal.js"></script>      <script src="../content_scripts/vimium_frontend.js"></script>      <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" /> diff --git a/pages/help_dialog.html b/pages/help_dialog.html index 1da54efd..7f053265 100644 --- a/pages/help_dialog.html +++ b/pages/help_dialog.html @@ -19,6 +19,7 @@      <script src="../content_scripts/mode_key_handler.js"></script>      <script src="../content_scripts/mode_visual.js"></script>      <script src="../content_scripts/hud.js"></script> +    <script src="../content_scripts/mode_normal.js"></script>      <script src="../content_scripts/vimium_frontend.js"></script>      <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" /> diff --git a/pages/logging.html b/pages/logging.html index 6eff58c4..17aafd70 100644 --- a/pages/logging.html +++ b/pages/logging.html @@ -19,6 +19,7 @@      <script src="../content_scripts/mode_key_handler.js"></script>      <script src="../content_scripts/mode_visual.js"></script>      <script src="../content_scripts/hud.js"></script> +    <script src="../content_scripts/mode_normal.js"></script>      <script src="../content_scripts/vimium_frontend.js"></script>      <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" /> diff --git a/pages/options.html b/pages/options.html index 46307b6f..6312e450 100644 --- a/pages/options.html +++ b/pages/options.html @@ -20,6 +20,7 @@      <script src="../content_scripts/mode_key_handler.js"></script>      <script src="../content_scripts/mode_visual.js"></script>      <script src="../content_scripts/hud.js"></script> +    <script src="../content_scripts/mode_normal.js"></script>      <script src="../content_scripts/vimium_frontend.js"></script>      <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" /> diff --git a/tests/dom_tests/dom_tests.html b/tests/dom_tests/dom_tests.html index d2e795d1..37cd43e3 100644 --- a/tests/dom_tests/dom_tests.html +++ b/tests/dom_tests/dom_tests.html @@ -49,6 +49,7 @@      <script type="text/javascript" src="../../content_scripts/mode_key_handler.js"></script>      <script type="text/javascript" src="../../content_scripts/mode_visual.js"></script>      <script type="text/javascript" src="../../content_scripts/hud.js"></script> +    <script type="text/javascript" src="../../content_scripts/mode_normal.js"></script>      <script type="text/javascript" src="../../content_scripts/vimium_frontend.js"></script>      <script type="text/javascript" src="../shoulda.js/shoulda.js"></script> | 
