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"> |
