diff options
| author | Phil Crosby | 2009-11-11 00:28:09 -0800 |
|---|---|---|
| committer | Phil Crosby | 2009-11-11 00:28:09 -0800 |
| commit | 300fa151c6f59955f9deb7ef2e195f11d79a95ec (patch) | |
| tree | 8d599ba7ed0b585b7439c1b938c21736cb85f60f /vimiumFrontend.js | |
| parent | d367e58a555606b7ad232fa880484cad8a2f7844 (diff) | |
| parent | 263ee35bcd468004718ee0457967c57991b0f09b (diff) | |
| download | vimium-300fa151c6f59955f9deb7ef2e195f11d79a95ec.tar.bz2 | |
Merge branch 'master' of github.com:philc/vimium
Conflicts:
vimiumFrontend.js
Diffstat (limited to 'vimiumFrontend.js')
| -rw-r--r-- | vimiumFrontend.js | 20 |
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 |
