[Pkg-mozext-commits] [tree-style-tab] 01/03: New upstream version 0.18.2016090802
Ximin Luo
infinity0 at debian.org
Tue Sep 13 10:40:01 UTC 2016
This is an automated email from the git hooks/post-receive script.
infinity0 pushed a commit to branch master
in repository tree-style-tab.
commit 832d352c597d6492e28b0b3da6aa785a145f04a9
Author: Ximin Luo <infinity0 at debian.org>
Date: Tue Sep 13 12:35:44 2016 +0200
New upstream version 0.18.2016090802
---
META-INF/manifest.mf | 877 +++++++++++++++++++++
META-INF/mozilla.rsa | Bin 0 -> 4189 bytes
META-INF/mozilla.sf | 4 +
chrome.manifest | 6 +-
content/treestyletab/bookmarkPropertiesOverlay.xul | 4 +
content/treestyletab/bookmarksOverlay.js | 2 +-
content/treestyletab/bookmarksOverlayEditable.js | 2 +-
content/treestyletab/config.js | 12 +-
content/treestyletab/res/bookmarkMultipleTabs.js | 173 ++++
content/treestyletab/res/bookmarkMultipleTabs.xul | 146 ----
...kmarkMultipleTabs_bookmarkPropertiesOverlay.xul | 59 --
content/treestyletab/treestyletab.xul | 1 +
content/treestyletab/windowHelper.js | 3 +-
install.rdf | 2 +-
locale/da-DK/treestyletab/treestyletab.properties | 2 +-
modules/autoHide.js | 8 +-
modules/base.js | 17 +-
modules/bookmark.js | 15 +-
modules/browser.js | 2 +-
modules/constants.js | 1 +
modules/contentBridge.js | 2 +-
modules/fullTooltip.js | 2 +-
modules/groupTab.js | 2 +-
modules/lib/UninstallationListener.js | 301 +++----
modules/lib/extensions.js | 242 +-----
modules/lib/inherit.jsm | 26 +-
modules/window.js | 2 +-
treestyletab.update.rdf | 30 +
28 files changed, 1281 insertions(+), 662 deletions(-)
diff --git a/META-INF/manifest.mf b/META-INF/manifest.mf
new file mode 100644
index 0000000..bd43b41
--- /dev/null
+++ b/META-INF/manifest.mf
@@ -0,0 +1,877 @@
+Manifest-Version: 1.0
+
+Name: install.rdf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: KZw09McTlWF2HD4qJ67wBQ==
+SHA1-Digest: 4N3gi5AU3wbLXyewx0cisZ5+ZdU=
+
+Name: chrome.manifest
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: FPihfXDVX5f6LIlzgA/FJQ==
+SHA1-Digest: LMpEgH7AuXCMeWtWObwEKeIT21U=
+
+Name: icon.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: b26p1vuhLB2vYtkJ0EpFZg==
+SHA1-Digest: T9f7i8A7iAz/ElpA361lLRpnbWc=
+
+Name: treestyletab.update.rdf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WFG1EQMzOakGX3FfdBa+BQ==
+SHA1-Digest: bLVNCyty0ehyiOGSYvqzwLOZFi4=
+
+Name: components/AboutGroup.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: T4LxLbXCV246rvBpN3l4Rg==
+SHA1-Digest: ga6XOtzupo3piKvjSPSo4m1s5ck=
+
+Name: content/treestyletab/bookmarkPropertiesOverlay.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 1zRoZN7WvTFKFKS7tomA7A==
+SHA1-Digest: 5rm9f/2UOjYdrD9HD83HZ6rCc40=
+
+Name: content/treestyletab/bookmarksOverlay.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: d7ZAlBLrFBIWE0PZjUstlA==
+SHA1-Digest: dARACbwsGkeTYBFOwDEvzxheFic=
+
+Name: content/treestyletab/bookmarksOverlay.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: aw8atg7bu14/W1Crfty5/Q==
+SHA1-Digest: W20IiyleTVAkp1ui/2jZZLRJPvU=
+
+Name: content/treestyletab/bookmarksOverlayEditable.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: y+8JAVdPMb4so6IEvtgzTw==
+SHA1-Digest: /V6d117O8c9Qgt7NoCuVRN2bOF0=
+
+Name: content/treestyletab/bookmarksOverlayEditable.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WBpdcT8EfI2Ab0FyYRVuOw==
+SHA1-Digest: PrwXjbUTQd8w10vmbDhjCXR6TZw=
+
+Name: content/treestyletab/bookmarksOverlayEditable.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: xw2+1EFpMj/QoZzNOit9iw==
+SHA1-Digest: DoFHkl8xDTFaUnc9oQcEXOTSg+A=
+
+Name: content/treestyletab/config.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: CQeMI6LnYw01DCeicW8Zaw==
+SHA1-Digest: ougZFbteusnzVn8djm/xTObCf4Y=
+
+Name: content/treestyletab/config.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: AIdzEUui9m2g7S0U3tOC/Q==
+SHA1-Digest: jTTbgmSo0DamoouORrZaWoX6XWA=
+
+Name: content/treestyletab/config.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: oWFtj0roEP0prwGgmIbHNQ==
+SHA1-Digest: b9JTBbMbqyEb/TEap1A4V6xMBB8=
+
+Name: content/treestyletab/content-utils-autohide.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5LerXpT+fFUV2k1YOWLOCw==
+SHA1-Digest: UoiQ5kghSuZB2O1NOtmcO82G6ZY=
+
+Name: content/treestyletab/content-utils.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: QsnrA2FapptFOR6lxTG6yA==
+SHA1-Digest: uS/wFjUiBFLwXTj03xZpzEmzCV8=
+
+Name: content/treestyletab/group.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 36AhehtnHOpGrElzTkAIzQ==
+SHA1-Digest: rrjIlOUkUzJsucg+fWIEE+E87n8=
+
+Name: content/treestyletab/hide-embed.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: sm1uHHT3GIl7tIYUz8oS5A==
+SHA1-Digest: dVIKETt9CnpIKynmf5iCpf1jDNo=
+
+Name: content/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: X5GHdwU0794vTcmyBMKgLA==
+SHA1-Digest: cpaNFJaakJy4ZMTl+Bku6h5c2Nc=
+
+Name: content/treestyletab/multipletabConfigOverlay.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: AI3+5oxDcuSxtrEn0S4kpQ==
+SHA1-Digest: TQBJwrZ+GwwBSHbAvzc4nnoSahw=
+
+Name: content/treestyletab/treestyletab-tmp.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: PI8uh44G/pdgiRi419ylMA==
+SHA1-Digest: r/2Em0TL908f3HKMxB4LqMo/JnQ=
+
+Name: content/treestyletab/treestyletab.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: kJNUcWGpesn1BVrEpRSz6A==
+SHA1-Digest: uacaL+A7qoPJhjFZVXyybrXupu4=
+
+Name: content/treestyletab/treestyletab.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 6E9tmEesiujXo1RfuXj+tw==
+SHA1-Digest: NWhDnh0jSiQ+8Yn2qWWKZl+smqA=
+
+Name: content/treestyletab/treestyletab.xml
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 0AJ4PM4kkHzJ6Skr4X5XwQ==
+SHA1-Digest: yI4r2a9JmBDqDI8qcvvn6R1wG4M=
+
+Name: content/treestyletab/treestyletab.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: AaU9Zyy2Eh/Ymjckaz+b4g==
+SHA1-Digest: I/ZVyT55v0dNRAoDesMfh/5q9G4=
+
+Name: content/treestyletab/windowHelper.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: xTUmqhX/sRKuLdkd45C9iQ==
+SHA1-Digest: oVXpT/YYiCRPSLoZxqo53OyW750=
+
+Name: content/treestyletab/windowHelperHacks.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: aKWkLccahu81HVylPwngIA==
+SHA1-Digest: 6P4VHPYkc4xGVHP+HaQd2Ia5m6Q=
+
+Name: content/treestyletab/res/bookmarkMultipleTabs.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: swRizGupOdq3NY2Qdi4kGw==
+SHA1-Digest: TmXCzi9HL1KMdtAEY8VpOXNBUcc=
+
+Name: content/treestyletab/res/icon.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: b26p1vuhLB2vYtkJ0EpFZg==
+SHA1-Digest: T9f7i8A7iAz/ElpA361lLRpnbWc=
+
+Name: content/treestyletab/res/style-flat.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: yJ5Ng9fWzjXWr6rkY5XnxQ==
+SHA1-Digest: 21fjzektvczaL6gg46YsCnDRAoA=
+
+Name: content/treestyletab/res/style-metal.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: VLW3m1DnBgCJe/CwhatjKQ==
+SHA1-Digest: bDERNcMn+q9be5Hl5vpsOTv9+TA=
+
+Name: content/treestyletab/res/style-mixed.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: LQ+cJ4ypxMeOtrIeNb4zow==
+SHA1-Digest: fwP0Sh/HTfPlNLk8Yo4tbQurrHo=
+
+Name: content/treestyletab/res/style-plain.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: V0aScxDL7YeEz66bvCcdcw==
+SHA1-Digest: cGJJiw5nOPZqyXyvliHjM6vUXeY=
+
+Name: content/treestyletab/res/style-sidebar.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: izAqXI+MBl9HnnvYFEElqA==
+SHA1-Digest: APWbsVjSUEXhi5VaXKH7Pxcasn4=
+
+Name: content/treestyletab/res/style-vertigo.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: mC/u1MvEZzc5Nh+0nMb7aQ==
+SHA1-Digest: peni4eoolSuDI/XvU/G+i1dxU9k=
+
+Name: content/treestyletab/res/tabEffects.svg
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 2kuE/MgWKXof3NwEtoMSsw==
+SHA1-Digest: WzGw9OlK27u2qgwpylJvL+GMB9k=
+
+Name: content/treestyletab/res/tabsDragUtils.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: QmTz7V73k1BbBb1rmFh9nQ==
+SHA1-Digest: hzgVxNq5SBN7/9nhWeHZo5TbcLM=
+
+Name: content/treestyletab/res/twisty-modern-b.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ID6G7gfZgFGmzZwpoeCllA==
+SHA1-Digest: MFCsvyhs0G1660rX6nr4BWL3j04=
+
+Name: content/treestyletab/res/twisty-modern-w.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: QnmThqcAkwd6z0QfD0KO+A==
+SHA1-Digest: FkPnIvOMGo/VlOT+KQ3ZqLqi67E=
+
+Name: content/treestyletab/res/twisty-osx.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fqz2wOoq980SOp/541fdxg==
+SHA1-Digest: ItmS1DcUMeOj+uEjj4c8EIUV664=
+
+Name: content/treestyletab/res/twisty-retro.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: el+RHYOnbah9NusYiqI0wQ==
+SHA1-Digest: q0mYa40sk7KoHzdmK6voR/OuGF8=
+
+Name: defaults/preferences/treestyletab.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ycA6HipAJelmwZLMuR1fyQ==
+SHA1-Digest: /7+U/tqjRxu7bnJ0v3k634iXEp0=
+
+Name: locale/cs/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: zszUhNCZbsuXrvk0MyGtqw==
+SHA1-Digest: AmPIaBSAXJtd03ZD/LGrxu3FN3Y=
+
+Name: locale/cs/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: /mX/xFzRkHcwITPow9LgCg==
+SHA1-Digest: WMnWhoa7Igq6/CETJrTdmoqwkl4=
+
+Name: locale/cs/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: O/AN4Uc0E4AQo1aPJY3juw==
+SHA1-Digest: Hqg1966n8g8nZniPCPyx5/gR0iI=
+
+Name: locale/da-DK/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 9OgEctYlcrncB79Zp3Xsyw==
+SHA1-Digest: vjay7k00E2Dhmo0XsTlEeFTRPXI=
+
+Name: locale/da-DK/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: DF/qlqkW+LPOm+xiDtj1tQ==
+SHA1-Digest: COub0FsdcpxqVbVNC7KiWcB4JX8=
+
+Name: locale/da-DK/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: M/EIWAb+EMG8w4gQhvOSQw==
+SHA1-Digest: Tb3Z/YHQ3qXob7ZTDwM/79DkC1I=
+
+Name: locale/de-DE/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Bl+6HAZa3Dp3iHyhd2VYIg==
+SHA1-Digest: JdQfP7XjmROHYlyQEMxiYImBB38=
+
+Name: locale/de-DE/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WccbaoYXPT5hemDgkG02Zw==
+SHA1-Digest: QJZ9Z7S+QkW7fn9PKyR37RQDhec=
+
+Name: locale/de-DE/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 7IS4Rn+9/iCJoYNSq0MBHw==
+SHA1-Digest: +NBZ9kqAfyhgr7+ZdLZzTHldqtc=
+
+Name: locale/en-US/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: mBjJFiEbKENaR38v2Zi3nw==
+SHA1-Digest: /vNGGzRR58QK5AOQjlorkE5GCAI=
+
+Name: locale/en-US/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ASou9ZtsPEgWVQMF2IRQrA==
+SHA1-Digest: 4cR3aYnrXvcG7hwpf0cA1Q+xfNc=
+
+Name: locale/en-US/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 22ZTEPS58VkA7FaHK0sbmQ==
+SHA1-Digest: qD99rSb8+piKakbtwYwzJeQKirU=
+
+Name: locale/es-ES/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 4J565KU4rP1YW2Z7FwAmVw==
+SHA1-Digest: OeORv30Cbr8ylQKVbM0O9Y5n+4Y=
+
+Name: locale/es-ES/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 1ISa3rQP4wr/vUx/rgXTeA==
+SHA1-Digest: BaaGstEvjiFHlWS3XOPTROUY0BY=
+
+Name: locale/es-ES/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 8UfYIPpAbJ3l84WQNoGRpQ==
+SHA1-Digest: vxjQNy3iV4ZzXklxSwO76SQHYKs=
+
+Name: locale/fr-FR/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: QnFbkycbnW1Gsz2FBnB1yg==
+SHA1-Digest: eSqlFr5OnT5gIpY1PF7f/E3bHas=
+
+Name: locale/fr-FR/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MmU2dKfXeLH4MAtJ6fi3dg==
+SHA1-Digest: X6nsnz03rOIR03C0Enh2cHkPgGI=
+
+Name: locale/fr-FR/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ++Hzis+f+8VGKcUaMXVgyQ==
+SHA1-Digest: GjhFe1p1otrIRII5bMCDGAI+ATM=
+
+Name: locale/it-IT/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fzikcfeUYYGLBHSPKxs+ZQ==
+SHA1-Digest: DqBJQrV8f3tss7fKSnCdeXNIxYs=
+
+Name: locale/it-IT/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: R8I9lkof+2i7nzfRcCfSRg==
+SHA1-Digest: yvs8t+u6XPVP1d778dAZL3JB6wE=
+
+Name: locale/it-IT/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: OdSG45fnj9cDRt91Y0DXxw==
+SHA1-Digest: KSVrFtHQQ1VuVt1A6Ic0ebJu6g0=
+
+Name: locale/ja/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: mBjJFiEbKENaR38v2Zi3nw==
+SHA1-Digest: /vNGGzRR58QK5AOQjlorkE5GCAI=
+
+Name: locale/ja/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: jlz78yuKfyWP0RqbsJQoLw==
+SHA1-Digest: lFUmY8dsbbw9c1AaRThB5ykK1PI=
+
+Name: locale/ja/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: NoQ0y4vzhtacC7ljT4o6ww==
+SHA1-Digest: kljqqPXCovLL4rLAiEAoIf+opY0=
+
+Name: locale/pl/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: btlopE6fxtFm6BGl2WqSag==
+SHA1-Digest: JwRGjnhAsrasY46ktL+EtP3fxDI=
+
+Name: locale/pl/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 05JWMIjA1YJEJ8QnOPDMzg==
+SHA1-Digest: 112CqdOybA+tAyb1vWPhBsl5g8o=
+
+Name: locale/pl/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: IddHfedr6on89fmT9uVrTA==
+SHA1-Digest: BkllKyZPkRQY7sZyylWMTbnlbjw=
+
+Name: locale/ru/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: optA3x911mM29m/ilijA9Q==
+SHA1-Digest: Ewz5/CWtInQDfBCQoje+iGZbjEE=
+
+Name: locale/ru/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: aGUwY4SQARaxSP5aW8m5Zg==
+SHA1-Digest: kvaRTT8I2w1ed/qOmNwoiriEmz4=
+
+Name: locale/ru/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: RAEGG8HPs7aimdnGgS13Uw==
+SHA1-Digest: lyzaI1FejimAOBu+Z53hyrbRID4=
+
+Name: locale/sv-SE/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: u/nBCeYTsPmbIi9OLhk6Bg==
+SHA1-Digest: Zfn4AKRpBe4E44Sg1HIuoxFmif0=
+
+Name: locale/sv-SE/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: zfQPbROEGag5+VsSQWE9Mg==
+SHA1-Digest: uYkQNqCRb/RGZhwvqKmFRbDOSU0=
+
+Name: locale/sv-SE/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: GnKOXY1MMqBR34lBPvqR0Q==
+SHA1-Digest: iRgiJTH4pwbFyhe8Ubm/psOWxxk=
+
+Name: locale/zh-CN/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Z5mJDGXEoCOvu6WdrlfiBQ==
+SHA1-Digest: CxdX2iIT5cw2WR+1eMh9AA78n+U=
+
+Name: locale/zh-CN/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 9tCPNHJbg5S+2yxxbT86YA==
+SHA1-Digest: Zp3pDIoHeenUkT6SAlxb1I6GKU0=
+
+Name: locale/zh-CN/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: OsR9IYx3zj4zoqhxiheJZA==
+SHA1-Digest: +Q7c8OOvoKSrgZZdgFzU86QHM24=
+
+Name: locale/zh-TW/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Ub9HxVsPH7UbfT/o6UPmxg==
+SHA1-Digest: XVqJMKhADCM73LtM7OFthNdECYo=
+
+Name: locale/zh-TW/treestyletab/treestyletab.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ZFU8RjBxpI5mULkjIgGmmg==
+SHA1-Digest: BVst1wseNpdYpEJg1GHaawsRzR4=
+
+Name: locale/zh-TW/treestyletab/treestyletab.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fgsDbaou5f5LcJpduv6aag==
+SHA1-Digest: IjvrITYIupuo8dctlLwODAQN0BA=
+
+Name: modules/autoHide.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: VidzELRdPedzq49PM6oItA==
+SHA1-Digest: +/qy0uitgU5SPYj2Srgo0JhYVS4=
+
+Name: modules/base.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YSbwZ9b7gXPxtyCxDAFAiQ==
+SHA1-Digest: I3xhcCpq33uGpm5pqRdp/akfdIc=
+
+Name: modules/bookmark.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: cMDEMd+g9AJgYNPfrkNRcw==
+SHA1-Digest: TrQsPd9SmcWiBJYkoSYNVTI7ozQ=
+
+Name: modules/browser.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Y7/B4I60oB4bthrBqTCFmQ==
+SHA1-Digest: z8aNMI0/d6e025QNRRXZswatDxQ=
+
+Name: modules/browserUIShowHideObserver.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: dNk/UnlE0F8L4dJZICP6Nw==
+SHA1-Digest: D84Jbg20wtUqqgG4pWCgF9ZdVaw=
+
+Name: modules/constants.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: payijolyNJwx0JZmOWKjrA==
+SHA1-Digest: W/IH3sanSLwefhuwDu9mbL4uSlY=
+
+Name: modules/contentBridge.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ehtVEsZbRr6L1MVVUWVmvQ==
+SHA1-Digest: mA6dCavjo4R/7g9zpynkywxjUIY=
+
+Name: modules/fullscreenObserver.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: TKVwSD0v1bAX/oWKo8OerA==
+SHA1-Digest: cc6D7hos4bGfa5ReVduq0YkLnWI=
+
+Name: modules/fullTooltip.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: xVYm0qhioUh6O3YiHx26SA==
+SHA1-Digest: a+Z05xMoNkBVAvfMkJegFF6kqLM=
+
+Name: modules/getHashString.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: NATI2M/Z+BeLc6rAXCbanw==
+SHA1-Digest: eJ/4R3GFAQlf2gFZNeF3qdFOpVg=
+
+Name: modules/groupTab.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 1jg1Vz4a5YGcsdA2+JJCjQ==
+SHA1-Digest: gs/37Qf+gv4PLaj+m9/jE795MPs=
+
+Name: modules/pseudoTreeBuilder.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Kpwp2rL3SgFVDGGHaptA+A==
+SHA1-Digest: QURQEkp5d1zyuGJ3JmfZJCcIuXY=
+
+Name: modules/ReferenceCounter.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: /+GL3pEvh8yXhOLV1KTL0g==
+SHA1-Digest: KwYUQNA0W5ensPrOgCQeR2NRGm4=
+
+Name: modules/tabAttributesObserver.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: GnqU1In8Jw/2jscAyXXGyg==
+SHA1-Digest: a4KpeD2z5f3xYaa//UQGtAA5+j0=
+
+Name: modules/tabbarDNDObserver.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: XdHzRMPfcXZqe8JqbZsVBQ==
+SHA1-Digest: 3iPvF3+GMJUqpdqYL1foU20zEFQ=
+
+Name: modules/tabContentsObserver.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Mx8Cw+iPLWSjkNjv10xCXg==
+SHA1-Digest: XZJFvYTu9pPIFV+zY9hH2IJsTKM=
+
+Name: modules/tabpanelDNDObserver.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: viIk0SD+R9Tc1k0cMgf98g==
+SHA1-Digest: NGDF4zuUWe9dhiX73LMiqEKgBnk=
+
+Name: modules/themeManager.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: a/AByLsB1Pgt+QN3nTOpXg==
+SHA1-Digest: lOTZlS8mhjdv/2i2EG9Md07Pv04=
+
+Name: modules/utils.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5ngRS8P2lMHI/5rpiR3Gbg==
+SHA1-Digest: yrWQTBgmfdFT3cSY8nOFNAadyo0=
+
+Name: modules/window.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 9Kff0V+6uCIzpuUZaC7YWA==
+SHA1-Digest: k8Zk3rINL4KJj8CvKVl7G7BCTkY=
+
+Name: modules/lib/animationManager.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: tCTp1R/fbEHkC/s6LAJ+wQ==
+SHA1-Digest: gOzZIMkc9xO9PfqsTDhP2ViCyVw=
+
+Name: modules/lib/autoScroll.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: wR8RRvyDf3rUzLjBt1bsnA==
+SHA1-Digest: pCuyv9MjP2/vihtyX7wv5Uxk/2o=
+
+Name: modules/lib/confirmWithPopup.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: XffmLkDOfTuIK+48IAM4sw==
+SHA1-Digest: aXUJCn5AlQpCzmZRQ/I3czVSNAk=
+
+Name: modules/lib/extended-immutable.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: QUPhhfner7CIElQ2G8x1lA==
+SHA1-Digest: DoTMaUnEwHAwfctYCu7NuQPlQlE=
+
+Name: modules/lib/extensions.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Dmku04rz2AvrkieEyF5Xyg==
+SHA1-Digest: xsbZrDwvySKEi/T+Z/lieqXZeow=
+
+Name: modules/lib/inherit.jsm
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: +ogCTEJunSKJ+hybMmPZzQ==
+SHA1-Digest: Hv/NQoEmskkBC0NN4c1DzOU7ibY=
+
+Name: modules/lib/namespace.jsm
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: mkAS2xBrt57mK5w9IuAxdg==
+SHA1-Digest: fr/zTLjmtBm4oo58uVCZUBv+PPs=
+
+Name: modules/lib/prefs.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: kPuMGdq2ki9wgzsdDkHyQw==
+SHA1-Digest: j4nk7SjmRPBtfA9anGuvpEhf4eo=
+
+Name: modules/lib/stringBundle.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: hLRUNAIgENilF2Gnw7P7WQ==
+SHA1-Digest: ajJwI8sQcc4YyKl9ih/Fqzfr0+Q=
+
+Name: modules/lib/UninstallationListener.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: s1g6OQHIh9BfOF3oMa9IXQ==
+SHA1-Digest: hClSyDJ2d9GMHdEuxFZjDybYBG4=
+
+Name: modules/lib/visuallyselectedTabs.jsm
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: iwd/kfZCQaJsjIkO/emj/A==
+SHA1-Digest: 8xOI2kAUhlzs7UzFQRh5ibWEhDQ=
+
+Name: skin/classic/treestyletab/base-colors.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: SjrszT+A7vBprStrxmTJ8Q==
+SHA1-Digest: R3y7LGy9olYjQJ53N4N492LTNog=
+
+Name: skin/classic/treestyletab/base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YF6jM3bh3GR+7rG6GBo6vA==
+SHA1-Digest: 7R1p1kLWqw5m/I8JCZuYZIikVro=
+
+Name: skin/classic/treestyletab/config.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MJsnRbLtW/eVUj6buXhyhA==
+SHA1-Digest: MvIZySBEb3xdpWl/74euLiN49ck=
+
+Name: skin/classic/treestyletab/Darwin-base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5CgXLAOGtw6IqY0tQH4FFA==
+SHA1-Digest: /IPmBc5AJPyaoOrhreWArekX2N8=
+
+Name: skin/classic/treestyletab/Darwin-styled.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: hao95egtOAfEnBBZbhKIrg==
+SHA1-Digest: cWHEYEPCm9gaVVwa/EgpfOm09N8=
+
+Name: skin/classic/treestyletab/dummy.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: gQUbzCzxvt83giSwqT4odw==
+SHA1-Digest: uoq1oCgLlTqpdDX/iUbLy7J1Wic=
+
+Name: skin/classic/treestyletab-group-aero/group.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WAaFV+uAyxEllkfp3nUzOg==
+SHA1-Digest: SfUa64w243Tsw5GuN3o8JahyFjI=
+
+Name: skin/classic/treestyletab-group-basic/group.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fVTjGUTsV86sIh2ideYUNQ==
+SHA1-Digest: DvaxcjAmPsnt7a1LFCcI+kZ8O4U=
+
+Name: skin/classic/treestyletab/group.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: pU8uenj+36hyeIhrNwTDvw==
+SHA1-Digest: PSBTYQzFMTkunW+ORGpKAXaena8=
+
+Name: skin/classic/treestyletab/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Tc+NDhBc7EP4cr5OqQGQyQ==
+SHA1-Digest: TLhlpxf44EXADPU56xRsRroxdo4=
+
+Name: skin/classic/treestyletab/Linux-base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5VPuRh+EyJ0J13K5fmuRUA==
+SHA1-Digest: jkJZdI44PkcueQTPVoilOnVG7iU=
+
+Name: skin/classic/treestyletab/Linux-config.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 4GgEa2Q4LfzLmtkB8N4mGA==
+SHA1-Digest: wpeaGpY/43D1mlvqaTnaC6LQOxk=
+
+Name: skin/classic/treestyletab/Linux-styled.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: DMoMZ27IfsX2HIT+djP0QQ==
+SHA1-Digest: /PutdezehubWwTE5IUOBPxSl26I=
+
+Name: skin/classic/treestyletab/pseudo-tree.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YpzbGadA5uvjsoP1UfTk1g==
+SHA1-Digest: lRJLbWJTt07wa9FVOvoH+717+po=
+
+Name: skin/classic/treestyletab/tmp.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: +j0z5bmmvDoh/A2DHaqYfA==
+SHA1-Digest: /9UY0Y5sknM9O+tG6FBdX0zoQOU=
+
+Name: skin/classic/treestyletab/ui-australis.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: oGWteOCIdGeJh4s1CrodBQ==
+SHA1-Digest: /CcGFdIzQT8ebf8twW9s6P1rRRI=
+
+Name: skin/classic/treestyletab/ui-base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 9e8b6KVQnx6D8wMVqWavMQ==
+SHA1-Digest: RuNYcY4BL6nR5sbq/2JVFYvJU3o=
+
+Name: skin/classic/treestyletab/WINNT-base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fGHJbWeArBzHuxSsxMgFrA==
+SHA1-Digest: C3bc9mMl9hHyEMFT613jBKtvOqY=
+
+Name: skin/classic/treestyletab/WINNT-styled.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 6lYKz7TWSDA9xtkl48kHZg==
+SHA1-Digest: cpaQJNB+NOC0T7IwGWamv0loQOw=
+
+Name: skin/classic/treestyletab/metal/aero.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: yR+6SpHx6lzdaxV6bwNv4w==
+SHA1-Digest: V/bHzXC5rqlG5ibTq+FRKJ42G8Q=
+
+Name: skin/classic/treestyletab/metal/base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: VSkSLXcxYmzkFqHNeXvlBA==
+SHA1-Digest: zlNvl7EAnEaBsDgcPEp55c0QoZI=
+
+Name: skin/classic/treestyletab/metal/Darwin.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: TZb3EA3nszWCtkHD9aWR5g==
+SHA1-Digest: YQCNXwVHDahH9S9SCdLFvm2afGs=
+
+Name: skin/classic/treestyletab/metal/icon-bg.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: dPlzlNuH44lFR2S41hhIXA==
+SHA1-Digest: RVQ5erPZ39JFpyMJy+JVEPHIHiI=
+
+Name: skin/classic/treestyletab/metal/shadow-active-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: mmzCLfQAQMHghi7NL51Slw==
+SHA1-Digest: M7TqKBGWXT9bW34NN+bwM898UJE=
+
+Name: skin/classic/treestyletab/metal/shadow-active-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: mB5tgnES7Pkp/lmdd8zwWg==
+SHA1-Digest: b0DAUbFO0NmlfY25pXRZVWFashs=
+
+Name: skin/classic/treestyletab/metal/shadow-inactive-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: y9CW0XGWsvn9WejkzjMB7g==
+SHA1-Digest: FsXsOA/7DGUor3REbDYVXknJLn4=
+
+Name: skin/classic/treestyletab/metal/shadow-inactive-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 9yag/NWzVKsCaa6jAfraTA==
+SHA1-Digest: TdgxoicqWnwwbzLq+jyiuBGT94M=
+
+Name: skin/classic/treestyletab/metal/tab-active-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: B9BZFX0F6XgN1hNnDekmGA==
+SHA1-Digest: n2B+BGWTc7mPc45JyBlQ5HVhoJY=
+
+Name: skin/classic/treestyletab/metal/tab-active-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: xr50vqrLVqxSy6uXBjqtvw==
+SHA1-Digest: I18/nxs9m5/ctfU0e7Scn7T710s=
+
+Name: skin/classic/treestyletab/metal/tab-active-selected-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: aM+vjSb9B1Hc1dcHzXjPlQ==
+SHA1-Digest: H+w+lhUI3Zdsmuk9YnjkYKtyB6Y=
+
+Name: skin/classic/treestyletab/metal/tab-active-selected-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Pb5PisMUoHyG4c6h40AUrw==
+SHA1-Digest: NuatlkwTAYnuy3aXS0ZUgYXjyvI=
+
+Name: skin/classic/treestyletab/metal/tab-inactive-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 4SYlZnEf3p5i0nUnP/yQaA==
+SHA1-Digest: +JvVEjfOE9REL23ElSe+Pd6y3Sk=
+
+Name: skin/classic/treestyletab/metal/tab-inactive-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: HjcLuFl2y8cHmbVx6AxxEw==
+SHA1-Digest: VAXbrcfJdPh73hhh98Gqd8pZPHo=
+
+Name: skin/classic/treestyletab/metal/tab-inactive-selected-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: hlC7QI1Jppv27pbGUB9h1A==
+SHA1-Digest: QqBxmezksTxjCpQ4U4MJAIGUtlU=
+
+Name: skin/classic/treestyletab/metal/tab-inactive-selected-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: C/y9xKa3tfUwPLvpR8fUng==
+SHA1-Digest: u2GHUKdU+s+jbRmxFO5motzr4+0=
+
+Name: skin/classic/treestyletab/metal/tab.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 8VAVFHmNFr8nICwoOQZ1Tg==
+SHA1-Digest: r4okMH4SmqAzJ8dqrEIU8XBrYqY=
+
+Name: skin/classic/treestyletab/sidebar/aero.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: CA+5tlZs253P4ipgMkrVMg==
+SHA1-Digest: ba4u3UM8rNt5BxWi//oXSog6KYg=
+
+Name: skin/classic/treestyletab/sidebar/closetab-white.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ciO9HszpuusTRyytCi0h7w==
+SHA1-Digest: zIIsZqEoP7r2dFivr6FdPbOpx+g=
+
+Name: skin/classic/treestyletab/sidebar/closetab.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: SkYytZq4wqVcKz9SKHSLJA==
+SHA1-Digest: hYhVFQRyWevCLcBSTW1t8dg3cP4=
+
+Name: skin/classic/treestyletab/sidebar/dropmarker.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: G7uqA6OvOUP5hQWk1Dd2Ow==
+SHA1-Digest: 3ySucjnqrJTu7fWRs6EehENF6mk=
+
+Name: skin/classic/treestyletab/sidebar/license.txt
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: v9Eq0lPqaRSdBuATG2+oxg==
+SHA1-Digest: VNJPj9nckqPyRb2Ff3HWiGPQE58=
+
+Name: skin/classic/treestyletab/sidebar/sidebar.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: g+EE5ZihUvm1aCVLFb9fng==
+SHA1-Digest: LbEU6Zc8S7yiMgwIQhFCEEb/3oo=
+
+Name: skin/classic/treestyletab/square/base.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ppeu5ZCdvWUDuUWajaN1Ig==
+SHA1-Digest: 0oiB6fmuq/ZPS+r37TpxPnXdcRI=
+
+Name: skin/classic/treestyletab/square/Darwin.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: B5wetbs3xlF/LDlMoFv7Bg==
+SHA1-Digest: ZgInOGf82G8PrDTmLOA3ToEuLHk=
+
+Name: skin/classic/treestyletab/square/disable-closebox-bg.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 8LDHw5xvv9yXYLDJCd3SnQ==
+SHA1-Digest: Sw5lpRR7NRMFYCOrR5ghaVmIqNU=
+
+Name: skin/classic/treestyletab/square/dropshadow.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: kUUKtKKDOV+CtYFFlZSunw==
+SHA1-Digest: qpc3P+QIL7lY1PlC4oHy6wBYcsQ=
+
+Name: skin/classic/treestyletab/square/Linux.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: uccqeOk7X7mI4WQ12y4/zg==
+SHA1-Digest: WX5BK6jKTVYPn+PjA2N/8qVNLUw=
+
+Name: skin/classic/treestyletab/square/mixed.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: G0k8pMyNcsqVfztv55X5mg==
+SHA1-Digest: B5q0FY1lXLUcxdKymyfAuhv0OgQ=
+
+Name: skin/classic/treestyletab/square/newtab-shadow.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: /0+n+HVPH0by9VBCgNuHfA==
+SHA1-Digest: n/wGfo7dGvxTCtwJY8PhOE3bng8=
+
+Name: skin/classic/treestyletab/square/tab-bg-highlighted.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: T6mzHM9ZoEIITc8gz6ZQzA==
+SHA1-Digest: GZWz47jaTHZqDeuxhEev+hIa9/s=
+
+Name: skin/classic/treestyletab/square/tab-bg-hover.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 7adFA8ElKdBMgDrKt8kJMQ==
+SHA1-Digest: s/iupPpsNzXxzBpfnp46eIHe6lI=
+
+Name: skin/classic/treestyletab/square/tab-bg-selected-hover.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MKuAAKJcABsHs40VUjTYIA==
+SHA1-Digest: Nm/r/tn7kT3Djy8JXfcXpVuBUHY=
+
+Name: skin/classic/treestyletab/square/tab-bg.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 4J6xqMjhCK3wSS7F3A9y0w==
+SHA1-Digest: CTg4j0P/755VUethbwqkLbDrXcI=
+
+Name: skin/classic/treestyletab/square/tab-surface.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Z45sYxcnpMfZ0LsF3MP5Aw==
+SHA1-Digest: f0O5oT3oEzWSTr2hkBtuW5olTMY=
+
+Name: skin/classic/treestyletab/square/vertigo.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: XXtYL5KtwYwKuL4riv6igg==
+SHA1-Digest: qOjnelw/TnW3ZojwdfLX16eRpAU=
+
+Name: skin/classic/treestyletab/twisty/twisty-modern-b-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Ye0CPTVUEFYWL+QuYWAxig==
+SHA1-Digest: RdJUOwLPIMtDepUSe2V2rdy8aio=
+
+Name: skin/classic/treestyletab/twisty/twisty-modern-b-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: SwrqMx9DnoCHhCBNRLcW6A==
+SHA1-Digest: rVi62rNVpdlxrMcSNDP7DT2xJEs=
+
+Name: skin/classic/treestyletab/twisty/twisty-modern-w-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: xBvmfLgkFKRbEi213k5OPA==
+SHA1-Digest: aTZeSy4hEWKS0oG3t6MFl6zhzso=
+
+Name: skin/classic/treestyletab/twisty/twisty-modern-w-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: h9jqwqr8/ru4ggQHfesoyQ==
+SHA1-Digest: VaiUeO2f5HpJ8gRSkEBXvoNQL14=
+
+Name: skin/classic/treestyletab/twisty/twisty-osx-l.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: PVWQVxSX840AHjIw1vJIrQ==
+SHA1-Digest: x6xlwSveib8J18nwDFCikmE4zGA=
+
+Name: skin/classic/treestyletab/twisty/twisty-osx-r.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WtoZwIp1hXyoGoMw7aCd/Q==
+SHA1-Digest: 8pXvMI1cCh1ON69K20rdHOfesMo=
+
+Name: skin/classic/treestyletab/twisty/twisty-retro.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5jRhJ+QQ0POMUddYnVCTOw==
+SHA1-Digest: eNNNko96Xro/9rJtX8odGQznSq0=
+
+Name: skin/classic/treestyletab/twisty/twisty.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: krzuqpSqTeAGSeMysT6zqA==
+SHA1-Digest: yHSf+4Iit6VToLqWngmJvGl1LmI=
+
diff --git a/META-INF/mozilla.rsa b/META-INF/mozilla.rsa
new file mode 100644
index 0000000..8cb47f1
Binary files /dev/null and b/META-INF/mozilla.rsa differ
diff --git a/META-INF/mozilla.sf b/META-INF/mozilla.sf
new file mode 100644
index 0000000..0f254fb
--- /dev/null
+++ b/META-INF/mozilla.sf
@@ -0,0 +1,4 @@
+Signature-Version: 1.0
+MD5-Digest-Manifest: M26H3NilpbG4EJLWCNmK1g==
+SHA1-Digest-Manifest: Oic0vCG4Nhw8EKvyBfpR0BUpxxU=
+
diff --git a/chrome.manifest b/chrome.manifest
index 3d763b1..0aa0f6c 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -8,13 +8,11 @@ overlay chrome://browser/content/places/places.xul chrome://treestyletab/content
overlay chrome://browser/content/places/places.xul chrome://treestyletab/content/bookmarksOverlayEditable.xul
overlay chrome://browser/content/places/bookmarkProperties.xul chrome://treestyletab/content/bookmarksOverlay.xul
overlay chrome://browser/content/places/bookmarkProperties.xul chrome://treestyletab/content/bookmarksOverlayEditable.xul
+overlay chrome://browser/content/places/bookmarkProperties.xul chrome://treestyletab/content/bookmarkPropertiesOverlay.xul
+overlay chrome://browser/content/places/bookmarkProperties2.xul chrome://treestyletab/content/bookmarkPropertiesOverlay.xul
overlay chrome://multipletab/content/config.xul chrome://treestyletab/content/multipletabConfigOverlay.xul
-overlay chrome://browser/content/browser.xul chrome://treestyletab/content/res/bookmarkMultipleTabs.xul
-overlay chrome://browser/content/places/bookmarkProperties.xul chrome://treestyletab/content/res/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
-overlay chrome://browser/content/places/bookmarkProperties2.xul chrome://treestyletab/content/res/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
-
locale treestyletab en-US locale/en-US/treestyletab/
locale treestyletab ja locale/ja/treestyletab/
locale treestyletab it-IT locale/it-IT/treestyletab/
diff --git a/content/treestyletab/bookmarkPropertiesOverlay.xul b/content/treestyletab/bookmarkPropertiesOverlay.xul
new file mode 100644
index 0000000..2d21b0b
--- /dev/null
+++ b/content/treestyletab/bookmarkPropertiesOverlay.xul
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+<script src="res/bookmarkMultipleTabs.js" type="application/javascript"/>
+</overlay>
diff --git a/content/treestyletab/bookmarksOverlay.js b/content/treestyletab/bookmarksOverlay.js
index bedc225..c110075 100644
--- a/content/treestyletab/bookmarksOverlay.js
+++ b/content/treestyletab/bookmarksOverlay.js
@@ -93,7 +93,7 @@ var TreeStyleTabBookmarksUIService = inherit(TreeStyleTabService, {
}
}
-});
+}, Object);
TreeStyleTabBookmarksUIService.preInit();
diff --git a/content/treestyletab/bookmarksOverlayEditable.js b/content/treestyletab/bookmarksOverlayEditable.js
index 38f89f0..766d51f 100644
--- a/content/treestyletab/bookmarksOverlayEditable.js
+++ b/content/treestyletab/bookmarksOverlayEditable.js
@@ -420,7 +420,7 @@ var TreeStyleTabBookmarksServiceEditable = inherit(TreeStyleTabBookmarksUIServic
}
}
-});
+}, Object);
window.addEventListener('DOMContentLoaded', TreeStyleTabBookmarksServiceEditable, false);
ReferenceCounter.add('window,DOMContentLoaded,TreeStyleTabBookmarksServiceEditable,false');
diff --git a/content/treestyletab/config.js b/content/treestyletab/config.js
index 349bfb5..7fbbefe 100644
--- a/content/treestyletab/config.js
+++ b/content/treestyletab/config.js
@@ -15,8 +15,8 @@ function syncEnabledState(aElement, aEnabled)
{
if (typeof aElement == 'string')
aElement = document.getElementById(aElement);
- if (typeof aEnabled == 'string')
- aEnabled = (new Function('return '+aEnabled)).call(aElement);
+ if (typeof aEnabled == 'function')
+ aEnabled = aEnabled.call(aElement);
aElement.getAttribute('sync-enabled-state-targets')
.replace(/$\s+|\s+$/g, '')
@@ -291,9 +291,9 @@ function onSyncMaxTreeLevelPrefToUI(aTarget)
function initAutoHidePane()
{
- syncEnabledState('extensions.treestyletab.tabbar.autoShow.mousemove-check', 'this.checked');
- syncEnabledState('extensions.treestyletab.tabbar.autoShow.accelKeyDown-check', 'this.checked');
- syncEnabledState('extensions.treestyletab.tabbar.autoShow.feedback-check', 'this.checked');
+ syncEnabledState('extensions.treestyletab.tabbar.autoShow.mousemove-check', function() { return this.checked; });
+ syncEnabledState('extensions.treestyletab.tabbar.autoShow.accelKeyDown-check', function() { return this.checked; });
+ syncEnabledState('extensions.treestyletab.tabbar.autoShow.feedback-check', function() { return this.checked; });
}
function onChangeAutoHideMode(aRadioGroup, aTogglePref)
@@ -305,7 +305,7 @@ function onChangeAutoHideMode(aRadioGroup, aTogglePref)
function initTreePane()
{
- syncEnabledState('extensions.treestyletab.closeParentBehavior-radiogroup', 'this.value == 0');
+ syncEnabledState('extensions.treestyletab.closeParentBehavior-radiogroup', function() { return this.value == 0; });
var focusMode = document.getElementById('extensions.treestyletab.focusMode-check');
var focusModePref = document.getElementById('extensions.treestyletab.focusMode');
diff --git a/content/treestyletab/res/bookmarkMultipleTabs.js b/content/treestyletab/res/bookmarkMultipleTabs.js
new file mode 100644
index 0000000..b9cd288
--- /dev/null
+++ b/content/treestyletab/res/bookmarkMultipleTabs.js
@@ -0,0 +1,173 @@
+/**
+ * Bookmark Multiple Tabs library for Firefox 2 or later
+ *
+ * Usage:
+ * First, load this file into three Chrome documents:
+ * * chrome://browser/content/browser.xul
+ * * chrome://browser/content/places/bookmarkProperties.xul
+ * * chrome://browser/content/places/bookmarkProperties2.xul
+ *
+ * Then, run this line in your JS files:
+ * window['piro.sakura.ne.jp'].bookmarkMultipleTabs.addBookmarkFor(tabsArray, folderName);
+ *
+ * license: The MIT License, Copyright (c) 2009-2016 YUKI "Piro" Hiroshi
+ * http://github.com/piroor/fxaddonlib-bookmark-multiple-tabs/blob/master/license.txt
+ * original:
+ * http://github.com/piroor/fxaddonlib-bookmark-multiple-tabs
+ */
+(function() {
+ const currentRevision = 8;
+
+ if (!('BookmarkPropertiesPanel' in window)) {
+ window.addEventListener('DOMContentLoaded', function() {
+ window.removeEventListener('DOMContentLoaded', arguments.callee, true);
+
+ if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
+
+ var loadedRevision = 'bookmarkMultipleTabs' in window['piro.sakura.ne.jp'] ?
+ window['piro.sakura.ne.jp'].bookmarkMultipleTabs.revision :
+ 0 ;
+ if (loadedRevision && loadedRevision > currentRevision) {
+ return;
+ }
+
+ var addBookmarkTabsFilter = function(aTab) { return aTab.linkedBrowser.currentURI; };
+ // Tab Mix Plus modifies the API.
+ if ('TMP_Places' in window && 'getTabFixedTitle' in TMP_Places) {
+ addBookmarkTabsFilter = function(aTab) {
+ var b = aTab.linkedBrowser;
+ var uri = b.currentURI;
+ return {
+ uri : uri,
+ title : TMP_Places.getTabFixedTitle(b, uri)
+ };
+ };
+ }
+
+ window['piro.sakura.ne.jp'].bookmarkMultipleTabs = {
+ revision : currentRevision,
+
+ addBookmarkFor : function(aTabs, aFolderName)
+ {
+ if (!aTabs) return;
+
+ var b = this.getTabBrowserFromChild(aTabs[0]);
+
+ if ('PlacesUIUtils' in window || 'PlacesUtils' in window) { // Firefox 3 or later
+ try {
+ var utils = 'PlacesUIUtils' in window ? PlacesUIUtils : PlacesUtils ;
+ var tabs = Array.slice(aTabs).map(this.addBookmarkTabsFilter);
+ if (aFolderName)
+ this.Prefs.setCharPref('temp.showMinimalAddMultiBookmarkUI.folderName', unescape(encodeURIComponent(aFolderName)));
+ if ('showBookmarkDialog' in utils) { // Firefox 9 or later
+ utils.showBookmarkDialog({
+ action : 'add',
+ type : 'folder',
+ // title : aFolderName, // don't specify it, because Firefox doesn't create bookmarks if the title is given!
+ URIList : tabs,
+ hiddenRows : ['description', 'location', 'loadInSidebar', 'keyword']
+ }, window);
+ }
+ else {
+ throw new Error('there is no method to create bookmarks from tabs!');
+ }
+ }
+ catch(e) {
+ alert(e.message+'\n'+e.stack);
+ }
+ finally {
+ this.Prefs.clearUserPref('temp.showMinimalAddMultiBookmarkUI.folderName');
+ }
+ return;
+ }
+
+ var currentTabInfo;
+ var tabsInfo = Array.slice(aTabs).map(function(aTab) {
+ var webNav = aTab.linkedBrowser.webNavigation;
+ var url = webNav.currentURI.spec;
+ var name = '';
+ var charSet, description;
+ try {
+ var doc = webNav.document;
+ name = doc.title || url;
+ charSet = doc.characterSet;
+ description = BookmarksUtils.getDescriptionFromDocument(doc);
+ }
+ catch (e) {
+ name = url;
+ }
+ return {
+ name : name,
+ url : url,
+ charset : charSet,
+ description : description
+ };
+ });
+
+ window.openDialog(
+ 'chrome://browser/content/bookmarks/addBookmark2.xul',
+ '',
+ BROWSER_ADD_BM_FEATURES,
+ (aTabs.length == 1 ?
+ tabsInfo[0] :
+ {
+ name : (aFolderName || gNavigatorBundle.getString('bookmarkAllTabsDefault')),
+ bBookmarkAllTabs : true,
+ objGroup : tabsInfo
+ }
+ )
+ );
+ },
+ addBookmarkTabsFilter : addBookmarkTabsFilter,
+
+ Prefs : Components.classes['@mozilla.org/preferences-service;1']
+ .getService(Components.interfaces.nsIPrefBranch),
+
+ getTabBrowserFromChild : function(aTab)
+ {
+ var b = aTab.ownerDocument.evaluate(
+ 'ancestor-or-self::*[local-name()="tabbrowser"] | '+
+ 'ancestor-or-self::*[local-name()="tabs" and @tabbrowser]',
+ aTab,
+ null,
+ XPathResult.FIRST_ORDERED_NODE_TYPE,
+ null
+ ).singleNodeValue;
+ return (b && b.tabbrowser) || b;
+ }
+ };
+ }, true);
+ }
+ else {
+ if (!BookmarkPropertiesPanel._determineItemInfo ||
+ BookmarkPropertiesPanel.__bookmarkMultipleTabs__determineItemInfo)
+ return;
+
+ // Defined at http://mxr.mozilla.org/mozilla-central/source/browser/components/places/content/bookmarkProperties.js#73
+ const ACTION_ADD = 1;
+
+ BookmarkPropertiesPanel.__bookmarkMultipleTabs__determineItemInfo = BookmarkPropertiesPanel._determineItemInfo;
+ BookmarkPropertiesPanel._determineItemInfo = function(...aArgs) {
+ var folderNameOverride = null;
+ try {
+ folderNameOverride = Components.classes['@mozilla.org/preferences;1']
+ .getService(Components.interfaces.nsIPrefBranch)
+ .getCharPref('temp.showMinimalAddMultiBookmarkUI.folderName');
+ folderNameOverride = decodeURIComponent(escape(folderNameOverride));
+ }
+ catch(e) {
+ }
+ var retVal = this.__bookmarkMultipleTabs__determineItemInfo.apply(this, aArgs);
+ if (folderNameOverride &&
+ this._action == ACTION_ADD) {
+ let dialogInfo = window.arguments[0];
+ if (dialogInfo.type === 'folder' &&
+ !('title' in dialogInfo) &&
+ 'URIList' in dialogInfo) {
+ this._title = folderNameOverride;
+ }
+ }
+ return retVal;
+ };
+ }
+})();
diff --git a/content/treestyletab/res/bookmarkMultipleTabs.xul b/content/treestyletab/res/bookmarkMultipleTabs.xul
deleted file mode 100644
index 775791a..0000000
--- a/content/treestyletab/res/bookmarkMultipleTabs.xul
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Bookmark Multiple Tabs library for Firefox 2 or later
-
- Usage:
- in chrome.manifest:
- overlay chrome://browser/content/browser.xul
- chrome://***/content/bookmarkMultipleTabs.xul
- overlay chrome://browser/content/places/bookmarkProperties.xul
- chrome://***/content/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
- overlay chrome://browser/content/places/bookmarkProperties2.xul
- chrome://***/content/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
-
- in JS files:
- window['piro.sakura.ne.jp'].bookmarkMultipleTabs.addBookmarkFor(tabsArray, folderName);
-
- license: The MIT License, Copyright (c) 2009-2015 YUKI "Piro" Hiroshi
- original:
- http://github.com/piroor/fxaddonlib-bookmark-multiple-tabs
--->
-<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-<script type="application/javascript"><![CDATA[
-
-window.addEventListener('DOMContentLoaded', function() {
- window.removeEventListener('DOMContentLoaded', arguments.callee, true);
-
- const currentRevision = 8;
-
- if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
-
- var loadedRevision = 'bookmarkMultipleTabs' in window['piro.sakura.ne.jp'] ?
- window['piro.sakura.ne.jp'].bookmarkMultipleTabs.revision :
- 0 ;
- if (loadedRevision && loadedRevision > currentRevision) {
- return;
- }
-
- var addBookmarkTabsFilter = function(aTab) { return aTab.linkedBrowser.currentURI; };
- // Tab Mix Plus modifies the API.
- if ('TMP_Places' in window && 'getTabFixedTitle' in TMP_Places) {
- addBookmarkTabsFilter = function(aTab) {
- var b = aTab.linkedBrowser;
- var uri = b.currentURI;
- return {
- uri : uri,
- title : TMP_Places.getTabFixedTitle(b, uri)
- };
- };
- }
-
- window['piro.sakura.ne.jp'].bookmarkMultipleTabs = {
- revision : currentRevision,
-
- addBookmarkFor : function(aTabs, aFolderName)
- {
- if (!aTabs) return;
-
- var b = this.getTabBrowserFromChild(aTabs[0]);
-
- if ('PlacesUIUtils' in window || 'PlacesUtils' in window) { // Firefox 3 or later
- try {
- var utils = 'PlacesUIUtils' in window ? PlacesUIUtils : PlacesUtils ;
- var tabs = Array.slice(aTabs).map(this.addBookmarkTabsFilter);
- if (aFolderName)
- this.Prefs.setCharPref('temp.showMinimalAddMultiBookmarkUI.folderName', unescape(encodeURIComponent(aFolderName)));
- if ('showBookmarkDialog' in utils) { // Firefox 9 or later
- utils.showBookmarkDialog({
- action : 'add',
- type : 'folder',
- // title : aFolderName, // don't specify it, because Firefox doesn't create bookmarks if the title is given!
- URIList : tabs,
- hiddenRows : ['description', 'location', 'loadInSidebar', 'keyword']
- }, window);
- }
- else {
- throw new Error('there is no method to create bookmarks from tabs!');
- }
- }
- catch(e) {
- alert(e.message+'\n'+e.stack);
- }
- finally {
- this.Prefs.clearUserPref('temp.showMinimalAddMultiBookmarkUI.folderName');
- }
- return;
- }
-
- var currentTabInfo;
- var tabsInfo = Array.slice(aTabs).map(function(aTab) {
- var webNav = aTab.linkedBrowser.webNavigation;
- var url = webNav.currentURI.spec;
- var name = '';
- var charSet, description;
- try {
- var doc = webNav.document;
- name = doc.title || url;
- charSet = doc.characterSet;
- description = BookmarksUtils.getDescriptionFromDocument(doc);
- }
- catch (e) {
- name = url;
- }
- return {
- name : name,
- url : url,
- charset : charSet,
- description : description
- };
- });
-
- window.openDialog(
- 'chrome://browser/content/bookmarks/addBookmark2.xul',
- '',
- BROWSER_ADD_BM_FEATURES,
- (aTabs.length == 1 ?
- tabsInfo[0] :
- {
- name : (aFolderName || gNavigatorBundle.getString('bookmarkAllTabsDefault')),
- bBookmarkAllTabs : true,
- objGroup : tabsInfo
- }
- )
- );
- },
- addBookmarkTabsFilter : addBookmarkTabsFilter,
-
- Prefs : Components.classes['@mozilla.org/preferences-service;1']
- .getService(Components.interfaces.nsIPrefBranch),
-
- getTabBrowserFromChild : function(aTab)
- {
- var b = aTab.ownerDocument.evaluate(
- 'ancestor-or-self::*[local-name()="tabbrowser"] | '+
- 'ancestor-or-self::*[local-name()="tabs" and @tabbrowser]',
- aTab,
- null,
- XPathResult.FIRST_ORDERED_NODE_TYPE,
- null
- ).singleNodeValue;
- return (b && b.tabbrowser) || b;
- }
- };
-}, true);
-
-]]></script>
-</overlay>
diff --git a/content/treestyletab/res/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul b/content/treestyletab/res/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
deleted file mode 100644
index 2ecb846..0000000
--- a/content/treestyletab/res/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Bookmark Multiple Tabs library for Firefox 2 or later
-
- Usage:
- in chrome.manifest:
- overlay chrome://browser/content/browser.xul
- chrome://***/content/bookmarkMultipleTabs.xul
- overlay chrome://browser/content/places/bookmarkProperties.xul
- chrome://***/content/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
- overlay chrome://browser/content/places/bookmarkProperties2.xul
- chrome://***/content/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
-
- in JS files:
- window['piro.sakura.ne.jp'].bookmarkMultipleTabs.addBookmarkFor(tabsArray, folderName);
-
- license: The MIT License, Copyright (c) 2009-2015 YUKI "Piro" Hiroshi
- http://github.com/piroor/fxaddonlibs/blob/master/license.txt
- original:
- http://github.com/piroor/fxaddonlibs/blob/master/bookmarkMultipleTabs.xul
- http://github.com/piroor/fxaddonlibs/blob/master/bookmarkMultipleTabs_bookmarkPropertiesOverlay.xul
--->
-<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-<script type="application/javascript"><![CDATA[
-(function() {
- if (!('BookmarkPropertiesPanel' in window) ||
- !BookmarkPropertiesPanel._determineItemInfo ||
- BookmarkPropertiesPanel.__bookmarkMultipleTabs__determineItemInfo)
- return;
-
- // Defined at http://mxr.mozilla.org/mozilla-central/source/browser/components/places/content/bookmarkProperties.js#73
- const ACTION_ADD = 1;
-
- BookmarkPropertiesPanel.__bookmarkMultipleTabs__determineItemInfo = BookmarkPropertiesPanel._determineItemInfo;
- BookmarkPropertiesPanel._determineItemInfo = function(...aArgs) {
- var folderNameOverride = null;
- try {
- folderNameOverride = Components.classes['@mozilla.org/preferences;1']
- .getService(Components.interfaces.nsIPrefBranch)
- .getCharPref('temp.showMinimalAddMultiBookmarkUI.folderName');
- folderNameOverride = decodeURIComponent(escape(folderNameOverride));
- }
- catch(e) {
- }
- var retVal = this.__bookmarkMultipleTabs__determineItemInfo.apply(this, aArgs);
- if (folderNameOverride &&
- this._action == ACTION_ADD) {
- let dialogInfo = window.arguments[0];
- if (dialogInfo.type === 'folder' &&
- !('title' in dialogInfo) &&
- 'URIList' in dialogInfo) {
- this._title = folderNameOverride;
- }
- }
- return retVal;
- };
-})();
-]]></script>
-</overlay>
diff --git a/content/treestyletab/treestyletab.xul b/content/treestyletab/treestyletab.xul
index 26be71a..ff22860 100644
--- a/content/treestyletab/treestyletab.xul
+++ b/content/treestyletab/treestyletab.xul
@@ -40,6 +40,7 @@
xmlns:svg="http://www.w3.org/2000/svg">
<script src="res/tabsDragUtils.js" type="application/javascript"/>
+<script src="res/bookmarkMultipleTabs.js" type="application/javascript"/>
<script src="treestyletab.js" type="application/javascript"/>
<script src="windowHelper.js" type="application/javascript"/>
<script src="windowHelperHacks.js" type="application/javascript"/>
diff --git a/content/treestyletab/windowHelper.js b/content/treestyletab/windowHelper.js
index 7b4a943..d99a25b 100644
--- a/content/treestyletab/windowHelper.js
+++ b/content/treestyletab/windowHelper.js
@@ -47,7 +47,8 @@ var TreeStyleTabWindowHelper = {
TabsInTitlebar._update = function(...aArgs) {
// See: https://dxr.mozilla.org/mozilla-central/rev/dbe4b47941c7b3d6298a0ead5e40dd828096c808/browser/base/content/browser-tabsintitlebar.js#104
let result = this.__treestyletab__update(...aArgs);
- if (gBrowser.treeStyleTab.position != 'top')
+ if (gBrowser.treeStyleTab && // possibly not available while the startup process
+ gBrowser.treeStyleTab.position != 'top')
document.getElementById('titlebar').style.marginBottom =
document.getElementById('titlebar-content').style.marginBottom = '';
return result;
diff --git a/install.rdf b/install.rdf
index 8914cc1..00a8b2e 100644
--- a/install.rdf
+++ b/install.rdf
@@ -5,7 +5,7 @@
<RDF:Description RDF:about="urn:mozilla:install-manifest"
em:id="treestyletab at piro.sakura.ne.jp"
em:name="Tree Style Tab"
- em:version="0.18.2016090601"
+ em:version="0.18.2016090802"
em:creator="YUKI "Piro" Hiroshi"
em:description="Show tabs like a tree."
em:homepageURL="http://piro.sakura.ne.jp/xul/_treestyletab.html.en"
diff --git a/locale/da-DK/treestyletab/treestyletab.properties b/locale/da-DK/treestyletab/treestyletab.properties
index 9ec23f9..e13c786 100644
--- a/locale/da-DK/treestyletab/treestyletab.properties
+++ b/locale/da-DK/treestyletab/treestyletab.properties
@@ -1,4 +1,4 @@
-tooltip.collapseSubtree=Sammenfold træ
+tooltip.collapseSubtree=Sammenfold træ
tooltip.collapseSubtree.labeled=Sammenfold:\n%S
tooltip.expandSubtree=Udvid træ
tooltip.expandSubtree.labeled=Udvid:\n%S
diff --git a/modules/autoHide.js b/modules/autoHide.js
index 8d88e04..59709ee 100644
--- a/modules/autoHide.js
+++ b/modules/autoHide.js
@@ -102,7 +102,7 @@ var AutoHideConstants = Object.freeze(inherit(TreeStyleTabConstants, {
MOUSE_POSITION_INSIDE : (1 << 1),
MOUSE_POSITION_NEAR : (1 << 2),
MOUSE_POSITION_SENSITIVE : (1 << 1) | (1 << 2)
-}));
+}, Object));
function AutoHideBase(aTabBrowser)
@@ -175,7 +175,7 @@ AutoHideBase.prototype = inherit(AutoHideConstants, {
this.treeStyleTab.setWindowValue(this.kMODE + '-fullscreen', aValue);
return aValue;
}
-});
+}, Object);
function AutoHideBrowser(aTabBrowser)
@@ -1576,7 +1576,7 @@ AutoHideBrowser.prototype = inherit(AutoHideBase.prototype, {
delete this.window;
}
-});
+}, Object);
function AutoHideWindow(aWindow)
{
@@ -1766,5 +1766,5 @@ AutoHideWindow.prototype = inherit(AutoHideBase.prototype, {
}
}
-});
+}, Object);
diff --git a/modules/base.js b/modules/base.js
index 6fb48a7..71b2fae 100644
--- a/modules/base.js
+++ b/modules/base.js
@@ -325,24 +325,29 @@ var TreeStyleTabBase = inherit(TreeStyleTabConstants, {
var button = Services.prompt.confirmEx(this.browserWindow,
utils.treeBundle.getString('openGroupBookmarkBehavior.title'),
utils.treeBundle.getString('openGroupBookmarkBehavior.text'),
- (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0) +
- (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_1),
+ // The "cancel" button must pe placed as the second button
+ // due to the bug: https://bugzilla.mozilla.org/show_bug.cgi?id=345067
+ (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0) |
+ (Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1) |
+ (Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_2),
utils.treeBundle.getString('openGroupBookmarkBehavior.subTree'),
+ '',
utils.treeBundle.getString('openGroupBookmarkBehavior.separate'),
- null,
utils.treeBundle.getString('openGroupBookmarkBehavior.never'),
checked
);
if (button < 0)
- button = 1;
+ return this.kGROUP_BOOKMARK_CANCEL;
+
var behaviors = [
this.kGROUP_BOOKMARK_SUBTREE | dummyTabFlag,
+ this.kGROUP_BOOKMARK_CANCEL,
this.kGROUP_BOOKMARK_SEPARATE
];
behavior = behaviors[button];
- if (checked.value) {
+ if (checked.value && button != this.kGROUP_BOOKMARK_CANCEL) {
utils.setTreePref('openGroupBookmark.behavior', behavior);
}
return behavior;
@@ -2361,7 +2366,7 @@ var TreeStyleTabBase = inherit(TreeStyleTabConstants, {
);
}
-});
+}, Object);
TreeStyleTabBase.init();
diff --git a/modules/bookmark.js b/modules/bookmark.js
index 9861c62..9af3cc3 100644
--- a/modules/bookmark.js
+++ b/modules/bookmark.js
@@ -297,7 +297,8 @@ var TreeStyleTabBookmarksService = inherit(TreeStyleTabConstants, {
var TST = aBrowserWindow.TreeStyleTabService;
result.behavior = TST.openGroupBookmarkBehavior();
- if (result.behavior & this.kGROUP_BOOKMARK_SUBTREE) {
+ if (result.behavior != this.kGROUP_BOOKMARK_CANCEL &&
+ result.behavior & this.kGROUP_BOOKMARK_SUBTREE) {
log('handleTabsOpenProcess: open as a group');
let treeStructure = result.behavior & this.kGROUP_BOOKMARK_DONT_RESTORE_TREE_STRUCTURE ?
null :
@@ -388,7 +389,7 @@ var TreeStyleTabBookmarksService = inherit(TreeStyleTabConstants, {
onItemVisited : function TSTBMService_onItemVisited(aID, aHistoryID, aDate) {},
onBeginUpdateBatch : function TSTBMService_onBeginUpdateBatch() {},
onEndUpdateBatch : function TSTBMService_onEndUpdateBatch() {}
-});
+}, Object);
PlacesUIUtils.__treestyletab__openTabset = PlacesUIUtils._openTabset;
@@ -412,9 +413,8 @@ PlacesUIUtils._openTabset = function(aItemsToOpen, aEvent, aWindow, ...aArgs) {
});
log(' items => '+aItemsToOpen.length);
- var allArgs = [aItemsToOpen, aEvent, aWindow].concat(aArgs);
if (aItemsToOpen.length <= 0)
- return this.__treestyletab__openTabset.apply(this, allArgs);
+ return this.__treestyletab__openTabset(aItemsToOpen, aEvent, aWindow, ...aArgs);
var w = aWindow && aWindow.document.documentElement.getAttribute('windowtype') == 'navigator:browser' ?
aWindow :
@@ -425,13 +425,16 @@ PlacesUIUtils._openTabset = function(aItemsToOpen, aEvent, aWindow, ...aArgs) {
var where = w && w.whereToOpenLink(aEvent, false, true) || 'window';
log(' where: '+where);
if (where === 'window')
- return this.__treestyletab__openTabset.apply(this, allArgs);
+ return this.__treestyletab__openTabset(aItemsToOpen, aEvent, aWindow, ...aArgs);
var result = BS.handleTabsOpenProcess(where, aEvent, w, ids, uris, aItemsToOpen, this.__treestyletab__folderName);
log(' result: ', result);
+ if (result.behavior == TST.kGROUP_BOOKMARK_CANCEL)
+ return;
+
var tabs = TST.doAndGetNewTabs((function() {
- this.__treestyletab__openTabset.apply(this, allArgs);
+ this.__treestyletab__openTabset(aItemsToOpen, aEvent, aWindow, ...aArgs);
}).bind(this), w.gBrowser);
log(' tabs: '+tabs.length);
diff --git a/modules/browser.js b/modules/browser.js
index ba9a678..fe5f471 100644
--- a/modules/browser.js
+++ b/modules/browser.js
@@ -7602,5 +7602,5 @@ TreeStyleTabBrowser.prototype = inherit(TreeStyleTabWindow.prototype, {
return JSON.parse(json);
}
-});
+}, Object);
diff --git a/modules/constants.js b/modules/constants.js
index a5e565a..3b8945e 100644
--- a/modules/constants.js
+++ b/modules/constants.js
@@ -235,6 +235,7 @@ var TreeStyleTabConstants = Object.freeze({
kGROUP_BOOKMARK_USE_DUMMY_FORCE : 1024,
kGROUP_BOOKMARK_DONT_RESTORE_TREE_STRUCTURE : 512,
kGROUP_BOOKMARK_EXPAND_ALL_TREE : 2048,
+ kGROUP_BOOKMARK_CANCEL : -1,
CONTENT_SCRIPT : 'chrome://treestyletab/content/content-utils.js',
diff --git a/modules/contentBridge.js b/modules/contentBridge.js
index 8cf3985..1b63305 100644
--- a/modules/contentBridge.js
+++ b/modules/contentBridge.js
@@ -192,5 +192,5 @@ ContentBridge.prototype = inherit(TreeStyleTabConstants, {
}
return aCoordinates;
}
-});
+}, Object);
diff --git a/modules/fullTooltip.js b/modules/fullTooltip.js
index e894939..0fe7fe9 100644
--- a/modules/fullTooltip.js
+++ b/modules/fullTooltip.js
@@ -671,4 +671,4 @@ FullTooltipManager.prototype = inherit(TreeStyleTabBase, {
/width|height/.test(aEvent.propertyName))
this.changingPropertiesCount--;
}
-});
+}, Object);
diff --git a/modules/groupTab.js b/modules/groupTab.js
index 51d3892..6781440 100644
--- a/modules/groupTab.js
+++ b/modules/groupTab.js
@@ -447,4 +447,4 @@ GroupTab.prototype = inherit(TreeStyleTabBase, {
this.checkUpdateTreeNow();
}
-});
+}, Object);
diff --git a/modules/lib/UninstallationListener.js b/modules/lib/UninstallationListener.js
index c8fb795..4ef92d9 100644
--- a/modules/lib/UninstallationListener.js
+++ b/modules/lib/UninstallationListener.js
@@ -1,189 +1,112 @@
-/*
- Uninstallation Listener Library
-
- Usage:
- new window['piro.sakura.ne.jp'].UninstallationListener({
- id : 'test at exmaple.com',
- onuninstalled : function() { ... },
- ondisabled : function() { ... }
- });
-
- license: The MIT License, Copyright (c) 2009-2011 YUKI "Piro" Hiroshi
- http://github.com/piroor/fxaddonlibs/blob/master/license.txt
- original:
- http://github.com/piroor/fxaddonlibs/blob/master/UninstallationListener.js
-*/
-
-/* To work as a JS Code Module */
-if (typeof window == 'undefined' ||
- (window && typeof window.constructor == 'function')) {
- this.EXPORTED_SYMBOLS = ['UninstallationListener'];
-
- // If namespace.jsm is available, export symbols to the shared namespace.
- // See: http://github.com/piroor/fxaddonlibs/blob/master/namespace.jsm
- try {
- let ns = {};
- Components.utils.import('resource://my-modules/namespace.jsm', ns);
- /* var */ window = ns.getNamespaceFor('piro.sakura.ne.jp');
- }
- catch(e) {
- window = {};
- }
-}
-
-(function() {
- const currentRevision = 2;
-
- if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
-
- var loadedRevision = 'UninstallationListener' in window['piro.sakura.ne.jp'] ?
- window['piro.sakura.ne.jp'].UninstallationListener.prototype.revision :
- 0 ;
- if (loadedRevision && loadedRevision > currentRevision) {
- return;
- }
-
- const Cc = Components.classes;
- const Ci = Components.interfaces;
-
- const ObserverService = Cc['@mozilla.org/observer-service;1']
- .getService(Ci.nsIObserverService);
-
- var AddonManager;
- try {
- let ns = {};
- Components.utils.import('resource://gre/modules/AddonManager.jsm', ns);
- AddonManager = ns.AddonManager;
- }
- catch(e) {
- }
-
- window['piro.sakura.ne.jp'].UninstallationListener = function(aArguments) {
- this.init(aArguments);
- };
- window['piro.sakura.ne.jp'].UninstallationListener.prototype = {
- revision : currentRevision,
-
- // for Firefox 3.6 or older
- observe : function(aSubject, aTopic, aData)
- {
- switch (aTopic)
- {
- case 'em-action-requested':
- switch (aData)
- {
- case 'item-uninstalled':
- if (this.isTargetExtension(aSubject))
- this.toBeUninstalled = true;
- break;
- case 'item-cancel-action':
- if (this.isTargetExtension(aSubject)) {
- this.toBeUninstalled = false;
- this.toBeDisabled = false;
- }
- break;
- case 'item-disabled':
- if (this.isTargetExtension(aSubject))
- this.toBeDisabled = true;
- break;
- case 'item-enabled':
- if (this.isTargetExtension(aSubject))
- this.toBeDisabled = false;
- break;
- }
- return;
-
- case 'quit-application-granted':
- this.destroy();
- return;
- }
- },
- isTargetExtension : function(aSubject)
- {
- return (aSubject instanceof Ci.nsIUpdateItem) && (aSubject.id == this.id);
- },
-
- // for Firefox 4 or later
- onEnabling : function(aAddon, aRestartRequired) {},
- onEnabled : function(aAddon) {},
- onDisabling : function(aAddon, aRestartRequired) {
- if (aAddon.id == this.id) {
- this.toBeDisabled = true;
- }
- },
- onDisabled : function(aAddon)
- {
- if (aAddon.id == this.id) {
- if (this.ondisabled) this.ondisabled();
- delete this.ondisabled;
- }
- },
- onInstalling : function(aAddon, aRestartRequired) {},
- onInstalled : function(aAddon) {},
- onUninstalling : function(aAddon, aRestartRequired) {
- if (aAddon.id == this.id) {
- this.toBeUninstalled = true;
- }
- },
- onUninstalled : function(aAddon)
- {
- if (aAddon.id == this.id) {
- if (this.onuninstalled) this.onuninstalled();
- delete this.onuninstalled;
- }
- },
- onOperationCancelled : function(aAddon)
- {
- if (aAddon.id == this.id) {
- this.toBeDisabled = false;
- this.toBeUninstalled = false;
- }
- },
- onPropertyChanged : function(aAddon, aProperties) {},
-
- init : function(aArguments)
- {
- if (!aArguments) return;
-
- this.id = (typeof aArguments == 'string') ? aArguments : aArguments.id ;
-
- this.toBeUninstalled = false;
- this.toBeDisabled = false;
- if (typeof aArguments == 'object') {
- this.onuninstalled = aArguments.onuninstalled;
- this.ondisabled = aArguments.ondisabled;
- }
-
- if (AddonManager) { // Firefox 4 or later
- AddonManager.addAddonListener(this);
- }
- else {
- ObserverService.addObserver(this, 'em-action-requested', false);
- }
- ObserverService.addObserver(this, 'quit-application-granted', false);
- },
-
- destroy : function()
- {
- if (this.toBeUninstalled && this.onuninstalled)
- this.onuninstalled();
- delete this.onuninstalled;
-
- if (this.toBeDisabled && this.ondisabled)
- this.ondisabled();
- delete this.ondisabled;
-
- if (AddonManager) { // Firefox 4 or later
- AddonManager.removeAddonListener(this);
- }
- else {
- ObserverService.removeObserver(this, 'em-action-requested');
- }
- ObserverService.removeObserver(this, 'quit-application-granted');
- }
- };
-})();
-
-if (window != this) { // work as a JS Code Module
- this.UninstallationListener = window['piro.sakura.ne.jp'].UninstallationListener;
-}
+/**
+ * @fileOverview Uninstallation Listener Library
+ * @author YUKI "Piro" Hiroshi
+ * @version 3
+ *
+ * @license
+ * The MIT License, Copyright (c) 2009-2016 YUKI "Piro" Hiroshi.
+ * https://github.com/piroor/fxaddonlib-uninstallation-listener/blob/master/license.txt
+ * @url https://github.com/piroor/fxaddonlib-uninstallation-listener
+ *
+ * Usage:
+ * new UninstallationListener({
+ * id : 'test at exmaple.com',
+ * onuninstalled : function() { ... },
+ * ondisabled : function() { ... }
+ * });
+ */
+
+var EXPORTED_SYMBOLS = ['UninstallationListener'];
+
+
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+
+const ObserverService = Cc['@mozilla.org/observer-service;1']
+ .getService(Ci.nsIObserverService);
+
+var { AddonManager } = Components.utils.import('resource://gre/modules/AddonManager.jsm', {});
+
+var UninstallationListener = function(aArguments) {
+ this.init(aArguments);
+};
+UninstallationListener.prototype = {
+ onEnabling : function(aAddon, aRestartRequired) {},
+ onEnabled : function(aAddon) {},
+ onDisabling : function(aAddon, aRestartRequired) {
+ if (aAddon.id == this.id) {
+ this.toBeDisabled = true;
+ }
+ },
+ onDisabled : function(aAddon)
+ {
+ if (aAddon.id == this.id) {
+ if (this.ondisabled) this.ondisabled();
+ delete this.ondisabled;
+ }
+ },
+ onInstalling : function(aAddon, aRestartRequired) {},
+ onInstalled : function(aAddon) {},
+ onUninstalling : function(aAddon, aRestartRequired) {
+ if (aAddon.id == this.id) {
+ this.toBeUninstalled = true;
+ }
+ },
+ onUninstalled : function(aAddon)
+ {
+ if (aAddon.id == this.id) {
+ if (this.onuninstalled) this.onuninstalled();
+ delete this.onuninstalled;
+ }
+ },
+ onOperationCancelled : function(aAddon)
+ {
+ if (aAddon.id == this.id) {
+ this.toBeDisabled = false;
+ this.toBeUninstalled = false;
+ }
+ },
+ onPropertyChanged : function(aAddon, aProperties) {},
+
+ init : function(aArguments)
+ {
+ if (!aArguments) return;
+
+ this.id = (typeof aArguments == 'string') ? aArguments : aArguments.id ;
+
+ this.toBeUninstalled = false;
+ this.toBeDisabled = false;
+ if (typeof aArguments == 'object') {
+ this.onuninstalled = aArguments.onuninstalled;
+ this.ondisabled = aArguments.ondisabled;
+ }
+
+ AddonManager.addAddonListener(this);
+ ObserverService.addObserver(this, 'quit-application-granted', false);
+ },
+
+ destroy : function()
+ {
+ if (this.toBeUninstalled && this.onuninstalled)
+ this.onuninstalled();
+ delete this.onuninstalled;
+
+ if (this.toBeDisabled && this.ondisabled)
+ this.ondisabled();
+ delete this.ondisabled;
+
+ AddonManager.removeAddonListener(this);
+ ObserverService.removeObserver(this, 'quit-application-granted');
+ },
+
+ observe : function(aSubject, aTopic, aData)
+ {
+ switch (aTopic)
+ {
+ case 'quit-application-granted':
+ this.destroy();
+ return;
+ }
+ }
+};
+
diff --git a/modules/lib/extensions.js b/modules/lib/extensions.js
index 4ac3161..f06effa 100644
--- a/modules/lib/extensions.js
+++ b/modules/lib/extensions.js
@@ -2,7 +2,6 @@
Extensions Compatibility Library
Usage:
- Asynchronus:
var extensions = window['piro.sakura.ne.jp'].extensions;
extensions.isAvailable('my.extension.id at example.com', {
ok : function() { extensions.goToOptions('my.extension.id at example.com'); },
@@ -14,16 +13,9 @@
}
});
- Synchronus: (DEPRECATED)
- if (extensions.isAvailable('my.extension.id at example.com'))
- extensions.goToOptions('my.extension.id at example.com');
- var dir = extensions.getInstalledLocation('my.extension.id at example.com'); // nsILocalFile
-
- license: The MIT License, Copyright (c) 2009-2010 YUKI "Piro" Hiroshi
- http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/license.txt
+ license: The MIT License, Copyright (c) 2009-2016 YUKI "Piro" Hiroshi
original:
- http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/extensions.js
- http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/extensions.test.js
+ http://github.com/piroor/fxaddonlib-extensions
*/
/* To work as a JS Code Module */
@@ -32,7 +24,7 @@ if (typeof window == 'undefined' ||
this.EXPORTED_SYMBOLS = ['extensions'];
// If namespace.jsm is available, export symbols to the shared namespace.
- // See: http://www.cozmixng.org/repos/piro/fx3-compatibility-lib/trunk/namespace.jsm
+ // See: http://github.com/piroor/fxaddonlibs/blob/master/namespace.jsm
try {
let ns = {};
Components.utils.import('resource://treestyletab-modules/lib/namespace.jsm', ns);
@@ -44,7 +36,7 @@ if (typeof window == 'undefined' ||
}
(function() {
- const currentRevision = 11;
+ const currentRevision = 13;
if (!('piro.sakura.ne.jp' in window)) window['piro.sakura.ne.jp'] = {};
@@ -58,30 +50,11 @@ if (typeof window == 'undefined' ||
const Cc = Components.classes;
const Ci = Components.interfaces;
- // Firefox 3.7 or later
- var AM = {};
- if ('@mozilla.org/addons/integration;1' in Cc)
- Components.utils.import('resource://gre/modules/AddonManager.jsm', AM);
+ var { AddonManager } = Components.utils.import('resource://gre/modules/AddonManager.jsm', {});
window['piro.sakura.ne.jp'].extensions = {
revision : currentRevision,
- // Firefox 3.7 or later
- _getInstalledAddonNow : function(aId)
- {
- var addon;
- AM.AddonManager.getAddonByID(aId, function(aAddon) {
- addon = aAddon;
- });
- var thread = Cc['@mozilla.org/thread-manager;1']
- .getService()
- .mainThread;
- while (addon === void(0)) {
- thread.processNextEvent(true);
- }
- return addon;
- },
-
_formatCallbacks : function(aOKCallback, aNGCallback)
{
var callbacks = {
@@ -99,18 +72,6 @@ if (typeof window == 'undefined' ||
return callbacks;
},
- // Firefox 3.6 or older
- _ExtensionManager : ('@mozilla.org/extensions/manager;1' in Cc) ?
- Cc['@mozilla.org/extensions/manager;1']
- .getService(Ci.nsIExtensionManager) :
- null,
- _RDF : Cc['@mozilla.org/rdf/rdf-service;1']
- .getService(Ci.nsIRDFService),
- _WindowMediator : Cc['@mozilla.org/appshell/window-mediator;1']
- .getService(Ci.nsIWindowMediator),
- _Prefs : Cc['@mozilla.org/preferences;1']
- .getService(Ci.nsIPrefBranch),
-
isAvailable : function(aId, aOKCallback, aNGCallback)
{
@@ -120,149 +81,37 @@ if (typeof window == 'undefined' ||
isInstalled : function(aId, aOKCallback, aNGCallback)
{
- if (!aOKCallback)
- return this._ExtensionManager ? this._isInstalled_EM(aId) : this._isInstalled_AM(aId) ;
-
var callbacks = this._formatCallbacks(aOKCallback, aNGCallback);
- if (this._ExtensionManager) {
- callbacks[this._isInstalled_EM(aId) ? 'ok' : 'ng']();
- }
- else {
- AM.AddonManager.getAddonByID(aId, function(aAddon) {
- callbacks[aAddon ? 'ok' : 'ng']();
- });
- }
- },
- _isInstalled_EM : function(aId)
- {
- return this._ExtensionManager.getInstallLocation(aId) ? true : false ;
- },
- _isInstalled_AM : function(aId)
- {
- return this._getInstalledAddonNow(aId) ? true : false ;
+ AddonManager.getAddonByID(aId, function(aAddon) {
+ callbacks[aAddon ? 'ok' : 'ng']();
+ });
},
isEnabled : function(aId, aOKCallback, aNGCallback)
{
- if (!aOKCallback)
- return this._ExtensionManager ? this._isEnabled_EM(aId) : this._isEnabled_AM(aId) ;
-
var callbacks = this._formatCallbacks(aOKCallback, aNGCallback);
- if (this._ExtensionManager) {
- callbacks[this._isEnabled_EM(aId) ? 'ok' : 'ng']();
- }
- else {
- AM.AddonManager.getAddonByID(aId, function(aAddon) {
- callbacks[aAddon && aAddon.isActive ? 'ok' : 'ng']();
- });
- }
- },
- _isEnabled_EM : function(aId)
- {
- if (!this._isInstalled_EM(aId))
- return false;
-
- var res = this._RDF.GetResource('urn:mozilla:item:'+aId);
- var appDisabled = false;
- try {
- appDisabled = this._ExtensionManager.datasource.GetTarget(
- res,
- this._RDF.GetResource('http://www.mozilla.org/2004/em-rdf#appDisabled'),
- true
- ).QueryInterface(Ci.nsIRDFLiteral)
- .Value == 'true';
- }
- catch(e) {
- }
- var userDisabled = false;
- try {
- userDisabled = this._ExtensionManager.datasource.GetTarget(
- res,
- this._RDF.GetResource('http://www.mozilla.org/2004/em-rdf#userDisabled'),
- true
- ).QueryInterface(Ci.nsIRDFLiteral)
- .Value == 'true';
- }
- catch(e) {
- }
-
- return !appDisabled && !userDisabled;
- },
- _isEnabled_AM : function(aId)
- {
- var addon = this._getInstalledAddonNow(aId);
- return addon ? addon.isActive : false ;
+ AddonManager.getAddonByID(aId, function(aAddon) {
+ callbacks[aAddon && aAddon.isActive ? 'ok' : 'ng']();
+ });
},
getInstalledLocation : function(aId, aCallback)
{
- if (!aCallback)
- return this._ExtensionManager ? this._getInstalledLocation_EM(aId) : this._getInstalledLocation_AM(aId) ;
-
- if (this._ExtensionManager) {
- aCallback(this._getInstalledLocation_EM(aId));
- }
- else {
- AM.AddonManager.getAddonByID(aId, function(aAddon) {
- var location = null;
- if (aAddon)
- location = aAddon.getResourceURI('/').QueryInterface(Ci.nsIFileURL).file.clone();
- aCallback(location);
- });
- }
- },
- _getInstalledLocation_EM : function(aId)
- {
- var addon = this._ExtensionManager.getInstallLocation(aId);
- if (!addon) return null;
- return addon.getItemFile(aId, '').clone();
- },
- _getInstalledLocation_AM : function(aId)
- {
- var addon = this._getInstalledAddonNow(aId);
- if (!addon) return null;
- return addon.getResourceURI('/').QueryInterface(Ci.nsIFileURL).file.clone();
+ AddonManager.getAddonByID(aId, function(aAddon) {
+ var location = null;
+ if (aAddon)
+ location = aAddon.getResourceURI('/').QueryInterface(Ci.nsIFileURL).file.clone();
+ aCallback(location);
+ });
},
getVersion : function(aId, aCallback)
{
- if (!aCallback)
- return this._ExtensionManager ? this._getVersion_EM(aId) : this._getVersion_AM(aId) ;
-
- if (this._ExtensionManager) {
- aCallback(this._getVersion_EM(aId));
- }
- else {
- AM.AddonManager.getAddonByID(aId, function(aAddon) {
- aCallback(aAddon ? aAddon.version : null );
- });
- }
- },
- _getVersion_EM : function(aId)
- {
- if (!this._isInstalled_EM(aId))
- return null;
-
- var res = this._RDF.GetResource('urn:mozilla:item:'+aId);
- var version = null;
- try {
- version = this._ExtensionManager.datasource.GetTarget(
- res,
- this._RDF.GetResource('http://www.mozilla.org/2004/em-rdf#version'),
- true
- ).QueryInterface(Ci.nsIRDFLiteral)
- .Value;
- }
- catch(e) {
- }
- return version;
- },
- _getVersion_AM : function(aId)
- {
- var addon = this._getInstalledAddonNow(aId);
- return addon ? addon.version : null ;
+ AddonManager.getAddonByID(aId, function(aAddon) {
+ aCallback(aAddon ? aAddon.version : null );
+ });
},
@@ -272,46 +121,10 @@ if (typeof window == 'undefined' ||
var callback = function(aURI) {
self.goToOptionsInternal(aURI, aOwnerWindow);
};
- return this._ExtensionManager ? this._getOptionsURI_EM(aId, callback) : this._getOptionsURI_AM(aId, callback);
- },
- _getOptionsURI_EM : function(aId, aCallback)
- {
- var res = this._RDF.GetResource('urn:mozilla:item:'+aId);
- var uri = null;
- try {
- uri = this._ExtensionManager.datasource.GetTarget(
- res,
- this._RDF.GetResource('http://www.mozilla.org/2004/em-rdf#optionsURL'),
- true
- ).QueryInterface(Ci.nsIRDFLiteral)
- .Value;
- }
- catch(e) {
- }
- return aCallback ? aCallback(uri) : uri ;
- },
- _getOptionsURI_AM : function(aId, aCallback)
- {
- if (aCallback) {
- AM.AddonManager.getAddonByID(aId, function(aAddon) {
- aCallback(aAddon && aAddon.isActive ? aAddon.optionsURL : null );
- });
- return null;
- }
- else {
- var addon = this._getInstalledAddonNow(aId);
- return (addon && addon.isActive) ? addon.optionsURL : null ;
- }
- },
-
- goToOptionsNow : function(aId, aOwnerWindow)
- {
- this.goToOptionsInternal(
- (this._ExtensionManager ? this._getOptionsURI_EM(aId) : this._getOptionsURI_AM(aId) ),
- aOwnerWindow
- );
+ AddonManager.getAddonByID(aId, function(aAddon) {
+ callback(aAddon && aAddon.isActive ? aAddon.optionsURL : null );
+ });
},
-
goToOptionsInternal : function(aURI, aOwnerWindow)
{
if (!aURI) return;
@@ -320,19 +133,21 @@ if (typeof window == 'undefined' ||
while (windows.hasMoreElements())
{
let win = windows.getNext();
- if (win.location.href == uri) {
+ if (win.location.href == aURI) {
win.focus();
return;
}
}
var instantApply = false;
try {
- instantApply = this._Prefs.getBoolPref('browser.preferences.instantApply');
+ instantApply = Cc['@mozilla.org/preferences;1']
+ .getService(Ci.nsIPrefBranch)
+ .getBoolPref('browser.preferences.instantApply');
}
catch(e) {
}
(aOwnerWindow || window).openDialog(
- uri,
+ aURI,
'',
'chrome,titlebar,toolbar,centerscreen,' + (instantApply ? 'dialog=no' : 'modal' )
);
@@ -343,3 +158,4 @@ if (typeof window == 'undefined' ||
if (window != this) { // work as a JS Code Module
this.extensions = window['piro.sakura.ne.jp'].extensions;
}
+
diff --git a/modules/lib/inherit.jsm b/modules/lib/inherit.jsm
index cb7730e..ed705ba 100644
--- a/modules/lib/inherit.jsm
+++ b/modules/lib/inherit.jsm
@@ -2,10 +2,10 @@
* @fileOverview inherit, an alternative for __proto__
* @author YUKI "Piro" Hiroshi
* @contributor Infocatcher
- * @version 3
+ * @version 4
*
* @license
- * The MIT License, Copyright (c) 2014 YUKI "Piro" Hiroshi.
+ * The MIT License, Copyright (c) 2014-2016 YUKI "Piro" Hiroshi.
* https://github.com/piroor/fxaddonlib-inherit/blob/master/LICENSE
* @url http://github.com/piroor/fxaddonlib-inherit
*/
@@ -21,23 +21,11 @@ function toPropertyDescriptors(aProperties) {
return descriptors;
}
-function inherit(aParent, aExtraProperties) {
- var global;
- if (Components.utils.getGlobalForObject)
- global = Components.utils.getGlobalForObject(aParent);
- else
- global = aParent.valueOf.call();
- global = global || this;
-
- var ObjectClass = global.Object || Object;
-
- if (!ObjectClass.create) {
- aExtraProperties = aExtraProperties || new ObjectClass;
- aExtraProperties.__proto__ = aParent;
- return aExtraProperties;
- }
+function inherit(aParent, aExtraProperties, aObjectClass) {
+ aObjectClass = aObjectClass || Object;
if (aExtraProperties)
- return ObjectClass.create(aParent, toPropertyDescriptors(aExtraProperties));
+ return aObjectClass.create(aParent, toPropertyDescriptors(aExtraProperties));
else
- return ObjectClass.create(aParent);
+ return aObjectClass.create(aParent);
}
+
diff --git a/modules/window.js b/modules/window.js
index f7c260c..784f919 100644
--- a/modules/window.js
+++ b/modules/window.js
@@ -2046,5 +2046,5 @@ TreeStyleTabWindow.prototype = inherit(TreeStyleTabBase, {
}
}
-});
+}, Object);
diff --git a/treestyletab.update.rdf b/treestyletab.update.rdf
new file mode 100644
index 0000000..5a625e6
--- /dev/null
+++ b/treestyletab.update.rdf
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+ <rdf:Description rdf:about="urn:mozilla:extension:treestyletab at piro.sakura.ne.jp">
+ <em:updates>
+ <rdf:Seq>
+ <rdf:li>
+ <rdf:Description>
+ <em:version>0.18.2016090802</em:version>
+ <em:targetApplication>
+ <rdf:Description>
+ <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+ <em:minVersion>45.0</em:minVersion>
+ <em:maxVersion>51.0a1</em:maxVersion>
+ <em:updateLink>http://piro.sakura.ne.jp/xul/xpi/treestyletab.xpi?version=0.18.2016090802</em:updateLink>
+ <em:updateHash>sha1:e6ee377b6df5853bb90016acd4879f7337081fde</em:updateHash>
+ </rdf:Description>
+ </em:targetApplication>
+ </rdf:Description>
+ </rdf:li>
+ </rdf:Seq>
+ </em:updates>
+ <em:signature>
+ MIGRMAsGCSqGSIb3DQEBDQOBgQB9ADxK5oGK0GDGOhQYeMPpTC1/R6/182jThC4G
+ wS4WmRFaX344NMlBKtqEO/auJzc0sOzdCgrXO+alNwePOisor95TsIqHcwf3CV9i
+ 3boyTvbD63gXlgfWCN8mjIlwp4LDkmzArUaDMYg85dB0aoenSTRtMv16xoTzlTY9
+ ludWkg==
+ </em:signature>
+ </rdf:Description>
+</rdf:RDF>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tree-style-tab.git
More information about the Pkg-mozext-commits
mailing list