diff options
| -rw-r--r-- | README.markdown | 5 | ||||
| -rw-r--r-- | background_page.html | 24 | ||||
| -rw-r--r-- | commands.js | 13 | ||||
| -rw-r--r-- | helpDialog.html | 9 | ||||
| -rw-r--r-- | linkHints.js | 15 | ||||
| -rw-r--r-- | options.html | 8 | ||||
| -rw-r--r-- | vimiumFrontend.js | 74 |
7 files changed, 15 insertions, 133 deletions
diff --git a/README.markdown b/README.markdown index 124ccaad..853fca9f 100644 --- a/README.markdown +++ b/README.markdown @@ -40,8 +40,6 @@ Navigating the current page: F open a link in a new tab r reload gs view source - zi zoom in - zo zoom out i enter insert mode -- all commands will be ignored until you hit esc to exit yy copy the current url to the clipboard yf copy a link url to the clipboard @@ -75,8 +73,6 @@ Additional advanced browsing commands: gu go up one level in the URL hierarchy zH scroll all the way left zL scroll all the way right - z0 reset zoom to default value - Vimium supports command repetition so, for example, hitting '5t' will open 5 tabs in rapid succession. ESC (or <c-[>) will clear any partial commands in the queue and will also exit insert and find modes. @@ -157,7 +153,6 @@ Release Notes - Some sites are now excluded by default. - View source (`gs`) now opens in a new tab. - Support for browsing paginated sites using `]]` and `[[` to go forward and backward respectively. -- `z0` will reset the zoom level for the current page. - Many of the less-used commands are now marked as "advanced" and hidden in the help dialog by default, so that the core command set is more focused and approachable. - Improvements to link hinting. diff --git a/background_page.html b/background_page.html index 5de86bca..77e36bb6 100644 --- a/background_page.html +++ b/background_page.html @@ -25,7 +25,6 @@ var defaultSettings = { scrollStepSize: 60, - defaultZoomLevel: 100, linkHintCharacters: "sadfjklewcmpgh", filterLinkHints: false, userDefinedLinkHintCss: @@ -64,8 +63,6 @@ keyDown: handleKeyDown, returnScrollPosition: handleReturnScrollPosition, getCurrentTabUrl: getCurrentTabUrl, - getZoomLevel: getZoomLevel, - saveZoomLevel: saveZoomLevel, getSetting: getSetting, getBookmarks: getBookmarks }; @@ -159,17 +156,6 @@ localStorage["helpDialog_showAdvancedCommands"] = request.showAdvancedCommands; } - /* - * Returns the previously saved zoom level for the current tab, or the default zoom level - */ - function getZoomLevel(args, port) { - var returnPort = chrome.tabs.connect(port.tab.id, { name: "returnZoomLevel" }); - var localStorageKey = "zoom" + args.domain; - var zoomLevelForDomain = (localStorage[localStorageKey] || "").split(",")[1]; - var zoomLevel = parseInt(zoomLevelForDomain || getSettingFromLocalStorage("defaultZoomLevel")); - returnPort.postMessage({ zoomLevel: zoomLevel }); - } - function showHelp(callback, frameId) { chrome.tabs.getSelected(null, function(tab) { chrome.tabs.sendRequest(tab.id, @@ -319,16 +305,6 @@ } } - /* - * Persists the current zoom level for a given domain - */ - function saveZoomLevel(args) { - var localStorageKey = "zoom" + args.domain; - // TODO(philc): We might want to consider expiring these entries after X months as NoSquint does. - // Note(philc): We might also want to jsonify this hash instead of polluting our local storage keyspace. - localStorage[localStorageKey] = [getCurrentTimeInSeconds(), args.zoomLevel].join(","); - } - function getCurrentTimeInSeconds() { Math.floor((new Date()).getTime() / 1000); } chrome.tabs.onSelectionChanged.addListener(function(tabId, selectionInfo) { diff --git a/commands.js b/commands.js index 4e7ebccb..894818a2 100644 --- a/commands.js +++ b/commands.js @@ -111,10 +111,6 @@ function clearKeyMappingsAndSetDefaults() { "L": "goForward", "gu": "goUp", - "zi": "zoomIn", - "zo": "zoomOut", - "z0": "zoomReset", - "gi": "focusInput", "f": "linkHints.activateMode", @@ -170,11 +166,8 @@ var commandDescriptions = { reload: ["Reload the page"], toggleViewSource: ["View page source"], - zoomIn: ["Zoom in"], - zoomOut: ["Zoom out"], - zoomReset: ["Reset zoom to default value"], copyCurrentUrl: ["Copy the current URL to the clipboard"], - + 'linkHints.activateModeToCopyLinkUrl': ["Copy a link URL to the clipboard"], enterInsertMode: ["Enter insert mode"], @@ -223,7 +216,7 @@ var commandGroups = { ["scrollDown", "scrollUp", "scrollLeft", "scrollRight", "scrollToTop", "scrollToBottom", "scrollToLeft", "scrollToRight", "scrollPageDown", "scrollPageUp", "scrollFullPageUp", "scrollFullPageDown", - "reload", "toggleViewSource", "zoomIn", "zoomOut", "zoomReset", "copyCurrentUrl", "linkHints.activateModeToCopyLinkUrl", "goUp", + "reload", "toggleViewSource", "copyCurrentUrl", "linkHints.activateModeToCopyLinkUrl", "goUp", "enterInsertMode", "focusInput", "linkHints.activateMode", "linkHints.activateModeToOpenInNewTab", "linkHints.activateModeWithQueue", "activateBookmarkFindMode", "activateBookmarkFindModeToOpenInNewTab", @@ -242,5 +235,5 @@ var commandGroups = { // from Vimium will uncover these gems. var advancedCommands = [ "scrollToLeft", "scrollToRight", - "zoomReset", "goUp", "focusInput", "linkHints.activateModeWithQueue", + "goUp", "focusInput", "linkHints.activateModeWithQueue", "goPrevious", "goNext"]; diff --git a/helpDialog.html b/helpDialog.html index 51ff1692..5feed105 100644 --- a/helpDialog.html +++ b/helpDialog.html @@ -162,14 +162,7 @@ var advanced = VimiumHelpDialog.dialogElement.getElementsByClassName("advanced"); for (var i = 0; i < advanced.length; i++) advanced[i].style.display = (visible ? "table-row" : "none"); - }, - - centerDialog: function() { - var zoomFactor = currentZoomLevel / 100.0; - this.dialogElement.style.top = Math.max( - (window.innerHeight - this.dialogElement.clientHeight * zoomFactor) / 2.0, - 20) / zoomFactor + "px"; - } + } }; VimiumHelpDialog.init(); diff --git a/linkHints.js b/linkHints.js index f4ffc768..91e77410 100644 --- a/linkHints.js +++ b/linkHints.js @@ -153,10 +153,10 @@ var linkHints = { * Returns true if element is visible. */ isVisible: function(element, clientRect) { - // Exclude links which have just a few pixels on screen, because the link hints won't show for them anyway. - var zoomFactor = currentZoomLevel / 100.0; - if (!clientRect || clientRect.top < 0 || clientRect.top * zoomFactor >= window.innerHeight - 4 || - clientRect.left < 0 || clientRect.left * zoomFactor >= window.innerWidth - 4) + // Exclude links which have just a few pixels on screen, because the link hints won't show for them + // anyway. + if (!clientRect || clientRect.top < 0 || clientRect.top >= window.innerHeight - 4 || + clientRect.left < 0 || clientRect.left >= window.innerWidth - 4) return false; if (clientRect.width < 3 || clientRect.height < 3) @@ -575,11 +575,8 @@ var hintUtils = { marker.clickableItem = link.element; var clientRect = link.rect; - // The coordinates given by the window do not have the zoom factor included since the zoom is set only on - // the document node. - var zoomFactor = currentZoomLevel / 100.0; - marker.style.left = clientRect.left + window.scrollX / zoomFactor + "px"; - marker.style.top = clientRect.top + window.scrollY / zoomFactor + "px"; + marker.style.left = clientRect.left + window.scrollX + "px"; + marker.style.top = clientRect.top + window.scrollY + "px"; return marker; } diff --git a/options.html b/options.html index f1194554..7b1d77bc 100644 --- a/options.html +++ b/options.html @@ -81,7 +81,7 @@ $ = function(id) { return document.getElementById(id); }; var defaultSettings = chrome.extension.getBackgroundPage().defaultSettings; - var editableFields = ["scrollStepSize", "defaultZoomLevel", "excludedUrls", "linkHintCharacters", + var editableFields = ["scrollStepSize", "excludedUrls", "linkHintCharacters", "userDefinedLinkHintCss", "keyMappings", "filterLinkHints"]; var canBeEmptyFields = ["excludedUrls", "keyMappings", "userDefinedLinkHintCss"]; @@ -211,12 +211,6 @@ </td> </tr> <tr> - <td><span class="caption">Default zoom level</span></td> - <td> - <input id="defaultZoomLevel" type="text" value="100" style="width:50px" />% - </td> - </tr> - <tr> <td colspan="3"> Excluded URLs<br/> <div class="help"> diff --git a/vimiumFrontend.js b/vimiumFrontend.js index 0e3f66e8..4307b481 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -1,8 +1,8 @@ /* * This content script takes input from its webpage and executes commands locally on behalf of the background - * page. It must be run prior to domReady so that we perform some operations very early, like setting - * the page's zoom level. We tell the background page that we're in domReady and ready to accept normal - * commands by connectiong to a port named "domReady". + * page. It must be run prior to domReady so that we perform some operations very early. We tell the + * background page that we're in domReady and ready to accept normal commands by connectiong to a port named + * "domReady". */ var getCurrentUrlHandlers = []; // function(url) @@ -15,7 +15,6 @@ var isShowingHelpDialog = false; var handlerStack = []; var keyPort; var settingPort; -var saveZoomLevelPort; // Users can disable Vimium on URL patterns via the settings page. var isEnabledForUrl = true; // The user's operating system. @@ -23,9 +22,6 @@ var currentCompletionKeys; var validFirstKeys; var linkHintCss; -// TODO(philc): This should be pulled from the extension's storage when the page loads. -var currentZoomLevel = 100; - // The types in <input type="..."> that we consider for focusInput command. Right now this is recalculated in // each content script. Alternatively we could calculate it once in the background page and use a request to // fetch it each time. @@ -75,17 +71,13 @@ var hasModifiersRegex = /^<([amc]-)+.>/; var googleRegex = /:\/\/[^/]*google[^/]+/; /* - * Complete initialization work that sould be done prior to DOMReady, like setting the page's zoom level. + * Complete initialization work that sould be done prior to DOMReady. */ function initializePreDomReady() { settings.load(); checkIfEnabledForUrl(); - var getZoomLevelPort = chrome.extension.connect({ name: "getZoomLevel" }); - if (window.self == window.parent) - getZoomLevelPort.postMessage({ domain: window.location.host }); - chrome.extension.sendRequest({handler: "getLinkHintCss"}, function (response) { linkHintCss = response.linkHintCss; }); @@ -145,12 +137,6 @@ function initializePreDomReady() { port.onMessage.addListener(function(args) { if (getCurrentUrlHandlers.length > 0) { getCurrentUrlHandlers.pop()(args.url); } }); - } else if (port.name == "returnZoomLevel") { - port.onMessage.addListener(function(args) { - currentZoomLevel = args.zoomLevel; - if (isEnabledForUrl) - setPageZoomLevel(currentZoomLevel); - }); } else if (port.name == "returnSetting") { port.onMessage.addListener(settings.receiveMessage); } else if (port.name == "refreshCompletionKeys") { @@ -223,47 +209,6 @@ function enterInsertModeIfElementIsFocused() { enterInsertModeWithoutShowingIndicator(document.activeElement); } -/* - * Asks the background page to persist the zoom level for the given domain to localStorage. - */ -function saveZoomLevel(domain, zoomLevel) { - if (!saveZoomLevelPort) - saveZoomLevelPort = chrome.extension.connect({ name: "saveZoomLevel" }); - saveZoomLevelPort.postMessage({ domain: domain, zoomLevel: zoomLevel }); -} - -/* - * Zoom in increments of 20%; this matches chrome's CMD+ and CMD- keystrokes. - * Set the zoom style on documentElement because document.body does not exist pre-page load. - */ -function setPageZoomLevel(zoomLevel, showUINotification) { - document.documentElement.style.zoom = zoomLevel + "%"; - if (document.body) - HUD.updatePageZoomLevel(zoomLevel); - if (showUINotification) - HUD.showForDuration("Zoom: " + currentZoomLevel + "%", 1000); -} - -function zoomIn() { - currentZoomLevel += 20; - setAndSaveZoom(); -} - -function zoomOut() { - currentZoomLevel -= 20; - setAndSaveZoom(); -} - -function zoomReset() { - currentZoomLevel = 100; - setAndSaveZoom(); -} - -function setAndSaveZoom() { - setPageZoomLevel(currentZoomLevel, true); - saveZoomLevel(window.location.host, currentZoomLevel); -} - function scrollToBottom() { window.scrollTo(window.pageXOffset, document.body.scrollHeight); } function scrollToTop() { window.scrollTo(window.pageXOffset, 0); } function scrollToLeft() { window.scrollTo(0, window.pageYOffset); } @@ -853,15 +798,6 @@ HUD = { function() { HUD.upgradeNotificationElement().style.display = "none"; }); }, - updatePageZoomLevel: function(pageZoomLevel) { - // Since the chrome HUD does not scale with the page's zoom level, neither will this HUD. - var inverseZoomLevel = (100.0 / pageZoomLevel) * 100; - if (HUD._displayElement) - HUD.displayElement().style.zoom = inverseZoomLevel + "%"; - if (HUD._upgradeNotificationElement) - HUD.upgradeNotificationElement().style.zoom = inverseZoomLevel + "%"; - }, - /* * Retrieves the HUD HTML element. */ @@ -870,7 +806,6 @@ HUD = { HUD._displayElement = HUD.createHudElement(); // Keep this far enough to the right so that it doesn't collide with the "popups blocked" chrome HUD. HUD._displayElement.style.right = "150px"; - HUD.updatePageZoomLevel(currentZoomLevel); } return HUD._displayElement; }, @@ -880,7 +815,6 @@ HUD = { HUD._upgradeNotificationElement = HUD.createHudElement(); // Position this just to the left of our normal HUD. HUD._upgradeNotificationElement.style.right = "315px"; - HUD.updatePageZoomLevel(currentZoomLevel); } return HUD._upgradeNotificationElement; }, |
