mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
462ab84b7f
--HG-- rename : mobile/LICENSE => mobile/xul/LICENSE rename : mobile/Makefile.in => mobile/xul/Makefile.in rename : mobile/app/Makefile.in => mobile/xul/app/Makefile.in rename : mobile/app/android/drawable-hdpi/alertaddons.png => mobile/xul/app/android/drawable-hdpi/alertaddons.png rename : mobile/app/android/drawable-hdpi/alertdownloads.png => mobile/xul/app/android/drawable-hdpi/alertdownloads.png rename : mobile/app/android/drawable/alertaddons.png => mobile/xul/app/android/drawable/alertaddons.png rename : mobile/app/android/drawable/alertdownloads.png => mobile/xul/app/android/drawable/alertdownloads.png rename : mobile/app/application.ini => mobile/xul/app/application.ini rename : mobile/app/macbuild/Contents/Info.plist.in => mobile/xul/app/macbuild/Contents/Info.plist.in rename : mobile/app/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in => mobile/xul/app/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in rename : mobile/app/maemo/toolbar_splash.png => mobile/xul/app/maemo/toolbar_splash.png rename : mobile/app/mobile.ico => mobile/xul/app/mobile.ico rename : mobile/app/mobile.js => mobile/xul/app/mobile.js rename : mobile/app/nsBrowserApp.cpp => mobile/xul/app/nsBrowserApp.cpp rename : mobile/app/profile/extensions/Makefile.in => mobile/xul/app/profile/extensions/Makefile.in rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/chrome.manifest => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/chrome.manifest rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/content.js => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/content/content.js rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.js => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.js rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.xul => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.xul rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/defaults/preferences/preferences.js => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/defaults/preferences/preferences.js rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/install.rdf.in => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/install.rdf.in rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/skin/beta-hdpi.png => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/skin/beta-hdpi.png rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/skin/dino-32.png => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/skin/dino-32.png rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/skin/happy-32.png => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/skin/happy-32.png rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/skin/overlay.css => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/skin/overlay.css rename : mobile/app/profile/extensions/feedback@mobile.mozilla.org/skin/sad-32.png => mobile/xul/app/profile/extensions/feedback@mobile.mozilla.org/skin/sad-32.png rename : mobile/branding/aurora/Makefile.in => mobile/xul/branding/aurora/Makefile.in rename : mobile/branding/aurora/android-resources.mn => mobile/xul/branding/aurora/android-resources.mn rename : mobile/branding/aurora/configure.sh => mobile/xul/branding/aurora/configure.sh rename : mobile/branding/aurora/content/Makefile.in => mobile/xul/branding/aurora/content/Makefile.in rename : mobile/branding/aurora/content/about.png => mobile/xul/branding/aurora/content/about.png rename : mobile/branding/aurora/content/favicon32.png => mobile/xul/branding/aurora/content/favicon32.png rename : mobile/branding/aurora/content/fennec_26x26.png => mobile/xul/branding/aurora/content/fennec_26x26.png rename : mobile/branding/aurora/content/fennec_40x40.png => mobile/xul/branding/aurora/content/fennec_40x40.png rename : mobile/branding/aurora/content/fennec_48x48.png => mobile/xul/branding/aurora/content/fennec_48x48.png rename : mobile/branding/aurora/content/fennec_72x72.png => mobile/xul/branding/aurora/content/fennec_72x72.png rename : mobile/branding/aurora/content/fennec_maemo_icon26.txt => mobile/xul/branding/aurora/content/fennec_maemo_icon26.txt rename : mobile/branding/aurora/content/fennec_scalable.png => mobile/xul/branding/aurora/content/fennec_scalable.png rename : mobile/branding/aurora/content/jar.mn => mobile/xul/branding/aurora/content/jar.mn rename : mobile/branding/aurora/content/logo.png => mobile/xul/branding/aurora/content/logo.png rename : mobile/branding/aurora/content/logoWordmark.png => mobile/xul/branding/aurora/content/logoWordmark.png rename : mobile/branding/aurora/content/splash.png => mobile/xul/branding/aurora/content/splash.png rename : mobile/branding/aurora/content/splash_v8.9.png => mobile/xul/branding/aurora/content/splash_v8.9.png rename : mobile/branding/aurora/content/splash_v9.9.png => mobile/xul/branding/aurora/content/splash_v9.9.png rename : mobile/branding/aurora/locales/Makefile.in => mobile/xul/branding/aurora/locales/Makefile.in rename : mobile/branding/aurora/locales/en-US/brand.dtd => mobile/xul/branding/aurora/locales/en-US/brand.dtd rename : mobile/branding/aurora/locales/en-US/brand.properties => mobile/xul/branding/aurora/locales/en-US/brand.properties rename : mobile/branding/aurora/locales/jar.mn => mobile/xul/branding/aurora/locales/jar.mn rename : mobile/branding/beta/Makefile.in => mobile/xul/branding/beta/Makefile.in rename : mobile/branding/beta/android-resources.mn => mobile/xul/branding/beta/android-resources.mn rename : mobile/branding/beta/configure.sh => mobile/xul/branding/beta/configure.sh rename : mobile/branding/beta/content/Makefile.in => mobile/xul/branding/beta/content/Makefile.in rename : mobile/branding/beta/content/about.png => mobile/xul/branding/beta/content/about.png rename : mobile/branding/beta/content/favicon32.png => mobile/xul/branding/beta/content/favicon32.png rename : mobile/branding/beta/content/fennec_26x26.png => mobile/xul/branding/beta/content/fennec_26x26.png rename : mobile/branding/beta/content/fennec_40x40.png => mobile/xul/branding/beta/content/fennec_40x40.png rename : mobile/branding/beta/content/fennec_48x48.png => mobile/xul/branding/beta/content/fennec_48x48.png rename : mobile/branding/beta/content/fennec_72x72.png => mobile/xul/branding/beta/content/fennec_72x72.png rename : mobile/branding/beta/content/fennec_maemo_icon26.txt => mobile/xul/branding/beta/content/fennec_maemo_icon26.txt rename : mobile/branding/beta/content/fennec_scalable.png => mobile/xul/branding/beta/content/fennec_scalable.png rename : mobile/branding/beta/content/jar.mn => mobile/xul/branding/beta/content/jar.mn rename : mobile/branding/beta/content/logo.png => mobile/xul/branding/beta/content/logo.png rename : mobile/branding/beta/content/logoWordmark.png => mobile/xul/branding/beta/content/logoWordmark.png rename : mobile/branding/beta/content/splash.png => mobile/xul/branding/beta/content/splash.png rename : mobile/branding/beta/content/splash_v8.9.png => mobile/xul/branding/beta/content/splash_v8.9.png rename : mobile/branding/beta/content/splash_v9.9.png => mobile/xul/branding/beta/content/splash_v9.9.png rename : mobile/branding/beta/locales/Makefile.in => mobile/xul/branding/beta/locales/Makefile.in rename : mobile/branding/beta/locales/en-US/brand.dtd => mobile/xul/branding/beta/locales/en-US/brand.dtd rename : mobile/branding/beta/locales/en-US/brand.properties => mobile/xul/branding/beta/locales/en-US/brand.properties rename : mobile/branding/beta/locales/jar.mn => mobile/xul/branding/beta/locales/jar.mn rename : mobile/branding/nightly/Makefile.in => mobile/xul/branding/nightly/Makefile.in rename : mobile/branding/nightly/android-resources.mn => mobile/xul/branding/nightly/android-resources.mn rename : mobile/branding/nightly/configure.sh => mobile/xul/branding/nightly/configure.sh rename : mobile/branding/nightly/content/Makefile.in => mobile/xul/branding/nightly/content/Makefile.in rename : mobile/branding/nightly/content/about.png => mobile/xul/branding/nightly/content/about.png rename : mobile/branding/nightly/content/favicon32.png => mobile/xul/branding/nightly/content/favicon32.png rename : mobile/branding/nightly/content/fennec_26x26.png => mobile/xul/branding/nightly/content/fennec_26x26.png rename : mobile/branding/nightly/content/fennec_40x40.png => mobile/xul/branding/nightly/content/fennec_40x40.png rename : mobile/branding/nightly/content/fennec_48x48.png => mobile/xul/branding/nightly/content/fennec_48x48.png rename : mobile/branding/nightly/content/fennec_72x72.png => mobile/xul/branding/nightly/content/fennec_72x72.png rename : mobile/branding/nightly/content/fennec_maemo_icon26.txt => mobile/xul/branding/nightly/content/fennec_maemo_icon26.txt rename : mobile/branding/nightly/content/fennec_scalable.png => mobile/xul/branding/nightly/content/fennec_scalable.png rename : mobile/branding/nightly/content/jar.mn => mobile/xul/branding/nightly/content/jar.mn rename : mobile/branding/nightly/content/logo.png => mobile/xul/branding/nightly/content/logo.png rename : mobile/branding/nightly/content/logoWordmark.png => mobile/xul/branding/nightly/content/logoWordmark.png rename : mobile/branding/nightly/content/splash.png => mobile/xul/branding/nightly/content/splash.png rename : mobile/branding/nightly/content/splash_v8.9.png => mobile/xul/branding/nightly/content/splash_v8.9.png rename : mobile/branding/nightly/content/splash_v9.9.png => mobile/xul/branding/nightly/content/splash_v9.9.png rename : mobile/branding/nightly/locales/Makefile.in => mobile/xul/branding/nightly/locales/Makefile.in rename : mobile/branding/nightly/locales/en-US/brand.dtd => mobile/xul/branding/nightly/locales/en-US/brand.dtd rename : mobile/branding/nightly/locales/en-US/brand.properties => mobile/xul/branding/nightly/locales/en-US/brand.properties rename : mobile/branding/nightly/locales/jar.mn => mobile/xul/branding/nightly/locales/jar.mn rename : mobile/branding/official/Makefile.in => mobile/xul/branding/official/Makefile.in rename : mobile/branding/official/android-resources.mn => mobile/xul/branding/official/android-resources.mn rename : mobile/branding/official/configure.sh => mobile/xul/branding/official/configure.sh rename : mobile/branding/official/content/Makefile.in => mobile/xul/branding/official/content/Makefile.in rename : mobile/branding/official/content/about.png => mobile/xul/branding/official/content/about.png rename : mobile/branding/official/content/favicon32.png => mobile/xul/branding/official/content/favicon32.png rename : mobile/branding/official/content/fennec_26x26.png => mobile/xul/branding/official/content/fennec_26x26.png rename : mobile/branding/official/content/fennec_40x40.png => mobile/xul/branding/official/content/fennec_40x40.png rename : mobile/branding/official/content/fennec_48x48.png => mobile/xul/branding/official/content/fennec_48x48.png rename : mobile/branding/official/content/fennec_72x72.png => mobile/xul/branding/official/content/fennec_72x72.png rename : mobile/branding/official/content/fennec_maemo_icon26.txt => mobile/xul/branding/official/content/fennec_maemo_icon26.txt rename : mobile/branding/official/content/fennec_scalable.png => mobile/xul/branding/official/content/fennec_scalable.png rename : mobile/branding/official/content/jar.mn => mobile/xul/branding/official/content/jar.mn rename : mobile/branding/official/content/logo.png => mobile/xul/branding/official/content/logo.png rename : mobile/branding/official/content/logoWordmark.png => mobile/xul/branding/official/content/logoWordmark.png rename : mobile/branding/official/content/splash.png => mobile/xul/branding/official/content/splash.png rename : mobile/branding/official/content/splash_v8.9.png => mobile/xul/branding/official/content/splash_v8.9.png rename : mobile/branding/official/content/splash_v9.9.png => mobile/xul/branding/official/content/splash_v9.9.png rename : mobile/branding/official/locales/Makefile.in => mobile/xul/branding/official/locales/Makefile.in rename : mobile/branding/official/locales/en-US/brand.dtd => mobile/xul/branding/official/locales/en-US/brand.dtd rename : mobile/branding/official/locales/en-US/brand.properties => mobile/xul/branding/official/locales/en-US/brand.properties rename : mobile/branding/official/locales/jar.mn => mobile/xul/branding/official/locales/jar.mn rename : mobile/branding/unofficial/Makefile.in => mobile/xul/branding/unofficial/Makefile.in rename : mobile/branding/unofficial/android-resources.mn => mobile/xul/branding/unofficial/android-resources.mn rename : mobile/branding/unofficial/configure.sh => mobile/xul/branding/unofficial/configure.sh rename : mobile/branding/unofficial/content/Makefile.in => mobile/xul/branding/unofficial/content/Makefile.in rename : mobile/branding/unofficial/content/about.png => mobile/xul/branding/unofficial/content/about.png rename : mobile/branding/unofficial/content/favicon32.png => mobile/xul/branding/unofficial/content/favicon32.png rename : mobile/branding/unofficial/content/fennec_26x26.png => mobile/xul/branding/unofficial/content/fennec_26x26.png rename : mobile/branding/unofficial/content/fennec_40x40.png => mobile/xul/branding/unofficial/content/fennec_40x40.png rename : mobile/branding/unofficial/content/fennec_48x48.png => mobile/xul/branding/unofficial/content/fennec_48x48.png rename : mobile/branding/unofficial/content/fennec_72x72.png => mobile/xul/branding/unofficial/content/fennec_72x72.png rename : mobile/branding/unofficial/content/fennec_maemo_icon26.txt => mobile/xul/branding/unofficial/content/fennec_maemo_icon26.txt rename : mobile/branding/unofficial/content/fennec_scalable.png => mobile/xul/branding/unofficial/content/fennec_scalable.png rename : mobile/branding/unofficial/content/jar.mn => mobile/xul/branding/unofficial/content/jar.mn rename : mobile/branding/unofficial/content/logo.png => mobile/xul/branding/unofficial/content/logo.png rename : mobile/branding/unofficial/content/logoWordmark.png => mobile/xul/branding/unofficial/content/logoWordmark.png rename : mobile/branding/unofficial/content/splash.png => mobile/xul/branding/unofficial/content/splash.png rename : mobile/branding/unofficial/content/splash_v8.9.png => mobile/xul/branding/unofficial/content/splash_v8.9.png rename : mobile/branding/unofficial/content/splash_v9.9.png => mobile/xul/branding/unofficial/content/splash_v9.9.png rename : mobile/branding/unofficial/locales/Makefile.in => mobile/xul/branding/unofficial/locales/Makefile.in rename : mobile/branding/unofficial/locales/en-US/brand.dtd => mobile/xul/branding/unofficial/locales/en-US/brand.dtd rename : mobile/branding/unofficial/locales/en-US/brand.properties => mobile/xul/branding/unofficial/locales/en-US/brand.properties rename : mobile/branding/unofficial/locales/jar.mn => mobile/xul/branding/unofficial/locales/jar.mn rename : mobile/build.mk => mobile/xul/build.mk rename : mobile/chrome/Makefile.in => mobile/xul/chrome/Makefile.in rename : mobile/chrome/content/AlertsHelper.js => mobile/xul/chrome/content/AlertsHelper.js rename : mobile/chrome/content/AnimatedZoom.js => mobile/xul/chrome/content/AnimatedZoom.js rename : mobile/chrome/content/AppMenu.js => mobile/xul/chrome/content/AppMenu.js rename : mobile/chrome/content/AwesomePanel.js => mobile/xul/chrome/content/AwesomePanel.js rename : mobile/chrome/content/BookmarkHelper.js => mobile/xul/chrome/content/BookmarkHelper.js rename : mobile/chrome/content/BookmarkPopup.js => mobile/xul/chrome/content/BookmarkPopup.js rename : mobile/chrome/content/CaptureDialog.js => mobile/xul/chrome/content/CaptureDialog.js rename : mobile/chrome/content/CaptureDialog.xul => mobile/xul/chrome/content/CaptureDialog.xul rename : mobile/chrome/content/CapturePickerUI.js => mobile/xul/chrome/content/CapturePickerUI.js rename : mobile/chrome/content/CharsetMenu.js => mobile/xul/chrome/content/CharsetMenu.js rename : mobile/chrome/content/ContentPopupHelper.js => mobile/xul/chrome/content/ContentPopupHelper.js rename : mobile/chrome/content/ContextCommands.js => mobile/xul/chrome/content/ContextCommands.js rename : mobile/chrome/content/IndexedDB.js => mobile/xul/chrome/content/IndexedDB.js rename : mobile/chrome/content/LoginManagerChild.js => mobile/xul/chrome/content/LoginManagerChild.js rename : mobile/chrome/content/MasterPasswordUI.js => mobile/xul/chrome/content/MasterPasswordUI.js rename : mobile/chrome/content/MenuListHelperUI.js => mobile/xul/chrome/content/MenuListHelperUI.js rename : mobile/chrome/content/OfflineApps.js => mobile/xul/chrome/content/OfflineApps.js rename : mobile/chrome/content/PageActions.js => mobile/xul/chrome/content/PageActions.js rename : mobile/chrome/content/SelectHelperUI.js => mobile/xul/chrome/content/SelectHelperUI.js rename : mobile/chrome/content/SelectionHelper.js => mobile/xul/chrome/content/SelectionHelper.js rename : mobile/chrome/content/SharingUI.js => mobile/xul/chrome/content/SharingUI.js rename : mobile/chrome/content/TabletSidebar.js => mobile/xul/chrome/content/TabletSidebar.js rename : mobile/chrome/content/TabsPopup.js => mobile/xul/chrome/content/TabsPopup.js rename : mobile/chrome/content/Util.js => mobile/xul/chrome/content/Util.js rename : mobile/chrome/content/WebappsUI.js => mobile/xul/chrome/content/WebappsUI.js rename : mobile/chrome/content/about.xhtml => mobile/xul/chrome/content/about.xhtml rename : mobile/chrome/content/aboutCertError.xhtml => mobile/xul/chrome/content/aboutCertError.xhtml rename : mobile/chrome/content/aboutHome.xhtml => mobile/xul/chrome/content/aboutHome.xhtml rename : mobile/chrome/content/aboutRights.xhtml => mobile/xul/chrome/content/aboutRights.xhtml rename : mobile/chrome/content/bindings.xml => mobile/xul/chrome/content/bindings.xml rename : mobile/chrome/content/bindings/arrowbox.xml => mobile/xul/chrome/content/bindings/arrowbox.xml rename : mobile/chrome/content/bindings/browser.js => mobile/xul/chrome/content/bindings/browser.js rename : mobile/chrome/content/bindings/browser.xml => mobile/xul/chrome/content/bindings/browser.xml rename : mobile/chrome/content/bindings/checkbox.xml => mobile/xul/chrome/content/bindings/checkbox.xml rename : mobile/chrome/content/bindings/console.xml => mobile/xul/chrome/content/bindings/console.xml rename : mobile/chrome/content/bindings/dialog.xml => mobile/xul/chrome/content/bindings/dialog.xml rename : mobile/chrome/content/bindings/downloads.xml => mobile/xul/chrome/content/bindings/downloads.xml rename : mobile/chrome/content/bindings/extensions.xml => mobile/xul/chrome/content/bindings/extensions.xml rename : mobile/chrome/content/bindings/pageaction.xml => mobile/xul/chrome/content/bindings/pageaction.xml rename : mobile/chrome/content/blockedSite.xhtml => mobile/xul/chrome/content/blockedSite.xhtml rename : mobile/chrome/content/browser-scripts.js => mobile/xul/chrome/content/browser-scripts.js rename : mobile/chrome/content/browser-ui.js => mobile/xul/chrome/content/browser-ui.js rename : mobile/chrome/content/browser.css => mobile/xul/chrome/content/browser.css rename : mobile/chrome/content/browser.js => mobile/xul/chrome/content/browser.js rename : mobile/chrome/content/browser.xul => mobile/xul/chrome/content/browser.xul rename : mobile/chrome/content/commandUtil.js => mobile/xul/chrome/content/commandUtil.js rename : mobile/chrome/content/common-ui.js => mobile/xul/chrome/content/common-ui.js rename : mobile/chrome/content/config.js => mobile/xul/chrome/content/config.js rename : mobile/chrome/content/config.xul => mobile/xul/chrome/content/config.xul rename : mobile/chrome/content/console.js => mobile/xul/chrome/content/console.js rename : mobile/chrome/content/content.js => mobile/xul/chrome/content/content.js rename : mobile/chrome/content/cursor.css => mobile/xul/chrome/content/cursor.css rename : mobile/chrome/content/downloads.js => mobile/xul/chrome/content/downloads.js rename : mobile/chrome/content/exceptions.js => mobile/xul/chrome/content/exceptions.js rename : mobile/chrome/content/extensions.js => mobile/xul/chrome/content/extensions.js rename : mobile/chrome/content/forms.js => mobile/xul/chrome/content/forms.js rename : mobile/chrome/content/fullscreen-video.js => mobile/xul/chrome/content/fullscreen-video.js rename : mobile/chrome/content/fullscreen-video.xhtml => mobile/xul/chrome/content/fullscreen-video.xhtml rename : mobile/chrome/content/input.js => mobile/xul/chrome/content/input.js rename : mobile/chrome/content/languages.properties => mobile/xul/chrome/content/languages.properties rename : mobile/chrome/content/localePicker.js => mobile/xul/chrome/content/localePicker.js rename : mobile/chrome/content/localePicker.xul => mobile/xul/chrome/content/localePicker.xul rename : mobile/chrome/content/masterPassword.xul => mobile/xul/chrome/content/masterPassword.xul rename : mobile/chrome/content/netError.xhtml => mobile/xul/chrome/content/netError.xhtml rename : mobile/chrome/content/notification.xml => mobile/xul/chrome/content/notification.xml rename : mobile/chrome/content/preferences.js => mobile/xul/chrome/content/preferences.js rename : mobile/chrome/content/prompt/alert.xul => mobile/xul/chrome/content/prompt/alert.xul rename : mobile/chrome/content/prompt/confirm.xul => mobile/xul/chrome/content/prompt/confirm.xul rename : mobile/chrome/content/prompt/prompt.js => mobile/xul/chrome/content/prompt/prompt.js rename : mobile/chrome/content/prompt/prompt.xul => mobile/xul/chrome/content/prompt/prompt.xul rename : mobile/chrome/content/prompt/promptPassword.xul => mobile/xul/chrome/content/prompt/promptPassword.xul rename : mobile/chrome/content/prompt/select.xul => mobile/xul/chrome/content/prompt/select.xul rename : mobile/chrome/content/removeMasterPassword.xul => mobile/xul/chrome/content/removeMasterPassword.xul rename : mobile/chrome/content/sanitize.js => mobile/xul/chrome/content/sanitize.js rename : mobile/chrome/content/share.xul => mobile/xul/chrome/content/share.xul rename : mobile/chrome/content/sync.js => mobile/xul/chrome/content/sync.js rename : mobile/chrome/content/tabs.xml => mobile/xul/chrome/content/tabs.xml rename : mobile/chrome/content/webapps.xul => mobile/xul/chrome/content/webapps.xul rename : mobile/chrome/jar.mn => mobile/xul/chrome/jar.mn rename : mobile/chrome/tests/Makefile.in => mobile/xul/chrome/tests/Makefile.in rename : mobile/chrome/tests/addons/browser_install1_1/bootstrap.js => mobile/xul/chrome/tests/addons/browser_install1_1/bootstrap.js rename : mobile/chrome/tests/addons/browser_install1_1/install.rdf => mobile/xul/chrome/tests/addons/browser_install1_1/install.rdf rename : mobile/chrome/tests/addons/browser_install1_2/install.rdf => mobile/xul/chrome/tests/addons/browser_install1_2/install.rdf rename : mobile/chrome/tests/addons/browser_install1_3/install.rdf => mobile/xul/chrome/tests/addons/browser_install1_3/install.rdf rename : mobile/chrome/tests/addons/browser_locale1/boostrap.js => mobile/xul/chrome/tests/addons/browser_locale1/boostrap.js rename : mobile/chrome/tests/addons/browser_locale1/chrome.manifest => mobile/xul/chrome/tests/addons/browser_locale1/chrome.manifest rename : mobile/chrome/tests/addons/browser_locale1/install.rdf => mobile/xul/chrome/tests/addons/browser_locale1/install.rdf rename : mobile/chrome/tests/browser_addons.js => mobile/xul/chrome/tests/browser_addons.js rename : mobile/chrome/tests/browser_addons_locales.js => mobile/xul/chrome/tests/browser_addons_locales.js rename : mobile/chrome/tests/browser_appmenu.js => mobile/xul/chrome/tests/browser_appmenu.js rename : mobile/chrome/tests/browser_autocomplete.html => mobile/xul/chrome/tests/browser_autocomplete.html rename : mobile/chrome/tests/browser_autocomplete.js => mobile/xul/chrome/tests/browser_autocomplete.js rename : mobile/chrome/tests/browser_autocompletesearch.js => mobile/xul/chrome/tests/browser_autocompletesearch.js rename : mobile/chrome/tests/browser_awesomescreen.js => mobile/xul/chrome/tests/browser_awesomescreen.js rename : mobile/chrome/tests/browser_blank_01.html => mobile/xul/chrome/tests/browser_blank_01.html rename : mobile/chrome/tests/browser_blank_02.html => mobile/xul/chrome/tests/browser_blank_02.html rename : mobile/chrome/tests/browser_blank_03.html => mobile/xul/chrome/tests/browser_blank_03.html rename : mobile/chrome/tests/browser_bookmarks.js => mobile/xul/chrome/tests/browser_bookmarks.js rename : mobile/chrome/tests/browser_bookmarks_star.js => mobile/xul/chrome/tests/browser_bookmarks_star.js rename : mobile/chrome/tests/browser_bookmarks_tags.js => mobile/xul/chrome/tests/browser_bookmarks_tags.js rename : mobile/chrome/tests/browser_click_content.html => mobile/xul/chrome/tests/browser_click_content.html rename : mobile/chrome/tests/browser_click_content.js => mobile/xul/chrome/tests/browser_click_content.js rename : mobile/chrome/tests/browser_contacts.js => mobile/xul/chrome/tests/browser_contacts.js rename : mobile/chrome/tests/browser_contentpopup.html => mobile/xul/chrome/tests/browser_contentpopup.html rename : mobile/chrome/tests/browser_contentpopup.js => mobile/xul/chrome/tests/browser_contentpopup.js rename : mobile/chrome/tests/browser_dragger.js => mobile/xul/chrome/tests/browser_dragger.js rename : mobile/chrome/tests/browser_escape.js => mobile/xul/chrome/tests/browser_escape.js rename : mobile/chrome/tests/browser_find.js => mobile/xul/chrome/tests/browser_find.js rename : mobile/chrome/tests/browser_focus.html => mobile/xul/chrome/tests/browser_focus.html rename : mobile/chrome/tests/browser_focus.js => mobile/xul/chrome/tests/browser_focus.js rename : mobile/chrome/tests/browser_forms.html => mobile/xul/chrome/tests/browser_forms.html rename : mobile/chrome/tests/browser_forms.js => mobile/xul/chrome/tests/browser_forms.js rename : mobile/chrome/tests/browser_formsZoom.html => mobile/xul/chrome/tests/browser_formsZoom.html rename : mobile/chrome/tests/browser_formsZoom.js => mobile/xul/chrome/tests/browser_formsZoom.js rename : mobile/chrome/tests/browser_history.js => mobile/xul/chrome/tests/browser_history.js rename : mobile/chrome/tests/browser_install.xml => mobile/xul/chrome/tests/browser_install.xml rename : mobile/chrome/tests/browser_localepicker.js => mobile/xul/chrome/tests/browser_localepicker.js rename : mobile/chrome/tests/browser_localepicker_escape.js => mobile/xul/chrome/tests/browser_localepicker_escape.js rename : mobile/chrome/tests/browser_localerepository.js => mobile/xul/chrome/tests/browser_localerepository.js rename : mobile/chrome/tests/browser_localerepository_buildid.js => mobile/xul/chrome/tests/browser_localerepository_buildid.js rename : mobile/chrome/tests/browser_localerepository_pref.js => mobile/xul/chrome/tests/browser_localerepository_pref.js rename : mobile/chrome/tests/browser_mainui.js => mobile/xul/chrome/tests/browser_mainui.js rename : mobile/chrome/tests/browser_navigation.js => mobile/xul/chrome/tests/browser_navigation.js rename : mobile/chrome/tests/browser_preferences_fulltoggle.js => mobile/xul/chrome/tests/browser_preferences_fulltoggle.js rename : mobile/chrome/tests/browser_preferences_text.js => mobile/xul/chrome/tests/browser_preferences_text.js rename : mobile/chrome/tests/browser_rect.js => mobile/xul/chrome/tests/browser_rect.js rename : mobile/chrome/tests/browser_rememberPassword.js => mobile/xul/chrome/tests/browser_rememberPassword.js rename : mobile/chrome/tests/browser_scroll.html => mobile/xul/chrome/tests/browser_scroll.html rename : mobile/chrome/tests/browser_scroll.js => mobile/xul/chrome/tests/browser_scroll.js rename : mobile/chrome/tests/browser_scrollbar.js => mobile/xul/chrome/tests/browser_scrollbar.js rename : mobile/chrome/tests/browser_scrollbar.sjs => mobile/xul/chrome/tests/browser_scrollbar.sjs rename : mobile/chrome/tests/browser_select.html => mobile/xul/chrome/tests/browser_select.html rename : mobile/chrome/tests/browser_select.js => mobile/xul/chrome/tests/browser_select.js rename : mobile/chrome/tests/browser_sessionstore.js => mobile/xul/chrome/tests/browser_sessionstore.js rename : mobile/chrome/tests/browser_sidebars.js => mobile/xul/chrome/tests/browser_sidebars.js rename : mobile/chrome/tests/browser_tabs.js => mobile/xul/chrome/tests/browser_tabs.js rename : mobile/chrome/tests/browser_tap_content.html => mobile/xul/chrome/tests/browser_tap_content.html rename : mobile/chrome/tests/browser_tap_contentedit.html => mobile/xul/chrome/tests/browser_tap_contentedit.html rename : mobile/chrome/tests/browser_tapping.js => mobile/xul/chrome/tests/browser_tapping.js rename : mobile/chrome/tests/browser_tapping_edit.js => mobile/xul/chrome/tests/browser_tapping_edit.js rename : mobile/chrome/tests/browser_test.js => mobile/xul/chrome/tests/browser_test.js rename : mobile/chrome/tests/browser_thumbnails.js => mobile/xul/chrome/tests/browser_thumbnails.js rename : mobile/chrome/tests/browser_title.sjs => mobile/xul/chrome/tests/browser_title.sjs rename : mobile/chrome/tests/browser_upgrade.rdf => mobile/xul/chrome/tests/browser_upgrade.rdf rename : mobile/chrome/tests/browser_viewport.js => mobile/xul/chrome/tests/browser_viewport.js rename : mobile/chrome/tests/browser_viewport.sjs => mobile/xul/chrome/tests/browser_viewport.sjs rename : mobile/chrome/tests/browser_vkb.js => mobile/xul/chrome/tests/browser_vkb.js rename : mobile/chrome/tests/head.js => mobile/xul/chrome/tests/head.js rename : mobile/chrome/tests/locales_list.sjs => mobile/xul/chrome/tests/locales_list.sjs rename : mobile/chrome/tests/mock_autocomplete.json => mobile/xul/chrome/tests/mock_autocomplete.json rename : mobile/chrome/tests/remote_autocomplete.js => mobile/xul/chrome/tests/remote_autocomplete.js rename : mobile/chrome/tests/remote_contentpopup.js => mobile/xul/chrome/tests/remote_contentpopup.js rename : mobile/chrome/tests/remote_focus.js => mobile/xul/chrome/tests/remote_focus.js rename : mobile/chrome/tests/remote_forms.js => mobile/xul/chrome/tests/remote_forms.js rename : mobile/chrome/tests/remote_formsZoom.js => mobile/xul/chrome/tests/remote_formsZoom.js rename : mobile/chrome/tests/remote_head.js => mobile/xul/chrome/tests/remote_head.js rename : mobile/chrome/tests/remote_vkb.js => mobile/xul/chrome/tests/remote_vkb.js rename : mobile/components/AboutRedirector.js => mobile/xul/components/AboutRedirector.js rename : mobile/components/AddonUpdateService.js => mobile/xul/components/AddonUpdateService.js rename : mobile/components/AlertsService.js => mobile/xul/components/AlertsService.js rename : mobile/components/AutoCompleteCache.js => mobile/xul/components/AutoCompleteCache.js rename : mobile/components/BlocklistPrompt.js => mobile/xul/components/BlocklistPrompt.js rename : mobile/components/BrowserCLH.js => mobile/xul/components/BrowserCLH.js rename : mobile/components/BrowserStartup.js => mobile/xul/components/BrowserStartup.js rename : mobile/components/CapturePicker.js => mobile/xul/components/CapturePicker.js rename : mobile/components/ContentDispatchChooser.js => mobile/xul/components/ContentDispatchChooser.js rename : mobile/components/ContentPermissionPrompt.js => mobile/xul/components/ContentPermissionPrompt.js rename : mobile/components/DirectoryProvider.js => mobile/xul/components/DirectoryProvider.js rename : mobile/components/DownloadManagerUI.js => mobile/xul/components/DownloadManagerUI.js rename : mobile/components/FormAutoComplete.js => mobile/xul/components/FormAutoComplete.js rename : mobile/components/HelperAppDialog.js => mobile/xul/components/HelperAppDialog.js rename : mobile/components/LoginManager.js => mobile/xul/components/LoginManager.js rename : mobile/components/LoginManagerPrompter.idl => mobile/xul/components/LoginManagerPrompter.idl rename : mobile/components/LoginManagerPrompter.js => mobile/xul/components/LoginManagerPrompter.js rename : mobile/components/Makefile.in => mobile/xul/components/Makefile.in rename : mobile/components/MobileComponents.manifest => mobile/xul/components/MobileComponents.manifest rename : mobile/components/PromptService.js => mobile/xul/components/PromptService.js rename : mobile/components/SafeBrowsing.js => mobile/xul/components/SafeBrowsing.js rename : mobile/components/SessionStore.idl => mobile/xul/components/SessionStore.idl rename : mobile/components/SessionStore.js => mobile/xul/components/SessionStore.js rename : mobile/components/Sidebar.js => mobile/xul/components/Sidebar.js rename : mobile/components/UpdatePrompt.js => mobile/xul/components/UpdatePrompt.js rename : mobile/components/XPIDialogService.js => mobile/xul/components/XPIDialogService.js rename : mobile/components/build/Makefile.in => mobile/xul/components/build/Makefile.in rename : mobile/components/build/nsBrowserComponents.h => mobile/xul/components/build/nsBrowserComponents.h rename : mobile/components/build/nsBrowserModule.cpp => mobile/xul/components/build/nsBrowserModule.cpp rename : mobile/components/build/nsIShellService.idl => mobile/xul/components/build/nsIShellService.idl rename : mobile/components/build/nsShellService.cpp => mobile/xul/components/build/nsShellService.cpp rename : mobile/components/build/nsShellService.h => mobile/xul/components/build/nsShellService.h rename : mobile/config/mozconfigs/android/debug => mobile/xul/config/mozconfigs/android/debug rename : mobile/config/mozconfigs/android/nightly => mobile/xul/config/mozconfigs/android/nightly rename : mobile/config/mozconfigs/linux-desktop/l10n-mozconfig => mobile/xul/config/mozconfigs/linux-desktop/l10n-mozconfig rename : mobile/config/mozconfigs/linux-desktop/nightly => mobile/xul/config/mozconfigs/linux-desktop/nightly rename : mobile/config/mozconfigs/macosx-desktop/l10n-mozconfig => mobile/xul/config/mozconfigs/macosx-desktop/l10n-mozconfig rename : mobile/config/mozconfigs/macosx-desktop/nightly => mobile/xul/config/mozconfigs/macosx-desktop/nightly rename : mobile/config/mozconfigs/win32-desktop/l10n-mozconfig => mobile/xul/config/mozconfigs/win32-desktop/l10n-mozconfig rename : mobile/config/mozconfigs/win32-desktop/nightly => mobile/xul/config/mozconfigs/win32-desktop/nightly rename : mobile/confvars.sh => mobile/xul/confvars.sh rename : mobile/installer/Makefile.in => mobile/xul/installer/Makefile.in rename : mobile/installer/debian/backup.in => mobile/xul/installer/debian/backup.in rename : mobile/installer/debian/changelog.in => mobile/xul/installer/debian/changelog.in rename : mobile/installer/debian/compat.in => mobile/xul/installer/debian/compat.in rename : mobile/installer/debian/control.in => mobile/xul/installer/debian/control.in rename : mobile/installer/debian/fennec-cud.sh.in => mobile/xul/installer/debian/fennec-cud.sh.in rename : mobile/installer/debian/fennec-rfs.sh.in => mobile/xul/installer/debian/fennec-rfs.sh.in rename : mobile/installer/debian/fennec.aegis.in => mobile/xul/installer/debian/fennec.aegis.in rename : mobile/installer/debian/fennec.conf.in => mobile/xul/installer/debian/fennec.conf.in rename : mobile/installer/debian/fennec.desktop.in => mobile/xul/installer/debian/fennec.desktop.in rename : mobile/installer/debian/fennec.links.in => mobile/xul/installer/debian/fennec.links.in rename : mobile/installer/debian/fennec.policy.in => mobile/xul/installer/debian/fennec.policy.in rename : mobile/installer/debian/fennec.postinst.in => mobile/xul/installer/debian/fennec.postinst.in rename : mobile/installer/debian/fennec.preinst.in => mobile/xul/installer/debian/fennec.preinst.in rename : mobile/installer/debian/fennec.prerm.in => mobile/xul/installer/debian/fennec.prerm.in rename : mobile/installer/debian/fennec.service.in => mobile/xul/installer/debian/fennec.service.in rename : mobile/installer/debian/files.in => mobile/xul/installer/debian/files.in rename : mobile/installer/debian/menu.in => mobile/xul/installer/debian/menu.in rename : mobile/installer/debian/restore.in => mobile/xul/installer/debian/restore.in rename : mobile/installer/mobile-l10n.js => mobile/xul/installer/mobile-l10n.js rename : mobile/installer/package-manifest.in => mobile/xul/installer/package-manifest.in rename : mobile/installer/removed-files.in => mobile/xul/installer/removed-files.in rename : mobile/locales/Makefile.in => mobile/xul/locales/Makefile.in rename : mobile/locales/all-locales => mobile/xul/locales/all-locales rename : mobile/locales/en-US/chrome/about.dtd => mobile/xul/locales/en-US/chrome/about.dtd rename : mobile/locales/en-US/chrome/aboutCertError.dtd => mobile/xul/locales/en-US/chrome/aboutCertError.dtd rename : mobile/locales/en-US/chrome/aboutHome.dtd => mobile/xul/locales/en-US/chrome/aboutHome.dtd rename : mobile/locales/en-US/chrome/browser.dtd => mobile/xul/locales/en-US/chrome/browser.dtd rename : mobile/locales/en-US/chrome/browser.properties => mobile/xul/locales/en-US/chrome/browser.properties rename : mobile/locales/en-US/chrome/checkbox.dtd => mobile/xul/locales/en-US/chrome/checkbox.dtd rename : mobile/locales/en-US/chrome/config.dtd => mobile/xul/locales/en-US/chrome/config.dtd rename : mobile/locales/en-US/chrome/feedback.dtd => mobile/xul/locales/en-US/chrome/feedback.dtd rename : mobile/locales/en-US/chrome/localepicker.properties => mobile/xul/locales/en-US/chrome/localepicker.properties rename : mobile/locales/en-US/chrome/notification.dtd => mobile/xul/locales/en-US/chrome/notification.dtd rename : mobile/locales/en-US/chrome/overrides/appstrings.properties => mobile/xul/locales/en-US/chrome/overrides/appstrings.properties rename : mobile/locales/en-US/chrome/overrides/netError.dtd => mobile/xul/locales/en-US/chrome/overrides/netError.dtd rename : mobile/locales/en-US/chrome/overrides/passwordmgr.properties => mobile/xul/locales/en-US/chrome/overrides/passwordmgr.properties rename : mobile/locales/en-US/chrome/phishing.dtd => mobile/xul/locales/en-US/chrome/phishing.dtd rename : mobile/locales/en-US/chrome/preferences.dtd => mobile/xul/locales/en-US/chrome/preferences.dtd rename : mobile/locales/en-US/chrome/prompt.dtd => mobile/xul/locales/en-US/chrome/prompt.dtd rename : mobile/locales/en-US/chrome/region.properties => mobile/xul/locales/en-US/chrome/region.properties rename : mobile/locales/en-US/chrome/sync.dtd => mobile/xul/locales/en-US/chrome/sync.dtd rename : mobile/locales/en-US/chrome/sync.properties => mobile/xul/locales/en-US/chrome/sync.properties rename : mobile/locales/en-US/chrome/webapps.dtd => mobile/xul/locales/en-US/chrome/webapps.dtd rename : mobile/locales/en-US/crashreporter/crashreporter-override.ini => mobile/xul/locales/en-US/crashreporter/crashreporter-override.ini rename : mobile/locales/en-US/defines.inc => mobile/xul/locales/en-US/defines.inc rename : mobile/locales/en-US/installer/setup.ini => mobile/xul/locales/en-US/installer/setup.ini rename : mobile/locales/en-US/mobile-l10n.js => mobile/xul/locales/en-US/mobile-l10n.js rename : mobile/locales/en-US/profile/bookmarks.inc => mobile/xul/locales/en-US/profile/bookmarks.inc rename : mobile/locales/en-US/searchplugins/amazondotcom.xml => mobile/xul/locales/en-US/searchplugins/amazondotcom.xml rename : mobile/locales/en-US/searchplugins/google.xml => mobile/xul/locales/en-US/searchplugins/google.xml rename : mobile/locales/en-US/searchplugins/list.txt => mobile/xul/locales/en-US/searchplugins/list.txt rename : mobile/locales/en-US/searchplugins/twitter.xml => mobile/xul/locales/en-US/searchplugins/twitter.xml rename : mobile/locales/en-US/searchplugins/wikipedia.xml => mobile/xul/locales/en-US/searchplugins/wikipedia.xml rename : mobile/locales/en-US/searchplugins/yahoo.xml => mobile/xul/locales/en-US/searchplugins/yahoo.xml rename : mobile/locales/en-US/updater/updater.ini => mobile/xul/locales/en-US/updater/updater.ini rename : mobile/locales/filter.py => mobile/xul/locales/filter.py rename : mobile/locales/generic/install.rdf => mobile/xul/locales/generic/install.rdf rename : mobile/locales/generic/profile/bookmarks.json.in => mobile/xul/locales/generic/profile/bookmarks.json.in rename : mobile/locales/jar.mn => mobile/xul/locales/jar.mn rename : mobile/locales/l10n-central.ini => mobile/xul/locales/l10n-central.ini rename : mobile/locales/l10n-mozilla-1.9.2.ini => mobile/xul/locales/l10n-mozilla-1.9.2.ini rename : mobile/locales/l10n-mozilla-2.0.ini => mobile/xul/locales/l10n-mozilla-2.0.ini rename : mobile/locales/l10n.ini => mobile/xul/locales/l10n.ini rename : mobile/locales/maemo-locales => mobile/xul/locales/maemo-locales rename : mobile/makefiles.sh => mobile/xul/makefiles.sh rename : mobile/modules/LocaleRepository.jsm => mobile/xul/modules/LocaleRepository.jsm rename : mobile/modules/Makefile.in => mobile/xul/modules/Makefile.in rename : mobile/modules/contacts.jsm => mobile/xul/modules/contacts.jsm rename : mobile/modules/linuxTypes.jsm => mobile/xul/modules/linuxTypes.jsm rename : mobile/modules/video.jsm => mobile/xul/modules/video.jsm rename : mobile/themes/core/Makefile.in => mobile/xul/themes/core/Makefile.in rename : mobile/themes/core/about.css => mobile/xul/themes/core/about.css rename : mobile/themes/core/aboutHome.css => mobile/xul/themes/core/aboutHome.css rename : mobile/themes/core/aboutPage.css => mobile/xul/themes/core/aboutPage.css rename : mobile/themes/core/browser.css => mobile/xul/themes/core/browser.css rename : mobile/themes/core/config.css => mobile/xul/themes/core/config.css rename : mobile/themes/core/content.css => mobile/xul/themes/core/content.css rename : mobile/themes/core/defines.inc => mobile/xul/themes/core/defines.inc rename : mobile/themes/core/forms.css => mobile/xul/themes/core/forms.css rename : mobile/themes/core/gingerbread/browser.css => mobile/xul/themes/core/gingerbread/browser.css rename : mobile/themes/core/gingerbread/content.css => mobile/xul/themes/core/gingerbread/content.css rename : mobile/themes/core/gingerbread/defines.inc => mobile/xul/themes/core/gingerbread/defines.inc rename : mobile/themes/core/gingerbread/forms.css => mobile/xul/themes/core/gingerbread/forms.css rename : mobile/themes/core/gingerbread/images/aboutBackground.jpg => mobile/xul/themes/core/gingerbread/images/aboutBackground.jpg rename : mobile/themes/core/gingerbread/images/addons-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/addons-default-hdpi.png rename : mobile/themes/core/gingerbread/images/alert-addons-30.png => mobile/xul/themes/core/gingerbread/images/alert-addons-30.png rename : mobile/themes/core/gingerbread/images/alert-downloads-30.png => mobile/xul/themes/core/gingerbread/images/alert-downloads-30.png rename : mobile/themes/core/gingerbread/images/allpages-48.png => mobile/xul/themes/core/gingerbread/images/allpages-48.png rename : mobile/themes/core/gingerbread/images/appmenu-active-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-active-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-addons-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-addons-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-downloads-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-downloads-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-findinpage-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-findinpage-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-more-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-more-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-preferences-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-preferences-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-share-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-share-hdpi.png rename : mobile/themes/core/gingerbread/images/appmenu-site-hdpi.png => mobile/xul/themes/core/gingerbread/images/appmenu-site-hdpi.png rename : mobile/themes/core/gingerbread/images/arrowbox-down.png => mobile/xul/themes/core/gingerbread/images/arrowbox-down.png rename : mobile/themes/core/gingerbread/images/arrowbox-horiz.png => mobile/xul/themes/core/gingerbread/images/arrowbox-horiz.png rename : mobile/themes/core/gingerbread/images/arrowbox-up.png => mobile/xul/themes/core/gingerbread/images/arrowbox-up.png rename : mobile/themes/core/gingerbread/images/arrowdown-16.png => mobile/xul/themes/core/gingerbread/images/arrowdown-16.png rename : mobile/themes/core/gingerbread/images/arrowdowndark-16.png => mobile/xul/themes/core/gingerbread/images/arrowdowndark-16.png rename : mobile/themes/core/gingerbread/images/arrowleft-16.png => mobile/xul/themes/core/gingerbread/images/arrowleft-16.png rename : mobile/themes/core/gingerbread/images/arrowleftdark-16.png => mobile/xul/themes/core/gingerbread/images/arrowleftdark-16.png rename : mobile/themes/core/gingerbread/images/arrowright-16.png => mobile/xul/themes/core/gingerbread/images/arrowright-16.png rename : mobile/themes/core/gingerbread/images/arrowrightdark-16.png => mobile/xul/themes/core/gingerbread/images/arrowrightdark-16.png rename : mobile/themes/core/gingerbread/images/arrowup-16.png => mobile/xul/themes/core/gingerbread/images/arrowup-16.png rename : mobile/themes/core/gingerbread/images/arrowupdark-16.png => mobile/xul/themes/core/gingerbread/images/arrowupdark-16.png rename : mobile/themes/core/gingerbread/images/autocomplete-bookmarked-hdpi.png => mobile/xul/themes/core/gingerbread/images/autocomplete-bookmarked-hdpi.png rename : mobile/themes/core/gingerbread/images/autocomplete-desktop-hdpi.png => mobile/xul/themes/core/gingerbread/images/autocomplete-desktop-hdpi.png rename : mobile/themes/core/gingerbread/images/autocomplete-search-hdpi.png => mobile/xul/themes/core/gingerbread/images/autocomplete-search-hdpi.png rename : mobile/themes/core/gingerbread/images/back-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/back-default-hdpi.png rename : mobile/themes/core/gingerbread/images/bookmark-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/bookmark-default-hdpi.png rename : mobile/themes/core/gingerbread/images/bookmark-starred-hdpi.png => mobile/xul/themes/core/gingerbread/images/bookmark-starred-hdpi.png rename : mobile/themes/core/gingerbread/images/bookmarks-48.png => mobile/xul/themes/core/gingerbread/images/bookmarks-48.png rename : mobile/themes/core/gingerbread/images/browseaddons-bg.jpg => mobile/xul/themes/core/gingerbread/images/browseaddons-bg.jpg rename : mobile/themes/core/gingerbread/images/button-bg.png => mobile/xul/themes/core/gingerbread/images/button-bg.png rename : mobile/themes/core/gingerbread/images/check-30.png => mobile/xul/themes/core/gingerbread/images/check-30.png rename : mobile/themes/core/gingerbread/images/check-selected-hdpi.png => mobile/xul/themes/core/gingerbread/images/check-selected-hdpi.png rename : mobile/themes/core/gingerbread/images/check-unselected-hdpi.png => mobile/xul/themes/core/gingerbread/images/check-unselected-hdpi.png rename : mobile/themes/core/gingerbread/images/close-active-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-active-hdpi.png rename : mobile/themes/core/gingerbread/images/close-active-tablet-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-active-tablet-hdpi.png rename : mobile/themes/core/gingerbread/images/close-background-hdpi-rtl.png => mobile/xul/themes/core/gingerbread/images/close-background-hdpi-rtl.png rename : mobile/themes/core/gingerbread/images/close-background-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-background-hdpi.png rename : mobile/themes/core/gingerbread/images/close-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-default-hdpi.png rename : mobile/themes/core/gingerbread/images/close-default-tablet-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-default-tablet-hdpi.png rename : mobile/themes/core/gingerbread/images/close-inactive-tab-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-inactive-tab-hdpi.png rename : mobile/themes/core/gingerbread/images/close-inactive-tab-tablet-hdpi.png => mobile/xul/themes/core/gingerbread/images/close-inactive-tab-tablet-hdpi.png rename : mobile/themes/core/gingerbread/images/console-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/console-default-hdpi.png rename : mobile/themes/core/gingerbread/images/downloads-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/downloads-default-hdpi.png rename : mobile/themes/core/gingerbread/images/dropmarker-hdpi.png => mobile/xul/themes/core/gingerbread/images/dropmarker-hdpi.png rename : mobile/themes/core/gingerbread/images/endcap-active-bg.png => mobile/xul/themes/core/gingerbread/images/endcap-active-bg.png rename : mobile/themes/core/gingerbread/images/endcap-default-bg.png => mobile/xul/themes/core/gingerbread/images/endcap-default-bg.png rename : mobile/themes/core/gingerbread/images/endcap-ev-active-bg.png => mobile/xul/themes/core/gingerbread/images/endcap-ev-active-bg.png rename : mobile/themes/core/gingerbread/images/endcap-ev-default-bg.png => mobile/xul/themes/core/gingerbread/images/endcap-ev-default-bg.png rename : mobile/themes/core/gingerbread/images/endcap-ssl-active-bg.png => mobile/xul/themes/core/gingerbread/images/endcap-ssl-active-bg.png rename : mobile/themes/core/gingerbread/images/endcap-ssl-default-bg.png => mobile/xul/themes/core/gingerbread/images/endcap-ssl-default-bg.png rename : mobile/themes/core/gingerbread/images/errorpage-larry-black.png => mobile/xul/themes/core/gingerbread/images/errorpage-larry-black.png rename : mobile/themes/core/gingerbread/images/errorpage-larry-white.png => mobile/xul/themes/core/gingerbread/images/errorpage-larry-white.png rename : mobile/themes/core/gingerbread/images/errorpage-warning.png => mobile/xul/themes/core/gingerbread/images/errorpage-warning.png rename : mobile/themes/core/gingerbread/images/favicon-default-32.png => mobile/xul/themes/core/gingerbread/images/favicon-default-32.png rename : mobile/themes/core/gingerbread/images/folder-32.png => mobile/xul/themes/core/gingerbread/images/folder-32.png rename : mobile/themes/core/gingerbread/images/forward-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/forward-default-hdpi.png rename : mobile/themes/core/gingerbread/images/handle-end.png => mobile/xul/themes/core/gingerbread/images/handle-end.png rename : mobile/themes/core/gingerbread/images/handle-start.png => mobile/xul/themes/core/gingerbread/images/handle-start.png rename : mobile/themes/core/gingerbread/images/history-48.png => mobile/xul/themes/core/gingerbread/images/history-48.png rename : mobile/themes/core/gingerbread/images/identity-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/identity-default-hdpi.png rename : mobile/themes/core/gingerbread/images/identity-ev-hdpi.png => mobile/xul/themes/core/gingerbread/images/identity-ev-hdpi.png rename : mobile/themes/core/gingerbread/images/identity-ssl-hdpi.png => mobile/xul/themes/core/gingerbread/images/identity-ssl-hdpi.png rename : mobile/themes/core/gingerbread/images/locked-hdpi.png => mobile/xul/themes/core/gingerbread/images/locked-hdpi.png rename : mobile/themes/core/gingerbread/images/mute-hdpi.png => mobile/xul/themes/core/gingerbread/images/mute-hdpi.png rename : mobile/themes/core/gingerbread/images/navigation-magnifier-30.png => mobile/xul/themes/core/gingerbread/images/navigation-magnifier-30.png rename : mobile/themes/core/gingerbread/images/newtab-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/newtab-default-hdpi.png rename : mobile/themes/core/gingerbread/images/newtab-default-tablet-hdpi.png => mobile/xul/themes/core/gingerbread/images/newtab-default-tablet-hdpi.png rename : mobile/themes/core/gingerbread/images/next-disabled-hdpi.png => mobile/xul/themes/core/gingerbread/images/next-disabled-hdpi.png rename : mobile/themes/core/gingerbread/images/next-hdpi.png => mobile/xul/themes/core/gingerbread/images/next-hdpi.png rename : mobile/themes/core/gingerbread/images/pause-hdpi.png => mobile/xul/themes/core/gingerbread/images/pause-hdpi.png rename : mobile/themes/core/gingerbread/images/play-hdpi.png => mobile/xul/themes/core/gingerbread/images/play-hdpi.png rename : mobile/themes/core/gingerbread/images/popup-selected-item-hdpi.png => mobile/xul/themes/core/gingerbread/images/popup-selected-item-hdpi.png rename : mobile/themes/core/gingerbread/images/preferences-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/preferences-default-hdpi.png rename : mobile/themes/core/gingerbread/images/previous-disabled-hdpi.png => mobile/xul/themes/core/gingerbread/images/previous-disabled-hdpi.png rename : mobile/themes/core/gingerbread/images/previous-hdpi.png => mobile/xul/themes/core/gingerbread/images/previous-hdpi.png rename : mobile/themes/core/gingerbread/images/radio-selected-hdpi.png => mobile/xul/themes/core/gingerbread/images/radio-selected-hdpi.png rename : mobile/themes/core/gingerbread/images/radio-unselected-hdpi.png => mobile/xul/themes/core/gingerbread/images/radio-unselected-hdpi.png rename : mobile/themes/core/gingerbread/images/reload-hdpi.png => mobile/xul/themes/core/gingerbread/images/reload-hdpi.png rename : mobile/themes/core/gingerbread/images/remotetabs-32.png => mobile/xul/themes/core/gingerbread/images/remotetabs-32.png rename : mobile/themes/core/gingerbread/images/remotetabs-48.png => mobile/xul/themes/core/gingerbread/images/remotetabs-48.png rename : mobile/themes/core/gingerbread/images/row-header-bg.png => mobile/xul/themes/core/gingerbread/images/row-header-bg.png rename : mobile/themes/core/gingerbread/images/scrubber-hdpi.png => mobile/xul/themes/core/gingerbread/images/scrubber-hdpi.png rename : mobile/themes/core/gingerbread/images/search-clear-30.png => mobile/xul/themes/core/gingerbread/images/search-clear-30.png rename : mobile/themes/core/gingerbread/images/search-glass-30.png => mobile/xul/themes/core/gingerbread/images/search-glass-30.png rename : mobile/themes/core/gingerbread/images/settings-default-hdpi.png => mobile/xul/themes/core/gingerbread/images/settings-default-hdpi.png rename : mobile/themes/core/gingerbread/images/stop-hdpi.png => mobile/xul/themes/core/gingerbread/images/stop-hdpi.png rename : mobile/themes/core/gingerbread/images/tab-active-hdpi.png => mobile/xul/themes/core/gingerbread/images/tab-active-hdpi.png rename : mobile/themes/core/gingerbread/images/tab-closed-hdpi.png => mobile/xul/themes/core/gingerbread/images/tab-closed-hdpi.png rename : mobile/themes/core/gingerbread/images/tab-inactive-hdpi.png => mobile/xul/themes/core/gingerbread/images/tab-inactive-hdpi.png rename : mobile/themes/core/gingerbread/images/tab-reopen-hdpi.png => mobile/xul/themes/core/gingerbread/images/tab-reopen-hdpi.png rename : mobile/themes/core/gingerbread/images/tab-reopen-tablet-hdpi.png => mobile/xul/themes/core/gingerbread/images/tab-reopen-tablet-hdpi.png rename : mobile/themes/core/gingerbread/images/task-back-hdpi.png => mobile/xul/themes/core/gingerbread/images/task-back-hdpi.png rename : mobile/themes/core/gingerbread/images/task-back-rtl-hdpi.png => mobile/xul/themes/core/gingerbread/images/task-back-rtl-hdpi.png rename : mobile/themes/core/gingerbread/images/task-close-hdpi.png => mobile/xul/themes/core/gingerbread/images/task-close-hdpi.png rename : mobile/themes/core/gingerbread/images/task-switch-hdpi.png => mobile/xul/themes/core/gingerbread/images/task-switch-hdpi.png rename : mobile/themes/core/gingerbread/images/textbox-bg.png => mobile/xul/themes/core/gingerbread/images/textbox-bg.png rename : mobile/themes/core/gingerbread/images/throbber.png => mobile/xul/themes/core/gingerbread/images/throbber.png rename : mobile/themes/core/gingerbread/images/toggle-off.png => mobile/xul/themes/core/gingerbread/images/toggle-off.png rename : mobile/themes/core/gingerbread/images/toggle-on.png => mobile/xul/themes/core/gingerbread/images/toggle-on.png rename : mobile/themes/core/gingerbread/images/unlocked-hdpi.png => mobile/xul/themes/core/gingerbread/images/unlocked-hdpi.png rename : mobile/themes/core/gingerbread/images/unmute-hdpi.png => mobile/xul/themes/core/gingerbread/images/unmute-hdpi.png rename : mobile/themes/core/gingerbread/images/urlbar-bg.png => mobile/xul/themes/core/gingerbread/images/urlbar-bg.png rename : mobile/themes/core/gingerbread/localePicker.css => mobile/xul/themes/core/gingerbread/localePicker.css rename : mobile/themes/core/gingerbread/platform.css => mobile/xul/themes/core/gingerbread/platform.css rename : mobile/themes/core/header.css => mobile/xul/themes/core/header.css rename : mobile/themes/core/honeycomb/browser.css => mobile/xul/themes/core/honeycomb/browser.css rename : mobile/themes/core/honeycomb/defines.inc => mobile/xul/themes/core/honeycomb/defines.inc rename : mobile/themes/core/honeycomb/forms.css => mobile/xul/themes/core/honeycomb/forms.css rename : mobile/themes/core/honeycomb/images/aboutBackground.jpg => mobile/xul/themes/core/honeycomb/images/aboutBackground.jpg rename : mobile/themes/core/honeycomb/images/addons-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/addons-default-hdpi.png rename : mobile/themes/core/honeycomb/images/alert-addons-30.png => mobile/xul/themes/core/honeycomb/images/alert-addons-30.png rename : mobile/themes/core/honeycomb/images/alert-downloads-30.png => mobile/xul/themes/core/honeycomb/images/alert-downloads-30.png rename : mobile/themes/core/honeycomb/images/allpages-48.png => mobile/xul/themes/core/honeycomb/images/allpages-48.png rename : mobile/themes/core/honeycomb/images/appmenu-active-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-active-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-addons-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-addons-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-addsearch-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-addsearch-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-downloads-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-downloads-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-findinpage-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-findinpage-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-more-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-more-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-preferences-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-preferences-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-saveas-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-saveas-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-share-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-share-hdpi.png rename : mobile/themes/core/honeycomb/images/appmenu-site-hdpi.png => mobile/xul/themes/core/honeycomb/images/appmenu-site-hdpi.png rename : mobile/themes/core/honeycomb/images/arrowbox-down.png => mobile/xul/themes/core/honeycomb/images/arrowbox-down.png rename : mobile/themes/core/honeycomb/images/arrowbox-horiz.png => mobile/xul/themes/core/honeycomb/images/arrowbox-horiz.png rename : mobile/themes/core/honeycomb/images/arrowbox-up.png => mobile/xul/themes/core/honeycomb/images/arrowbox-up.png rename : mobile/themes/core/honeycomb/images/arrowdown-16.png => mobile/xul/themes/core/honeycomb/images/arrowdown-16.png rename : mobile/themes/core/honeycomb/images/arrowdowndark-16.png => mobile/xul/themes/core/honeycomb/images/arrowdowndark-16.png rename : mobile/themes/core/honeycomb/images/arrowleft-16.png => mobile/xul/themes/core/honeycomb/images/arrowleft-16.png rename : mobile/themes/core/honeycomb/images/arrowleftdark-16.png => mobile/xul/themes/core/honeycomb/images/arrowleftdark-16.png rename : mobile/themes/core/honeycomb/images/arrowright-16.png => mobile/xul/themes/core/honeycomb/images/arrowright-16.png rename : mobile/themes/core/honeycomb/images/arrowrightdark-16.png => mobile/xul/themes/core/honeycomb/images/arrowrightdark-16.png rename : mobile/themes/core/honeycomb/images/arrowup-16.png => mobile/xul/themes/core/honeycomb/images/arrowup-16.png rename : mobile/themes/core/honeycomb/images/arrowupdark-16.png => mobile/xul/themes/core/honeycomb/images/arrowupdark-16.png rename : mobile/themes/core/honeycomb/images/autocomplete-all-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-all-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-all-selected-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-all-selected-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-bookmarked-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-bookmarked-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-bookmarked-selected-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-bookmarked-selected-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-desktop-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-desktop-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-desktop-selected-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-desktop-selected-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-history-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-history-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-history-selected-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-history-selected-hdpi.png rename : mobile/themes/core/honeycomb/images/autocomplete-search-hdpi.png => mobile/xul/themes/core/honeycomb/images/autocomplete-search-hdpi.png rename : mobile/themes/core/honeycomb/images/back-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/back-default-hdpi.png rename : mobile/themes/core/honeycomb/images/bookmark-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/bookmark-default-hdpi.png rename : mobile/themes/core/honeycomb/images/bookmark-starred-hdpi.png => mobile/xul/themes/core/honeycomb/images/bookmark-starred-hdpi.png rename : mobile/themes/core/honeycomb/images/bookmarks-48.png => mobile/xul/themes/core/honeycomb/images/bookmarks-48.png rename : mobile/themes/core/honeycomb/images/browseaddons-bg.jpg => mobile/xul/themes/core/honeycomb/images/browseaddons-bg.jpg rename : mobile/themes/core/honeycomb/images/button-bg.png => mobile/xul/themes/core/honeycomb/images/button-bg.png rename : mobile/themes/core/honeycomb/images/check-selected-hdpi.png => mobile/xul/themes/core/honeycomb/images/check-selected-hdpi.png rename : mobile/themes/core/honeycomb/images/check-selected-tap-hdpi.png => mobile/xul/themes/core/honeycomb/images/check-selected-tap-hdpi.png rename : mobile/themes/core/honeycomb/images/check-unselected-hdpi.png => mobile/xul/themes/core/honeycomb/images/check-unselected-hdpi.png rename : mobile/themes/core/honeycomb/images/check-unselected-tap-hdpi.png => mobile/xul/themes/core/honeycomb/images/check-unselected-tap-hdpi.png rename : mobile/themes/core/honeycomb/images/close-active-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-active-hdpi.png rename : mobile/themes/core/honeycomb/images/close-active-tablet-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-active-tablet-hdpi.png rename : mobile/themes/core/honeycomb/images/close-background-hdpi-rtl.png => mobile/xul/themes/core/honeycomb/images/close-background-hdpi-rtl.png rename : mobile/themes/core/honeycomb/images/close-background-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-background-hdpi.png rename : mobile/themes/core/honeycomb/images/close-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-default-hdpi.png rename : mobile/themes/core/honeycomb/images/close-default-tablet-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-default-tablet-hdpi.png rename : mobile/themes/core/honeycomb/images/close-inactive-tab-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-inactive-tab-hdpi.png rename : mobile/themes/core/honeycomb/images/close-inactive-tab-tablet-hdpi.png => mobile/xul/themes/core/honeycomb/images/close-inactive-tab-tablet-hdpi.png rename : mobile/themes/core/honeycomb/images/console-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/console-default-hdpi.png rename : mobile/themes/core/honeycomb/images/downloads-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/downloads-default-hdpi.png rename : mobile/themes/core/honeycomb/images/dropmarker-hdpi.png => mobile/xul/themes/core/honeycomb/images/dropmarker-hdpi.png rename : mobile/themes/core/honeycomb/images/errorpage-larry-black.png => mobile/xul/themes/core/honeycomb/images/errorpage-larry-black.png rename : mobile/themes/core/honeycomb/images/errorpage-larry-white.png => mobile/xul/themes/core/honeycomb/images/errorpage-larry-white.png rename : mobile/themes/core/honeycomb/images/errorpage-warning.png => mobile/xul/themes/core/honeycomb/images/errorpage-warning.png rename : mobile/themes/core/honeycomb/images/favicon-default-32.png => mobile/xul/themes/core/honeycomb/images/favicon-default-32.png rename : mobile/themes/core/honeycomb/images/folder-32.png => mobile/xul/themes/core/honeycomb/images/folder-32.png rename : mobile/themes/core/honeycomb/images/forward-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/forward-default-hdpi.png rename : mobile/themes/core/honeycomb/images/history-48.png => mobile/xul/themes/core/honeycomb/images/history-48.png rename : mobile/themes/core/honeycomb/images/identity-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/identity-default-hdpi.png rename : mobile/themes/core/honeycomb/images/identity-ev-hdpi.png => mobile/xul/themes/core/honeycomb/images/identity-ev-hdpi.png rename : mobile/themes/core/honeycomb/images/identity-ssl-hdpi.png => mobile/xul/themes/core/honeycomb/images/identity-ssl-hdpi.png rename : mobile/themes/core/honeycomb/images/locked-hdpi.png => mobile/xul/themes/core/honeycomb/images/locked-hdpi.png rename : mobile/themes/core/honeycomb/images/menu-hdpi.png => mobile/xul/themes/core/honeycomb/images/menu-hdpi.png rename : mobile/themes/core/honeycomb/images/menu-top-insideglow-green.png => mobile/xul/themes/core/honeycomb/images/menu-top-insideglow-green.png rename : mobile/themes/core/honeycomb/images/menu-top-insideglow-grey.png => mobile/xul/themes/core/honeycomb/images/menu-top-insideglow-grey.png rename : mobile/themes/core/honeycomb/images/menu-top-insideglow.png => mobile/xul/themes/core/honeycomb/images/menu-top-insideglow.png rename : mobile/themes/core/honeycomb/images/mute-hdpi.png => mobile/xul/themes/core/honeycomb/images/mute-hdpi.png rename : mobile/themes/core/honeycomb/images/navigation-magnifier-30.png => mobile/xul/themes/core/honeycomb/images/navigation-magnifier-30.png rename : mobile/themes/core/honeycomb/images/newtab-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/newtab-default-hdpi.png rename : mobile/themes/core/honeycomb/images/newtab-default-tablet-hdpi.png => mobile/xul/themes/core/honeycomb/images/newtab-default-tablet-hdpi.png rename : mobile/themes/core/honeycomb/images/newtab-tabmenu-tablet-hdpi.png => mobile/xul/themes/core/honeycomb/images/newtab-tabmenu-tablet-hdpi.png rename : mobile/themes/core/honeycomb/images/next-disabled-hdpi.png => mobile/xul/themes/core/honeycomb/images/next-disabled-hdpi.png rename : mobile/themes/core/honeycomb/images/next-hdpi.png => mobile/xul/themes/core/honeycomb/images/next-hdpi.png rename : mobile/themes/core/honeycomb/images/panelrow-active-hdpi.png => mobile/xul/themes/core/honeycomb/images/panelrow-active-hdpi.png rename : mobile/themes/core/honeycomb/images/panelrow-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/panelrow-default-hdpi.png rename : mobile/themes/core/honeycomb/images/panelrow-selected-hdpi.png => mobile/xul/themes/core/honeycomb/images/panelrow-selected-hdpi.png rename : mobile/themes/core/honeycomb/images/pause-hdpi.png => mobile/xul/themes/core/honeycomb/images/pause-hdpi.png rename : mobile/themes/core/honeycomb/images/play-hdpi.png => mobile/xul/themes/core/honeycomb/images/play-hdpi.png rename : mobile/themes/core/honeycomb/images/popup-bg-hdpi.png => mobile/xul/themes/core/honeycomb/images/popup-bg-hdpi.png rename : mobile/themes/core/honeycomb/images/popup-selected-item-hdpi.png => mobile/xul/themes/core/honeycomb/images/popup-selected-item-hdpi.png rename : mobile/themes/core/honeycomb/images/preferences-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/preferences-default-hdpi.png rename : mobile/themes/core/honeycomb/images/previous-disabled-hdpi.png => mobile/xul/themes/core/honeycomb/images/previous-disabled-hdpi.png rename : mobile/themes/core/honeycomb/images/previous-hdpi.png => mobile/xul/themes/core/honeycomb/images/previous-hdpi.png rename : mobile/themes/core/honeycomb/images/reload-hdpi.png => mobile/xul/themes/core/honeycomb/images/reload-hdpi.png rename : mobile/themes/core/honeycomb/images/remotetabs-32.png => mobile/xul/themes/core/honeycomb/images/remotetabs-32.png rename : mobile/themes/core/honeycomb/images/remotetabs-48.png => mobile/xul/themes/core/honeycomb/images/remotetabs-48.png rename : mobile/themes/core/honeycomb/images/row-header-bg.png => mobile/xul/themes/core/honeycomb/images/row-header-bg.png rename : mobile/themes/core/honeycomb/images/scrubber-hdpi.png => mobile/xul/themes/core/honeycomb/images/scrubber-hdpi.png rename : mobile/themes/core/honeycomb/images/search-clear-30.png => mobile/xul/themes/core/honeycomb/images/search-clear-30.png rename : mobile/themes/core/honeycomb/images/search-glass-30.png => mobile/xul/themes/core/honeycomb/images/search-glass-30.png rename : mobile/themes/core/honeycomb/images/settings-default-hdpi.png => mobile/xul/themes/core/honeycomb/images/settings-default-hdpi.png rename : mobile/themes/core/honeycomb/images/sidebarbutton-active-hdpi.png => mobile/xul/themes/core/honeycomb/images/sidebarbutton-active-hdpi.png rename : mobile/themes/core/honeycomb/images/stop-hdpi.png => mobile/xul/themes/core/honeycomb/images/stop-hdpi.png rename : mobile/themes/core/honeycomb/images/tab-active-hdpi.png => mobile/xul/themes/core/honeycomb/images/tab-active-hdpi.png rename : mobile/themes/core/honeycomb/images/tab-closed-hdpi.png => mobile/xul/themes/core/honeycomb/images/tab-closed-hdpi.png rename : mobile/themes/core/honeycomb/images/tab-inactive-hdpi.png => mobile/xul/themes/core/honeycomb/images/tab-inactive-hdpi.png rename : mobile/themes/core/honeycomb/images/tab-reopen-hdpi.png => mobile/xul/themes/core/honeycomb/images/tab-reopen-hdpi.png rename : mobile/themes/core/honeycomb/images/tab-reopen-tablet-hdpi.png => mobile/xul/themes/core/honeycomb/images/tab-reopen-tablet-hdpi.png rename : mobile/themes/core/honeycomb/images/tabs-default-bg-rtl.png => mobile/xul/themes/core/honeycomb/images/tabs-default-bg-rtl.png rename : mobile/themes/core/honeycomb/images/tabs-default-bg.png => mobile/xul/themes/core/honeycomb/images/tabs-default-bg.png rename : mobile/themes/core/honeycomb/images/tabs-hdpi.png => mobile/xul/themes/core/honeycomb/images/tabs-hdpi.png rename : mobile/themes/core/honeycomb/images/tabs-selected-bg-rtl.png => mobile/xul/themes/core/honeycomb/images/tabs-selected-bg-rtl.png rename : mobile/themes/core/honeycomb/images/tabs-selected-bg.png => mobile/xul/themes/core/honeycomb/images/tabs-selected-bg.png rename : mobile/themes/core/honeycomb/images/task-back-hdpi.png => mobile/xul/themes/core/honeycomb/images/task-back-hdpi.png rename : mobile/themes/core/honeycomb/images/task-back-rtl-hdpi.png => mobile/xul/themes/core/honeycomb/images/task-back-rtl-hdpi.png rename : mobile/themes/core/honeycomb/images/task-close-hdpi.png => mobile/xul/themes/core/honeycomb/images/task-close-hdpi.png rename : mobile/themes/core/honeycomb/images/task-switch-hdpi.png => mobile/xul/themes/core/honeycomb/images/task-switch-hdpi.png rename : mobile/themes/core/honeycomb/images/textbox-bg.png => mobile/xul/themes/core/honeycomb/images/textbox-bg.png rename : mobile/themes/core/honeycomb/images/throbber.png => mobile/xul/themes/core/honeycomb/images/throbber.png rename : mobile/themes/core/honeycomb/images/toggle-off.png => mobile/xul/themes/core/honeycomb/images/toggle-off.png rename : mobile/themes/core/honeycomb/images/toggle-on.png => mobile/xul/themes/core/honeycomb/images/toggle-on.png rename : mobile/themes/core/honeycomb/images/unlocked-hdpi.png => mobile/xul/themes/core/honeycomb/images/unlocked-hdpi.png rename : mobile/themes/core/honeycomb/images/unmute-hdpi.png => mobile/xul/themes/core/honeycomb/images/unmute-hdpi.png rename : mobile/themes/core/honeycomb/images/urlbar-border-bottom-active.png => mobile/xul/themes/core/honeycomb/images/urlbar-border-bottom-active.png rename : mobile/themes/core/honeycomb/images/urlbar-border-bottom.png => mobile/xul/themes/core/honeycomb/images/urlbar-border-bottom.png rename : mobile/themes/core/honeycomb/images/urlbar-border-side-active.png => mobile/xul/themes/core/honeycomb/images/urlbar-border-side-active.png rename : mobile/themes/core/honeycomb/images/urlbar-border-side.png => mobile/xul/themes/core/honeycomb/images/urlbar-border-side.png rename : mobile/themes/core/honeycomb/platform.css => mobile/xul/themes/core/honeycomb/platform.css rename : mobile/themes/core/images/aboutBackground.jpg => mobile/xul/themes/core/images/aboutBackground.jpg rename : mobile/themes/core/images/addons-32.png => mobile/xul/themes/core/images/addons-32.png rename : mobile/themes/core/images/addons-default-hdpi.png => mobile/xul/themes/core/images/addons-default-hdpi.png rename : mobile/themes/core/images/alert-addons-30.png => mobile/xul/themes/core/images/alert-addons-30.png rename : mobile/themes/core/images/alert-downloads-30.png => mobile/xul/themes/core/images/alert-downloads-30.png rename : mobile/themes/core/images/allpages-48.png => mobile/xul/themes/core/images/allpages-48.png rename : mobile/themes/core/images/appmenu-active-hdpi.png => mobile/xul/themes/core/images/appmenu-active-hdpi.png rename : mobile/themes/core/images/appmenu-addons-hdpi.png => mobile/xul/themes/core/images/appmenu-addons-hdpi.png rename : mobile/themes/core/images/appmenu-downloads-hdpi.png => mobile/xul/themes/core/images/appmenu-downloads-hdpi.png rename : mobile/themes/core/images/appmenu-findinpage-hdpi.png => mobile/xul/themes/core/images/appmenu-findinpage-hdpi.png rename : mobile/themes/core/images/appmenu-more-hdpi.png => mobile/xul/themes/core/images/appmenu-more-hdpi.png rename : mobile/themes/core/images/appmenu-preferences-hdpi.png => mobile/xul/themes/core/images/appmenu-preferences-hdpi.png rename : mobile/themes/core/images/appmenu-share-hdpi.png => mobile/xul/themes/core/images/appmenu-share-hdpi.png rename : mobile/themes/core/images/appmenu-site-hdpi.png => mobile/xul/themes/core/images/appmenu-site-hdpi.png rename : mobile/themes/core/images/arrowbox-down.png => mobile/xul/themes/core/images/arrowbox-down.png rename : mobile/themes/core/images/arrowbox-horiz.png => mobile/xul/themes/core/images/arrowbox-horiz.png rename : mobile/themes/core/images/arrowbox-up.png => mobile/xul/themes/core/images/arrowbox-up.png rename : mobile/themes/core/images/arrowdown-16.png => mobile/xul/themes/core/images/arrowdown-16.png rename : mobile/themes/core/images/arrowdowndark-16.png => mobile/xul/themes/core/images/arrowdowndark-16.png rename : mobile/themes/core/images/arrowleft-16.png => mobile/xul/themes/core/images/arrowleft-16.png rename : mobile/themes/core/images/arrowleftdark-16.png => mobile/xul/themes/core/images/arrowleftdark-16.png rename : mobile/themes/core/images/arrowright-16.png => mobile/xul/themes/core/images/arrowright-16.png rename : mobile/themes/core/images/arrowrightdark-16.png => mobile/xul/themes/core/images/arrowrightdark-16.png rename : mobile/themes/core/images/arrowup-16.png => mobile/xul/themes/core/images/arrowup-16.png rename : mobile/themes/core/images/arrowupdark-16.png => mobile/xul/themes/core/images/arrowupdark-16.png rename : mobile/themes/core/images/aurora-lightbox-bg.jpg => mobile/xul/themes/core/images/aurora-lightbox-bg.jpg rename : mobile/themes/core/images/aurora-lightbox-close.png => mobile/xul/themes/core/images/aurora-lightbox-close.png rename : mobile/themes/core/images/aurora-lightbox-logo.png => mobile/xul/themes/core/images/aurora-lightbox-logo.png rename : mobile/themes/core/images/autocomplete-bookmarked-hdpi.png => mobile/xul/themes/core/images/autocomplete-bookmarked-hdpi.png rename : mobile/themes/core/images/autocomplete-desktop-hdpi.png => mobile/xul/themes/core/images/autocomplete-desktop-hdpi.png rename : mobile/themes/core/images/autocomplete-search-hdpi.png => mobile/xul/themes/core/images/autocomplete-search-hdpi.png rename : mobile/themes/core/images/back-default-hdpi.png => mobile/xul/themes/core/images/back-default-hdpi.png rename : mobile/themes/core/images/bookmark-default-hdpi.png => mobile/xul/themes/core/images/bookmark-default-hdpi.png rename : mobile/themes/core/images/bookmark-starred-hdpi.png => mobile/xul/themes/core/images/bookmark-starred-hdpi.png rename : mobile/themes/core/images/bookmarks-48.png => mobile/xul/themes/core/images/bookmarks-48.png rename : mobile/themes/core/images/browseaddons-bg.jpg => mobile/xul/themes/core/images/browseaddons-bg.jpg rename : mobile/themes/core/images/button-bg.png => mobile/xul/themes/core/images/button-bg.png rename : mobile/themes/core/images/check-30.png => mobile/xul/themes/core/images/check-30.png rename : mobile/themes/core/images/check-selected-30.png => mobile/xul/themes/core/images/check-selected-30.png rename : mobile/themes/core/images/check-unselected-30.png => mobile/xul/themes/core/images/check-unselected-30.png rename : mobile/themes/core/images/checkmark-hdpi.png => mobile/xul/themes/core/images/checkmark-hdpi.png rename : mobile/themes/core/images/close-active-hdpi.png => mobile/xul/themes/core/images/close-active-hdpi.png rename : mobile/themes/core/images/close-active-tablet-hdpi.png => mobile/xul/themes/core/images/close-active-tablet-hdpi.png rename : mobile/themes/core/images/close-background-hdpi-rtl.png => mobile/xul/themes/core/images/close-background-hdpi-rtl.png rename : mobile/themes/core/images/close-background-hdpi.png => mobile/xul/themes/core/images/close-background-hdpi.png rename : mobile/themes/core/images/close-default-hdpi.png => mobile/xul/themes/core/images/close-default-hdpi.png rename : mobile/themes/core/images/close-default-tablet-hdpi.png => mobile/xul/themes/core/images/close-default-tablet-hdpi.png rename : mobile/themes/core/images/close-inactive-tab-hdpi.png => mobile/xul/themes/core/images/close-inactive-tab-hdpi.png rename : mobile/themes/core/images/close-inactive-tab-tablet-hdpi.png => mobile/xul/themes/core/images/close-inactive-tab-tablet-hdpi.png rename : mobile/themes/core/images/console-default-hdpi.png => mobile/xul/themes/core/images/console-default-hdpi.png rename : mobile/themes/core/images/downloads-default-hdpi.png => mobile/xul/themes/core/images/downloads-default-hdpi.png rename : mobile/themes/core/images/dropmarker-hdpi.png => mobile/xul/themes/core/images/dropmarker-hdpi.png rename : mobile/themes/core/images/endcap-active-bg.png => mobile/xul/themes/core/images/endcap-active-bg.png rename : mobile/themes/core/images/endcap-default-bg.png => mobile/xul/themes/core/images/endcap-default-bg.png rename : mobile/themes/core/images/endcap-ev-active-bg.png => mobile/xul/themes/core/images/endcap-ev-active-bg.png rename : mobile/themes/core/images/endcap-ev-default-bg.png => mobile/xul/themes/core/images/endcap-ev-default-bg.png rename : mobile/themes/core/images/endcap-ssl-active-bg.png => mobile/xul/themes/core/images/endcap-ssl-active-bg.png rename : mobile/themes/core/images/endcap-ssl-default-bg.png => mobile/xul/themes/core/images/endcap-ssl-default-bg.png rename : mobile/themes/core/images/errorpage-larry-black.png => mobile/xul/themes/core/images/errorpage-larry-black.png rename : mobile/themes/core/images/errorpage-larry-white.png => mobile/xul/themes/core/images/errorpage-larry-white.png rename : mobile/themes/core/images/errorpage-warning.png => mobile/xul/themes/core/images/errorpage-warning.png rename : mobile/themes/core/images/favicon-default-32.png => mobile/xul/themes/core/images/favicon-default-32.png rename : mobile/themes/core/images/folder-32.png => mobile/xul/themes/core/images/folder-32.png rename : mobile/themes/core/images/forward-default-hdpi.png => mobile/xul/themes/core/images/forward-default-hdpi.png rename : mobile/themes/core/images/handle-end.png => mobile/xul/themes/core/images/handle-end.png rename : mobile/themes/core/images/handle-start.png => mobile/xul/themes/core/images/handle-start.png rename : mobile/themes/core/images/history-48.png => mobile/xul/themes/core/images/history-48.png rename : mobile/themes/core/images/homescreen-blank-hdpi.png => mobile/xul/themes/core/images/homescreen-blank-hdpi.png rename : mobile/themes/core/images/homescreen-default-hdpi.png => mobile/xul/themes/core/images/homescreen-default-hdpi.png rename : mobile/themes/core/images/identity-default-hdpi.png => mobile/xul/themes/core/images/identity-default-hdpi.png rename : mobile/themes/core/images/identity-ev-hdpi.png => mobile/xul/themes/core/images/identity-ev-hdpi.png rename : mobile/themes/core/images/identity-ssl-hdpi.png => mobile/xul/themes/core/images/identity-ssl-hdpi.png rename : mobile/themes/core/images/locked-hdpi.png => mobile/xul/themes/core/images/locked-hdpi.png rename : mobile/themes/core/images/menu-hdpi.png => mobile/xul/themes/core/images/menu-hdpi.png rename : mobile/themes/core/images/mozilla-32.png => mobile/xul/themes/core/images/mozilla-32.png rename : mobile/themes/core/images/mute-hdpi.png => mobile/xul/themes/core/images/mute-hdpi.png rename : mobile/themes/core/images/navigation-magnifier-30.png => mobile/xul/themes/core/images/navigation-magnifier-30.png rename : mobile/themes/core/images/newtab-default-hdpi.png => mobile/xul/themes/core/images/newtab-default-hdpi.png rename : mobile/themes/core/images/newtab-default-tablet-hdpi.png => mobile/xul/themes/core/images/newtab-default-tablet-hdpi.png rename : mobile/themes/core/images/next-disabled-hdpi.png => mobile/xul/themes/core/images/next-disabled-hdpi.png rename : mobile/themes/core/images/next-hdpi.png => mobile/xul/themes/core/images/next-hdpi.png rename : mobile/themes/core/images/panelrow-active-hdpi.png => mobile/xul/themes/core/images/panelrow-active-hdpi.png rename : mobile/themes/core/images/panelrow-default-hdpi.png => mobile/xul/themes/core/images/panelrow-default-hdpi.png rename : mobile/themes/core/images/panelrow-selected-hdpi.png => mobile/xul/themes/core/images/panelrow-selected-hdpi.png rename : mobile/themes/core/images/pause-hdpi.png => mobile/xul/themes/core/images/pause-hdpi.png rename : mobile/themes/core/images/play-hdpi.png => mobile/xul/themes/core/images/play-hdpi.png rename : mobile/themes/core/images/popup-bg-hdpi.png => mobile/xul/themes/core/images/popup-bg-hdpi.png rename : mobile/themes/core/images/popup-selected-item-hdpi.png => mobile/xul/themes/core/images/popup-selected-item-hdpi.png rename : mobile/themes/core/images/preferences-default-hdpi.png => mobile/xul/themes/core/images/preferences-default-hdpi.png rename : mobile/themes/core/images/previous-disabled-hdpi.png => mobile/xul/themes/core/images/previous-disabled-hdpi.png rename : mobile/themes/core/images/previous-hdpi.png => mobile/xul/themes/core/images/previous-hdpi.png rename : mobile/themes/core/images/ratings-18.png => mobile/xul/themes/core/images/ratings-18.png rename : mobile/themes/core/images/reload-hdpi.png => mobile/xul/themes/core/images/reload-hdpi.png rename : mobile/themes/core/images/remotetabs-32.png => mobile/xul/themes/core/images/remotetabs-32.png rename : mobile/themes/core/images/remotetabs-48.png => mobile/xul/themes/core/images/remotetabs-48.png rename : mobile/themes/core/images/row-header-bg.png => mobile/xul/themes/core/images/row-header-bg.png rename : mobile/themes/core/images/scrubber-hdpi.png => mobile/xul/themes/core/images/scrubber-hdpi.png rename : mobile/themes/core/images/search-clear-30.png => mobile/xul/themes/core/images/search-clear-30.png rename : mobile/themes/core/images/search-glass-30.png => mobile/xul/themes/core/images/search-glass-30.png rename : mobile/themes/core/images/section-collapsed-16.png => mobile/xul/themes/core/images/section-collapsed-16.png rename : mobile/themes/core/images/section-expanded-16.png => mobile/xul/themes/core/images/section-expanded-16.png rename : mobile/themes/core/images/settings-default-hdpi.png => mobile/xul/themes/core/images/settings-default-hdpi.png rename : mobile/themes/core/images/sidebarbutton-active-hdpi.png => mobile/xul/themes/core/images/sidebarbutton-active-hdpi.png rename : mobile/themes/core/images/stop-hdpi.png => mobile/xul/themes/core/images/stop-hdpi.png rename : mobile/themes/core/images/tab-active-hdpi.png => mobile/xul/themes/core/images/tab-active-hdpi.png rename : mobile/themes/core/images/tab-closed-hdpi.png => mobile/xul/themes/core/images/tab-closed-hdpi.png rename : mobile/themes/core/images/tab-inactive-hdpi.png => mobile/xul/themes/core/images/tab-inactive-hdpi.png rename : mobile/themes/core/images/tab-reopen-hdpi.png => mobile/xul/themes/core/images/tab-reopen-hdpi.png rename : mobile/themes/core/images/tab-reopen-tablet-hdpi.png => mobile/xul/themes/core/images/tab-reopen-tablet-hdpi.png rename : mobile/themes/core/images/tabs-hdpi.png => mobile/xul/themes/core/images/tabs-hdpi.png rename : mobile/themes/core/images/task-back-hdpi.png => mobile/xul/themes/core/images/task-back-hdpi.png rename : mobile/themes/core/images/task-back-rtl-hdpi.png => mobile/xul/themes/core/images/task-back-rtl-hdpi.png rename : mobile/themes/core/images/task-close-hdpi.png => mobile/xul/themes/core/images/task-close-hdpi.png rename : mobile/themes/core/images/task-switch-hdpi.png => mobile/xul/themes/core/images/task-switch-hdpi.png rename : mobile/themes/core/images/textbox-bg.png => mobile/xul/themes/core/images/textbox-bg.png rename : mobile/themes/core/images/throbber.png => mobile/xul/themes/core/images/throbber.png rename : mobile/themes/core/images/toggle-off.png => mobile/xul/themes/core/images/toggle-off.png rename : mobile/themes/core/images/toggle-on.png => mobile/xul/themes/core/images/toggle-on.png rename : mobile/themes/core/images/unlocked-hdpi.png => mobile/xul/themes/core/images/unlocked-hdpi.png rename : mobile/themes/core/images/unmute-hdpi.png => mobile/xul/themes/core/images/unmute-hdpi.png rename : mobile/themes/core/jar.mn => mobile/xul/themes/core/jar.mn rename : mobile/themes/core/localePicker.css => mobile/xul/themes/core/localePicker.css rename : mobile/themes/core/netError.css => mobile/xul/themes/core/netError.css rename : mobile/themes/core/notification.css => mobile/xul/themes/core/notification.css rename : mobile/themes/core/platform.css => mobile/xul/themes/core/platform.css rename : mobile/themes/core/tablet.css => mobile/xul/themes/core/tablet.css rename : mobile/themes/core/touchcontrols.css => mobile/xul/themes/core/touchcontrols.css
1114 lines
39 KiB
JavaScript
1114 lines
39 KiB
JavaScript
// -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*-
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is Mozilla Mobile Browser.
|
|
*
|
|
* The Initial Developer of the Original Code is Mozilla Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 2009
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Mark Finkle <mfinkle@mozilla.com>
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
const PREFIX_ITEM_URI = "urn:mozilla:item:";
|
|
const PREFIX_NS_EM = "http://www.mozilla.org/2004/em-rdf#";
|
|
|
|
const PREF_GETADDONS_MAXRESULTS = "extensions.getAddons.maxResults";
|
|
|
|
const kAddonPageSize = 5;
|
|
|
|
#ifdef ANDROID
|
|
const URI_GENERIC_ICON_XPINSTALL = "drawable://alertaddons";
|
|
#else
|
|
const URI_GENERIC_ICON_XPINSTALL = "chrome://browser/skin/images/alert-addons-30.png";
|
|
#endif
|
|
const ADDONS_NOTIFICATION_NAME = "addons";
|
|
|
|
XPCOMUtils.defineLazyGetter(this, "AddonManager", function() {
|
|
Cu.import("resource://gre/modules/AddonManager.jsm");
|
|
return AddonManager;
|
|
});
|
|
|
|
XPCOMUtils.defineLazyGetter(this, "AddonRepository", function() {
|
|
Cu.import("resource://gre/modules/AddonRepository.jsm");
|
|
return AddonRepository;
|
|
});
|
|
|
|
XPCOMUtils.defineLazyGetter(this, "NetUtil", function() {
|
|
Cu.import("resource://gre/modules/NetUtil.jsm");
|
|
return NetUtil;
|
|
});
|
|
|
|
var ExtensionsView = {
|
|
_strings: {},
|
|
_list: null,
|
|
_localItem: null,
|
|
_repoItem: null,
|
|
_msg: null,
|
|
_dloadmgr: null,
|
|
_restartCount: 0,
|
|
_observerIndex: -1,
|
|
|
|
_getOpTypeForOperations: function ev__getOpTypeForOperations(aOperations) {
|
|
if (aOperations & AddonManager.PENDING_UNINSTALL)
|
|
return "needs-uninstall";
|
|
if (aOperations & AddonManager.PENDING_ENABLE)
|
|
return "needs-enable";
|
|
if (aOperations & AddonManager.PENDING_DISABLE)
|
|
return "needs-disable";
|
|
return "";
|
|
},
|
|
|
|
_createItem: function ev__createItem(aAddon, aTypeName) {
|
|
let item = document.createElement("richlistitem");
|
|
item.setAttribute("id", PREFIX_ITEM_URI + aAddon.id);
|
|
item.setAttribute("addonID", aAddon.id);
|
|
item.setAttribute("typeName", aTypeName);
|
|
item.setAttribute("type", aAddon.type);
|
|
item.setAttribute("typeLabel", this._strings["addonType." + aAddon.type]);
|
|
item.setAttribute("name", aAddon.name);
|
|
item.setAttribute("version", aAddon.version);
|
|
item.setAttribute("iconURL", aAddon.iconURL);
|
|
item.setAttribute("class", "panel-listitem");
|
|
return item;
|
|
},
|
|
|
|
clearSection: function ev_clearSection(aSection) {
|
|
let start = null;
|
|
let end = null;
|
|
|
|
if (aSection == "local") {
|
|
start = this._localItem;
|
|
end = this._repoItem;
|
|
}
|
|
else {
|
|
start = this._repoItem;
|
|
}
|
|
|
|
while (start.nextSibling != end)
|
|
this._list.removeChild(start.nextSibling);
|
|
},
|
|
|
|
_messageActions: function ev__messageActions(aData) {
|
|
if (aData == "addons-restart-app") {
|
|
// Notify all windows that an application quit has been requested
|
|
var cancelQuit = Cc["@mozilla.org/supports-PRBool;1"].createInstance(Ci.nsISupportsPRBool);
|
|
Services.obs.notifyObservers(cancelQuit, "quit-application-requested", "restart");
|
|
|
|
// If nothing aborted, quit the app
|
|
if (cancelQuit.data == false) {
|
|
let appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup);
|
|
appStartup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
|
|
}
|
|
}
|
|
},
|
|
|
|
getElementForAddon: function ev_getElementForAddon(aKey) {
|
|
let element = document.getElementById(PREFIX_ITEM_URI + aKey);
|
|
if (!element && this._list)
|
|
element = this._list.getElementsByAttribute("sourceURL", aKey)[0];
|
|
return element;
|
|
},
|
|
|
|
showMessage: function ev_showMessage(aMsg, aValue, aButtonLabel, aShowCloseButton, aNotifyData) {
|
|
let notification = this._msg.getNotificationWithValue(aValue);
|
|
if (notification)
|
|
return;
|
|
|
|
let self = this;
|
|
let buttons = null;
|
|
if (aButtonLabel) {
|
|
buttons = [ {
|
|
label: aButtonLabel,
|
|
accessKey: "",
|
|
data: aNotifyData,
|
|
callback: function(aNotification, aButton) {
|
|
self._messageActions(aButton.data);
|
|
return true;
|
|
}
|
|
} ];
|
|
}
|
|
|
|
this._msg.appendNotification(aMsg, aValue, "", this._msg.PRIORITY_WARNING_LOW, buttons).hideclose = !aShowCloseButton;
|
|
},
|
|
|
|
showRestart: function ev_showRestart(aMode) {
|
|
// Increment the count in case the view is not completely initialized
|
|
this._restartCount++;
|
|
|
|
// Pick the right message key from the properties file
|
|
aMode = aMode || "normal";
|
|
|
|
if (this._msg) {
|
|
this.hideAlerts();
|
|
let strings = Strings.browser;
|
|
let message = "notificationRestart." + aMode;
|
|
this.showMessage(strings.GetStringFromName(message), "restart-app",
|
|
strings.GetStringFromName("notificationRestart.button"), false, "addons-restart-app");
|
|
}
|
|
},
|
|
|
|
hideRestart: function ev_hideRestart() {
|
|
this._restartCount--;
|
|
if (this._restartCount == 0 && this._msg) {
|
|
let notification = this._msg.getNotificationWithValue("restart-app");
|
|
if (notification)
|
|
notification.close();
|
|
}
|
|
},
|
|
|
|
showOptions: function ev_showOptions(aID) {
|
|
this.hideOptions();
|
|
|
|
let item = this.getElementForAddon(aID);
|
|
if (!item)
|
|
return;
|
|
|
|
// if the element is not the selected element, select it
|
|
if (item != this._list.selectedItem)
|
|
this._list.selectedItem = item;
|
|
|
|
item.showOptions();
|
|
},
|
|
|
|
hideOptions: function ev_hideOptions() {
|
|
if (!this._list)
|
|
return;
|
|
|
|
let items = this._list.childNodes;
|
|
for (let i = 0; i < items.length; i++) {
|
|
let item = items[i];
|
|
if (item.hideOptions)
|
|
item.hideOptions();
|
|
}
|
|
this._list.ensureSelectedElementIsVisible();
|
|
},
|
|
|
|
get visible() {
|
|
let items = document.getElementById("panel-items");
|
|
if (BrowserUI.isPanelVisible() && items.selectedPanel.id == "addons-container")
|
|
return true;
|
|
return false;
|
|
},
|
|
|
|
init: function ev_init() {
|
|
if (this._dloadmgr)
|
|
return;
|
|
|
|
this._dloadmgr = new AddonInstallListener();
|
|
AddonManager.addInstallListener(this._dloadmgr);
|
|
|
|
// Watch for add-on update notifications
|
|
let os = Services.obs;
|
|
os.addObserver(this, "addon-update-started", false);
|
|
os.addObserver(this, "addon-update-ended", false);
|
|
},
|
|
|
|
delayedInit: function ev__delayedInit() {
|
|
if (this._list)
|
|
return;
|
|
|
|
this.init(); // In case the panel is selected before init has been called.
|
|
|
|
this._list = document.getElementById("addons-list");
|
|
this._localItem = document.getElementById("addons-local");
|
|
this._repoItem = document.getElementById("addons-repo");
|
|
this._msg = document.getElementById("addons-messages");
|
|
|
|
// Show the restart notification in case a restart is needed, but the view
|
|
// was not visible at the time
|
|
let notification = this._msg.getNotificationWithValue("restart-app");
|
|
if (this._restartCount > 0 && !notification) {
|
|
this.showRestart();
|
|
this._restartCount--; // showRestart() always increments
|
|
}
|
|
|
|
let strings = Strings.browser;
|
|
this._strings["addonType.extension"] = strings.GetStringFromName("addonType.2");
|
|
this._strings["addonType.theme"] = strings.GetStringFromName("addonType.4");
|
|
this._strings["addonType.locale"] = strings.GetStringFromName("addonType.8");
|
|
this._strings["addonType.search"] = strings.GetStringFromName("addonType.1024");
|
|
|
|
if (!Services.prefs.getBoolPref("extensions.hideUpdateButton"))
|
|
document.getElementById("addons-update-all").hidden = false;
|
|
|
|
let self = this;
|
|
setTimeout(function() {
|
|
self.getAddonsFromLocal();
|
|
self.getAddonsFromRepo("");
|
|
}, 0);
|
|
},
|
|
|
|
uninit: function ev_uninit() {
|
|
let os = Services.obs;
|
|
os.removeObserver(this, "addon-update-started");
|
|
os.removeObserver(this, "addon-update-ended");
|
|
|
|
AddonManager.removeInstallListener(this._dloadmgr);
|
|
|
|
this.hideAlerts();
|
|
},
|
|
|
|
hideOnSelect: function ev_handleEvent(aEvent) {
|
|
// When list selection changes, be sure to close up any open options sections
|
|
if (aEvent.target == this._list)
|
|
this.hideOptions();
|
|
},
|
|
|
|
_createLocalAddon: function ev__createLocalAddon(aAddon) {
|
|
let strings = Strings.browser;
|
|
|
|
let appManaged = (aAddon.scope == AddonManager.SCOPE_APPLICATION);
|
|
let opType = this._getOpTypeForOperations(aAddon.pendingOperations);
|
|
let updateable = (aAddon.permissions & AddonManager.PERM_CAN_UPGRADE) > 0;
|
|
let uninstallable = (aAddon.permissions & AddonManager.PERM_CAN_UNINSTALL) > 0;
|
|
|
|
let blocked = "";
|
|
switch(aAddon.blocklistState) {
|
|
case Ci.nsIBlocklistService.STATE_BLOCKED:
|
|
blocked = strings.getString("addonBlocked.blocked")
|
|
break;
|
|
case Ci.nsIBlocklistService.STATE_SOFTBLOCKED:
|
|
blocked = strings.getString("addonBlocked.softBlocked");
|
|
break;
|
|
case Ci.nsIBlocklistService.STATE_OUTDATED:
|
|
blocked = srings.getString("addonBlocked.outdated");
|
|
break;
|
|
}
|
|
|
|
let listitem = this._createItem(aAddon, "local");
|
|
listitem.setAttribute("isDisabled", !aAddon.isActive);
|
|
listitem.setAttribute("appDisabled", aAddon.appDisabled);
|
|
listitem.setAttribute("appManaged", appManaged);
|
|
listitem.setAttribute("description", aAddon.description);
|
|
listitem.setAttribute("optionsURL", aAddon.optionsURL || "");
|
|
listitem.setAttribute("opType", opType);
|
|
listitem.setAttribute("updateable", updateable);
|
|
listitem.setAttribute("isReadonly", !uninstallable);
|
|
if (blocked)
|
|
listitem.setAttribute("blockedStatus", blocked);
|
|
listitem.addon = aAddon;
|
|
return listitem;
|
|
},
|
|
|
|
getAddonsFromLocal: function ev_getAddonsFromLocal() {
|
|
this.clearSection("local");
|
|
|
|
let self = this;
|
|
AddonManager.getAddonsByTypes(["extension", "theme", "locale"], function(items) {
|
|
let strings = Strings.browser;
|
|
let anyUpdateable = false;
|
|
for (let i = 0; i < items.length; i++) {
|
|
let listitem = self.getElementForAddon(items[i].id)
|
|
if (!listitem)
|
|
listitem = self._createLocalAddon(items[i]);
|
|
if ((items[i].permissions & AddonManager.PERM_CAN_UPGRADE) > 0)
|
|
anyUpdateable = true;
|
|
|
|
self.addItem(listitem);
|
|
}
|
|
|
|
// Load the search engines
|
|
let defaults = Services.search.getDefaultEngines({ }).map(function (e) e.name);
|
|
function isDefault(aEngine)
|
|
defaults.indexOf(aEngine.name) != -1
|
|
|
|
let defaultDescription = strings.GetStringFromName("addonsSearchEngine.description");
|
|
|
|
let engines = Services.search.getEngines({ });
|
|
for (let e = 0; e < engines.length; e++) {
|
|
let engine = engines[e];
|
|
let addon = {};
|
|
addon.id = engine.name;
|
|
addon.type = "search";
|
|
addon.name = engine.name;
|
|
addon.version = "";
|
|
addon.iconURL = engine.iconURI ? engine.iconURI.spec : "";
|
|
|
|
let listitem = self._createItem(addon, "searchplugin");
|
|
listitem._engine = engine;
|
|
listitem.setAttribute("isDisabled", engine.hidden ? "true" : "false");
|
|
listitem.setAttribute("appDisabled", "false");
|
|
listitem.setAttribute("appManaged", isDefault(engine));
|
|
listitem.setAttribute("description", engine.description || defaultDescription);
|
|
listitem.setAttribute("optionsURL", "");
|
|
listitem.setAttribute("opType", engine.hidden ? "needs-disable" : "");
|
|
listitem.setAttribute("updateable", "false");
|
|
self.addItem(listitem);
|
|
}
|
|
|
|
if (engines.length + items.length == 0)
|
|
self.displaySectionMessage("local", strings.GetStringFromName("addonsLocalNone.label"), null, true);
|
|
|
|
if (!anyUpdateable)
|
|
document.getElementById("addons-update-all").disabled = true;
|
|
});
|
|
},
|
|
|
|
addItem : function ev_addItem(aItem, aPosition) {
|
|
if (aPosition == "repo")
|
|
return this._list.appendChild(aItem);
|
|
else if (aPosition == "local")
|
|
return this._list.insertBefore(aItem, this._localItem.nextSibling);
|
|
else
|
|
return this._list.insertBefore(aItem, this._repoItem);
|
|
},
|
|
|
|
removeItem : function ev_moveItem(aItem) {
|
|
this._list.removeChild(aItem);
|
|
},
|
|
|
|
enable: function ev_enable(aItem) {
|
|
let opType;
|
|
if (aItem.getAttribute("type") == "search") {
|
|
aItem.setAttribute("isDisabled", false);
|
|
aItem._engine.hidden = false;
|
|
opType = "needs-enable";
|
|
} else if (aItem.getAttribute("type") == "theme") {
|
|
// we can have only one theme enabled, so disable the current one if any
|
|
let theme = null;
|
|
let item = this._localItem.nextSibling;
|
|
while (item != this._repoItem) {
|
|
if (item.addon && (item.addon.type == "theme") && (item.addon.isActive)) {
|
|
theme = item;
|
|
break;
|
|
}
|
|
item = item.nextSibling;
|
|
}
|
|
if (theme)
|
|
this.disable(theme);
|
|
|
|
aItem.addon.userDisabled = false;
|
|
aItem.setAttribute("isDisabled", false);
|
|
} else {
|
|
aItem.addon.userDisabled = false;
|
|
opType = this._getOpTypeForOperations(aItem.addon.pendingOperations);
|
|
|
|
if (aItem.addon.pendingOperations & AddonManager.PENDING_ENABLE) {
|
|
this.showRestart();
|
|
} else {
|
|
aItem.removeAttribute("isDisabled");
|
|
if (aItem.getAttribute("opType") == "needs-disable")
|
|
this.hideRestart();
|
|
};
|
|
}
|
|
|
|
aItem.setAttribute("opType", opType);
|
|
},
|
|
|
|
_getLocalesInAddon: function(aAddon, aCallback) {
|
|
if (!aCallback || typeof aCallback != "function")
|
|
throw "_getLocalesInAddon requires a callback function";
|
|
|
|
let uri = aAddon.getResourceURI("chrome.manifest");
|
|
NetUtil.asyncFetch(uri, function(aStream, aResult, aRequest) {
|
|
var data = NetUtil.readInputStreamToString(aStream, aStream.available());
|
|
let reg = new RegExp("locale browser ([a-zA-Z\-]*)", "g");
|
|
let res = reg.exec(data)
|
|
let list = [];
|
|
while(res) {
|
|
if (list.indexOf(res[1]) == -1)
|
|
list.push(res[1]);
|
|
res = reg.exec(data);
|
|
}
|
|
if (aCallback)
|
|
aCallback(list);
|
|
});
|
|
},
|
|
|
|
_resetLanguagePref: function(aAddon) {
|
|
this._getLocalesInAddon(aAddon, function(aLocales) {
|
|
let currentLocale = Services.prefs.getCharPref("general.useragent.locale");
|
|
if (aLocales.indexOf(currentLocale) > -1)
|
|
Services.prefs.clearUserPref("general.useragent.locale");
|
|
});
|
|
},
|
|
|
|
disable: function ev_disable(aItem) {
|
|
let opType;
|
|
if (aItem.getAttribute("type") == "search") {
|
|
aItem.setAttribute("isDisabled", true);
|
|
aItem._engine.hidden = true;
|
|
opType = "needs-disable";
|
|
} else if (aItem.getAttribute("type") == "theme") {
|
|
aItem.addon.userDisabled = true;
|
|
aItem.setAttribute("isDisabled", true);
|
|
} else if (aItem.getAttribute("type") == "locale") {
|
|
this._resetLanguagePref(aItem.addon);
|
|
aItem.addon.userDisabled = true;
|
|
aItem.setAttribute("isDisabled", true);
|
|
} else {
|
|
aItem.addon.userDisabled = true;
|
|
opType = this._getOpTypeForOperations(aItem.addon.pendingOperations);
|
|
|
|
if (aItem.addon.pendingOperations & AddonManager.PENDING_DISABLE) {
|
|
this.showRestart();
|
|
} else {
|
|
aItem.setAttribute("isDisabled", !aItem.addon.isActive);
|
|
if (aItem.getAttribute("opType") == "needs-enable")
|
|
this.hideRestart();
|
|
}
|
|
}
|
|
|
|
aItem.setAttribute("opType", opType);
|
|
},
|
|
|
|
uninstall: function ev_uninstall(aItem) {
|
|
let opType;
|
|
if (aItem.getAttribute("type") == "search") {
|
|
// Make sure the engine isn't hidden before removing it, to make sure it's
|
|
// visible if the user later re-adds it (works around bug 341833)
|
|
aItem._engine.hidden = false;
|
|
Services.search.removeEngine(aItem._engine);
|
|
// the search-engine-modified observer in browser.js will take care of
|
|
// updating the list
|
|
} else {
|
|
if (!aItem.addon) {
|
|
this._list.removeChild(aItem);
|
|
return;
|
|
}
|
|
|
|
aItem.addon.uninstall();
|
|
opType = this._getOpTypeForOperations(aItem.addon.pendingOperations);
|
|
|
|
if (aItem.addon.pendingOperations & AddonManager.PENDING_UNINSTALL) {
|
|
this.showRestart();
|
|
|
|
// A disabled addon doesn't need a restart so it has no pending ops and
|
|
// can't be cancelled
|
|
if (!aItem.addon.isActive && opType == "")
|
|
opType = "needs-uninstall";
|
|
|
|
aItem.setAttribute("opType", opType);
|
|
} else {
|
|
this._list.removeChild(aItem);
|
|
}
|
|
|
|
if (aItem.getAttribute("type") == "locale")
|
|
this._resetLanguagePref(aItem.addon);
|
|
}
|
|
},
|
|
|
|
cancelUninstall: function ev_cancelUninstall(aItem) {
|
|
aItem.addon.cancelUninstall();
|
|
|
|
this.hideRestart();
|
|
|
|
let opType = this._getOpTypeForOperations(aItem.addon.pendingOperations);
|
|
aItem.setAttribute("opType", opType);
|
|
},
|
|
|
|
installFromRepo: function ev_installFromRepo(aItem) {
|
|
aItem.install.install();
|
|
|
|
// display the progress bar early
|
|
let opType = aItem.getAttribute("opType");
|
|
if (!opType)
|
|
aItem.setAttribute("opType", "needs-install");
|
|
},
|
|
|
|
_isSafeURI: function ev_isSafeURI(aURL) {
|
|
if (!aURL)
|
|
return true;
|
|
|
|
try {
|
|
var uri = Services.io.newURI(aURL, null, null);
|
|
var scheme = uri.scheme;
|
|
} catch (ex) {}
|
|
|
|
return (uri && (scheme == "http" || scheme == "https" || scheme == "ftp"));
|
|
},
|
|
|
|
displaySectionMessage: function ev_displaySectionMessage(aSection, aMessage, aButtonLabel, aHideThrobber) {
|
|
let item = document.createElement("richlistitem");
|
|
item.setAttribute("typeName", "message");
|
|
item.setAttribute("message", aMessage);
|
|
if (aButtonLabel)
|
|
item.setAttribute("button", aButtonLabel);
|
|
else
|
|
item.setAttribute("hidebutton", "true");
|
|
item.setAttribute("hidethrobber", aHideThrobber);
|
|
|
|
this.addItem(item, aSection);
|
|
|
|
return item;
|
|
},
|
|
|
|
getAddonsFromRepo: function ev_getAddonsFromRepo(aTerms, aSelectFirstResult) {
|
|
this.clearSection("repo");
|
|
|
|
// Make sure we're online before attempting to load
|
|
Util.forceOnline();
|
|
|
|
if (AddonRepository.isSearching)
|
|
AddonRepository.cancelSearch();
|
|
|
|
let strings = Strings.browser;
|
|
if (aTerms) {
|
|
AddonSearchResults.selectFirstResult = aSelectFirstResult;
|
|
this.displaySectionMessage("repo", strings.GetStringFromName("addonsSearchStart.label"), strings.GetStringFromName("addonsSearchStart.button"), false);
|
|
AddonRepository.searchAddons(aTerms, Services.prefs.getIntPref(PREF_GETADDONS_MAXRESULTS), AddonSearchResults);
|
|
}
|
|
else {
|
|
this.displaySectionMessage("repo", strings.GetStringFromName("addonsSearchStart.label"), strings.GetStringFromName("addonsSearchStart.button"), false);
|
|
AddonRepository.retrieveRecommendedAddons(Services.prefs.getIntPref(PREF_GETADDONS_MAXRESULTS), RecommendedSearchResults);
|
|
}
|
|
},
|
|
|
|
appendSearchResults: function(aAddons, aShowRating, aShowCount) {
|
|
let urlproperties = [ "iconURL", "homepageURL" ];
|
|
let foundItem = false;
|
|
let appendedAddons = [];
|
|
for (let i = 0; i < aAddons.length; i++) {
|
|
let addon = aAddons[i];
|
|
|
|
// Check for a duplicate add-on, already in the search results
|
|
// (can happen when blending the recommended and browsed lists)
|
|
let element = ExtensionsView.getElementForAddon(addon.install.sourceURI.spec);
|
|
if (element)
|
|
continue;
|
|
|
|
// Check for any items with potentially unsafe urls
|
|
if (urlproperties.some(function (p) !this._isSafeURI(addon[p]), this))
|
|
continue;
|
|
if (addon.screenshots && addon.screenshots.length) {
|
|
if (addon.screenshots.some(function (aScreenshot) !this._isSafeURI(aScreenshot), this))
|
|
continue;
|
|
}
|
|
|
|
// Convert the numeric type to a string
|
|
let types = {"2":"extension", "4":"theme", "8":"locale"};
|
|
addon.type = types[addon.type];
|
|
|
|
let listitem = this._createItem(addon, "search");
|
|
listitem.setAttribute("description", addon.description);
|
|
if (addon.homepageURL)
|
|
listitem.setAttribute("homepageURL", addon.homepageURL);
|
|
listitem.install = addon.install;
|
|
listitem.setAttribute("sourceURL", addon.install.sourceURI.spec);
|
|
if (aShowRating)
|
|
listitem.setAttribute("rating", addon.averageRating);
|
|
|
|
let item = this.addItem(listitem, "repo");
|
|
appendedAddons.push(listitem);
|
|
// Hide any overflow add-ons. The user can see them later by pressing the
|
|
// "See More" button
|
|
aShowCount--;
|
|
if (aShowCount < 0)
|
|
item.hidden = true;
|
|
}
|
|
return appendedAddons;
|
|
},
|
|
|
|
showMoreSearchResults: function showMoreSearchResults() {
|
|
// Show more add-ons, if we have them
|
|
let showCount = kAddonPageSize;
|
|
|
|
// Find the first hidden add-on
|
|
let item = this._repoItem.nextSibling;
|
|
while (item && !item.hidden)
|
|
item = item.nextSibling;
|
|
|
|
// Start showing the hidden add-ons
|
|
while (showCount > 0 && item && item.hidden) {
|
|
showCount--;
|
|
item.hidden = false;
|
|
item = item.nextSibling;
|
|
}
|
|
|
|
// Hide the "Show More" button if there are no more to show
|
|
if (item == this._list.lastChild)
|
|
item.setAttribute("hidepage", "true");
|
|
},
|
|
|
|
displayRecommendedResults: function ev_displaySearchResults(aRecommendedAddons, aBrowseAddons) {
|
|
this.clearSection("repo");
|
|
|
|
let formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].getService(Ci.nsIURLFormatter);
|
|
let browseURL = formatter.formatURLPref("extensions.getAddons.browseAddons");
|
|
|
|
let strings = Strings.browser;
|
|
let brandShortName = Strings.brand.GetStringFromName("brandShortName");
|
|
|
|
let whatare = document.createElement("richlistitem");
|
|
whatare.setAttribute("typeName", "banner");
|
|
whatare.setAttribute("class", "panel-listitem");
|
|
whatare.setAttribute("label", strings.GetStringFromName("addonsWhatAre.label"));
|
|
|
|
let desc = strings.GetStringFromName("addonsWhatAre.description");
|
|
desc = desc.replace(/#1/g, brandShortName);
|
|
whatare.setAttribute("description", desc);
|
|
|
|
whatare.setAttribute("button", strings.GetStringFromName("addonsWhatAre.button"));
|
|
whatare.setAttribute("onbuttoncommand", "BrowserUI.newTab('" + browseURL + "', Browser.selectedTab);");
|
|
this.addItem(whatare, "repo");
|
|
|
|
if (aRecommendedAddons.length == 0 && aBrowseAddons.length == 0) {
|
|
let msg = strings.GetStringFromName("addonsSearchNone.recommended");
|
|
let button = strings.GetStringFromName("addonsSearchNone.button");
|
|
let item = this.displaySectionMessage("repo", msg, button, true);
|
|
|
|
this._list.scrollBoxObject.scrollToElement(item);
|
|
return;
|
|
}
|
|
|
|
// Locale sensitive sort
|
|
function nameCompare(a, b) {
|
|
return String.localeCompare(a.name, b.name);
|
|
}
|
|
aRecommendedAddons.sort(nameCompare);
|
|
|
|
// Rating sort
|
|
function ratingCompare(a, b) {
|
|
return a.averageRating < b.averageRating;
|
|
}
|
|
aBrowseAddons.sort(ratingCompare);
|
|
|
|
// We only show extra browse add-ons if the recommended count is small. Otherwise, the user
|
|
// can see more by pressing the "Show More" button
|
|
this.appendSearchResults(aRecommendedAddons, false, aRecommendedAddons.length);
|
|
let minOverflow = (aRecommendedAddons.length >= kAddonPageSize ? 0 : kAddonPageSize);
|
|
let numAdded = this.appendSearchResults(aBrowseAddons, true, minOverflow).length;
|
|
|
|
let totalAddons = aRecommendedAddons.length + numAdded;
|
|
|
|
let showmore = document.createElement("richlistitem");
|
|
showmore.setAttribute("typeName", "showmore");
|
|
showmore.setAttribute("pagelabel", strings.GetStringFromName("addonsBrowseAll.seeMore"));
|
|
showmore.setAttribute("onpagecommand", "ExtensionsView.showMoreSearchResults();");
|
|
showmore.setAttribute("hidepage", numAdded > minOverflow ? "false" : "true");
|
|
showmore.setAttribute("sitelabel", strings.GetStringFromName("addonsBrowseAll.browseSite"));
|
|
showmore.setAttribute("onsitecommand", "ExtensionsView.showMoreResults('" + browseURL + "');");
|
|
this.addItem(showmore, "repo");
|
|
|
|
let evt = document.createEvent("Events");
|
|
evt.initEvent("ViewChanged", true, false);
|
|
this._list.dispatchEvent(evt);
|
|
},
|
|
|
|
displaySearchResults: function ev_displaySearchResults(aAddons, aTotalResults, aSelectFirstResult) {
|
|
this.clearSection("repo");
|
|
|
|
let strings = Strings.browser;
|
|
if (aAddons.length == 0) {
|
|
let msg = strings.GetStringFromName("addonsSearchNone.search");
|
|
let button = strings.GetStringFromName("addonsSearchSuccess2.button");
|
|
let item = this.displaySectionMessage("repo", msg, button, true);
|
|
|
|
if (aSelectFirstResult)
|
|
this._list.scrollBoxObject.scrollToElement(item);
|
|
return;
|
|
}
|
|
|
|
let firstAdded = this.appendSearchResults(aAddons, true)[0];
|
|
if (aSelectFirstResult && firstAdded) {
|
|
this._list.selectItem(firstAdded);
|
|
this._list.scrollBoxObject.scrollToElement(firstAdded);
|
|
}
|
|
|
|
let formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].getService(Ci.nsIURLFormatter);
|
|
|
|
if (aTotalResults > aAddons.length) {
|
|
let showmore = document.createElement("richlistitem");
|
|
showmore.setAttribute("typeName", "showmore");
|
|
showmore.setAttribute("hidepage", "true");
|
|
|
|
let labelBase = strings.GetStringFromName("addonsSearchMore.label");
|
|
let label = PluralForm.get(aTotalResults, labelBase).replace("#1", aTotalResults);
|
|
|
|
showmore.setAttribute("sitelabel", label);
|
|
|
|
let url = Services.prefs.getCharPref("extensions.getAddons.search.browseURL");
|
|
url = url.replace(/%TERMS%/g, encodeURIComponent(this.searchBox.value));
|
|
url = formatter.formatURL(url);
|
|
showmore.setAttribute("onsitecommand", "ExtensionsView.showMoreResults('" + url + "');");
|
|
this.addItem(showmore, "repo");
|
|
}
|
|
|
|
this.displaySectionMessage("repo", null, strings.GetStringFromName("addonsSearchSuccess2.button"), true);
|
|
},
|
|
|
|
showPage: function ev_showPage(aItem) {
|
|
let uri = aItem.getAttribute("homepageURL");
|
|
if (uri)
|
|
BrowserUI.newTab(uri, Browser.selectedTab);
|
|
},
|
|
|
|
get searchBox() {
|
|
delete this.searchBox;
|
|
return this.searchBox = document.getElementById("addons-search-text");
|
|
},
|
|
|
|
doSearch: function ev_doSearch(aTerms) {
|
|
this.searchBox.value = aTerms;
|
|
this.getAddonsFromRepo(aTerms, true);
|
|
},
|
|
|
|
resetSearch: function ev_resetSearch() {
|
|
this.searchBox.value = "";
|
|
this.getAddonsFromRepo("");
|
|
},
|
|
|
|
showMoreResults: function ev_showMoreResults(aURL) {
|
|
if (aURL)
|
|
BrowserUI.newTab(aURL, Browser.selectedTab);
|
|
},
|
|
|
|
updateAll: function ev_updateAll() {
|
|
let aus = Cc["@mozilla.org/browser/addon-update-service;1"].getService(Ci.nsITimerCallback);
|
|
aus.notify(null);
|
|
|
|
if (this._list.selectedItem)
|
|
this._list.selectedItem.focus();
|
|
},
|
|
|
|
observe: function ev_observe(aSubject, aTopic, aData) {
|
|
if (!document)
|
|
return;
|
|
|
|
let json = aSubject.QueryInterface(Ci.nsISupportsString).data;
|
|
let update = JSON.parse(json);
|
|
|
|
let strings = Strings.browser;
|
|
let element = this.getElementForAddon(update.id);
|
|
if (!element)
|
|
return;
|
|
|
|
let addon = element.addon;
|
|
|
|
switch (aTopic) {
|
|
case "addon-update-started":
|
|
element.setAttribute("updateStatus", strings.GetStringFromName("addonUpdate.checking"));
|
|
break;
|
|
case "addon-update-ended":
|
|
let updateable = false;
|
|
let statusMsg = null;
|
|
switch (aData) {
|
|
case "update":
|
|
statusMsg = strings.formatStringFromName("addonUpdate.updating", [update.version], 1);
|
|
updateable = true;
|
|
break;
|
|
case "compatibility":
|
|
if (addon.pendingOperations & AddonManager.PENDING_INSTALL || addon.pendingOperations & AddonManager.PENDING_UPGRADE)
|
|
updateable = true;
|
|
|
|
// A compatibility update may require a restart, but will not fire an install
|
|
if (addon.pendingOperations & AddonManager.PENDING_ENABLE &&
|
|
addon.operationsRequiringRestart & AddonManager.OP_NEEDS_RESTART_ENABLE) {
|
|
statusMsg = strings.GetStringFromName("addonUpdate.compatibility");
|
|
this.showRestart();
|
|
}
|
|
break;
|
|
case "error":
|
|
statusMsg = strings.GetStringFromName("addonUpdate.error");
|
|
break;
|
|
case "no-update":
|
|
// Ignore if no updated was found. Just let the message go blank.
|
|
//statusMsg = strings.GetStringFromName("addonUpdate.noupdate");
|
|
break;
|
|
default:
|
|
// Ignore if no updated was found. Just let the message go blank.
|
|
//statusMsg = strings.GetStringFromName("addonUpdate.noupdate");
|
|
}
|
|
|
|
if (statusMsg)
|
|
element.setAttribute("updateStatus", statusMsg);
|
|
else
|
|
element.removeAttribute("updateStatus");
|
|
|
|
// Tag the add-on so the AddonInstallListener knows it's an update
|
|
if (updateable)
|
|
element.setAttribute("updating", "true");
|
|
break;
|
|
}
|
|
},
|
|
|
|
showAlert: function ev_showAlert(aMessage, aForceDisplay) {
|
|
let strings = Strings.browser;
|
|
|
|
let observer = {
|
|
observe: function (aSubject, aTopic, aData) {
|
|
if (aTopic == "alertclickcallback")
|
|
BrowserUI.showPanel("addons-container");
|
|
}
|
|
};
|
|
|
|
if (aForceDisplay) {
|
|
// Show a toaster alert for restartless add-ons all the time
|
|
let toaster = Cc["@mozilla.org/toaster-alerts-service;1"].getService(Ci.nsIAlertsService);
|
|
let image = "chrome://browser/skin/images/alert-addons-30.png";
|
|
if (this.visible)
|
|
toaster.showAlertNotification(image, strings.GetStringFromName("alertAddons"), aMessage, false, "", null);
|
|
else
|
|
toaster.showAlertNotification(image, strings.GetStringFromName("alertAddons"), aMessage, true, "", observer);
|
|
} else {
|
|
// Only show an alert for a normal add-on if the manager is not visible
|
|
if (!this.visible) {
|
|
let alerts = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
|
|
alerts.showAlertNotification(URI_GENERIC_ICON_XPINSTALL, strings.GetStringFromName("alertAddons"),
|
|
aMessage, true, "", observer, ADDONS_NOTIFICATION_NAME);
|
|
|
|
// Use a preference to help us cleanup this notification in case we don't shutdown correctly
|
|
Services.prefs.setBoolPref("browser.notifications.pending.addons", true);
|
|
Services.prefs.savePrefFile(null);
|
|
}
|
|
}
|
|
},
|
|
|
|
hideAlerts: function ev_hideAlerts() {
|
|
#ifdef ANDROID
|
|
let alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
|
|
let progressListener = alertsService.QueryInterface(Ci.nsIAlertsProgressListener);
|
|
if (progressListener)
|
|
progressListener.onCancel(ADDONS_NOTIFICATION_NAME);
|
|
#endif
|
|
|
|
// Keep our preference in sync
|
|
Services.prefs.clearUserPref("browser.notifications.pending.addons");
|
|
},
|
|
};
|
|
|
|
|
|
function searchFailed() {
|
|
ExtensionsView.clearSection("repo");
|
|
|
|
let strings = Strings.browser;
|
|
let brand = Strings.brand;
|
|
|
|
let failLabel = strings.formatStringFromName("addonsSearchFail.label",
|
|
[brand.GetStringFromName("brandShortName")], 1);
|
|
let failButton = strings.GetStringFromName("addonsSearchFail.retryButton");
|
|
ExtensionsView.displaySectionMessage("repo", failLabel, failButton, true);
|
|
}
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// callback for the recommended search
|
|
var RecommendedSearchResults = {
|
|
cache: null,
|
|
|
|
searchSucceeded: function(aAddons, aAddonCount, aTotalResults) {
|
|
this.cache = aAddons;
|
|
AddonRepository.searchAddons(" ", Services.prefs.getIntPref(PREF_GETADDONS_MAXRESULTS), BrowseSearchResults);
|
|
},
|
|
|
|
searchFailed: searchFailed
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// callback for the browse search
|
|
var BrowseSearchResults = {
|
|
searchSucceeded: function(aAddons, aAddonCount, aTotalResults) {
|
|
ExtensionsView.displayRecommendedResults(RecommendedSearchResults.cache, aAddons);
|
|
},
|
|
|
|
searchFailed: searchFailed
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// callback for a standard search
|
|
var AddonSearchResults = {
|
|
// set by ExtensionsView
|
|
selectFirstResult: false,
|
|
|
|
searchSucceeded: function(aAddons, aAddonCount, aTotalResults) {
|
|
ExtensionsView.displaySearchResults(aAddons, aTotalResults, this.selectFirstResult);
|
|
},
|
|
|
|
searchFailed: searchFailed
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// XPInstall download helper
|
|
function AddonInstallListener() {
|
|
}
|
|
|
|
AddonInstallListener.prototype = {
|
|
onInstallEnded: function(aInstall, aAddon) {
|
|
let needsRestart = false;
|
|
let mode = "";
|
|
if (aInstall.existingAddon && (aInstall.existingAddon.pendingOperations & AddonManager.PENDING_UPGRADE)) {
|
|
needsRestart = true;
|
|
mode = "update";
|
|
} else if (aAddon.pendingOperations & AddonManager.PENDING_INSTALL) {
|
|
needsRestart = true;
|
|
mode = "normal";
|
|
}
|
|
|
|
this._clearRecommendedCache();
|
|
|
|
// if we already have a mode, then we need to show a restart notification
|
|
// otherwise, we are likely a bootstrapped addon
|
|
if (needsRestart)
|
|
ExtensionsView.showRestart(mode);
|
|
|
|
if (aAddon.type != "locale")
|
|
this._showInstallCompleteAlert(true, needsRestart);
|
|
|
|
// only do this if the view has already been inited
|
|
if (!ExtensionsView._list)
|
|
return;
|
|
|
|
let element = ExtensionsView.getElementForAddon(aAddon.id);
|
|
if (!element) {
|
|
element = ExtensionsView._createLocalAddon(aAddon);
|
|
ExtensionsView.addItem(element, "local");
|
|
}
|
|
|
|
if (needsRestart) {
|
|
element.setAttribute("opType", "needs-restart");
|
|
} else {
|
|
if (element.getAttribute("typeName") == "search") {
|
|
if (aAddon.permissions & AddonManager.PERM_CAN_UPGRADE)
|
|
document.getElementById("addons-update-all").disabled = false;
|
|
|
|
ExtensionsView.removeItem(element);
|
|
element = ExtensionsView._createLocalAddon(aAddon);
|
|
ExtensionsView.addItem(element, "local");
|
|
}
|
|
}
|
|
|
|
element.setAttribute("status", "success");
|
|
|
|
// If we are updating an add-on, change the status
|
|
if (element.hasAttribute("updating")) {
|
|
let strings = Strings.browser;
|
|
element.setAttribute("updateStatus", strings.formatStringFromName("addonUpdate.updated", [aAddon.version], 1));
|
|
element.removeAttribute("updating");
|
|
}
|
|
},
|
|
|
|
onInstallFailed: function(aInstall) {
|
|
this._showInstallCompleteAlert(false);
|
|
|
|
if (ExtensionsView.visible) {
|
|
let element = ExtensionsView.getElementForAddon(aInstall.sourceURI.spec);
|
|
if (!element)
|
|
return;
|
|
|
|
element.removeAttribute("opType");
|
|
let strings = Services.strings.createBundle("chrome://global/locale/xpinstall/xpinstall.properties");
|
|
|
|
let error = null;
|
|
switch (aInstall.error) {
|
|
case AddonManager.ERROR_NETWORK_FAILURE:
|
|
error = "error-228";
|
|
break;
|
|
case AddonManager.ERROR_INCORRECT_HASH:
|
|
error = "error-261";
|
|
break;
|
|
case AddonManager.ERROR_CORRUPT_FILE:
|
|
error = "error-207";
|
|
break;
|
|
}
|
|
|
|
try {
|
|
var msg = strings.GetStringFromName(error);
|
|
} catch (ex) {
|
|
msg = strings.formatStringFromName("unknown.error", [aInstall.error], 1);
|
|
}
|
|
element.setAttribute("error", msg);
|
|
}
|
|
},
|
|
|
|
onDownloadProgress: function xpidm_onDownloadProgress(aInstall) {
|
|
let element = ExtensionsView.getElementForAddon(aInstall.sourceURI.spec);
|
|
|
|
#ifdef ANDROID
|
|
let alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
|
|
let progressListener = alertsService.QueryInterface(Ci.nsIAlertsProgressListener);
|
|
if (progressListener)
|
|
progressListener.onProgress(ADDONS_NOTIFICATION_NAME, aInstall.progress, aInstall.maxProgress);
|
|
#endif
|
|
|
|
if (!element)
|
|
return;
|
|
|
|
let opType = element.getAttribute("opType");
|
|
if (!opType)
|
|
element.setAttribute("opType", "needs-install");
|
|
|
|
let progress = Math.round((aInstall.progress / aInstall.maxProgress) * 100);
|
|
element.setAttribute("progress", progress);
|
|
},
|
|
|
|
onDownloadFailed: function(aInstall) {
|
|
this.onInstallFailed(aInstall);
|
|
},
|
|
|
|
onDownloadCancelled: function(aInstall) {
|
|
let strings = Strings.browser;
|
|
let brandBundle = Strings.brand;
|
|
let brandShortName = brandBundle.GetStringFromName("brandShortName");
|
|
let host = (aInstall.originatingURI instanceof Ci.nsIStandardURL) && aInstall.originatingURI.host;
|
|
if (!host)
|
|
host = (aInstall.sourceURI instanceof Ci.nsIStandardURL) && aInstall.sourceURI.host;
|
|
|
|
let error = (host || aInstall.error == 0) ? "addonError" : "addonLocalError";
|
|
if (aInstall.error != 0)
|
|
error += aInstall.error;
|
|
else if (aInstall.addon && aInstall.addon.blocklistState == Ci.nsIBlocklistService.STATE_BLOCKED)
|
|
error += "Blocklisted";
|
|
else if (aInstall.addon && (!aInstall.addon.isCompatible || !aInstall.addon.isPlatformCompatible))
|
|
error += "Incompatible";
|
|
else {
|
|
ExtensionsView.hideAlerts();
|
|
return; // no need to show anything in this case
|
|
}
|
|
|
|
let messageString = strings.GetStringFromName(error);
|
|
messageString = messageString.replace("#1", aInstall.name);
|
|
if (host)
|
|
messageString = messageString.replace("#2", host);
|
|
messageString = messageString.replace("#3", brandShortName);
|
|
messageString = messageString.replace("#4", Services.appinfo.version);
|
|
|
|
ExtensionsView.showAlert(messageString);
|
|
},
|
|
|
|
_showInstallCompleteAlert: function xpidm_showAlert(aSucceeded, aNeedsRestart) {
|
|
let strings = Strings.browser;
|
|
let stringName = "alertAddonsFail";
|
|
if (aSucceeded) {
|
|
stringName = "alertAddonsInstalled";
|
|
if (!aNeedsRestart)
|
|
stringName += "NoRestart";
|
|
}
|
|
|
|
ExtensionsView.showAlert(strings.GetStringFromName(stringName), !aNeedsRestart);
|
|
},
|
|
|
|
_clearRecommendedCache: function xpidm_clearRecommendedCache() {
|
|
let dirService = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties);
|
|
let file = dirService.get("ProfD", Ci.nsILocalFile);
|
|
file.append("recommended-addons.json");
|
|
if (file.exists())
|
|
file.remove(false);
|
|
}
|
|
};
|