diff options
| -rw-r--r-- | background_scripts/main.coffee | 2 | ||||
| -rw-r--r-- | background_scripts/settings.coffee | 1 | ||||
| -rw-r--r-- | pages/blank.html | 8 | ||||
| -rw-r--r-- | pages/content_script_loader.coffee | 28 | ||||
| -rw-r--r-- | pages/options.coffee | 1 | ||||
| -rw-r--r-- | pages/options.html | 26 | 
6 files changed, 55 insertions, 11 deletions
| diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 4f2edfc5..b40907fb 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -231,7 +231,7 @@ moveTab = (callback, direction) ->  # These are commands which are bound to keystroke which must be handled by the background page. They are  # mapped in commands.coffee.  BackgroundCommands = -  createTab: (callback) -> chrome.tabs.create({ url: "chrome://newtab" }, (tab) -> callback()) +  createTab: (callback) -> chrome.tabs.create({url: Settings.get("newTabUrl")}, (tab) -> callback())    duplicateTab: (callback) ->      chrome.tabs.getSelected(null, (tab) ->        chrome.tabs.duplicate(tab.id) diff --git a/background_scripts/settings.coffee b/background_scripts/settings.coffee index 7150fcba..d6e8fcde 100644 --- a/background_scripts/settings.coffee +++ b/background_scripts/settings.coffee @@ -105,6 +105,7 @@ root.Settings = Settings =      searchUrl: "http://www.google.com/search?q="      # put in an example search engine      searchEngines: "w: http://www.wikipedia.org/w/index.php?title=Special:Search&search=%s" +    newTabUrl: "chrome://newtab"      settingsVersion: Utils.getCurrentVersion() diff --git a/pages/blank.html b/pages/blank.html new file mode 100644 index 00000000..496c1868 --- /dev/null +++ b/pages/blank.html @@ -0,0 +1,8 @@ +<html> +  <head> +    <title>New Tab</title> +    <script src="content_script_loader.js"></script> +  </head> +  <body> +  </body> +</html> diff --git a/pages/content_script_loader.coffee b/pages/content_script_loader.coffee new file mode 100644 index 00000000..5058bb7b --- /dev/null +++ b/pages/content_script_loader.coffee @@ -0,0 +1,28 @@ +injectContentScripts = -> +  manifest = chrome.runtime.getManifest() +  content_scripts = manifest.content_scripts + +  insertLocation = document.head.firstChild + +  for scriptInfo in content_scripts +    continue if scriptInfo.matches.indexOf("<all_urls>") == -1 + +    if scriptInfo.js +      for script in scriptInfo.js +        scriptElement = document.createElement "script" +        scriptElement.type = "text/javascript" +        scriptElement.async = false # Don't load out of order! +        scriptElement.src = chrome.runtime.getURL script + +        insertLocation.parentElement.insertBefore scriptElement, insertLocation + +    if scriptInfo.css +      for style in scriptInfo.css +        styleElement = document.createElement "link" +        styleElement.rel = "stylesheet" +        styleElement.type = "text/css" +        styleElement.href = chrome.runtime.getURL style + +        insertLocation.parentElement.insertBefore styleElement, insertLocation + +injectContentScripts() diff --git a/pages/options.coffee b/pages/options.coffee index 7f374f5d..5590774b 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -179,6 +179,7 @@ document.addEventListener "DOMContentLoaded", ->      keyMappings: TextOption      linkHintCharacters: NonEmptyTextOption      linkHintNumbers: NonEmptyTextOption +    newTabUrl: NonEmptyTextOption      nextPatterns: NonEmptyTextOption      previousPatterns: NonEmptyTextOption      regexFindMode: CheckBoxOption diff --git a/pages/options.html b/pages/options.html index fb904316..724c23b4 100644 --- a/pages/options.html +++ b/pages/options.html @@ -1,15 +1,7 @@  <html>    <head>      <title>Vimium Options</title> -    <script src="../lib/utils.js"></script> -    <script src="../lib/keyboard_utils.js"></script> -    <script src="../lib/dom_utils.js"></script> -    <script src="../lib/handler_stack.js"></script> -    <script src="../lib/clipboard.js"></script> -    <script src="../content_scripts/link_hints.js"></script> -    <script src="../content_scripts/vomnibar.js"></script> -    <script src="../content_scripts/scroller.js"></script> -    <script src="../content_scripts/vimium_frontend.js"></script> +    <script src="content_script_loader.js"></script>      <style type="text/css" media="screen">        body {          font: 14px "DejaVu Sans", "Arial", sans-serif; @@ -124,6 +116,9 @@        input#previousPatterns, input#nextPatterns {          width: 100%;        } +      input#newTabUrl { +        width: 100%; +      }        input#searchUrl {          width: 100%;        } @@ -199,7 +194,6 @@          margin-right: 0px;        }      </style> -  <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />    <script type="text/javascript" src="options.js"></script> @@ -365,6 +359,18 @@ unmapAll              </td>            </tr>            <tr> +            <td class="caption">New Tab URL</td> +            <td verticalAlign="top"> +                <div class="help"> +                  <div class="example"> +                      Choose a custom page to open with the "create new tab" command. +                      Set to "<tt>pages/blank.html</tt>" for a blank page.<br /> +                  </div> +                </div> +                <input id="newTabUrl" type="text" /> +            </td> +          </tr> +          <tr>              <td class="caption">Default Search<br/>Engine</td>              <td verticalAlign="top">                  <div class="help"> | 
