aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2016-10-01 12:05:29 +0100
committerStephen Blott2016-10-01 12:18:24 +0100
commitd00345f45b5b3e56970237799c69808527e91919 (patch)
tree5d2d84cf7cedf5f5358fa1686a776f43cd01b280
parent4d58c8a9324475f41986e84cd0fac19f05c5dd6d (diff)
downloadvimium-d00345f45b5b3e56970237799c69808527e91919.tar.bz2
Use HTML5 import to load content scripts.
This is one approach to fixing #2277 properly. (Currently there's a temporary fix in place.) This uses HTML5 imports in place of the content-script loader. This is better than the current "fix" because content scripts are only listed in one place two places (as opposed to six). It's worse than the previous content-script loader, though, in that content scripts must be listed in two places, instead of one. Fixes #2277.
-rw-r--r--manifest.json2
-rw-r--r--pages/blank.html25
-rw-r--r--pages/completion_engines.html25
-rw-r--r--pages/content_script_loader.coffee28
-rw-r--r--pages/help_dialog.html25
-rw-r--r--pages/logging.html25
-rw-r--r--pages/options.html25
-rw-r--r--pages/vimium_resources.html24
8 files changed, 31 insertions, 148 deletions
diff --git a/manifest.json b/manifest.json
index d95ca9f6..a40cd134 100644
--- a/manifest.json
+++ b/manifest.json
@@ -35,6 +35,8 @@
],
"content_scripts": [
{
+ "_comment":
+ "IMPORTANT: All resources listed here must also be listed in ./pages/vimium_resources.html.",
"matches": ["<all_urls>"],
"js": ["lib/utils.js",
"lib/keyboard_utils.js",
diff --git a/pages/blank.html b/pages/blank.html
index 4f0d7bfa..c238282d 100644
--- a/pages/blank.html
+++ b/pages/blank.html
@@ -1,30 +1,7 @@
<html>
<head>
<title>New Tab</title>
- <!-- <script src="content_script_loader.js"></script> -->
- <!-- NOTE(smblott) Temporarily, do not use the content-script loader (2016-09-27). It appears no longer
- to be loading scripts synchronously, and so all dependent pages fail. -->
- <script src="../lib/utils.js"></script>
- <script src="../lib/keyboard_utils.js"></script>
- <script src="../lib/dom_utils.js"></script>
- <script src="../lib/rect.js"></script>
- <script src="../lib/handler_stack.js"></script>
- <script src="../lib/settings.js"></script>
- <script src="../lib/find_mode_history.js"></script>
- <script src="../content_scripts/mode.js"></script>
- <script src="../content_scripts/ui_component.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/marks.js"></script>
- <script src="../content_scripts/mode_insert.js"></script>
- <script src="../content_scripts/mode_find.js"></script>
- <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/vimium_frontend.js"></script>
- <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />
-
+ <link rel="import" href="vimium_resources.html">
</head>
<body>
</body>
diff --git a/pages/completion_engines.html b/pages/completion_engines.html
index 114dc0db..d47bb87b 100644
--- a/pages/completion_engines.html
+++ b/pages/completion_engines.html
@@ -4,30 +4,7 @@
<!-- We re-use some styling from the options page, so that the look and feel here is similar -->
<link rel="stylesheet" type="text/css" href="options.css">
<link rel="stylesheet" type="text/css" href="completion_engines.css">
- <!-- <script src="content_script_loader.js"></script> -->
- <!-- NOTE(smblott) Temporarily, do not use the content-script loader (2016-09-27). It appears no longer
- to be loading scripts synchronously, and so all dependent pages fail. -->
- <script src="../lib/utils.js"></script>
- <script src="../lib/keyboard_utils.js"></script>
- <script src="../lib/dom_utils.js"></script>
- <script src="../lib/rect.js"></script>
- <script src="../lib/handler_stack.js"></script>
- <script src="../lib/settings.js"></script>
- <script src="../lib/find_mode_history.js"></script>
- <script src="../content_scripts/mode.js"></script>
- <script src="../content_scripts/ui_component.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/marks.js"></script>
- <script src="../content_scripts/mode_insert.js"></script>
- <script src="../content_scripts/mode_find.js"></script>
- <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/vimium_frontend.js"></script>
- <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />
-
+ <link rel="import" href="vimium_resources.html">
<script src="../background_scripts/completion_engines.js"></script>
<script src="completion_engines.js"></script>
</head>
diff --git a/pages/content_script_loader.coffee b/pages/content_script_loader.coffee
deleted file mode 100644
index 5058bb7b..00000000
--- a/pages/content_script_loader.coffee
+++ /dev/null
@@ -1,28 +0,0 @@
-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/help_dialog.html b/pages/help_dialog.html
index 1e7fdd80..c23b2ac1 100644
--- a/pages/help_dialog.html
+++ b/pages/help_dialog.html
@@ -1,30 +1,7 @@
<html>
<head>
<title>Vimium Help</title>
- <!-- <script src="content_script_loader.js"></script> -->
- <!-- NOTE(smblott) Temporarily, do not use the content-script loader (2016-09-27). It appears no longer
- to be loading scripts synchronously, and so all dependent pages fail. -->
- <script src="../lib/utils.js"></script>
- <script src="../lib/keyboard_utils.js"></script>
- <script src="../lib/dom_utils.js"></script>
- <script src="../lib/rect.js"></script>
- <script src="../lib/handler_stack.js"></script>
- <script src="../lib/settings.js"></script>
- <script src="../lib/find_mode_history.js"></script>
- <script src="../content_scripts/mode.js"></script>
- <script src="../content_scripts/ui_component.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/marks.js"></script>
- <script src="../content_scripts/mode_insert.js"></script>
- <script src="../content_scripts/mode_find.js"></script>
- <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/vimium_frontend.js"></script>
- <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />
-
+ <link rel="import" href="vimium_resources.html">
<script type="text/javascript" src="ui_component_server.js"></script>
<script type="text/javascript" src="help_dialog.js"></script>
</head>
diff --git a/pages/logging.html b/pages/logging.html
index dd05e819..bc4ffb80 100644
--- a/pages/logging.html
+++ b/pages/logging.html
@@ -1,30 +1,7 @@
<html>
<head>
<title>Vimium Logging</title>
- <!-- <script src="content_script_loader.js"></script> -->
- <!-- NOTE(smblott) Temporarily, do not use the content-script loader (2016-09-27). It appears no longer
- to be loading scripts synchronously, and so all dependent pages fail. -->
- <script src="../lib/utils.js"></script>
- <script src="../lib/keyboard_utils.js"></script>
- <script src="../lib/dom_utils.js"></script>
- <script src="../lib/rect.js"></script>
- <script src="../lib/handler_stack.js"></script>
- <script src="../lib/settings.js"></script>
- <script src="../lib/find_mode_history.js"></script>
- <script src="../content_scripts/mode.js"></script>
- <script src="../content_scripts/ui_component.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/marks.js"></script>
- <script src="../content_scripts/mode_insert.js"></script>
- <script src="../content_scripts/mode_find.js"></script>
- <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/vimium_frontend.js"></script>
- <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />
-
+ <link rel="import" href="vimium_resources.html">
<script src="logging.js"></script>
<style type="text/css">
body {
diff --git a/pages/options.html b/pages/options.html
index b24bdec2..92bed6f0 100644
--- a/pages/options.html
+++ b/pages/options.html
@@ -2,30 +2,7 @@
<head>
<title>Vimium Options</title>
<link rel="stylesheet" type="text/css" href="options.css">
- <!-- <script src="content_script_loader.js"></script> -->
- <!-- NOTE(smblott) Temporarily, do not use the content-script loader (2016-09-27). It appears no longer
- to be loading scripts synchronously, and so all dependent pages fail. -->
- <script src="../lib/utils.js"></script>
- <script src="../lib/keyboard_utils.js"></script>
- <script src="../lib/dom_utils.js"></script>
- <script src="../lib/rect.js"></script>
- <script src="../lib/handler_stack.js"></script>
- <script src="../lib/settings.js"></script>
- <script src="../lib/find_mode_history.js"></script>
- <script src="../content_scripts/mode.js"></script>
- <script src="../content_scripts/ui_component.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/marks.js"></script>
- <script src="../content_scripts/mode_insert.js"></script>
- <script src="../content_scripts/mode_find.js"></script>
- <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/vimium_frontend.js"></script>
- <link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />
-
+ <link rel="import" href="vimium_resources.html">
<script type="text/javascript" src="options.js"></script>
</head>
diff --git a/pages/vimium_resources.html b/pages/vimium_resources.html
new file mode 100644
index 00000000..4f4beb13
--- /dev/null
+++ b/pages/vimium_resources.html
@@ -0,0 +1,24 @@
+<!-- All content scripts (and CSS) listed in the manifest must be listed here too.
+ These load Vimium on Vimium's internal pages (such as the options page). -->
+
+<script src="../lib/utils.js"></script>
+<script src="../lib/keyboard_utils.js"></script>
+<script src="../lib/dom_utils.js"></script>
+<script src="../lib/rect.js"></script>
+<script src="../lib/handler_stack.js"></script>
+<script src="../lib/settings.js"></script>
+<script src="../lib/find_mode_history.js"></script>
+<script src="../content_scripts/mode.js"></script>
+<script src="../content_scripts/ui_component.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/marks.js"></script>
+<script src="../content_scripts/mode_insert.js"></script>
+<script src="../content_scripts/mode_find.js"></script>
+<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/vimium_frontend.js"></script>
+
+<link rel="stylesheet" type="text/css" href="../content_scripts/vimium.css" />