gecko/mobile/xul/components/PromptService.js
Doug Turner 462ab84b7f Bug 701833 - Move mobile -> mobile/xul. r=ted sr=mfinkle CLOSED TREE
--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
2011-11-17 09:10:04 -05:00

945 lines
33 KiB
JavaScript

/* ***** 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.
*
* Portions created by the Initial Developer are Copyright (C) 2009
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Fabrice Desré <fabrice.desre@gmail.com>, Original author
*
* 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 Ci = Components.interfaces;
const Cc = Components.classes;
const Cr = Components.results;
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
// Whitelist of methods we remote - to check against malicious data.
// For example, it would be dangerous to allow content to show auth prompts.
const REMOTABLE_METHODS = {
alert: { outParams: [] },
alertCheck: { outParams: [4] },
confirm: { outParams: [] },
prompt: { outParams: [3, 5] },
confirmEx: { outParams: [8] },
confirmCheck: { outParams: [4] },
select: { outParams: [5] }
};
var gPromptService = null;
function PromptService() {
// Depending on if we are in the parent or child, prepare to remote
// certain calls
var appInfo = Cc["@mozilla.org/xre/app-info;1"];
if (!appInfo || appInfo.getService(Ci.nsIXULRuntime).processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT) {
// Parent process
this.inContentProcess = false;
// Used for wakeups service. FIXME: clean up with bug 593407
this.wrappedJSObject = this;
// Setup listener for child messages. We don't need to call
// addMessageListener as the wakeup service will do that for us.
this.receiveMessage = function(aMessage) {
var json = aMessage.json;
switch (aMessage.name) {
case "Prompt:Call":
var method = aMessage.json.method;
if (!REMOTABLE_METHODS.hasOwnProperty(method))
throw "PromptServiceRemoter received an invalid method "+method;
var arguments = aMessage.json.arguments;
var ret = this[method].apply(this, arguments);
// Return multiple return values in objects of form { value: ... },
// and also with the actual return value at the end
arguments.push(ret);
return arguments;
}
};
} else {
// Child process
this.inContentProcess = true;
}
gPromptService = this;
}
PromptService.prototype = {
classID: Components.ID("{9a61149b-2276-4a0a-b79c-be994ad106cf}"),
QueryInterface: XPCOMUtils.generateQI([Ci.nsIPromptFactory, Ci.nsIPromptService, Ci.nsIPromptService2]),
/* ---------- nsIPromptFactory ---------- */
// XXX Copied from nsPrompter.js.
getPrompt: function getPrompt(domWin, iid) {
if (this.inContentProcess)
return ContentPrompt.QueryInterface(iid);
let doc = this.getDocument();
if (!doc) {
let fallback = this._getFallbackService();
return fallback.getPrompt(domWin, iid);
}
let p = new Prompt(domWin, doc);
p.QueryInterface(iid);
return p;
},
/* ---------- private memebers ---------- */
_getFallbackService: function _getFallbackService() {
return Components.classesByID["{7ad1b327-6dfa-46ec-9234-f2a620ea7e00}"]
.getService(Ci.nsIPromptService);
},
getDocument: function getDocument() {
let win = Services.wm.getMostRecentWindow("navigator:browser");
return win ? win.document : null;
},
// nsIPromptService and nsIPromptService2 methods proxy to our Prompt class
// if we can show in-document popups, or to the fallback service otherwise.
callProxy: function(aMethod, aArguments) {
let prompt;
if (this.inContentProcess) {
// Bring this tab to the front, so prompt appears on the right tab
var window = aArguments[0];
if (window && window.document) {
var event = window.document.createEvent("Events");
event.initEvent("DOMWillOpenModalDialog", true, false);
window.dispatchEvent(event);
}
prompt = ContentPrompt;
} else {
let doc = this.getDocument();
if (!doc) {
let fallback = this._getFallbackService();
return fallback[aMethod].apply(fallback, aArguments);
}
let domWin = aArguments[0];
prompt = new Prompt(domWin, doc);
}
return prompt[aMethod].apply(prompt, Array.prototype.slice.call(aArguments, 1));
},
/* ---------- nsIPromptService ---------- */
alert: function() {
return this.callProxy("alert", arguments);
},
alertCheck: function() {
return this.callProxy("alertCheck", arguments);
},
confirm: function() {
return this.callProxy("confirm", arguments);
},
confirmCheck: function() {
return this.callProxy("confirmCheck", arguments);
},
confirmEx: function() {
return this.callProxy("confirmEx", arguments);
},
prompt: function() {
return this.callProxy("prompt", arguments);
},
promptUsernameAndPassword: function() {
return this.callProxy("promptUsernameAndPassword", arguments);
},
promptPassword: function() {
return this.callProxy("promptPassword", arguments);
},
select: function() {
return this.callProxy("select", arguments);
},
/* ---------- nsIPromptService2 ---------- */
promptAuth: function() {
return this.callProxy("promptAuth", arguments);
},
asyncPromptAuth: function() {
return this.callProxy("asyncPromptAuth", arguments);
}
};
// Implementation of nsIPrompt that just forwards to the parent process.
let ContentPrompt = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIPrompt]),
sendMessage: function sendMessage(aMethod) {
let args = Array.prototype.slice.call(arguments);
args[0] = null; // No need to pass "window" argument to the prompt service.
// We send all prompts as sync, even alert (which has no important
// return value), as otherwise program flow will continue, and the
// script can theoretically show several alerts at once. In particular
// this can lead to a bug where you cannot click the earlier one, which
// is now hidden by a new one (and Fennec is helplessly frozen).
var json = { method: aMethod, arguments: args };
var response = this.messageManager.sendSyncMessage("Prompt:Call", json)[0];
// Args copying - for methods that have out values
REMOTABLE_METHODS[aMethod].outParams.forEach(function(i) {
args[i].value = response[i].value;
});
return response.pop(); // final return value was given at the end
}
};
XPCOMUtils.defineLazyServiceGetter(ContentPrompt, "messageManager",
"@mozilla.org/childprocessmessagemanager;1", Ci.nsISyncMessageSender);
// Add remotable methods to ContentPrompt.
for (let [method, _] in Iterator(REMOTABLE_METHODS)) {
ContentPrompt[method] = ContentPrompt.sendMessage.bind(ContentPrompt, method);
}
function Prompt(aDomWin, aDocument) {
this._domWin = aDomWin;
this._doc = aDocument;
}
Prompt.prototype = {
_domWin: null,
_doc: null,
QueryInterface: XPCOMUtils.generateQI([Ci.nsIPrompt, Ci.nsIAuthPrompt, Ci.nsIAuthPrompt2]),
/* ---------- internal methods ---------- */
openDialog: function openDialog(aSrc, aParams) {
let browser = Services.wm.getMostRecentWindow("navigator:browser");
return browser.importDialog(this._domWin, aSrc, aParams);
},
_setupPrompt: function setupPrompt(aDoc, aType, aTitle, aText, aCheck) {
aDoc.getElementById("prompt-" + aType + "-title").appendChild(aDoc.createTextNode(aTitle));
aDoc.getElementById("prompt-" + aType + "-message").appendChild(aDoc.createTextNode(aText));
if (aCheck && aCheck.msg) {
aDoc.getElementById("prompt-" + aType + "-checkbox").checked = aCheck.value;
this.setLabelForNode(aDoc.getElementById("prompt-" + aType + "-checkbox-label"), aCheck.msg);
aDoc.getElementById("prompt-" + aType + "-checkbox").removeAttribute("collapsed");
}
},
commonPrompt: function commonPrompt(aTitle, aText, aValue, aCheckMsg, aCheckState, isPassword) {
var params = new Object();
params.result = false;
params.checkbox = aCheckState;
params.value = aValue;
let dialog = this.openDialog("chrome://browser/content/prompt/prompt.xul", params);
let doc = this._doc;
this._setupPrompt(doc, "prompt", aTitle, aText, {value: aCheckState.value, msg: aCheckMsg});
doc.getElementById("prompt-prompt-textbox").value = aValue.value;
if (isPassword)
doc.getElementById("prompt-prompt-textbox").type = "password";
dialog.waitForClose();
return params.result;
},
//
// Copied from chrome://global/content/commonDialog.js
//
setLabelForNode: function setLabelForNode(aNode, aLabel) {
// This is for labels which may contain embedded access keys.
// If we end in (&X) where X represents the access key, optionally preceded
// by spaces and/or followed by the ':' character, store the access key and
// remove the access key placeholder + leading spaces from the label.
// Otherwise a character preceded by one but not two &s is the access key.
// Store it and remove the &.
// Note that if you change the following code, see the comment of
// nsTextBoxFrame::UpdateAccessTitle.
if (!aLabel)
return;
var accessKey = null;
if (/ *\(\&([^&])\)(:)?$/.test(aLabel)) {
aLabel = RegExp.leftContext + RegExp.$2;
accessKey = RegExp.$1;
} else if (/^(.*[^&])?\&(([^&]).*$)/.test(aLabel)) {
aLabel = RegExp.$1 + RegExp.$2;
accessKey = RegExp.$3;
}
// && is the magic sequence to embed an & in your label.
aLabel = aLabel.replace(/\&\&/g, "&");
if (aNode instanceof Ci.nsIDOMXULLabelElement) {
aNode.setAttribute("value", aLabel);
} else if (aNode instanceof Ci.nsIDOMXULDescriptionElement) {
let text = aNode.ownerDocument.createTextNode(aLabel);
aNode.appendChild(text);
} else { // Set text for other xul elements
aNode.setAttribute("label", aLabel);
}
// XXXjag bug 325251
// Need to set this after aNode.setAttribute("value", aLabel);
if (accessKey)
aNode.setAttribute("accesskey", accessKey);
},
/*
* ---------- interface disambiguation ----------
*
* XXX Copied from nsPrompter.js.
*
* nsIPrompt and nsIAuthPrompt share 3 method names with slightly
* different arguments. All but prompt() have the same number of
* arguments, so look at the arg types to figure out how we're being
* called. :-(
*/
prompt: function prompt() {
if (gPromptService.inContentProcess)
return gPromptService.callProxy("prompt", [null].concat(Array.prototype.slice.call(arguments)));
// also, the nsIPrompt flavor has 5 args instead of 6.
if (typeof arguments[2] == "object")
return this.nsIPrompt_prompt.apply(this, arguments);
else
return this.nsIAuthPrompt_prompt.apply(this, arguments);
},
promptUsernameAndPassword: function promptUsernameAndPassword() {
// Both have 6 args, so use types.
if (typeof arguments[2] == "object")
return this.nsIPrompt_promptUsernameAndPassword.apply(this, arguments);
else
return this.nsIAuthPrompt_promptUsernameAndPassword.apply(this, arguments);
},
promptPassword: function promptPassword() {
// Both have 5 args, so use types.
if (typeof arguments[2] == "object")
return this.nsIPrompt_promptPassword.apply(this, arguments);
else
return this.nsIAuthPrompt_promptPassword.apply(this, arguments);
},
/* ---------- nsIPrompt ---------- */
alert: function alert(aTitle, aText) {
let dialog = this.openDialog("chrome://browser/content/prompt/alert.xul", null);
let doc = this._doc;
this._setupPrompt(doc, "alert", aTitle, aText);
dialog.waitForClose();
},
alertCheck: function alertCheck(aTitle, aText, aCheckMsg, aCheckState) {
let dialog = this.openDialog("chrome://browser/content/prompt/alert.xul", aCheckState);
let doc = this._doc;
this._setupPrompt(doc, "alert", aTitle, aText, {value: aCheckState.value, msg: aCheckMsg});
dialog.waitForClose();
},
confirm: function confirm(aTitle, aText) {
var params = new Object();
params.result = false;
let dialog = this.openDialog("chrome://browser/content/prompt/confirm.xul", params);
let doc = this._doc;
this._setupPrompt(doc, "confirm", aTitle, aText);
dialog.waitForClose();
return params.result;
},
confirmCheck: function confirmCheck(aTitle, aText, aCheckMsg, aCheckState) {
var params = new Object();
params.result = false;
params.checkbox = aCheckState;
let dialog = this.openDialog("chrome://browser/content/prompt/confirm.xul", params);
let doc = this._doc;
this._setupPrompt(doc, "confirm", aTitle, aText, {value: aCheckState.value, msg: aCheckMsg});
dialog.waitForClose();
return params.result;
},
confirmEx: function confirmEx(aTitle, aText, aButtonFlags, aButton0,
aButton1, aButton2, aCheckMsg, aCheckState) {
let numButtons = 0;
let titles = [aButton0, aButton1, aButton2];
let defaultButton = 0;
if (aButtonFlags & Ci.nsIPromptService.BUTTON_POS_1_DEFAULT)
defaultButton = 1;
if (aButtonFlags & Ci.nsIPromptService.BUTTON_POS_2_DEFAULT)
defaultButton = 2;
var params = {
result: false,
checkbox: aCheckState,
defaultButton: defaultButton
}
let dialog = this.openDialog("chrome://browser/content/prompt/confirm.xul", params);
let doc = this._doc;
this._setupPrompt(doc, "confirm", aTitle, aText, {value: aCheckState.value, msg: aCheckMsg});
let bbox = doc.getElementById("prompt-confirm-buttons-box");
while (bbox.lastChild)
bbox.removeChild(bbox.lastChild);
for (let i = 0; i < 3; i++) {
let bTitle = null;
switch (aButtonFlags & 0xff) {
case Ci.nsIPromptService.BUTTON_TITLE_OK :
bTitle = PromptUtils.getLocaleString("OK");
break;
case Ci.nsIPromptService.BUTTON_TITLE_CANCEL :
bTitle = PromptUtils.getLocaleString("Cancel");
break;
case Ci.nsIPromptService.BUTTON_TITLE_YES :
bTitle = PromptUtils.getLocaleString("Yes");
break;
case Ci.nsIPromptService.BUTTON_TITLE_NO :
bTitle = PromptUtils.getLocaleString("No");
break;
case Ci.nsIPromptService.BUTTON_TITLE_SAVE :
bTitle = PromptUtils.getLocaleString("Save");
break;
case Ci.nsIPromptService.BUTTON_TITLE_DONT_SAVE :
bTitle = PromptUtils.getLocaleString("DontSave");
break;
case Ci.nsIPromptService.BUTTON_TITLE_REVERT :
bTitle = PromptUtils.getLocaleString("Revert");
break;
case Ci.nsIPromptService.BUTTON_TITLE_IS_STRING :
bTitle = titles[i];
break;
}
if (bTitle) {
let button = doc.createElement("button");
button.className = "prompt-button";
this.setLabelForNode(button, bTitle);
if (i == defaultButton) {
button.setAttribute("command", "cmd_ok");
}
else {
button.setAttribute("oncommand",
"document.getElementById('prompt-confirm-dialog').PromptHelper.closeConfirm(" + i + ")");
}
bbox.appendChild(button);
}
aButtonFlags >>= 8;
}
dialog.waitForClose();
return params.result;
},
nsIPrompt_prompt: function nsIPrompt_prompt(aTitle, aText, aValue, aCheckMsg, aCheckState) {
return this.commonPrompt(aTitle, aText, aValue, aCheckMsg, aCheckState, false);
},
nsIPrompt_promptPassword: function nsIPrompt_promptPassword(
aTitle, aText, aPassword, aCheckMsg, aCheckState) {
return this.commonPrompt(aTitle, aText, aPassword, aCheckMsg, aCheckState, true);
},
nsIPrompt_promptUsernameAndPassword: function nsIPrompt_promptUsernameAndPassword(
aTitle, aText, aUsername, aPassword, aCheckMsg, aCheckState) {
var params = new Object();
params.result = false;
params.checkbox = aCheckState;
params.user = aUsername;
params.password = aPassword;
let dialog = this.openDialog("chrome://browser/content/prompt/promptPassword.xul", params);
let doc = this._doc;
this._setupPrompt(doc, "password", aTitle, aText, {value: aCheckState.value, msg: aCheckMsg});
doc.getElementById("prompt-password-user").value = aUsername.value;
doc.getElementById("prompt-password-password").value = aPassword.value;
dialog.waitForClose();
return params.result;
},
select: function select(aTitle, aText, aCount, aSelectList, aOutSelection) {
var params = new Object();
params.result = false;
params.selection = aOutSelection;
let dialog = this.openDialog("chrome://browser/content/prompt/select.xul", params);
let doc = this._doc;
this._setupPrompt(doc, "select", aTitle, aText);
let list = doc.getElementById("prompt-select-list");
for (let i = 0; i < aCount; i++)
list.appendItem(aSelectList[i], null, null);
// select the first one
list.selectedIndex = 0;
dialog.waitForClose();
return params.result;
},
/* ---------- nsIAuthPrompt ---------- */
nsIAuthPrompt_prompt : function (title, text, passwordRealm, savePassword, defaultText, result) {
// TODO: Port functions from nsLoginManagerPrompter.js to here
if (defaultText)
result.value = defaultText;
return this.nsIPrompt_prompt(title, text, result, null, {});
},
nsIAuthPrompt_promptUsernameAndPassword : function (aTitle, aText, aPasswordRealm, aSavePassword, aUser, aPass) {
return nsIAuthPrompt_loginPrompt(aTitle, aText, aPasswordRealm, aSavePassword, aUser, aPass);
},
nsIAuthPrompt_promptPassword : function (aTitle, aText, aPasswordRealm, aSavePassword, aPass) {
return nsIAuthPrompt_loginPrompt(aTitle, aText, aPasswordRealm, aSavePassword, null, aPass);
},
nsIAuthPrompt_loginPrompt: function(aTitle, aPasswordRealm, aSavePassword, aUser, aPass) {
let checkMsg = null;
let check = { value: false };
let [hostname, realm, aUser] = PromptUtils.getHostnameAndRealm(aPasswordRealm);
let canSave = PromptUtils.canSaveLogin(hostname, aSavePassword);
if (canSave) {
// Look for existing logins.
let foundLogins = PromptUtils.pwmgr.findLogins({}, hostname, null, realm);
[checkMsg, check] = PromptUtils.getUsernameAndPassword(foundLogins, aUser, aPass);
}
let ok = false;
if (aUser)
ok = this.nsIPrompt_promptUsernameAndPassword(aTitle, aText, aUser, aPass, checkMsg, check);
else
ok = this.nsIPrompt_promptPassword(aTitle, aText, aPass, checkMsg, check);
if (ok && canSave && check.value)
PromptUtils.savePassword(hostname, realm, aUser, aPass);
return ok; },
/* ---------- nsIAuthPrompt2 ---------- */
promptAuth: function promptAuth(aChannel, aLevel, aAuthInfo) {
let checkMsg = null;
let check = { value: false };
let message = PromptUtils.makeDialogText(aChannel, aAuthInfo);
let [username, password] = PromptUtils.getAuthInfo(aAuthInfo);
let [hostname, httpRealm] = PromptUtils.getAuthTarget(aChannel, aAuthInfo);
let foundLogins = PromptUtils.pwmgr.findLogins({}, hostname, null, httpRealm);
let canSave = PromptUtils.canSaveLogin(hostname, null);
if (canSave)
[checkMsg, check] = PromptUtils.getUsernameAndPassword(foundLogins, username, password);
if (username.value && password.value) {
PromptUtils.setAuthInfo(aAuthInfo, username.value, password.value);
}
let canAutologin = false;
if (aAuthInfo.flags & Ci.nsIAuthInformation.AUTH_PROXY &&
!(aAuthInfo.flags & Ci.nsIAuthInformation.PREVIOUS_FAILED) &&
Services.prefs.getBoolPref("signon.autologin.proxy"))
canAutologin = true;
let ok = canAutologin;
if (!ok && aAuthInfo.flags & Ci.nsIAuthInformation.ONLY_PASSWORD)
ok = this.nsIPrompt_promptPassword(null, message, password, checkMsg, check);
else if (!ok)
ok = this.nsIPrompt_promptUsernameAndPassword(null, message, username, password, checkMsg, check);
PromptUtils.setAuthInfo(aAuthInfo, username.value, password.value);
if (ok && canSave && check.value)
PromptUtils.savePassword(foundLogins, username, password, hostname, httpRealm);
return ok;
},
_asyncPrompts: {},
_asyncPromptInProgress: false,
_doAsyncPrompt : function() {
if (this._asyncPromptInProgress)
return;
// Find the first prompt key we have in the queue
let hashKey = null;
for (hashKey in this._asyncPrompts)
break;
if (!hashKey)
return;
// If login manger has logins for this host, defer prompting if we're
// already waiting on a master password entry.
let prompt = this._asyncPrompts[hashKey];
let prompter = prompt.prompter;
let [hostname, httpRealm] = PromptUtils.getAuthTarget(prompt.channel, prompt.authInfo);
let foundLogins = PromptUtils.pwmgr.findLogins({}, hostname, null, httpRealm);
if (foundLogins.length > 0 && PromptUtils.pwmgr.uiBusy)
return;
this._asyncPromptInProgress = true;
prompt.inProgress = true;
let self = this;
let runnable = {
run: function() {
let ok = false;
try {
ok = prompter.promptAuth(prompt.channel, prompt.level, prompt.authInfo);
} catch (e) {
Cu.reportError("_doAsyncPrompt:run: " + e + "\n");
}
delete self._asyncPrompts[hashKey];
prompt.inProgress = false;
self._asyncPromptInProgress = false;
for each (let consumer in prompt.consumers) {
if (!consumer.callback)
// Not having a callback means that consumer didn't provide it
// or canceled the notification
continue;
try {
if (ok)
consumer.callback.onAuthAvailable(consumer.context, prompt.authInfo);
else
consumer.callback.onAuthCancelled(consumer.context, true);
} catch (e) { /* Throw away exceptions caused by callback */ }
}
self._doAsyncPrompt();
}
}
Services.tm.mainThread.dispatch(runnable, Ci.nsIThread.DISPATCH_NORMAL);
},
asyncPromptAuth: function asyncPromptAuth(aChannel, aCallback, aContext, aLevel, aAuthInfo) {
let cancelable = null;
try {
// If the user submits a login but it fails, we need to remove the
// notification bar that was displayed. Conveniently, the user will
// be prompted for authentication again, which brings us here.
//this._removeLoginNotifications();
cancelable = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsICancelable]),
callback: aCallback,
context: aContext,
cancel: function() {
this.callback.onAuthCancelled(this.context, false);
this.callback = null;
this.context = null;
}
};
let [hostname, httpRealm] = PromptUtils.getAuthTarget(aChannel, aAuthInfo);
let hashKey = aLevel + "|" + hostname + "|" + httpRealm;
let asyncPrompt = this._asyncPrompts[hashKey];
if (asyncPrompt) {
asyncPrompt.consumers.push(cancelable);
return cancelable;
}
asyncPrompt = {
consumers: [cancelable],
channel: aChannel,
authInfo: aAuthInfo,
level: aLevel,
inProgress : false,
prompter: this
}
this._asyncPrompts[hashKey] = asyncPrompt;
this._doAsyncPrompt();
} catch (e) {
Cu.reportError("PromptService: " + e + "\n");
throw e;
}
return cancelable;
}
};
let PromptUtils = {
getLocaleString: function pu_getLocaleString(aKey, aService) {
if (aService == "passwdmgr")
return this.passwdBundle.GetStringFromName(aKey);
return this.bundle.GetStringFromName(aKey);
},
get pwmgr() {
delete this.pwmgr;
return this.pwmgr = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
},
getHostnameAndRealm: function pu_getHostnameAndRealm(aRealmString) {
let httpRealm = /^.+ \(.+\)$/;
if (httpRealm.test(aRealmString))
return [null, null, null];
let uri = Services.io.newURI(aRealmString, null, null);
let pathname = "";
if (uri.path != "/")
pathname = uri.path;
let formattedHostname = this._getFormattedHostname(uri);
return [formattedHostname, formattedHostname + pathname, uri.username];
},
canSaveLogin: function pu_canSaveLogin(aHostname, aSavePassword) {
let canSave = !this._inPrivateBrowsing && this.pwmgr.getLoginSavingEnabled(aHostname)
if (aSavePassword)
canSave = canSave && (aSavePassword == Ci.nsIAuthPrompt.SAVE_PASSWORD_PERMANENTLY)
return canSave;
},
getUsernameAndPassword: function pu_getUsernameAndPassword(aFoundLogins, aUser, aPass) {
let checkLabel = null;
let check = { value: false };
let selectedLogin;
checkLabel = this.getLocaleString("rememberPassword", "passwdmgr");
// XXX Like the original code, we can't deal with multiple
// account selection. (bug 227632)
if (aFoundLogins.length > 0) {
selectedLogin = aFoundLogins[0];
// If the caller provided a username, try to use it. If they
// provided only a password, this will try to find a password-only
// login (or return null if none exists).
if (aUser.value)
selectedLogin = this.findLogin(aFoundLogins, "username", aUser.value);
if (selectedLogin) {
check.value = true;
aUser.value = selectedLogin.username;
// If the caller provided a password, prefer it.
if (!aPass.value)
aPass.value = selectedLogin.password;
}
}
return [checkLabel, check];
},
findLogin: function pu_findLogin(aLogins, aName, aValue) {
for (let i = 0; i < aLogins.length; i++)
if (aLogins[i][aName] == aValue)
return aLogins[i];
return null;
},
savePassword: function pu_savePassword(aLogins, aUser, aPass, aHostname, aRealm) {
let selectedLogin = this.findLogin(aLogins, "username", aUser.value);
// If we didn't find an existing login, or if the username
// changed, save as a new login.
if (!selectedLogin) {
// add as new
var newLogin = Cc["@mozilla.org/login-manager/loginInfo;1"].createInstance(Ci.nsILoginInfo);
newLogin.init(aHostname, null, aRealm, aUser.value, aPass.value, "", "");
this.pwmgr.addLogin(newLogin);
} else if (aPass.value != selectedLogin.password) {
// update password
this.updateLogin(selectedLogin, aPass.value);
} else {
this.updateLogin(selectedLogin);
}
},
updateLogin: function pu_updateLogin(aLogin, aPassword) {
let now = Date.now();
let propBag = Cc["@mozilla.org/hash-property-bag;1"].createInstance(Ci.nsIWritablePropertyBag);
if (aPassword) {
propBag.setProperty("password", aPassword);
// Explicitly set the password change time here (even though it would
// be changed automatically), to ensure that it's exactly the same
// value as timeLastUsed.
propBag.setProperty("timePasswordChanged", now);
}
propBag.setProperty("timeLastUsed", now);
propBag.setProperty("timesUsedIncrement", 1);
this.pwmgr.modifyLogin(aLogin, propBag);
},
// JS port of http://mxr.mozilla.org/mozilla-central/source/embedding/components/windowwatcher/src/nsPrompt.cpp#388
makeDialogText: function pu_makeDialogText(aChannel, aAuthInfo) {
let isProxy = (aAuthInfo.flags & Ci.nsIAuthInformation.AUTH_PROXY);
let isPassOnly = (aAuthInfo.flags & Ci.nsIAuthInformation.ONLY_PASSWORD);
let username = aAuthInfo.username;
let [displayHost, realm] = this.getAuthTarget(aChannel, aAuthInfo);
// Suppress "the site says: $realm" when we synthesized a missing realm.
if (!aAuthInfo.realm && !isProxy)
realm = "";
// Trim obnoxiously long realms.
if (realm.length > 150) {
realm = realm.substring(0, 150);
// Append "..." (or localized equivalent).
realm += this.ellipsis;
}
let text;
if (isProxy)
text = this.bundle.formatStringFromName("EnterLoginForProxy", [realm, displayHost], 2);
else if (isPassOnly)
text = this.bundle.formatStringFromName("EnterPasswordFor", [username, displayHost], 2);
else if (!realm)
text = this.bundle.formatStringFromName("EnterUserPasswordFor", [displayHost], 1);
else
text = this.bundle.formatStringFromName("EnterLoginForRealm", [realm, displayHost], 2);
return text;
},
// JS port of http://mxr.mozilla.org/mozilla-central/source/embedding/components/windowwatcher/public/nsPromptUtils.h#89
getAuthHostPort: function pu_getAuthHostPort(aChannel, aAuthInfo) {
let uri = aChannel.URI;
let res = { host: null, port: -1 };
if (aAuthInfo.flags & aAuthInfo.AUTH_PROXY) {
let proxy = aChannel.QueryInterface(Ci.nsIProxiedChannel);
res.host = proxy.proxyInfo.host;
res.port = proxy.proxyInfo.port;
} else {
res.host = uri.host;
res.port = uri.port;
}
return res;
},
getAuthTarget : function pu_getAuthTarget(aChannel, aAuthInfo) {
let hostname, realm;
// If our proxy is demanding authentication, don't use the
// channel's actual destination.
if (aAuthInfo.flags & Ci.nsIAuthInformation.AUTH_PROXY) {
if (!(aChannel instanceof Ci.nsIProxiedChannel))
throw "proxy auth needs nsIProxiedChannel";
let info = aChannel.proxyInfo;
if (!info)
throw "proxy auth needs nsIProxyInfo";
// Proxies don't have a scheme, but we'll use "moz-proxy://"
// so that it's more obvious what the login is for.
let idnService = Cc["@mozilla.org/network/idn-service;1"].getService(Ci.nsIIDNService);
hostname = "moz-proxy://" + idnService.convertUTF8toACE(info.host) + ":" + info.port;
realm = aAuthInfo.realm;
if (!realm)
realm = hostname;
return [hostname, realm];
}
hostname = this.getFormattedHostname(aChannel.URI);
// If a HTTP WWW-Authenticate header specified a realm, that value
// will be available here. If it wasn't set or wasn't HTTP, we'll use
// the formatted hostname instead.
realm = aAuthInfo.realm;
if (!realm)
realm = hostname;
return [hostname, realm];
},
getAuthInfo : function pu_getAuthInfo(aAuthInfo) {
let flags = aAuthInfo.flags;
let username = {value: ""};
let password = {value: ""};
if (flags & Ci.nsIAuthInformation.NEED_DOMAIN && aAuthInfo.domain)
username.value = aAuthInfo.domain + "\\" + aAuthInfo.username;
else
username.value = aAuthInfo.username;
password.value = aAuthInfo.password
return [username, password];
},
setAuthInfo : function (aAuthInfo, username, password) {
var flags = aAuthInfo.flags;
if (flags & Ci.nsIAuthInformation.NEED_DOMAIN) {
// Domain is separated from username by a backslash
var idx = username.indexOf("\\");
if (idx == -1) {
aAuthInfo.username = username;
} else {
aAuthInfo.domain = username.substring(0, idx);
aAuthInfo.username = username.substring(idx+1);
}
} else {
aAuthInfo.username = username;
}
aAuthInfo.password = password;
},
getFormattedHostname : function pu_getFormattedHostname(uri) {
let scheme = uri.scheme;
let hostname = scheme + "://" + uri.host;
// If the URI explicitly specified a port, only include it when
// it's not the default. (We never want "http://foo.com:80")
port = uri.port;
if (port != -1) {
let handler = Services.io.getProtocolHandler(scheme);
if (port != handler.defaultPort)
hostname += ":" + port;
}
return hostname;
},
};
XPCOMUtils.defineLazyGetter(PromptUtils, "passwdBundle", function () {
return Services.strings.createBundle("chrome://passwordmgr/locale/passwordmgr.properties");
});
XPCOMUtils.defineLazyGetter(PromptUtils, "bundle", function () {
return Services.strings.createBundle("chrome://global/locale/commonDialogs.properties");
});
const NSGetFactory = XPCOMUtils.generateNSGetFactory([PromptService]);