├── chrome
├── skin
│ ├── win
│ │ ├── grain.png
│ │ ├── Toolbar.png
│ │ ├── Toolbar-XP.png
│ │ ├── Toolbar@2x.png
│ │ ├── menuPanel.png
│ │ ├── Toolbar-aero.png
│ │ ├── Toolbar-win8.png
│ │ ├── menuPanel@2x.png
│ │ ├── Toolbar-aero@2x.png
│ │ ├── Toolbar-win8@2x.png
│ │ ├── menuPanel-aero.png
│ │ ├── Toolbar-inverted.png
│ │ ├── Toolbar-lunaSilver.png
│ │ ├── menuPanel-aero@2x.png
│ │ ├── Toolbar-inverted@2x.png
│ │ ├── quickAccess.css
│ │ └── TabView.css
│ ├── common
│ │ ├── icon.png
│ │ ├── panes.png
│ │ ├── actions.png
│ │ ├── newItem.png
│ │ ├── actions@2x.png
│ │ ├── edit-light.png
│ │ ├── howto
│ │ │ ├── grid.png
│ │ │ ├── list.png
│ │ │ ├── create.png
│ │ │ ├── icons.png
│ │ │ ├── pinned.png
│ │ │ ├── search.png
│ │ │ ├── stack.png
│ │ │ ├── thumbs.png
│ │ │ ├── freearrange.png
│ │ │ └── singleview.png
│ │ ├── panes@2x.png
│ │ ├── settings.png
│ │ ├── utils
│ │ │ ├── sad.png
│ │ │ ├── tags.png
│ │ │ ├── happy.png
│ │ │ ├── promo.jpg
│ │ │ ├── hourglass.png
│ │ │ ├── matchhead.png
│ │ │ ├── bg-grainy-grass.png
│ │ │ └── bg-gradient-grass.png
│ │ ├── settings@2x.png
│ │ ├── group-controls.png
│ │ ├── group-controls@2x.png
│ │ ├── compatibilityFix
│ │ │ ├── edit-dark.png
│ │ │ ├── actions-dark.png
│ │ │ ├── actions-dark@2x.png
│ │ │ ├── group-controls-dark.png
│ │ │ ├── group-controls-dark@2x.png
│ │ │ ├── TabCenter.css
│ │ │ └── FTDeepDark-scrollbars.css
│ │ ├── menu-arrow.svg
│ │ ├── defaults.css
│ │ ├── scrollbars.css
│ │ └── TabView.css
│ ├── mac
│ │ ├── Toolbar.png
│ │ ├── Toolbar@2x.png
│ │ ├── menuPanel.png
│ │ ├── menuPanel@2x.png
│ │ ├── Toolbar-inverted.png
│ │ ├── Toolbar-yosemite.png
│ │ ├── menuPanel-yosemite.png
│ │ ├── Toolbar-inverted@2x.png
│ │ ├── Toolbar-yosemite@2x.png
│ │ ├── menuPanel-yosemite@2x.png
│ │ ├── quickAccess.css
│ │ ├── tabview-frame.css
│ │ └── TabView.css
│ └── linux
│ │ ├── Toolbar.png
│ │ ├── Toolbar@2x.png
│ │ ├── menuPanel.png
│ │ ├── menuPanel@2x.png
│ │ ├── Toolbar-inverted.png
│ │ ├── Toolbar-inverted@2x.png
│ │ ├── tabview-frame.css
│ │ ├── quickAccess.css
│ │ └── TabView.css
├── content
│ ├── addonicons.png
│ ├── bug566510.xul
│ ├── utils
│ │ └── helptext.xul
│ └── quickAccess.xul
└── locale
│ ├── zh-CN
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── zh-TW
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── ja-JP-mac
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── ja-JP
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── cs
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── en-US
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── es
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ └── TabView.properties
│ ├── fy-NL
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── pl
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── nl
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ └── TabView.properties
│ ├── sl
│ ├── utils-toaster.properties
│ ├── utils-keys.properties
│ ├── defaults.dtd
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── sv-SE
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ ├── TabView.properties
│ └── TabView.dtd
│ ├── de
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ └── TabView.properties
│ ├── pt-BR
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ └── TabView.properties
│ ├── fr
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ └── TabView.properties
│ └── pt-PT
│ ├── utils-toaster.properties
│ ├── defaults.dtd
│ ├── utils-keys.properties
│ ├── options.properties
│ ├── utils-preferences.dtd
│ ├── utils-about.dtd
│ └── TabView.properties
├── README.md
├── resource
├── modules
│ ├── compatibilityFix
│ │ ├── windowFixes.jsm
│ │ ├── FTDeepDark.jsm
│ │ ├── sandboxFixes.jsm
│ │ ├── bug566510.jsm
│ │ └── SessionManager.jsm
│ ├── utils
│ │ ├── windowTools.jsm
│ │ ├── windowUtilsPreload.jsm
│ │ ├── attributes.jsm
│ │ ├── Strings.jsm
│ │ └── sandboxUtils.jsm
│ ├── paneHowTo.jsm
│ ├── AllTabs.jsm
│ ├── content
│ │ ├── CatchRules.jsm
│ │ └── utils
│ │ │ ├── ModuleInSandbox.jsm
│ │ │ └── api.jsm
│ ├── paneTabGroups.jsm
│ └── migrate.jsm
├── defaultsContent.js
└── workers
│ ├── preloadIcon.js
│ └── findDominantColor.js
└── .gitattributes
/chrome/skin/win/grain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/grain.png
--------------------------------------------------------------------------------
/chrome/skin/common/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/icon.png
--------------------------------------------------------------------------------
/chrome/skin/common/panes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/panes.png
--------------------------------------------------------------------------------
/chrome/skin/mac/Toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar.png
--------------------------------------------------------------------------------
/chrome/content/addonicons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/content/addonicons.png
--------------------------------------------------------------------------------
/chrome/skin/common/actions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/actions.png
--------------------------------------------------------------------------------
/chrome/skin/common/newItem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/newItem.png
--------------------------------------------------------------------------------
/chrome/skin/linux/Toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar.png
--------------------------------------------------------------------------------
/chrome/skin/mac/Toolbar@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar@2x.png
--------------------------------------------------------------------------------
/chrome/skin/mac/menuPanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-XP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-XP.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar@2x.png
--------------------------------------------------------------------------------
/chrome/skin/win/menuPanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel.png
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups 已更新至版本 $vx。
3 | line2=点击这里了解有哪些变更。
4 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups 更新到了 $vx 版本。
3 | line2=點擊這裡來檢視有什麼變更。
4 |
--------------------------------------------------------------------------------
/chrome/skin/common/actions@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/actions@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/edit-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/edit-light.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/grid.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/list.png
--------------------------------------------------------------------------------
/chrome/skin/common/panes@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/panes@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/settings.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/sad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/sad.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/tags.png
--------------------------------------------------------------------------------
/chrome/skin/linux/Toolbar@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar@2x.png
--------------------------------------------------------------------------------
/chrome/skin/linux/menuPanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/menuPanel.png
--------------------------------------------------------------------------------
/chrome/skin/mac/menuPanel@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel@2x.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-aero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-aero.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-win8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-win8.png
--------------------------------------------------------------------------------
/chrome/skin/win/menuPanel@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/create.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/icons.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/pinned.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/pinned.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/search.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/stack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/stack.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/thumbs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/thumbs.png
--------------------------------------------------------------------------------
/chrome/skin/common/settings@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/settings@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/happy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/happy.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/promo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/promo.jpg
--------------------------------------------------------------------------------
/chrome/skin/linux/menuPanel@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/menuPanel@2x.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-aero@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-aero@2x.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-win8@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-win8@2x.png
--------------------------------------------------------------------------------
/chrome/skin/win/menuPanel-aero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel-aero.png
--------------------------------------------------------------------------------
/chrome/skin/common/group-controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/group-controls.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/hourglass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/hourglass.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/matchhead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/matchhead.png
--------------------------------------------------------------------------------
/chrome/skin/linux/Toolbar-inverted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar-inverted.png
--------------------------------------------------------------------------------
/chrome/skin/mac/Toolbar-inverted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-inverted.png
--------------------------------------------------------------------------------
/chrome/skin/mac/Toolbar-yosemite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-yosemite.png
--------------------------------------------------------------------------------
/chrome/skin/mac/menuPanel-yosemite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel-yosemite.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-inverted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-inverted.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-lunaSilver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-lunaSilver.png
--------------------------------------------------------------------------------
/chrome/skin/win/menuPanel-aero@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/menuPanel-aero@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/group-controls@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/group-controls@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/freearrange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/freearrange.png
--------------------------------------------------------------------------------
/chrome/skin/common/howto/singleview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/howto/singleview.png
--------------------------------------------------------------------------------
/chrome/skin/mac/Toolbar-inverted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-inverted@2x.png
--------------------------------------------------------------------------------
/chrome/skin/mac/Toolbar-yosemite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/Toolbar-yosemite@2x.png
--------------------------------------------------------------------------------
/chrome/skin/win/Toolbar-inverted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/win/Toolbar-inverted@2x.png
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups がバージョン $vx に更新されました。
3 | line2=変更点の確認はここをクリックしてください。
4 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups がバージョン $vx に更新されました。
3 | line2=変更点の確認はここをクリックしてください。
4 |
--------------------------------------------------------------------------------
/chrome/skin/linux/Toolbar-inverted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/linux/Toolbar-inverted@2x.png
--------------------------------------------------------------------------------
/chrome/skin/mac/menuPanel-yosemite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/mac/menuPanel-yosemite@2x.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/bg-grainy-grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/bg-grainy-grass.png
--------------------------------------------------------------------------------
/chrome/skin/common/utils/bg-gradient-grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/utils/bg-gradient-grass.png
--------------------------------------------------------------------------------
/chrome/locale/cs/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Skupiny panelů
2 | line1=Skupiny panelů byly aktualizovány na verzi $vx.
3 | line2=Zobrazit seznam změn.
4 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups was updated to version $vx.
3 | line2=Click here to see what's changed.
4 |
--------------------------------------------------------------------------------
/chrome/locale/es/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups se actualizó a la versión $vx.
3 | line2=Pulse aquí para ver los cambios.
4 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups was updated to version $vx.
3 | line2=Click here to see what's changed.
4 |
--------------------------------------------------------------------------------
/chrome/locale/pl/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups was updated to version $vx.
3 | line2=Click here to see what's changed.
4 |
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/edit-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/edit-dark.png
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/actions-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/actions-dark.png
--------------------------------------------------------------------------------
/chrome/locale/nl/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups is bijgewerkt naar versie $vx.
3 | line2=Klik hier om te zien wat er is gewijzigd.
4 |
--------------------------------------------------------------------------------
/chrome/locale/sl/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups je bil posodobljen na različico $vx.
3 | line2=Kliknite tukaj za ogled sprememb.
4 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tab Groups
2 | line1=Tab Groups uppdaterades till version $vx.
3 | line2=Klicka här för att se vad som ändrades.
4 |
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/actions-dark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/actions-dark@2x.png
--------------------------------------------------------------------------------
/chrome/locale/de/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Tabgruppen
2 | line1=Tabgruppen wurde auf Version $vx aktualisiert.
3 | line2=Erfahren Sie hier, was sich geändert hat.
4 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Grupo de abas
2 | line1=O grupo de abas foi atualizado para versão $vx
3 | line2=Clique aqui para ver o que mudou.
4 |
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/group-controls-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/group-controls-dark.png
--------------------------------------------------------------------------------
/chrome/locale/fr/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Groupes d'onglets
2 | line1=Groupes d'onglets a été mis à jour vers la version $vx.
3 | line2=Cliquez ici pour voir ce qui a changé
4 |
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/group-controls-dark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Quicksaver/Tab-Groups/HEAD/chrome/skin/common/compatibilityFix/group-controls-dark@2x.png
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/utils-toaster.properties:
--------------------------------------------------------------------------------
1 | title=Grupos de Separadores
2 | line1=Os Grupos de Separadores foram actualizados para a versão $vx.
3 | line2=Clica aqui para ver as alterações.
4 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/cs/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/locale/de/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/es/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/pl/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=なし
7 | spacebar=スペース
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=←
13 | up=↑
14 | right=→
15 | down=↓
16 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=なし
7 | spacebar=スペース
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=←
13 | up=↑
14 | right=→
15 | down=↓
16 |
--------------------------------------------------------------------------------
/chrome/locale/nl/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=无
7 | spacebar=空格键
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=左箭头
13 | up=右箭头
14 | right=上箭头
15 | down=下箭头
16 |
--------------------------------------------------------------------------------
/chrome/locale/pl/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Brak
7 | spacebar=Spacja
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Lewo
13 | up=Góra
14 | right=Prawo
15 | down=Dół
16 |
--------------------------------------------------------------------------------
/chrome/locale/sl/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Ctrl
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Brez
7 | spacebar=Presledek
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Levo
13 | up=Gor
14 | right=Desno
15 | down=Dol
16 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=無
7 | spacebar=空白鍵
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=左方向鍵
13 | up=上方向鍵
14 | right=右方向鍵
15 | down=下方向鍵
16 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=None
7 | spacebar=Spacebar
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Left
13 | up=Up
14 | right=Right
15 | down=Down
16 |
--------------------------------------------------------------------------------
/chrome/locale/sl/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/fr/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/nl/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Geen
7 | spacebar=Spatiebalk
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Links
13 | up=Omhoog
14 | right=Rechts
15 | down=Omlaag
16 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Ctrl
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Ingenting
7 | spacebar=Mellanslag
8 | pageup=Page up
9 | pagedown=Page down
10 | end=End
11 | home=Home
12 | left=Vänster
13 | up=Upp
14 | right=Höger
15 | down=Ned
16 |
--------------------------------------------------------------------------------
/chrome/locale/fr/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Ctrl
2 | shift=Majuscule
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Aucun
7 | spacebar=Barre d'espace
8 | pageup=Page haut
9 | pagedown=Page bas
10 | end=Fin
11 | home=Début
12 | left=Gauche
13 | up=Haut
14 | right=Droit
15 | down=Bas
16 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Gjin
7 | spacebar=Spaasjebalke
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Links
13 | up=Omheech
14 | right=Rjochts
15 | down=Omleech
16 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Nada
7 | spacebar=Barra de Espaço
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Esquerda
13 | up=Cima
14 | right=Direita
15 | down=Baixo
16 |
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/defaults.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/locale/es/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Mayús
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=Ninguna
7 | spacebar=Barra espaciadora
8 | pageup=Av Pág
9 | pagedown=Re Pág
10 | end=Fin
11 | home=Inicio
12 | left=Izquierda
13 | up=Arriba
14 | right=Derecha
15 | down=Abajo
16 |
--------------------------------------------------------------------------------
/chrome/skin/linux/tabview-frame.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | body {
6 | font: -moz-window;
7 | font-size: 12px;
8 | }
9 |
--------------------------------------------------------------------------------
/chrome/locale/cs/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Ctrl
2 | shift=Shift
3 | alt=Alt
4 | command=Command
5 | option=Option
6 | none=nic
7 | spacebar=Mezerník
8 | pageup=Page Up
9 | pagedown=Page Down
10 | end=End
11 | home=Home
12 | left=Šipka vlevo
13 | up=Šipka nahoru
14 | right=Šipka vpravo
15 | down=Šipka dolů
16 |
--------------------------------------------------------------------------------
/chrome/locale/de/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Steuerung
2 | shift=Umschalten
3 | alt=Alt
4 | command=Befehlstaste
5 | option=Optionstaste
6 | none=Keine
7 | spacebar=Leertaste
8 | pageup=Seite/Bild hoch
9 | pagedown=Seite/Bild runter
10 | end=Ende
11 | home=Anfang/Pos1
12 | left=Links
13 | up=Hoch
14 | right=Rechts
15 | down=Runter
16 |
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/utils-keys.properties:
--------------------------------------------------------------------------------
1 | control=Control
2 | shift=Shift
3 | alt=Alt
4 | command=Comando
5 | option=Opção
6 | none=Nenhum
7 | spacebar=Barra de espaços
8 | pageup=Página para cima
9 | pagedown=Página para baixo
10 | end=Fim
11 | home=Início
12 | left=Seta esquerda
13 | up=Seta cima
14 | right=Seta direita
15 | down=Seta baixo
16 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=分组迁移备份 - $date
2 | sessionRecovery=当前的会话恢复 - $date
3 | recoveryBackup=会话恢复备份 - $date
4 | previousSession=以前的会话 - $date
5 | upgradeBackup=Firefox 升级备份 - $date
6 | manualBackup=分组手动备份 - $date
7 | addonUpdateBackup=标签页分组更新备份 - $date
8 | sessionManager=会话管理器备份 - $date
9 | tabMixPlus=Tab Mix Plus 备份 - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=群組遷移備份 - $date
2 | sessionRecovery=目前工作階段復原 - $date
3 | recoveryBackup=工作階段復原備份 - $date
4 | previousSession=先前的工作階段 - $date
5 | upgradeBackup=Firefox 升級備份 - $date
6 | manualBackup=群組手動備份 - $date
7 | addonUpdateBackup=分頁群組更新備份 - $date
8 | sessionManager=Session Manager 備份 - $date
9 | tabMixPlus=Tab Mix Plus 備份 - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=グループ移行用バックアップ - $date
2 | sessionRecovery=現在のセッションの復旧 - $date
3 | recoveryBackup=セッション復旧用バックアップ
4 | previousSession=前回のセッション - $date
5 | upgradeBackup=Firefox アップグレード時のバックアップ - $date
6 | manualBackup=グループの手動バックアップ - $date
7 | addonUpdateBackup=Tab Groups 更新時のバックアップ - $date
8 | sessionManager=Session Manager のバックアップ - $date
9 | tabMixPlus=Tab Mix Plus のバックアップ - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=グループ移行用バックアップ - $date
2 | sessionRecovery=現在のセッションの復旧 - $date
3 | recoveryBackup=セッション復旧用バックアップ
4 | previousSession=前回のセッション - $date
5 | upgradeBackup=Firefox アップグレード時のバックアップ - $date
6 | manualBackup=グループの手動バックアップ - $date
7 | addonUpdateBackup=Tab Groups 更新時のバックアップ - $date
8 | sessionManager=Session Manager のバックアップ - $date
9 | tabMixPlus=Tab Mix Plus のバックアップ - $date
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tab Groups
2 |
3 | # This add-on will not receive any more updates!
4 | It will cease working by next November with Firefox 57. Click here for more info. Feel free to fork and use however you like.
5 |
6 | AMO url: https://addons.mozilla.org/firefox/addon/tab-groups-panorama/
7 |
8 | Babelzilla page: https://www.babelzilla.org/index.php?option=com_wts&Itemid=0&type=show&extension=5749
9 |
--------------------------------------------------------------------------------
/chrome/skin/linux/quickAccess.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | .tabGroups-quickaccess-panel-footer toolbarseparator {
8 | -moz-appearance: none !important;
9 | }
10 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Groups Migration Backup - $date
2 | sessionRecovery=Current Session Recovery - $date
3 | recoveryBackup=Session Recovery Backup - $date
4 | previousSession=Previous Session - $date
5 | upgradeBackup=Firefox Upgrade Backup - $date
6 | manualBackup=Groups Manual Backup - $date
7 | addonUpdateBackup=Tab Groups Update Backup - $date
8 | sessionManager=Session Manager Backup - $date
9 | tabMixPlus=Tab Mix Plus Backup - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/cs/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Migrační záloha skupin - $date
2 | sessionRecovery=Obnova aktuální relace - $date
3 | recoveryBackup=Záloha obnovy relace - $date
4 | previousSession=Předchozí relace - $date
5 | upgradeBackup=Záloha z aktualizace Firefoxu - $date
6 | manualBackup=Ruční záloha skupin - $date
7 | addonUpdateBackup=Záloha z aktualizace Skupin panelů - $date
8 | sessionManager=Záloha Session Manager - $date
9 | tabMixPlus=Záloha Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/resource/modules/compatibilityFix/windowFixes.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.0
6 |
7 | Modules.LOADMODULE = function() {
8 | Modules.load('compatibilityFix/TabCenter');
9 | };
10 |
11 | Modules.UNLOADMODULE = function() {
12 | Modules.unload('compatibilityFix/TabCenter');
13 | };
14 |
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/TabCenter.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @-moz-document url("chrome://browser/content/browser.xul") {
6 | #TabsToolbar:not([tabCenterInputFocused]) > toolbarbutton#tabGroups-tabview-button:not(#pin-button):not(#new-tab-button) {
7 | display: -moz-box;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/chrome/locale/nl/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Back-up van groepenmigratie - $date
2 | sessionRecovery=Herstel van huidige sessie - $date
3 | recoveryBackup=Back-up van sessieherstel - $date
4 | previousSession=Vorige sessie - $date
5 | upgradeBackup=Back-up van Firefox-upgrade - $date
6 | manualBackup=Handmatige back-up van groepen - $date
7 | addonUpdateBackup=Back-up van Tab Groups-update - $date
8 | sessionManager=Back-up van Session Manager - $date
9 | tabMixPlus=Back-up van Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Reservekopy groepmigraasje - $date
2 | sessionRecovery=Aktuele sesjewerstel - $date
3 | recoveryBackup=Reservekopy sesjewerstel - $date
4 | previousSession=Foarige sesje - $date
5 | upgradeBackup=Firefox fernijingsreservekopy - $date
6 | manualBackup=Hânmjittige reservekopy groepen - $date
7 | addonUpdateBackup=Fernijingsreservekopy ljepblêdgroepen - $date
8 | sessionManager=Reservekopy sesjebehearder - $date
9 | tabMixPlus=Reservekopy Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Backup de migração de grupos - $date
2 | sessionRecovery=Recuperação da sessão atual - $date
3 | recoveryBackup=Backup da recuperação da sessão - $date
4 | previousSession=Sessão anterior - $date
5 | upgradeBackup=Backup de atualização do Firefox - $date
6 | manualBackup=Backup manual dos grupos - $date
7 | addonUpdateBackup=Backup de atualização dos grupos de separadores - $date
8 | sessionManager=Backup do gerenciador de sessão - $date
9 | tabMixPlus=Backup do Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/de/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Gruppen-Migrations-Sicherung - $date
2 | sessionRecovery=Sicherung der aktuellen Sitzung - $date
3 | recoveryBackup=Sitzungswiederherstellungs-Sicherung - $date
4 | previousSession=Vorherige Sitzung - $date
5 | upgradeBackup=Firefox-Aktualisierungs-Sicherung - $date
6 | manualBackup=Manuelle Sicherung der Gruppen - $date
7 | addonUpdateBackup=Tabgruppen-Aktualisierungs-Sicherung - $date
8 | sessionManager=Sitzungsverwaltungs-Sicherung - $date
9 | tabMixPlus=Tab Mix Plus-Sicherung - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/pl/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Migracja grup, kopia zapasowa - $date
2 | sessionRecovery=Odzyskiwanie obecnej sesji - $date
3 | recoveryBackup=Odzyskiwanie sesji, kopia zapasowa - $date
4 | previousSession=Poprzednia sesja - $date
5 | upgradeBackup=Aktualizacja Firefoksa, kopia zapasowa - $date
6 | manualBackup=Ręczna kopia zapasowa grup - $date
7 | addonUpdateBackup=Aktualizacja Grup Kart, kopia zapasowa - $date
8 | sessionManager=Session Manager, kopia zapasowa - $date
9 | tabMixPlus=Tab Mix Plus, kopia zapasowa - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/sl/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Varnostna kopija ob selitvi skupin - $date
2 | sessionRecovery=Obnovitev trenutne seje - $date
3 | recoveryBackup=Varnostna kopija obnovitve seje - $date
4 | previousSession=Prejšnja seja - $date
5 | upgradeBackup=Varnostna kopija ob nadgradnji Firefoxa - $date
6 | manualBackup=Ročna varnostna kopija skupin - $date
7 | addonUpdateBackup=Varnostna kopija ob posodobitvi dodatka Tab Groups - $date
8 | sessionManager=Varnostna kopija Session Managerja - $date
9 | tabMixPlus=Varnostna kopija Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Salvaguarda de Migração de Grupos - $date
2 | sessionRecovery=Recuperação da Sessão Atual - $date
3 | recoveryBackup=Salvaguarda da Recuperação da Sessão - $date
4 | previousSession=Sessão Anterior - $date
5 | upgradeBackup=Salvaguarda de Atualização do Firefox - $date
6 | manualBackup=Salvaguarda Manual dos Grupos - $date
7 | addonUpdateBackup=Salvaguarda de Atualização dos Grupos de Separadores - $date
8 | sessionManager=Salvaguarda do Session Manager - $date
9 | tabMixPlus=Salvaguarda do Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/chrome/locale/fr/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Sauvegarde de la migration des groupes - $date
2 | sessionRecovery=Restauration de session courante - $date
3 | recoveryBackup=Sauvegarde de la restauration de session - $date
4 | previousSession=Précédente session - $date
5 | upgradeBackup=Sauvegarde de la mise à jour de Firefox - $date
6 | manualBackup=Sauvegarde manuelle - $date
7 | addonUpdateBackup=Sauvegarde de la mise à jour des Groupes d'Onglets - $date
8 | sessionManager=Sauvegarde du gestionnaire de sessoion - $date
9 | tabMixPlus=Sauvegarde de Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Säkerhetskopia för gruppmigrering - $date
2 | sessionRecovery=Aktuell sessionsåterställning - $date
3 | recoveryBackup=Säkerhetskopia för sessionsåterställning - $date
4 | previousSession=Föregående session - $date
5 | upgradeBackup=Säkerhetskopia för Firefox-uppgradering - $date
6 | manualBackup=Manuell säkerhetskopia av grupper - $date
7 | addonUpdateBackup=Säkerhetskopia för Tab Groups-uppdatering - $date
8 | sessionManager=Säkerhetskopia för Sessionshanteraren - $date
9 | tabMixPlus=Säkerhetskopia för Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/chrome/content/bug566510.xul:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/chrome/locale/es/options.properties:
--------------------------------------------------------------------------------
1 | groupsMigrationBackup=Copia de seguridad por migración de grupos - $date
2 | sessionRecovery=Datos de recuperación de la sesión actual - $date
3 | recoveryBackup=Copia de seguridad de los datos de recuperación de sesión - $date
4 | previousSession=Sesión anterior - $date
5 | upgradeBackup=Copia de seguridad por actualización de Firefox - $date
6 | manualBackup=Copia de seguridad manual de los grupos - $date
7 | addonUpdateBackup=Copia de seguridad por actualización de Tab Groups - $date
8 | sessionManager=Copia de seguridad de Session Manager - $date
9 | tabMixPlus=Copia de seguridad de Tab Mix Plus - $date
10 |
--------------------------------------------------------------------------------
/resource/defaultsContent.js:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 2.0.1
6 |
7 | // By using a JSM, we can initialize each individual tab (frame) with our scripts without having to instanciate the same objects with each one.
8 | (function(frame) {
9 | let targetScope = {};
10 | Components.utils.import("resource://tabgroups/modules/content/utils/ModuleInSandbox.jsm", targetScope);
11 | targetScope.ModuleInSandbox.init('tabgroups', frame);
12 | })(this);
13 |
--------------------------------------------------------------------------------
/chrome/skin/mac/quickAccess.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | @media (min-resolution: 1.1dppx) {
8 | .tabGroups-quickaccess:not([FF48]) .loading {
9 | background-image: url("chrome://browser/skin/tabbrowser/loading@2x.png");
10 | }
11 |
12 | .tabGroups-quickaccess[FF48]:not([FF50]) .loading {
13 | background-image: url("chrome://global/skin/icons/loading@2x.png");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/chrome/skin/win/quickAccess.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | @media (min-resolution: 1.1dppx) {
8 | .tabGroups-quickaccess:not([FF48]) .loading {
9 | background-image: url("chrome://browser/skin/tabbrowser/loading@2x.png");
10 | }
11 |
12 | .tabGroups-quickaccess[FF48]:not([FF50]) .loading {
13 | background-image: url("chrome://global/skin/icons/loading@2x.png");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/resource/workers/preloadIcon.js:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.1
6 |
7 | self.onmessage = function (e) {
8 | let iconUrl = e.data.iconUrl;
9 |
10 | let xhr = new XMLHttpRequest();
11 | xhr.open('GET', iconUrl, true);
12 | xhr.responseType = 'blob';
13 | xhr.onload = function () {
14 | self.postMessage({ iconUrl, loaded: true });
15 | };
16 | xhr.onerror = function() {
17 | self.postMessage({ iconUrl, loaded: false });
18 | };
19 | xhr.send();
20 | };
21 |
--------------------------------------------------------------------------------
/resource/modules/utils/windowTools.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 2.1.1
6 | Modules.UTILS = true;
7 | Modules.BASEUTILS = true;
8 |
9 | // aSync(aFunc, aDelay) - lets me run aFunc asynchronously, basically it's a one shot timer with a delay of aDelay msec
10 | // aFunc - (function) to be called asynchronously
11 | // (optional) aDelay - (int) msec to set the timer, defaults to 0msec
12 | this.aSync = function(aFunc, aDelay) {
13 | return Timers.create(aFunc, (!aDelay) ? 0 : aDelay);
14 | };
15 |
--------------------------------------------------------------------------------
/chrome/content/utils/helptext.xul:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/resource/modules/compatibilityFix/FTDeepDark.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.2
6 |
7 | Modules.LOADMODULE = function() {
8 | Styles.load('FTDeepDark', 'compatibilityFix/FTDeepDark');
9 | Styles.load('FTDeepDark-theme', 'compatibilityFix/FTDeepDark-theme');
10 | Styles.load('FTDeepDark-scrollbars', 'compatibilityFix/FTDeepDark-scrollbars', false, 'agent');
11 | Observers.notify(objName+'-darktheme-changed', null);
12 | };
13 |
14 | Modules.UNLOADMODULE = function() {
15 | Styles.unload('FTDeepDark');
16 | Styles.unload('FTDeepDark-theme');
17 | Styles.unload('FTDeepDark-scrollbars');
18 | Observers.notify(objName+'-darktheme-changed', null);
19 | };
20 |
--------------------------------------------------------------------------------
/chrome/skin/common/compatibilityFix/FTDeepDark-scrollbars.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @-moz-document url("chrome://tabgroups/content/tabview.xhtml") {
6 | scrollbar {
7 | background-color: transparent !important;
8 | }
9 |
10 | scrollbar[orient="vertical"] {
11 | -moz-margin-start: calc(0px - var(--scrollbar-width)) !important;
12 | min-width: var(--scrollbar-width) !important;
13 | max-width: var(--scrollbar-width) !important;
14 | }
15 |
16 | scrollbar[orient="horizontal"] {
17 | margin-top: calc(0px - var(--scrollbar-width)) !important;
18 | min-height: var(--scrollbar-width) !important;
19 | max-height: var(--scrollbar-width) !important;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/chrome/skin/common/menu-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
27 |
--------------------------------------------------------------------------------
/chrome/skin/win/TabView.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | /* tabview toolbar button */
8 |
9 | :-moz-any(toolbar, .widget-overflow-list) #tabGroups-tabview-button > .toolbarbutton-icon {
10 | max-width: 18px;
11 | }
12 |
13 | #nav-bar #tabGroups-tabview-button > .toolbarbutton-icon {
14 | padding: 2px 6px;
15 | max-width: 32px;
16 | }
17 |
18 | @media (-moz-os-version: windows-win10) {
19 | #nav-bar #tabGroups-tabview-button > .toolbarbutton-icon {
20 | padding: 4px 6px;
21 | }
22 | }
23 |
24 | @media (-moz-windows-theme: luna-silver) and (max-resolution: 1dppx) {
25 | .tabGroups-icon {
26 | list-style-image: url("chrome://tabgroups-os/skin/Toolbar-lunaSilver.png");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/resource/modules/utils/windowUtilsPreload.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.1
6 |
7 | // Listeners - Object to aid in setting and removing all kinds of event listeners to an object;
8 | this.__defineGetter__('Listeners', function() { delete this.Listeners; Modules.load('utils/Listeners'); return Listeners; });
9 |
10 | // Timers - Object to aid in setting, initializing and cancelling timers
11 | this.__defineGetter__('Timers', function() { delete this.Timers; Modules.load('utils/Timers'); return Timers; });
12 |
13 | // aSync() - lets me run aFunc asynchronously, basically it's a one shot timer with a delay of aDelay msec
14 | this.aSync = function(aFunc, aDelay) { loadWindowTools(); return aSync(aFunc, aDelay); };
15 |
16 | this.loadWindowTools = function() {
17 | delete this.aSync;
18 | delete this.loadWindowTools;
19 | Modules.load('utils/windowTools');
20 | };
21 |
--------------------------------------------------------------------------------
/chrome/locale/sl/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/resource/modules/paneHowTo.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.1
6 |
7 | Modules.LOADMODULE = function() {
8 | toggleAttribute(document.documentElement, 'FF49', Services.vc.compare(Services.appinfo.version, "49.0a1") >= 0);
9 |
10 | let fulltext = $('paneHowTo-credits-body');
11 | let exploded = fulltext.textContent.split('support.mozilla.org');
12 | if(exploded.length == 2) {
13 | let first = document.createTextNode(exploded[0]);
14 | let second = document.createTextNode(exploded[1]);
15 | let link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
16 | setAttribute(link, 'target', '_blank');
17 | setAttribute(link, 'href', 'https://support.mozilla.org/kb/tab-groups-organize-tabs');
18 | link.textContent = 'support.mozilla.org';
19 |
20 | fulltext.firstChild.remove();
21 | fulltext.appendChild(first);
22 | fulltext.appendChild(link);
23 | fulltext.appendChild(second);
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/resource/modules/compatibilityFix/sandboxFixes.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.5
6 |
7 | Modules.LOADMODULE = function() {
8 | AddonManager.getAddonByID('bug566510@vovcacik.addons.mozilla.org', function(addon) {
9 | Modules.loadIf('compatibilityFix/bug566510', (addon && addon.isActive));
10 | });
11 |
12 | AddonManager.getAddonByID('{dc572301-7619-498c-a57d-39143191b318}', function(addon) {
13 | Modules.loadIf('compatibilityFix/TabMixPlus', (addon && addon.isActive));
14 | });
15 |
16 | Modules.load('compatibilityFix/CCK2');
17 | Modules.load('compatibilityFix/SessionManager');
18 | Modules.load('compatibilityFix/brighttext');
19 | };
20 |
21 | Modules.UNLOADMODULE = function() {
22 | Modules.unload('compatibilityFix/bug566510');
23 | Modules.unload('compatibilityFix/TabMixPlus');
24 | Modules.unload('compatibilityFix/CCK2');
25 | Modules.unload('compatibilityFix/SessionManager');
26 | Modules.unload('compatibilityFix/brighttext');
27 | };
28 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/cs/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/pl/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/nl/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/de/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/resource/modules/AllTabs.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.1.1
6 | Modules.UTILS = true;
7 |
8 | this.Tabs = {
9 | get length() {
10 | return gBrowser.tabs.length;
11 | },
12 |
13 | get all() {
14 | // gBrowser.tabs is a NodeList, not an array
15 | return Array.filter(gBrowser.tabs, function(tab) { return !tab.closing; });
16 | },
17 |
18 | get pinned() {
19 | return this.all.filter(function(tab) { return tab.pinned; });
20 | },
21 |
22 | get notPinned() {
23 | return this.all.filter(function(tab) { return !tab.pinned; });
24 | },
25 |
26 | get numPinned() {
27 | return gBrowser._numPinnedTabs;
28 | },
29 |
30 | get visible() {
31 | return gBrowser.visibleTabs;
32 | },
33 |
34 | get selected() {
35 | return gBrowser.selectedTab;
36 | },
37 | set selected(tab) {
38 | return gBrowser.selectedTab = tab;
39 | },
40 |
41 | hasHidden: function() {
42 | return (this.length - Tabs.visible.length);
43 | },
44 |
45 | listen: function(eventName, listener) {
46 | Listeners.add(gBrowser.tabContainer, eventName, listener);
47 | },
48 |
49 | unlisten: function(eventName, listener) {
50 | Listeners.remove(gBrowser.tabContainer, eventName, listener);
51 | }
52 | };
53 |
--------------------------------------------------------------------------------
/chrome/skin/common/defaults.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | /* preferences About pane backgound */
6 |
7 | .main-wrapper {
8 | background: url("chrome://tabgroups/skin/utils/bg-gradient-grass.png") repeat-x, url("chrome://tabgroups/skin/utils/bg-grainy-grass.png") repeat, #eee;
9 | }
10 |
11 | /* add-on's icon next to its name in About pane */
12 |
13 | #logo {
14 | list-style-image: url("chrome://tabgroups/skin/icon.png");
15 | }
16 |
17 | /* Release Notes categories icons */
18 |
19 | .notes-items > li.tagged > b {
20 | background-image: url("chrome://tabgroups/skin/utils/tags.png");
21 | }
22 |
23 | /* development status section images */
24 |
25 | .happy {
26 | list-style-image: url("chrome://tabgroups/skin/utils/happy.png");
27 | }
28 |
29 | .sad {
30 | list-style-image: url("chrome://tabgroups/skin/utils/sad.png");
31 | }
32 |
33 | .hourglass image {
34 | list-style-image: url("chrome://tabgroups/skin/utils/hourglass.png");
35 | }
36 |
37 | /* #matchhead promo section */
38 |
39 | #promo-matchhead-tab {
40 | background-image: url("chrome://tabgroups/skin/utils/matchhead.png");
41 | }
42 |
43 | #promo-matchhead-image {
44 | background-image: url("chrome://tabgroups/skin/utils/promo.jpg");
45 | }
46 |
--------------------------------------------------------------------------------
/chrome/locale/es/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/fr/utils-preferences.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/resource/workers/findDominantColor.js:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.0
6 |
7 | self.onmessage = function (e) {
8 | let iconUrl = e.data.iconUrl;
9 | let data = e.data.imageData.data;
10 |
11 | // keep track of how many times a color appears in the image
12 | let colorCount = new Map();
13 | for(let i = 0; i < data.length; i += 4) {
14 | // ignore transparent pixels
15 | if(data[i+3] < 32) { continue; }
16 |
17 | // Do some rounding, to get a "feel" of the icons rather than the precise rgb values in the image.
18 | // This has the added bonus of having to loop through less entries in the checks below,
19 | // so it seems to compensate for the extra calculations here to round the values.
20 | let color = roundColor(data[i]) + "," + roundColor(data[i+1]) + "," + roundColor(data[i+2]);
21 | // ignore white --- quicksaver: why?
22 | //if(color == "255,255,255") { continue; }
23 |
24 | colorCount.set(color, (colorCount.get(color) || 0) + 1);
25 | }
26 |
27 | let maxCount = 0;
28 | let dominantColor = "";
29 | for(let [ color, count ] of colorCount) {
30 | if(count > maxCount) {
31 | maxCount = count;
32 | dominantColor = color;
33 | }
34 | }
35 |
36 | self.postMessage({ iconUrl, dominantColor });
37 | };
38 |
39 | let roundColor = function(v) {
40 | return Math.min(Math.round(v /8) *8, 255);
41 | };
42 |
--------------------------------------------------------------------------------
/chrome/skin/mac/tabview-frame.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | :root {
6 | --item-border-radius: 7px;
7 | }
8 |
9 | body {
10 | font: message-box;
11 | font-size: 12px;
12 | }
13 |
14 | /* Tab Item */
15 |
16 | @media (min-resolution: 1.1dppx) {
17 | body:not([FF50]) .tab[busy]:not([progress]) .throbber,
18 | body:not([FF50]) .appTabIcon[busy]:not([progress]) {
19 | background-image: url("chrome://browser/skin/tabbrowser/connecting@2x.png");
20 | }
21 |
22 | body:not([FF48]) .tab[busy][progress] .throbber,
23 | body:not([FF48]) .appTabIcon[busy][progress] {
24 | background-image: url("chrome://browser/skin/tabbrowser/loading@2x.png");
25 | }
26 |
27 | body[FF48]:not([FF50]) .tab[busy][progress] .throbber,
28 | body[FF48]:not([FF50]) .appTabIcon[busy][progress] {
29 | background-image: url("chrome://global/skin/icons/loading@2x.png");
30 | }
31 | }
32 |
33 | /* Tab GroupItem */
34 |
35 | body.classic .groupItem,
36 | .expandedTray,
37 | .undo:not(.inGroupSelector) {
38 | border-radius: var(--item-border-radius);
39 | }
40 |
41 | /* Side buttons */
42 |
43 | body:-moz-any(.classic,[lwtheme]) #actions {
44 | border-top-color: ThreeDHighlight;
45 | }
46 |
47 | body.classic #actions {
48 | border-radius: 0 0 0 var(--item-border-radius);
49 | }
50 |
51 | body.classic #actions:-moz-locale-dir(rtl) {
52 | border-radius: 0 0 var(--item-border-radius) 0;
53 | }
54 |
--------------------------------------------------------------------------------
/resource/modules/content/CatchRules.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.0
6 |
7 | this.CatchRules = {
8 | // This module will only be initialized in frame scripts from windows that need it.
9 | moduleName: 'CatchRules',
10 |
11 | onLocationChange: function(aWebProgress, aRequest, aLocation) {
12 | // There's probably an easier way to fetch the frame's message manager context from the webprogress instance, I don't know it.
13 | // aWebProgress.tabChild.messageManager == frame only in remote browsers apparently; this errors in non-e10s.
14 | for(let frame of Frames._tracked.keys()) {
15 | if(frame.content == aWebProgress.DOMWindow) {
16 | Frames.message(frame, 'CatchRule', aLocation.spec);
17 | return;
18 | }
19 | }
20 | },
21 |
22 | onFrameAdded: function(frame) {
23 | Frames.get(frame).WebProgress.add(this, Ci.nsIWebProgress.NOTIFY_ALL);
24 | },
25 |
26 | onFrameDeleted: function(frame) {
27 | Frames.get(frame).WebProgress.remove(this, Ci.nsIWebProgress.NOTIFY_ALL);
28 | },
29 |
30 | // this is needed in content progress listeners (for some reason)
31 | QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener, Ci.nsISupportsWeakReference])
32 | };
33 |
34 | Modules.LOADMODULE = function() {
35 | Frames.register(CatchRules);
36 | };
37 |
38 | Modules.UNLOADMODULE = function() {
39 | Frames.unregister(CatchRules);
40 | };
41 |
--------------------------------------------------------------------------------
/chrome/skin/common/scrollbars.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @-moz-document url("chrome://tabgroups/content/tabview.xhtml") {
6 |
7 | scrollbar {
8 | -moz-appearance: none !important;
9 | position: relative;
10 | background-color: transparent;
11 | background-image: none;
12 | z-index: 2147483647;
13 | padding: 2px;
14 | border: none;
15 | }
16 |
17 | scrollbar[orient="vertical"] {
18 | -moz-margin-start: calc(0px - var(--scrollbar-width));
19 | margin-bottom: 12px;
20 | min-width: var(--scrollbar-width);
21 | max-width: var(--scrollbar-width);
22 | }
23 |
24 | scrollbar[orient="horizontal"] {
25 | margin-top: calc(0px - var(--scrollbar-width));
26 | min-height: var(--scrollbar-width);
27 | max-height: var(--scrollbar-width);
28 | }
29 |
30 | scrollbar slider {
31 | -moz-appearance: none !important;
32 | }
33 |
34 | scrollbar thumb {
35 | -moz-appearance: none !important;
36 | background-color: var(--hover-color);
37 | border-width: 0px;
38 | border-radius: 3px;
39 | }
40 |
41 | html > scrollbar,
42 | .groupItem.thumbing scrollbar,
43 | scrollbar scrollbarbutton,
44 | scrollbar gripper {
45 | display: none;
46 | }
47 |
48 | body:not([lwtheme]):not([darktheme]) #groupSelector scrollbar thumb,
49 | body[lwtheme] #groupSelector[brighttext] scrollbar thumb {
50 | background-color: rgba(245,245,245,0.65);
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/resource/modules/compatibilityFix/bug566510.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.0
6 |
7 | this.bug566510 = {
8 | onLoad: function(aWindow) {
9 | let tabMenuPopup = aWindow.TabView.tabMenuPopup;
10 | tabMenuPopup._bug566510onPopupShown = function(e) {
11 | if(e.target == tabMenuPopup) {
12 | // the native Tab Groups uses an oncommand attribute, we use JS listeners,
13 | // the bug566510 add-on doesn't know this, so we're adapting its routine here
14 | for(let item of tabMenuPopup.childNodes) {
15 | if(item.id == objName+"-context_tabViewNamedGroups") { break; }
16 |
17 | item.handleEvent = function(e) {
18 | aWindow.bug566510_TabView.moveTabsTo(aWindow.TabContextMenu.contextTab, this.groupId);
19 | };
20 | }
21 | }
22 | }
23 | tabMenuPopup.addEventListener('popupshown', tabMenuPopup._bug566510onPopupShown);
24 | },
25 |
26 | onUnload: function(aWindow) {
27 | let tabMenuPopup = aWindow.TabView.tabMenuPopup;
28 | tabMenuPopup.removeEventListener('popupshown', tabMenuPopup._bug566510onPopupShown);
29 | delete tabMenuPopup._bug566510onPopupShown;
30 | }
31 | };
32 |
33 | Modules.LOADMODULE = function() {
34 | Overlays.overlayURI('chrome://'+objPathString+'/content/TabView.xul', 'bug566510', bug566510);
35 | };
36 |
37 | Modules.UNLOADMODULE = function() {
38 | Overlays.removeOverlayURI('chrome://'+objPathString+'/content/TabView.xul', 'bug566510');
39 | };
40 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/resource/modules/content/utils/ModuleInSandbox.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.0.0
6 |
7 | // This is a workaround for bug 1195689, to allow us to update the ChildProcess.jsm module properly on add-on updates.
8 | // Since we can't unload a JSM module on shutdown, we instead assign it to a sandbox that we can nuke.
9 | // Because of that, any update to this file will typically require a full browser restart to fully take effect.
10 | // Also, this doesn't eliminate the ZC when disabling the add-on, since this JSM will remain loaded in the process
11 | // (even though the actual module in the sandbox is nuked).
12 |
13 | // When bug 1195689 is fixed, we'll be able to use ChildProcess.jsm directly and discard this file completely.
14 |
15 | var EXPORTED_SYMBOLS = [ "ModuleInSandbox" ];
16 |
17 | var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
18 | Cu.import("resource://gre/modules/Services.jsm");
19 |
20 | var gSandbox = null;
21 |
22 | var ModuleInSandbox = {
23 | init: function(objPathString, aFrame) {
24 | if(!gSandbox) {
25 | let systemPrincipal = Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal);
26 | gSandbox = Cu.Sandbox(systemPrincipal, { freshZone: true, sandboxName: objPathString+"-ModuleInSandbox" });
27 | Services.scriptloader.loadSubScript("resource://"+objPathString+"/modules/content/utils/ChildProcess.jsm", gSandbox);
28 | }
29 | gSandbox.ChildProcess.init(objPathString, aFrame, this);
30 | },
31 |
32 | uninit: function() {
33 | if(gSandbox) {
34 | Cu.nukeSandbox(gSandbox);
35 | gSandbox = null;
36 | }
37 | }
38 | };
39 |
--------------------------------------------------------------------------------
/resource/modules/paneTabGroups.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.1.0
6 |
7 | this.sessionRestore = {
8 | get button() { return $('paneTabGroups-sessionRestore-button'); },
9 | get groupbox() { return $('paneTabGroups-sessionRestore'); },
10 |
11 | handleEvent: function() {
12 | this.enable();
13 | },
14 |
15 | observe: function() {
16 | this.updateGroupbox();
17 | },
18 |
19 | init: function() {
20 | pageWatch.register(this);
21 |
22 | Listeners.add(this.button, 'command', this);
23 |
24 | this.updateGroupbox();
25 | },
26 |
27 | uninit: function() {
28 | Listeners.remove(this.button, 'command', this);
29 |
30 | try { pageWatch.unregister(this); }
31 | catch(ex) { /* doesn't matter */ }
32 | },
33 |
34 | updateGroupbox: function() {
35 | this.groupbox.hidden = pageWatch.sessionRestoreEnabled;
36 | },
37 |
38 | enable: function() {
39 | pageWatch.enableSessionRestore();
40 | if(controllers.nodes.jumpto.value == 'sessionRestore') {
41 | controllers.jumpto('');
42 | }
43 | }
44 | };
45 |
46 | this.setdefaults = {
47 | btn: $('paneTabGroups-setdefaults-button'),
48 |
49 | handleEvent: function() {
50 | Observers.notify(objName+'-set-groups-defaults');
51 | },
52 |
53 | init: function() {
54 | Listeners.add(this.btn, 'command', this);
55 | },
56 |
57 | uninit: function() {
58 | Listeners.remove(this.btn, 'command', this);
59 | }
60 | };
61 |
62 | Modules.LOADMODULE = function() {
63 | sessionRestore.init();
64 | setdefaults.init();
65 | };
66 |
67 | Modules.UNLOADMODULE = function() {
68 | sessionRestore.uninit();
69 | setdefaults.uninit();
70 | };
71 |
--------------------------------------------------------------------------------
/chrome/skin/mac/TabView.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | /* tabview toolbar button */
8 |
9 | @media not all and (min-resolution: 1.1dppx) {
10 | .tabGroups-icon {
11 | -moz-image-region: rect(0, 18px, 18px, 0);
12 | }
13 | .tabGroups-icon:hover:active:not([disabled="true"]):not([cui-areatype="menu-panel"]) {
14 | -moz-image-region: rect(18px, 18px, 36px, 0);
15 | }
16 | #tabGroups-tabview-button[cui-areatype="menu-panel"],
17 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button {
18 | -moz-image-region: rect(0, 32px, 32px, 0);
19 | }
20 | }
21 |
22 | @media (min-resolution: 1.1dppx) {
23 | .tabGroups-icon {
24 | -moz-image-region: rect(0, 36px, 36px, 0);
25 | }
26 | .tabGroups-icon:hover:active:not([disabled="true"]):not([cui-areatype="menu-panel"]) {
27 | -moz-image-region: rect(36px, 36px, 72px, 0);
28 | }
29 | #tabGroups-tabview-button[cui-areatype="menu-panel"],
30 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button {
31 | -moz-image-region: rect(0, 64px, 64px, 0);
32 | }
33 | }
34 |
35 | :-moz-any(toolbar, .widget-overflow-list) #tabGroups-tabview-button > .toolbarbutton-icon {
36 | max-width: 18px;
37 | margin: 0;
38 | }
39 |
40 | /* Tweak needed so the button label adapts to an appropriate height. */
41 | #tabGroups-tabview-button .toolbarbutton-text {
42 | max-height: 1em;
43 | }
44 |
45 | /* Don't let the text stick too close to the borders,
46 | but only if Tab Center isn't enabled, it already looks ok there. */
47 | #navigator-toolbox > #TabsToolbar #tabGroups-tabview-button[showGroupTitle] .toolbarbutton-text {
48 | padding-left: 5px;
49 | padding-right: 5px;
50 | }
51 |
--------------------------------------------------------------------------------
/chrome/skin/common/TabView.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | /* tabview menus */
8 | .tabview-menuitem {
9 | max-width: 32em;
10 | }
11 |
12 | /* tabview toolbar button */
13 |
14 | .tabGroups-icon {
15 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar.png);
16 | }
17 |
18 | toolbar[brighttext] #tabGroups-tabview-button {
19 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar-inverted.png);
20 | }
21 |
22 | #tabGroups-tabview-button[cui-areatype="menu-panel"],
23 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button {
24 | list-style-image: url(chrome://tabgroups-os/skin/menuPanel.png);
25 | }
26 |
27 | @media (min-resolution: 1.1dppx) {
28 | .tabGroups-icon {
29 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar@2x.png);
30 | }
31 |
32 | toolbar[brighttext] #tabGroups-tabview-button {
33 | list-style-image: url(chrome://tabgroups-os/skin/Toolbar-inverted@2x.png);
34 | }
35 |
36 | #tabGroups-tabview-button[cui-areatype="menu-panel"],
37 | toolbarpaletteitem[place="palette"] > #tabGroups-tabview-button {
38 | list-style-image: url(chrome://tabgroups-os/skin/menuPanel@2x.png);
39 | }
40 | }
41 |
42 | #tabGroups-tabview-button[showGroupTitle][cui-areatype="toolbar"] > .toolbarbutton-text {
43 | display: -moz-box;
44 | }
45 |
46 | #tabGroups-tabview-button[showGroupTitle][cui-areatype="toolbar"]:not([overflowedItem="true"]) > .toolbarbutton-icon {
47 | display: none;
48 | }
49 |
50 | /* Compatibility with Tree Style Tab, make sure the button's text is visible with all themes */
51 | #TabsToolbar[treestyletab-mode]:not([treestyletab-tabbar-position="top"]) #tabGroups-tabview-button[showGroupTitle] {
52 | color: var(--tst-tab-text) !important;
53 | }
54 |
--------------------------------------------------------------------------------
/resource/modules/content/utils/api.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.1.1
6 |
7 | this.api = {
8 | // weak-refing the listener may or may not be necessary to prevent leaks of the sandbox during addon reload due to dangling listeners
9 | QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsISupportsWeakReference, Ci.nsIDOMEventListener]),
10 |
11 | handleEvent: function(e) {
12 | let doc = e.originalTarget;
13 | if(doc && doc.defaultView && doc instanceof doc.defaultView.HTMLDocument) {
14 | // is this an inner frame? Skip if it is
15 | if(doc.defaultView.frameElement && doc !== doc.defaultView.frameElement.ownerDocument) { return; }
16 |
17 | if(e.type == 'load') {
18 | doc.defaultView.removeEventListener('load', this);
19 | }
20 |
21 | this.checkPage(doc);
22 | }
23 | },
24 |
25 | checkPage: function(document) {
26 | let content = document.defaultView;
27 | if(document.readyState != 'complete') {
28 | content.addEventListener('load', this);
29 | return;
30 | }
31 |
32 | if(document.documentURI.startsWith(addonUris.development)) {
33 | let unwrap = XPCNativeWrapper.unwrap(content);
34 | if(unwrap.enable) {
35 | unwrap.enable(objPathString);
36 | }
37 | }
38 | },
39 |
40 | onFrameAdded: function(frame) {
41 | frame.addEventListener('DOMContentLoaded', this);
42 |
43 | let document = frame.content && frame.content.document;
44 | if(document && document instanceof frame.content.HTMLDocument) {
45 | this.checkPage(document);
46 | }
47 | },
48 |
49 | onFrameDeleted: function(frame) {
50 | frame.removeEventListener('DOMContentLoaded', this);
51 | if(frame.content) {
52 | frame.content.removeEventListener('load', this);
53 | }
54 |
55 | }
56 | };
57 |
58 | Modules.LOADMODULE = function() {
59 | Frames.register(api);
60 | };
61 |
62 | Modules.UNLOADMODULE = function() {
63 | Frames.unregister(api);
64 | };
65 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=選取其他分頁群組
2 | buttonManageTooltip=管理您的分頁群組
3 | groupItemDefaultName=為此分頁群組取名
4 | groupItemCloseGroup=關閉此群組
5 | groupItemOptionsGroup=變更此群組的設定
6 | groupItemExpand=檢視所有在此堆疊中的分頁
7 | groupItemMute=將此群組中所有的分頁靜音
8 | groupItemUndoCloseGroup=復原關閉群組
9 | groupItemDiscardClosedGroup=丟棄已關閉的群組
10 | groupItemUnnamed=群組 $num
11 | pinnedItemsGroup=釘選的分頁
12 | showItemInGroupTooltip=在它的群組中檢視該分頁 (Shift+Enter)
13 | switchToGroupTooltip=切換到該分頁的群組 (Enter)
14 | viewTabsInGroupTooltip=檢視所有在該群組的分頁 (Shift+Enter)
15 | goBackToGroupsLabel=回到群組
16 | openNewTab=開新分頁
17 | closeTab=關閉分頁
18 | muteTab=分頁靜音
19 | unmuteTab=解除分頁靜音
20 | loading=請稍候...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - 將您的分頁組成群組
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=0
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title 及 $tabs 個剩餘
39 | restorePinned=已釘選的分頁 $idx 個($tabs 個分頁)
40 | restoreUnnamedGroup=未命名的群組 $idx($tabs 個分頁)
41 | restoreNamedGroup=$name ($tabs 分頁)
42 | tabs=$tabs 個分頁;$tabs 個分頁
43 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=选择另一个标签页分组
2 | buttonManageTooltip=管理您的标签页分组
3 | groupItemDefaultName=命名此分组
4 | groupItemCloseGroup=关闭分组
5 | groupItemOptionsGroup=更改此分组的设置
6 | groupItemExpand=查看此堆叠中的所有标签页
7 | groupItemMute=静音此分组中的所有标签页
8 | groupItemUndoCloseGroup=撤销关闭分组
9 | groupItemDiscardClosedGroup=移除关闭的分组
10 | groupItemUnnamed=分组 $num
11 | pinnedItemsGroup=已固定标签页
12 | showItemInGroupTooltip=查看此标签页所在分组 (Shift+Enter)
13 | switchToGroupTooltip=切换到此标签页的分组 (Enter)
14 | viewTabsInGroupTooltip=查看此分组中的所有标签页 (Shift+Enter)
15 | goBackToGroupsLabel=返回分组
16 | openNewTab=打开新标签页
17 | closeTab=关闭标签页
18 | muteTab=静音标签页
19 | unmuteTab=取消标签页静音
20 | loading=请稍等...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - 分组您的标签页
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=0
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title 和其他 $tabs 个标签页
39 | restorePinned=固定标签页 $idx(共 $tabs 个标签页)
40 | restoreUnnamedGroup=未命名分组 $idx(共 $tabs 个标签页)
41 | restoreNamedGroup=$name(共 $tabs 个标签页)
42 | tabs=$tabs 个标签页;$tabs 个标签页
43 |
--------------------------------------------------------------------------------
/resource/modules/utils/attributes.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 2.2.2
6 | Modules.UTILS = true;
7 | Modules.BASEUTILS = true;
8 |
9 | // setAttribute(obj, attr, val) - helper me that saves me the trouble of checking if the obj exists first everywhere in my scripts; yes I'm that lazy
10 | // obj - (xul element) to set the attribute
11 | // attr - (str) attribute to set
12 | // val - (str) value to set for attr
13 | this.setAttribute = function(obj, attr, val) {
14 | if(!obj || !obj.setAttribute) { return; }
15 | obj.setAttribute(attr, val);
16 | };
17 |
18 | // removeAttribute(obj, attr) - helper me that saves me the trouble of checking if the obj exists first everywhere in my scripts; yes I'm that lazy
19 | // see setAttribute()
20 | this.removeAttribute = function(obj, attr) {
21 | if(!obj || !obj.removeAttribute) { return; }
22 | obj.removeAttribute(attr);
23 | };
24 |
25 | // toggleAttribute(obj, attr, condition, val) - sets attr on obj if condition is true; I'm uber lazy
26 | // see setAttribute()
27 | // condition - when true, attr is set with value (str) true, otherwise it removes the attribute
28 | // (optional) trueval - (str) value to set attr to if condition is true, defaults to (str) true
29 | // (optional) falseval - (str) value to set attr to if condition is false, if not set the attr is removed
30 | this.toggleAttribute = function(obj, attr, condition, trueval, falseval) {
31 | if(!obj || !obj.setAttribute || !obj.removeAttribute) { return; }
32 |
33 | if(condition) {
34 | if(trueval === undefined) { trueval = 'true'; }
35 | obj.setAttribute(attr, trueval);
36 | } else if(falseval !== undefined) {
37 | obj.setAttribute(attr, falseval);
38 | } else {
39 | obj.removeAttribute(attr);
40 | }
41 | };
42 |
43 | // trueAttribute(obj, attr) - checks whether attribute attr in obj has value "true"
44 | // see setAttribute()
45 | this.trueAttribute = function(obj, attr) {
46 | if(!obj || !obj.getAttribute) { return false; }
47 |
48 | return (obj.getAttribute(attr) == 'true');
49 | };
50 |
--------------------------------------------------------------------------------
/chrome/locale/cs/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/zh-TW/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/zh-CN/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=別のタブグループを選択します
2 | buttonManageTooltip=タブグループを管理します
3 | groupItemDefaultName=タブグループに別名を付ける
4 | groupItemCloseGroup=グループを閉じる
5 | groupItemOptionsGroup=このグループの設定を変更する
6 | groupItemExpand=このスタック内のすべてのタブを表示する
7 | groupItemMute=このグループ内のすべてのタブを消音にする
8 | groupItemUndoCloseGroup=タブグループを復元
9 | groupItemDiscardClosedGroup=閉じたグループを破棄
10 | groupItemUnnamed=グループ $num
11 | pinnedItemsGroup=ピン留めしたタブ
12 | showItemInGroupTooltip=グループ内でこのタブを表示します (Shift+Enter)
13 | switchToGroupTooltip=このタブのグループに切り替えます (Enter)
14 | viewTabsInGroupTooltip=このグループのすべてのタブを表示します (Shift+Enter)
15 | goBackToGroupsLabel=グループへ戻る
16 | openNewTab=新規タブを開く
17 | closeTab=タブを閉じる
18 | muteTab=タブを消音にする
19 | unmuteTab=タブの消音を解除する
20 | loading=お待ちください...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - タブグループ
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=0
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title と $tabs 個のタブ
39 | restorePinned=ピン留めしたタブ $idx ($tabs 個のタブ)
40 | restoreUnnamedGroup=無題のグループ $idx ($tabs 個のタブ)
41 | restoreNamedGroup=$name ($tabs 個のタブ)
42 | tabs=$tabs 個のタブ
43 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=別のタブグループを選択します
2 | buttonManageTooltip=タブグループを管理します
3 | groupItemDefaultName=タブグループに名前を付ける
4 | groupItemCloseGroup=グループを閉じる
5 | groupItemOptionsGroup=このグループの設定を変更する
6 | groupItemExpand=このスタック内のすべてのタブを表示する
7 | groupItemMute=このグループ内のすべてのタブを消音にする
8 | groupItemUndoCloseGroup=タブグループを復元
9 | groupItemDiscardClosedGroup=閉じたグループを破棄
10 | groupItemUnnamed=グループ $num
11 | pinnedItemsGroup=ピン留めしたタブ
12 | showItemInGroupTooltip=グループ内でこのタブを表示します (Shift+Enter)
13 | switchToGroupTooltip=このタブのグループに切り替えます (Enter)
14 | viewTabsInGroupTooltip=このグループのすべてのタブを表示します (Shift+Enter)
15 | goBackToGroupsLabel=グループへ戻る
16 | openNewTab=新しいタブを開く
17 | closeTab=タブを閉じる
18 | muteTab=タブを消音にする
19 | unmuteTab=タブの消音を解除する
20 | loading=お待ちください...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - タブグループ
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=0
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title と $tabs 個のタブ
39 | restorePinned=ピン留めしたタブ $idx ($tabs 個のタブ)
40 | restoreUnnamedGroup=無題のグループ $idx ($tabs 個のタブ)
41 | restoreNamedGroup=$name ($tabs 個のタブ)
42 | tabs=$tabs 個のタブ
43 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/sl/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/chrome/skin/linux/TabView.css:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
6 |
7 | /* tabview toolbar button */
8 |
9 | :-moz-any(toolbar, .widget-overflow-list) #tabGroups-tabview-button > .toolbarbutton-icon {
10 | max-width: 18px;
11 | }
12 |
13 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button > .toolbarbutton-icon {
14 | padding: 2px 6px;
15 | max-width: 32px;
16 | }
17 |
18 | /* the button showing the current group's label needs some
19 | help with adapting a similar style to icon based buttons */
20 |
21 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle] > .toolbarbutton-text {
22 | height: 24px;
23 | margin-inline-end: 0;
24 | padding: 2px 6px;
25 | border: 1px solid transparent;
26 | border-radius: 2px;
27 | transition-property: background-color, border-color;
28 | transition-duration: 150ms;
29 | }
30 |
31 | #TabsToolbar #tabGroups-tabview-button[showGroupTitle] {
32 | color: inherit;
33 | }
34 |
35 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle]:not([disabled=true]):hover > .toolbarbutton-text {
36 | background: var(--toolbarbutton-hover-background);
37 | background-clip: padding-box;
38 | border-color: var(--toolbarbutton-hover-bordercolor);
39 | box-shadow: var(--toolbarbutton-hover-boxshadow);
40 | }
41 |
42 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle]:not([disabled=true]):-moz-any([open],[checked],:hover:active) > .toolbarbutton-text {
43 | background: var(--toolbarbutton-active-background);
44 | background-clip: padding-box;
45 | border-color: var(--toolbarbutton-active-bordercolor);
46 | box-shadow: var(--toolbarbutton-active-boxshadow);
47 | transition-duration: 10ms;
48 | }
49 |
50 | :-moz-any(#TabsToolbar, #nav-bar) #tabGroups-tabview-button.toolbarbutton-1[showGroupTitle][checked]:not(:active):hover > .toolbarbutton-text {
51 | background-color: var(--toolbarbutton-checkedhover-backgroundcolor);
52 | transition: background-color 150ms;
53 | }
54 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/nl/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/pl/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/resource/modules/migrate.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.3.1
6 |
7 | this.migrate = {
8 | migratorBackstage: null,
9 |
10 | init: function() {
11 | this.migratePrefs();
12 | this.skipTabGroupsMigrator();
13 | },
14 |
15 | uninit: function() {
16 | if(this.migratorBackstage) {
17 | this.migratorBackstage.TabGroupsMigrator = this.migratorBackstage._TabGroupsMigrator;
18 | delete this.migratorBackstage._TabGroupsMigrator;
19 | }
20 | },
21 |
22 | migratePrefs: function() {
23 | if(!Prefs.migratedPrefs) {
24 | if(Services.prefs.prefHasUserValue('browser.panorama.session_restore_enabled_once')) {
25 | Prefs.pageAutoChanged = Services.prefs.getBoolPref('browser.panorama.session_restore_enabled_once');
26 | }
27 | Prefs.migratedPrefs = true;
28 | }
29 | },
30 |
31 | // we need to wait until at least one window is finished loading, so that CustomizableUI knows what it's doing
32 | migrateWidget: function() {
33 | // try to place our widget in the same place where the native widget used to be
34 | if(!Prefs.migratedWidget) {
35 | for(let area of CustomizableUI.areas) {
36 | try {
37 | let ids = CustomizableUI.getWidgetIdsInArea(area);
38 | let position = ids.indexOf("tabview-button");
39 | if(position != -1) {
40 | CustomizableUI.addWidgetToArea(objName+'-tabview-button', area, position);
41 | break;
42 | }
43 | }
44 | catch(ex) { Cu.reportError(ex); }
45 | }
46 | Prefs.migratedWidget = true;
47 | }
48 | },
49 |
50 | skipTabGroupsMigrator: function() {
51 | try {
52 | this.migratorBackstage = Cu.import("resource:///modules/TabGroupsMigrator.jsm", {});
53 | }
54 | catch(ex) {
55 | // this will fail until bug 1221050 lands
56 | return;
57 | }
58 |
59 | this.migratorBackstage._TabGroupsMigrator = this.migratorBackstage.TabGroupsMigrator;
60 | this.migratorBackstage.TabGroupsMigrator = {
61 | // no-op the migration, we'll just keep using the same data in the add-on anyway
62 | migrate: function() {}
63 | };
64 | }
65 | };
66 |
67 | Modules.LOADMODULE = function() {
68 | migrate.init();
69 | };
70 |
71 | Modules.UNLOADMODULE = function() {
72 | migrate.uninit();
73 | };
74 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP-mac/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/ja-JP/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/de/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/es/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/fr/utils-about.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/chrome/locale/pt-BR/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Escolher outro grupo
2 | buttonManageTooltip=Gerencie o seu grupo de abas
3 | groupItemDefaultName=Nomear este grupo
4 | groupItemCloseGroup=Fechar o grupo
5 | groupItemOptionsGroup=Mudar as configurações desse grupo
6 | groupItemExpand=Ver todas as abas dessa pilha
7 | groupItemMute=Silenciar todas as abas desse grupo
8 | groupItemUndoCloseGroup=Desfazer grupo fechado
9 | groupItemDiscardClosedGroup=Descartar grupo fechado
10 | groupItemUnnamed=Grupo $num
11 | pinnedItemsGroup=Abas fixas
12 | showItemInGroupTooltip=Ver essa aba em seu grupo(Shift+Enter)
13 | switchToGroupTooltip=Mudar para esse grupo de abas (Enter)
14 | viewTabsInGroupTooltip=Ver todas as abas nesse grupo (Shift+Enter)
15 | goBackToGroupsLabel=Voltar para os grupos
16 | openNewTab=Abrir nova aba
17 | closeTab=Fechar a aba
18 | muteTab=Silenciar a aba
19 | unmuteTab=Retornar o som da aba
20 | loading=Aguarde...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Agrupe suas abas
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=2
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title e $tabs mais;$title e $tabs mais
39 | restorePinned=Abas fixas $idx ($tabs aba);Aba fixa $idx ($tabs abas)
40 | restoreUnnamedGroup=Grupo sem nome $idx ($tabs aba);Grupo sem nome $idx ($tabs abas)
41 | restoreNamedGroup=$name ($tabs aba);$name ($tabs abas)
42 | tabs=$tabs aba;$tabs abas
43 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Choose another tab group
2 | buttonManageTooltip=Manage your tab groups
3 |
4 | groupItemDefaultName=Name this tab group
5 | groupItemCloseGroup=Close group
6 | groupItemOptionsGroup=Change the settings for this group
7 | groupItemExpand=See all tabs in this stack
8 | groupItemMute=Mute all tabs in this group
9 | groupItemUndoCloseGroup=Undo Close Group
10 | groupItemDiscardClosedGroup=Discard closed group
11 | groupItemUnnamed=Group $num
12 |
13 | pinnedItemsGroup=Pinned Tabs
14 | showItemInGroupTooltip=View this tab in its group (Shift+Enter)
15 |
16 | switchToGroupTooltip=Switch to this group of tabs (Enter)
17 | viewTabsInGroupTooltip=View all tabs in this group (Shift+Enter)
18 | goBackToGroupsLabel=Go back to groups
19 |
20 | openNewTab=Open new tab
21 | closeTab=Close tab
22 | muteTab=Mute tab
23 | unmuteTab=Unmute tab
24 |
25 | loading=please wait...
26 |
27 | # $app is the application name (i.e. Firefox, Nightly).
28 | windowTitle=$app - Group Your Tabs
29 |
30 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
31 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
32 | # and choose from the list of Plural Rules which one is to be used for this localization.
33 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
34 | PluralRule=1
35 |
36 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
37 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
38 | # $name is the original name of the group.
39 | # $tabs is the number of tabs each group item contains.
40 | # The form to be used will be chosen by the script based on the number $tabs.
41 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
42 | # For example:
43 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
44 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
45 | # - chinese (Rule #0) has only one form: "[everything]"
46 | moveToUnnamedGroup=$title and $tabs more;$title and $tabs more
47 | restorePinned=Pinned Tabs $idx ($tabs tab);Pinned Tabs $idx ($tabs tabs)
48 | restoreUnnamedGroup=Unnamed Group $idx ($tabs tab);Unnamed Group $idx ($tabs tabs)
49 | restoreNamedGroup=$name ($tabs tab);$name ($tabs tabs)
50 | tabs=$tabs tab;$tabs tabs
51 |
--------------------------------------------------------------------------------
/resource/modules/utils/Strings.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 2.4.0
6 | Modules.UTILS = true;
7 | Modules.BASEUTILS = true;
8 |
9 | // Strings - use for getting strings out of bundles from .properties locale files
10 | // get(bundle, string, replace, aNumber) - returns the desired string
11 | // bundle - (string) name of the bundle to retrieve the string from, just aBundle in chrome://objPathString/locale/aBundle.properties
12 | // string - (string) name of the string to retrieve from bundle
13 | // (optional) replace - (array) [ [original, new] x n ] retrieves the string with the occurences of original replaced with new
14 | // (optional) aNumber - (int) if set will choose the corresponding Plural Form from the string returned based on it;
15 | // expects string "PluralRule" defined in the same bundle representing a number.
16 | // See https://developer.mozilla.org/en-US/docs/Localization_and_Plurals
17 | this.Strings = {
18 | bundles: {},
19 |
20 | getPath: function(aPath) {
21 | let cacheBuster = (AddonData) ? '?'+AddonData.initTime : '';
22 | return "chrome://"+objPathString+"/locale/"+aPath+".properties"+cacheBuster;
23 | },
24 |
25 | get: function(bundle, string, replace, aNumber) {
26 | var bundleObj = bundle;
27 |
28 | if(!this.bundles[bundleObj]) {
29 | this.bundles[bundleObj] = Services.strings.createBundle(this.getPath(bundle));
30 | }
31 |
32 | try {
33 | string = this.bundles[bundleObj].GetStringFromName(string);
34 | }
35 | catch(ex) {
36 | Cu.reportError('Failed to load string from properties file. [Addon: '+objPathString+'] [File: '+bundle+'] [String: '+string+']');
37 | Cu.reportError(ex);
38 | return '';
39 | }
40 |
41 | // This means we are dealing with a possible Plural Form, so we need to make sure we treat it accordingly
42 | if(aNumber != undefined && string.includes(';')) {
43 | try {
44 | var [getForm, numForms] = PluralForm.makeGetter(this.bundles[bundleObj].GetStringFromName('PluralRule'));
45 | string = getForm(aNumber, string);
46 | }
47 | catch(ex) {} // if there's no "PluralRule" defined, skip this as it might just actually be an intentional semi-colon
48 | }
49 |
50 | if(replace) {
51 | for(let x of replace) {
52 | while(string.includes(x[0])) {
53 | string = string.replace(x[0], x[1]);
54 | }
55 | }
56 | }
57 |
58 | return string;
59 | }
60 | };
61 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Välj en annan flikgrupp
2 | buttonManageTooltip=Hantera dina flikgrupper
3 | groupItemDefaultName=Namnge denna flikgrupp
4 | groupItemCloseGroup=Stäng grupp
5 | groupItemOptionsGroup=Ändra inställningarna för denna grupp
6 | groupItemExpand=Se alla flikar i denna stapel
7 | groupItemMute=Tysta alla flikar i denna grupp
8 | groupItemUndoCloseGroup=Ångra stängning av grupp
9 | groupItemDiscardClosedGroup=Avvisa stängd grupp
10 | groupItemUnnamed=Grupp $num
11 | pinnedItemsGroup=Fastnålade flikar
12 | showItemInGroupTooltip=Visa denna flik i dess grupp (Shift+Enter)
13 | switchToGroupTooltip=Växla till denna flikgrupp (Enter)
14 | viewTabsInGroupTooltip=Visa alla flikar i denna grupp (Shift+Enter)
15 | goBackToGroupsLabel=Gå tillbaka till grupper
16 | openNewTab=Öppna ny flik
17 | closeTab=Stäng flik
18 | muteTab=Ljud av för flik
19 | unmuteTab=Ljud på för flik
20 | loading=var god vänta...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Gruppera dina flikar
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=1
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title och $tabs till;$title och $tabs fler
39 | restorePinned=Fastnålade flikar $idx ($tabs flik);Fastnålade flikar $idx ($tabs flikar)
40 | restoreUnnamedGroup=Namnlös grupp $idx ($tabs flik);Namnlös grupp $idx ($tabs flikar)
41 | restoreNamedGroup=$name ($tabs flik);$name ($tabs flikar)
42 | tabs=$tabs flik;$tabs flikar
43 |
--------------------------------------------------------------------------------
/chrome/locale/es/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Elija otro grupo de pestañas
2 | buttonManageTooltip=Gestione sus grupos de pestañas
3 | groupItemDefaultName=Nombre este grupo de pestañas
4 | groupItemCloseGroup=Cerrar grupo
5 | groupItemOptionsGroup=Cambiar la configuración para este grupo
6 | groupItemExpand=Ver todas las pestañas de esta pila
7 | groupItemMute=Silenciar todas las pestañas de este grupo
8 | groupItemUndoCloseGroup=Deshacer cierre de grupo
9 | groupItemDiscardClosedGroup=Descartar grupo cerrado
10 | groupItemUnnamed=Grupo $num
11 | pinnedItemsGroup=Pestañas fijadas
12 | showItemInGroupTooltip=Ver esta pestaña en su grupo (Mayús+Intro)
13 | switchToGroupTooltip=Cambiar a este grupo de pestañas (Intro)
14 | viewTabsInGroupTooltip=Ver todas las pestañas de este grupo (Mayús+Intro)
15 | goBackToGroupsLabel=Volver a los grupos
16 | openNewTab=Abrir nueva pestaña
17 | closeTab=Cerrar pestaña
18 | muteTab=Silenciar pestaña
19 | unmuteTab=Desilenciar pestaña
20 | loading=por favor, espere...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Agrupe sus pestañas
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=1
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title y $tabs más;$title y $tabs más
39 | restorePinned=Pestañas fijadas $idx ($tabs pestaña);Pestañas fijadas $idx ($tabs pestañas)
40 | restoreUnnamedGroup=Grupo sin nombre $idx ($tabs pestaña);Grupo sin nombre $idx ($tabs pestañas)
41 | restoreNamedGroup=$name ($tabs pestaña);$name ($tabs pestañas)
42 | tabs=$tabs pestaña;$tabs pestañas
43 |
--------------------------------------------------------------------------------
/chrome/locale/de/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Eine andere Tabgruppe auswählen
2 | buttonManageTooltip=Tabgruppen verwalten
3 | groupItemDefaultName=Diese Tabgruppe benennen
4 | groupItemCloseGroup=Gruppe schließen
5 | groupItemOptionsGroup=Einstellungen für diese Gruppe ändern
6 | groupItemExpand=Alle Tabs hier anzeigen
7 | groupItemMute=Alle Tabs dieser Gruppe stummschalten
8 | groupItemUndoCloseGroup=Schließen der Gruppe rückgängig machen
9 | groupItemDiscardClosedGroup=Geschlossene Gruppe verwerfen
10 | groupItemUnnamed=Gruppe $num
11 | pinnedItemsGroup=Angeheftete Tabs
12 | showItemInGroupTooltip=Diesen Tab in seiner Gruppe anzeigen (Umschalttaste + Eingabetaste)
13 | switchToGroupTooltip=Zu dieser Tabgruppe wechseln (Eingabetaste)
14 | viewTabsInGroupTooltip=Alle Tabs in dieser Gruppe anzeigen (Eingabetaste)
15 | goBackToGroupsLabel=Zu Gruppen zurückkehren
16 | openNewTab=Neuen Tab öffnen
17 | closeTab=Tab schließen
18 | muteTab=Tab stummschalten
19 | unmuteTab=Tab-Stummschaltung aufheben
20 | loading=bitte warten…
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app – Tabs gruppieren
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=1
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title und $tabs weiterer Tab;$title und $tabs weitere Tabs
39 | restorePinned=Angehefteter Tab $idx ($tabs Tab);Angeheftete Tabs ($tabs Tabs)
40 | restoreUnnamedGroup=Unbenannte Gruppe $idx ($tabs Tab);Unbenannte Gruppe $idx ($tabs Tabs)
41 | restoreNamedGroup=$name ($tabs Tab);$name ($tabs Tabs)
42 | tabs=$tabs Tab;$tabs Tabs
43 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Kies in oare ljepblêdgroep
2 | buttonManageTooltip=Behear jo ljepblêdgroepen
3 | groupItemDefaultName=Dizze ljepblêdgroep in namme jaan
4 | groupItemCloseGroup=Groep slute
5 | groupItemOptionsGroup=Ynstellingen wizigje foar dizze groep
6 | groupItemExpand=Toan alle ljepblêden yn dit fek
7 | groupItemMute=Dempe foar alle ljepblêden yn dizze groep
8 | groupItemUndoCloseGroup=Groep slute ûngedien meitsje
9 | groupItemDiscardClosedGroup=Sluten groep fuortsmite
10 | groupItemUnnamed=Groep $num
11 | pinnedItemsGroup=Fêstsette ljepblêden
12 | showItemInGroupTooltip=Toan dit ljepblêd yn syn groep (Shift+Enter)
13 | switchToGroupTooltip=Wikselje nei dizze ljepblêdgroep (Enter)
14 | viewTabsInGroupTooltip=Toan alle ljepblêden yn dizze groep (Shift+Enter)
15 | goBackToGroupsLabel=Werom nei groepen
16 | openNewTab=Nij ljepblêd iepenje
17 | closeTab=Ljepblêd slute
18 | muteTab=Ljepblêd dempe
19 | unmuteTab=Ljepblêd dempe opheffe
20 | loading=in momint…
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Jo ljepblêden groepearje
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=1
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title en noch $tabs;$title en noch $tabs
39 | restorePinned=Fêstmakke ljepblêden $idx ($tabs ljepblêd);Fêstmakke ljepblêden $idx ($tabs ljepblêden)
40 | restoreUnnamedGroup=Nammeleaze groep $idx ($tabs ljepblêd);Nammeleaze groep $idx ($tabs ljepblêden)
41 | restoreNamedGroup=$name ($tabs ljepblêd);$name ($tabs ljepblêden)
42 | tabs=$tabs tab;$tabs tabs
43 |
--------------------------------------------------------------------------------
/chrome/locale/fr/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Choisir un autre groupe d'onglets
2 | buttonManageTooltip=Gérer vos groupes d'onglets
3 | groupItemDefaultName=Nommer ce groupe d'onglets
4 | groupItemCloseGroup=Fermer le groupe
5 | groupItemOptionsGroup=Changer les réglages pour ce groupe
6 | groupItemExpand=Voir tout les onglets dans cette pile
7 | groupItemMute=Rendre tout les onglets de ce groupe muet
8 | groupItemUndoCloseGroup=Annuler la fermeture du groupe
9 | groupItemDiscardClosedGroup=Effacer le groupe fermé
10 | groupItemUnnamed=Groupe $num
11 | pinnedItemsGroup=Onglets épinglés
12 | showItemInGroupTooltip=Voir cet onglet dans son groupe (Shift+Entrée)
13 | switchToGroupTooltip=Basculer vers ce groupe d'onglets (Entrée)
14 | viewTabsInGroupTooltip=Voir tout les onglets de ce groupe (Shift+Entrée)
15 | goBackToGroupsLabel=Retourner aux groupes
16 | openNewTab=Ouvrir un nouvel onglet
17 | closeTab=Fermer l'onglet
18 | muteTab=Rendre l'onglet muet
19 | unmuteTab=Réactiver le son de l'onglet
20 | loading=veuillez patienter...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Grouper vos onglets
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=2
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title et $tabs autre;$title et $tabs autres
39 | restorePinned=Onglets épinglés $idx ($tabs onglet);Onglets épinglés $idx ($tabs onglets)
40 | restoreUnnamedGroup=Groupe sans nom $idx ($tabs onglet);Groupe sans nom $idx ($tabs onglets)
41 | restoreNamedGroup=$name ($tabs onglet);$name ($tabs onglets)
42 | tabs=$tabs onglet;$tabs onglets
43 |
--------------------------------------------------------------------------------
/chrome/locale/nl/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Een andere tabbladgroep kiezen
2 | buttonManageTooltip=Uw tabbladgroepen beheren
3 | groupItemDefaultName=Deze tabbladgroep een naam geven
4 | groupItemCloseGroup=Groep sluiten
5 | groupItemOptionsGroup=De instellingen voor deze groep wijzigen
6 | groupItemExpand=Alle tabbladen in deze stapel bekijken
7 | groupItemMute=Alle tabbladen in deze groep dempen
8 | groupItemUndoCloseGroup=Groep sluiten ongedaan maken
9 | groupItemDiscardClosedGroup=Gesloten groep verwijderen
10 | groupItemUnnamed=Groep $num
11 | pinnedItemsGroup=Vastgemaakte tabbladen
12 | showItemInGroupTooltip=Dit tabblad in zijn groep weergeven (Shift+Enter)
13 | switchToGroupTooltip=Wisselen naar deze groep tabbladen (Enter)
14 | viewTabsInGroupTooltip=Alle tabbladen in deze groep weergeven (Shift+Enter)
15 | goBackToGroupsLabel=Terug naar groepen
16 | openNewTab=Nieuw tabblad openen
17 | closeTab=Tabblad sluiten
18 | muteTab=Tabblad dempen
19 | unmuteTab=Tabblad dempen opheffen
20 | loading=een moment…
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Uw tabbladen groeperen
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=1
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title en nog $tabs;$title en nog $tabs
39 | restorePinned=Vastgemaakte tabbladen $idx ($tabs tabblad);Vastgemaakte tabbladen $idx ($tabs tabbladen)
40 | restoreUnnamedGroup=Naamloze groep $idx ($tabs tabblad);Naamloze groep $idx ($tabs tabbladen)
41 | restoreNamedGroup=$name ($tabs tabblad);$name ($tabs tabbladen)
42 | tabs=$tabs tabblad;$tabs tabbladen
43 |
--------------------------------------------------------------------------------
/chrome/locale/pl/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Wybierz inną grupę kart
2 | buttonManageTooltip=Zarządzaj swoimi grupami kart
3 | groupItemDefaultName=Nazwij tę grupę kart
4 | groupItemCloseGroup=Zamknij grupę
5 | groupItemOptionsGroup=Zmień ustawienia dla tej grupy
6 | groupItemExpand=Zobacz wszystkie karty w tym stosie
7 | groupItemMute=Wycisz wszystkie karty w tej grupie
8 | groupItemUndoCloseGroup=Cofnij zamknięcie grupy
9 | groupItemDiscardClosedGroup=Porzuć zamkniętą grupę
10 | groupItemUnnamed=Grupa $num
11 | pinnedItemsGroup=Przypięte karty
12 | showItemInGroupTooltip=Pokaż tę kartę w swojej grupie (Shift+Enter)
13 | switchToGroupTooltip=Przełącz na tę grupę kart (Enter)
14 | viewTabsInGroupTooltip=Pokaż wszystkie kraty w tej grupie (Shift+Enter)
15 | goBackToGroupsLabel=Wróć do grup
16 | openNewTab=Otwórz nową kartę
17 | closeTab=Zamknij kartę
18 | muteTab=Wycisz kartę
19 | unmuteTab=Włącz dźwięk
20 | loading=proszę czekać...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Grupowanie kart
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=9
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title i jedna więcej;$title i $tabs więcej;$title i $tabs więcej
39 | restorePinned=Przypięte karty $idx ($tabs karta);Przypięte karty $idx ($tabs karty);Przypięte karty $idx ($tabs kart)
40 | restoreUnnamedGroup=Nienazwana grupa $idx ($tabs karta);Nienazwana grupa $idx ($tabs karty);Nienazwana grupa $idx ($tabs kart)
41 | restoreNamedGroup=$name ($tabs karta);$name ($tabs karty);$name ($tabs kart)
42 | tabs=$tabs karta;$tabs karty;$tabs kart
43 |
--------------------------------------------------------------------------------
/resource/modules/compatibilityFix/SessionManager.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 1.1.0
6 |
7 | XPCOMUtils.defineLazyModuleGetter(this, "gSessionManager", "chrome://sessionmanager/content/modules/session_manager.jsm");
8 |
9 | this.SessionManager = {
10 | id: '{1280606b-2510-4fe0-97ef-9b5a22eafe30}',
11 |
12 | Constants: null,
13 | enabled: false,
14 |
15 | onEnabled: function(addon) {
16 | if(addon.id == this.id) { this.enable(); }
17 | },
18 |
19 | onDisabled: function(addon) {
20 | if(addon.id == this.id) { this.disable(); }
21 | },
22 |
23 | listen: function() {
24 | AddonManager.addAddonListener(this);
25 | AddonManager.getAddonByID(this.id, (addon) => {
26 | if(addon && addon.isActive) {
27 | this.enable();
28 | }
29 |
30 | if(pageWatch.waitForSessionManagerModule) {
31 | pageWatch.waitForSessionManagerModule();
32 | delete pageWatch.waitForSessionManagerModule;
33 | }
34 | });
35 | },
36 |
37 | unlisten: function() {
38 | AddonManager.removeAddonListener(this);
39 | this.disable();
40 | },
41 |
42 | enable: function() {
43 | this.enabled = true;
44 | pageWatch.SM = true;
45 |
46 | Cu.import("chrome://sessionmanager/content/modules/shared_data/constants.jsm", this);
47 | pageWatch.kKeepingSession.add(this.Constants.STARTUP_PROMPT);
48 | pageWatch.kKeepingSession.add(this.Constants.STARTUP_LOAD);
49 |
50 | let defaults = Services.prefs.getDefaultBranch("extensions."+this.id+".");
51 | Prefs.setDefaults({
52 | startup: defaults.getIntPref("startup"),
53 | backup_session: defaults.getIntPref("backup_session")
54 | }, this.id);
55 |
56 | // SM's auto backup and restore preferences could have been changed, so see if we should adapt anything.
57 | Prefs.listen('startup', pageWatch);
58 | Prefs.listen('backup_session', pageWatch);
59 | pageWatch.callListeners();
60 | },
61 |
62 | disable: function() {
63 | if(this.enabled) {
64 | this.enabled = false;
65 | pageWatch.SM = false;
66 |
67 | pageWatch.kKeepingSession.delete(this.Constants.STARTUP_PROMPT);
68 | pageWatch.kKeepingSession.delete(this.Constants.STARTUP_LOAD);
69 |
70 | Prefs.unlisten('startup', pageWatch);
71 | Prefs.unlisten('backup_session', pageWatch);
72 | pageWatch.callListeners();
73 | }
74 | },
75 |
76 | isSavingSession: function() {
77 | return Prefs.backup_session && Prefs.startup;
78 | }
79 | };
80 |
81 | Modules.LOADMODULE = function() {
82 | SessionManager.listen();
83 | };
84 |
85 | Modules.UNLOADMODULE = function() {
86 | SessionManager.unlisten();
87 | };
88 |
--------------------------------------------------------------------------------
/chrome/locale/pt-PT/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Escolher outro grupo de separadores
2 | buttonManageTooltip=Gerir os teus grupos de separadores
3 | groupItemDefaultName=Dá um nome a este grupo
4 | groupItemCloseGroup=Fechar grupo
5 | groupItemOptionsGroup=Mudar as definições deste grupo
6 | groupItemExpand=Mostrar todos os separadores nesta pilha
7 | groupItemMute=Tirar o som a todos os separadores deste grupo
8 | groupItemUndoCloseGroup=Anular o Fecho do Grupo
9 | groupItemDiscardClosedGroup=Descartar o grupo fechado
10 | groupItemUnnamed=Grupo $num
11 | pinnedItemsGroup=Separadores de Aplicação
12 | showItemInGroupTooltip=Mostrar este separador no seu grupo (Shift+Enter)
13 | switchToGroupTooltip=Selecionar este grupo de separadores (Enter)
14 | viewTabsInGroupTooltip=Mostrar todos os separadores neste grupo (Shift+Enter)
15 | goBackToGroupsLabel=Voltar aos grupos
16 | openNewTab=Abrir separador novo
17 | closeTab=Fechar separador
18 | muteTab=Tirar som ao separador
19 | unmuteTab=Retornar som ao separador
20 | loading=aguarde por favor...
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Agrupa os Teus Separadores
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=1
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title e mais $tabs;$title e mais $tabs
39 | restorePinned=Separadores de Aplicação $idx ($tabs separador);Separadores de Aplicação $idx ($tabs separadores)
40 | restoreUnnamedGroup=Grupo sem Nome $idx ($tabs separador);Grupo sem Nome $idx ($tabs separadores)
41 | restoreNamedGroup=$name ($tabs separador);$name ($tabs separadores)
42 | tabs=$tabs separador;$tabs separadores
43 |
--------------------------------------------------------------------------------
/chrome/content/quickAccess.xul:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 |
24 |
25 |
28 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
38 |
39 |
40 |
45 |
46 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/chrome/locale/cs/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Vybrat jinou skupinu panelů
2 | buttonManageTooltip=Spravovat skupiny panelů
3 | groupItemDefaultName=Pojmenovat tuto skupinu panelů
4 | groupItemCloseGroup=Zavřít skupinu
5 | groupItemOptionsGroup=Změnit nastavení této skupiny
6 | groupItemExpand=Zobrazit všechny panely v tomto štosu
7 | groupItemMute=Vypnout zvuk všech panelů v této skupině
8 | groupItemUndoCloseGroup=Vrátit zavřenou skupinu
9 | groupItemDiscardClosedGroup=Odstranit zavřenou skupinu
10 | groupItemUnnamed=Skupina $num
11 | pinnedItemsGroup=Připnuté panely
12 | showItemInGroupTooltip=Zobrazit tento panel v jeho skupině (Shift+Enter)
13 | switchToGroupTooltip=Přepnout na tuto skupinu panelů (Enter)
14 | viewTabsInGroupTooltip=Zobrazit všechny panely v této skupině (Shift+Enter)
15 | goBackToGroupsLabel=Zpět na skupiny
16 | openNewTab=Otevřít nový panel
17 | closeTab=Zavřít panel
18 | muteTab=Vypnout zvuk panelu
19 | unmuteTab=Zapnout zvuk panelu
20 | loading=čekejte prosím…
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - Skupiny panelů
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=8
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title a další $tabs;$title a další $tabs;$title a dalších $tabs
39 | restorePinned=Připnuté panely $idx ($tabs panel);Připnuté panely $idx ($tabs panely);Připnuté panely $idx ($tabs panelů)
40 | restoreUnnamedGroup=Nepojmenovaná skupina $idx ($tabs panel);Nepojmenovaná skupina $idx ($tabs panely);Nepojmenovaná skupina $idx ($tabs panelů)
41 | restoreNamedGroup=$name ($tabs panel);$name ($tabs panely);$name ($tabs panelů)
42 | tabs=$tabs panel;$tabs panely;$tabs panelů
43 |
--------------------------------------------------------------------------------
/chrome/locale/sl/TabView.properties:
--------------------------------------------------------------------------------
1 | buttonQuickAccessTooltip=Izberite drugo skupino zavihkov
2 | buttonManageTooltip=Upravljaj z mojimi skupinami zavihkov
3 | groupItemDefaultName=Poimenujte to skupine zavihkov
4 | groupItemCloseGroup=Zapri skupino
5 | groupItemOptionsGroup=Spremenite nastavitve te skupine
6 | groupItemExpand=Pokaži vse zavihke v skladu
7 | groupItemMute=Utišaj vse zavihke v tej skupini
8 | groupItemUndoCloseGroup=Razveljavi zapiranje skupine
9 | groupItemDiscardClosedGroup=Zavrzi zaprto skupino
10 | groupItemUnnamed=Skupina $num
11 | pinnedItemsGroup=Pripeti zavihki
12 | showItemInGroupTooltip=Pokaži ta zavihek v njegovi skupini (Shift+Enter)
13 | switchToGroupTooltip=Preklopi na to skupino zavihkov (Enter)
14 | viewTabsInGroupTooltip=Pokaži vse zavihke v tej skupini (Shift+Enter)
15 | goBackToGroupsLabel=Vrni se v skupine
16 | openNewTab=Odpri nov zavihek
17 | closeTab=Zapri zavihek
18 | muteTab=Utišaj zavihek
19 | unmuteTab=Povrni glasnost zavihka
20 | loading=počakajte …
21 | # $app is the application name (i.e. Firefox, Nightly).
22 | windowTitle=$app - združite svoje zavihke
23 | # If you have any questions about the strings in this file, please feel free to e-mail me about it: quicksaver@gmail.com
24 | # Please go to https://developer.mozilla.org/en-US/docs/Localization_and_Plurals#List_of_Plural_Rules
25 | # and choose from the list of Plural Rules which one is to be used for this localization.
26 | # For example, the Plural Rule for english is #1, while for polish is #9 and for chinese is #0.
27 | PluralRule=10
28 | # $title is the page title of the first tab in the unnamed group, $tabs is the number of remaining tabs.
29 | # $idx is a number identifier, to differentiate from similar groups in the restore groups list.
30 | # $name is the original name of the group.
31 | # $tabs is the number of tabs each group item contains.
32 | # The form to be used will be chosen by the script based on the number $tabs.
33 | # These strings should be a list of forms separated by a ";" in the order that they appear in the rules in the list above.
34 | # For example:
35 | # - english (Rule #1) has two forms: "[is 1];[everything else]".
36 | # - polish (Rule #9) has three forms: "[is 1];[ends in 2-4, excluding 12-14];[everything else]"
37 | # - chinese (Rule #0) has only one form: "[everything]"
38 | moveToUnnamedGroup=$title in še $tabs;$title in še $tabs;$title in še $tabs;$title in še $tabs
39 | restorePinned=Pripeti zavihki $idx ($tabs zavihek);Pripeti zavihki $idx ($tabs zavihka);Pripeti zavihki $idx ($tabs zavihki);Pripeti zavihki $idx ($tabs zavihkov)
40 | restoreUnnamedGroup=Neimenovana skupina $idx ($tabs zavihek);Neimenovana skupina $idx ($tabs zavihka);Neimenovana skupina $idx ($tabs zavihki);Neimenovana skupina $idx ($tabs zavihkov)
41 | restoreNamedGroup=$name ($tabs zavihek);$name ($tabs zavihka);$name ($tabs zavihki);$name ($tabs zavihkov)
42 | tabs=$tabs zavihek;$tabs zavihka;$tabs zavihki;$tabs zavihkov
43 |
--------------------------------------------------------------------------------
/chrome/locale/en-US/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/resource/modules/utils/sandboxUtils.jsm:
--------------------------------------------------------------------------------
1 | /* This Source Code Form is subject to the terms of the Mozilla Public
2 | * License, v. 2.0. If a copy of the MPL was not distributed with this
3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 |
5 | // VERSION 2.4.3
6 | Modules.UTILS = true;
7 | Modules.CLEAN = false;
8 |
9 | // window - Similarly to Windows.callOnMostRecent, the window property returns the most recent navigator:browser window object
10 | this.__defineGetter__('window', function() { return Services.wm.getMostRecentWindow('navigator:browser'); });
11 |
12 | // document - Returns the document object associated with the most recent window object
13 | this.__defineGetter__('document', function() { return window.document; });
14 |
15 | // Styles - handle loading and unloading of stylesheets in a quick and easy way
16 | this.__defineGetter__('Styles', function() { delete this.Styles; Modules.load('utils/Styles'); return Styles; });
17 |
18 | // Windows - Aid object to help with window tasks involving window-mediator and window-watcher
19 | this.__defineGetter__('Windows', function() { delete this.Windows; Modules.load('utils/Windows'); return Windows; });
20 |
21 | // Browsers - Aid object to track and perform tasks on all document browsers across the windows
22 | this.__defineGetter__('Browsers', function() { Windows; delete this.Browsers; Modules.load('utils/Browsers'); return Browsers; });
23 |
24 | // Messenger - Aid object to communicate with browser content scripts (e10s).
25 | this.__defineGetter__('Messenger', function() { delete this.Messenger; Modules.load('utils/Messenger'); return Messenger; });
26 |
27 | // Observers - Helper for adding and removing observers
28 | this.__defineGetter__('Observers', function() { delete this.Observers; Modules.load('utils/Observers'); return Observers; });
29 |
30 | // Overlays - to use overlays in my bootstraped add-ons
31 | this.__defineGetter__('Overlays', function() { Browsers; Observers; Piggyback; delete this.Overlays; Modules.load('utils/Overlays'); return Overlays; });
32 |
33 | // Keysets - handles editable keysets for the add-on
34 | this.__defineGetter__('Keysets', function() { Windows; delete this.Keysets; Modules.load('utils/Keysets'); return Keysets; });
35 |
36 | // Keysets - handles editable keysets for the add-on
37 | this.__defineGetter__('PrefPanes', function() { Browsers; delete this.PrefPanes; Modules.load('utils/PrefPanes'); return PrefPanes; });
38 |
39 | // DnDprefs - handles customizable areas with draggable elements in the preferences
40 | this.__defineGetter__('DnDprefs', function() { delete this.DnDprefs; Modules.load('utils/DnDprefs'); return DnDprefs; });
41 |
42 | // closeCustomize() - useful for when you want to close the customize tabs for whatever reason
43 | this.closeCustomize = function() {
44 | Windows.callOnAll(function(aWindow) {
45 | if(aWindow.gCustomizeMode) {
46 | aWindow.gCustomizeMode.exit();
47 | }
48 | }, 'navigator:browser');
49 | };
50 |
51 | Modules.UNLOADMODULE = function() {
52 | Modules.clean();
53 | };
54 |
--------------------------------------------------------------------------------
/chrome/locale/sv-SE/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/pl/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/sl/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/cs/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/chrome/locale/fy-NL/TabView.dtd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------