diff options
| author | Phil Crosby | 2011-07-29 23:49:25 -0700 |
|---|---|---|
| committer | Phil Crosby | 2011-07-29 23:49:25 -0700 |
| commit | dc114c168740212670021ec39a097371bd35b3ed (patch) | |
| tree | cd59aac7dff5b080d07ec41d26237b5db35bc1e7 | |
| parent | 9a7a2eff94d67aac307c6e20ec90270165ef05b2 (diff) | |
| download | vimium-dc114c168740212670021ec39a097371bd35b3ed.tar.bz2 | |
Remove the zooming functionality. It conflict's with Chrome's native zooming and doesn't work as well.
Now that Chrome saves your zoom settings, there's no need for our own zoom implementation.
This also fixes #370.
| -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; }, |
