aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Garriott2012-08-25 13:01:17 -0600
committerMatt Garriott2012-08-25 13:01:17 -0600
commitbebb767410db71e6cd493a7fe09a0aba4c4613a2 (patch)
tree49e96029b052d773ff0fff26dc9a5701a96c2fe8
parent92da4d6de1825a03b9cd902c9c711c035a0e0b64 (diff)
downloadvimium-bebb767410db71e6cd493a7fe09a0aba4c4613a2.tar.bz2
The help dialog now initializes the javascript from the within
vimium_frontend.coffee. All that is left now is to get the user's settings for the showAdvancedCommands option.
-rw-r--r--content_scripts/vimium_frontend.coffee45
-rw-r--r--help_dialog.html36
2 files changed, 42 insertions, 39 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index f4fb17fe..548e9c6c 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -841,13 +841,52 @@ window.showHelpDialog = (html, fid) ->
container.innerHTML = html
container.getElementsByClassName("closeButton")[0].addEventListener("click", hideHelpDialog, false)
+
+ # Chrome's new security policy with manifest version 2 prevents the use
+ # of eval in this case. So instead of keeping the javascript in the help_dialog.html
+ # file we can just put it here as coffee script.
+ # See https://developer.chrome.com/trunk/extensions/sandboxingEval.html for more
+ # information on chrome's new security policies.
+ # @mgarriott - 8-25-2012
+ #
+ # OldMethod:
+ # scripts = Array.prototype.slice.call(container.getElementsByTagName("script"))
+ # scripts.forEach((script) -> eval(script.text))
+ VimiumHelpDialog =
+ # This setting is pulled out of local storage. It's false by default.
+ advancedCommandsVisible: false
+ #chrome.extension.getBackgroundPage().Settings.get('helpDialog_showAdvancedCommands')
+
+ init: () ->
+ this.dialogElement = document.getElementById("vimiumHelpDialog")
+ this.dialogElement.getElementsByClassName("toggleAdvancedCommands")[0].addEventListener("click",
+ VimiumHelpDialog.toggleAdvancedCommands, false)
+ this.dialogElement.style.maxHeight = window.innerHeight - 80
+ this.showAdvancedCommands(this.advancedCommandsVisible)
+
+ #
+ # Advanced commands are hidden by default so they don't overwhelm new and casual users.
+ #
+ toggleAdvancedCommands: (event) ->
+ event.preventDefault()
+ VimiumHelpDialog.advancedCommandsVisible = !VimiumHelpDialog.advancedCommandsVisible
+ chrome.extension.sendRequest(
+ { handler: "saveHelpDialogSettings", showAdvancedCommands: VimiumHelpDialog.advancedCommandsVisible })
+ VimiumHelpDialog.showAdvancedCommands(VimiumHelpDialog.advancedCommandsVisible)
+
+ showAdvancedCommands: (visible) ->
+ VimiumHelpDialog.dialogElement.getElementsByClassName("toggleAdvancedCommands")[0].innerHTML =
+ if visible then "Hide advanced commands" else "Show advanced commands"
+ advancedEls = VimiumHelpDialog.dialogElement.getElementsByClassName("advanced")
+ for el in advancedEls
+ el.style.display = if visible then "table-row" else "none"
+
+ VimiumHelpDialog.init()
+
container.getElementsByClassName("optionsPage")[0].addEventListener("click",
-> chrome.extension.sendRequest({ handler: "openOptionsPageInNewTab" })
false)
- # This is necessary because innerHTML does not evaluate javascript embedded in <script> tags.
- scripts = Array.prototype.slice.call(container.getElementsByTagName("script"))
- scripts.forEach((script) -> eval(script.text))
hideHelpDialog = (clickEvent) ->
isShowingHelpDialog = false
diff --git a/help_dialog.html b/help_dialog.html
index 5e188406..2a69ea03 100644
--- a/help_dialog.html
+++ b/help_dialog.html
@@ -48,40 +48,4 @@
<span class="vimiumReset">Version {{version}}</span><br/>
</div>
</div>
-
- <script>
- VimiumHelpDialog = {
- // This setting is pulled out of local storage. It's false by default.
- advancedCommandsVisible: {{showAdvancedCommands}},
-
- init: function() {
- this.dialogElement = document.getElementById("vimiumHelpDialog");
- this.dialogElement.getElementsByClassName("toggleAdvancedCommands")[0].addEventListener("click",
- VimiumHelpDialog.toggleAdvancedCommands, false);
- this.dialogElement.style.maxHeight = window.innerHeight - 80;
- this.showAdvancedCommands(this.advancedCommandsVisible);
- },
-
- /*
- * Advanced commands are hidden by default so they don't overwhelm new and casual users.
- */
- toggleAdvancedCommands: function(event) {
- event.preventDefault();
- VimiumHelpDialog.advancedCommandsVisible = !VimiumHelpDialog.advancedCommandsVisible;
- chrome.extension.sendRequest({ handler: "saveHelpDialogSettings",
- showAdvancedCommands: VimiumHelpDialog.advancedCommandsVisible });
- VimiumHelpDialog.showAdvancedCommands(VimiumHelpDialog.advancedCommandsVisible);
- },
-
- showAdvancedCommands: function(visible) {
- VimiumHelpDialog.dialogElement.getElementsByClassName("toggleAdvancedCommands")[0].innerHTML =
- visible ? "Hide advanced commands" : "Show advanced commands";
- var advanced = VimiumHelpDialog.dialogElement.getElementsByClassName("advanced");
- for (var i = 0; i < advanced.length; i++)
- advanced[i].style.display = (visible ? "table-row" : "none");
- }
- };
-
- VimiumHelpDialog.init();
- </script>
</div>