aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_scripts/main.coffee2
-rw-r--r--background_scripts/settings.coffee1
-rw-r--r--pages/blank.html8
-rw-r--r--pages/content_script_loader.coffee28
-rw-r--r--pages/options.coffee1
-rw-r--r--pages/options.html26
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">