├── .eslintrc.json ├── .gitignore ├── .jpmignore ├── .stylelintrc.json ├── .travis.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── README.md ├── chrome.manifest ├── data ├── Collapse.mp4 ├── Intro.mp4 ├── Restore.mp4 ├── newtab.b64 ├── newtab.png └── newtab.svg ├── docs ├── images │ ├── tc-graphs-01.png │ ├── tc-graphs-02.png │ ├── tc-graphs-03.png │ ├── tc-graphs-04.png │ ├── tc-graphs-05.png │ ├── tc-graphs-06.png │ └── tc-graphs-07.png └── metrics.md ├── genlocales ├── get-locale-strings.js ├── locale └── README.md ├── locales ├── README.md ├── ast │ └── addon.properties ├── az │ └── addon.properties ├── bn-BD │ └── addon.properties ├── cs │ └── addon.properties ├── de │ └── addon.properties ├── dsb │ └── addon.properties ├── el │ └── addon.properties ├── en-US │ └── addon.properties ├── es-AR │ └── addon.properties ├── es-CL │ └── addon.properties ├── es-ES │ └── addon.properties ├── es-MX │ └── addon.properties ├── fa │ └── addon.properties ├── fr │ └── addon.properties ├── fy-NL │ └── addon.properties ├── he │ └── addon.properties ├── hsb │ └── addon.properties ├── hu │ └── addon.properties ├── id │ └── addon.properties ├── it │ └── addon.properties ├── ja │ └── addon.properties ├── kab │ └── addon.properties ├── ko │ └── addon.properties ├── nb-NO │ └── addon.properties ├── nl │ └── addon.properties ├── nn-NO │ └── addon.properties ├── pt-BR │ └── addon.properties ├── pt-PT │ └── addon.properties ├── ro │ └── addon.properties ├── ru │ └── addon.properties ├── sk │ └── addon.properties ├── sl │ └── addon.properties ├── sq │ └── addon.properties ├── sr │ └── addon.properties ├── sv-SE │ └── addon.properties ├── te │ └── addon.properties ├── tr │ └── addon.properties ├── uk │ └── addon.properties ├── zh-CN │ └── addon.properties └── zh-TW │ └── addon.properties ├── main.js ├── override-bindings.css ├── package.json ├── skin ├── base.css ├── blank.svg ├── find.svg ├── glyph-close-16.svg ├── glyph-close-inverted-16.svg ├── glyph-new-16.svg ├── glyph-new-inverted-16.svg ├── glyph-notification-circle-16.svg ├── glyph-pin-pinned-12.svg ├── glyph-pin-pinned-inverted-12.svg ├── glyph-sidebar-collapse-16.svg ├── glyph-sidebar-collapse-inverted-16.svg ├── glyph-sidebar-expand-16.svg ├── glyph-sidebar-expand-inverted-16.svg ├── icon.png ├── linux.css ├── osx.css ├── persistant.css ├── tc-side-white.svg ├── tc-side.svg ├── tc-top-white.svg ├── tc-top.svg └── win.css ├── utils.js ├── vertical-tabbrowser.xml └── verticaltabs.js /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "plugins": [ 8 | "mozilla" 9 | ], 10 | "globals": { 11 | "Components": false, 12 | "Services": false, 13 | "Cc": false, 14 | "Ci": false, 15 | "TAB_DROP_TYPE": false, 16 | "TabsInTitlebar": false, 17 | "_startScroll": false, 18 | "_distanceScroll": false, 19 | "_stopScroll": false 20 | }, 21 | "rules": { 22 | "mozilla/import-globals-from": 1, 23 | "array-bracket-spacing": [2, "never"], 24 | "camelcase": 0, 25 | "comma-dangle": 0, 26 | "comma-spacing": 2, 27 | "computed-property-spacing": [2, "never"], 28 | "curly": 2, 29 | "default-case": 0, 30 | "eqeqeq": [2, "smart"], 31 | "generator-star-spacing": [2, {"before": false, "after": false}], 32 | "id-blacklist": 0, 33 | "indent": [2, 2], 34 | "no-bitwise": 1, 35 | "no-console": 1, 36 | "no-empty-function": 0, 37 | "no-magic-numbers": 0, 38 | "no-mixed-spaces-and-tabs": [2, "smart-tabs"], 39 | "no-shadow": 0, 40 | "no-trailing-spaces": [2, {"skipBlankLines": false}], 41 | "no-unused-vars": [2, {"vars": "local", "args": "none"}], 42 | "object-curly-spacing": [2, "never"], 43 | "no-var": 2, 44 | "prefer-const": 0, 45 | "quotes": [2, "single", "avoid-escape"], 46 | "semi": [2, "always"], 47 | "space-before-function-paren": [2, {"anonymous": "always", "named": "never"}], 48 | "space-infix-ops": 2, 49 | "space-unary-ops": 2 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | *~ 3 | .DS_Store 4 | TabCenterTest.zip 5 | *.xpi 6 | /node_modules/ 7 | npm-debug.log 8 | /locale/** 9 | !/locale/README.md 10 | -------------------------------------------------------------------------------- /.jpmignore: -------------------------------------------------------------------------------- 1 | .* 2 | * 3 | !/README.md 4 | !/package.json 5 | !/main.js 6 | !/chrome.manifest 7 | !/data/** 8 | !/get-locale-strings.js 9 | !/locale/** 10 | !/override-bindings.css 11 | !/skin/** 12 | !/utils.js 13 | !/vertical-tabbrowser.xml 14 | !/verticaltabs.js 15 | -------------------------------------------------------------------------------- /.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "at-rule-empty-line-before": [ "always", { 4 | "except": [ "blockless-group", "first-nested" ], 5 | "ignore": ["after-comment"] 6 | }], 7 | "at-rule-name-case": "lower", 8 | "at-rule-name-space-after": "always-single-line", 9 | "at-rule-semicolon-newline-after": "always", 10 | "block-closing-brace-newline-after": "always-multi-line", 11 | "block-closing-brace-newline-before": "always-multi-line", 12 | "block-no-empty": true, 13 | "block-opening-brace-newline-after": "always-multi-line", 14 | "block-opening-brace-space-before": "always", 15 | "color-hex-case": "lower", 16 | "color-hex-length": "short", 17 | "color-no-invalid-hex": true, 18 | "declaration-bang-space-after": "never", 19 | "declaration-bang-space-before": "always", 20 | "declaration-block-no-ignored-properties": true, 21 | "declaration-block-no-shorthand-property-overrides": true, 22 | "declaration-block-properties-order": [[ 23 | { 24 | "order": "flexible", 25 | "properties": [ 26 | "position", 27 | "z-index", 28 | "top", 29 | "right", 30 | "bottom", 31 | "left" 32 | ]}, 33 | { 34 | "order": "flexible", 35 | "properties": [ 36 | "height", 37 | "max-height", 38 | "min-height", 39 | "width", 40 | "max-width", 41 | "min-width", 42 | "display", 43 | "box-sizing", 44 | "overflow", 45 | "overflow-x", 46 | "overflow-y", 47 | "padding", 48 | "padding-top", 49 | "padding-right", 50 | "padding-bottom", 51 | "padding-left", 52 | "border", 53 | "border-top", 54 | "border-right", 55 | "border-bottom", 56 | "border-left", 57 | "border-radius", 58 | "margin", 59 | "margin-top", 60 | "margin-right", 61 | "margin-bottom", 62 | "margin-left" 63 | ]}], { "unspecified": "bottomAlphabetical" }], 64 | "declaration-block-semicolon-newline-after": "always-multi-line", 65 | "declaration-block-semicolon-space-before": "never", 66 | "declaration-block-trailing-semicolon": "always", 67 | "declaration-colon-newline-after": "always-multi-line", 68 | "declaration-colon-space-before": "never", 69 | "function-calc-no-unspaced-operator": true, 70 | "function-comma-newline-after": "never-multi-line", 71 | "function-comma-space-after": "always", 72 | "function-comma-space-before": "never", 73 | "function-linear-gradient-no-nonstandard-direction": true, 74 | "function-max-empty-lines": 0, 75 | "function-name-case": "lower", 76 | "function-parentheses-newline-inside": "never-multi-line", 77 | "function-parentheses-space-inside": "never", 78 | "function-whitespace-after": "always", 79 | "indentation": 2, 80 | "max-empty-lines": 1, 81 | "media-feature-colon-space-after": "always", 82 | "media-feature-colon-space-before": "never", 83 | "media-feature-no-missing-punctuation": true, 84 | "media-feature-range-operator-space-after": "always", 85 | "media-feature-range-operator-space-before": "always", 86 | "media-query-list-comma-newline-after": "always-multi-line", 87 | "media-query-list-comma-space-after": "always-single-line", 88 | "media-query-list-comma-space-before": "never", 89 | "media-query-parentheses-space-inside": "never", 90 | "no-eol-whitespace": true, 91 | "no-extra-semicolons": true, 92 | "no-invalid-double-slash-comments": true, 93 | "no-missing-eof-newline": true, 94 | "number-leading-zero": "always", 95 | "number-no-trailing-zeros": true, 96 | "length-zero-no-unit": true, 97 | "property-case": "lower", 98 | "rule-non-nested-empty-line-before": [ "always-multi-line", { 99 | "ignore": ["after-comment"] 100 | } ], 101 | "selector-attribute-brackets-space-inside": "never", 102 | "selector-attribute-operator-space-after": "never", 103 | "selector-attribute-operator-space-before": "never", 104 | "selector-combinator-space-after": "always", 105 | "selector-combinator-space-before": "always", 106 | "selector-list-comma-newline-after": "always", 107 | "selector-list-comma-space-before": "never", 108 | "selector-max-empty-lines": 0, 109 | "selector-pseudo-class-case": "lower", 110 | "selector-pseudo-class-parentheses-space-inside": "never", 111 | "selector-pseudo-element-case": "lower", 112 | "selector-pseudo-element-colon-notation": "double", 113 | "selector-pseudo-element-no-unknown": true, 114 | "selector-type-case": "lower", 115 | "shorthand-property-no-redundant-values": true, 116 | "string-no-newline": true, 117 | "string-quotes": "double", 118 | "unit-case": "lower", 119 | "unit-no-unknown": true, 120 | "value-list-comma-newline-after": "always-multi-line", 121 | "value-list-comma-space-after": "always-single-line", 122 | "value-list-comma-space-before": "never" 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "4.2.0" 4 | branches: 5 | only: 6 | - master 7 | script: 8 | - npm run lint 9 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # v1.37 - Ready for Shield 2 | 3 | ### Changes: 4 | 5 | * Don't support tabs in reverse mode 6 | * Remove version restrictions 7 | 8 | # v1.36 - Sunset with Version 55 9 | 10 | ### Changes: 11 | 12 | * actually, sunset after Firefox v55 13 | 14 | # v1.35 - Sunset with Version 54 15 | 16 | ### Fixes: 17 | 18 | * Let people close tabs with a 'Stay on Page' confirmation dialogue. (Fixes #1077.) 19 | 20 | ### Chore: 21 | 22 | * restrict version between 51 and 54 23 | 24 | # v1.34 - Stop the Crashes 25 | 26 | ### Fixes: 27 | 28 | * Closing tabs on nightly no longer leaves space and crashes. (Fixes #1062.) 29 | 30 | # v1.33 - Spinners and Filters 31 | 32 | ### Fixes: 33 | 34 | * Restore spinners in various versions and in compact themes. (Fixes #1038.) 35 | * Add custom attribute to the filtered out tabs to keep track of them. (Fixes #1043, #1045, #1044, #1046, #999, #1040.) 36 | 37 | # v1.32 - Filtering, Telemetry, FullScreen 38 | 39 | ### Fixes: 40 | 41 | * Don't permanently hide tabs if you close the window while filtering. (Fixes #1015.) 42 | * Don't filter tabs on browser restart. (Fixes #1015.) 43 | * Get F11 fullscreen and toggle working. (Fixes #951, #952.) 44 | * Search stays visible until impossible. 45 | * Tabs are permanently destroyed when filtered and browser closes. 46 | * Add en-locale for those who are not set to en-US. 47 | * Send ping when hotkey used to open and close sidebar (and focus and unfocus search as a side-effect). (Fixes #1002.) 48 | * Pinned tabs are reversed on browser restart 49 | * New tabs are now filtered in search. (Fixes #1004.) 50 | * Send ping to telemetry when search is engaged. 51 | * Child tabs open in correct position (reverse and pinned set). 52 | * Enable scrolling in reverse mode when using a mouse. (Fixes #988.) 53 | * Tabs are opened in correct positions in reverse. (Fixes #956.) 54 | 55 | # v1.31 - Welcome on board! 🛳 56 | 57 | ### New Features: 58 | 59 | * Simplified large look for new tabs. 60 | * Onboarding tour. 61 | 62 | ### Fixes: 63 | 64 | * Add event_type field. (Fixes #939.) 65 | * Tab animation fixes. (Fixes #918, #897.) 66 | * Restore Places controllers after rearranging navigator-toolbox. . 🎉 (Fixes #583.) 67 | * Always check toggledon attribute against 'true'. 68 | * Tour videos had a black border. 69 | * Toolbar customization. 70 | * "Close Other Tabs" confirmation dialog. (Fixes #937.) 71 | * Toggle top/side tabs focuses wrong tab. (Fixes #849.) 72 | * Don't allow tabs opened from pinned tabs to open above them. (Fixes #932.) 73 | * Pinned tabs get closed from 'Close Tabs Above' context option. (Fixes #928.) 74 | * pinned tabs stay to the left when on top. (Fixes #927.) 75 | * compatibility with Toolbar Position Changer add-on 76 | * Rework pinned tabs. (Fixes #880, #888, #879, #817, #881.) 77 | * Merge all tab resize requests in an event loop turn. 78 | * updateWindowResizers doesn't exist sometimes. 79 | * Splitter only accepts left clicks. (Fixes #900.) 80 | * Scroll to open tab correctly after exiting the tab column 81 | * Drag & scroll on reversed tabs. 82 | 83 | 84 | # v1.29 - Windows and Linux. 85 | 86 | ### Fixes: 87 | 88 | * Restore each window session on windows and linux. 89 | * Restore persistant attributes for win and linux (not per window yet). (Fixes #818.) 90 | 91 | 92 | # v1.28 - Go somewhere else… 93 | 94 | ### Fixes: 95 | 96 | * Fix update links. (Fixes #727.) 97 | 98 | 99 | # v1.27 - Waffling… 100 | 101 | ### New Features: 102 | 103 | * Add a toggle to switch between side tabs and top tabs. (Fixes #691.) 104 | * Add twenty [new locales](https://pontoon.mozilla.org/projects/test-pilot-tab-center/)! 105 | * Save TabCenter state per-window. (Fixes #391, #431, #528.) 106 | * Reverse display order for "Open Tabs Above" option 107 | 108 | ### Fixes: 109 | 110 | * Reversed scroll. 111 | * Print preview. (Fixes #791, #792.) 112 | * Resize tabs on initing a tab. 113 | * Upgrade will not reverse tabs. (Fixes #780.) 114 | * Scroll jump to top of tab list. (Fixes #738, #693.) 115 | * reversed mouse-wheel scrolling. (Fixes #776.) 116 | * Errors. 117 | * Remove popuphidden event listener on unload. 118 | * Cleaner Animations. (Fixes #758.) 119 | * Theme Changes in Win and Linux. (Fixes #476.) 120 | * Mouse enter after toggle. (Fixes #759.) 121 | * pin-button dynamic tooltiptext. (Fixes #751.) 122 | * Typo, and change to array for filter. 123 | * Visible tabs null on changing groups. (Fixes #754.) 124 | * Restore urlbar value. (Fixes #739.) 125 | * Don't allow tab to be hidden if there is no label. (Fixes #750, #752.) 126 | * Check for tab.label before trying to match. 127 | * Init pin-button with "shrink" tooltip. (Fixes #742.) 128 | * Search input overflow. (Fixes #743.) 129 | * Separate tabactions and tabgroupchange in clearfind. (Fixes #733.) 130 | * Force pinned width to be half of window size, or less, when resizing the window. (Fixes #604.) 131 | * Do not scroll selected tab into view on mouse out/in. (Fixes #730.) 132 | * Right click on various buttons shouldn't activate them. (Fixes #472.) 133 | * Only clear visible tabs when using tabgroups to switch. 134 | * Re-work the Telemetry ping. 🎧 135 | * Hide tab center in print preview mode. (Fixes #721.) 136 | * refreshThumbAndLabel is now a function. (Fixes #718.) 137 | * Filter only through visible tabs. (Fixes #692.) 138 | * First tab title should not become "new tab". (Fixes #564.) 139 | * Fix initial tab scrolling. (Fixes #698.) 140 | * Allow autocomplete to expand to full width in windows fullscreen. (Fixes #705.) 141 | * On change of overflow, keep scroll position the same. (Fixes #669.) 142 | * Hide TC in windows fullscreen with sidebar open. 143 | 144 | 145 | # v1.26 - Tweaks and other crop. 146 | 147 | ### Fixes: 148 | 149 | * Allow light colored expand icon in dev theme. (Fixes #679.) 150 | * Link from pinned tab does not change focus. (Fixes #672.) 151 | * Clean up crop, remove crop mutation listener. 152 | * Default tabs to opening below. 153 | * Don't clear search on mouse out when open. (Fixes #663.) 154 | * Crop the too-longtitles of tabs. (Fixes #656.) 155 | * Hide sidebar and awesomebar in fullscreen. (Fixes #660, #307, #642.) 156 | 157 | 158 | # v1.25 - Shield-ready. 159 | 160 | ### New Features: 161 | 162 | * Change defaults. 163 | 164 | ### Fixes: 165 | 166 | * Add crop when opening with hotkey. (Fixes #637, #633.) 167 | * Update href of Test Pilot badge link. 168 | * Return of the Scroll Bar… (Fixes #551.) 169 | * Handle touch support in a nicer way. 170 | * Start page loses focus with pinned tabs. (Fixes #605.) 171 | * Keep search context menu open in windows. (Fixes #612.) 172 | * Clear search filter on new tab. (Fixes #620.) 173 | * Only load thumbnails when tabs are large. 174 | * Don't shrink the panel immediately on exitting. 175 | * Delete tabs without waiting for animation to finish. 🐎 🏁 (Fixes #306.) 176 | * Allow pasting into find-input when unpinned. (Fixes #572.) 177 | * Scroll to the correct tab when Tab Center is expanded. 178 | * Find icon stays in place even when searching with long strings. (Fixes #599.) 179 | * Keep expanded on hover for context menus. (Fixes #470, #572.) 180 | * Uh, actually fix the arrows on overflow. 🙄 181 | * Put window controls in a better position during fullscreen. (Fixes #509.) 182 | * Rebuild newtab button. (Fixes #471.) 183 | * Smooth out scrolling in expanded sidebar. (Fixes #273, #492.) 184 | * Search box should not overflow. (Fixes #573.) 185 | * Remove left border from Windows 7 and 8. 𝌉 (Fixes #150.) 186 | 187 | # v1.24 - Stuff. 188 | 189 | ### New Features: 190 | 191 | * Scroll tabbrowser when dragging a tab. 📜 📑 (Fixes #500.) 192 | * More styling updates. 🖼 (Fixes #473.) 193 | * Add a hidden option to disable thumbnails. 🕵 (Fixes #439.) 194 | * Styling Change/Refresh. 🍾 195 | 196 | ### Fixes: 197 | 198 | * Handle retina devices in the thumbnails! 🌱 🌷 199 | * Take the sidebar into account when determining the autocomplete's place. 200 | * Run the initialization code for _all_ the new windows. 🌠 (Fixes #529.) 201 | * Introduce delay before resizing tabs. ⏱ (Fixes #465.) 202 | * Switch to canvas! 🖼 (Fixes #516.) 203 | * Disappearing labels. 📛 (Fixes #475, #511.) 204 | * Forgot to remove an "a". 🅰️ 205 | * Adjust Selected Tab Appearance and Stuff. 206 | * Hide private browsing icon. 🕵 (Fixes #502.) 207 | * Alignment and Flex Changes to Try and Prevent Toolbar Shifting. 💪 208 | * Add Mac Specific Styling. 🍎 209 | * Re-add the palette on uninstall. 🎨 (Fixes #479.) 210 | * Double-clicking on thumbnails no longer opens new tabs. ⛵ (Fixes #457.) 211 | * Hide wyciwyg:// uris. ❓❓❓ 212 | 213 | # v1.23 - More styles. 214 | 215 | ### Fixes: 216 | 217 | * Various style fixes. 💅🏻 218 | * Ignore all .DS_Store files. 219 | * Use a non-blurry find icon. 220 | * Hide splitter when in fullscreen. (Fixes #441.) 221 | * Use a better API for thumbnail loading. (Fixes #427.) 222 | * Tab title is font-weight normal on small tabs. (Fixes #425.) 223 | * Restore the close tabs message on uninstall. (Fixes #426.) 224 | 225 | # v1.22 - Big Findy Tunes. 226 | 227 | ### New Features: 228 | 229 | * Show larger tab thumbnails when there is extra space. ‼️ 💯 230 | * Add a search box to quickly filter your tabs. 🔍 231 | 232 | ### Fixes: 233 | 234 | * Click on find icon to focus the find bar. 🌁 235 | * Toolbar icons correctly change color in dark themes. (Fixes #305.) 236 | * Load thumbnails for all sites. 💅🖼 (Fixes #411, #415, #167, #353.) 237 | * Make sure the splitter doesn’t grow too large. 🐞 (Fixes #414.) 238 | * Resize on deleting a tab. 239 | * Only show light pin if dark theme in linux. 240 | * Don't show the really wide splitter in fullscreen. 👀 (Fixes #392.) 241 | 242 | # v1.21 - Sidebar updates, part 1. 243 | 244 | The first batch of sidebar changes… 245 | 246 | ### Features: 247 | 248 | * Set pref in options to change new tab opening location. 👆👇‽ 👌 (Fixes #322.) 249 | * Make the pinned sidebar resizable. ⟸║⟹ 😃 (Fixes #23.) 250 | 251 | ### Fixes: 252 | 253 | * Remove slide-in animation from dragging tabs. 🐉 📑 (Fixes #326.) 254 | * Reopening a tab scrolls to it instead of the bottom. (Fixes #338.) 255 | * Show muted icon if no sound playing. 🙊 (Fixes #323.) 256 | 257 | # v1.20 - More fixes. 258 | 259 | Keeping on knocking out the most reported problems. 260 | 261 | ### Fixes: 262 | 263 | * Bottom tab is no longer cut off. ✂️ (Fixes #238.) 264 | * Don't double-wrap the telemetry ping. 📞🏡 (Fixes #327.) 265 | * Remove the white bar from the titlebar. 📶 (Fixes #319.) 266 | * Allow onunload trigger to resolve before animating tab close. ❌🔜 (Fixes #317.) 267 | * Keep sidebar expanded when hovering over context menu. ⏭ (Fixes #287, #312.) 268 | * Don't show unidentified buttons in the tab's toolbar. (Fixes #4, #304.) 269 | * Remove margin from popups. (Fixes #135.) 270 | 271 | 272 | # v1.19 - First two-week sprint. 273 | 274 | I think that was kinda long to wait for a release. I might push those out sooner next time… 275 | 276 | ### New features: 277 | 278 | * Nicer animation when opening and closing tabs. 279 | 280 | ### Fixes: 281 | 282 | * Move new tabs to the top of the list. (Fixes #3.) 283 | * Don't hide the toolbar in customize mode. (Fixes #168.) 284 | * Fix scrolling to selected tab. (Fixes #245.) 285 | * Don't show sidetabs on popups. (Fixes #135.) 286 | * Fix the colours for light and dark themes. (Fixes #132.) 287 | 288 | 289 | # v1.18 - Everything on the side… 290 | 291 | ### Fixes: 292 | 293 | * Much cleanup, most of which should be invisible. 294 | * @ericawright added ESLint and StyleLint, and cleaned up all the errors! 💯 295 | * Fixed possibly the second most reported bug (#62). Sidebars now work correctly! 296 | 297 | 298 | # v1.17 - Everything in its right place. 299 | 300 | ### Fixes: 301 | 302 | * Finally fixed #105, possibly the most duplicated issue in this repo! 🎉 303 | * That's all. 304 | 305 | 306 | # v1.16 - Measure all the things! 307 | 308 | Okay, only some of the things… 309 | See [this page](https://github.com/bwinton/VerticalTabs/blob/master/docs/metrics.md) for details of what we're tracking. 310 | 311 | 312 | # v1.15 - Fiery Death release! 313 | 314 | (Mostly for XUL Bindings, which do the absolute worst thing in every given scenario. 😠) 315 | Anyways… 316 | 317 | ### Fixes: 318 | 319 | * Fixed Customize Mode! 🎉 320 | * Added back the first two context menu items! (Like anyone right-clicks… Hah! 😉) 321 | 322 | 323 | # v1.14 - Making people happy! 324 | 325 | Some small, but I would claim important, fixes. 🙂 326 | 327 | ### Fixes: 328 | 329 | * The urlbar autocomplete box no longer covers the whole window (#102). 330 | * Linux users can once again see the url they're hovering over (#100). 331 | * And finally, we now mention that we're a TestPilot experiment (#101). 332 | 333 | Thank you everyone for testing Tab Center and reporting all the issues! 334 | 335 | 336 | # v1.13 - Post smoke-test cleanup. 337 | 338 | We got a lot of good feedback from the first round of Test Pilot, and so thought we would fix some of the bugs! 339 | 340 | ### Fixes: 341 | 342 | * Trackpad scrolling should work again. 343 | * Pinned tabs are now distinguishable from normal tabs. 344 | * The activity indicator for pinned tabs doesn't look hideous. 345 | * The first tab is no longer always named "New Tab". 346 | * The less-useful alltabs dropdown has been hidden. 347 | * ![Magic](http://img.pandawhale.com/26648-Doug-Henning-Magic-gif-szhM.gif) 348 | 349 | 350 | # v1.12 - Minor updates. 351 | 352 | Just some minor clean up for the incoming Test Piloteers! 🚀 353 | 354 | ### Fixes: 355 | 356 | * Add an icon and description to the add-ons page. 357 | * Stop duplicating items in the all-tabs popup. 358 | * Mostly fix pinned tabs when uninstalling the add-on. 359 | * A restart of the browser will get them all back if anything goes wrong, but it should be much better now… 360 | 361 | 362 | # v1.11 - Now with auto-updating! 363 | 364 | ### Fixes: 365 | 366 | * Style Fixes for Dark Themes. 367 | * Style Fixes for Audio Indicators. 368 | * Style Fixes for Private Browsing. 369 | * Multiple Window Support! \o/ 370 | * The second window is now bigger than 88 pixels! 371 | * No longer messes everything up when uninstalling! 372 | 373 | 374 | # v1.10 - Let's Test Updates! 375 | 376 | Lots of changes, mostly fixing things QA found. 377 | 378 | ### Fixes: 379 | 380 | * Remove all the options, since they didn't work. 381 | * Theme support. 382 | * Tabs-on-right support. 383 | * Show the DevTools and Findbar. 384 | * Show the pin button in Dark-Themed Dev Edition. 385 | * Persist the pinned state across sessions. 386 | 387 | 388 | # v1.9 - Pre-TestPilot Test Release! 389 | 390 | The first release with enough stuff fixed to be considered for inclusion in Test Pilot. 391 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Commit Message Conventions 2 | ========================== 3 | These rules are adapted from [the AngularJS commit conventions](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit). 4 | 5 | * [Goals](#goals) 6 | * [Generating CHANGELOG.md](#generating-changelogmd) 7 | * [Recognizing unimportant commits](#recognizing-unimportant-commits) 8 | * [Provide more information when browsing the history](#provide-more-information-when-browsing-the-history) 9 | * [Merge Commits](#merge-commits) 10 | * [Format of the commit message](#format-of-the-commit-message) 11 | * [Subject line](#subject-line) 12 | * [Allowed ``](#allowed-type) 13 | * [`` text](#subject-text) 14 | * [Message body](#message-body) 15 | * [Message footer](#message-footer) 16 | * [Breaking changes](#breaking-changes) 17 | * [Referencing issues](#referencing-issues) 18 | * [Examples](#examples) 19 | 20 | Goals 21 | ----- 22 | * allow generating CHANGELOG.md by script 23 | * allow ignoring commits by git bisect (not important commits like formatting) 24 | * provide better information when browsing the history 25 | 26 | ### Generating CHANGELOG.md 27 | We use these three sections in changelog: new features, bug fixes, breaking changes. 28 | This list could be generated by script when doing a release. Along with links to related commits. 29 | Of course you can edit this change log before actual release, but it could generate the skeleton. 30 | 31 | List of all subjects (first lines in commit message) since last release: 32 | ```bash 33 | git log ..HEAD --first-parent --pretty=format:%s 34 | ``` 35 | 36 | 37 | New features in this release 38 | ```bash 39 | git log ..HEAD --first-parent --grep feature: 40 | ``` 41 | 42 | ### Recognizing unimportant commits 43 | These are formatting changes (adding/removing spaces/empty lines, indentation), missing semi colons, comments. So when you are looking for some change, you can ignore these commits - no logic change inside this commit. 44 | 45 | When bisecting, you can ignore these by: 46 | ```bash 47 | git bisect skip $(git rev-list --grep irrelevant HEAD) 48 | ``` 49 | 50 | ### Provide more information when browsing the history 51 | This would add kinda “context” information. 52 | Look at these messages (taken from last few angular’s commits): 53 | 54 | * Fix small typo in docs widget (tutorial instructions) 55 | * Fix test for scenario.Application - should remove old iframe 56 | * docs - various doc fixes 57 | * docs - stripping extra new lines 58 | * Replaced double line break with single when text is fetched from Google 59 | * Added support for properties in documentation 60 | 61 | 62 | All of these messages try to specify where is the change. But they don’t share any convention... 63 | 64 | --- 65 | 66 | Merge commits 67 | ------------- 68 | 69 | Since we only add code through pull requests, the commit messages for those should follow this format. (The commit messages for non-merges don't need to.) 70 | 71 | 72 | ### Format of the commit message 73 | ```markdown 74 | : 75 | 76 | 77 | 78 |