aboutsummaryrefslogtreecommitdiffstats
path: root/vimiumFrontend.js
diff options
context:
space:
mode:
authorPhil Crosby2009-11-11 00:28:09 -0800
committerPhil Crosby2009-11-11 00:28:09 -0800
commit300fa151c6f59955f9deb7ef2e195f11d79a95ec (patch)
tree8d599ba7ed0b585b7439c1b938c21736cb85f60f /vimiumFrontend.js
parentd367e58a555606b7ad232fa880484cad8a2f7844 (diff)
parent263ee35bcd468004718ee0457967c57991b0f09b (diff)
downloadvimium-300fa151c6f59955f9deb7ef2e195f11d79a95ec.tar.bz2
Merge branch 'master' of github.com:philc/vimium
Conflicts: vimiumFrontend.js
Diffstat (limited to 'vimiumFrontend.js')
-rw-r--r--vimiumFrontend.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js
index d6223b32..39ce6036 100644
--- a/vimiumFrontend.js
+++ b/vimiumFrontend.js
@@ -1,4 +1,5 @@
var SCROLL_STEP_SIZE = 60; // Pixels
+var getCurrentUrlHandlers = []; // function (url)
var keyCodes = { ESC: 27 };
var insertMode = false;
@@ -56,10 +57,29 @@ function initializeFrontend() {
port.onMessage.addListener(function (args) {
if (args.scrollX > 0 || args.scrollY > 0) { window.scrollBy(args.scrollX, args.scrollY); }
});
+ } else if (port.name == "returnCurrentTabUrl") {
+ port.onMessage.addListener(function (args) {
+ if (getCurrentUrlHandlers.length > 0) { getCurrentUrlHandlers.pop()(args.url); }
+ });
}
});
};
+function toggleViewSource() {
+ getCurrentUrlHandlers.push(toggleViewSourceCallback);
+
+ var getCurrentUrlPort = chrome.extension.connect({ name: "getCurrentTabUrl" });
+ getCurrentUrlPort.postMessage({});
+}
+
+function toggleViewSourceCallback(url) {
+ if (url.substr(0, 12) == "view-source:")
+ {
+ window.location.href = url.substr(12, url.length - 12);
+ }
+ else { window.location.href = "view-source:" + url; }
+}
+
/**
* Sends everything except i & ESC to the handler in background_page. i & ESC are special because they control
* insert mode which is local state to the page. The key will be are either a single ascii letter or a