mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
42ac5146bd
--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
1952 lines
66 KiB
XML
1952 lines
66 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE bindings [
|
|
<!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd">
|
|
%browserDTD;
|
|
]>
|
|
|
|
<bindings
|
|
xmlns="http://www.mozilla.org/xbl"
|
|
xmlns:xbl="http://www.mozilla.org/xbl"
|
|
xmlns:svg="http://www.w3.org/2000/svg"
|
|
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
|
|
<binding id="autocomplete-aligned" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete">
|
|
<implementation implements="nsIDOMEventListener">
|
|
<constructor>
|
|
<![CDATA[
|
|
window.addEventListener("keydown", this, true);
|
|
window.addEventListener("PopupChanged", this, true);
|
|
window.addEventListener("PanBegin", this, true);
|
|
]]>
|
|
</constructor>
|
|
<destructor>
|
|
<![CDATA[
|
|
window.removeEventListener("keydown", this, true);
|
|
window.removeEventListener("PopupChanged", this, true);
|
|
window.removeEventListener("PanBegin", this, true);
|
|
]]>
|
|
</destructor>
|
|
<property name="mIgnoreClick" onget="return true;" onset="val;"/>
|
|
<property name="readOnly" onget="return this.inputField.readOnly;">
|
|
<setter><![CDATA[
|
|
let input = this.inputField;
|
|
if (val == input.readOnly)
|
|
return;
|
|
|
|
input.readOnly = val;
|
|
val ? this.setAttribute("readonly", "true")
|
|
: this.removeAttribute("readonly");
|
|
|
|
// This is a workaround needed to cycle focus for the IME state
|
|
// to be set properly (bug 488420)
|
|
input.blur();
|
|
input.focus();
|
|
|
|
if (val)
|
|
input.selectionStart = input.selectionEnd = input.textLength;
|
|
|
|
return val;
|
|
]]></setter>
|
|
</property>
|
|
|
|
<method name="openPopup">
|
|
<body><![CDATA[
|
|
this.popup.openAutocompletePopup(this, null);
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="closePopup">
|
|
<body><![CDATA[
|
|
// hack! we want to revert to the "all results" popup when the
|
|
// controller would otherwise close us because of an empty search
|
|
// string.
|
|
if (this.value == "")
|
|
this.showHistoryPopup();
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="handleEvent">
|
|
<parameter name="aEvent"/>
|
|
<body><![CDATA[
|
|
switch (aEvent.type) {
|
|
case "keydown":
|
|
// If there is no VKB the user won't be able to enter any letter,
|
|
// but if the urlbar receive a keydown when it is readOnly this
|
|
// could be because of a hardware keyboard or a user generated event.
|
|
// In this case we want the text to be taken into account.
|
|
if (!this.collapsed && !this.hasAttribute("inactive") && this.readOnly &&
|
|
!(aEvent.originalTarget instanceof HTMLInputElement))
|
|
this.readOnly = false;
|
|
|
|
break;
|
|
case "PopupChanged":
|
|
if (aEvent.detail)
|
|
this.setAttribute("inactive", "true");
|
|
else
|
|
this.removeAttribute("inactive");
|
|
break;
|
|
|
|
case "PanBegin":
|
|
if (!this.collapsed && !this.readOnly) {
|
|
this.readOnly = true;
|
|
this.blur();
|
|
}
|
|
break;
|
|
}
|
|
]]></body>
|
|
</method>
|
|
</implementation>
|
|
|
|
<handlers>
|
|
<handler event="text" phase="bubbling">
|
|
<![CDATA[
|
|
if (this.mController.input == this)
|
|
this.mController.handleText();
|
|
]]>
|
|
</handler>
|
|
|
|
<handler event="blur" phase="capturing">
|
|
<![CDATA[
|
|
// Bug 583341 - suppress disconnect of autocomplete controller
|
|
this._dontBlur = true;
|
|
]]>
|
|
</handler>
|
|
|
|
<handler event="TapDouble" phase="capturing">
|
|
<![CDATA[
|
|
let selectAll = Services.prefs.getBoolPref("browser.urlbar.doubleClickSelectsAll");
|
|
if (selectAll)
|
|
this.select();
|
|
]]>
|
|
</handler>
|
|
|
|
<handler event="TapLong" phase="capturing">
|
|
<![CDATA[
|
|
let box = this.inputField.parentNode;
|
|
box.showContextMenu(this, true);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="popup_autocomplete_result">
|
|
<handlers>
|
|
<handler event="contextmenu" phase="capturing">
|
|
<![CDATA[
|
|
let url = this.getAttribute("url");
|
|
if (!url)
|
|
return;
|
|
|
|
let types = [];
|
|
try { // In case makeURI fails.
|
|
let uri = Util.makeURI(url);
|
|
if (Util.isOpenableScheme(uri.scheme))
|
|
types.push("link-openable");
|
|
if (Util.isShareableScheme(uri.scheme))
|
|
types.push("link-shareable");
|
|
} catch (ex) { Util.dumpLn(ex); }
|
|
|
|
let value = this.getAttribute("value");
|
|
let data = {
|
|
target: this,
|
|
json: {
|
|
types: types,
|
|
label: value,
|
|
linkTitle: value,
|
|
linkURL: url
|
|
}
|
|
};
|
|
|
|
ContextHelper.showPopup(data);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
<content orient="vertical">
|
|
<xul:hbox class="autocomplete-item-container" xbl:inherits="favorite,remote,search" mousethrough="always">
|
|
<xul:image xbl:inherits="src"/>
|
|
<xul:vbox flex="1">
|
|
<xul:label class="autocomplete-item-label" crop="center" xbl:inherits="value"/>
|
|
<xul:label class="autocomplete-item-subtitle" xbl:inherits="value=subtitle" crop="center"/>
|
|
</xul:vbox>
|
|
<xul:vbox align="end">
|
|
<xul:label class="autocomplete-item-tags" value="" xbl:inherits="value=tags"/>
|
|
<xul:label class="autocomplete-item-badge" value="" xbl:inherits="value=badge"/>
|
|
</xul:vbox>
|
|
</xul:hbox>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="popup_autocomplete">
|
|
<content class="autocomplete-box" flex="1">
|
|
<!-- 24 child items, to match browser.urlbar.maxRichResults -->
|
|
<xul:scrollbox anonid="autocomplete-items"
|
|
class="autocomplete-items" orient="vertical" flex="1">
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
<xul:autocompleteresult/>
|
|
</xul:scrollbox>
|
|
<children/>
|
|
</content>
|
|
|
|
<implementation implements="nsIAutoCompletePopup">
|
|
<!-- Used by the chrome input handler -->
|
|
<property name="boxObject"
|
|
readonly="true"
|
|
onget="return this._items.boxObject;"/>
|
|
|
|
<field name="_scrollBoxObject">
|
|
this.boxObject.QueryInterface(Ci.nsIScrollBoxObject);
|
|
</field>
|
|
|
|
<!-- Used by the badges implementation -->
|
|
<field name="_badges">[]</field>
|
|
<field name="_badgesTimeout">-1</field>
|
|
|
|
<!-- nsIAutocompleteInput -->
|
|
<property name="overrideValue"
|
|
readonly="true"
|
|
onget="return null;"/>
|
|
|
|
<field name="_input"/>
|
|
<property name="input"
|
|
readonly="true"
|
|
onget="return this._input;"/>
|
|
|
|
<field name="_selectedIndex">-1</field>
|
|
<field name="_selectedItem"/>
|
|
<property name="selectedIndex" onget="return this._selectedIndex;">
|
|
<setter><![CDATA[
|
|
// Ignore invalid indices
|
|
if (val < -1 ||
|
|
val > this._matchCount - 1)
|
|
return val;
|
|
|
|
if (this._selectedItem)
|
|
this._styleItem(this._selectedItem, false);
|
|
|
|
// highlight the selected item
|
|
let item = this._items.childNodes.item(val);
|
|
if (item) {
|
|
this._selectedItem = item;
|
|
this._styleItem(this._selectedItem, true);
|
|
this._scrollBoxObject.ensureElementIsVisible(this._selectedItem);
|
|
}
|
|
|
|
return this._selectedIndex = val;
|
|
]]></setter>
|
|
</property>
|
|
|
|
<field name="_popupOpen">false</field>
|
|
<property name="popupOpen"
|
|
readonly="true"
|
|
onget="return this._popupOpen;"/>
|
|
|
|
<method name="openAutocompletePopup">
|
|
<parameter name="aInput"/>
|
|
<parameter name="aElement"/>
|
|
<body><![CDATA[
|
|
if (this._popupOpen)
|
|
return;
|
|
|
|
this._selectedItem = null;
|
|
this._input = aInput;
|
|
this._popupOpen = true;
|
|
|
|
this.invalidate();
|
|
|
|
let event = document.createEvent("Events");
|
|
event.initEvent("popupshown", true, false);
|
|
this.dispatchEvent(event);
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="closePopup">
|
|
<body><![CDATA[
|
|
if (!this._popupOpen)
|
|
return;
|
|
|
|
this.selectedIndex = -1;
|
|
this.input.controller.stopSearch();
|
|
this._popupOpen = false;
|
|
|
|
let event = document.createEvent("Events");
|
|
event.initEvent("popuphidden", true, false);
|
|
this.dispatchEvent(event);
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="scrollToTop">
|
|
<body><![CDATA[
|
|
if (this._items.scrollTop || this._items.scrollLeft)
|
|
this._scrollBoxObject.scrollTo(0, 0);
|
|
]]></body>
|
|
</method>
|
|
|
|
<!-- Helper used by active dialog system -->
|
|
<method name="close">
|
|
<body><![CDATA[
|
|
this.closePopup();
|
|
]]></body>
|
|
</method>
|
|
|
|
<field name="_XULNS">("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul")</field>
|
|
|
|
<method name="invalidate">
|
|
<body><![CDATA[
|
|
// Don't bother doing work if we're not even open
|
|
if (!this.popupOpen)
|
|
return;
|
|
|
|
let controller = this.input.controller;
|
|
let searchString = controller.searchString;
|
|
let items = this._items;
|
|
|
|
// Need to iterate over all our existing entries at a minimum, to make
|
|
// sure they're either updated or cleared out. We might also have to
|
|
// add extra items.
|
|
let matchCount = this._matchCount;
|
|
let children = items.childNodes;
|
|
let iterCount = Math.max(children.length, matchCount);
|
|
|
|
let searchSubtitle = Strings.browser.formatStringFromName("opensearch.searchFor", [searchString], 1);
|
|
|
|
for (let i = 0; i < iterCount; ++i) {
|
|
let item = children.item(i);
|
|
|
|
// Create an item if needed
|
|
if (!item) {
|
|
item = document.createElementNS(this._XULNS, "xul:autocompleteresult");
|
|
items.appendChild(item);
|
|
}
|
|
|
|
item._index = i;
|
|
|
|
// Check whether there's an entry to fill
|
|
if (i > matchCount - 1) {
|
|
// Just clear out the old item's value. CSS takes care of hiding
|
|
// everything else based on value="" (star, tags, etc.)
|
|
item.setAttribute("value", "");
|
|
item._empty = true;
|
|
|
|
continue;
|
|
}
|
|
|
|
// Assign the values
|
|
let type = controller.getStyleAt(i);
|
|
let title = controller.getCommentAt(i);
|
|
let tags = '';
|
|
|
|
if (type == "tag") {
|
|
try {
|
|
[, title, tags] = title.match(/^(.+) \u2013 (.+)$/);
|
|
} catch (e) {}
|
|
}
|
|
item.setAttribute("tags", tags);
|
|
|
|
let url = controller.getValueAt(i);
|
|
item.setAttribute("value", title || url);
|
|
|
|
// remove the badge only if the url has changed
|
|
if (item._empty || item.getAttribute("url") != url) {
|
|
item.setAttribute("url", url);
|
|
item.setAttribute("subtitle", url);
|
|
item.removeAttribute("badge");
|
|
item.removeAttribute("remote");
|
|
item.removeAttribute("search");
|
|
}
|
|
|
|
let isBookmark = ((type == "bookmark") || (type == "tag"));
|
|
item.setAttribute("favorite", isBookmark);
|
|
item.setAttribute("src", controller.getImageAt(i));
|
|
|
|
if (type=="search") {
|
|
item.setAttribute("search", true);
|
|
item.setAttribute("subtitle", searchSubtitle);
|
|
}
|
|
|
|
item._empty = false;
|
|
}
|
|
|
|
// Show the "no results" or "all bookmarks" entries as needed
|
|
this._updateNoResultsItem(matchCount);
|
|
|
|
// Make sure the list is scrolled to the top
|
|
this.scrollToTop();
|
|
this._invalidateBadges();
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_updateNoResultsItem">
|
|
<parameter name="isResults" />
|
|
<body><![CDATA[
|
|
let noResultsItem = this._items.childNodes.item(1);
|
|
if (isResults) {
|
|
noResultsItem.className = "";
|
|
} else {
|
|
noResultsItem.className = "noresults";
|
|
noResultsItem.setAttribute("value", "]]>&noResults.label;<![CDATA[");
|
|
noResultsItem.removeAttribute("favorite");
|
|
noResultsItem.removeAttribute("url");
|
|
noResultsItem.removeAttribute("src");
|
|
noResultsItem.removeAttribute("tags");
|
|
noResultsItem.removeAttribute("badge");
|
|
noResultsItem.removeAttribute("remote");
|
|
noResultsItem.removeAttribute("search");
|
|
noResultsItem.removeAttribute("subtitle");
|
|
}
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="selectBy">
|
|
<parameter name="aReverse"/>
|
|
<parameter name="aPage"/>
|
|
<body><![CDATA[
|
|
let newIndex;
|
|
let lastIndex = this._matchCount - 1;
|
|
|
|
if (this._selectedIndex == -1)
|
|
newIndex = aReverse ? lastIndex : 0;
|
|
else
|
|
newIndex = this._selectedIndex + (aReverse ? -1 : 1);
|
|
|
|
// Deal with rollover
|
|
if (newIndex > lastIndex)
|
|
newIndex = 0;
|
|
else if (newIndex < 0)
|
|
newIndex = lastIndex;
|
|
|
|
this.selectedIndex = newIndex;
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="registerBadgeHandler">
|
|
<parameter name="aURL"/>
|
|
<parameter name="aHandler"/>
|
|
<body><![CDATA[
|
|
if (!aHandler)
|
|
return false;
|
|
|
|
this._badges[aURL] = aHandler;
|
|
return true;
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="unregisterBagdeHandler">
|
|
<parameter name="aURL"/>
|
|
<body><![CDATA[
|
|
if (this._badges[aURL])
|
|
delete this._badges[aURL];
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_getRemoteTabs">
|
|
<body><![CDATA[
|
|
// This method does as little as possible to retrieve data about remote
|
|
// tabs. Only the raw data is returned. Nothing is post-processed, which
|
|
// could happen in the remotetabs-list binding method of the same name.
|
|
|
|
// Don't do anything if the Weave isn't ready
|
|
if (document.getElementById("cmd_remoteTabs").getAttribute("disabled") == "true")
|
|
return [];
|
|
|
|
// Don't do anything if the tabs engine isn't ready
|
|
let engine = Weave.Engines.get("tabs");
|
|
if (!engine)
|
|
return [];
|
|
|
|
// Generate the list of tabs we already have locally. Do not force a
|
|
// tab engine sync.
|
|
let tabs = [];
|
|
for (let [guid, client] in Iterator(engine.getAllClients())) {
|
|
client.tabs.forEach(function({ title, urlHistory, icon }) {
|
|
let pageURL = urlHistory[0];
|
|
|
|
tabs.push({
|
|
title: title || pageURL,
|
|
uri: pageURL,
|
|
icon: icon
|
|
});
|
|
});
|
|
};
|
|
|
|
return tabs;
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_invalidateBadges">
|
|
<body><![CDATA[
|
|
window.clearTimeout(this._badgesTimeout);
|
|
|
|
this._badgesTimeout = window.setTimeout(function(self) {
|
|
#ifdef MOZ_SERVICES_SYNC
|
|
let remoteItems = self._getRemoteTabs();
|
|
#endif
|
|
for (let i = 0; i < self._items.childNodes.length; i++) {
|
|
let item = self._items.childNodes[i];
|
|
if (!item.hasAttribute("url"))
|
|
continue;
|
|
|
|
let itemURL = item.getAttribute("url");
|
|
|
|
#ifdef MOZ_SERVICES_SYNC
|
|
// check if the tab is in the remote list
|
|
for (let i = 0; i < remoteItems.length; i++) {
|
|
let remoteURL = remoteItems[i].uri;
|
|
if (remoteURL == itemURL)
|
|
item.setAttribute("remote", "true");
|
|
}
|
|
#endif
|
|
|
|
for (let badgeURL in self._badges) {
|
|
if (itemURL.indexOf(badgeURL) == 0) {
|
|
// wrap the item to prevent setting a badge on a wrong item
|
|
let wrapper = {
|
|
set: function(aBadge) {
|
|
if (item.getAttribute("url") != itemURL)
|
|
return;
|
|
|
|
if (!aBadge || aBadge == "")
|
|
item.removeAttribute("badge");
|
|
else
|
|
item.setAttribute("badge", aBadge);
|
|
}
|
|
};
|
|
|
|
let handler = self._badges[badgeURL];
|
|
handler.updateBadge ? handler.updateBadge(wrapper) : handler(wrapper);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}, 300, this);
|
|
]]></body>
|
|
</method>
|
|
|
|
<!-- Helpers -->
|
|
<field name="_items">
|
|
document.getAnonymousElementByAttribute(this,
|
|
"anonid", "autocomplete-items");
|
|
</field>
|
|
|
|
<property name="_matchCount"
|
|
readonly="true">
|
|
<getter><![CDATA[
|
|
return this.input.controller.matchCount;
|
|
]]></getter>
|
|
</property>
|
|
|
|
<method name="_styleItem">
|
|
<parameter name="aItem"/>
|
|
<parameter name="aAddStyle"/>
|
|
<body><![CDATA[
|
|
if (aAddStyle)
|
|
aItem.className += " autocompleteresult-selected";
|
|
else
|
|
aItem.className = aItem.className.replace(/\s*autocompleteresult-selected/, "");
|
|
]]></body>
|
|
</method>
|
|
</implementation>
|
|
|
|
<handlers>
|
|
<handler event="click" button="0">
|
|
<![CDATA[
|
|
let target = event.originalTarget;
|
|
if (target._empty == false) {
|
|
this._selectedIndex = target._index;
|
|
|
|
// If textbox has composition string, setValue for input element
|
|
// doesn't work well. So, before calling handleEnter,
|
|
// we need commit composition string.
|
|
// More detail is bug 632744.
|
|
try {
|
|
let imeEditor = this.input.controller.input.editor.QueryInterface(Ci.nsIEditorIMESupport);
|
|
if (imeEditor.composing)
|
|
imeEditor.forceCompositionEnd();
|
|
} catch(e) { }
|
|
this.input.controller.handleEnter(true);
|
|
}
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="place-base">
|
|
<content/>
|
|
|
|
<handlers>
|
|
<handler event="click" button="0">
|
|
<![CDATA[
|
|
if (this.control)
|
|
this.control._fireOpen(event, this);
|
|
]]>
|
|
</handler>
|
|
<handler event="contextmenu" phase="capturing">
|
|
<![CDATA[
|
|
if (!this.uri || this._isEditing)
|
|
return;
|
|
|
|
let types = ["edit-bookmark"];
|
|
try { // In case makeURI fails.
|
|
if (Util.isOpenableScheme(this.uri.scheme))
|
|
types.push("link-openable");
|
|
if (Util.isShareableScheme(this.uri.scheme))
|
|
types.push("link-shareable");
|
|
} catch (ex) { Util.dumpLn(ex); }
|
|
|
|
let data = {
|
|
target: this,
|
|
json: {
|
|
types: types,
|
|
label: this.name,
|
|
linkTitle: this.name,
|
|
linkURL: this.spec
|
|
}};
|
|
|
|
ContextHelper.showPopup(data);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
|
|
<implementation>
|
|
<field name="_uri">null</field>
|
|
<field name="_control">null</field>
|
|
<field name="_isEditing">false</field>
|
|
|
|
<field name="_nameField">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "name");
|
|
</field>
|
|
<field name="_uriField">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "uri");
|
|
</field>
|
|
<field name="_tagsField">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "tags");
|
|
</field>
|
|
<property name="itemId" onget="return this.getAttribute('itemid');"/>
|
|
<property name="type" onget="return this.getAttribute('type');"/>
|
|
|
|
<property name="uri">
|
|
<getter><![CDATA[
|
|
if (!this._uri && this.getAttribute("uri"))
|
|
this._uri = Services.io.newURI(this.getAttribute("uri"), null, null);
|
|
|
|
return this._uri;
|
|
]]></getter>
|
|
</property>
|
|
|
|
<property name="name" onget="return this._nameField.value"
|
|
onset="this._nameField.value = val; return val;"/>
|
|
<property name="spec" onget="return this._uriField.value"
|
|
onset="this._uriField.value = val; return val;"/>
|
|
<property name="tags" onget="return this._tagsField.value"
|
|
onset="this._tagsField.value = val; return val;"/>
|
|
<property name="tagsAsArray" readonly="true">
|
|
<getter>
|
|
<![CDATA[
|
|
// we don't require the leading space (after each comma)
|
|
var tags = this.tags.split(",");
|
|
for (var i = 0; i < tags.length; i++) {
|
|
// remove trailing and leading spaces
|
|
tags[i] = tags[i].trim();
|
|
|
|
// remove empty entries from the array.
|
|
if (tags[i] == "") {
|
|
tags.splice(i, 1);
|
|
i--;
|
|
}
|
|
}
|
|
|
|
return tags;
|
|
]]>
|
|
</getter>
|
|
</property>
|
|
<property name="isEditing" readonly="true" onget="return this._isEditing;"/>
|
|
<property name="isReadOnly" readonly="true">
|
|
<getter><![CDATA[
|
|
return this.control && this.control._readOnlyFolders.indexOf(parseInt(this.itemId, 10)) != -1;
|
|
]]></getter>
|
|
</property>
|
|
<property name="control" readonly="true">
|
|
<getter>
|
|
<![CDATA[
|
|
if (this._control)
|
|
return this._control;
|
|
|
|
let parent = this.parentNode;
|
|
while (parent) {
|
|
if (parent.localName == "placelist") {
|
|
this._control = parent;
|
|
return this._control;
|
|
}
|
|
parent = parent.parentNode;
|
|
}
|
|
return null;
|
|
]]>
|
|
</getter>
|
|
</property>
|
|
|
|
<method name="startEditing">
|
|
<body>
|
|
<![CDATA[
|
|
if (!this.itemId || this.isReadOnly)
|
|
return;
|
|
|
|
this._isEditing = true;
|
|
if (this.control) {
|
|
this.setAttribute("selected", "true");
|
|
let self = this;
|
|
setTimeout(function() {
|
|
if (self.control)
|
|
self.control.scrollBoxObject.ensureElementIsVisible(self);
|
|
}, 0);
|
|
this.control.activeItem = this;
|
|
}
|
|
|
|
this.updateFields();
|
|
|
|
this._nameField.focus();
|
|
this._nameField.select();
|
|
]]>
|
|
</body>
|
|
</method>
|
|
<method name="stopEditing">
|
|
<parameter name="shouldSave"/>
|
|
<body>
|
|
<![CDATA[
|
|
if (!this.itemId || this.isReadOnly)
|
|
return;
|
|
|
|
if (shouldSave)
|
|
this.save();
|
|
|
|
this._isEditing = false;
|
|
if (this.control && this.control.activeItem) {
|
|
this.control.activeItem.removeAttribute("selected");
|
|
this.control.activeItem = null;
|
|
}
|
|
|
|
this.updateFields();
|
|
|
|
let focusedElement = document.commandDispatcher.focusedElement;
|
|
if (focusedElement)
|
|
focusedElement.blur();
|
|
|
|
let event = document.createEvent("Events");
|
|
event.initEvent("close", false, false);
|
|
this.dispatchEvent(event);
|
|
]]>
|
|
</body>
|
|
</method>
|
|
<method name="save">
|
|
<body>
|
|
<![CDATA[
|
|
BookmarkHelper.log("bindings.xml: saving");
|
|
// Update the tags
|
|
if (this.uri && this.type != "folder") {
|
|
let currentTags = PlacesUtils.tagging.getTagsForURI(this.uri, {});
|
|
let tags = this.tagsAsArray;
|
|
BookmarkHelper.log("bindings.xml: current tags length is " + currentTags.length);
|
|
if (tags.length > 0 || currentTags.length > 0) {
|
|
let tagsToRemove = [];
|
|
let tagsToAdd = [];
|
|
for (let i = 0; i < currentTags.length; i++) {
|
|
if (tags.indexOf(currentTags[i]) == -1) {
|
|
BookmarkHelper.log("bindings.xml: removing tag " + currentTags[i]);
|
|
tagsToRemove.push(currentTags[i]);
|
|
}
|
|
}
|
|
for (let i = 0; i < tags.length; i++) {
|
|
if (currentTags.indexOf(tags[i]) == -1) {
|
|
BookmarkHelper.log("bindings.xml: adding tag " + tags[i]);
|
|
tagsToAdd.push(tags[i]);
|
|
}
|
|
}
|
|
|
|
BookmarkHelper.log("bindings.xml: tagsToAdd length " + tagsToAdd.length);
|
|
BookmarkHelper.log("bindings.xml: tagsToRemove length " + tagsToRemove.length);
|
|
if (tagsToAdd.length > 0)
|
|
PlacesUtils.tagging.tagURI(this.uri, tagsToAdd);
|
|
if (tagsToRemove.length > 0)
|
|
PlacesUtils.tagging.untagURI(this.uri, tagsToRemove);
|
|
}
|
|
this.setAttribute("tags", this.tags);
|
|
|
|
// If the URI was updated change it in the bookmark, but don't
|
|
// allow a blank URI. Revert to previous URI if blank.
|
|
let spec = this.spec;
|
|
if (spec && this.uri.spec != spec) {
|
|
try {
|
|
BookmarkHelper.log("bindings.xml: changing uri");
|
|
|
|
let oldURI = this._uri;
|
|
this._uri = Services.io.newURI(spec, null, null);
|
|
PlacesUtils.bookmarks.changeBookmarkURI(this.itemId, this.uri);
|
|
this.setAttribute("uri", this.spec);
|
|
|
|
// move tags from old URI to new URI
|
|
let tags = this.tagsAsArray;
|
|
if (tags.length != 0) {
|
|
// only untag the old URI if this is the only bookmark
|
|
if (PlacesUtils.getBookmarksForURI(oldURI, {}).length == 0)
|
|
PlacesUtils.tagging.untagURI(oldURI, tags);
|
|
|
|
PlacesUtils.tagging.tagURI(this._uri, tags);
|
|
}
|
|
}
|
|
catch (e) {
|
|
BookmarkHelper.log("bindings.xml: Error while tagging and moving bookmark: " + e);
|
|
}
|
|
}
|
|
if (spec != this.uri.spec)
|
|
this.spec = this.uri.spec;
|
|
}
|
|
|
|
// Update the name and use the URI if name is blank
|
|
this.name = this.name || this.spec;
|
|
this.setAttribute("title", this.name);
|
|
PlacesUtils.bookmarks.setItemTitle(this.itemId, this.name);
|
|
]]>
|
|
</body>
|
|
</method>
|
|
<method name="remove">
|
|
<body>
|
|
<![CDATA[
|
|
PlacesUtils.bookmarks.removeItem(this.itemId);
|
|
|
|
// If this was the last bookmark (excluding tag-items and livemark
|
|
// children, see getMostRecentBookmarkForURI) for the bookmark's url,
|
|
// remove the url from tag containers as well.
|
|
if (this.uri && this.type != "folder") {
|
|
if (PlacesUtils.getMostRecentBookmarkForURI(this.uri) == -1) {
|
|
var tags = PlacesUtils.tagging.getTagsForURI(this.uri, {});
|
|
PlacesUtils.tagging.untagURI(this.uri, tags);
|
|
}
|
|
}
|
|
|
|
this.stopEditing(false);
|
|
|
|
let event = document.createEvent("Events");
|
|
event.initEvent("BookmarkRemove", true, false);
|
|
this.dispatchEvent(event);
|
|
|
|
if (this.control)
|
|
this.control.removeItem(this);
|
|
|
|
]]>
|
|
</body>
|
|
</method>
|
|
<method name="updateFields">
|
|
<body>
|
|
<![CDATA[
|
|
// implemented by sub classes
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="place-item" extends="chrome://browser/content/bindings.xml#place-base">
|
|
<content orient="vertical">
|
|
<xul:hbox anonid="bookmark-item" class="bookmark-item-container" align="top" flex="1" mousethrough="always">
|
|
<xul:image xbl:inherits="src"/>
|
|
<xul:vbox flex="1">
|
|
<xul:label class="bookmark-item-label" crop="center" xbl:inherits="value=title"/>
|
|
<xul:label anonid="bookmark-url" class="bookmark-item-url" xbl:inherits="value=uri" crop="center" mousethrough="always"/>
|
|
</xul:vbox>
|
|
<xul:vbox>
|
|
<xul:label class="bookmark-item-tags" xbl:inherits="value=tags"/>
|
|
</xul:vbox>
|
|
</xul:hbox>
|
|
|
|
<xul:hbox anonid="bookmark-manage" class="bookmark-manage" hidden="true" flex="1">
|
|
<xul:image xbl:inherits="src"/>
|
|
<xul:vbox flex="1">
|
|
<xul:vbox flex="1">
|
|
<xul:textbox anonid="name" xbl:inherits="value=title" class="prompt-edit" flex="1"/>
|
|
<xul:textbox anonid="uri" xbl:inherits="value=uri" type="url" class="uri-element prompt-edit" flex="1"/>
|
|
<xul:textbox anonid="tags" xbl:inherits="value=tags" emptytext="&editBookmarkTags.label;" class="prompt-edit" flex="1"/>
|
|
</xul:vbox>
|
|
|
|
<xul:hbox class="bookmark-controls" align="center">
|
|
<xul:spacer flex="1"/>
|
|
<xul:button anonid="done-button" class="bookmark-done" label="&editBookmarkDone.label;"
|
|
oncommand="document.getBindingParent(this).stopEditing(true)"/>
|
|
</xul:hbox>
|
|
</xul:vbox>
|
|
</xul:hbox>
|
|
</content>
|
|
|
|
<implementation>
|
|
<method name="updateFields">
|
|
<body>
|
|
<![CDATA[
|
|
document.getAnonymousElementByAttribute(this, "anonid", "bookmark-item").hidden = this._isEditing;
|
|
document.getAnonymousElementByAttribute(this, "anonid", "bookmark-url").hidden = this._isEditing;
|
|
|
|
document.getAnonymousElementByAttribute(this, "anonid", "bookmark-manage").hidden = !this._isEditing;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="place-folder" extends="chrome://browser/content/bindings.xml#place-item">
|
|
<implementation>
|
|
<method name="updateFields">
|
|
<body>
|
|
<![CDATA[
|
|
document.getAnonymousElementByAttribute(this, "anonid", "bookmark-item").hidden = this._isEditing;
|
|
document.getAnonymousElementByAttribute(this, "anonid", "bookmark-url").hidden = this._isEditing;
|
|
|
|
this._uriField.hidden = true;
|
|
this._tagsField.hidden = true;
|
|
document.getAnonymousElementByAttribute(this, "anonid", "bookmark-manage").hidden = !this._isEditing;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="place-label" extends="chrome://browser/content/bindings.xml#place-base">
|
|
<handlers>
|
|
<handler event="click" button="0">
|
|
<![CDATA[
|
|
if (this.control)
|
|
this.control.open(this.previousSibling.itemId);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
|
|
<content align="center">
|
|
<xul:spacer xbl:inherits="width=indent"/>
|
|
<xul:image anonid="favicon" class="bookmark-folder-image"/>
|
|
<xul:label anonid="name" crop="end" flex="1" xbl:inherits="value=title"/>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="place-list">
|
|
<content orient="vertical" flex="1">
|
|
<xul:vbox anonid="parent-items" class="place-list-parents" />
|
|
<xul:richlistbox anonid="child-items" class="place-list-children" flex="1" batch="25"/>
|
|
</content>
|
|
<implementation>
|
|
<constructor>
|
|
<![CDATA[
|
|
this._type = this.getAttribute("type");
|
|
this._mode = this.getAttribute("mode");
|
|
|
|
this._folderParents = {};
|
|
this._folderParents[this._desktopFolderId] = this.mobileRoot;
|
|
this._folderParents[PlacesUtils.bookmarks.unfiledBookmarksFolder] = this._desktopFolderId;
|
|
this._folderParents[PlacesUtils.bookmarksMenuFolderId] = this._desktopFolderId;
|
|
this._folderParents[PlacesUtils.toolbarFolderId] = this._desktopFolderId;
|
|
]]>
|
|
</constructor>
|
|
|
|
<field name="_desktopFolderId">-1000</field>
|
|
<field name="_desktopFolder"><![CDATA[
|
|
({
|
|
itemId: this._desktopFolderId, tags: "", uri: "",
|
|
title: Strings.browser.GetStringFromName("bookmarkList.desktop"),
|
|
type: Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER
|
|
})
|
|
]]></field>
|
|
<field name="_desktopChildren"><![CDATA[
|
|
[
|
|
{
|
|
itemId: PlacesUtils.bookmarks.unfiledBookmarksFolder, tags: "", uri: "",
|
|
title: PlacesUtils.bookmarks.getItemTitle(PlacesUtils.bookmarks.unfiledBookmarksFolder),
|
|
type: Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER
|
|
},
|
|
{
|
|
itemId: PlacesUtils.bookmarksMenuFolderId, tags: "", uri: "",
|
|
title: PlacesUtils.bookmarks.getItemTitle(PlacesUtils.bookmarksMenuFolderId),
|
|
type: Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER
|
|
},
|
|
{
|
|
itemId: PlacesUtils.toolbarFolderId, tags: "", uri: "",
|
|
title: PlacesUtils.bookmarks.getItemTitle(PlacesUtils.toolbarFolderId),
|
|
type: Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER
|
|
}
|
|
];
|
|
]]></field>
|
|
|
|
<field name="_readOnlyFolders"><![CDATA[
|
|
[
|
|
this._desktopFolderId,
|
|
PlacesUtils.bookmarks.unfiledBookmarksFolder,
|
|
PlacesUtils.bookmarksMenuFolderId,
|
|
PlacesUtils.toolbarFolderId
|
|
];
|
|
]]></field>
|
|
|
|
<field name="_type"/>
|
|
<field name="_mode"/>
|
|
<field name="_ignoreEditing">false</field>
|
|
<field name="_parents">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "parent-items");
|
|
</field>
|
|
<field name="_children">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "child-items");
|
|
</field>
|
|
|
|
<field name="scrollBoxObject">this._children.scrollBoxObject</field>
|
|
|
|
<property name="items" readonly="true" onget="return this._children.childNodes"/>
|
|
|
|
<!-- mobileRoot is a property otherwise if it is accessed before Places
|
|
is ready the value will be bitrotted
|
|
-->
|
|
<field name="_mobileRoot">null</field>
|
|
<property name="mobileRoot">
|
|
<getter><![CDATA[
|
|
if (!this._mobileRoot)
|
|
this._mobileRoot = PlacesUtils.annotations.getItemsWithAnnotation('mobile/bookmarksRoot', {})[0];
|
|
return this._mobileRoot;
|
|
]]></getter>
|
|
</property>
|
|
|
|
<property name="isRootFolder" readonly="true">
|
|
<getter>
|
|
<![CDATA[
|
|
let currentFolderId = this._parents.lastChild.itemId;
|
|
return currentFolderId == this.mobileRoot;
|
|
]]>
|
|
</getter>
|
|
</property>
|
|
|
|
<field name="_activeItem">null</field>
|
|
<property name="activeItem">
|
|
<getter>
|
|
<![CDATA[
|
|
return this._activeItem;
|
|
]]>
|
|
</getter>
|
|
<setter>
|
|
<![CDATA[
|
|
if (!this._ignoreEditing) {
|
|
if (this._activeItem && this._activeItem.isEditing) {
|
|
this._ignoreEditing = true;
|
|
this._activeItem.stopEditing(false);
|
|
this._ignoreEditing = false;
|
|
}
|
|
|
|
this._activeItem = val;
|
|
}
|
|
return val;
|
|
]]>
|
|
</setter>
|
|
</property>
|
|
|
|
<method name="isDesktopFolderEmpty">
|
|
<body>
|
|
<![CDATA[
|
|
let options = PlacesUtils.history.getNewQueryOptions();
|
|
options.queryType = options.QUERY_TYPE_BOOKMARKS;
|
|
let query = PlacesUtils.history.getNewQuery();
|
|
let folders = [ PlacesUtils.bookmarks.unfiledBookmarksFolder,
|
|
PlacesUtils.bookmarksMenuFolderId,
|
|
PlacesUtils.toolbarFolderId
|
|
];
|
|
query.setFolders(folders, 3);
|
|
let result = PlacesUtils.history.executeQuery(query, options);
|
|
let rootNode = result.root;
|
|
rootNode.containerOpen = true;
|
|
let isEmpty = !rootNode.childCount;
|
|
rootNode.containerOpen = false;
|
|
|
|
return isEmpty;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="_getChildren">
|
|
<parameter name="aFolder"/>
|
|
<body>
|
|
<![CDATA[
|
|
let items = [];
|
|
|
|
let options = PlacesUtils.history.getNewQueryOptions();
|
|
options.queryType = (this._type == "bookmarks" ? options.QUERY_TYPE_BOOKMARKS : options.QUERY_TYPE_HISTORY);
|
|
|
|
// Exclude "query" items (e.g. "smart folders")
|
|
options.excludeQueries = true;
|
|
|
|
let query = PlacesUtils.history.getNewQuery();
|
|
|
|
if (aFolder)
|
|
query.setFolders([aFolder], 1);
|
|
|
|
let result = PlacesUtils.history.executeQuery(query, options);
|
|
let rootNode = result.root;
|
|
rootNode.containerOpen = true;
|
|
|
|
let cc = rootNode.childCount;
|
|
for (var i=0; i<cc; ++i) {
|
|
let node = rootNode.getChild(i);
|
|
|
|
// Ignore separators
|
|
if (node.type == node.RESULT_TYPE_SEPARATOR)
|
|
continue;
|
|
|
|
if (this._mode == "folders" && node.type == node.RESULT_TYPE_FOLDER) {
|
|
items.push(node);
|
|
}
|
|
else if (this._mode == "") {
|
|
items.push(node);
|
|
}
|
|
}
|
|
rootNode.containerOpen = false;
|
|
return items;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="open">
|
|
<parameter name="aRootFolder"/>
|
|
<body>
|
|
<![CDATA[
|
|
aRootFolder = aRootFolder || this.mobileRoot;
|
|
|
|
this._activeItem = null;
|
|
|
|
let parents = this._parents;
|
|
while (parents.firstChild)
|
|
parents.removeChild(parents.firstChild);
|
|
|
|
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|
var self = this;
|
|
|
|
let folderId = aRootFolder;
|
|
do {
|
|
let title;
|
|
if (folderId == this._desktopFolderId)
|
|
title = this._desktopFolder.title;
|
|
else
|
|
title = PlacesUtils.bookmarks.getItemTitle(folderId);
|
|
|
|
let parent = document.createElementNS(XULNS, "placelabel");
|
|
parent.setAttribute("class", "bookmark-folder");
|
|
parent.setAttribute("itemid", folderId);
|
|
parent.setAttribute("indent", 0);
|
|
parent.setAttribute("title", title);
|
|
parents.insertBefore(parent, parents.firstChild);
|
|
|
|
folderId = this._folderParents[folderId] || PlacesUtils.bookmarks.getFolderIdForItem(folderId);
|
|
} while (folderId != PlacesUtils.bookmarks.placesRoot)
|
|
|
|
let children = this._children;
|
|
while (children.lastChild)
|
|
children.removeChild(children.lastChild);
|
|
|
|
children.scrollBoxObject.scrollTo(0, 0);
|
|
|
|
let items = (aRootFolder == this._desktopFolderId) ? this._desktopChildren.concat()
|
|
: this._getChildren(aRootFolder);
|
|
|
|
if (aRootFolder == this.mobileRoot && !this.isDesktopFolderEmpty())
|
|
items.unshift(this._desktopFolder);
|
|
|
|
children.setItems(items.map(this.createItem));
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="close">
|
|
<body>
|
|
<![CDATA[
|
|
this.activeItem = null;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="createItem">
|
|
<parameter name="aItem"/>
|
|
<body>
|
|
<![CDATA[
|
|
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|
|
|
let child = document.createElementNS(XULNS, "placeitem");
|
|
child.setAttribute("itemid", aItem.itemId);
|
|
child.setAttribute("class", "bookmark-item");
|
|
child.setAttribute("title", aItem.title);
|
|
child.setAttribute("uri", aItem.uri);
|
|
child.setAttribute("tags", aItem.tags);
|
|
if (aItem.type == Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER)
|
|
child.setAttribute("type", "folder");
|
|
else
|
|
child.setAttribute("src", aItem.icon);
|
|
|
|
return child;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="removeItem">
|
|
<parameter name="aItem"/>
|
|
<body>
|
|
<![CDATA[
|
|
this._children.removeChild(aItem);
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="_fireOpen">
|
|
<parameter name="aEvent"/>
|
|
<parameter name="aItem"/>
|
|
<body>
|
|
<![CDATA[
|
|
let target = aEvent.originalTarget;
|
|
if (target.localName == "button" || this._activeItem == aItem)
|
|
return;
|
|
|
|
if (aItem.type == "folder") {
|
|
this.open(aItem.itemId);
|
|
} else {
|
|
// Force the item to be active
|
|
this._activeItem = aItem;
|
|
|
|
// This is a callback used to forward information to some
|
|
// external code [we fire an event & a pseudo attribute event]
|
|
let event = document.createEvent("Events");
|
|
event.initEvent("BookmarkOpen", true, false);
|
|
this.dispatchEvent(event);
|
|
|
|
let func = new Function("event", this.getAttribute("onopen"));
|
|
func.call(this, aEvent);
|
|
}
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="history-list">
|
|
<handlers>
|
|
<handler event="click" button="0">
|
|
<![CDATA[
|
|
let func = new Function("event", this.getAttribute("onopen"));
|
|
func.call(this, event);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
<content orient="vertical" flex="1">
|
|
<xul:hbox class="history-throbber-box" flex="1" align="center" pack="center">
|
|
<xul:image src="chrome://browser/skin/images/throbber.png" />
|
|
</xul:hbox>
|
|
<xul:richlistbox anonid="child-items" class="history-list-children" flex="1" batch="25"/>
|
|
</content>
|
|
<implementation>
|
|
<method name="open">
|
|
<body><![CDATA[
|
|
this.setAttribute("loading", "true");
|
|
|
|
setTimeout(function(self) {
|
|
let children = self._children;
|
|
while (children.lastChild)
|
|
children.removeChild(children.lastChild);
|
|
|
|
let items = self._getHistory();
|
|
children.setItems(items.map(self.createItem));
|
|
self.removeAttribute("loading");
|
|
}, 0, this);
|
|
]]></body>
|
|
</method>
|
|
|
|
<field name="_children">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "child-items");
|
|
</field>
|
|
|
|
<field name="scrollBoxObject">this._children.scrollBoxObject</field>
|
|
|
|
<method name="_getHistory">
|
|
<body><![CDATA[
|
|
let items = [];
|
|
let historyService = Cc["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService);
|
|
let query = historyService.getNewQuery();
|
|
|
|
let options = historyService.getNewQueryOptions();
|
|
options.excludeQueries = true;
|
|
options.queryType = options.QUERY_TYPE_HISTORY;
|
|
options.maxResults = Services.prefs.getIntPref("browser.display.history.maxresults");
|
|
options.resultType = options.RESULTS_AS_URI;
|
|
options.sortingMode = options.SORT_BY_DATE_DESCENDING;
|
|
|
|
let result = historyService.executeQuery(query, options);
|
|
let rootNode = result.root;
|
|
rootNode.containerOpen = true;
|
|
let childCount = rootNode.childCount;
|
|
|
|
// Get the rows title
|
|
let titleToday = PlacesUtils.getString("finduri-AgeInDays-is-0");
|
|
let titleYesterday = PlacesUtils.getString("finduri-AgeInDays-is-1");
|
|
let titleLastWeek = PlacesUtils.getFormattedString("finduri-AgeInDays-last-is", [7]);
|
|
let titleOlder = PlacesUtils.getFormattedString("finduri-AgeInDays-isgreater", [7]);
|
|
|
|
let lastTitle = null;
|
|
let msPerDay = 86400000;
|
|
let msPerWeek = msPerDay * 7;
|
|
|
|
let today = new Date();
|
|
today.setHours(0);
|
|
today.setMinutes(0);
|
|
today.setSeconds(0);
|
|
|
|
for (let i = 0; i < childCount; i++) {
|
|
let node = rootNode.getChild(i);
|
|
let time = new Date(node.time / 1000); // node.time is microseconds
|
|
|
|
// Insert a row title if needed
|
|
let msDelta = today - time;
|
|
if (msDelta < 0 && lastTitle == null) {
|
|
lastTitle = titleToday;
|
|
items.push({ title: lastTitle });
|
|
} else if (msDelta > 0 && msDelta < msPerDay && lastTitle != titleYesterday) {
|
|
lastTitle = titleYesterday;
|
|
items.push({ title: lastTitle });
|
|
} else if (msDelta > msPerDay && msDelta < msPerWeek && lastTitle != titleLastWeek) {
|
|
lastTitle = titleLastWeek;
|
|
items.push({ title: lastTitle });
|
|
} else if (msDelta > msPerWeek && lastTitle != titleOlder) {
|
|
lastTitle = titleOlder;
|
|
items.push({ title: lastTitle });
|
|
}
|
|
|
|
items.push(node);
|
|
}
|
|
|
|
rootNode.containerOpen = false;
|
|
return items;
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="createItem">
|
|
<parameter name="aItem"/>
|
|
<body>
|
|
<![CDATA[
|
|
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|
|
|
let child = document.createElementNS(XULNS, "autocompleteresult");
|
|
child.setAttribute("value", aItem.title || aItem.uri);
|
|
if (!aItem.uri) {
|
|
child.setAttribute("class", "history-item-title");
|
|
} else {
|
|
child.setAttribute("class", "history-item");
|
|
child.setAttribute("url", aItem.uri);
|
|
child.setAttribute("subtitle", aItem.uri);
|
|
child.setAttribute("src", aItem.icon);
|
|
}
|
|
|
|
return child;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="remotetabs-list">
|
|
<handlers>
|
|
<handler event="click" button="0">
|
|
<![CDATA[
|
|
let func = new Function("event", this.getAttribute("onopen"));
|
|
func.call(this, event);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
<content orient="vertical" flex="1">
|
|
<xul:hbox class="remotetabs-throbber-box" flex="1" align="center" pack="center">
|
|
<xul:image src="chrome://browser/skin/images/throbber.png" />
|
|
</xul:hbox>
|
|
<xul:hbox class="remotetabs-message-box" flex="1" align="center" pack="center">
|
|
<xul:label xbl:inherits="value=message" align="center" crop="center" flex="1"/>
|
|
</xul:hbox>
|
|
<xul:richlistbox anonid="child-items" class="remotetabs-list-children" flex="1" batch="25"/>
|
|
</content>
|
|
<implementation>
|
|
<field name="_syncTopics"><![CDATA[([
|
|
"browser:sync:setup:userabort",
|
|
"browser:sync:setup:networkerror",
|
|
"weave:service:login:finish",
|
|
"weave:service:login:error"
|
|
])]]>
|
|
</field>
|
|
|
|
<method name="open">
|
|
<body><![CDATA[
|
|
let self = this;
|
|
this.setAttribute("loading", "true");
|
|
this.removeAttribute("message");
|
|
|
|
// Try loading remote tabs straight away. It will
|
|
// simply return if sync is not setup.
|
|
setTimeout(function() {
|
|
if (self._loadChildren())
|
|
self.removeAttribute("loading");
|
|
}, 0);
|
|
|
|
this._syncObserver = function() {
|
|
this.removeAttribute("loading");
|
|
this._removeSyncObservers();
|
|
this._loadChildren();
|
|
}.bind(this);
|
|
|
|
// Wait for sync signals
|
|
this._syncTopics.forEach(function(topic) Services.obs.addObserver(self._syncObserver, topic, false));
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="close">
|
|
<body><![CDATA[
|
|
this.removeAttribute("message");
|
|
this.removeAttribute("loading");
|
|
|
|
// Stop listening to sync signals
|
|
this._removeSyncObservers();
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_removeSyncObservers">
|
|
<body><![CDATA[
|
|
if (!this._syncObserver)
|
|
return;
|
|
|
|
let self = this;
|
|
this._syncTopics.forEach(function(topic) Services.obs.removeObserver(self._syncObserver, topic));
|
|
|
|
delete this._syncObserver;
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_loadChildren">
|
|
<body><![CDATA[
|
|
let children = this._children;
|
|
while (children.lastChild)
|
|
children.removeChild(children.lastChild);
|
|
|
|
let engine = this._getWeaveEngine();
|
|
|
|
// Only load items if the tabs engine is ready
|
|
if (!engine)
|
|
return false;
|
|
|
|
// In case sync fails, WeaveGlue will show an error dialog
|
|
let items = this._getRemoteTabs(engine);
|
|
|
|
// If sync succeeds but has no data to display, a message
|
|
// is presented in the panel (see "message" attribute).
|
|
if (items.length) {
|
|
children.setItems(items.map(this.createItem));
|
|
} else {
|
|
let bundle = Services.strings.createBundle("chrome://browser/locale/sync.properties");
|
|
this.setAttribute("message", bundle.GetStringFromName("sync.message.notabs"));
|
|
}
|
|
|
|
return true;
|
|
]]></body>
|
|
</method>
|
|
|
|
<field name="_children">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "child-items");
|
|
</field>
|
|
|
|
<field name="scrollBoxObject">this._children.scrollBoxObject</field>
|
|
|
|
<method name="_getWeaveEngine">
|
|
<body><![CDATA[
|
|
// Return null if the Weave isn't ready
|
|
if (document.getElementById("cmd_remoteTabs").getAttribute("disabled") == "true")
|
|
return null;
|
|
if (Weave.Status.checkSetup() == Weave.CLIENT_NOT_CONFIGURED)
|
|
return null;
|
|
|
|
return Weave.Engines.get("tabs");
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_getRemoteTabs">
|
|
<parameter name="aEngine"/>
|
|
<body><![CDATA[
|
|
// Don't bother refetching tabs if we already did so recently
|
|
let lastFetch = Weave.Svc.Prefs.get("lastTabFetch", 0);
|
|
let now = Math.floor(Date.now() / 1000);
|
|
if (now - lastFetch >= Services.prefs.getIntPref("browser.display.remotetabs.timeout")) {
|
|
// Force a sync only for the tabs engine
|
|
aEngine.lastModified = null;
|
|
aEngine.sync();
|
|
Weave.Svc.Prefs.set("lastTabFetch", now);
|
|
};
|
|
|
|
// Generate the list of tabs
|
|
let tabs = [];
|
|
for (let [guid, client] in Iterator(aEngine.getAllClients())) {
|
|
if (!client.tabs.length)
|
|
continue;
|
|
|
|
tabs.push({ name: client.clientName });
|
|
|
|
client.tabs.forEach(function({title, urlHistory, icon}) {
|
|
let pageURL = urlHistory[0];
|
|
|
|
tabs.push({
|
|
title: title || pageURL,
|
|
uri: pageURL,
|
|
icon: Weave.Utils.getIcon(icon, "chrome://browser/skin/images/tab.png")
|
|
});
|
|
});
|
|
};
|
|
|
|
return tabs;
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="createItem">
|
|
<parameter name="aItem"/>
|
|
<body>
|
|
<![CDATA[
|
|
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|
|
|
let child = document.createElementNS(XULNS, "autocompleteresult");
|
|
child.setAttribute("value", aItem.title || aItem.name);
|
|
if (aItem.name) {
|
|
child.setAttribute("class", "remotetabs-item-title");
|
|
} else {
|
|
child.setAttribute("class", "remotetabs-item");
|
|
child.setAttribute("url", aItem.uri);
|
|
child.setAttribute("subtitle", aItem.uri);
|
|
child.setAttribute("src", aItem.icon);
|
|
}
|
|
|
|
return child;
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="richlistbox-batch" extends="chrome://global/content/bindings/richlistbox.xml#richlistbox">
|
|
<handlers>
|
|
<handler event="scroll">
|
|
<![CDATA[
|
|
// if there no more items to insert, just return early
|
|
if (this._items.length == 0)
|
|
return;
|
|
|
|
if (this._contentScrollHeight == -1) {
|
|
let scrollheight = {};
|
|
this.scrollBoxObject.getScrolledSize({}, scrollheight);
|
|
this._contentScrollHeight = scrollheight.value;
|
|
}
|
|
|
|
let y = {};
|
|
this.scrollBoxObject.getPosition({}, y);
|
|
let scrollRatio = (y.value + this._childrenHeight) / this._contentScrollHeight;
|
|
|
|
// If we're scrolled 80% to the bottom of the list, append the next
|
|
// set of items
|
|
if (scrollRatio > 0.8)
|
|
this._insertItems();
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
<implementation>
|
|
<!-- Number of elements to add to the list initially. If there are more
|
|
than this many elements to display, only add them to the list once
|
|
the user has scrolled towards them. This is a performance
|
|
optimization to avoid locking up while attempting to append hundreds
|
|
of nodes to our richlistbox.
|
|
-->
|
|
<property name="batchSize" readonly="true" onget="return this.getAttribute('batch')"/>
|
|
|
|
<field name="_childrenHeight">this.scrollBoxObject.height;</field>
|
|
<field name="_items">[]</field>
|
|
|
|
<method name="setItems">
|
|
<parameter name="aItems"/>
|
|
<body><![CDATA[
|
|
this._items = aItems;
|
|
this._insertItems();
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="_insertItems">
|
|
<body><![CDATA[
|
|
let items = this._items.splice(0, this.batchSize);
|
|
if (!items.length)
|
|
return; // no items to insert
|
|
|
|
let count = items.length;
|
|
for (let i = 0; i<count; i++)
|
|
this.appendChild(items[i]);
|
|
|
|
|
|
// make sure we recalculate the scrollHeight of the content
|
|
this._contentScrollHeight = -1;
|
|
]]></body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="richlistitem" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem">
|
|
<handlers>
|
|
<handler event="mousedown" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="content-navigator">
|
|
<content class="content-navigator-box" orient="horizontal" pack="end">
|
|
<children includes="textbox"/>
|
|
<xul:button anonid="previous-button" class="content-navigator-item previous-button" xbl:inherits="command=previous"/>
|
|
<xul:button anonid="next-button" class="content-navigator-item next-button" xbl:inherits="command=next"/>
|
|
</content>
|
|
|
|
<implementation>
|
|
<field name="_previousButton">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "previous-button");
|
|
</field>
|
|
|
|
<field name="_nextButton">
|
|
document.getAnonymousElementByAttribute(this, "anonid", "next-button");
|
|
</field>
|
|
|
|
<method name="contentHasChanged">
|
|
<body><![CDATA[
|
|
if (!this.isActive)
|
|
return;
|
|
|
|
// There is a race condition with getBoundingClientRect and when the
|
|
// box is displayed, the padding is ignored in the size calculation.
|
|
// A nested timeouts below are used to workaround this problem.
|
|
this.getBoundingClientRect();
|
|
|
|
setTimeout(function(self) {
|
|
setTimeout(function(self) {
|
|
let height = Math.floor(self.getBoundingClientRect().height);
|
|
self.top = window.innerHeight - height;
|
|
}, 0, self);
|
|
}, 0, this);
|
|
]]></body>
|
|
</method>
|
|
|
|
<property name="isActive" onget="return !!this.model;"/>
|
|
|
|
<field name="model">null</field>
|
|
<method name="show">
|
|
<parameter name="aModel" />
|
|
<body><![CDATA[
|
|
// call the hide callback of the current object if any
|
|
if (this.model && this.model.type != aModel.type)
|
|
this.model.hide();
|
|
|
|
this.setAttribute("type", aModel.type);
|
|
this.setAttribute("next", aModel.commands.next);
|
|
this.setAttribute("previous", aModel.commands.previous);
|
|
this.setAttribute("close", aModel.commands.close);
|
|
|
|
// buttons attributes sync with commands doesn not look updated when
|
|
// we dynamically switch the "command" attribute so we need to ensure
|
|
// the disabled state of the buttons is right when switching commands
|
|
this._previousButton.disabled = document.getElementById(aModel.commands.previous).getAttribute("disabled") == "true";
|
|
this._nextButton.disabled = document.getElementById(aModel.commands.next).getAttribute("disabled") == "true";
|
|
|
|
this.model = aModel;
|
|
this.contentHasChanged();
|
|
]]></body>
|
|
</method>
|
|
|
|
<method name="hide">
|
|
<parameter name="aModel" />
|
|
<body><![CDATA[
|
|
this.removeAttribute("next");
|
|
this.removeAttribute("previous");
|
|
this.removeAttribute("close");
|
|
this.removeAttribute("type");
|
|
|
|
this.contentHasChanged();
|
|
this.model = null;
|
|
]]></body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="menulist" display="xul:box" extends="chrome://global/content/bindings/menulist.xml#menulist">
|
|
<handlers>
|
|
<handler event="mousedown" phase="capturing">
|
|
<![CDATA[
|
|
// Stop the normal menupopup from appearing
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
|
|
<handler event="click" button="0">
|
|
<![CDATA[
|
|
if (this.disabled || this.itemCount == 0)
|
|
return;
|
|
|
|
this.focus();
|
|
MenuListHelperUI.show(this);
|
|
]]>
|
|
</handler>
|
|
|
|
<handler event="command" phase="capturing">
|
|
<![CDATA[
|
|
// The dropmark (button) fires a command event too. Don't forward that.
|
|
// Just forward the menuitem command events, which the toolkit version does.
|
|
if (event.target.parentNode.parentNode != this)
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="chrome-select-option">
|
|
<content orient="horizontal" flex="1">
|
|
<xul:image class="chrome-select-option-image" anonid="check"/>
|
|
<xul:label anonid="label" xbl:inherits="value=label"/>
|
|
</content>
|
|
|
|
<implementation>
|
|
<property name="selected">
|
|
<getter>
|
|
<![CDATA[
|
|
return this.hasAttribute("selected");
|
|
]]>
|
|
</getter>
|
|
<setter>
|
|
<![CDATA[
|
|
if (val)
|
|
this.setAttribute("selected", "true");
|
|
else
|
|
this.removeAttribute("selected");
|
|
return val;
|
|
]]>
|
|
</setter>
|
|
</property>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="select-button" extends="xul:box">
|
|
<content>
|
|
<svg:svg width="11px" version="1.1" xmlns="http://www.w3.org/2000/svg" style="position: absolute; top: -moz-calc(50% - 2px); left: 4px;">
|
|
<svg:polyline points="1 1 5 6 9 1" stroke="#414141" stroke-width="2" stroke-linecap="round" fill="transparent" stroke-linejoin="round"/>
|
|
</svg:svg>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="textbox" extends="chrome://global/content/bindings/textbox.xml#textbox">
|
|
<handlers>
|
|
<handler event="TapLong" phase="capturing">
|
|
<![CDATA[
|
|
let box = this.inputField.parentNode;
|
|
box.showContextMenu(this, false);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="textarea" extends="chrome://global/content/bindings/textbox.xml#textarea">
|
|
<handlers>
|
|
<handler event="TapLong" phase="capturing">
|
|
<![CDATA[
|
|
let box = this.inputField.parentNode;
|
|
box.showContextMenu(this, false);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="timed-textbox" extends="chrome://global/content/bindings/textbox.xml#timed-textbox">
|
|
<handlers>
|
|
<handler event="TapLong" phase="capturing">
|
|
<![CDATA[
|
|
let box = this.inputField.parentNode;
|
|
box.showContextMenu(this, false);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="search-textbox" extends="chrome://global/content/bindings/textbox.xml#search-textbox">
|
|
<implementation>
|
|
<field name="_searchClear">
|
|
<![CDATA[
|
|
document.getAnonymousElementByAttribute(this, "class", "textbox-search-clear");
|
|
]]>
|
|
</field>
|
|
</implementation>
|
|
|
|
<handlers>
|
|
<handler event="TapLong" phase="capturing">
|
|
<![CDATA[
|
|
let box = this.inputField.parentNode;
|
|
box.showContextMenu(this, false);
|
|
]]>
|
|
</handler>
|
|
|
|
<handler event="text" phase="bubbling"><![CDATA[
|
|
// Listen for composition update, some VKB that does suggestions does not
|
|
// update directly the content of the field but in this case we want to
|
|
// search as soon as something is entered in the field
|
|
let evt = document.createEvent("Event");
|
|
evt.initEvent("input", true, false);
|
|
this.dispatchEvent(evt);
|
|
]]></handler>
|
|
|
|
<handler event="click" phase="bubbling"><![CDATA[
|
|
// bug 629661. To reset the autosuggestions mechanism of Android, the
|
|
// textfield need to reset the IME state
|
|
if (event.originalTarget == this._searchClear) {
|
|
setTimeout(function(self) {
|
|
try {
|
|
let imeEditor = self.inputField.QueryInterface(Ci.nsIDOMNSEditableElement)
|
|
.editor
|
|
.QueryInterface(Ci.nsIEditorIMESupport);
|
|
if (imeEditor.composing)
|
|
imeEditor.forceCompositionEnd();
|
|
} catch(e) {}
|
|
}, 0, this);
|
|
}
|
|
]]></handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="numberbox" extends="chrome://global/content/bindings/numberbox.xml#numberbox">
|
|
<handlers>
|
|
<handler event="TapLong" phase="capturing">
|
|
<![CDATA[
|
|
let box = this.inputField.parentNode;
|
|
box.showContextMenu(this, false);
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="input-box" extends="xul:box">
|
|
<implementation>
|
|
<method name="showContextMenu">
|
|
<parameter name="aTextbox"/>
|
|
<parameter name="aIgnoreReadOnly"/>
|
|
<body><![CDATA[
|
|
let selectionStart = aTextbox.selectionStart;
|
|
let selectionEnd = aTextbox.selectionEnd;
|
|
|
|
let json = { types: ["input-text"], string: "" };
|
|
if (selectionStart != selectionEnd) {
|
|
json.types.push("copy");
|
|
json.string = aTextbox.value.slice(selectionStart, selectionEnd);
|
|
} else if (aTextbox.value) {
|
|
json.types.push("copy-all");
|
|
json.string = aTextbox.value;
|
|
}
|
|
|
|
if (selectionStart > 0 || selectionEnd < aTextbox.textLength)
|
|
json.types.push("select-all");
|
|
|
|
let clipboard = Cc["@mozilla.org/widget/clipboard;1"].getService(Ci.nsIClipboard);
|
|
let flavors = ["text/unicode"];
|
|
let hasData = clipboard.hasDataMatchingFlavors(flavors, flavors.length, Ci.nsIClipboard.kGlobalClipboard);
|
|
|
|
if (hasData && (!aTextbox.readOnly || aIgnoreReadOnly)) {
|
|
json.types.push("paste");
|
|
if (aTextbox.type == "url") {
|
|
json.types.push("paste-url");
|
|
}
|
|
}
|
|
|
|
ContextHelper.showPopup({ target: aTextbox, json: json });
|
|
]]></body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
|
|
<binding id="setting-fulltoggle-bool" extends="chrome://mozapps/content/extensions/setting.xml#setting-bool">
|
|
<handlers>
|
|
<handler event="click" button="0" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
<handler event="command" button="0" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
<handler event="TapSingle" button="0" phase="capturing">
|
|
<![CDATA[
|
|
this.input.setChecked(!this.value);
|
|
this.inputChanged();
|
|
this.fireEvent("oncommand");
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="setting-fulltoggle-boolint" extends="chrome://mozapps/content/extensions/setting.xml#setting-boolint">
|
|
<handlers>
|
|
<handler event="click" button="0" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
<handler event="command" button="0" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
<handler event="TapSingle" button="0" phase="capturing">
|
|
<![CDATA[
|
|
this.input.setChecked(!this.value);
|
|
this.inputChanged();
|
|
this.fireEvent("oncommand");
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
|
|
<binding id="setting-fulltoggle-localized-bool" extends="chrome://mozapps/content/extensions/setting.xml#setting-localized-bool">
|
|
<handlers>
|
|
<handler event="click" button="0" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
<handler event="command" button="0" phase="capturing">
|
|
<![CDATA[
|
|
event.stopPropagation();
|
|
]]>
|
|
</handler>
|
|
<handler event="TapSingle" button="0" phase="capturing">
|
|
<![CDATA[
|
|
this.input.setChecked(!this.value);
|
|
this.inputChanged();
|
|
this.fireEvent("oncommand");
|
|
]]>
|
|
</handler>
|
|
</handlers>
|
|
</binding>
|
|
</bindings>
|