[Pkg-mozext-commits] [lightbeam] 01/01: Imported Upstream version 1.3.0+dfsg

Dmitry Smirnov onlyjob at moszumanska.debian.org
Tue Jan 5 15:37:17 UTC 2016


This is an automated email from the git hooks/post-receive script.

onlyjob pushed a commit to branch upstream
in repository lightbeam.

commit 7938555 (upstream)
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Date:   Tue Jan 5 15:33:26 2016

    Imported Upstream version 1.3.0+dfsg
---
 META-INF/manifest.mf                               | 362 +++++++++++++++++++++
 META-INF/mozilla.rsa                               | Bin 0 -> 4184 bytes
 META-INF/mozilla.sf                                |   4 +
 bootstrap.js                                       | 355 +-------------------
 {resources/lightbeam/data => data}/OpenSans.css    |   0
 {resources/lightbeam/data => data}/aggregate.js    |   0
 .../lightbeam/data => data}/content-script.js      |   0
 {resources/lightbeam/data => data}/dialog.js       |   0
 {resources/lightbeam/data => data}/events.js       |   0
 {resources/lightbeam/data => data}/first-run.css   |   0
 {resources/lightbeam/data => data}/first-run.html  |   0
 .../lightbeam/data => data}/font-awesome.css       |   0
 {resources/lightbeam/data => data}/graph.js        |   0
 .../data => data}/icons/lightbeam_150x45.png       | Bin
 .../data => data}/icons/lightbeam_icon_block.png   | Bin
 .../icons/lightbeam_icon_empty_list.png            | Bin
 .../data => data}/icons/lightbeam_icon_hide.png    | Bin
 .../data => data}/icons/lightbeam_icon_unblock.png | Bin
 .../data => data}/icons/lightbeam_icon_watch.png   | Bin
 .../icons/lightbeam_logo-only_16x16.png            | Bin
 .../icons/lightbeam_logo-only_32x32.png            | Bin
 .../icons/lightbeam_logo-only_48x48.png            | Bin
 .../icons/lightbeam_logo-wordmark_300x150.png      | Bin
 .../image/Lightbeam---Wordmark-Beta.png            | Bin
 .../data => data}/image/Lightbeam_radio_off.png    | Bin
 .../data => data}/image/Lightbeam_radio_on.png     | Bin
 .../image/lightbeam__wordmark_temp.png             | Bin
 .../data => data}/image/lightbeam_icon_about.png   | Bin
 .../image/lightbeam_icon_checkbox.png              | Bin
 .../image/lightbeam_icon_download2.png             | Bin
 .../image/lightbeam_icon_feedback.png              | Bin
 .../data => data}/image/lightbeam_icon_graph.png   | Bin
 .../data => data}/image/lightbeam_icon_help.png    | Bin
 .../data => data}/image/lightbeam_icon_list.png    | Bin
 .../image/lightbeam_icon_list_blue.png             | Bin
 .../data => data}/image/lightbeam_icon_reset.png   | Bin
 .../data => data}/image/lightbeam_icon_sortby.png  | Bin
 .../data => data}/image/lightbeam_icon_website.png | Bin
 .../data => data}/image/lightbeam_logo-only.svg    |   0
 .../image/lightbeam_popup_blocked.png              | Bin
 .../data => data}/image/lightbeam_popup_hidden.png | Bin
 .../image/lightbeam_popup_privacy.png              | Bin
 .../image/lightbeam_popup_warningreset.png         | Bin
 {resources/lightbeam/data => data}/index.html      |   4 +-
 {resources/lightbeam/data => data}/infobar.js      |   0
 {resources/lightbeam/data => data}/initialPage.js  |   0
 {resources/lightbeam/data => data}/lightbeam.js    |   0
 {resources/lightbeam/data => data}/list.js         |   0
 {resources/lightbeam/data => data}/map.svg         |   0
 {resources/lightbeam/data => data}/parseuri.js     |   0
 .../lightbeam/data => data}/picoModal/LICENSE.md   |   0
 .../lightbeam/data => data}/picoModal/picoModal.js |   0
 {resources/lightbeam/data => data}/style.css       |   1 -
 {resources/lightbeam/data => data}/svgdataset.js   |   0
 {resources/lightbeam/data => data}/tooltip.js      |   0
 {resources/lightbeam/data => data}/ui.js           |   2 +-
 {resources/lightbeam/data => data}/upgrade.html    |   0
 defaults/preferences/prefs.js                      |   2 -
 harness-options.json                               | 211 ------------
 install.rdf                                        |  48 ++-
 {resources/lightbeam/lib => lib}/connection.js     |   0
 {resources/lightbeam/lib => lib}/main.js           |   0
 {resources/lightbeam/lib => lib}/persist.js        |   0
 .../lightbeam/lib => lib}/shared/menuitems.js      |   0
 {resources/lightbeam/lib => lib}/shared/policy.js  |   0
 {resources/lightbeam/lib => lib}/shared/unload+.js |   0
 lib/tab/events.js                                  |  20 ++
 {resources/lightbeam/lib => lib}/tab/utils.js      |  64 +++-
 {resources/lightbeam/lib => lib}/ui.js             |   4 +-
 locales.json                                       |   1 -
 options.xul                                        |  23 --
 package.json                                       |   1 +
 72 files changed, 473 insertions(+), 629 deletions(-)

diff --git a/META-INF/manifest.mf b/META-INF/manifest.mf
new file mode 100644
index 0000000..b57173e
--- /dev/null
+++ b/META-INF/manifest.mf
@@ -0,0 +1,362 @@
+Manifest-Version: 1.0
+
+Name: install.rdf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MRCpcDwFZklNHo70AONhYw==
+SHA1-Digest: haWRkeX1Jmok0qXYlJkE4+h6kcw=
+
+Name: bootstrap.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 7bXGjs354WXP08z1LJmaUQ==
+SHA1-Digest: hBvzrYsRacNpTOCOH+GOhYBn2mE=
+
+Name: package.json
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ERIg9J21U+WX4qD9ckSucQ==
+SHA1-Digest: anpH7eJtXjwbQjnNKvz6H01ecC4=
+
+Name: data/aggregate.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 7Qh1QQSHKCi7RT9PFx6jEw==
+SHA1-Digest: 1suCRjUKU66g/V7R68DldaOh1eo=
+
+Name: data/content-script.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: /XnlNCIXe669PXq4vG8ukg==
+SHA1-Digest: lBnOUSSS2Z8hkuQPj5qmBGuJtdU=
+
+Name: data/dialog.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: HZacRv89pmZ/2u73t1jLfA==
+SHA1-Digest: BHEIwKqo4t13yJ3XUMUL17Zj1aI=
+
+Name: data/events.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: U8iHfXeQsdYUAUR06KicOA==
+SHA1-Digest: 2bKYOzVDFSYOXi+zKvDoBSpt574=
+
+Name: data/first-run.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: X2wdSRbS+9ncX7Pe1CkZcQ==
+SHA1-Digest: stnwGdhZR4NjOUC38yGYdSx8MB8=
+
+Name: data/first-run.html
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: HxdtRPUMwUQQQqSeFMbkPg==
+SHA1-Digest: 3oMytMsU6eGjTK+vKACawFp7+p8=
+
+Name: data/font-awesome.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YpJTdfW0//R5giWoy9n+Og==
+SHA1-Digest: ZI/TPuI0ZpB3INSLyrBibLUqsPI=
+
+Name: data/graph.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YxBUJ1DfFXPF9/xk0I7o1Q==
+SHA1-Digest: LHzq7uaZTVT2k1SzkIVFIogWeg8=
+
+Name: data/index.html
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: DXP3Ae/3aN15Gawb1a+jUA==
+SHA1-Digest: zWpcawG39i7ad0RjHfvsAMxqOjY=
+
+Name: data/infobar.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 34MDbpAnrGzOqA5iS0BjRQ==
+SHA1-Digest: UWvSnDV57TTYiwTNM1cO3fMP5eI=
+
+Name: data/initialPage.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: R6OfJLv05hD+zWqjxDP5Sg==
+SHA1-Digest: 2HA3AoxbryoLLVnqbdatlDUmZyA=
+
+Name: data/lightbeam.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5DO7QocmG2aWpG/Unv70WQ==
+SHA1-Digest: y27DQQl236vLKxnL5jWxK1Vr8as=
+
+Name: data/list.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: B/ZJJ90FVyvzEJ0A17Yfcg==
+SHA1-Digest: ofvaTitsObnHXEVg6MUeKcRZy/s=
+
+Name: data/map.svg
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: M/NaeHe1SDa2LYuL+y1XlA==
+SHA1-Digest: AFCjn24b46gsBGIfKSwngJteL/o=
+
+Name: data/OpenSans.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MZaWGyvm3JBCXU9IirM/cA==
+SHA1-Digest: n572xPpke/DBhPxSouxq4724LPc=
+
+Name: data/parseuri.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: nhQeQYrMRfTe/RshKXrkTA==
+SHA1-Digest: yf9ZOZz1W/ttQLvazJMbXC2fYAE=
+
+Name: data/style.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: kluOe9Tb/Gp5Eor05K9F4g==
+SHA1-Digest: yWOoDPBTH31wI8W/FazXh8zPNks=
+
+Name: data/svgdataset.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 4dQGZw3ap6X8E26Kg6TI2A==
+SHA1-Digest: YIZ2TlwtNTGcvHQV46TVlLv6J+4=
+
+Name: data/tooltip.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Qiq/9tOm1ji+t/fpIXPfyg==
+SHA1-Digest: QZZYuD2jlmScyMc68HtUomkViyM=
+
+Name: data/ui.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 9gXCLNcqS5Uyn5qYGZwukw==
+SHA1-Digest: g//Wa281tkMdY1dPYz0tV1+XapE=
+
+Name: data/upgrade.html
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: j397lEHCZgdxNybaVbeG3A==
+SHA1-Digest: EJM7XyM0MCB5LcHEWTfC/a2PiwQ=
+
+Name: data/d3/d3.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: wcl+JjfuM+kVuaJg7BkOGA==
+SHA1-Digest: QZ5KxQLWwGdWh4fc7Ejg+WzI7gQ=
+
+Name: data/d3/LICENSE
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: XkTmO3SR7EsY9z0bODNKBA==
+SHA1-Digest: WaLdafKXr9AGkxOtH20o+oNB4rk=
+
+Name: data/font/fontawesome-webfont.woff
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: IfIS+UqdtqDjhHySGEKqGQ==
+SHA1-Digest: HwvcWKpZq5VM54qU5NDqlKtDZVQ=
+
+Name: data/font/LICENSE
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: O4Pvljh/FGVfyFTdw8a9Vw==
+SHA1-Digest: K4uBUimqimHkg/tLoFiLi2xJGJA=
+
+Name: data/font/OpenSans-Bold.ttf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: UBRWhQQrTfB6H9GZVydbgQ==
+SHA1-Digest: wWkegWiyWWr4oAFiusYNvmBenjY=
+
+Name: data/font/OpenSans-Light.ttf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: G/cb4REYnnaYeku5sxFctw==
+SHA1-Digest: QEQsGJVoGEtubCeiXWnxTZG2UDk=
+
+Name: data/font/OpenSans-LightItalic.ttf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: aUP7b9QgDz0HNGkyXGrNyQ==
+SHA1-Digest: c8RzCJTGeQDgt716SRxxfUojazA=
+
+Name: data/icons/lightbeam_150x45.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: KzSEm01NWAaDZPHsiv4FZA==
+SHA1-Digest: /zkDSlSkMA7kqC6/HOnUoQGw+J4=
+
+Name: data/icons/lightbeam_icon_block.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: L15JyU6lYBP5YxatV2Ersg==
+SHA1-Digest: WGA3793tH2McHPtnFaNv3M2Mcd8=
+
+Name: data/icons/lightbeam_icon_empty_list.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: gDBbbeJeoYH7vp/fJLW6zA==
+SHA1-Digest: PZSAiubUCCVqRSyOFvyYcO2eSuo=
+
+Name: data/icons/lightbeam_icon_hide.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: C9V9ADEfXnfT0TSz+b3uKA==
+SHA1-Digest: 3z8Kwl+/B0ZwsrFDTIi2uTnQSEo=
+
+Name: data/icons/lightbeam_icon_unblock.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: btqRiN6Jcx8X6KqllZa7Jw==
+SHA1-Digest: GXqmc9vfPFSqIFShmCniEoytsD8=
+
+Name: data/icons/lightbeam_icon_watch.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Nl4vc+ooNZm+RXjWLIOjFA==
+SHA1-Digest: OpU3KySoVJIMlnetYcAHATLxOgo=
+
+Name: data/icons/lightbeam_logo-only_16x16.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: hLpc4bHT9VxSj9N/0+T3Yg==
+SHA1-Digest: HUOKVZADwrDp2Redh8lFLMOzNd0=
+
+Name: data/icons/lightbeam_logo-only_32x32.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: SDfHyltTmUrEbqutUpf+VQ==
+SHA1-Digest: xIKHYuyRCcEK7BFxoHY4pOdneOs=
+
+Name: data/icons/lightbeam_logo-only_48x48.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 8aUV1SxQhWSkN3txqTmoUA==
+SHA1-Digest: 0dBuGQOC8HTM9gvbF3jUbfacZaE=
+
+Name: data/icons/lightbeam_logo-wordmark_300x150.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 29a3D/GUjR5N+i09QjaNVg==
+SHA1-Digest: Ayex+YrYZZqxaqFPwcYaNX/XqlU=
+
+Name: data/image/Lightbeam---Wordmark-Beta.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: QGQcX9ZIeL/nyn3HGVpKAw==
+SHA1-Digest: x1qLPRAv5tvIwTRx3Hy0nG+ThmI=
+
+Name: data/image/lightbeam__wordmark_temp.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YjbfG3v664KN/5qIC22agQ==
+SHA1-Digest: 5Fp2fGu1mjDFxMdhtVMh+sggbcI=
+
+Name: data/image/lightbeam_icon_about.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: cn4kQDxBangO/x5nWZNh+g==
+SHA1-Digest: ASvXROHWMEbpk1jFZrs6CtqWQkM=
+
+Name: data/image/lightbeam_icon_checkbox.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 2qYQ0cY1sOdn2L2Ufc9NfQ==
+SHA1-Digest: Su6OeBvLHyefaPGwQXjL9X0KZjU=
+
+Name: data/image/lightbeam_icon_download2.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: UedcbaApavtzPK5Po6uYDQ==
+SHA1-Digest: NwfqF6oGJJUAflxJZkRveKnVEn8=
+
+Name: data/image/lightbeam_icon_feedback.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: deIqVoERHtxmtkjRIjWLyA==
+SHA1-Digest: IMlkiSSDj+tQx5QahAlv3U4fwKo=
+
+Name: data/image/lightbeam_icon_graph.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 1yslXnx774SYaa55jpE0+Q==
+SHA1-Digest: BjfYHGpQfnPmUbe16pSyxseJ6mQ=
+
+Name: data/image/lightbeam_icon_help.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: l5apgR8yYSJsVNNMidz9/g==
+SHA1-Digest: gl40eGgclW7mpa37qlitZqwncvI=
+
+Name: data/image/lightbeam_icon_list.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: SqX8Ero+fHJp7qk/snXPEQ==
+SHA1-Digest: O/lEn9ayt7o1lhQ24Xo8Ww0Bks4=
+
+Name: data/image/lightbeam_icon_list_blue.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: cEKX9ustR/fD9hjxB0MvPA==
+SHA1-Digest: JOJ7OJJKzB7tA7L2qTC87cjUATI=
+
+Name: data/image/lightbeam_icon_reset.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: U5KIS46dVWBRPNUcEXaKOg==
+SHA1-Digest: vqJFWkYisnWc2CKRZC6W/7AqFOk=
+
+Name: data/image/lightbeam_icon_sortby.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 5VwOMV7Fb0oyXIPJOwSauQ==
+SHA1-Digest: XuiZOOSfeA3NeHEyeApAmQP6n0E=
+
+Name: data/image/lightbeam_icon_website.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: knssW35KUQsNBKyRDXJhnA==
+SHA1-Digest: x+GRGSrFXvB6+w8QEhGatpa5pBc=
+
+Name: data/image/lightbeam_logo-only.svg
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ZLvNTC0vZbjU6kx3lWSJ+w==
+SHA1-Digest: SAD3SQKsD0xWdEY0S3uv1kWjT5w=
+
+Name: data/image/lightbeam_popup_blocked.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YJQE8pJY1u4Qd8BRMPfS2Q==
+SHA1-Digest: xxq4y2l9PWMkIP0pWIeVgg+mB64=
+
+Name: data/image/lightbeam_popup_hidden.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YAtkkwiGabUJjEgZGrLSkA==
+SHA1-Digest: fX4zawopBtu+1y9uD4OGR9WwsHc=
+
+Name: data/image/lightbeam_popup_privacy.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: NRjIurviXdCaAIaDgBO1Aw==
+SHA1-Digest: 773ht5ptzqjSPoZe91pkDverLaE=
+
+Name: data/image/lightbeam_popup_warningreset.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Snu4O/5vaNcX3KSsixxniw==
+SHA1-Digest: 7+dO5/iXS6vGQxvLjzEvvv414Bw=
+
+Name: data/image/Lightbeam_radio_off.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: zYZ5RxhqQoqnM57dlN9HYw==
+SHA1-Digest: N/nshp7fM/Sd4CeRAYjvxpv30O4=
+
+Name: data/image/Lightbeam_radio_on.png
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: kn8bR+9YZU9hrvb8JdF2Rg==
+SHA1-Digest: ZPdWFzQT7e58nVcar3RXKfPX6Z4=
+
+Name: data/picoModal/LICENSE.md
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 7oUKjC73Of+TuNJbS5DP9Q==
+SHA1-Digest: Rz7pkrjdBOoJNtuOXvKBvWnHsfQ=
+
+Name: data/picoModal/picoModal.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 4/JumKKWsP/WiI3qTf4wnQ==
+SHA1-Digest: fK4GE1z8zdHD7862is/JggENCkw=
+
+Name: lib/connection.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: +7x7ga7oi4zQLHU4s0kXSg==
+SHA1-Digest: PyroCUc9TacApHoxqdnKVR9OctU=
+
+Name: lib/main.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 6yc1Sofjjh3y3cCm1Cs92w==
+SHA1-Digest: KSznPbWHEgaJ4eEB7rIEWlJFvcM=
+
+Name: lib/persist.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: lD+HXBuQ8wlUFqGIyC6h2A==
+SHA1-Digest: 4vhb1MbIg91aowUZkFWe0ykgDkk=
+
+Name: lib/ui.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WKggwFae/IHLiuJBlosuqw==
+SHA1-Digest: j/ZMojqDtgdZj3Tw4IqRYXVEee0=
+
+Name: lib/shared/menuitems.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: tg5U30VT7gB3B4kz/wawVg==
+SHA1-Digest: wPjwLn+Pm0T+CWjU5YzI4+hW96c=
+
+Name: lib/shared/policy.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: YN7sLz8oUGrk2KinwuKaiA==
+SHA1-Digest: nQhppBYwX5ioXHv4SecHueIvAz0=
+
+Name: lib/shared/unload+.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MNRpqFaw1RJvmUDNcfqRvQ==
+SHA1-Digest: xt7dGaVXRrGad0t2QYvuy+h5NLU=
+
+Name: lib/tab/events.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: j+TKVuIwwZ4wlZUpqDXOhw==
+SHA1-Digest: dE1PmywHfWgY0uFBNar40tBN1z8=
+
+Name: lib/tab/utils.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: A2CIt4TPF3XuWARLp/uRvQ==
+SHA1-Digest: UBDqb2jCZgLqh3xw0YE5R6ibuZs=
+
diff --git a/META-INF/mozilla.rsa b/META-INF/mozilla.rsa
new file mode 100644
index 0000000..7e08c0e
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..56ecd72
--- /dev/null
+++ b/META-INF/mozilla.sf
@@ -0,0 +1,4 @@
+Signature-Version: 1.0
+MD5-Digest-Manifest: FO6utl0iFjtFl3/o7PMFgA==
+SHA1-Digest-Manifest: 5v5bYk3qbjtmAUHFlZDpIt9S39g=
+
diff --git a/bootstrap.js b/bootstrap.js
index 840103a..ba3d703 100644
--- a/bootstrap.js
+++ b/bootstrap.js
@@ -1,350 +1,11 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-// @see http://mxr.mozilla.org/mozilla-central/source/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-
-'use strict';
-
-// IMPORTANT: Avoid adding any initialization tasks here, if you need to do
-// something before add-on is loaded consider addon/runner module instead!
-
-const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu,
-        results: Cr, manager: Cm } = Components;
-const ioService = Cc['@mozilla.org/network/io-service;1'].
-                  getService(Ci.nsIIOService);
-const resourceHandler = ioService.getProtocolHandler('resource').
-                        QueryInterface(Ci.nsIResProtocolHandler);
-const systemPrincipal = CC('@mozilla.org/systemprincipal;1', 'nsIPrincipal')();
-const scriptLoader = Cc['@mozilla.org/moz/jssubscript-loader;1'].
-                     getService(Ci.mozIJSSubScriptLoader);
-const prefService = Cc['@mozilla.org/preferences-service;1'].
-                    getService(Ci.nsIPrefService).
-                    QueryInterface(Ci.nsIPrefBranch);
-const appInfo = Cc["@mozilla.org/xre/app-info;1"].
-                getService(Ci.nsIXULAppInfo);
-const vc = Cc["@mozilla.org/xpcom/version-comparator;1"].
-           getService(Ci.nsIVersionComparator);
-
-
-const REASON = [ 'unknown', 'startup', 'shutdown', 'enable', 'disable',
-                 'install', 'uninstall', 'upgrade', 'downgrade' ];
-
-const bind = Function.call.bind(Function.bind);
-
-let loader = null;
-let unload = null;
-let cuddlefishSandbox = null;
-let nukeTimer = null;
-
-let resourceDomains = [];
-function setResourceSubstitution(domain, uri) {
-  resourceDomains.push(domain);
-  resourceHandler.setSubstitution(domain, uri);
-}
-
-// Utility function that synchronously reads local resource from the given
-// `uri` and returns content string.
-function readURI(uri) {
-  let ioservice = Cc['@mozilla.org/network/io-service;1'].
-    getService(Ci.nsIIOService);
-  let channel = ioservice.newChannel(uri, 'UTF-8', null);
-  let stream = channel.open();
-
-  let cstream = Cc['@mozilla.org/intl/converter-input-stream;1'].
-    createInstance(Ci.nsIConverterInputStream);
-  cstream.init(stream, 'UTF-8', 0, 0);
-
-  let str = {};
-  let data = '';
-  let read = 0;
-  do {
-    read = cstream.readString(0xffffffff, str);
-    data += str.value;
-  } while (read != 0);
-
-  cstream.close();
-
-  return data;
-}
-
-// We don't do anything on install & uninstall yet, but in a future
-// we should allow add-ons to cleanup after uninstall.
-function install(data, reason) {}
-function uninstall(data, reason) {}
-
-function startup(data, reasonCode) {
-  try {
-    let reason = REASON[reasonCode];
-    // URI for the root of the XPI file.
-    // 'jar:' URI if the addon is packed, 'file:' URI otherwise.
-    // (Used by l10n module in order to fetch `locale` folder)
-    let rootURI = data.resourceURI.spec;
-
-    // TODO: Maybe we should perform read harness-options.json asynchronously,
-    // since we can't do anything until 'sessionstore-windows-restored' anyway.
-    let options = JSON.parse(readURI(rootURI + './harness-options.json'));
-
-    let id = options.jetpackID;
-    let name = options.name;
-
-    // Clean the metadata
-    options.metadata[name]['permissions'] = options.metadata[name]['permissions'] || {};
-
-    // freeze the permissionss
-    Object.freeze(options.metadata[name]['permissions']);
-    // freeze the metadata
-    Object.freeze(options.metadata[name]);
-
-    // Register a new resource 'domain' for this addon which is mapping to
-    // XPI's `resources` folder.
-    // Generate the domain name by using jetpack ID, which is the extension ID
-    // by stripping common characters that doesn't work as a domain name:
-    let uuidRe =
-      /^\{([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\}$/;
-
-    let domain = id.
-      toLowerCase().
-      replace(/@/g, '-at-').
-      replace(/\./g, '-dot-').
-      replace(uuidRe, '$1');
-
-    let prefixURI = 'resource://' + domain + '/';
-    let resourcesURI = ioService.newURI(rootURI + '/resources/', null, null);
-    setResourceSubstitution(domain, resourcesURI);
-
-    // Create path to URLs mapping supported by loader.
-    let paths = {
-      // Relative modules resolve to add-on package lib
-      './': prefixURI + name + '/lib/',
-      './tests/': prefixURI + name + '/tests/',
-      '': 'resource://gre/modules/commonjs/'
-    };
-
-    // Maps addon lib and tests ressource folders for each package
-    paths = Object.keys(options.metadata).reduce(function(result, name) {
-      result[name + '/'] = prefixURI + name + '/lib/'
-      result[name + '/tests/'] = prefixURI + name + '/tests/'
-      return result;
-    }, paths);
-
-    // We need to map tests folder when we run sdk tests whose package name
-    // is stripped
-    if (name == 'addon-sdk')
-      paths['tests/'] = prefixURI + name + '/tests/';
-
-    let useBundledSDK = options['force-use-bundled-sdk'];
-    if (!useBundledSDK) {
-      try {
-        useBundledSDK = prefService.getBoolPref("extensions.addon-sdk.useBundledSDK");
-      }
-      catch (e) {
-        // Pref doesn't exist, allow using Firefox shipped SDK
-      }
-    }
-
-    // Starting with Firefox 21.0a1, we start using modules shipped into firefox
-    // Still allow using modules from the xpi if the manifest tell us to do so.
-    // And only try to look for sdk modules in xpi if the xpi actually ship them
-    if (options['is-sdk-bundled'] &&
-        (vc.compare(appInfo.version, '21.0a1') < 0 || useBundledSDK)) {
-      // Maps sdk module folders to their resource folder
-      paths[''] = prefixURI + 'addon-sdk/lib/';
-      // test.js is usually found in root commonjs or SDK_ROOT/lib/ folder,
-      // so that it isn't shipped in the xpi. Keep a copy of it in sdk/ folder
-      // until we no longer support SDK modules in XPI:
-      paths['test'] = prefixURI + 'addon-sdk/lib/sdk/test.js';
-    }
-
-    // Retrieve list of module folder overloads based on preferences in order to
-    // eventually used a local modules instead of files shipped into Firefox.
-    let branch = prefService.getBranch('extensions.modules.' + id + '.path');
-    paths = branch.getChildList('', {}).reduce(function (result, name) {
-      // Allows overloading of any sub folder by replacing . by / in pref name
-      let path = name.substr(1).split('.').join('/');
-      // Only accept overloading folder by ensuring always ending with `/`
-      if (path) path += '/';
-      let fileURI = branch.getCharPref(name);
-
-      // On mobile, file URI has to end with a `/` otherwise, setSubstitution
-      // takes the parent folder instead.
-      if (fileURI[fileURI.length-1] !== '/')
-        fileURI += '/';
-
-      // Maps the given file:// URI to a resource:// in order to avoid various
-      // failure that happens with file:// URI and be close to production env
-      let resourcesURI = ioService.newURI(fileURI, null, null);
-      let resName = 'extensions.modules.' + domain + '.commonjs.path' + name;
-      setResourceSubstitution(resName, resourcesURI);
-
-      result[path] = 'resource://' + resName + '/';
-      return result;
-    }, paths);
-
-    // Make version 2 of the manifest
-    let manifest = options.manifest;
-
-    // Import `cuddlefish.js` module using a Sandbox and bootstrap loader.
-    let cuddlefishPath = 'loader/cuddlefish.js';
-    let cuddlefishURI = 'resource://gre/modules/commonjs/sdk/' + cuddlefishPath;
-    if (paths['sdk/']) { // sdk folder has been overloaded
-                         // (from pref, or cuddlefish is still in the xpi)
-      cuddlefishURI = paths['sdk/'] + cuddlefishPath;
-    }
-    else if (paths['']) { // root modules folder has been overloaded
-      cuddlefishURI = paths[''] + 'sdk/' + cuddlefishPath;
-    }
-
-    cuddlefishSandbox = loadSandbox(cuddlefishURI);
-    let cuddlefish = cuddlefishSandbox.exports;
-
-    // Normalize `options.mainPath` so that it looks like one that will come
-    // in a new version of linker.
-    let main = options.mainPath;
-
-    unload = cuddlefish.unload;
-    loader = cuddlefish.Loader({
-      paths: paths,
-      // modules manifest.
-      manifest: manifest,
-
-      // Add-on ID used by different APIs as a unique identifier.
-      id: id,
-      // Add-on name.
-      name: name,
-      // Add-on version.
-      version: options.metadata[name].version,
-      // Add-on package descriptor.
-      metadata: options.metadata[name],
-      // Add-on load reason.
-      loadReason: reason,
-
-      prefixURI: prefixURI,
-      // Add-on URI.
-      rootURI: rootURI,
-      // options used by system module.
-      // File to write 'OK' or 'FAIL' (exit code emulation).
-      resultFile: options.resultFile,
-      // Arguments passed as --static-args
-      staticArgs: options.staticArgs,
-      // Add-on preferences branch name
-      preferencesBranch: options.preferencesBranch,
-
-      // Arguments related to test runner.
-      modules: {
-        '@test/options': {
-          allTestModules: options.allTestModules,
-          iterations: options.iterations,
-          filter: options.filter,
-          profileMemory: options.profileMemory,
-          stopOnError: options.stopOnError,
-          verbose: options.verbose,
-          parseable: options.parseable,
-          checkMemory: options.check_memory,
-        }
-      }
-    });
-
-    let module = cuddlefish.Module('sdk/loader/cuddlefish', cuddlefishURI);
-    let require = cuddlefish.Require(loader, module);
-
-    require('sdk/addon/runner').startup(reason, {
-      loader: loader,
-      main: main,
-      prefsURI: rootURI + 'defaults/preferences/prefs.js'
-    });
-  } catch (error) {
-    dump('Bootstrap error: ' +
-         (error.message ? error.message : String(error)) + '\n' +
-         (error.stack || error.fileName + ': ' + error.lineNumber) + '\n');
-    throw error;
-  }
-};
-
-function loadSandbox(uri) {
-  let proto = {
-    sandboxPrototype: {
-      loadSandbox: loadSandbox,
-      ChromeWorker: ChromeWorker
-    }
-  };
-  let sandbox = Cu.Sandbox(systemPrincipal, proto);
-  // Create a fake commonjs environnement just to enable loading loader.js
-  // correctly
-  sandbox.exports = {};
-  sandbox.module = { uri: uri, exports: sandbox.exports };
-  sandbox.require = function (id) {
-    if (id !== "chrome")
-      throw new Error("Bootstrap sandbox `require` method isn't implemented.");
-
-    return Object.freeze({ Cc: Cc, Ci: Ci, Cu: Cu, Cr: Cr, Cm: Cm,
-      CC: bind(CC, Components), components: Components,
-      ChromeWorker: ChromeWorker });
-  };
-  scriptLoader.loadSubScript(uri, sandbox, 'UTF-8');
-  return sandbox;
-}
-
-function unloadSandbox(sandbox) {
-  if ("nukeSandbox" in Cu)
-    Cu.nukeSandbox(sandbox);
-}
-
-function setTimeout(callback, delay) {
-  let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
-  timer.initWithCallback({ notify: callback }, delay,
-                         Ci.nsITimer.TYPE_ONE_SHOT);
-  return timer;
-}
-
-function shutdown(data, reasonCode) {
-  let reason = REASON[reasonCode];
-  if (loader) {
-    unload(loader, reason);
-    unload = null;
-
-    // Don't waste time cleaning up if the application is shutting down
-    if (reason != "shutdown") {
-      // Avoid leaking all modules when something goes wrong with one particular
-      // module. Do not clean it up immediatly in order to allow executing some
-      // actions on addon disabling.
-      // We need to keep a reference to the timer, otherwise it is collected
-      // and won't ever fire.
-      nukeTimer = setTimeout(nukeModules, 1000);
-
-      // Bug 944951 - bootstrap.js must remove the added resource: URIs on unload
-      resourceDomains.forEach(domain => {
-        resourceHandler.setSubstitution(domain, null);
-      })
-    }
-  }
-};
-
-function nukeModules() {
-  nukeTimer = null;
-  // module objects store `exports` which comes from sandboxes
-  // We should avoid keeping link to these object to avoid leaking sandboxes
-  for (let key in loader.modules) {
-    delete loader.modules[key];
-  }
-  // Direct links to sandboxes should be removed too
-  for (let key in loader.sandboxes) {
-    let sandbox = loader.sandboxes[key];
-    delete loader.sandboxes[key];
-    // Bug 775067: From FF17 we can kill all CCW from a given sandbox
-    unloadSandbox(sandbox);
-  }
-  loader = null;
-
-  // both `toolkit/loader` and `system/xul-app` are loaded as JSM's via
-  // `cuddlefish.js`, and needs to be unloaded to avoid memory leaks, when
-  // the addon is unload.
-
-  unloadSandbox(cuddlefishSandbox.loaderSandbox);
-  unloadSandbox(cuddlefishSandbox.xulappSandbox);
-
-  // Bug 764840: We need to unload cuddlefish otherwise it will stay alive
-  // and keep a reference to this compartment.
-  unloadSandbox(cuddlefishSandbox);
-  cuddlefishSandbox = null;
-}
+"use strict";
+
+const { utils: Cu } = Components;
+const rootURI = __SCRIPT_URI_SPEC__.replace("bootstrap.js", "");
+const COMMONJS_URI = "resource://gre/modules/commonjs";
+const { require } = Cu.import(COMMONJS_URI + "/toolkit/require.js", {});
+const { Bootstrap } = require(COMMONJS_URI + "/sdk/addon/bootstrap.js");
+var { startup, shutdown, install, uninstall } = new Bootstrap(rootURI);
diff --git a/resources/lightbeam/data/OpenSans.css b/data/OpenSans.css
similarity index 100%
rename from resources/lightbeam/data/OpenSans.css
rename to data/OpenSans.css
diff --git a/resources/lightbeam/data/aggregate.js b/data/aggregate.js
similarity index 100%
rename from resources/lightbeam/data/aggregate.js
rename to data/aggregate.js
diff --git a/resources/lightbeam/data/content-script.js b/data/content-script.js
similarity index 100%
rename from resources/lightbeam/data/content-script.js
rename to data/content-script.js
diff --git a/resources/lightbeam/data/dialog.js b/data/dialog.js
similarity index 100%
rename from resources/lightbeam/data/dialog.js
rename to data/dialog.js
diff --git a/resources/lightbeam/data/events.js b/data/events.js
similarity index 100%
rename from resources/lightbeam/data/events.js
rename to data/events.js
diff --git a/resources/lightbeam/data/first-run.css b/data/first-run.css
similarity index 100%
rename from resources/lightbeam/data/first-run.css
rename to data/first-run.css
diff --git a/resources/lightbeam/data/first-run.html b/data/first-run.html
similarity index 100%
rename from resources/lightbeam/data/first-run.html
rename to data/first-run.html
diff --git a/resources/lightbeam/data/font-awesome.css b/data/font-awesome.css
similarity index 100%
rename from resources/lightbeam/data/font-awesome.css
rename to data/font-awesome.css
diff --git a/resources/lightbeam/data/graph.js b/data/graph.js
similarity index 100%
rename from resources/lightbeam/data/graph.js
rename to data/graph.js
diff --git a/resources/lightbeam/data/icons/lightbeam_150x45.png b/data/icons/lightbeam_150x45.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_150x45.png
rename to data/icons/lightbeam_150x45.png
diff --git a/resources/lightbeam/data/icons/lightbeam_icon_block.png b/data/icons/lightbeam_icon_block.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_icon_block.png
rename to data/icons/lightbeam_icon_block.png
diff --git a/resources/lightbeam/data/icons/lightbeam_icon_empty_list.png b/data/icons/lightbeam_icon_empty_list.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_icon_empty_list.png
rename to data/icons/lightbeam_icon_empty_list.png
diff --git a/resources/lightbeam/data/icons/lightbeam_icon_hide.png b/data/icons/lightbeam_icon_hide.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_icon_hide.png
rename to data/icons/lightbeam_icon_hide.png
diff --git a/resources/lightbeam/data/icons/lightbeam_icon_unblock.png b/data/icons/lightbeam_icon_unblock.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_icon_unblock.png
rename to data/icons/lightbeam_icon_unblock.png
diff --git a/resources/lightbeam/data/icons/lightbeam_icon_watch.png b/data/icons/lightbeam_icon_watch.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_icon_watch.png
rename to data/icons/lightbeam_icon_watch.png
diff --git a/resources/lightbeam/data/icons/lightbeam_logo-only_16x16.png b/data/icons/lightbeam_logo-only_16x16.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_logo-only_16x16.png
rename to data/icons/lightbeam_logo-only_16x16.png
diff --git a/resources/lightbeam/data/icons/lightbeam_logo-only_32x32.png b/data/icons/lightbeam_logo-only_32x32.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_logo-only_32x32.png
rename to data/icons/lightbeam_logo-only_32x32.png
diff --git a/resources/lightbeam/data/icons/lightbeam_logo-only_48x48.png b/data/icons/lightbeam_logo-only_48x48.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_logo-only_48x48.png
rename to data/icons/lightbeam_logo-only_48x48.png
diff --git a/resources/lightbeam/data/icons/lightbeam_logo-wordmark_300x150.png b/data/icons/lightbeam_logo-wordmark_300x150.png
similarity index 100%
rename from resources/lightbeam/data/icons/lightbeam_logo-wordmark_300x150.png
rename to data/icons/lightbeam_logo-wordmark_300x150.png
diff --git a/resources/lightbeam/data/image/Lightbeam---Wordmark-Beta.png b/data/image/Lightbeam---Wordmark-Beta.png
similarity index 100%
rename from resources/lightbeam/data/image/Lightbeam---Wordmark-Beta.png
rename to data/image/Lightbeam---Wordmark-Beta.png
diff --git a/resources/lightbeam/data/image/Lightbeam_radio_off.png b/data/image/Lightbeam_radio_off.png
similarity index 100%
rename from resources/lightbeam/data/image/Lightbeam_radio_off.png
rename to data/image/Lightbeam_radio_off.png
diff --git a/resources/lightbeam/data/image/Lightbeam_radio_on.png b/data/image/Lightbeam_radio_on.png
similarity index 100%
rename from resources/lightbeam/data/image/Lightbeam_radio_on.png
rename to data/image/Lightbeam_radio_on.png
diff --git a/resources/lightbeam/data/image/lightbeam__wordmark_temp.png b/data/image/lightbeam__wordmark_temp.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam__wordmark_temp.png
rename to data/image/lightbeam__wordmark_temp.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_about.png b/data/image/lightbeam_icon_about.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_about.png
rename to data/image/lightbeam_icon_about.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_checkbox.png b/data/image/lightbeam_icon_checkbox.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_checkbox.png
rename to data/image/lightbeam_icon_checkbox.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_download2.png b/data/image/lightbeam_icon_download2.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_download2.png
rename to data/image/lightbeam_icon_download2.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_feedback.png b/data/image/lightbeam_icon_feedback.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_feedback.png
rename to data/image/lightbeam_icon_feedback.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_graph.png b/data/image/lightbeam_icon_graph.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_graph.png
rename to data/image/lightbeam_icon_graph.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_help.png b/data/image/lightbeam_icon_help.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_help.png
rename to data/image/lightbeam_icon_help.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_list.png b/data/image/lightbeam_icon_list.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_list.png
rename to data/image/lightbeam_icon_list.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_list_blue.png b/data/image/lightbeam_icon_list_blue.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_list_blue.png
rename to data/image/lightbeam_icon_list_blue.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_reset.png b/data/image/lightbeam_icon_reset.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_reset.png
rename to data/image/lightbeam_icon_reset.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_sortby.png b/data/image/lightbeam_icon_sortby.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_sortby.png
rename to data/image/lightbeam_icon_sortby.png
diff --git a/resources/lightbeam/data/image/lightbeam_icon_website.png b/data/image/lightbeam_icon_website.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_icon_website.png
rename to data/image/lightbeam_icon_website.png
diff --git a/resources/lightbeam/data/image/lightbeam_logo-only.svg b/data/image/lightbeam_logo-only.svg
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_logo-only.svg
rename to data/image/lightbeam_logo-only.svg
diff --git a/resources/lightbeam/data/image/lightbeam_popup_blocked.png b/data/image/lightbeam_popup_blocked.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_popup_blocked.png
rename to data/image/lightbeam_popup_blocked.png
diff --git a/resources/lightbeam/data/image/lightbeam_popup_hidden.png b/data/image/lightbeam_popup_hidden.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_popup_hidden.png
rename to data/image/lightbeam_popup_hidden.png
diff --git a/resources/lightbeam/data/image/lightbeam_popup_privacy.png b/data/image/lightbeam_popup_privacy.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_popup_privacy.png
rename to data/image/lightbeam_popup_privacy.png
diff --git a/resources/lightbeam/data/image/lightbeam_popup_warningreset.png b/data/image/lightbeam_popup_warningreset.png
similarity index 100%
rename from resources/lightbeam/data/image/lightbeam_popup_warningreset.png
rename to data/image/lightbeam_popup_warningreset.png
diff --git a/resources/lightbeam/data/index.html b/data/index.html
similarity index 99%
rename from resources/lightbeam/data/index.html
rename to data/index.html
index 50d5629..c15ac7a 100644
--- a/resources/lightbeam/data/index.html
+++ b/data/index.html
@@ -39,7 +39,7 @@
             </div>
             <div class="links">
                 <img src="image/lightbeam_icon_feedback.png"> <a href="mailto:lightbeam-feedback at mozilla.org">Give Us Feedback</a><br />
-                <a href="http://www.mozilla.org/lightbeam" target="_blank">mozilla.org/lightbeam</a>
+                <a href="https://support.mozilla.org/en-US/kb/disable-or-remove-add-ons">Uninstall Lightbeam</a>
             </div>
         </aside>
 
@@ -440,7 +440,7 @@
                                     <div class="radio-dot"></div>
                                     <img src="icons/lightbeam_icon_watch.png" />
                                     Watch Site
-                               </label> 
+                               </label>
                             <input id="no-pref" type="radio" name="pref-options" value="">
                                <label for="no-pref" class="btn disabled">
                                     <div class="radio-dot"></div>
diff --git a/resources/lightbeam/data/infobar.js b/data/infobar.js
similarity index 100%
rename from resources/lightbeam/data/infobar.js
rename to data/infobar.js
diff --git a/resources/lightbeam/data/initialPage.js b/data/initialPage.js
similarity index 100%
rename from resources/lightbeam/data/initialPage.js
rename to data/initialPage.js
diff --git a/resources/lightbeam/data/lightbeam.js b/data/lightbeam.js
similarity index 100%
rename from resources/lightbeam/data/lightbeam.js
rename to data/lightbeam.js
diff --git a/resources/lightbeam/data/list.js b/data/list.js
similarity index 100%
rename from resources/lightbeam/data/list.js
rename to data/list.js
diff --git a/resources/lightbeam/data/map.svg b/data/map.svg
similarity index 100%
rename from resources/lightbeam/data/map.svg
rename to data/map.svg
diff --git a/resources/lightbeam/data/parseuri.js b/data/parseuri.js
similarity index 100%
rename from resources/lightbeam/data/parseuri.js
rename to data/parseuri.js
diff --git a/resources/lightbeam/data/picoModal/LICENSE.md b/data/picoModal/LICENSE.md
similarity index 100%
rename from resources/lightbeam/data/picoModal/LICENSE.md
rename to data/picoModal/LICENSE.md
diff --git a/resources/lightbeam/data/picoModal/picoModal.js b/data/picoModal/picoModal.js
similarity index 100%
rename from resources/lightbeam/data/picoModal/picoModal.js
rename to data/picoModal/picoModal.js
diff --git a/resources/lightbeam/data/style.css b/data/style.css
similarity index 99%
rename from resources/lightbeam/data/style.css
rename to data/style.css
index 147b11b..c5bf558 100644
--- a/resources/lightbeam/data/style.css
+++ b/data/style.css
@@ -604,7 +604,6 @@ a:hover{
 .sorted:after, .reverse-sorted:after{
     padding:0px 5px;
     content: '▾';
-    display: inline-block;
     position: relative;
     -moz-transition:all 0.3s linear;
 }
diff --git a/resources/lightbeam/data/svgdataset.js b/data/svgdataset.js
similarity index 100%
rename from resources/lightbeam/data/svgdataset.js
rename to data/svgdataset.js
diff --git a/resources/lightbeam/data/tooltip.js b/data/tooltip.js
similarity index 100%
rename from resources/lightbeam/data/tooltip.js
rename to data/tooltip.js
diff --git a/resources/lightbeam/data/ui.js b/data/ui.js
similarity index 99%
rename from resources/lightbeam/data/ui.js
rename to data/ui.js
index d6d108b..2b6ecee 100644
--- a/resources/lightbeam/data/ui.js
+++ b/data/ui.js
@@ -440,7 +440,7 @@ global.singularOrPluralNoun = function singularOrPluralNoun(num, str) {
   if (typeof num != "number") {
     num = parseFloat(num);
   }
-  return (num > 1) ? str + "s" : str;
+  return (num === 1) ? str : str + "s";
 };
 
 function updateUIFromMetadata(event) {
diff --git a/resources/lightbeam/data/upgrade.html b/data/upgrade.html
similarity index 100%
rename from resources/lightbeam/data/upgrade.html
rename to data/upgrade.html
diff --git a/defaults/preferences/prefs.js b/defaults/preferences/prefs.js
deleted file mode 100644
index d6c40b7..0000000
--- a/defaults/preferences/prefs.js
+++ /dev/null
@@ -1,2 +0,0 @@
-pref("extensions.jid1-F9UJ2thwoAm5gQ at jetpack.defaultVisualization", "graph");
-pref("extensions.jid1-F9UJ2thwoAm5gQ at jetpack.defaultFilter", "daily");
diff --git a/harness-options.json b/harness-options.json
deleted file mode 100644
index 88abb8e..0000000
--- a/harness-options.json
+++ /dev/null
@@ -1,211 +0,0 @@
-{
- "abort_on_missing": false, 
- "check_memory": false, 
- "enable_e10s": false, 
- "is-sdk-bundled": false, 
- "jetpackID": "jid1-F9UJ2thwoAm5gQ at jetpack", 
- "loader": "addon-sdk/lib/sdk/loader/cuddlefish.js", 
- "main": "main", 
- "mainPath": "lightbeam/main", 
- "manifest": {
-  "lightbeam/connection": {
-   "docsSHA256": null, 
-   "jsSHA256": "6e04c7d0f55418e3ac5515f5a078bf0087acd843e7028835025cf6607aca0376", 
-   "moduleName": "connection", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "./persist": "lightbeam/persist", 
-    "./tab/utils": "lightbeam/tab/utils", 
-    "chrome": "chrome", 
-    "sdk/event/core": "sdk/event/core", 
-    "sdk/self": "sdk/self", 
-    "sdk/simple-storage": "sdk/simple-storage", 
-    "sdk/timers": "sdk/timers"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/main": {
-   "docsSHA256": "e60ed986f0f22ee750f6b64bac6bb5370aef7d7ba0ab484ce41e3406e8fd04ab", 
-   "jsSHA256": "399fe28a54e3eecc23e7e2b86009ecc497b4613d967fb889bb3247d4c2d3de45", 
-   "moduleName": "main", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "./connection": "lightbeam/connection", 
-    "./ui": "lightbeam/ui", 
-    "sdk/page-mod": "sdk/page-mod", 
-    "sdk/self": "sdk/self", 
-    "sdk/system/events": "sdk/system/events", 
-    "sdk/tabs": "sdk/tabs"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/persist": {
-   "docsSHA256": null, 
-   "jsSHA256": "46d6801e944e9eaf2dbaa516d088a92a186987da3e54bc88ab068d30645bf231", 
-   "moduleName": "persist", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "sdk/request": "sdk/request", 
-    "sdk/simple-prefs": "sdk/simple-prefs", 
-    "sdk/simple-storage": "sdk/simple-storage"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/shared/menuitems": {
-   "docsSHA256": null, 
-   "jsSHA256": "fd132327851fe2c9f6f0990899fdc2cc3f8e124e5a8815d012f56d8d35070b4d", 
-   "moduleName": "shared/menuitems", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "./unload+": "lightbeam/shared/unload+", 
-    "sdk/core/heritage": "sdk/core/heritage", 
-    "sdk/core/namespace": "sdk/core/namespace", 
-    "sdk/deprecated/api-utils": "sdk/deprecated/api-utils", 
-    "sdk/deprecated/window-utils": "sdk/deprecated/window-utils", 
-    "sdk/event/core": "sdk/event/core", 
-    "sdk/event/target": "sdk/event/target", 
-    "sdk/window/utils": "sdk/window/utils"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/shared/policy": {
-   "docsSHA256": null, 
-   "jsSHA256": "0ffd8914168d64cc4f6ce2779e671069e34d0fc5ae4d82d2206d3fb9b52088d0", 
-   "moduleName": "shared/policy", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "chrome": "chrome", 
-    "sdk/core/heritage": "sdk/core/heritage", 
-    "sdk/core/namespace": "sdk/core/namespace", 
-    "sdk/deprecated/api-utils": "sdk/deprecated/api-utils", 
-    "sdk/platform/xpcom": "sdk/platform/xpcom", 
-    "sdk/self": "sdk/self", 
-    "sdk/system/unload": "sdk/system/unload"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/shared/unload+": {
-   "docsSHA256": null, 
-   "jsSHA256": "6e36c26b2cfbdf4dba923c7e7a384645487e9b435b6cd2ae61e2f91b0f90f789", 
-   "moduleName": "shared/unload+", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "sdk/core/heritage": "sdk/core/heritage", 
-    "sdk/core/namespace": "sdk/core/namespace", 
-    "sdk/system/unload": "sdk/system/unload"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/tab/utils": {
-   "docsSHA256": null, 
-   "jsSHA256": "b8214407c3483cf4317c4971c64f20773290fe4310fb4485eced7697ac981501", 
-   "moduleName": "tab/utils", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "chrome": "chrome", 
-    "sdk/tabs": "sdk/tabs", 
-    "sdk/tabs/utils": "sdk/tabs/utils"
-   }, 
-   "sectionName": "lib"
-  }, 
-  "lightbeam/ui": {
-   "docsSHA256": null, 
-   "jsSHA256": "6eb39bb49339649c5fbf2c746ad94bcfa4f05f64e7c82903c73505c195e9aa2a", 
-   "moduleName": "ui", 
-   "packageName": "lightbeam", 
-   "requirements": {
-    "./connection": "lightbeam/connection", 
-    "./persist": "lightbeam/persist", 
-    "sdk/preferences/service": "sdk/preferences/service", 
-    "sdk/private-browsing": "sdk/private-browsing", 
-    "sdk/self": "sdk/self", 
-    "sdk/simple-prefs": "sdk/simple-prefs", 
-    "sdk/simple-storage": "sdk/simple-storage", 
-    "sdk/system": "sdk/system", 
-    "sdk/system/xul-app": "sdk/system/xul-app", 
-    "sdk/tabs": "sdk/tabs", 
-    "sdk/ui/button/action": "sdk/ui/button/action", 
-    "shared/menuitems": "lightbeam/shared/menuitems", 
-    "shared/policy": "lightbeam/shared/policy"
-   }, 
-   "sectionName": "lib"
-  }
- }, 
- "metadata": {
-  "addon-sdk": {
-   "description": "Add-on development made easy.", 
-   "keywords": [
-    "javascript", 
-    "engine", 
-    "addon", 
-    "extension", 
-    "xulrunner", 
-    "firefox", 
-    "browser"
-   ], 
-   "license": "MPL 2.0", 
-   "name": "addon-sdk"
-  }, 
-  "lightbeam": {
-   "author": "Mozilla Foundation", 
-   "description": "Lightbeam is a Firefox add-on that allows you to see the third parties that are collecting information about your browsing activity, with and without your consent. Using interactive visualizations, Lightbeam shows you the relationships between these third parties and the sites you visit.", 
-   "license": "MPL 2.0", 
-   "main": "main", 
-   "name": "lightbeam", 
-   "permissions": {
-    "private-browsing": true
-   }, 
-   "version": "1.2.1"
-  }
- }, 
- "name": "lightbeam", 
- "parseable": false, 
- "preferences": [
-  {
-   "description": "Graph or list", 
-   "name": "defaultVisualization", 
-   "options": [
-    {
-     "label": "Graph", 
-     "value": "graph"
-    }, 
-    {
-     "label": "List", 
-     "value": "list"
-    }
-   ], 
-   "title": "Default visualization", 
-   "type": "menulist", 
-   "value": "graph"
-  }, 
-  {
-   "description": "Time period", 
-   "name": "defaultFilter", 
-   "options": [
-    {
-     "label": "Daily", 
-     "value": "daily"
-    }, 
-    {
-     "label": "Weekly", 
-     "value": "weekly"
-    }, 
-    {
-     "label": "Recent", 
-     "value": "recent"
-    }, 
-    {
-     "label": "Last 10 sites", 
-     "value": "last10sites"
-    }
-   ], 
-   "title": "Default filter", 
-   "type": "menulist", 
-   "value": "daily"
-  }
- ], 
- "preferencesBranch": "jid1-F9UJ2thwoAm5gQ at jetpack", 
- "sdkVersion": "1.17", 
- "staticArgs": {}, 
- "verbose": false
-}
\ No newline at end of file
diff --git a/install.rdf b/install.rdf
index 8cc9e0b..9b651bc 100644
--- a/install.rdf
+++ b/install.rdf
@@ -1,28 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. --><RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>jid1-F9UJ2thwoAm5gQ at jetpack</em:id>
-    <em:version>1.2.1</em:version>
-    <em:type>2</em:type>
-    <em:bootstrap>true</em:bootstrap>
-    <em:unpack>false</em:unpack>
+<?xml version='1.0' encoding='utf-8'?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+    <Description about="urn:mozilla:install-manifest">
+          <em:id>jid1-F9UJ2thwoAm5gQ at jetpack</em:id>
+          <em:type>2</em:type>
+          <em:bootstrap>true</em:bootstrap>
+          <em:unpack>false</em:unpack>
+          <em:version>1.3.0.1-signed</em:version>
+          <em:name>Lightbeam</em:name>
+          <em:description>Lightbeam is a Firefox add-on that allows you to see the third parties that are collecting information about your browsing activity, with and without your consent. Using interactive visualizations, Lightbeam shows you the relationships between these third parties and the sites you visit.</em:description>
+          <em:creator>Mozilla Foundation</em:creator>
+          <em:optionsURL>data:text/xml,<placeholder/></em:optionsURL>
+          <em:optionsType>2</em:optionsType>
 
-    <!-- Firefox -->
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>26.0</em:minVersion>
-        <em:maxVersion>30.0</em:maxVersion>
-      </Description>
-    </em:targetApplication>
+          <em:targetApplication>
+            <Description>
+              <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+              <em:minVersion>38.0a1</em:minVersion>
+              <em:maxVersion>43.0</em:maxVersion>
+</Description>
+</em:targetApplication>
+
+
+    </Description>
 
-    <!-- Front End MetaData -->
-    <em:name>Lightbeam</em:name>
-    <em:description>Lightbeam is a Firefox add-on that allows you to see the third parties that are collecting information about your browsing activity, with and without your consent. Using interactive visualizations, Lightbeam shows you the relationships between these third parties and the sites you visit.</em:description>
-    <em:creator>Mozilla Foundation</em:creator>
-    
-    <em:optionsType>2</em:optionsType>
-    
-  </Description>
 </RDF>
\ No newline at end of file
diff --git a/resources/lightbeam/lib/connection.js b/lib/connection.js
similarity index 100%
rename from resources/lightbeam/lib/connection.js
rename to lib/connection.js
diff --git a/resources/lightbeam/lib/main.js b/lib/main.js
similarity index 100%
rename from resources/lightbeam/lib/main.js
rename to lib/main.js
diff --git a/resources/lightbeam/lib/persist.js b/lib/persist.js
similarity index 100%
rename from resources/lightbeam/lib/persist.js
rename to lib/persist.js
diff --git a/resources/lightbeam/lib/shared/menuitems.js b/lib/shared/menuitems.js
similarity index 100%
rename from resources/lightbeam/lib/shared/menuitems.js
rename to lib/shared/menuitems.js
diff --git a/resources/lightbeam/lib/shared/policy.js b/lib/shared/policy.js
similarity index 100%
rename from resources/lightbeam/lib/shared/policy.js
rename to lib/shared/policy.js
diff --git a/resources/lightbeam/lib/shared/unload+.js b/lib/shared/unload+.js
similarity index 100%
rename from resources/lightbeam/lib/shared/unload+.js
rename to lib/shared/unload+.js
diff --git a/lib/tab/events.js b/lib/tab/events.js
new file mode 100644
index 0000000..0ecea20
--- /dev/null
+++ b/lib/tab/events.js
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/* global require, exports */
+// Simple onTab handler to figure out what tab a connection corresponds to.
+'use strict';
+
+const tabs = require('sdk/tabs');
+const {
+  getTabInfo
+} = require('./utils');
+
+function onTab(eventname, fn) {
+  tabs.on(eventname, function (jptab) {
+    var tabinfo = getTabInfo(jptab);
+    fn(tabinfo);
+  });
+}
+
+exports.on = onTab;
diff --git a/resources/lightbeam/lib/tab/utils.js b/lib/tab/utils.js
similarity index 69%
rename from resources/lightbeam/lib/tab/utils.js
rename to lib/tab/utils.js
index 8b6e087..1795843 100644
--- a/resources/lightbeam/lib/tab/utils.js
+++ b/lib/tab/utils.js
@@ -14,6 +14,7 @@ const {
 } = require('chrome');
 const tabs = require('sdk/tabs');
 const {
+  getTabForBrowser,
   getTabForContentWindow
 } = require('sdk/tabs/utils');
 
@@ -59,20 +60,8 @@ function getTabForChannel(aHttpChannel) {
     // fallback
     return getTabForChannel2(aHttpChannel);
   }
-  var win = loadContext.topWindow;
-  if (win) {
-    var tab = getTabForContentWindow(win);
-    // http://developer.mozilla.org/en/docs/XUL:tab
-    if (PrivateBrowsingUtils.isContentWindowPrivate) {
-      tab.isPrivate = PrivateBrowsingUtils.isContentWindowPrivate(win);
-    } else {
-      tab.isPrivate = PrivateBrowsingUtils.isWindowPrivate(win); // ESR 31
-    }
-    return tab;
-  } else {
-    // console.error('getTabForChannel() no topWindow found');
-    return null;
-  }
+
+  return getTabForLoadContext(loadContext);
 }
 
 // Special case in case we don't have a load context.
@@ -84,6 +73,53 @@ function getTabForChannel2(aChannel) {
   return tab;
 }
 
+// Get the tab for a LoadContext
+function getTabForLoadContext(aLoadContext) {
+    var browser = aLoadContext.topFrameElement;
+    if (browser) {
+      // Should work in e10s or in non-e10s Firefox >= 39
+      var tab = getTabForBrowser(browser);
+
+      if ( tab ) {
+        tab.isPrivate = PrivateBrowsingUtils.isBrowserPrivate(browser);
+        return tab;
+      }
+    }
+
+    // fallback
+    return getTabForLoadContext2(aLoadContext);
+}
+
+// Fallback for when we can't get the tab for a LoadContext via
+// topFrameElement. This happens in:
+//    * Firefox < 38, where topFrameElement is not defined when not
+//      in e10s.
+//    * Firefox 38, where topFrameElement is defined when not in e10s, but
+//      the getTabForBrowser call fails
+//    * other cases where the tab simply cannot be figured out. This function
+//      will return null in these cases.
+function getTabForLoadContext2(aLoadContext) {
+  try {
+    var win = aLoadContext.topWindow;
+    if (win) {
+      var tab = getTabForContentWindow(win);
+
+      // http://developer.mozilla.org/en/docs/XUL:tab
+      if (PrivateBrowsingUtils.isContentWindowPrivate) {
+        tab.isPrivate = PrivateBrowsingUtils.isContentWindowPrivate(win);
+      } else {
+        tab.isPrivate = PrivateBrowsingUtils.isWindowPrivate(win); // ESR 31
+      }
+
+      return tab;
+    }
+  } catch(err1) {
+    // requesting aLoadContext.topWindow when in e10s throws an error
+  }
+
+  return null;
+}
+
 function getLoadContext(aRequest) {
   try {
     // first try the notification callbacks
diff --git a/resources/lightbeam/lib/ui.js b/lib/ui.js
similarity index 98%
rename from resources/lightbeam/lib/ui.js
rename to lib/ui.js
index a1ca432..cd05122 100644
--- a/resources/lightbeam/lib/ui.js
+++ b/lib/ui.js
@@ -12,7 +12,7 @@ const {
 } = require("sdk/private-browsing");
 const {
   ContentPolicy
-} = require('shared/policy');
+} = require('lib/shared/policy');
 const ss = require('sdk/simple-storage');
 const prefs = require("sdk/simple-prefs").prefs;
 
@@ -230,7 +230,7 @@ function getLightbeamTab() {
 exports.getLightbeamTab = getLightbeamTab;
 
 // Set up the menu item to open the main UI page:
-var menuitem = require("shared/menuitems").Menuitem({
+var menuitem = require("lib/shared/menuitems").Menuitem({
   id: "lightbeam_openUITab",
   menuid: "menu_ToolsPopup",
   label: "Show Lightbeam",
diff --git a/locales.json b/locales.json
deleted file mode 100644
index 303e186..0000000
--- a/locales.json
+++ /dev/null
@@ -1 +0,0 @@
-{"locales": []}
diff --git a/options.xul b/options.xul
deleted file mode 100644
index 803dded..0000000
--- a/options.xul
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" ?>
-<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <setting data-jetpack-id="jid1-F9UJ2thwoAm5gQ at jetpack" pref="extensions.jid1-F9UJ2thwoAm5gQ at jetpack.defaultVisualization" pref-name="defaultVisualization" title="Default visualization" type="menulist">
-    Graph or list
-    <menulist>
-      <menupopup>
-        <menuitem label="Graph" value="graph"/>
-        <menuitem label="List" value="list"/>
-      </menupopup>
-    </menulist>
-  </setting>
-  <setting data-jetpack-id="jid1-F9UJ2thwoAm5gQ at jetpack" pref="extensions.jid1-F9UJ2thwoAm5gQ at jetpack.defaultFilter" pref-name="defaultFilter" title="Default filter" type="menulist">
-    Time period
-    <menulist>
-      <menupopup>
-        <menuitem label="Daily" value="daily"/>
-        <menuitem label="Weekly" value="weekly"/>
-        <menuitem label="Recent" value="recent"/>
-        <menuitem label="Last 10 sites" value="last10sites"/>
-      </menupopup>
-    </menulist>
-  </setting>
-</vbox>
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d07ebf2
--- /dev/null
+++ b/package.json
@@ -0,0 +1 @@
+{"preferences": [{"description": "Graph or list", "title": "Default visualization", "value": "graph", "type": "menulist", "options": [{"value": "graph", "label": "Graph"}, {"value": "list", "label": "List"}], "name": "defaultVisualization"}, {"description": "Time period", "title": "Default filter", "value": "daily", "type": "menulist", "options": [{"value": "daily", "label": "Daily"}, {"value": "weekly", "label": "Weekly"}, {"value": "recent", "label": "Recent"}, {"value": "last10sites", [...]
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/lightbeam.git



More information about the Pkg-mozext-commits mailing list