Merge mozilla-central to mozilla-inbound
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Tue, 20 Jun 2017 11:31:34 +0200
changeset 416011 7bd4ebd905c434cd8e9aac9ba7d5425486e2b6b1
parent 416010 fe6256862f14ff3d50c13c11ea40dbe949aa8454 (current diff)
parent 415967 7a6baa6cca3292e8099e652b64d27e74df560874 (diff)
child 416012 691f49edba8e7b68914d469d2c6c11812511d5ff
push id1517
push userjlorenzo@mozilla.com
push dateThu, 14 Sep 2017 16:50:54 +0000
treeherdermozilla-release@3b41fd564418 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-central to mozilla-inbound
docshell/base/nsDocShell.cpp
dom/base/nsFrameMessageManager.cpp
dom/base/nsGlobalWindow.cpp
dom/html/HTMLInputElement.cpp
dom/html/nsGenericHTMLElement.cpp
dom/ipc/ContentParent.cpp
dom/media/MediaDecoder.cpp
dom/security/nsMixedContentBlocker.cpp
dom/tests/mochitest/general/test_showModalDialog_e10s.html
editor/libeditor/EditorBase.cpp
editor/libeditor/HTMLEditor.cpp
gfx/layers/Layers.cpp
gfx/layers/d3d11/CompositorD3D11.cpp
gfx/layers/d3d11/DeviceAttachmentsD3D11.cpp
gfx/thebes/gfxPlatform.cpp
mobile/android/base/resources/anim/grow_fade_in.xml
mobile/android/base/resources/anim/overlay_check_entry.xml
mobile/android/base/resources/anim/overlay_check_exit.xml
mobile/android/base/resources/anim/overlay_pop.xml
mobile/android/base/resources/anim/overlay_slide_down.xml
mobile/android/base/resources/anim/overlay_slide_up.xml
mobile/android/base/resources/anim/popup_hide.xml
mobile/android/base/resources/anim/popup_show.xml
mobile/android/base/resources/color/action_bar_menu_item_colors.xml
mobile/android/base/resources/color/action_bar_secondary_menu_item_colors.xml
mobile/android/base/resources/color/facet_button_text_color.xml
mobile/android/base/resources/color/pressed_about_page_header_grey.xml
mobile/android/base/resources/color/primary_text.xml
mobile/android/base/resources/color/primary_text_selector.xml
mobile/android/base/resources/color/recyclerview_selector.xml
mobile/android/base/resources/color/secondary_text.xml
mobile/android/base/resources/color/select_item_multichoice.xml
mobile/android/base/resources/color/state_pressed_toolbar_grey_pressed.xml
mobile/android/base/resources/color/tab_item_title.xml
mobile/android/base/resources/color/tab_new_tab_strip_colors.xml
mobile/android/base/resources/color/tab_strip_item_bg.xml
mobile/android/base/resources/color/tab_strip_item_title.xml
mobile/android/base/resources/color/tab_text_color.xml
mobile/android/base/resources/color/tabs_counter_text_color.xml
mobile/android/base/resources/color/tertiary_text.xml
mobile/android/base/resources/color/toolbar_display_layout_bg.xml
mobile/android/base/resources/color/top_sites_grid_item_title.xml
mobile/android/base/resources/color/url_bar_title.xml
mobile/android/base/resources/color/url_bar_title_hint.xml
mobile/android/base/resources/drawable-hdpi-v11/alert_camera.png
mobile/android/base/resources/drawable-hdpi-v11/alert_download.png
mobile/android/base/resources/drawable-hdpi-v11/alert_guest.png
mobile/android/base/resources/drawable-hdpi-v11/alert_mic.png
mobile/android/base/resources/drawable-hdpi-v11/alert_mic_camera.png
mobile/android/base/resources/drawable-hdpi-v11/ic_menu_back.png
mobile/android/base/resources/drawable-hdpi-v11/ic_menu_bookmark_add.png
mobile/android/base/resources/drawable-hdpi-v11/ic_menu_forward.png
mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reload.png
mobile/android/base/resources/drawable-hdpi-v11/ic_menu_stop.png
mobile/android/base/resources/drawable-hdpi-v11/ic_status_logo.png
mobile/android/base/resources/drawable-hdpi-v11/star_blue.png
mobile/android/base/resources/drawable-hdpi/ab_add_search_engine.png
mobile/android/base/resources/drawable-hdpi/ab_copy.png
mobile/android/base/resources/drawable-hdpi/ab_cut.png
mobile/android/base/resources/drawable-hdpi/ab_done.png
mobile/android/base/resources/drawable-hdpi/ab_menu.png
mobile/android/base/resources/drawable-hdpi/ab_mic.png
mobile/android/base/resources/drawable-hdpi/ab_paste.png
mobile/android/base/resources/drawable-hdpi/ab_qrcode.png
mobile/android/base/resources/drawable-hdpi/ab_search.png
mobile/android/base/resources/drawable-hdpi/ab_select_all.png
mobile/android/base/resources/drawable-hdpi/add_folder.png
mobile/android/base/resources/drawable-hdpi/alert_camera.png
mobile/android/base/resources/drawable-hdpi/alert_download.png
mobile/android/base/resources/drawable-hdpi/alert_download_animation_1.png
mobile/android/base/resources/drawable-hdpi/alert_download_animation_2.png
mobile/android/base/resources/drawable-hdpi/alert_download_animation_3.png
mobile/android/base/resources/drawable-hdpi/alert_download_animation_4.png
mobile/android/base/resources/drawable-hdpi/alert_download_animation_5.png
mobile/android/base/resources/drawable-hdpi/alert_download_animation_6.png
mobile/android/base/resources/drawable-hdpi/alert_guest.png
mobile/android/base/resources/drawable-hdpi/alert_mic.png
mobile/android/base/resources/drawable-hdpi/alert_mic_camera.png
mobile/android/base/resources/drawable-hdpi/arrow.png
mobile/android/base/resources/drawable-hdpi/arrow_up.png
mobile/android/base/resources/drawable-hdpi/blank.png
mobile/android/base/resources/drawable-hdpi/casting.png
mobile/android/base/resources/drawable-hdpi/casting_active.png
mobile/android/base/resources/drawable-hdpi/close.png
mobile/android/base/resources/drawable-hdpi/close_edit_mode_dark.png
mobile/android/base/resources/drawable-hdpi/close_edit_mode_light.png
mobile/android/base/resources/drawable-hdpi/color_picker_row_bg.9.png
mobile/android/base/resources/drawable-hdpi/device_desktop.png
mobile/android/base/resources/drawable-hdpi/device_mobile.png
mobile/android/base/resources/drawable-hdpi/dropshadow.9.png
mobile/android/base/resources/drawable-hdpi/favicon_globe.png
mobile/android/base/resources/drawable-hdpi/find_close.png
mobile/android/base/resources/drawable-hdpi/find_next.png
mobile/android/base/resources/drawable-hdpi/find_prev.png
mobile/android/base/resources/drawable-hdpi/firefox_settings_alert.png
mobile/android/base/resources/drawable-hdpi/flat_icon.png
mobile/android/base/resources/drawable-hdpi/folder_closed.png
mobile/android/base/resources/drawable-hdpi/foxfinder.webp
mobile/android/base/resources/drawable-hdpi/globe_light.png
mobile/android/base/resources/drawable-hdpi/grid_icon_bg_activated.9.png
mobile/android/base/resources/drawable-hdpi/grid_icon_bg_focused.9.png
mobile/android/base/resources/drawable-hdpi/handle_end.png
mobile/android/base/resources/drawable-hdpi/handle_middle.png
mobile/android/base/resources/drawable-hdpi/handle_start.png
mobile/android/base/resources/drawable-hdpi/helper_readerview_bookmark.webp
mobile/android/base/resources/drawable-hdpi/home_bg.png
mobile/android/base/resources/drawable-hdpi/home_group_collapsed.png
mobile/android/base/resources/drawable-hdpi/home_star.png
mobile/android/base/resources/drawable-hdpi/home_tab_menu_strip.9.png
mobile/android/base/resources/drawable-hdpi/homepage_banner_firstrun.png
mobile/android/base/resources/drawable-hdpi/ic_action_settings.png
mobile/android/base/resources/drawable-hdpi/ic_media_pause.png
mobile/android/base/resources/drawable-hdpi/ic_media_play.png
mobile/android/base/resources/drawable-hdpi/ic_menu_share.png
mobile/android/base/resources/drawable-hdpi/ic_status_logo.png
mobile/android/base/resources/drawable-hdpi/ic_url_bar_tab.png
mobile/android/base/resources/drawable-hdpi/ic_widget_new_tab.png
mobile/android/base/resources/drawable-hdpi/ic_widget_search.png
mobile/android/base/resources/drawable-hdpi/icon_bookmarks_empty.png
mobile/android/base/resources/drawable-hdpi/icon_home_empty_firefox.png
mobile/android/base/resources/drawable-hdpi/icon_key.png
mobile/android/base/resources/drawable-hdpi/icon_most_recent_empty.png
mobile/android/base/resources/drawable-hdpi/icon_openinapp.png
mobile/android/base/resources/drawable-hdpi/icon_pageaction.png
mobile/android/base/resources/drawable-hdpi/icon_remote_tabs_empty.png
mobile/android/base/resources/drawable-hdpi/icon_search_empty_firefox.png
mobile/android/base/resources/drawable-hdpi/icon_shareplane.png
mobile/android/base/resources/drawable-hdpi/img_check.png
mobile/android/base/resources/drawable-hdpi/location.png
mobile/android/base/resources/drawable-hdpi/lock_disabled.png
mobile/android/base/resources/drawable-hdpi/lock_inactive.png
mobile/android/base/resources/drawable-hdpi/lock_secure.png
mobile/android/base/resources/drawable-hdpi/media_bar_pause.png
mobile/android/base/resources/drawable-hdpi/media_bar_play.png
mobile/android/base/resources/drawable-hdpi/media_bar_stop.png
mobile/android/base/resources/drawable-hdpi/menu.png
mobile/android/base/resources/drawable-hdpi/menu_item_check.png
mobile/android/base/resources/drawable-hdpi/menu_item_more.png
mobile/android/base/resources/drawable-hdpi/menu_item_uncheck.png
mobile/android/base/resources/drawable-hdpi/network_error.png
mobile/android/base/resources/drawable-hdpi/notification_media.webp
mobile/android/base/resources/drawable-hdpi/open_in_browser.png
mobile/android/base/resources/drawable-hdpi/orange_check.png
mobile/android/base/resources/drawable-hdpi/overlay_bookmark_icon.png
mobile/android/base/resources/drawable-hdpi/overlay_bookmarked_already_icon.png
mobile/android/base/resources/drawable-hdpi/overlay_check.png
mobile/android/base/resources/drawable-hdpi/pause.png
mobile/android/base/resources/drawable-hdpi/phone.png
mobile/android/base/resources/drawable-hdpi/play.png
mobile/android/base/resources/drawable-hdpi/private_masq.png
mobile/android/base/resources/drawable-hdpi/progress.9.png
mobile/android/base/resources/drawable-hdpi/reader.png
mobile/android/base/resources/drawable-hdpi/reader_active.png
mobile/android/base/resources/drawable-hdpi/reading_list_folder.png
mobile/android/base/resources/drawable-hdpi/search_clear.png
mobile/android/base/resources/drawable-hdpi/search_history.png
mobile/android/base/resources/drawable-hdpi/search_icon_active.png
mobile/android/base/resources/drawable-hdpi/search_icon_inactive.png
mobile/android/base/resources/drawable-hdpi/search_launcher.png
mobile/android/base/resources/drawable-hdpi/search_plus.png
mobile/android/base/resources/drawable-hdpi/settings_notifications.png
mobile/android/base/resources/drawable-hdpi/shareplane.png
mobile/android/base/resources/drawable-hdpi/shield_disabled.png
mobile/android/base/resources/drawable-hdpi/shield_enabled.png
mobile/android/base/resources/drawable-hdpi/status_icon_readercache.png
mobile/android/base/resources/drawable-hdpi/suggestedsites_amazon.png
mobile/android/base/resources/drawable-hdpi/suggestedsites_facebook.png
mobile/android/base/resources/drawable-hdpi/suggestedsites_twitter.png
mobile/android/base/resources/drawable-hdpi/suggestedsites_wikipedia.png
mobile/android/base/resources/drawable-hdpi/suggestedsites_youtube.png
mobile/android/base/resources/drawable-hdpi/switch_button_icon.png
mobile/android/base/resources/drawable-hdpi/tab_audio_playing.png
mobile/android/base/resources/drawable-hdpi/tab_close.png
mobile/android/base/resources/drawable-hdpi/tab_close_active.png
mobile/android/base/resources/drawable-hdpi/tab_indicator_background.9.png
mobile/android/base/resources/drawable-hdpi/tab_indicator_divider.9.png
mobile/android/base/resources/drawable-hdpi/tab_indicator_selected.9.png
mobile/android/base/resources/drawable-hdpi/tab_indicator_selected_focused.9.png
mobile/android/base/resources/drawable-hdpi/tab_new.png
mobile/android/base/resources/drawable-hdpi/tab_preview_masq.png
mobile/android/base/resources/drawable-hdpi/tabs_count.png
mobile/android/base/resources/drawable-hdpi/tabs_count_foreground.png
mobile/android/base/resources/drawable-hdpi/tabs_normal.png
mobile/android/base/resources/drawable-hdpi/tabs_panel_nav_back.png
mobile/android/base/resources/drawable-hdpi/tabs_private.png
mobile/android/base/resources/drawable-hdpi/tip_addsearch.png
mobile/android/base/resources/drawable-hdpi/top_site_add.png
mobile/android/base/resources/drawable-hdpi/tracking_protection_toolbar_illustration.png
mobile/android/base/resources/drawable-hdpi/undo_button_icon.png
mobile/android/base/resources/drawable-hdpi/url_bar_entry_default.9.png
mobile/android/base/resources/drawable-hdpi/url_bar_entry_default_pb.9.png
mobile/android/base/resources/drawable-hdpi/url_bar_entry_pressed.9.png
mobile/android/base/resources/drawable-hdpi/url_bar_entry_pressed_pb.9.png
mobile/android/base/resources/drawable-hdpi/urlbar_stop.png
mobile/android/base/resources/drawable-hdpi/validation_arrow.png
mobile/android/base/resources/drawable-hdpi/validation_arrow_inverted.png
mobile/android/base/resources/drawable-hdpi/validation_bg.9.png
mobile/android/base/resources/drawable-hdpi/warning_major.png
mobile/android/base/resources/drawable-hdpi/warning_minor.png
mobile/android/base/resources/drawable-hdpi/widget_bg.9.png
mobile/android/base/resources/drawable-large-hdpi-v11/ic_menu_back.png
mobile/android/base/resources/drawable-large-hdpi-v11/ic_menu_forward.png
mobile/android/base/resources/drawable-large-hdpi-v11/ic_menu_reload.png
mobile/android/base/resources/drawable-large-hdpi-v11/ic_menu_stop.png
mobile/android/base/resources/drawable-large-hdpi-v11/tabs_count.png
mobile/android/base/resources/drawable-large-hdpi-v11/tabs_count_foreground.png
mobile/android/base/resources/drawable-large-hdpi-v11/toolbar_favicon_default.png
mobile/android/base/resources/drawable-large-hdpi-v11/url_bar_entry_default.9.png
mobile/android/base/resources/drawable-large-hdpi-v11/url_bar_entry_default_pb.9.png
mobile/android/base/resources/drawable-large-hdpi-v11/url_bar_entry_pressed.9.png
mobile/android/base/resources/drawable-large-hdpi-v11/url_bar_entry_pressed_pb.9.png
mobile/android/base/resources/drawable-large-v11/browser_toolbar_action_bar_button.xml
mobile/android/base/resources/drawable-large-v11/url_bar_nav_button.xml
mobile/android/base/resources/drawable-large-xhdpi-v11/ic_menu_back.png
mobile/android/base/resources/drawable-large-xhdpi-v11/ic_menu_forward.png
mobile/android/base/resources/drawable-large-xhdpi-v11/ic_menu_reload.png
mobile/android/base/resources/drawable-large-xhdpi-v11/ic_menu_stop.png
mobile/android/base/resources/drawable-large-xhdpi-v11/tabs_count.png
mobile/android/base/resources/drawable-large-xhdpi-v11/tabs_count_foreground.png
mobile/android/base/resources/drawable-large-xhdpi-v11/toolbar_favicon_default.png
mobile/android/base/resources/drawable-large-xhdpi-v11/url_bar_entry_default.9.png
mobile/android/base/resources/drawable-large-xhdpi-v11/url_bar_entry_default_pb.9.png
mobile/android/base/resources/drawable-large-xhdpi-v11/url_bar_entry_pressed.9.png
mobile/android/base/resources/drawable-large-xhdpi-v11/url_bar_entry_pressed_pb.9.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/ic_menu_back.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/ic_menu_forward.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/ic_menu_reload.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/ic_menu_stop.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/tabs_count.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/tabs_count_foreground.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/toolbar_favicon_default.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/url_bar_entry_default.9.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/url_bar_entry_default_pb.9.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/url_bar_entry_pressed.9.png
mobile/android/base/resources/drawable-large-xxhdpi-v11/url_bar_entry_pressed_pb.9.png
mobile/android/base/resources/drawable-ldrtl-hdpi/arrow.png
mobile/android/base/resources/drawable-ldrtl-hdpi/home_group_collapsed.png
mobile/android/base/resources/drawable-ldrtl-hdpi/ic_menu_back.png
mobile/android/base/resources/drawable-ldrtl-hdpi/ic_menu_forward.png
mobile/android/base/resources/drawable-ldrtl-hdpi/menu_item_more.png
mobile/android/base/resources/drawable-ldrtl-hdpi/progress.9.png
mobile/android/base/resources/drawable-ldrtl-hdpi/tabs_panel_nav_back.png
mobile/android/base/resources/drawable-ldrtl-large-hdpi/ic_menu_back.png
mobile/android/base/resources/drawable-ldrtl-large-hdpi/ic_menu_forward.png
mobile/android/base/resources/drawable-ldrtl-large-xhdpi/ic_menu_back.png
mobile/android/base/resources/drawable-ldrtl-large-xhdpi/ic_menu_forward.png
mobile/android/base/resources/drawable-ldrtl-large-xxhdpi/ic_menu_back.png
mobile/android/base/resources/drawable-ldrtl-large-xxhdpi/ic_menu_forward.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/arrow.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/home_group_collapsed.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/ic_menu_back.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/ic_menu_forward.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/menu_item_more.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/progress.9.png
mobile/android/base/resources/drawable-ldrtl-xhdpi/tabs_panel_nav_back.png
mobile/android/base/resources/drawable-ldrtl-xxhdpi/arrow.png
mobile/android/base/resources/drawable-ldrtl-xxhdpi/home_group_collapsed.png
mobile/android/base/resources/drawable-ldrtl-xxhdpi/tabs_panel_nav_back.png
mobile/android/base/resources/drawable-nodpi/cloud.png
mobile/android/base/resources/drawable-nodpi/firstrun_account.webp
mobile/android/base/resources/drawable-nodpi/firstrun_bookmarks.webp
mobile/android/base/resources/drawable-nodpi/firstrun_data_off.webp
mobile/android/base/resources/drawable-nodpi/firstrun_data_on.webp
mobile/android/base/resources/drawable-nodpi/firstrun_readerview.webp
mobile/android/base/resources/drawable-nodpi/firstrun_signin.webp
mobile/android/base/resources/drawable-nodpi/firstrun_sync.webp
mobile/android/base/resources/drawable-nodpi/firstrun_tabqueue_off.png
mobile/android/base/resources/drawable-nodpi/firstrun_tabqueue_on.webp
mobile/android/base/resources/drawable-nodpi/firstrun_urlbar.webp
mobile/android/base/resources/drawable-nodpi/icon_recent.png
mobile/android/base/resources/drawable-v12/toast_button_background.xml
mobile/android/base/resources/drawable-v17/url_bar_translating_edge.xml
mobile/android/base/resources/drawable-v21/logo.xml
mobile/android/base/resources/drawable-xhdpi-v11/alert_camera.png
mobile/android/base/resources/drawable-xhdpi-v11/alert_download.png
mobile/android/base/resources/drawable-xhdpi-v11/alert_guest.png
mobile/android/base/resources/drawable-xhdpi-v11/alert_mic.png
mobile/android/base/resources/drawable-xhdpi-v11/alert_mic_camera.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_back.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_bookmark_add.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_forward.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reload.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_stop.png
mobile/android/base/resources/drawable-xhdpi-v11/ic_status_logo.png
mobile/android/base/resources/drawable-xhdpi-v11/star_blue.png
mobile/android/base/resources/drawable-xhdpi/ab_add_search_engine.png
mobile/android/base/resources/drawable-xhdpi/ab_copy.png
mobile/android/base/resources/drawable-xhdpi/ab_cut.png
mobile/android/base/resources/drawable-xhdpi/ab_done.png
mobile/android/base/resources/drawable-xhdpi/ab_menu.png
mobile/android/base/resources/drawable-xhdpi/ab_mic.png
mobile/android/base/resources/drawable-xhdpi/ab_paste.png
mobile/android/base/resources/drawable-xhdpi/ab_qrcode.png
mobile/android/base/resources/drawable-xhdpi/ab_search.png
mobile/android/base/resources/drawable-xhdpi/ab_select_all.png
mobile/android/base/resources/drawable-xhdpi/add_folder.png
mobile/android/base/resources/drawable-xhdpi/alert_camera.png
mobile/android/base/resources/drawable-xhdpi/alert_download.png
mobile/android/base/resources/drawable-xhdpi/alert_download_animation_1.png
mobile/android/base/resources/drawable-xhdpi/alert_download_animation_2.png
mobile/android/base/resources/drawable-xhdpi/alert_download_animation_3.png
mobile/android/base/resources/drawable-xhdpi/alert_download_animation_4.png
mobile/android/base/resources/drawable-xhdpi/alert_download_animation_5.png
mobile/android/base/resources/drawable-xhdpi/alert_download_animation_6.png
mobile/android/base/resources/drawable-xhdpi/alert_guest.png
mobile/android/base/resources/drawable-xhdpi/alert_mic.png
mobile/android/base/resources/drawable-xhdpi/alert_mic_camera.png
mobile/android/base/resources/drawable-xhdpi/arrow.png
mobile/android/base/resources/drawable-xhdpi/arrow_up.png
mobile/android/base/resources/drawable-xhdpi/blank.png
mobile/android/base/resources/drawable-xhdpi/casting.png
mobile/android/base/resources/drawable-xhdpi/casting_active.png
mobile/android/base/resources/drawable-xhdpi/close.png
mobile/android/base/resources/drawable-xhdpi/close_edit_mode_dark.png
mobile/android/base/resources/drawable-xhdpi/close_edit_mode_light.png
mobile/android/base/resources/drawable-xhdpi/color_picker_row_bg.9.png
mobile/android/base/resources/drawable-xhdpi/device_desktop.png
mobile/android/base/resources/drawable-xhdpi/device_mobile.png
mobile/android/base/resources/drawable-xhdpi/dropshadow.9.png
mobile/android/base/resources/drawable-xhdpi/favicon_globe.png
mobile/android/base/resources/drawable-xhdpi/find_close.png
mobile/android/base/resources/drawable-xhdpi/find_next.png
mobile/android/base/resources/drawable-xhdpi/find_prev.png
mobile/android/base/resources/drawable-xhdpi/firefox_settings_alert.png
mobile/android/base/resources/drawable-xhdpi/flat_icon.png
mobile/android/base/resources/drawable-xhdpi/folder_closed.png
mobile/android/base/resources/drawable-xhdpi/foxfinder.webp
mobile/android/base/resources/drawable-xhdpi/globe_light.png
mobile/android/base/resources/drawable-xhdpi/grid_icon_bg_activated.9.png
mobile/android/base/resources/drawable-xhdpi/grid_icon_bg_focused.9.png
mobile/android/base/resources/drawable-xhdpi/handle_end.png
mobile/android/base/resources/drawable-xhdpi/handle_middle.png
mobile/android/base/resources/drawable-xhdpi/handle_start.png
mobile/android/base/resources/drawable-xhdpi/helper_readerview_bookmark.webp
mobile/android/base/resources/drawable-xhdpi/home_group_collapsed.png
mobile/android/base/resources/drawable-xhdpi/home_tab_menu_strip.9.png
mobile/android/base/resources/drawable-xhdpi/homepage_banner_firstrun.png
mobile/android/base/resources/drawable-xhdpi/ic_action_settings.png
mobile/android/base/resources/drawable-xhdpi/ic_media_pause.png
mobile/android/base/resources/drawable-xhdpi/ic_media_play.png
mobile/android/base/resources/drawable-xhdpi/ic_menu_share.png
mobile/android/base/resources/drawable-xhdpi/ic_status_logo.png
mobile/android/base/resources/drawable-xhdpi/ic_url_bar_tab.png
mobile/android/base/resources/drawable-xhdpi/ic_widget_new_tab.png
mobile/android/base/resources/drawable-xhdpi/ic_widget_search.png
mobile/android/base/resources/drawable-xhdpi/icon_bookmarks_empty.png
mobile/android/base/resources/drawable-xhdpi/icon_home_empty_firefox.png
mobile/android/base/resources/drawable-xhdpi/icon_key.png
mobile/android/base/resources/drawable-xhdpi/icon_most_recent_empty.png
mobile/android/base/resources/drawable-xhdpi/icon_openinapp.png
mobile/android/base/resources/drawable-xhdpi/icon_pageaction.png
mobile/android/base/resources/drawable-xhdpi/icon_remote_tabs_empty.png
mobile/android/base/resources/drawable-xhdpi/icon_search_empty_firefox.png
mobile/android/base/resources/drawable-xhdpi/icon_shareplane.png
mobile/android/base/resources/drawable-xhdpi/img_check.png
mobile/android/base/resources/drawable-xhdpi/location.png
mobile/android/base/resources/drawable-xhdpi/lock_disabled.png
mobile/android/base/resources/drawable-xhdpi/lock_inactive.png
mobile/android/base/resources/drawable-xhdpi/lock_secure.png
mobile/android/base/resources/drawable-xhdpi/media_bar_pause.png
mobile/android/base/resources/drawable-xhdpi/media_bar_play.png
mobile/android/base/resources/drawable-xhdpi/media_bar_stop.png
mobile/android/base/resources/drawable-xhdpi/menu.png
mobile/android/base/resources/drawable-xhdpi/menu_item_check.png
mobile/android/base/resources/drawable-xhdpi/menu_item_more.png
mobile/android/base/resources/drawable-xhdpi/menu_item_uncheck.png
mobile/android/base/resources/drawable-xhdpi/network_error.png
mobile/android/base/resources/drawable-xhdpi/notification_media.webp
mobile/android/base/resources/drawable-xhdpi/open_in_browser.png
mobile/android/base/resources/drawable-xhdpi/orange_check.png
mobile/android/base/resources/drawable-xhdpi/overlay_bookmark_icon.png
mobile/android/base/resources/drawable-xhdpi/overlay_bookmarked_already_icon.png
mobile/android/base/resources/drawable-xhdpi/overlay_check.png
mobile/android/base/resources/drawable-xhdpi/pause.png
mobile/android/base/resources/drawable-xhdpi/phone.png
mobile/android/base/resources/drawable-xhdpi/play.png
mobile/android/base/resources/drawable-xhdpi/private_masq.png
mobile/android/base/resources/drawable-xhdpi/progress.9.png
mobile/android/base/resources/drawable-xhdpi/push_notification.png
mobile/android/base/resources/drawable-xhdpi/reader.png
mobile/android/base/resources/drawable-xhdpi/reader_active.png
mobile/android/base/resources/drawable-xhdpi/reading_list_folder.png
mobile/android/base/resources/drawable-xhdpi/search_clear.png
mobile/android/base/resources/drawable-xhdpi/search_history.png
mobile/android/base/resources/drawable-xhdpi/search_icon_active.png
mobile/android/base/resources/drawable-xhdpi/search_icon_inactive.png
mobile/android/base/resources/drawable-xhdpi/search_launcher.png
mobile/android/base/resources/drawable-xhdpi/search_plus.png
mobile/android/base/resources/drawable-xhdpi/settings_notifications.png
mobile/android/base/resources/drawable-xhdpi/shareplane.png
mobile/android/base/resources/drawable-xhdpi/shield_disabled.png
mobile/android/base/resources/drawable-xhdpi/shield_enabled.png
mobile/android/base/resources/drawable-xhdpi/status_icon_readercache.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_amazon.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_facebook.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_restricted_fxsupport.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_restricted_mozilla.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_twitter.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_webmaker.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_wikipedia.png
mobile/android/base/resources/drawable-xhdpi/suggestedsites_youtube.png
mobile/android/base/resources/drawable-xhdpi/switch_button_icon.png
mobile/android/base/resources/drawable-xhdpi/tab_audio_playing.png
mobile/android/base/resources/drawable-xhdpi/tab_close.png
mobile/android/base/resources/drawable-xhdpi/tab_close_active.png
mobile/android/base/resources/drawable-xhdpi/tab_indicator_background.9.png
mobile/android/base/resources/drawable-xhdpi/tab_indicator_divider.9.png
mobile/android/base/resources/drawable-xhdpi/tab_indicator_selected.9.png
mobile/android/base/resources/drawable-xhdpi/tab_indicator_selected_focused.9.png
mobile/android/base/resources/drawable-xhdpi/tab_new.png
mobile/android/base/resources/drawable-xhdpi/tab_preview_masq.png
mobile/android/base/resources/drawable-xhdpi/tabs_count.png
mobile/android/base/resources/drawable-xhdpi/tabs_count_foreground.png
mobile/android/base/resources/drawable-xhdpi/tabs_normal.png
mobile/android/base/resources/drawable-xhdpi/tabs_panel_nav_back.png
mobile/android/base/resources/drawable-xhdpi/tabs_private.png
mobile/android/base/resources/drawable-xhdpi/tip_addsearch.png
mobile/android/base/resources/drawable-xhdpi/top_site_add.png
mobile/android/base/resources/drawable-xhdpi/tracking_protection_toolbar_illustration.png
mobile/android/base/resources/drawable-xhdpi/undo_button_icon.png
mobile/android/base/resources/drawable-xhdpi/url_bar_entry_default.9.png
mobile/android/base/resources/drawable-xhdpi/url_bar_entry_default_pb.9.png
mobile/android/base/resources/drawable-xhdpi/url_bar_entry_pressed.9.png
mobile/android/base/resources/drawable-xhdpi/url_bar_entry_pressed_pb.9.png
mobile/android/base/resources/drawable-xhdpi/urlbar_stop.png
mobile/android/base/resources/drawable-xhdpi/validation_arrow.png
mobile/android/base/resources/drawable-xhdpi/validation_arrow_inverted.png
mobile/android/base/resources/drawable-xhdpi/validation_bg.9.png
mobile/android/base/resources/drawable-xhdpi/warning_major.png
mobile/android/base/resources/drawable-xhdpi/warning_minor.png
mobile/android/base/resources/drawable-xhdpi/widget_bg.9.png
mobile/android/base/resources/drawable-xlarge-hdpi-v11/ic_menu_bookmark_add.png
mobile/android/base/resources/drawable-xlarge-hdpi-v11/star_blue.png
mobile/android/base/resources/drawable-xlarge-xhdpi-v11/ic_menu_bookmark_add.png
mobile/android/base/resources/drawable-xlarge-xhdpi-v11/star_blue.png
mobile/android/base/resources/drawable-xlarge-xxhdpi-v11/ic_menu_bookmark_add.png
mobile/android/base/resources/drawable-xlarge-xxhdpi-v11/star_blue.png
mobile/android/base/resources/drawable-xxhdpi-v11/ic_status_logo.png
mobile/android/base/resources/drawable-xxhdpi/ab_mic.png
mobile/android/base/resources/drawable-xxhdpi/ab_qrcode.png
mobile/android/base/resources/drawable-xxhdpi/add_folder.png
mobile/android/base/resources/drawable-xxhdpi/arrow.png
mobile/android/base/resources/drawable-xxhdpi/arrow_up.png
mobile/android/base/resources/drawable-xxhdpi/close_edit_mode_dark.png
mobile/android/base/resources/drawable-xxhdpi/close_edit_mode_light.png
mobile/android/base/resources/drawable-xxhdpi/device_desktop.png
mobile/android/base/resources/drawable-xxhdpi/device_mobile.png
mobile/android/base/resources/drawable-xxhdpi/dropshadow.9.png
mobile/android/base/resources/drawable-xxhdpi/exit_fullscreen.png
mobile/android/base/resources/drawable-xxhdpi/flat_icon.png
mobile/android/base/resources/drawable-xxhdpi/folder_closed.png
mobile/android/base/resources/drawable-xxhdpi/foxfinder.webp
mobile/android/base/resources/drawable-xxhdpi/fullscreen.png
mobile/android/base/resources/drawable-xxhdpi/globe_light.png
mobile/android/base/resources/drawable-xxhdpi/helper_readerview_bookmark.webp
mobile/android/base/resources/drawable-xxhdpi/home_group_collapsed.png
mobile/android/base/resources/drawable-xxhdpi/homepage_banner_firstrun.png
mobile/android/base/resources/drawable-xxhdpi/ic_action_settings.png
mobile/android/base/resources/drawable-xxhdpi/ic_media_pause.png
mobile/android/base/resources/drawable-xxhdpi/ic_media_play.png
mobile/android/base/resources/drawable-xxhdpi/ic_menu_share.png
mobile/android/base/resources/drawable-xxhdpi/ic_widget_new_tab.png
mobile/android/base/resources/drawable-xxhdpi/ic_widget_search.png
mobile/android/base/resources/drawable-xxhdpi/icon_key.png
mobile/android/base/resources/drawable-xxhdpi/icon_search_empty_firefox.png
mobile/android/base/resources/drawable-xxhdpi/icon_shareplane.png
mobile/android/base/resources/drawable-xxhdpi/img_check.png
mobile/android/base/resources/drawable-xxhdpi/location.png
mobile/android/base/resources/drawable-xxhdpi/lock_disabled.png
mobile/android/base/resources/drawable-xxhdpi/lock_inactive.png
mobile/android/base/resources/drawable-xxhdpi/lock_secure.png
mobile/android/base/resources/drawable-xxhdpi/menu.png
mobile/android/base/resources/drawable-xxhdpi/menu_item_check.png
mobile/android/base/resources/drawable-xxhdpi/menu_item_uncheck.png
mobile/android/base/resources/drawable-xxhdpi/network_error.png
mobile/android/base/resources/drawable-xxhdpi/notification_media.webp
mobile/android/base/resources/drawable-xxhdpi/orange_check.png
mobile/android/base/resources/drawable-xxhdpi/overlay_bookmark_icon.png
mobile/android/base/resources/drawable-xxhdpi/overlay_bookmarked_already_icon.png
mobile/android/base/resources/drawable-xxhdpi/overlay_check.png
mobile/android/base/resources/drawable-xxhdpi/private_masq.png
mobile/android/base/resources/drawable-xxhdpi/push_notification.png
mobile/android/base/resources/drawable-xxhdpi/reading_list_folder.png
mobile/android/base/resources/drawable-xxhdpi/search_clear.png
mobile/android/base/resources/drawable-xxhdpi/search_history.png
mobile/android/base/resources/drawable-xxhdpi/search_icon_active.png
mobile/android/base/resources/drawable-xxhdpi/search_icon_inactive.png
mobile/android/base/resources/drawable-xxhdpi/search_launcher.png
mobile/android/base/resources/drawable-xxhdpi/search_plus.png
mobile/android/base/resources/drawable-xxhdpi/shareplane.png
mobile/android/base/resources/drawable-xxhdpi/shield_disabled.png
mobile/android/base/resources/drawable-xxhdpi/shield_enabled.png
mobile/android/base/resources/drawable-xxhdpi/status_icon_readercache.png
mobile/android/base/resources/drawable-xxhdpi/suggestedsites_amazon.png
mobile/android/base/resources/drawable-xxhdpi/suggestedsites_facebook.png
mobile/android/base/resources/drawable-xxhdpi/suggestedsites_twitter.png
mobile/android/base/resources/drawable-xxhdpi/suggestedsites_wikipedia.png
mobile/android/base/resources/drawable-xxhdpi/suggestedsites_youtube.png
mobile/android/base/resources/drawable-xxhdpi/tab_close.png
mobile/android/base/resources/drawable-xxhdpi/tab_close_active.png
mobile/android/base/resources/drawable-xxhdpi/tab_new.png
mobile/android/base/resources/drawable-xxhdpi/tab_preview_masq.png
mobile/android/base/resources/drawable-xxhdpi/tabs_panel_nav_back.png
mobile/android/base/resources/drawable-xxhdpi/tracking_protection_toolbar_illustration.png
mobile/android/base/resources/drawable-xxhdpi/url_bar_entry_default.9.png
mobile/android/base/resources/drawable-xxhdpi/url_bar_entry_default_pb.9.png
mobile/android/base/resources/drawable-xxhdpi/url_bar_entry_pressed.9.png
mobile/android/base/resources/drawable-xxhdpi/url_bar_entry_pressed_pb.9.png
mobile/android/base/resources/drawable-xxhdpi/urlbar_stop.png
mobile/android/base/resources/drawable-xxhdpi/warning_major.png
mobile/android/base/resources/drawable-xxhdpi/warning_minor.png
mobile/android/base/resources/drawable-xxxhdpi/search_launcher.png
mobile/android/base/resources/drawable/action_bar_button.xml
mobile/android/base/resources/drawable/action_bar_button_inverse.xml
mobile/android/base/resources/drawable/action_bar_button_negative.xml
mobile/android/base/resources/drawable/action_bar_button_positive.xml
mobile/android/base/resources/drawable/alert_download_animation.xml
mobile/android/base/resources/drawable/arrow_down.xml
mobile/android/base/resources/drawable/as_bin.xml
mobile/android/base/resources/drawable/as_bookmark.xml
mobile/android/base/resources/drawable/as_bookmark_filled.xml
mobile/android/base/resources/drawable/as_contextmenu_divider.xml
mobile/android/base/resources/drawable/as_copy.xml
mobile/android/base/resources/drawable/as_dismiss.xml
mobile/android/base/resources/drawable/as_home.xml
mobile/android/base/resources/drawable/as_pin.xml
mobile/android/base/resources/drawable/as_private.xml
mobile/android/base/resources/drawable/as_share.xml
mobile/android/base/resources/drawable/as_tab.xml
mobile/android/base/resources/drawable/autocomplete_list_bg.xml
mobile/android/base/resources/drawable/bookmark_folder_arrow_up.xml
mobile/android/base/resources/drawable/button_background_action_blue_round.xml
mobile/android/base/resources/drawable/button_background_action_orange_round.xml
mobile/android/base/resources/drawable/button_enabled_action_blue_round.xml
mobile/android/base/resources/drawable/button_enabled_action_orange_round.xml
mobile/android/base/resources/drawable/button_pressed_action_blue_round.xml
mobile/android/base/resources/drawable/button_pressed_action_orange_round.xml
mobile/android/base/resources/drawable/close_edit_mode_selector.xml
mobile/android/base/resources/drawable/color_picker_checkmark.xml
mobile/android/base/resources/drawable/customtabs_menu_item_control.xml
mobile/android/base/resources/drawable/divider_vertical.xml
mobile/android/base/resources/drawable/edit_text_default.xml
mobile/android/base/resources/drawable/edit_text_focused.xml
mobile/android/base/resources/drawable/facet_button_background.xml
mobile/android/base/resources/drawable/facet_button_background_default.xml
mobile/android/base/resources/drawable/facet_button_background_pressed.xml
mobile/android/base/resources/drawable/home_banner.xml
mobile/android/base/resources/drawable/home_history_clear_button_bg.xml
mobile/android/base/resources/drawable/home_pager_empty_state.xml
mobile/android/base/resources/drawable/ic_as_bookmarked.xml
mobile/android/base/resources/drawable/ic_as_visited.xml
mobile/android/base/resources/drawable/icon_grid_item_bg.xml
mobile/android/base/resources/drawable/logo.xml
mobile/android/base/resources/drawable/menu_item_action_bar_bg.xml
mobile/android/base/resources/drawable/menu_item_state.xml
mobile/android/base/resources/drawable/overlay_share_bookmark_button.xml
mobile/android/base/resources/drawable/overlay_share_button_background.xml
mobile/android/base/resources/drawable/overlay_share_button_background_first.xml
mobile/android/base/resources/drawable/panel_auth_button.xml
mobile/android/base/resources/drawable/progressbar.xml
mobile/android/base/resources/drawable/push_notification.png
mobile/android/base/resources/drawable/remote_tabs_setup_button_background.xml
mobile/android/base/resources/drawable/search_row_background.xml
mobile/android/base/resources/drawable/search_suggestion_button.xml
mobile/android/base/resources/drawable/search_suggestion_prompt_no.xml
mobile/android/base/resources/drawable/search_suggestion_prompt_yes.xml
mobile/android/base/resources/drawable/shaped_button.xml
mobile/android/base/resources/drawable/site_security_icon.xml
mobile/android/base/resources/drawable/site_security_unknown.xml
mobile/android/base/resources/drawable/tab_history_bg.xml
mobile/android/base/resources/drawable/tab_history_icon_state.xml
mobile/android/base/resources/drawable/tab_item_close_button.xml
mobile/android/base/resources/drawable/tab_panel_tab_background.xml
mobile/android/base/resources/drawable/tab_queue_dismiss_button_foreground.xml
mobile/android/base/resources/drawable/tab_row.xml
mobile/android/base/resources/drawable/tab_strip_button.xml
mobile/android/base/resources/drawable/tab_thumbnail.xml
mobile/android/base/resources/drawable/tabs_panel_indicator.xml
mobile/android/base/resources/drawable/tabs_panel_indicator_selected.xml
mobile/android/base/resources/drawable/tabs_panel_indicator_selected_private.xml
mobile/android/base/resources/drawable/tabs_strip_indicator.xml
mobile/android/base/resources/drawable/toast_background.xml
mobile/android/base/resources/drawable/toast_button_background.xml
mobile/android/base/resources/drawable/toolbar_favicon_default.xml
mobile/android/base/resources/drawable/top_sites_thumbnail_bg.xml
mobile/android/base/resources/drawable/url_bar_bg.xml
mobile/android/base/resources/drawable/url_bar_entry.xml
mobile/android/base/resources/drawable/url_bar_nav_button.xml
mobile/android/base/resources/drawable/url_bar_translating_edge.xml
mobile/android/base/resources/drawable/widget_button_left.xml
mobile/android/base/resources/drawable/widget_button_left_default.xml
mobile/android/base/resources/drawable/widget_button_left_pressed.xml
mobile/android/base/resources/drawable/widget_button_middle.xml
mobile/android/base/resources/drawable/widget_button_middle_pressed.xml
mobile/android/base/resources/drawable/widget_button_right.xml
mobile/android/base/resources/drawable/widget_button_right_pressed.xml
mobile/android/base/resources/layout-large-v11/browser_toolbar.xml
mobile/android/base/resources/layout-large-v11/tabs_counter.xml
mobile/android/base/resources/layout/actionbar.xml
mobile/android/base/resources/layout/activity_stream.xml
mobile/android/base/resources/layout/activity_stream_card_history_item.xml
mobile/android/base/resources/layout/activity_stream_contextmenu_bottomsheet.xml
mobile/android/base/resources/layout/activity_stream_contextmenu_popupmenu.xml
mobile/android/base/resources/layout/activity_stream_main_highlightstitle.xml
mobile/android/base/resources/layout/activity_stream_main_toppanel.xml
mobile/android/base/resources/layout/activity_stream_main_welcomepanel.xml
mobile/android/base/resources/layout/activity_stream_main_welcomepanel_content.xml
mobile/android/base/resources/layout/activity_stream_topsites_card.xml
mobile/android/base/resources/layout/activity_stream_topsites_page.xml
mobile/android/base/resources/layout/anchored_popup.xml
mobile/android/base/resources/layout/as_content.xml
mobile/android/base/resources/layout/autocomplete_list.xml
mobile/android/base/resources/layout/autocomplete_list_item.xml
mobile/android/base/resources/layout/basic_color_picker_dialog.xml
mobile/android/base/resources/layout/bookmark_add_folder.xml
mobile/android/base/resources/layout/bookmark_edit.xml
mobile/android/base/resources/layout/bookmark_edit_with_full_page.xml
mobile/android/base/resources/layout/bookmark_folder_item.xml
mobile/android/base/resources/layout/bookmark_folder_row.xml
mobile/android/base/resources/layout/bookmark_folder_select.xml
mobile/android/base/resources/layout/bookmark_item_row.xml
mobile/android/base/resources/layout/bookmark_screenshot_row.xml
mobile/android/base/resources/layout/browser_search.xml
mobile/android/base/resources/layout/browser_toolbar.xml
mobile/android/base/resources/layout/button_toast.xml
mobile/android/base/resources/layout/color_picker_row.xml
mobile/android/base/resources/layout/customtabs_action_bar_custom_view.xml
mobile/android/base/resources/layout/customtabs_activity.xml
mobile/android/base/resources/layout/customtabs_options_menu_footer.xml
mobile/android/base/resources/layout/datetime_picker.xml
mobile/android/base/resources/layout/default_doorhanger.xml
mobile/android/base/resources/layout/doorhanger.xml
mobile/android/base/resources/layout/doorhanger_security.xml
mobile/android/base/resources/layout/find_in_page_content.xml
mobile/android/base/resources/layout/firstrun_animation_container.xml
mobile/android/base/resources/layout/firstrun_basepanel_checkable_fragment.xml
mobile/android/base/resources/layout/firstrun_sync_fragment.xml
mobile/android/base/resources/layout/gecko_app.xml
mobile/android/base/resources/layout/history_sync_setup.xml
mobile/android/base/resources/layout/home_banner.xml
mobile/android/base/resources/layout/home_banner_content.xml
mobile/android/base/resources/layout/home_bookmarks_panel.xml
mobile/android/base/resources/layout/home_combined_back_item.xml
mobile/android/base/resources/layout/home_combined_history_panel.xml
mobile/android/base/resources/layout/home_empty_panel.xml
mobile/android/base/resources/layout/home_header_row.xml
mobile/android/base/resources/layout/home_item_row.xml
mobile/android/base/resources/layout/home_pager.xml
mobile/android/base/resources/layout/home_remote_tabs_group.xml
mobile/android/base/resources/layout/home_remote_tabs_hidden_devices.xml
mobile/android/base/resources/layout/home_search_item_row.xml
mobile/android/base/resources/layout/home_smartfolder.xml
mobile/android/base/resources/layout/home_suggestion_prompt.xml
mobile/android/base/resources/layout/home_top_sites_panel.xml
mobile/android/base/resources/layout/icon_grid.xml
mobile/android/base/resources/layout/icon_grid_item.xml
mobile/android/base/resources/layout/list_item_header.xml
mobile/android/base/resources/layout/login_doorhanger.xml
mobile/android/base/resources/layout/login_edit_dialog.xml
mobile/android/base/resources/layout/media_casting.xml
mobile/android/base/resources/layout/menu_action_bar.xml
mobile/android/base/resources/layout/menu_item_switcher_layout.xml
mobile/android/base/resources/layout/menu_popup.xml
mobile/android/base/resources/layout/menu_secondary_action_bar.xml
mobile/android/base/resources/layout/overlay_share_button.xml
mobile/android/base/resources/layout/overlay_share_dialog.xml
mobile/android/base/resources/layout/overlay_share_send_tab_item.xml
mobile/android/base/resources/layout/panel_article_item.xml
mobile/android/base/resources/layout/panel_auth_layout.xml
mobile/android/base/resources/layout/panel_back_item.xml
mobile/android/base/resources/layout/panel_icon_item.xml
mobile/android/base/resources/layout/panel_image_item.xml
mobile/android/base/resources/layout/panel_item_container.xml
mobile/android/base/resources/layout/pin_site_dialog.xml
mobile/android/base/resources/layout/preference_checkbox.xml
mobile/android/base/resources/layout/preference_panels.xml
mobile/android/base/resources/layout/preference_rightalign_icon.xml
mobile/android/base/resources/layout/preference_search_engine.xml
mobile/android/base/resources/layout/preference_search_tip.xml
mobile/android/base/resources/layout/preference_set_homepage.xml
mobile/android/base/resources/layout/private_tabs_panel.xml
mobile/android/base/resources/layout/restricted_firstrun_welcome_fragment.xml
mobile/android/base/resources/layout/search_activity_main.xml
mobile/android/base/resources/layout/search_bar.xml
mobile/android/base/resources/layout/search_empty.xml
mobile/android/base/resources/layout/search_engine_bar_item.xml
mobile/android/base/resources/layout/search_engine_bar_label.xml
mobile/android/base/resources/layout/search_engine_row.xml
mobile/android/base/resources/layout/search_fragment_post_search.xml
mobile/android/base/resources/layout/search_fragment_pre_search.xml
mobile/android/base/resources/layout/search_history_row.xml
mobile/android/base/resources/layout/search_sugestions.xml
mobile/android/base/resources/layout/search_suggestions_row.xml
mobile/android/base/resources/layout/search_widget.xml
mobile/android/base/resources/layout/select_dialog_list.xml
mobile/android/base/resources/layout/select_dialog_multichoice.xml
mobile/android/base/resources/layout/select_dialog_singlechoice.xml
mobile/android/base/resources/layout/site_identity.xml
mobile/android/base/resources/layout/site_setting_item.xml
mobile/android/base/resources/layout/suggestion_item.xml
mobile/android/base/resources/layout/tab_history_item_row.xml
mobile/android/base/resources/layout/tab_history_layout.xml
mobile/android/base/resources/layout/tab_menu_strip.xml
mobile/android/base/resources/layout/tab_prompt_input.xml
mobile/android/base/resources/layout/tab_queue_prompt.xml
mobile/android/base/resources/layout/tab_queue_toast.xml
mobile/android/base/resources/layout/tab_strip.xml
mobile/android/base/resources/layout/tab_strip_inner.xml
mobile/android/base/resources/layout/tab_strip_item.xml
mobile/android/base/resources/layout/tab_strip_item_view.xml
mobile/android/base/resources/layout/tabs_counter.xml
mobile/android/base/resources/layout/tabs_layout_item_view.xml
mobile/android/base/resources/layout/tabs_list_item_view.xml
mobile/android/base/resources/layout/tabs_panel_default.xml
mobile/android/base/resources/layout/tabs_panel_indicator.xml
mobile/android/base/resources/layout/tabs_panel_view.xml
mobile/android/base/resources/layout/toolbar_display_layout.xml
mobile/android/base/resources/layout/toolbar_edit_layout.xml
mobile/android/base/resources/layout/top_sites_grid_item_view.xml
mobile/android/base/resources/layout/tracking_protection_prompt.xml
mobile/android/base/resources/layout/two_line_folder_row.xml
mobile/android/base/resources/layout/two_line_page_row.xml
mobile/android/base/resources/layout/validation_message.xml
mobile/android/base/resources/layout/webapps_action_bar_custom_view.xml
mobile/android/base/resources/menu-large/browser_app_menu.xml
mobile/android/base/resources/menu-v11/preferences_search_menu.xml
mobile/android/base/resources/menu-v11/tabs_menu.xml
mobile/android/base/resources/menu-v11/titlebar_contextmenu.xml
mobile/android/base/resources/menu-xlarge/browser_app_menu.xml
mobile/android/base/resources/menu/activitystream_contextmenu.xml
mobile/android/base/resources/menu/bookmark_edit_menu.xml
mobile/android/base/resources/menu/bookmark_folder_menu.xml
mobile/android/base/resources/menu/browser_app_menu.xml
mobile/android/base/resources/menu/browsersearch_contextmenu.xml
mobile/android/base/resources/menu/customtabs_menu.xml
mobile/android/base/resources/menu/gecko_app_menu.xml
mobile/android/base/resources/menu/home_contextmenu.xml
mobile/android/base/resources/menu/home_remote_tabs_client_contextmenu.xml
mobile/android/base/resources/menu/preferences_search_menu.xml
mobile/android/base/resources/menu/tabs_menu.xml
mobile/android/base/resources/menu/titlebar_contextmenu.xml
mobile/android/base/resources/raw/bookmarkdefaults_favicon_addons.png
mobile/android/base/resources/raw/bookmarkdefaults_favicon_restricted_support.png
mobile/android/base/resources/raw/bookmarkdefaults_favicon_restricted_webmaker.png
mobile/android/base/resources/raw/bookmarkdefaults_favicon_support.png
mobile/android/base/resources/raw/fake_home_items.json
mobile/android/base/resources/raw/topdomains.txt
mobile/android/base/resources/values-land/dimens.xml
mobile/android/base/resources/values-land/integers.xml
mobile/android/base/resources/values-land/styles.xml
mobile/android/base/resources/values-large-land-v11/dimens.xml
mobile/android/base/resources/values-large-land-v11/styles.xml
mobile/android/base/resources/values-large-v16/dimens.xml
mobile/android/base/resources/values-large-v16/styles.xml
mobile/android/base/resources/values-large-v17/styles.xml
mobile/android/base/resources/values-large/bool.xml
mobile/android/base/resources/values-large/dimens.xml
mobile/android/base/resources/values-large/integers.xml
mobile/android/base/resources/values-large/styles.xml
mobile/android/base/resources/values-sw240dp/dimens.xml
mobile/android/base/resources/values-sw360dp/dimens.xml
mobile/android/base/resources/values-sw400dp/dimens.xml
mobile/android/base/resources/values-v11/dimens.xml
mobile/android/base/resources/values-v11/styles.xml
mobile/android/base/resources/values-v11/themes.xml
mobile/android/base/resources/values-v13/search_styles.xml
mobile/android/base/resources/values-v13/styles.xml
mobile/android/base/resources/values-v14/themes.xml
mobile/android/base/resources/values-v16/search_styles.xml
mobile/android/base/resources/values-v16/styles.xml
mobile/android/base/resources/values-v17/styles.xml
mobile/android/base/resources/values-v19/dimens.xml
mobile/android/base/resources/values-v19/styles.xml
mobile/android/base/resources/values-v21/dimens.xml
mobile/android/base/resources/values-v21/integers.xml
mobile/android/base/resources/values-v21/styles.xml
mobile/android/base/resources/values-v21/themes.xml
mobile/android/base/resources/values-w400dp/styles.xml
mobile/android/base/resources/values-xlarge-land-v11/dimens.xml
mobile/android/base/resources/values-xlarge-land-v11/styles.xml
mobile/android/base/resources/values-xlarge-v11/dimens.xml
mobile/android/base/resources/values-xlarge-v11/integers.xml
mobile/android/base/resources/values-xlarge-v11/styles.xml
mobile/android/base/resources/values/arrays.xml
mobile/android/base/resources/values/attrs.xml
mobile/android/base/resources/values/bool.xml
mobile/android/base/resources/values/colors.xml
mobile/android/base/resources/values/dimens.xml
mobile/android/base/resources/values/ids.xml
mobile/android/base/resources/values/integers.xml
mobile/android/base/resources/values/search_attrs.xml
mobile/android/base/resources/values/search_colors.xml
mobile/android/base/resources/values/search_dimens.xml
mobile/android/base/resources/values/search_styles.xml
mobile/android/base/resources/values/styles.xml
mobile/android/base/resources/values/themes.xml
mobile/android/base/resources/values/vpi__attrs.xml
mobile/android/base/resources/values/vpi__defaults.xml
mobile/android/base/resources/xml-v11/preference_headers.xml
mobile/android/base/resources/xml-v11/preferences_default_browser_tablet.xml
mobile/android/base/resources/xml-v11/preferences_privacy_clear_tablet.xml
mobile/android/base/resources/xml-v11/preferences_search.xml
mobile/android/base/resources/xml/preference_headers.xml
mobile/android/base/resources/xml/preferences.xml
mobile/android/base/resources/xml/preferences_accessibility.xml
mobile/android/base/resources/xml/preferences_advanced.xml
mobile/android/base/resources/xml/preferences_general.xml
mobile/android/base/resources/xml/preferences_general_tablet.xml
mobile/android/base/resources/xml/preferences_home.xml
mobile/android/base/resources/xml/preferences_locale.xml
mobile/android/base/resources/xml/preferences_notifications.xml
mobile/android/base/resources/xml/preferences_privacy.xml
mobile/android/base/resources/xml/preferences_search.xml
mobile/android/base/resources/xml/preferences_vendor.xml
mobile/android/base/resources/xml/search_preferences.xml
mobile/android/base/resources/xml/search_widget_info.xml
mobile/android/base/resources/xml/searchable.xml
modules/libpref/init/all.js
netwerk/protocol/http/nsHttpChannel.cpp
netwerk/protocol/http/nsHttpHandler.cpp
security/manager/ssl/SSLServerCertVerification.cpp
security/manager/ssl/nsNSSComponent.cpp
storage/StorageBaseStatementInternal.cpp
storage/mozStorageConnection.cpp
storage/mozStorageService.cpp
storage/mozStorageStatementData.h
testing/talos/talos/startup_test/sessionrestore/index.html
testing/talos/talos/startup_test/sessionrestore/main.js
testing/web-platform/meta/html/browsers/the-window-object/historical.window.js.ini
widget/nsBaseWidget.cpp
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -7,29 +7,35 @@
 @namespace svg url("http://www.w3.org/2000/svg");
 
 :root {
   --identity-popup-expander-width: 38px;
   --panelui-subview-transition-duration: 150ms;
   --lwt-additional-images: none;
   --lwt-background-alignment: right top;
   --lwt-background-tiling: no-repeat;
+  --lwt-toolbar-color: inherit;
 }
 
 :root:-moz-lwtheme {
   color: var(--lwt-text-color) !important;
 }
 
 :root:-moz-lwtheme:not([customization-lwtheme]) {
   background-color: var(--lwt-accent-color) !important;
   background-image: var(--lwt-header-image), var(--lwt-additional-images) !important;
   background-position: var(--lwt-background-alignment) !important;
   background-repeat: var(--lwt-background-tiling) !important;
 }
 
+#navigator-toolbox > toolbar,
+findbar {
+  background: var(--lwt-toolbar-color) !important;
+}
+
 #main-window:not([chromehidden~="toolbar"]) {
 %ifdef XP_MACOSX
   min-width: 335px;
 %else
   min-width: 300px;
 %endif
 }
 
--- a/browser/base/content/test/webextensions/.eslintrc.js
+++ b/browser/base/content/test/webextensions/.eslintrc.js
@@ -1,7 +1,11 @@
 "use strict";
 
 module.exports = {
   "extends": [
     "plugin:mozilla/browser-test"
-  ]
+  ],
+
+  "env": {
+    "webextensions": true,
+  },
 };
--- a/browser/base/content/test/webextensions/browser.ini
+++ b/browser/base/content/test/webextensions/browser.ini
@@ -18,13 +18,14 @@ support-files =
 
 [browser_extension_sideloading.js]
 [browser_extension_update_background.js]
 [browser_extension_update_background_noprompt.js]
 [browser_permissions_addons_search.js]
 [browser_permissions_installTrigger.js]
 [browser_permissions_local_file.js]
 [browser_permissions_mozAddonManager.js]
+[browser_permissions_optional.js]
 [browser_permissions_unsigned.js]
 skip-if = require_signing
 [browser_update_checkForUpdates.js]
 [browser_update_findUpdates.js]
 [browser_update_interactive_noprompt.js]
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/webextensions/browser_permissions_optional.js
@@ -0,0 +1,43 @@
+"use strict";
+add_task(async function test_request_permissions_without_prompt() {
+  async function pageScript() {
+    const NO_PROMPT_PERM = "activeTab";
+    window.addEventListener("keypress", async () => {
+      let permGranted = await browser.permissions.request(
+        {permissions: [NO_PROMPT_PERM]});
+      browser.test.assertTrue(permGranted,
+                              `${NO_PROMPT_PERM} permission was granted.`);
+      let perms = await browser.permissions.getAll();
+      browser.test.assertTrue(perms.permissions.includes(NO_PROMPT_PERM),
+                              `${NO_PROMPT_PERM} permission exists.`)
+      browser.test.sendMessage("permsGranted");
+      }, {once: true});
+    browser.test.sendMessage("pageReady");
+  }
+
+  let extension = ExtensionTestUtils.loadExtension({
+    background() {
+      browser.test.sendMessage("ready", browser.runtime.getURL("page.html"));
+    },
+    files: {
+      "page.html": `<html><head><script src="page.js"></script></head></html>`,
+      "page.js": pageScript,
+    },
+    manifest: {
+      "optional_permissions": [
+        "activeTab"
+      ],
+    },
+  });
+  await extension.startup();
+
+  let url = await extension.awaitMessage("ready");
+  let win = window.open(url);
+  await extension.awaitMessage("pageReady");
+
+  let winutils = SpecialPowers.getDOMWindowUtils(win);
+  winutils.sendKeyEvent("keypress", KeyEvent.DOM_VK_A, 0, 0);
+  await extension.awaitMessage("permsGranted");
+
+  await extension.unload();
+});
--- a/browser/base/content/urlbarBindings.xml
+++ b/browser/base/content/urlbarBindings.xml
@@ -1595,17 +1595,17 @@ file, You can obtain one at http://mozil
                      role="link"
 #ifdef XP_WIN
                      value="&urlbar.searchSuggestionsNotification.changeSettingsWin;"
                      accesskey="&urlbar.searchSuggestionsNotification.changeSettingsWin.accesskey;"
 #else
                      value="&urlbar.searchSuggestionsNotification.changeSettingsUnix;"
                      accesskey="&urlbar.searchSuggestionsNotification.changeSettingsUnix.accesskey;"
 #endif
-                     onclick="openPreferences('general-search');"
+                     onclick="Preferences.get('browser.preferences.useOldOrganization') ? openPreferences('paneSearch') : openPreferences('general-search');"
                      control="search-suggestions-change-settings"/>
         </xul:hbox>
       </xul:deck>
       <xul:richlistbox anonid="richlistbox" class="autocomplete-richlistbox"
                        flex="1"/>
       <xul:hbox anonid="footer">
         <children/>
         <xul:vbox anonid="one-off-search-buttons"
--- a/browser/components/extensions/ext-browserAction.js
+++ b/browser/components/extensions/ext-browserAction.js
@@ -9,16 +9,18 @@
 /* import-globals-from ext-utils.js */
 
 XPCOMUtils.defineLazyModuleGetter(this, "CustomizableUI",
                                   "resource:///modules/CustomizableUI.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "clearTimeout",
                                   "resource://gre/modules/Timer.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "setTimeout",
                                   "resource://gre/modules/Timer.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
+                                  "resource://gre/modules/TelemetryStopwatch.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "ViewPopup",
                                   "resource:///modules/ExtensionPopups.jsm");
 
 XPCOMUtils.defineLazyServiceGetter(this, "DOMUtils",
                                    "@mozilla.org/inspector/dom-utils;1",
                                    "inIDOMUtils");
 
 Cu.import("resource://gre/modules/EventEmitter.jsm");
@@ -31,16 +33,18 @@ var {
 
 Cu.import("resource://gre/modules/ExtensionParent.jsm");
 
 var {
   IconDetails,
 } = ExtensionParent;
 
 const POPUP_PRELOAD_TIMEOUT_MS = 200;
+const POPUP_OPEN_MS_HISTOGRAM = "WEBEXT_BROWSERACTION_POPUP_OPEN_MS";
+const POPUP_RESULT_HISTOGRAM = "WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT";
 
 var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
 function isAncestorOrSelf(target, node) {
   for (; node; node = node.parentNode) {
     if (node === target) {
       return true;
     }
@@ -74,16 +78,17 @@ this.browserAction = class extends Exten
 
     let widgetId = makeWidgetId(extension.id);
     this.id = `${widgetId}-browser-action`;
     this.viewId = `PanelUI-webext-${widgetId}-browser-action-view`;
     this.widget = null;
 
     this.pendingPopup = null;
     this.pendingPopupTimeout = null;
+    this.eventQueue = [];
 
     this.tabManager = extension.tabManager;
 
     this.defaults = {
       enabled: true,
       title: options.default_title || extension.name,
       badgeText: "",
       badgeBackgroundColor: null,
@@ -154,17 +159,18 @@ this.browserAction = class extends Exten
 
         node.onmousedown = event => this.handleEvent(event);
         node.onmouseover = event => this.handleEvent(event);
         node.onmouseout = event => this.handleEvent(event);
 
         this.updateButton(node, this.defaults);
       },
 
-      onViewShowing: event => {
+      onViewShowing: async event => {
+        TelemetryStopwatch.start(POPUP_OPEN_MS_HISTOGRAM, this);
         let document = event.target.ownerDocument;
         let tabbrowser = document.defaultView.gBrowser;
 
         let tab = tabbrowser.selectedTab;
         let popupURL = this.getProperty(tab, "popup");
         this.tabManager.addActiveTabPermission(tab);
 
         // Popups are shown only if a popup URL is defined; otherwise
@@ -172,22 +178,32 @@ this.browserAction = class extends Exten
         // Google Chrome onClicked extension API.
         if (popupURL) {
           try {
             // FIXME: The line below needs to change eventually, but for now:
             // ensure the view is _always_ visible _before_ `popup.attach()` is
             // called. PanelMultiView.jsm dictates different behavior.
             event.target.setAttribute("current", true);
             let popup = this.getPopup(document.defaultView, popupURL);
-            event.detail.addBlocker(popup.attach(event.target));
+            let attachPromise = popup.attach(event.target);
+            event.detail.addBlocker(attachPromise);
+            await attachPromise;
+            TelemetryStopwatch.finish(POPUP_OPEN_MS_HISTOGRAM, this);
+            if (this.eventQueue.length) {
+              let histogram = Services.telemetry.getHistogramById(POPUP_RESULT_HISTOGRAM);
+              histogram.add("popupShown");
+              this.eventQueue = [];
+            }
           } catch (e) {
+            TelemetryStopwatch.cancel(POPUP_OPEN_MS_HISTOGRAM, this);
             Cu.reportError(e);
             event.preventDefault();
           }
         } else {
+          TelemetryStopwatch.cancel(POPUP_OPEN_MS_HISTOGRAM, this);
           // This isn't not a hack, but it seems to provide the correct behavior
           // with the fewest complications.
           event.preventDefault();
           this.emit("click");
         }
       },
     });
 
@@ -248,16 +264,17 @@ this.browserAction = class extends Exten
         if (event.button == 0) {
           // Begin pre-loading the browser for the popup, so it's more likely to
           // be ready by the time we get a complete click.
           let tab = window.gBrowser.selectedTab;
           let popupURL = this.getProperty(tab, "popup");
           let enabled = this.getProperty(tab, "enabled");
 
           if (popupURL && enabled && (this.pendingPopup || !ViewPopup.for(this.extension, window))) {
+            this.eventQueue.push("Mousedown");
             // Add permission for the active tab so it will exist for the popup.
             // Store the tab to revoke the permission during clearPopup.
             if (!this.tabManager.hasActiveTabPermission(tab)) {
               this.tabManager.addActiveTabPermission(tab);
               this.tabToRevokeDuringClearPopup = tab;
             }
 
             this.pendingPopup = this.getPopup(window, popupURL);
@@ -288,23 +305,29 @@ this.browserAction = class extends Exten
       case "mouseover": {
         // Begin pre-loading the browser for the popup, so it's more likely to
         // be ready by the time we get a complete click.
         let tab = window.gBrowser.selectedTab;
         let popupURL = this.getProperty(tab, "popup");
         let enabled = this.getProperty(tab, "enabled");
 
         if (popupURL && enabled && (this.pendingPopup || !ViewPopup.for(this.extension, window))) {
+          this.eventQueue.push("Hover");
           this.pendingPopup = this.getPopup(window, popupURL, true);
         }
         break;
       }
 
       case "mouseout":
         if (this.pendingPopup) {
+          if (this.eventQueue.length) {
+            let histogram = Services.telemetry.getHistogramById(POPUP_RESULT_HISTOGRAM);
+            histogram.add(`clearAfter${this.eventQueue.pop()}`);
+            this.eventQueue = [];
+          }
           this.clearPopup();
         }
         break;
 
 
       case "popupshowing":
         if (!global.actionContextMenu) {
           break;
--- a/browser/components/extensions/ext-pageAction.js
+++ b/browser/components/extensions/ext-pageAction.js
@@ -3,28 +3,32 @@
 "use strict";
 
 // The ext-* files are imported into the same scopes.
 /* import-globals-from ext-browserAction.js */
 /* import-globals-from ext-utils.js */
 
 XPCOMUtils.defineLazyModuleGetter(this, "PanelPopup",
                                   "resource:///modules/ExtensionPopups.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
+                                  "resource://gre/modules/TelemetryStopwatch.jsm");
 
 
 var {
   DefaultWeakMap,
 } = ExtensionUtils;
 
 Cu.import("resource://gre/modules/ExtensionParent.jsm");
 
 var {
   IconDetails,
 } = ExtensionParent;
 
+const popupOpenTimingHistogram = "WEBEXT_PAGEACTION_POPUP_OPEN_MS";
+
 // WeakMap[Extension -> PageAction]
 let pageActionMap = new WeakMap();
 
 this.pageAction = class extends ExtensionAPI {
   static for(extension) {
     return pageActionMap.get(extension);
   }
 
@@ -224,29 +228,32 @@ this.pageAction = class extends Extensio
   }
 
   // Handles a click event on the page action button for the given
   // window.
   // If the page action has a |popup| property, a panel is opened to
   // that URL. Otherwise, a "click" event is emitted, and dispatched to
   // the any click listeners in the add-on.
   handleClick(window) {
+    TelemetryStopwatch.start(popupOpenTimingHistogram, this);
     let tab = window.gBrowser.selectedTab;
     let popupURL = this.tabContext.get(tab).popup;
 
     this.tabManager.addActiveTabPermission(tab);
 
     // If the widget has a popup URL defined, we open a popup, but do not
     // dispatch a click event to the extension.
     // If it has no popup URL defined, we dispatch a click event, but do not
     // open a popup.
     if (popupURL) {
       new PanelPopup(this.extension, this.getButton(window), popupURL,
                      this.browserStyle);
+      TelemetryStopwatch.finish(popupOpenTimingHistogram, this);
     } else {
+      TelemetryStopwatch.cancel(popupOpenTimingHistogram, this);
       this.emit("click", tab);
     }
   }
 
   handleLocationChange(eventType, tab, fromBrowse) {
     if (fromBrowse) {
       this.tabContext.clear(tab);
     }
--- a/browser/components/extensions/test/browser/browser-common.ini
+++ b/browser/components/extensions/test/browser/browser-common.ini
@@ -35,16 +35,17 @@ support-files =
 [browser_ext_browserAction_disabled.js]
 [browser_ext_browserAction_pageAction_icon.js]
 [browser_ext_browserAction_pageAction_icon_permissions.js]
 [browser_ext_browserAction_popup.js]
 [browser_ext_browserAction_popup_preload.js]
 skip-if = (os == 'win' && !debug) # bug 1352668
 [browser_ext_browserAction_popup_resize.js]
 [browser_ext_browserAction_simple.js]
+[browser_ext_browserAction_telemetry.js]
 [browser_ext_browsingData_formData.js]
 [browser_ext_browsingData_history.js]
 [browser_ext_browsingData_pluginData.js]
 [browser_ext_browsingData_serviceWorkers.js]
 [browser_ext_commands_execute_browser_action.js]
 [browser_ext_commands_execute_page_action.js]
 [browser_ext_commands_execute_sidebar_action.js]
 [browser_ext_commands_getAll.js]
@@ -76,16 +77,17 @@ skip-if = (os == 'win' && !debug) # bug 
 skip-if = debug || asan # Bug 1354681
 [browser_ext_optionsPage_browser_style.js]
 [browser_ext_optionsPage_privileges.js]
 [browser_ext_pageAction_context.js]
 [browser_ext_pageAction_contextMenu.js]
 [browser_ext_pageAction_popup.js]
 [browser_ext_pageAction_popup_resize.js]
 [browser_ext_pageAction_simple.js]
+[browser_ext_pageAction_telemetry.js]
 [browser_ext_pageAction_title.js]
 [browser_ext_popup_api_injection.js]
 [browser_ext_popup_background.js]
 [browser_ext_popup_corners.js]
 [browser_ext_popup_sendMessage.js]
 [browser_ext_popup_shutdown.js]
 [browser_ext_runtime_openOptionsPage.js]
 [browser_ext_runtime_openOptionsPage_uninstall.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_browserAction_telemetry.js
@@ -0,0 +1,145 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+const TIMING_HISTOGRAM = "WEBEXT_BROWSERACTION_POPUP_OPEN_MS";
+const RESULT_HISTOGRAM = "WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT";
+
+// Keep this in sync with the order in Histograms.json for
+// WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT
+const CATEGORIES = [
+  "popupShown",
+  "clearAfterHover",
+  "clearAfterMousedown",
+];
+
+/**
+ * Takes a Telemetry histogram snapshot and makes sure
+ * that the index for that value (as defined by CATEGORIES)
+ * has a count of 1, and that it's the only value that
+ * has been incremented.
+ *
+ * @param {Object} snapshot
+ *        The Telemetry histogram snapshot to examine.
+ * @param {string} category
+ *        The category in CATEGORIES whose index we expect to have
+ *        been set to 1.
+ */
+function assertOnlyOneTypeSet(snapshot, category) {
+  let categoryIndex = CATEGORIES.indexOf(category);
+  Assert.equal(snapshot.counts[categoryIndex], 1,
+               `Should have seen the ${category} count increment.`);
+  // Use Array.prototype.reduce to sum up all of the
+  // snapshot.count entries
+  Assert.equal(snapshot.counts.reduce((a, b) => a + b), 1,
+               "Should only be 1 collected value.");
+}
+
+add_task(async function testBrowserActionTelemetryTiming() {
+  let extensionOptions = {
+    manifest: {
+      "browser_action": {
+        "default_popup": "popup.html",
+        "browser_style": true,
+      },
+    },
+
+    files: {
+      "popup.html": `<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><div></div></body></html>`,
+    },
+  };
+  let extension1 = ExtensionTestUtils.loadExtension(extensionOptions);
+  let extension2 = ExtensionTestUtils.loadExtension(extensionOptions);
+
+  let histogram = Services.telemetry.getHistogramById(TIMING_HISTOGRAM);
+
+  histogram.clear();
+
+  is(histogram.snapshot().sum, 0,
+        `No data recorded for histogram: ${TIMING_HISTOGRAM}.`);
+
+  await extension1.startup();
+  await extension2.startup();
+
+  is(histogram.snapshot().sum, 0,
+        `No data recorded for histogram after startup: ${TIMING_HISTOGRAM}.`);
+
+  clickBrowserAction(extension1);
+  await awaitExtensionPanel(extension1);
+  let sumOld = histogram.snapshot().sum;
+  ok(sumOld > 0,
+     `Data recorded for first extension for histogram: ${TIMING_HISTOGRAM}.`);
+  await closeBrowserAction(extension1);
+
+  clickBrowserAction(extension2);
+  await awaitExtensionPanel(extension2);
+  let sumNew = histogram.snapshot().sum;
+  ok(sumNew > sumOld,
+     `Data recorded for second extension for histogram: ${TIMING_HISTOGRAM}.`);
+  sumOld = sumNew;
+  await closeBrowserAction(extension2);
+
+  clickBrowserAction(extension2);
+  await awaitExtensionPanel(extension2);
+  sumNew = histogram.snapshot().sum;
+  ok(sumNew > sumOld,
+     `Data recorded for second opening of popup for histogram: ${TIMING_HISTOGRAM}.`);
+  sumOld = sumNew;
+  await closeBrowserAction(extension2);
+
+  clickBrowserAction(extension1);
+  await awaitExtensionPanel(extension1);
+  sumNew = histogram.snapshot().sum;
+  ok(sumNew > sumOld,
+     `Data recorded for second opening of popup for histogram: ${TIMING_HISTOGRAM}.`);
+
+  await extension1.unload();
+  await extension2.unload();
+});
+
+add_task(async function testBrowserActionTelemetryResults() {
+  let extensionOptions = {
+    manifest: {
+      "browser_action": {
+        "default_popup": "popup.html",
+        "browser_style": true,
+      },
+    },
+
+    files: {
+      "popup.html": `<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><div></div></body></html>`,
+    },
+  };
+  let extension = ExtensionTestUtils.loadExtension(extensionOptions);
+
+  let histogram = Services.telemetry.getHistogramById(RESULT_HISTOGRAM);
+
+  histogram.clear();
+
+  is(histogram.snapshot().sum, 0,
+        `No data recorded for histogram: ${TIMING_HISTOGRAM}.`);
+
+  await extension.startup();
+
+  // Make sure the mouse isn't hovering over the browserAction widget to start.
+  EventUtils.synthesizeMouseAtCenter(gURLBar, {type: "mouseover"}, window);
+
+  let widget = getBrowserActionWidget(extension).forWindow(window);
+
+  // Hover the mouse over the browserAction widget and then move it away.
+  EventUtils.synthesizeMouseAtCenter(widget.node, {type: "mouseover", button: 0}, window);
+  EventUtils.synthesizeMouseAtCenter(widget.node, {type: "mouseout", button: 0}, window);
+  EventUtils.synthesizeMouseAtCenter(document.documentElement, {type: "mousemove"}, window);
+  assertOnlyOneTypeSet(histogram.snapshot(), "clearAfterHover");
+  histogram.clear();
+
+  // TODO: Create a test for cancel after mousedown.
+  // This is tricky because calling mouseout after mousedown causes a
+  // "Hover" event to be added to the queue in ext-browserAction.js.
+
+  clickBrowserAction(extension);
+  await awaitExtensionPanel(extension);
+  assertOnlyOneTypeSet(histogram.snapshot(), "popupShown");
+
+  await extension.unload();
+});
new file mode 100644
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_pageAction_telemetry.js
@@ -0,0 +1,75 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+const HISTOGRAM = "WEBEXT_PAGEACTION_POPUP_OPEN_MS";
+
+add_task(async function testPageActionTelemetry() {
+  let extensionOptions = {
+    manifest: {
+      "page_action": {
+        "default_popup": "popup.html",
+        "browser_style": true,
+      },
+    },
+    background: function() {
+      browser.tabs.query({active: true, currentWindow: true}, tabs => {
+        const tabId = tabs[0].id;
+
+        browser.pageAction.show(tabId).then(() => {
+          browser.test.sendMessage("action-shown");
+        });
+      });
+    },
+
+    files: {
+      "popup.html": `<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><div></div></body></html>`,
+    },
+  };
+  let extension1 = ExtensionTestUtils.loadExtension(extensionOptions);
+  let extension2 = ExtensionTestUtils.loadExtension(extensionOptions);
+
+  let histogram = Services.telemetry.getHistogramById(HISTOGRAM);
+  histogram.clear();
+  is(histogram.snapshot().sum, 0,
+        `No data recorded for histogram: ${HISTOGRAM}.`);
+
+  await extension1.startup();
+  await extension1.awaitMessage("action-shown");
+  await extension2.startup();
+  await extension2.awaitMessage("action-shown");
+  is(histogram.snapshot().sum, 0,
+        `No data recorded for histogram after PageAction shown: ${HISTOGRAM}.`);
+
+  clickPageAction(extension1, window);
+  await awaitExtensionPanel(extension1);
+  let sumOld = histogram.snapshot().sum;
+  ok(sumOld > 0,
+     `Data recorded for first extension for histogram: ${HISTOGRAM}.`);
+  await closePageAction(extension1, window);
+
+  clickPageAction(extension2, window);
+  await awaitExtensionPanel(extension2);
+  let sumNew = histogram.snapshot().sum;
+  ok(sumNew > sumOld,
+     `Data recorded for second extension for histogram: ${HISTOGRAM}.`);
+  sumOld = sumNew;
+  await closePageAction(extension2, window);
+
+  clickPageAction(extension2, window);
+  await awaitExtensionPanel(extension2);
+  sumNew = histogram.snapshot().sum;
+  ok(sumNew > sumOld,
+     `Data recorded for second opening of popup for histogram: ${HISTOGRAM}.`);
+  sumOld = sumNew;
+  await closePageAction(extension2, window);
+
+  clickPageAction(extension1, window);
+  await awaitExtensionPanel(extension1);
+  sumNew = histogram.snapshot().sum;
+  ok(sumNew > sumOld,
+     `Data recorded for second opening of popup for histogram: ${HISTOGRAM}.`);
+
+  await extension1.unload();
+  await extension2.unload();
+});
--- a/browser/components/preferences/in-content-new/containers.xul
+++ b/browser/components/preferences/in-content-new/containers.xul
@@ -24,17 +24,18 @@
 <hbox id="header-containers"
       class="header"
       hidden="true"
       data-category="paneContainers">
   <label class="header-name" flex="1">&paneContainers.title;</label>
 </hbox>
 
 <!-- Containers -->
-<groupbox id="browserContainersGroup" data-category="paneContainers" hidden="true">
+<groupbox id="browserContainersGroupPane" data-category="paneContainers" hidden="true"
+          data-hidden-from-search="true" data-subpanel="true">
   <vbox id="browserContainersbox">
 
     <richlistbox id="containersView" orient="vertical" persist="lastSelectedType"
                  flex="1">
       <listheader equalsize="always">
           <treecol id="typeColumn" value="type"
                    persist="sortDirection"
                    flex="1" sortDirection="ascending"/>
--- a/browser/components/preferences/in-content-new/preferences.js
+++ b/browser/components/preferences/in-content-new/preferences.js
@@ -216,17 +216,18 @@ function gotoPref(aCategory) {
 function search(aQuery, aAttribute, aSubquery, aSubAttribute) {
   let mainPrefPane = document.getElementById("mainPrefPane");
   let elements = mainPrefPane.children;
   for (let element of elements) {
     // If the "data-hidden-from-search" is "true", the
     // element will not get considered during search. This
     // should only be used when an element is still under
     // development and should not be shown for any reason.
-    if (element.getAttribute("data-hidden-from-search") != "true") {
+    if (element.getAttribute("data-hidden-from-search") != "true" ||
+        element.getAttribute("data-subpanel") == "true") {
       let attributeValue = element.getAttribute(aAttribute);
       if (attributeValue == aQuery) {
         if (!element.classList.contains("header") &&
              aSubquery && aSubAttribute) {
           let subAttributeValue = element.getAttribute(aSubAttribute);
           element.hidden = subAttributeValue != aSubquery;
         } else {
           element.hidden = false;
--- a/browser/components/search/content/search.xml
+++ b/browser/components/search/content/search.xml
@@ -1467,17 +1467,23 @@
           // Make sure the engine list is refetched next time it's needed.
           this._engines = null;
         ]]></body>
       </method>
 
       <method name="showSettings">
         <body><![CDATA[
           BrowserUITelemetry.countSearchSettingsEvent(this.telemetryOrigin);
-          openPreferences("general-search", {origin: "contentSearch"});
+
+          if (Preferences.get("browser.preferences.useOldOrganization")) {
+            openPreferences("paneSearch", {origin: "contentSearch"});
+          } else {
+            openPreferences("general-search", {origin: "contentSearch"});
+          }
+
           // If the preference tab was already selected, the panel doesn't
           // close itself automatically.
           this.popup.hidePopup();
         ]]></body>
       </method>
 
       <!-- Updates the parts of the UI that show the query string. -->
       <method name="_updateAfterQueryChanged">
--- a/browser/extensions/e10srollout/bootstrap.js
+++ b/browser/extensions/e10srollout/bootstrap.js
@@ -17,19 +17,26 @@ const TEST_THRESHOLD = {
   "release": 1.0,  // 100%
   "esr": 1.0,  // 100%
 };
 
 // If a user qualifies for the e10s-multi experiement, this is how many
 // content processes to use and whether to allow addons for the experiment.
 const MULTI_EXPERIMENT = {
   "beta": { buckets: { 1: .5, 4: 1, }, // 1 process: 50%, 4 processes: 50%
-            addons: true },
+            addonsDisableExperiment: false },
+
   "release": { buckets: { 1: .2, 4: 1 }, // 1 process: 20%, 4 processes: 80%
-               addons: false },
+
+               // When on the "release" channel, getAddonsDisqualifyForMulti
+               // will return true if any addon installed is not a web extension.
+               // Therefore, this returns true if and only if all addons
+               // installed are web extensions or if no addons are installed
+               // at all.
+               get addonsDisableExperiment() { return getAddonsDisqualifyForMulti(); } }
 };
 
 const ADDON_ROLLOUT_POLICY = {
   "beta": "50allmpc",
   "release": "50allmpc",
   "esr": "esrA", // WebExtensions and Addons with mpc=true
 };
 
@@ -168,17 +175,17 @@ function defineCohort() {
   //   (i.e. there's at least one addon installed) we stop here.
   // - We decided above whether this user qualifies for the experiment.
   // - If the user already opted into multi, then their prefs are already set
   //   correctly, we're done.
   // - If the user has addons that disqualify them for multi, leave them with
   //   the default number of content processes (1 on beta) but still in the
   //   test cohort.
   if (!(updateChannel in MULTI_EXPERIMENT) ||
-      (!MULTI_EXPERIMENT[updateChannel].addons && cohortPrefix) ||
+      MULTI_EXPERIMENT[updateChannel].addonsDisableExperiment ||
       !eligibleForMulti ||
       userOptedIn.multi ||
       disqualified) {
     Preferences.reset(PREF_E10S_PROCESSCOUNT + ".web");
     return;
   }
 
   // If we got here with a cohortPrefix, it must be "addons-set50allmpc-",
--- a/browser/extensions/e10srollout/install.rdf.in
+++ b/browser/extensions/e10srollout/install.rdf.in
@@ -5,17 +5,17 @@
 
 #filter substitution
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
   <Description about="urn:mozilla:install-manifest">
     <em:id>e10srollout@mozilla.org</em:id>
-    <em:version>1.50</em:version>
+    <em:version>1.60</em:version>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:multiprocessCompatible>true</em:multiprocessCompatible>
 
     <!-- Target Application this theme can install into,
         with minimum and maximum supported versions. -->
     <em:targetApplication>
       <Description>
--- a/browser/extensions/screenshots/bootstrap.js
+++ b/browser/extensions/screenshots/bootstrap.js
@@ -1,8 +1,9 @@
+/* globals ADDON_DISABLE */
 const OLD_ADDON_PREF_NAME = "extensions.jid1-NeEaf3sAHdKHPA@jetpack.deviceIdInfo";
 const OLD_ADDON_ID = "jid1-NeEaf3sAHdKHPA@jetpack";
 const ADDON_ID = "screenshots@mozilla.org";
 const TELEMETRY_ENABLED_PREF = "datareporting.healthreport.uploadEnabled";
 const PREF_BRANCH = "extensions.screenshots.";
 const USER_DISABLE_PREF = "extensions.screenshots.disabled";
 const SYSTEM_DISABLE_PREF = "extensions.screenshots.system-disabled";
 
@@ -54,17 +55,20 @@ const appStartupObserver = {
 
   observe() {
     appStartupDone();
     this.unregister();
   }
 }
 
 const APP_STARTUP = 1;
+let startupReason;
+
 function startup(data, reason) { // eslint-disable-line no-unused-vars
+  startupReason = reason;
   if (reason === APP_STARTUP) {
     appStartupObserver.register();
   } else {
     appStartupDone();
   }
   prefObserver.register();
   addonResourceURI = data.resourceURI;
   // eslint-disable-next-line promise/catch-or-return
@@ -73,17 +77,17 @@ function startup(data, reason) { // esli
 
 function shutdown(data, reason) { // eslint-disable-line no-unused-vars
   prefObserver.unregister();
   const webExtension = LegacyExtensionsUtils.getEmbeddedExtensionFor({
     id: ADDON_ID,
     resourceURI: addonResourceURI
   });
   if (webExtension.started) {
-    stop(webExtension);
+    stop(webExtension, reason);
   }
 }
 
 function install(data, reason) {} // eslint-disable-line no-unused-vars
 
 function uninstall(data, reason) {} // eslint-disable-line no-unused-vars
 
 function getBoolPref(pref) {
@@ -98,36 +102,36 @@ function handleStartup() {
   const webExtension = LegacyExtensionsUtils.getEmbeddedExtensionFor({
     id: ADDON_ID,
     resourceURI: addonResourceURI
   });
 
   if (!shouldDisable() && !webExtension.started) {
     start(webExtension);
   } else if (shouldDisable()) {
-    stop(webExtension);
+    stop(webExtension, ADDON_DISABLE);
   }
 }
 
 function start(webExtension) {
-  webExtension.startup().then((api) => {
+  webExtension.startup(startupReason).then((api) => {
     api.browser.runtime.onMessage.addListener(handleMessage);
   }).catch((err) => {
     // The startup() promise will be rejected if the webExtension was
     // already started (a harmless error), or if initializing the
     // WebExtension failed and threw (an important error).
     console.error(err);
     if (err.message !== "This embedded extension has already been started") {
       // TODO: Should we send these errors to Sentry? #2420
     }
   });
 }
 
-function stop(webExtension) {
-  webExtension.shutdown();
+function stop(webExtension, reason) {
+  webExtension.shutdown(reason);
 }
 
 function handleMessage(msg, sender, sendReply) {
   if (!msg) {
     return;
   }
 
   if (msg.funcName === "getTelemetryPref") {
--- a/browser/extensions/screenshots/install.rdf
+++ b/browser/extensions/screenshots/install.rdf
@@ -7,14 +7,14 @@
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!--Firefox-->
         <em:minVersion>51.0a1</em:minVersion>
         <em:maxVersion>*</em:maxVersion>
       </Description>
     </em:targetApplication>
     <em:type>2</em:type>
-    <em:version>9.0.0</em:version>
+    <em:version>10.3.0</em:version>
     <em:bootstrap>true</em:bootstrap>
     <em:homepageURL>https://pageshot.net/</em:homepageURL>
     <em:multiprocessCompatible>true</em:multiprocessCompatible>
   </Description>
 </RDF>
--- a/browser/extensions/screenshots/moz.build
+++ b/browser/extensions/screenshots/moz.build
@@ -243,16 +243,20 @@ FINAL_TARGET_FILES.features['screenshots
 FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["sr"] += [
   'webextension/_locales/sr/messages.json'
 ]
 
 FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["sv_SE"] += [
   'webextension/_locales/sv_SE/messages.json'
 ]
 
+FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["ta"] += [
+  'webextension/_locales/ta/messages.json'
+]
+
 FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["te"] += [
   'webextension/_locales/te/messages.json'
 ]
 
 FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["th"] += [
   'webextension/_locales/th/messages.json'
 ]
 
@@ -287,16 +291,17 @@ FINAL_TARGET_FILES.features['screenshots
 FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["background"] += [
   'webextension/background/analytics.js',
   'webextension/background/auth.js',
   'webextension/background/communication.js',
   'webextension/background/deviceInfo.js',
   'webextension/background/main.js',
   'webextension/background/selectorLoader.js',
   'webextension/background/senderror.js',
+  'webextension/background/startBackground.js',
   'webextension/background/takeshot.js'
 ]
 
 FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["build"] += [
   'webextension/build/buildSettings.js',
   'webextension/build/inlineSelectionCss.js',
   'webextension/build/onboardingCss.js',
   'webextension/build/onboardingHtml.js',
--- a/browser/extensions/screenshots/webextension/_locales/ach/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ach/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "Mak ngo ma imito keken"
   },
   "tourBodyTwo": {
     "message": "Dii ka i ywar me mako cal pa but potbuk keken. Itwero bene wot iwiye me wero yer mamegi."
   },
   "tourHeaderThree": {
-    "message": "Kit ma imito"
+    "message": "Mak dirica onyo Potbuk weng"
   },
   "tourBodyThree": {
-    "message": "Gwok cal mamegi ma ki ngolo ii Kakube pi nywako i yoo ma yot, onyo gamo gi i kompiuta ni. Itwero bene diyo mapeca me Cal Na me nongo cal ma i mako weng."
+    "message": "Yer mapeca ma i tung lacuc malo me mako kabedo ma nen i dirica onyo me mako potbuk weng."
   },
   "tourHeaderFour": {
-    "message": "Mak dirica onyo Potbuk weng"
+    "message": "Kit ma imito"
   },
   "tourBodyFour": {
-    "message": "Yer mapeca ma i tung lacuc malo me mako kabedo ma nen i dirica onyo me mako potbuk weng."
+    "message": "Gwok cal mamegi ma ki ngolo ii Kakube pi nywako i yoo ma yot, onyo gamo gi i kompiuta ni. Itwero bene diyo mapeca me Cal Na me nongo cal ma i mako weng."
   },
   "tourSkip": {
     "message": "Kal"
   },
   "tourNext": {
     "message": "Cal malubo"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/ar/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ar/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "التقط ما تريده فقط"
   },
   "tourBodyTwo": {
     "message": "انقر و اسحب لالتقاط جزء معين من الصفحة. يمكنك أيضًا التحويم لإبراز التحديد."
   },
   "tourHeaderThree": {
-    "message": "كما تريدها"
+    "message": "التقط النوافذ أو صفحات كاملة"
   },
   "tourBodyThree": {
-    "message": "احفظ اللقطات التي أخذتها على الوب لمشاركتها بسهولة، أو نزّلها على حاسوبك. يمكنك أيضًل النقر على زر ”لقطاتي“ للعثور على كل اللقطات التي أخذتها."
+    "message": "اختر الأزرار في أعلى اليمين لالتقاط المنطقة المرئية في النافذة أو الصفحة كلها."
   },
   "tourHeaderFour": {
-    "message": "التقط النوافذ أو صفحات كاملة"
+    "message": "كما تريدها"
   },
   "tourBodyFour": {
-    "message": "اختر الأزرار في أعلى اليمين لالتقاط المنطقة المرئية في النافذة أو الصفحة كلها."
+    "message": "احفظ اللقطات التي أخذتها على الوب لمشاركتها بسهولة، أو نزّلها على حاسوبك. يمكنك أيضًل النقر على زر ”لقطاتي“ للعثور على كل اللقطات التي أخذتها."
   },
   "tourSkip": {
     "message": "تخطَّ"
   },
   "tourNext": {
     "message": "الشريحة التالية"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/be/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/be/messages.json
@@ -59,42 +59,45 @@
     "message": "Мы не можам зрабіць скрыншот гэтай старонкі."
   },
   "unshootablePageErrorDetails": {
     "message": "Гэта не стандартная вэб-старонка, таму вы не можаце зрабіць яе скрыншот."
   },
   "selfScreenshotErrorTitle": {
     "message": "Вы не можаце зрабіць здымак старонкі Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Абраная вобласць занадта малая"
+  },
   "genericErrorTitle": {
     "message": "Вой! З Firefox Screenshots нешта не так."
   },
   "genericErrorDetails": {
     "message": "Мы не ўпэўненыя, у чым праблема. Паспрабаваць яшчэ раз, ці зрабіць здымак іншай старонкі?"
   },
   "tourBodyOne": {
     "message": "Рабіце здымкі экрана, захоўвайце і дзяліцеся імі не выходзячы з Firefox."
   },
   "tourHeaderTwo": {
     "message": "Рабіце скрыншоты чаго заўгодна"
   },
   "tourBodyTwo": {
     "message": "Пстрыкніце і пацягніце мышшу для захопу часткі старонкі. Вы таксама можаце навесці курсор мышы для падсвятлення абранай вобласці."
   },
   "tourHeaderThree": {
-    "message": "Як вам падабаецца"
+    "message": "Рабіце захоп вокнаў або цэлых старонак"
   },
   "tourBodyThree": {
-    "message": "Захоўваеце свае здымкі ў Інтэрнэце, каб лёгка імі дзяліцца, або загружайце іх на свой камп'ютар. Вы таксама можаце прагледзець усе захаваныя здымкі, націснуўшы на кнопку Мае здымкі."
+    "message": "З дапамогай кнопак у верхнім правым куце выбірайце захоп бачнай вобласці акна або старонкі цалкам."
   },
   "tourHeaderFour": {
-    "message": "Рабіце захоп вокнаў або цэлых старонак"
+    "message": "Як вам падабаецца"
   },
   "tourBodyFour": {
-    "message": "З дапамогай кнопак у верхнім правым куце выбірайце захоп бачнай вобласці акна або старонкі цалкам."
+    "message": "Захоўваеце свае здымкі ў Інтэрнэце, каб лёгка імі дзяліцца, або загружайце іх на свой камп'ютар. Вы таксама можаце прагледзець усе захаваныя здымкі, націснуўшы на кнопку Мае здымкі."
   },
   "tourSkip": {
     "message": "Прапусьціць"
   },
   "tourNext": {
     "message": "Наступны слайд"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/bg/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/bg/messages.json
@@ -59,42 +59,45 @@
     "message": "Снимка на тази страница не може да бъде направена."
   },
   "unshootablePageErrorDetails": {
     "message": "Това не е обикновена уебстраница и за това снимка не може да ѝ бъде направена."
   },
   "selfScreenshotErrorTitle": {
     "message": "Не може да правите снимки на страницата на Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Избраната област е твърде малка"
+  },
   "genericErrorTitle": {
     "message": "Леле! Нещо се обърка с Firefox Screenshots."
   },
   "genericErrorDetails": {
     "message": "Не сме сигурни какво точно се случи. Може да опитате отново, както и да снимате друга страница."
   },
   "tourBodyOne": {
     "message": "Правете, запазвайте и споделяйте снимки на екрана без да напускате Firefox."
   },
   "tourHeaderTwo": {
     "message": "Уловете само нужното"
   },
   "tourBodyTwo": {
     "message": "Щракнете с мишката или влачете, за да уловите части от страницата. Посочвайки елементи от страницата – те се осветяват."
   },
   "tourHeaderThree": {
-    "message": "Както ви харесва"
+    "message": "Улавяйте прозорци и цели страници"
   },
   "tourBodyThree": {
-    "message": "Запазете снимките на страници от Мрежата за по-лесно споделяне или ги изтеглете на компютъра си. А бутонът „Моите снимки“ ще ви покаже всички направени от вас снимки."
+    "message": "Използвайте бутоните в горния десен ъгъл, за да уловите само видимата част или цялата страница."
   },
   "tourHeaderFour": {
-    "message": "Улавяйте прозорци и цели страници"
+    "message": "Както ви харесва"
   },
   "tourBodyFour": {
-    "message": "Използвайте бутоните в горния десен ъгъл, за да уловите само видимата част или цялата страница."
+    "message": "Запазете снимките на страници от Мрежата за по-лесно споделяне или ги изтеглете на компютъра си. А бутонът „Моите снимки“ ще ви покаже всички направени от вас снимки."
   },
   "tourSkip": {
     "message": "Прескачане"
   },
   "tourNext": {
     "message": "Напред"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/bn_BD/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/bn_BD/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "ক্যাপচার করুন আপনি যা চান"
   },
   "tourBodyTwo": {
     "message": "একটি পেজের কিয়দংশ ক্যাপচার করতে ক্লিক করে ড্রাগ করুন। অতঃপর আপনি মাউজ হোভার করে আপনার নির্বাচিত অংশ হাইলাইট করতে পারবেন।"
   },
   "tourHeaderThree": {
-    "message": "আপনি যেমন পছন্দ করেন"
+    "message": "উইন্ডো ক্যাপচার করুন অথবা পুরো পেজ"
   },
   "tourBodyThree": {
-    "message": "আপনার ক্রপ করা সটসমূহ ওয়েবে রাখুন সহজে শেয়ার করার সুবিধার্থে, অথবা আপনার কম্পিউটারে ডাউনলোড করুন। আপনার সকল সটসমূহ খুঁজে পেতে আমার সটসমূহ বাটনে ক্লিক করুন।"
+    "message": "ইউন্ডোতে দৃশ্যমান অংশ অথবা সম্পূর্ণ পেজ ক্যাপচার করতে উপরে ডানদিকের বাটনগুলো থেকে নির্বাচন করুন।"
   },
   "tourHeaderFour": {
-    "message": "উইন্ডো ক্যাপচার করুন অথবা পুরো পেজ"
+    "message": "আপনি যেমন পছন্দ করেন"
   },
   "tourBodyFour": {
-    "message": "ইউন্ডোতে দৃশ্যমান অংশ অথবা সম্পূর্ণ পেজ ক্যাপচার করতে উপরে ডানদিকের বাটনগুলো থেকে নির্বাচন করুন।"
+    "message": "আপনার ক্রপ করা সটসমূহ ওয়েবে রাখুন সহজে শেয়ার করার সুবিধার্থে, অথবা আপনার কম্পিউটারে ডাউনলোড করুন। আপনার সকল সটসমূহ খুঁজে পেতে আমার সটসমূহ বাটনে ক্লিক করুন।"
   },
   "tourSkip": {
     "message": "এড়িয়ে যান"
   },
   "tourNext": {
     "message": "পরবর্তী স্লাইড"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/cs/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/cs/messages.json
@@ -59,42 +59,45 @@
     "message": "Snímek této stránky nelze pořídit."
   },
   "unshootablePageErrorDetails": {
     "message": "Toto není běžná webová stránka, a proto z ní nelze pořizovat žádné snímky."
   },
   "selfScreenshotErrorTitle": {
     "message": "Nelze pořizovat snímek stránky Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Vybraná oblast je moc malá"
+  },
   "genericErrorTitle": {
     "message": "Jejda! Služba Firefox Screenshots přestala pracovat."
   },
   "genericErrorDetails": {
     "message": "Nejsme si jistí, co se právě stalo. Chcete to zkusit znovu, nebo zkusíte pořídit snímek na jiné stránce?"
   },
   "tourBodyOne": {
     "message": "Pořizujte, ukládejte a sdílejte snímky webových stránek bez opuštění Firefoxu."
   },
   "tourHeaderTwo": {
     "message": "Zachyťte, cokoliv chcete"
   },
   "tourBodyTwo": {
     "message": "Stiskem tlačítka myši a tahem můžete vybrat oblast stránky. Výběr můžete provést také najetím myši na prvek stránky."
   },
   "tourHeaderThree": {
-    "message": "Jak sami chcete"
+    "message": "Pořizujte snímky jen částí nebo i celých stránek"
   },
   "tourBodyThree": {
-    "message": "Uložte si oříznutý snímek stránky na web pro rychlejší sdílení, nebo si ho stáhněte do počítače. Pro zobrazení všech snímků stačí klepnout na tlačítko Mé snímky."
+    "message": "Pomocí tlačítek vpravo nahoře můžete pořídit snímek jen viditelné části nebo úplně celé stránky."
   },
   "tourHeaderFour": {
-    "message": "Pořizujte snímky jen částí nebo i celých stránek"
+    "message": "Jak sami chcete"
   },
   "tourBodyFour": {
-    "message": "Pomocí tlačítek vpravo nahoře můžete pořídit snímek jen viditelné části nebo úplně celé stránky."
+    "message": "Uložte si oříznutý snímek stránky na web pro rychlejší sdílení, nebo si ho stáhněte do počítače. Pro zobrazení všech snímků stačí klepnout na tlačítko Mé snímky."
   },
   "tourSkip": {
     "message": "Přeskočit"
   },
   "tourNext": {
     "message": "Další snímek"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/cy/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/cy/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "Cipio Dim ond Beth Rydych ei Angen"
   },
   "tourBodyTwo": {
     "message": "Cliciwch a llusgo i gipio rhan o dudalen. Gallwch hofran i amlygu eich dewis."
   },
   "tourHeaderThree": {
-    "message": "Yn Ôl eich Dewis"
+    "message": "Cipio Ffenestri neu Dudalennau Cyfan"
   },
   "tourBodyThree": {
-    "message": "Cadwch eich lluniau wedi eu golygu i'r We ar gyfer rhannu haws, neu eu llwytho i lawr i'ch cyfrifiadur. Gallwch hefyd glicio ar Fy Lluniau i weld pob llun sydd gennych."
+    "message": "Dewiswch y botymau ar y dde uchod i gipio ardal gweladwy mewn ffenestr neu i gipio tudalen gyfan."
   },
   "tourHeaderFour": {
-    "message": "Cipio Ffenestri neu Dudalennau Cyfan"
+    "message": "Yn Ôl eich Dewis"
   },
   "tourBodyFour": {
-    "message": "Dewiswch y botymau ar y dde uchod i gipio ardal gweladwy mewn ffenestr neu i gipio tudalen gyfan."
+    "message": "Cadwch eich lluniau wedi eu golygu i'r We ar gyfer rhannu haws, neu eu llwytho i lawr i'ch cyfrifiadur. Gallwch hefyd glicio ar Fy Lluniau i weld pob llun sydd gennych."
   },
   "tourSkip": {
     "message": "SKIP"
   },
   "tourNext": {
     "message": "Sleid Nesaf"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/da/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/da/messages.json
@@ -59,42 +59,45 @@
     "message": "Vi kan ikke tage et skærmbillede af denne side. "
   },
   "unshootablePageErrorDetails": {
     "message": "Dette er ikke en almindelig webside, så du kan ikke tage skærmbilleder af den. "
   },
   "selfScreenshotErrorTitle": {
     "message": "Du kan ikke tage skærmbilleder af en side i Firefox Screenshots."
   },
+  "emptySelectionErrorTitle": {
+    "message": "Din markering er for lille"
+  },
   "genericErrorTitle": {
     "message": "Hov! Noget gik helt galt med Firefox Screenshots."
   },
   "genericErrorDetails": {
     "message": "Vi er ikke sikre på, hvad der lige skete. Vil du prøve igen - eller vil du tage et skærmbillede af en anden side?"
   },
   "tourBodyOne": {
     "message": "Tag, gem og del skærmbilleder uden at forlade Firefox. "
   },
   "tourHeaderTwo": {
     "message": "Gem lige hvad du vil."
   },
   "tourBodyTwo": {
     "message": "Klik og træk for at tage et udklip af en del af en side. Du kan også holde markøren over for at fremhæve din markering."
   },
   "tourHeaderThree": {
-    "message": "Som du vil have det."
+    "message": "Tag skærmbilleder af vinduer eller hele sider."
   },
   "tourBodyThree": {
-    "message": "Gem dine beskårne skærmbilleder på nettet for nemmere at dele dem - eller hent dem ned på din computer. Du kan også klikke på knappen \"Mine skærmbilleder\" for at finde de skærmbilleder, du har taget."
+    "message": "Brug knapperne øverst til højre for at tage et skærmbillede af det synlige område i vinduet eller for at tage et skærmbillede af hele siden."
   },
   "tourHeaderFour": {
-    "message": "Tag skærmbilleder af vinduer eller hele sider."
+    "message": "Som du vil have det."
   },
   "tourBodyFour": {
-    "message": "Brug knapperne øverst til højre for at tage et skærmbillede af det synlige område i vinduet eller for at tage et skærmbillede af hele siden."
+    "message": "Gem dine beskårne skærmbilleder på nettet for nemmere at dele dem - eller hent dem ned på din computer. Du kan også klikke på knappen \"Mine skærmbilleder\" for at finde de skærmbilleder, du har taget."
   },
   "tourSkip": {
     "message": "SPRING OVER"
   },
   "tourNext": {
     "message": "Næste side"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/de/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/de/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Nehmen Sie auf, was Sie möchten"
   },
   "tourBodyTwo": {
     "message": "Klicken und ziehen Sie, um nur einen Teil einer Seite aufzunehmen. Sie können den Mauszeiger auch darüber bewegen, um Ihre Auswahl hervorzuheben."
   },
   "tourHeaderThree": {
-    "message": "Wie Sie möchten"
+    "message": "Fenster oder ganze Seiten speichern"
   },
   "tourBodyThree": {
-    "message": "Speichern Sie Ihre zugeschnittenen Bildschirmfotos im Internet, sodass sie leicht zu teilen sind, oder laden Sie sie auf Ihren Computer herunter. Sie können auch auf die Schaltfläche „Meine Bildschirmfotos“ klicken, um alle Ihre Bildschirmfotos zu finden."
+    "message": "Nutzen Sie die Schaltflächen rechts oben, um den sichtbaren Bereich im Fenster oder eine ganze Seite zu speichern."
   },
   "tourHeaderFour": {
-    "message": "Fenster oder ganze Seiten speichern"
+    "message": "Wie Sie möchten"
   },
   "tourBodyFour": {
-    "message": "Nutzen Sie die Schaltflächen rechts oben, um den sichtbaren Bereich im Fenster oder eine ganze Seite zu speichern."
+    "message": "Speichern Sie Ihre zugeschnittenen Bildschirmfotos im Internet, sodass sie leicht zu teilen sind, oder laden Sie sie auf Ihren Computer herunter. Sie können auch auf die Schaltfläche „Meine Bildschirmfotos“ klicken, um alle Ihre Bildschirmfotos zu finden."
   },
   "tourSkip": {
     "message": "Überspringen"
   },
   "tourNext": {
     "message": "Nächste Folie"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/dsb/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/dsb/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Fotografěrujśo jadnorje, což cośo"
   },
   "tourBodyTwo": {
     "message": "Klikniśo a ześěgniśo, aby źěl boka fotografěrował. Móžośo teke špěrku myški nad nim gibaś, aby swój wuběr wuzwignuł."
   },
   "tourHeaderThree": {
-    "message": "Tak, kaž se wam spódoba"
+    "message": "Wokna abo cełe boki składowaś"
   },
   "tourBodyThree": {
-    "message": "Składujśo swóje pśirězane fota wobrazowki w interneśe, aby je lažcej źělił, abo ześěgniśo je na swójo licadło. Móžośo teke na tłocašk „Móje fota wobrazowki“ kliknuś, abye wšě fota wobrazowki namakał, kótarež sćo gótował."
+    "message": "Wubjeŕśo tłocašk górjejce napšawo, aby widobny wobcerk we woknje abo ceły bok fotografěrowaś."
   },
   "tourHeaderFour": {
-    "message": "Wokna abo cełe boki składowaś"
+    "message": "Tak, kaž se wam spódoba"
   },
   "tourBodyFour": {
-    "message": "Wubjeŕśo tłocašk górjejce napšawo, aby widobny wobcerk we woknje abo ceły bok fotografěrowaś."
+    "message": "Składujśo swóje pśirězane fota wobrazowki w interneśe, aby je lažcej źělił, abo ześěgniśo je na swójo licadło. Móžośo teke na tłocašk „Móje fota wobrazowki“ kliknuś, abye wšě fota wobrazowki namakał, kótarež sćo gótował."
   },
   "tourSkip": {
     "message": "Pśeskócyś"
   },
   "tourNext": {
     "message": "Pśiduce foto"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/el/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/el/messages.json
@@ -59,42 +59,45 @@
     "message": "Δεν μπορούμε να λάβουμε στιγμιότυπο αυτής της σελίδας."
   },
   "unshootablePageErrorDetails": {
     "message": "Δεν μπορεί να γίνει λήψη στιγμιότυπου καθώς αυτή δεν είναι μια τυπική σελίδα του Διαδικτύου."
   },
   "selfScreenshotErrorTitle": {
     "message": "Δεν μπορεί να γίνει λήψη ενός στιγμιότυπου της σελίδας Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Η επιλογή σας είναι πολύ μικρή"
+  },
   "genericErrorTitle": {
     "message": "Ωχ! Κάτι πήγε στραβά στην υπηρεσία Firefox Screenshots."
   },
   "genericErrorDetails": {
     "message": "Δεν είμαστε σίγουροι για το τι ακριβώς συνέβη. Προσπαθήστε ξανά ή κάντε λήψη σε μια άλλη σελίδα."
   },
   "tourBodyOne": {
     "message": "Λήψη, αποθήκευση και διαμοιρασμός στιγμιοτύπων μέσα από το Firefox."
   },
   "tourHeaderTwo": {
     "message": "Καταγράψτε αυτό που εσείς επιθυμείτε"
   },
   "tourBodyTwo": {
     "message": "Κάντε κλικ και σύρετε για την καταγραφή ενός τμήματος της σελίδας. Μπορείτε να επισημάνετε την επιλογή σας μετακινώντας τον ποντίκι σας επάνω της."
   },
   "tourHeaderThree": {
-    "message": "Ακριβώς όπως το θέλετε"
+    "message": "Λήψη παραθύρων ή ολόκληρων σελίδων"
   },
   "tourBodyThree": {
-    "message": "Αποθηκεύστε της λήψεις σας στο Διαδίκτυο για ευκολότερο διαμοιρασμό, η λήψη τους στον υπολογιστή σας. Μπορείτε να βρείτε όλες τις λήψεις σας πατώντας στο κουμπί «Οι λήψεις μου»."
+    "message": "Επιλέξτε τα κουμπιά επάνω δεξιά για να καταγράψετε την ορατή περιοχή του παραθύρου ή να καταγράψετε μια ολόκληρη σελίδα."
   },
   "tourHeaderFour": {
-    "message": "Λήψη παραθύρων ή ολόκληρων σελίδων"
+    "message": "Ακριβώς όπως το θέλετε"
   },
   "tourBodyFour": {
-    "message": "Επιλέξτε τα κουμπιά επάνω δεξιά για να καταγράψετε την ορατή περιοχή του παραθύρου ή να καταγράψετε μια ολόκληρη σελίδα."
+    "message": "Αποθηκεύστε της λήψεις σας στο Διαδίκτυο για ευκολότερο διαμοιρασμό, η λήψη τους στον υπολογιστή σας. Μπορείτε να βρείτε όλες τις λήψεις σας πατώντας στο κουμπί «Οι λήψεις μου»."
   },
   "tourSkip": {
     "message": "Παράβλεψη"
   },
   "tourNext": {
     "message": "Επόμενη διαφάνεια"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/en_GB/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/en_GB/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "Capture Just What You Want"
   },
   "tourBodyTwo": {
     "message": "Click and drag to capture just a portion of a page. You can also hover to highlight your selection."
   },
   "tourHeaderThree": {
-    "message": "As You Like it"
+    "message": "Capture Windows or Entire Pages"
   },
   "tourBodyThree": {
-    "message": "Save your cropped shots to the Web for easier sharing, or download them to your computer. You also can click on the My Shots button to find all the shots you’ve taken."
+    "message": "Select the buttons in the upper right to capture the visible area in the window or to capture an entire page."
   },
   "tourHeaderFour": {
-    "message": "Capture Windows or Entire Pages"
+    "message": "As You Like It"
   },
   "tourBodyFour": {
-    "message": "Select the buttons in the upper right to capture the visible area in the window or to capture an entire page."
+    "message": "Save your cropped shots to the web for easier sharing, or download them to your computer. You also can click on the My Shots button to find all the shots you’ve taken."
   },
   "tourSkip": {
     "message": "SKIP"
   },
   "tourNext": {
     "message": "Next Slide"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/en_US/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/en_US/messages.json
@@ -78,41 +78,41 @@
   },
   "tourHeaderTwo": {
     "message": "Capture Just What You Want"
   },
   "tourBodyTwo": {
     "message": "Click and drag to capture just a portion of a page. You can also hover to highlight your selection."
   },
   "tourHeaderThree": {
-    "message": "As You Like it"
+    "message": "Capture Windows or Entire Pages"
   },
   "tourBodyThree": {
-    "message": "Save your cropped shots to the Web for easier sharing, or download them to your computer. You also can click on the My Shots button to find all the shots you’ve taken."
+    "message": "Select the buttons in the upper right to capture the visible area in the window or to capture an entire page."
   },
   "tourHeaderFour": {
-    "message": "Capture Windows or Entire Pages"
+    "message": "As You Like It"
   },
   "tourBodyFour": {
-    "message": "Select the buttons in the upper right to capture the visible area in the window or to capture an entire page."
+    "message": "Save your cropped shots to the web for easier sharing, or download them to your computer. You also can click on the My Shots button to find all the shots you’ve taken."
   },
   "tourSkip": {
     "message": "SKIP"
   },
   "tourNext": {
     "message": "Next Slide"
   },
   "tourPrevious": {
     "message": "Previous Slide"
   },
   "tourDone": {
     "message": "Done"
   },
   "termsAndPrivacyNoticeCloudServices": {
-    "message": "By using Firefox Screenshots, you agree to the Firefox Cloud Services $TERMSANDPRIVACYNOTICETERMSLINK$ and $TERMSANDPRIVACYNOTICEPRIVACYLINK$.",
+    "message": "By using Firefox Screenshots, you agree to our $TERMSANDPRIVACYNOTICETERMSLINK$ and $TERMSANDPRIVACYNOTICEPRIVACYLINK$.",
     "placeholders": {
       "termsandprivacynoticetermslink": {
         "content": "$1"
       },
       "termsandprivacynoticeprivacylink": {
         "content": "$2"
       }
     }
--- a/browser/extensions/screenshots/webextension/_locales/es_AR/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_AR/messages.json
@@ -59,42 +59,45 @@
     "message": "No podemos capturar esta página."
   },
   "unshootablePageErrorDetails": {
     "message": "Esta no es una página web estándar, así que no podemos guardar una captura."
   },
   "selfScreenshotErrorTitle": {
     "message": "¡No se puede hacer una captura de la página de capturas de Firefox!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "La selección es demasiado chica"
+  },
   "genericErrorTitle": {
     "message": "¡Apa! La capturas de pantalla de Firefox se volvieron locas."
   },
   "genericErrorDetails": {
     "message": "No estamos seguros de lo que pasó. ¿Querés intenar de nuevo o tomar una captura de una página diferente?"
   },
   "tourBodyOne": {
     "message": "Hacer, guardar y compartir capturas de pantalla sin dejar Firefox."
   },
   "tourHeaderTwo": {
     "message": "Capturar sólo lo que querés"
   },
   "tourBodyTwo": {
     "message": "Hacé clic y arrastrá para capturar una porción de la página. También podés pasar por encima para resaltar la selección."
   },
   "tourHeaderThree": {
-    "message": "Como te guste"
+    "message": "Capturar ventanas o páginas enteras"
   },
   "tourBodyThree": {
-    "message": "Guardá tus capturas recortadas a la web para compartir o descargarlas más fácilmente a tu computadora. También podés hacer clic en el botón Mis capturas para encontrar todas las capturas hechas."
+    "message": "Seleccioná los botones arriba a la derecha para capturar el área visible en la ventana o la página completa."
   },
   "tourHeaderFour": {
-    "message": "Capturar ventanas o páginas enteras"
+    "message": "Como te guste"
   },
   "tourBodyFour": {
-    "message": "Seleccioná los botones arriba a la derecha para capturar el área visible en la ventana o la página completa."
+    "message": "Guardá tus capturas recortadas a la web para compartir o descargarlas más fácilmente a tu computadora. También podés hacer clic en el botón Mis capturas para encontrar todas las capturas hechas."
   },
   "tourSkip": {
     "message": "Saltear"
   },
   "tourNext": {
     "message": "Próxima diapositiva"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/es_CL/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_CL/messages.json
@@ -59,42 +59,45 @@
     "message": "No podemos capturar esta página."
   },
   "unshootablePageErrorDetails": {
     "message": "Esta no es una página Web estándar, por lo que no puedes tomar una captura de ella."
   },
   "selfScreenshotErrorTitle": {
     "message": "¡No puedes tomar una captura de una página de Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Tu selección es muy pequeña"
+  },
   "genericErrorTitle": {
     "message": "¡Guau! Firefox Screenshots se copetió."
   },
   "genericErrorDetails": {
     "message": "No estamos seguros de lo que sucedió. ¿Te importaría volver a intentarlo o tomar una captura de una página diferente?"
   },
   "tourBodyOne": {
     "message": "Toma, guarda y comparte capturas sin salir de Firefox."
   },
   "tourHeaderTwo": {
     "message": "Captura lo que necesitas"
   },
   "tourBodyTwo": {
     "message": "Haz clic y arrastra para captura justo una parte de la página. También puedes colocarte sobre una parte para destacar tu selección."
   },
   "tourHeaderThree": {
-    "message": "Como tu quieras"
+    "message": "Captura ventanas o páginas completas"
   },
   "tourBodyThree": {
-    "message": "Guarda tus capturas recortadas en la Web para compartirlas fácilmente o descargarlas a tu computador. También puedes hacer clic en el botón Mis capturas para encontrar todas las que hayas tomado."
+    "message": "Selecciona los botones en la parte superior derecha para capturar el área visible ne la ventana o para capturar una página completa."
   },
   "tourHeaderFour": {
-    "message": "Captura ventanas o páginas completas"
+    "message": "Como tu quieras"
   },
   "tourBodyFour": {
-    "message": "Selecciona los botones en la parte superior derecha para capturar el área visible ne la ventana o para capturar una página completa."
+    "message": "Guarda tus capturas recortadas en la Web para compartirlas fácilmente o descargarlas a tu computador. También puedes hacer clic en el botón Mis capturas para encontrar todas las que hayas tomado."
   },
   "tourSkip": {
     "message": "SALTAR"
   },
   "tourNext": {
     "message": "Siguiente diapositiva"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/es_ES/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_ES/messages.json
@@ -59,42 +59,45 @@
     "message": "No podemos hacer una captura de esta página."
   },
   "unshootablePageErrorDetails": {
     "message": "No es una página web común, por lo que no podemos hacer captura de pantalla."
   },
   "selfScreenshotErrorTitle": {
     "message": "¡No puedes hacer una captura de la página de capturas de Firefox!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Tu selección es demasiado pequeña"
+  },
   "genericErrorTitle": {
     "message": "¡Vaya! La página de capturas de pantalla de Firefox se ha vuelto loca."
   },
   "genericErrorDetails": {
     "message": "No estamos seguros de lo que acaba de pasar. ¿Te importa volver a intentarlo o hacer una captura de otra página?"
   },
   "tourBodyOne": {
     "message": "Hacer, guardar y compartir capturas de pantalla sin salir de Firefox."
   },
   "tourHeaderTwo": {
     "message": "Haz capturas solo de lo que tú quieras"
   },
   "tourBodyTwo": {
     "message": "Haz clic y arrastra para capturar solo una parte de la página. También puedes pasar por encima para resaltar tu selección."
   },
   "tourHeaderThree": {
-    "message": "Como más te guste"
+    "message": "Haz capturas de Windows o páginas completas"
   },
   "tourBodyThree": {
-    "message": "Guarda las capturas de la Web recortadas para compartirlas mejor o descárgalas en tu ordenador. También puedes hacer clic en Mis capturas para ver todas las capturas que has hecho."
+    "message": "Selecciona los botones de la parte superior derecha para capturar el área visible en Windows o la página completa."
   },
   "tourHeaderFour": {
-    "message": "Haz capturas de Windows o páginas completas"
+    "message": "Como más te guste"
   },
   "tourBodyFour": {
-    "message": "Selecciona los botones de la parte superior derecha para capturar el área visible en Windows o la página completa."
+    "message": "Guarda las capturas de la Web recortadas para compartirlas mejor o descárgalas en tu ordenador. También puedes hacer clic en Mis capturas para ver todas las capturas que has hecho."
   },
   "tourSkip": {
     "message": "Saltar"
   },
   "tourNext": {
     "message": "Diapositiva siguiente"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Captura sólo lo que necesitas"
   },
   "tourBodyTwo": {
     "message": "Haz clic y arrastra para capturas sólo una parte de la página. También puedes desplazarte para resaltar tu selección."
   },
   "tourHeaderThree": {
-    "message": "Como te gusta"
+    "message": "Captura ventanas o páginas enteras"
   },
   "tourBodyThree": {
-    "message": "Guarda tus capturas recortadas en la Web para compartirlas más fácilmente o descárgalas en tu computadora. También puedes hacer clic en el botón Mis Capturas para encontrar todas las fotos que has tomado."
+    "message": "Selecciona los botones en la parte superior derecha para capturar el área visible en la ventana o para capturar una página completa."
   },
   "tourHeaderFour": {
-    "message": "Captura ventanas o páginas enteras"
+    "message": "Como te gusta"
   },
   "tourBodyFour": {
-    "message": "Selecciona los botones en la parte superior derecha para capturar el área visible en la ventana o para capturar una página completa."
+    "message": "Guarda tus capturas recortadas en la Web para compartirlas más fácilmente o descárgalas en tu computadora. También puedes hacer clic en el botón Mis Capturas para encontrar todas las fotos que has tomado."
   },
   "tourSkip": {
     "message": "Ignorar"
   },
   "tourNext": {
     "message": "Siguiente diapositiva"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/et/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/et/messages.json
@@ -59,42 +59,45 @@
     "message": "Sellest lehest ei saa ekraanipilti teha."
   },
   "unshootablePageErrorDetails": {
     "message": "Tegemist pole standardse veebilehega, seetõttu ei saa sellest ekraanipilti teha."
   },
   "selfScreenshotErrorTitle": {
     "message": "Firefox Screenshots lehest ei saa ekraanipilti teha!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Valik on liiga väike"
+  },
   "genericErrorTitle": {
     "message": "Oi-oi! Firefox Screenshots läks sassi."
   },
   "genericErrorDetails": {
     "message": "Me pole kindlad, mis just juhtus. Proovid ehk uuesti või teed ekraanipildi mõnest teisest lehest?"
   },
   "tourBodyOne": {
     "message": "Tee, salvesta ja jaga ekraanipilte Firefoxist lahkumata."
   },
   "tourHeaderTwo": {
     "message": "Salvesta just seda, mida soovid"
   },
   "tourBodyTwo": {
     "message": "Klõpsa ja lohista lehe osa valimiseks. Samuti võid valiku esile toomiseks kursorit selle kohal hoida."
   },
   "tourHeaderThree": {
-    "message": "Nii, kuidas sulle meeldib"
+    "message": "Salvesta aknaid või terveid lehti"
   },
   "tourBodyThree": {
-    "message": "Salvesta kärbitud pilte lihtsamaks jagamiseks veebi või laadi need alla enda arvutisse. Võid ka klõpsata Minu pildid nupul kõigi tehtud piltide vaatamiseks."
+    "message": "Kasuta nuppe ülal paremal aknas nähtava ala või terve lehe salvestamiseks."
   },
   "tourHeaderFour": {
-    "message": "Salvesta aknaid või terveid lehti"
+    "message": "Nii, kuidas sulle meeldib"
   },
   "tourBodyFour": {
-    "message": "Kasuta nuppe ülal paremal aknas nähtava ala või terve lehe salvestamiseks."
+    "message": "Salvesta kärbitud pilte lihtsamaks jagamiseks veebi või laadi need alla enda arvutisse. Võid ka klõpsata Minu pildid nupul kõigi tehtud piltide vaatamiseks."
   },
   "tourSkip": {
     "message": "Jäta vahele"
   },
   "tourNext": {
     "message": "Järgmine slaid"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/fa/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fa/messages.json
@@ -59,42 +59,45 @@
     "message": "نمی‌توانیم از این صفحه تصویر بگیریم."
   },
   "unshootablePageErrorDetails": {
     "message": "این یک صفحه استاندارد وب نیست، بنابراین شما نمی‌توانید از آن تصویر بگیرید."
   },
   "selfScreenshotErrorTitle": {
     "message": "نمی‌توانید از صفحهٔ تصاویرِ فایرفاکس عکس بگیرید!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "انتخاب شما خیلی کوچک است"
+  },
   "genericErrorTitle": {
     "message": "اوه! سرویس تصاویر صفحه فایرفاکس قاطی کرده."
   },
   "genericErrorDetails": {
     "message": "مطمئن نیستیم چه اتفاقی افتاده است. می‌خواهید دوباره امتحان کنید یا از یک صفحهٔ دیگر عکس بگیرید؟"
   },
   "tourBodyOne": {
     "message": "بدون خارج شدن از فایرفاکس، عکس بگیرید، ذخیره کنید و به اشتراک بگذارید."
   },
   "tourHeaderTwo": {
     "message": "ضبط آنچه شما می‌خواهید"
   },
   "tourBodyTwo": {
     "message": "کلیک کنید و بکشید تا فقط از قسمتی از صفحه عکس بگیرید. می‌توانید برای برجسته کردن روی ناحیه انتخاب شده حرکت کنید."
   },
   "tourHeaderThree": {
-    "message": "همانطور که می‌پسندید"
+    "message": "ضبط پنجره یا کل صفحه‌ها"
   },
   "tourBodyThree": {
-    "message": "عکس‌های بریده شده خود را برای به اشتراک‌گذاری راحت‌تر روی وب ذخیره کنید، یا آن‌ها را روی رایانه خود دریافت کنید. همچنین برای دیدن همهٔ عکس‌هایی که گرفتید می‌توانید روی دکمه «عکس‌های من» کلیک کنید."
+    "message": "برای گرفتن عکس از ناحیه قابل مشاهده در پنجره یا تمام صفحه از دکمه‌های بالا سمت راست استفاده کنید."
   },
   "tourHeaderFour": {
-    "message": "ضبط پنجره یا کل صفحه‌ها"
+    "message": "همانطور که می‌پسندید"
   },
   "tourBodyFour": {
-    "message": "برای گرفتن عکس از ناحیه قابل مشاهده در پنجره یا تمام صفحه از دکمه‌های بالا سمت راست استفاده کنید."
+    "message": "عکس‌های بریده شده خود را برای به اشتراک‌گذاری راحت‌تر روی وب ذخیره کنید، یا آن‌ها را روی رایانه خود دریافت کنید. همچنین برای دیدن همهٔ عکس‌هایی که گرفتید می‌توانید روی دکمه «عکس‌های من» کلیک کنید."
   },
   "tourSkip": {
     "message": "رد کردن"
   },
   "tourNext": {
     "message": "اسلاید بعدی"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/fi/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fi/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "Kaappaa mitä haluat"
   },
   "tourBodyTwo": {
     "message": "Kaappaa vain osa sivusta napsauttamalla ja vetämällä. Voit myös korostaa valinnan pitämällä hiirtä sen päällä."
   },
   "tourHeaderThree": {
-    "message": "Haluamallasi tavalla"
+    "message": "Kaappaa ikkunoita tai kokonaisia sivuja"
   },
   "tourBodyThree": {
-    "message": "Tallenna rajaamasi kuvat verkkoon helpompaa jakamista varten tai lataa ne tietokoneellesi. Voit myös napsauttaa Omat kaappaukset -painiketta ja nähdä kaikki ottamasi kuvat."
+    "message": "Valitse oikean yläkulman painikkeista joko ikkunassa näkyvän alueen kaappaus tai koko sivun kaappaus."
   },
   "tourHeaderFour": {
-    "message": "Kaappaa ikkunoita tai kokonaisia sivuja"
+    "message": "Haluamallasi tavalla"
   },
   "tourBodyFour": {
-    "message": "Valitse oikean yläkulman painikkeista joko ikkunassa näkyvän alueen kaappaus tai koko sivun kaappaus."
+    "message": "Tallenna rajaamasi kuvat verkkoon helpompaa jakamista varten tai lataa ne tietokoneellesi. Voit myös napsauttaa Omat kaappaukset -painiketta ja nähdä kaikki ottamasi kuvat."
   },
   "tourSkip": {
     "message": "OHITA"
   },
   "tourNext": {
     "message": "Seuraava sivu"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/fr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fr/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Capturez ce que vous voulez"
   },
   "tourBodyTwo": {
     "message": "Cliquez et glissez pour capturer seulement une partie de la page. Vous pouvez aussi survoler une zone avec votre curseur pour surligner votre sélection."
   },
   "tourHeaderThree": {
-    "message": "À votre guise"
+    "message": "Effectuez des captures d’écran de fenêtres ou de pages entières"
   },
   "tourBodyThree": {
-    "message": "Sauvegardez en ligne vos captures recadrées pour les partager plus facilement, ou téléchargez-les sur votre ordinateur. Vous pouvez aussi cliquer sur « Mes captures d’écran » pour retrouver toutes vos captures."
+    "message": "Utilisez les boutons en haut à droite pour capturer au choix la zone visible dans la fenêtre ou la page entière."
   },
   "tourHeaderFour": {
-    "message": "Effectuez des captures d’écran de fenêtres ou de pages entières"
+    "message": "À votre guise"
   },
   "tourBodyFour": {
-    "message": "Utilisez les boutons en haut à droite pour capturer au choix la zone visible dans la fenêtre ou la page entière."
+    "message": "Sauvegardez en ligne vos captures recadrées pour les partager plus facilement, ou téléchargez-les sur votre ordinateur. Vous pouvez aussi cliquer sur « Mes captures d’écran » pour retrouver toutes vos captures."
   },
   "tourSkip": {
     "message": "IGNORER"
   },
   "tourNext": {
     "message": "Écran suivant"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/fy_NL/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fy_NL/messages.json
@@ -59,42 +59,45 @@
     "message": "It is net mooglik in skermprintsje fan dizze side te meitsjen."
   },
   "unshootablePageErrorDetails": {
     "message": "Dit is net in standert webside, dus jo kinne der net in skermprintsje fan meitsje."
   },
   "selfScreenshotErrorTitle": {
     "message": "Jo kinne net in skermprintsje meitsje fan in Firefox Screenshots-side!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Jo seleksje is te lyts"
+  },
   "genericErrorTitle": {
     "message": "Oeps! Firefox Screenshots is yn 'e war."
   },
   "genericErrorDetails": {
     "message": "Wy binne net wis wat der krekt bard is. Wolle jo it nochris probearje of in skermprintsje fan in oare side meitsje?"
   },
   "tourBodyOne": {
     "message": "Meitsje, bewarje en diel skermprintsjes sûnder Firefox te ferlitten."
   },
   "tourHeaderTwo": {
     "message": "Fetsje wat jo wolle"
   },
   "tourBodyTwo": {
     "message": "Klik en sleep om in part fan in side te fetsjen. Jo kinne ek oer in gebiet gean om jo seleksje út te ljochtsjen."
   },
   "tourHeaderThree": {
-    "message": "Nei jo winsk"
+    "message": "Fetsje finsters of folsleine websiden"
   },
   "tourBodyThree": {
-    "message": "Bewarje jo byknippe skermprintsjes nei it web om se maklik te dielen, of download se nei jo kompjûter. Jo kinne ek op de knop Myn skermprintsjes klikke om al jo makke skermprintsjes te finen."
+    "message": "Selektearje knoppen rjochts boppe-oan om it sichtbere gebiet yn it finster te fetsjen, of fetsje in folsleine side."
   },
   "tourHeaderFour": {
-    "message": "Fetsje finsters of folsleine websiden"
+    "message": "Nei jo winsk"
   },
   "tourBodyFour": {
-    "message": "Selektearje knoppen rjochts boppe-oan om it sichtbere gebiet yn it finster te fetsjen, of fetsje in folsleine side."
+    "message": "Bewarje jo byknippe skermprintsjes nei it web om se maklik te dielen, of download se nei jo kompjûter. Jo kinne ek op de knop Myn skermprintsjes klikke om al jo makke skermprintsjes te finen."
   },
   "tourSkip": {
     "message": "Oerslaan"
   },
   "tourNext": {
     "message": "Folgjende ôfbylding"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/gu_IN/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/gu_IN/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "કેદ કરો તમને જોઈએ તે"
   },
   "tourBodyTwo": {
     "message": "પાનાંના માત્ર એક ભાગ મેળવવા માટે ક્લિક કરો અને ખેંચો. તમે પણ તમારી પસંદગી પ્રકાશિત કરવા માટે હૉવર કરી શકો છો."
   },
   "tourHeaderThree": {
-    "message": "તમને જે ગમે"
+    "message": "વિન્ડોઝ અથવા સમગ્ર પાના કેદ કરો"
   },
   "tourBodyThree": {
-    "message": "સરળ શેરિંગ માટે વેબ પર તમારા કપાઈ શોટ સાચવો, અથવા તેમને તમારા કમ્પ્યુટર પર ડાઉનલોડ કરો. તમે બધા શોટ મેળવવા માટે મારું શોટ્સ બટન પર ક્લિક કરી પણ શકો છો બધા શોટ તમે લીધેલા શોધવા માટે."
+    "message": "ઉપર જમણા બટનો પસંદ કરો વિન્ડોમાં દૃશ્યમાન વિસ્તાર મેળવવા માટે અથવા આખુ પાનું કેપ્ચર કરવા માટે."
   },
   "tourHeaderFour": {
-    "message": "વિન્ડોઝ અથવા સમગ્ર પાના કેદ કરો"
+    "message": "તમને જે ગમે"
   },
   "tourBodyFour": {
-    "message": "ઉપર જમણા બટનો પસંદ કરો વિન્ડોમાં દૃશ્યમાન વિસ્તાર મેળવવા માટે અથવા આખુ પાનું કેપ્ચર કરવા માટે."
+    "message": "સરળ શેરિંગ માટે વેબ પર તમારા કપાઈ શોટ સાચવો, અથવા તેમને તમારા કમ્પ્યુટર પર ડાઉનલોડ કરો. તમે બધા શોટ મેળવવા માટે મારું શોટ્સ બટન પર ક્લિક કરી પણ શકો છો બધા શોટ તમે લીધેલા શોધવા માટે."
   },
   "tourSkip": {
     "message": "છોડવા"
   },
   "tourNext": {
     "message": "આગલી સ્લાઇડ"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/he/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/he/messages.json
@@ -59,42 +59,45 @@
     "message": "לא ניתן לצלם דף זה."
   },
   "unshootablePageErrorDetails": {
     "message": "דף זה אינו דף אינטרנט תקני, ולכן לא ניתן היה לצלם אותו."
   },
   "selfScreenshotErrorTitle": {
     "message": "לא ניתן לצלם את הדף של Firefox Screenshot עצמו!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "הבחירה שלך קטנה מידי"
+  },
   "genericErrorTitle": {
     "message": "אויש! Firefox Screenshots ירד מהפסים."
   },
   "genericErrorDetails": {
     "message": "אנחנו לא בטוחים מה קרה פה הרגע. אכפת לך לנסות שוב או לצלם דף אחר?"
   },
   "tourBodyOne": {
     "message": "צילום, שמירה ושיתוף של צילומי מסך מבלי לעזוב את Firefox."
   },
   "tourHeaderTwo": {
     "message": "לצלם רק את מה שנחוץ לך"
   },
   "tourBodyTwo": {
     "message": "ניתן ללחוץ ולגרור כדי לצלם רק מקטע מהעמוד. ניתן גם לרחף מעל כדי לסמן את הבחירה שלך."
   },
   "tourHeaderThree": {
-    "message": "לפי טעמך"
+    "message": "לצלם חלונות או דפים שלמים"
   },
   "tourBodyThree": {
-    "message": "שמירת הצילומים החתוכים שלך לאחסון מקוון לצורך שיתוף פשוט יותר, או להוריד אותם למחשב שלך. ניתן גם ללחוץ על כפתור הצילומים שלי כדי למצוא את כל הצילומים שצילמת."
+    "message": "בחרו בכפתורים שבחלק העליון כדי לצלם את האזור הגלוי בחלון או כדי לצלם את הדף כולו."
   },
   "tourHeaderFour": {
-    "message": "לצלם חלונות או דפים שלמים"
+    "message": "לפי טעמך"
   },
   "tourBodyFour": {
-    "message": "בחרו בכפתורים שבחלק העליון כדי לצלם את האזור הגלוי בחלון או כדי לצלם את הדף כולו."
+    "message": "שמירת הצילומים החתוכים שלך לאחסון מקוון לצורך שיתוף פשוט יותר, או להוריד אותם למחשב שלך. ניתן גם ללחוץ על כפתור הצילומים שלי כדי למצוא את כל הצילומים שצילמת."
   },
   "tourSkip": {
     "message": "דילוג"
   },
   "tourNext": {
     "message": "השקופית הבאה"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/hi_IN/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hi_IN/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "जो आप चाहते हैं उसे कैद करें"
   },
   "tourBodyTwo": {
     "message": "पृष्ठ के बस एक हिस्से को कैद करने के लिए क्लिक करें और खींचें. आप अपने चयन को हाइलाइट करने के लिए भी जा सकते हैं."
   },
   "tourHeaderThree": {
-    "message": "जैसा आप इसे चाहते हैं"
+    "message": "विंडोज़ या संपूर्ण पृष्ठों को कैद करें"
   },
   "tourBodyThree": {
-    "message": "आसानी से साझा करने या उन्हें अपने कंप्यूटर पर डाउनलोड करने के लिए अपने क्रॉप किये गये शॉट को वेब पर सहेजें. आपके द्वारा लिए गये सभी शॉट्स को ढूंढने के लिए आप मेरे शॉट्स बटन पर भी क्लिक कर सकते हैं."
+    "message": "विंडो में दिखाई देने वाले क्षेत्र या एक पूरे पृष्ठ को कैद करने के लिए ऊपर में दाहिनी तरफ़ के बटन का चयन करें."
   },
   "tourHeaderFour": {
-    "message": "विंडोज़ या संपूर्ण पृष्ठों को कैद करें"
+    "message": "जैसा आप इसे चाहते हैं"
   },
   "tourBodyFour": {
-    "message": "विंडो में दिखाई देने वाले क्षेत्र या एक पूरे पृष्ठ को कैद करने के लिए ऊपर में दाहिनी तरफ़ के बटन का चयन करें."
+    "message": "आसानी से साझा करने या उन्हें अपने कंप्यूटर पर डाउनलोड करने के लिए अपने क्रॉप किये गये शॉट को वेब पर सहेजें. आपके द्वारा लिए गये सभी शॉट्स को ढूंढने के लिए आप मेरे शॉट्स बटन पर भी क्लिक कर सकते हैं."
   },
   "tourSkip": {
     "message": "SKIP"
   },
   "tourNext": {
     "message": "अगली स्लाइड"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/hsb/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hsb/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Fotografujće prosće, štož chceće"
   },
   "tourBodyTwo": {
     "message": "Klikńće a ćehńće, zo byšće dźěl strony fotografował. Móžeće tež pokazowak myški nad nim pohibować, zo byšće swój wuběr wuzběhnył."
   },
   "tourHeaderThree": {
-    "message": "Tak, kaž so wam spodoba"
+    "message": "Wokna abo cyłe strony składować"
   },
   "tourBodyThree": {
-    "message": "Składujće swoje přitřihane fota wobrazowki w interneće, zo byšće je lóšo dźělił, abo sćehńće je na swój ličak. Móžeće tež na tłóčatko „Moje fota wobrazowki“ kliknyć, zo byšće wšě fota wobrazowki namakał, kotrež sće činił."
+    "message": "Wubjerće tłóčatka horjeka naprawo, zo byšće widźomny wobwod we woknje abo cyłu stronu fotografować."
   },
   "tourHeaderFour": {
-    "message": "Wokna abo cyłe strony składować"
+    "message": "Tak, kaž so wam spodoba"
   },
   "tourBodyFour": {
-    "message": "Wubjerće tłóčatka horjeka naprawo, zo byšće widźomny wobwod we woknje abo cyłu stronu fotografować."
+    "message": "Składujće swoje přitřihane fota wobrazowki w interneće, zo byšće je lóšo dźělił, abo sćehńće je na swój ličak. Móžeće tež na tłóčatko „Moje fota wobrazowki“ kliknyć, zo byšće wšě fota wobrazowki namakał, kotrež sće činił."
   },
   "tourSkip": {
     "message": "Přeskočić"
   },
   "tourNext": {
     "message": "Přichodne foto"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/hu/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hu/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Csak azt mentse, amit szeretne"
   },
   "tourBodyTwo": {
     "message": "Kattintson és húzzon, hogy csak a lap egy részét mentse el. Vagy csak rá is mutathat a kijelöléshez."
   },
   "tourHeaderThree": {
-    "message": "Ahogy tetszik"
+    "message": "Mentsen ablakokat vagy teljes lapokat"
   },
   "tourBodyThree": {
-    "message": "Mentse a kivágott képeket a webre a könnyebb megosztáshoz, vagy töltse le a számítógépére. Rá is kattinthat a Képernyőképek gombra, hogy megtalálja az összes képét."
+    "message": "Válassza a jobb felső sarokban lévő gombokat, hogy egy látható területet mentsen az ablakból, vagy elmentsen egy teljes oldalt."
   },
   "tourHeaderFour": {
-    "message": "Mentsen ablakokat vagy teljes lapokat"
+    "message": "Ahogy tetszik"
   },
   "tourBodyFour": {
-    "message": "Válassza a jobb felső sarokban lévő gombokat, hogy egy látható területet mentsen az ablakból, vagy elmentsen egy teljes oldalt."
+    "message": "Mentse a kivágott képeket a webre a könnyebb megosztáshoz, vagy töltse le a számítógépére. Rá is kattinthat a Képernyőképek gombra, hogy megtalálja az összes képét."
   },
   "tourSkip": {
     "message": "Kihagyás"
   },
   "tourNext": {
     "message": "Következő dia"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/hy_AM/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hy_AM/messages.json
@@ -59,42 +59,45 @@
     "message": "Հնարավոր չէ ստանալ էկրանի պատկերը:"
   },
   "unshootablePageErrorDetails": {
     "message": "Սա ստանդարտ վեբ էջ չէ, ուստի դուք չեք կարող ստանալ դրա պատկերը:"
   },
   "selfScreenshotErrorTitle": {
     "message": "Դուք չեք կարող ստանալ Firefox Screenshots-ի էջի պատկերը:"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Ընտրվածը քիչ է"
+  },
   "genericErrorTitle": {
     "message": "Firefox Screenshots-ը գնաց գլխիվայր:"
   },
   "genericErrorDetails": {
     "message": "Մենք վստահ չենք, թե ինչ է տեղի ունեցնել: Կրկին փորձեք կամ փորձեք ստանալ մեկ այլ էջի պատկերը:"
   },
   "tourBodyOne": {
     "message": "Ստացեք, պահպանեք և համօգտագործեք էկրանի հանույթները՝ առանց Firefox-ը լքելու:"
   },
   "tourHeaderTwo": {
     "message": "Ստացեք միայն այն, ինչ Ձեզ պետք է:"
   },
   "tourBodyTwo": {
     "message": "Սեղմեք և քաշեք՝ ստանալու համար միայն էջի մի մասը: Նաև կարող եք վրայով անցկացնել՝ գունանշելու համար ընտրումը:"
   },
   "tourHeaderThree": {
-    "message": "Ինչպես որ հավանում եք այն"
+    "message": "Ստանալ պատուհանը կամ ամբողջ էջեր"
   },
   "tourBodyThree": {
-    "message": "Պահպանեք ձեր եզրատած որոշ պատկերներ վեբում՝ դրանք հեշտությամբ համօգտագործելու կամ ներբեռնելու համար ձեր համակարգչում: Նաև կարող եք սեղմել Իմ պատկերները՝ գտնելու ձեր բոլոր ֆայլերը:"
+    "message": "Ընտրեք կոճակները վերևի աջ մասում՝ տեսանելի հատվածը ստանալու համար պատուհանում կամ ամբողջ էջը ստանալու համար:"
   },
   "tourHeaderFour": {
-    "message": "Ստանալ պատուհանը կամ ամբողջ էջեր"
+    "message": "Ինչպես որ հավանում եք այն"
   },
   "tourBodyFour": {
-    "message": "Ընտրեք կոճակները վերևի աջ մասում՝ տեսանելի հատվածը ստանալու համար պատուհանում կամ ամբողջ էջը ստանալու համար:"
+    "message": "Պահպանեք ձեր եզրատած որոշ պատկերներ վեբում՝ դրանք հեշտությամբ համօգտագործելու կամ ներբեռնելու համար ձեր համակարգչում: Նաև կարող եք սեղմել Իմ պատկերները՝ գտնելու ձեր բոլոր ֆայլերը:"
   },
   "tourSkip": {
     "message": "Բաց թողնել"
   },
   "tourNext": {
     "message": "Հաջորդ սահիկը"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/id/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/id/messages.json
@@ -59,42 +59,45 @@
     "message": "Kami tidak dapat menangkap layar laman ini."
   },
   "unshootablePageErrorDetails": {
     "message": "Ini bukan laman Web yang standar, sehingga Anda tidak dapat membuat tangkapan dari layar ini."
   },
   "selfScreenshotErrorTitle": {
     "message": "Anda tidak dapat merekam gambar dari laman Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Seleksi Anda terlalu kecil"
+  },
   "genericErrorTitle": {
     "message": "Wah! Firefox Screenshots mendadak kacau."
   },
   "genericErrorDetails": {
     "message": "Kami tidak yakin akan apa yang terjadi. Ingin mencoba lagi atau merekam gambar dari laman yang berbeda?"
   },
   "tourBodyOne": {
     "message": "Ambil, simpan, dan bagikan tangkapan layar tanpa meninggalkan Firefox."
   },
   "tourHeaderTwo": {
     "message": "Rekam Bagian Yang Anda Inginkan"
   },
   "tourBodyTwo": {
     "message": "Klik dan seret untuk merekam sebagian area laman. Anda juga dapat menggeser kursor untuk menyoroti pilihan Anda."
   },
   "tourHeaderThree": {
-    "message": "Sesuka Anda"
+    "message": "Rekam Jendela atau Seluruh Laman"
   },
   "tourBodyThree": {
-    "message": "Simpan potongan tangkapan Anda ke Web agar mudah dibagikan, atau unduh ke komputer. Anda pun dapat mengeklik pada tombol Gambar Saya untuk menemukan semua tangkapan yang pernah Anda rekam."
+    "message": "Pilih tombol di kanan atas untuk merekam area yang terlihat pada jendela atau rekam seluruh laman."
   },
   "tourHeaderFour": {
-    "message": "Rekam Jendela atau Seluruh Laman"
+    "message": "Sesuka Anda"
   },
   "tourBodyFour": {
-    "message": "Pilih tombol di kanan atas untuk merekam area yang terlihat pada jendela atau rekam seluruh laman."
+    "message": "Simpan potongan tangkapan Anda ke Web agar mudah dibagikan, atau unduh ke komputer. Anda pun dapat mengeklik pada tombol Gambar Saya untuk menemukan semua tangkapan yang pernah Anda rekam."
   },
   "tourSkip": {
     "message": "Lewati"
   },
   "tourNext": {
     "message": "Salindia Selanjutnya"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/it/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/it/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Cattura solo ciò che ti serve"
   },
   "tourBodyTwo": {
     "message": "Fai clic e trascina per catturare solo una parte della pagina. Posiziona il mouse sopra all’area selezionata per evidenziarla."
   },
   "tourHeaderThree": {
-    "message": "Come piace a te"
+    "message": "Cattura una finestra o una pagina intera"
   },
   "tourBodyThree": {
-    "message": "Cattura lo screenshot di una pagina web, ritaglialo e salvalo online per condividerlo in modo più veloce, oppure scaricalo sul tuo computer. Puoi anche utilizzare il pulsante “I miei screenshot” per ritrovare tutte le immagini che hai salvato."
+    "message": "Utilizza i pulsanti in alto a destra per catturare una parte della finestra o l’intera pagina."
   },
   "tourHeaderFour": {
-    "message": "Cattura una finestra o una pagina intera"
+    "message": "Come piace a te"
   },
   "tourBodyFour": {
-    "message": "Utilizza i pulsanti in alto a destra per catturare una parte della finestra o l’intera pagina."
+    "message": "Cattura lo screenshot di una pagina web, ritaglialo e salvalo online per condividerlo in modo più veloce, oppure scaricalo sul tuo computer. Puoi anche utilizzare il pulsante “I miei screenshot” per ritrovare tutte le immagini che hai salvato."
   },
   "tourSkip": {
     "message": "Ignora"
   },
   "tourNext": {
     "message": "Schermata successiva"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/ja/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ja/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "必要なものだけをキャプチャー"
   },
   "tourBodyTwo": {
     "message": "クリック&ドラッグでページの一部だけをキャプチャーできます。また、マウスを当てれば選択範囲が強調表示されます。"
   },
   "tourHeaderThree": {
-    "message": "お好きなように"
+    "message": "ウィンドウもしくはページ全体をキャプチャー"
   },
   "tourBodyThree": {
-    "message": "切り取ったショットを簡単に共有できるようウェブ上に保存したり、手元へダウンロードしたり。また「自分のショット」ボタンをクリックすれば、これまでに撮ったすべてのショットを見られます。"
+    "message": "右上のボタンを選択して、ウィンドウ内の表示範囲もしくはページ全体をキャプチャーしましょう。"
   },
   "tourHeaderFour": {
-    "message": "ウィンドウもしくはページ全体をキャプチャー"
+    "message": "お好きなように"
   },
   "tourBodyFour": {
-    "message": "右上のボタンを選択して、ウィンドウ内の表示範囲もしくはページ全体をキャプチャーしましょう。"
+    "message": "切り取ったショットを簡単に共有できるようウェブ上に保存したり、手元へダウンロードしたり。また「自分のショット」ボタンをクリックすれば、これまでに撮ったすべてのショットを見られます。"
   },
   "tourSkip": {
     "message": "スキップ"
   },
   "tourNext": {
     "message": "次のスライド"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/kab/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/kab/messages.json
@@ -59,42 +59,45 @@
     "message": "Ur nezmir ara ad neṭṭef agdil n usebter-agi."
   },
   "unshootablePageErrorDetails": {
     "message": "Mačči d asebter Web am iyaḍ, ur tizmireḍ ara ad s-teṭṭfeḍ agdil."
   },
   "selfScreenshotErrorTitle": {
     "message": "Ur tezmireḍ ar ad teṭṭfeḍ agdil n usebter Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Tafrant inek wezzil-t aṭas"
+  },
   "genericErrorTitle": {
     "message": "Ihuh! Firefox Screenshots ur iteddu ara."
   },
   "genericErrorDetails": {
     "message": "Ur neẓri ara acu yeḍran. Ɛreḍ tikelt-nniḍen neɣ ṭṭef agdil n usebter-nniḍen?"
   },
   "tourBodyOne": {
     "message": "Ṭṭef, sekles, bḍu igdilen war ma teffɣeḍ si Firefox."
   },
   "tourHeaderTwo": {
     "message": "Ṭṭef kan ayen tebγiḍ"
   },
   "tourBodyTwo": {
     "message": "Sit sakin zuɣer akken ad teṭṭfeḍ aḥric seg usebter. Tzemreḍ daɣen ad tesrifgeḍ akken ad tsebṛuṛqeḍ afran-ik."
   },
   "tourHeaderThree": {
-    "message": "Akken tebγiḍ"
+    "message": "Ṭṭef isfuyla neγ isebtar meṛṛa"
   },
   "tourBodyThree": {
-    "message": "Sekles tuṭṭfiwin-ik ar Web i beṭṭu fessusen, neɣ sider-itent-id ar uselkim-ik. Tzemr€d daɣen ad tiseḍ ɣef tqeffalt Tiṭṭfiwin-iw akken ad tafeḍ akk tuṭṭfiwin n ugdil i teggid."
+    "message": "Fren tiqeffalin s afella ayeffus akken ad teṭṭfeḍ tamnaṭ yettbanen deg usfaylu neɣ asebter i meṛṛa."
   },
   "tourHeaderFour": {
-    "message": "Ṭṭef isfuyla neγ isebtar meṛṛa"
+    "message": "Akken tebγiḍ"
   },
   "tourBodyFour": {
-    "message": "Fren tiqeffalin s afella ayeffus akken ad teṭṭfeḍ tamnaṭ yettbanen deg usfaylu neɣ asebter i meṛṛa."
+    "message": "Sekles tuṭṭfiwin-ik ar Web i beṭṭu fessusen, neɣ sider-itent-id ar uselkim-ik. Tzemr€d daɣen ad tiseḍ ɣef tqeffalt Tiṭṭfiwin-iw akken ad tafeḍ akk tuṭṭfiwin n ugdil i teggid."
   },
   "tourSkip": {
     "message": "Zgel"
   },
   "tourNext": {
     "message": "Tigri n zdat"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/kk/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/kk/messages.json
@@ -59,42 +59,45 @@
     "message": "Бұл беттің скриншотын түсіре алмаймыз."
   },
   "unshootablePageErrorDetails": {
     "message": "Бұл қалыпты веб беті емес, сондықтан оның скриншотын түсіру мүмкін емес."
   },
   "selfScreenshotErrorTitle": {
     "message": "Firefox скриншоттары бетінің скриншотын түсіру мүмкін емес!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Сіздің таңдауыңыз тым кішкентай"
+  },
   "genericErrorTitle": {
     "message": "Қап! Firefox скриншоттары жасамай қалған сияқты."
   },
   "genericErrorDetails": {
     "message": "Не болғанын білмейміз. Қайталап көресіз бе, немесе басқа парақтың скриншотын түсіріп көресіз бе?"
   },
   "tourBodyOne": {
     "message": "Firefox ішінен скриншоттарды түсіру, сақтау және олармен бөлісу."
   },
   "tourHeaderTwo": {
     "message": "Тек керек нәрсені түсіріңіз"
   },
   "tourBodyTwo": {
     "message": "Беттің тек бір бөлігін түсіру үшін тышқанды шертіп, тартыңыз. Таңдауыңызды түспен ерекшелеу үшін үстінен өткізсеңіз болады."
   },
   "tourHeaderThree": {
-    "message": "Өзіңізге керек түрде"
+    "message": "Терезелер немесе толық беттерді түсіріңіз"
   },
   "tourBodyThree": {
-    "message": "Қиылған скриншоттарыңыздбен оңай бөлісу үшін оларды интернетте сақтаңыз, немесе өз компьютеріңізге жүктеп алыңыз. Сонымен қатар, сіз жасаған барлық скриншоттарды табу үшін Менің скриншоттарым батырмасына шерте аласыз."
+    "message": "Жоғарғы оң жақта орналасқан батырмаларды терезенің көрінетін аймағын, немесе толық бетті түсіру үшін қолданыңыз."
   },
   "tourHeaderFour": {
-    "message": "Терезелер немесе толық беттерді түсіріңіз"
+    "message": "Өзіңізге керек түрде"
   },
   "tourBodyFour": {
-    "message": "Жоғарғы оң жақта орналасқан батырмаларды терезенің көрінетін аймағын, немесе толық бетті түсіру үшін қолданыңыз."
+    "message": "Қиылған скриншоттарыңыздбен оңай бөлісу үшін оларды интернетте сақтаңыз, немесе өз компьютеріңізге жүктеп алыңыз. Сонымен қатар, сіз жасаған барлық скриншоттарды табу үшін Менің скриншоттарым батырмасына шерте аласыз."
   },
   "tourSkip": {
     "message": "Аттап кету"
   },
   "tourNext": {
     "message": "Келесі слайд"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/ko/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ko/messages.json
@@ -59,42 +59,45 @@
     "message": "이 페이지를 캡처할 수 없습니다."
   },
   "unshootablePageErrorDetails": {
     "message": "표준 웹 페이지가 아니어서 스크린샷을 찍을 수 없습니다."
   },
   "selfScreenshotErrorTitle": {
     "message": "Firefox Screenshots 페이지는 캡처할 수 없어요!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "선택영역이 너무 작음"
+  },
   "genericErrorTitle": {
     "message": "와우! Firefox Screenshots이 망가졌네요."
   },
   "genericErrorDetails": {
     "message": "무슨 일이 있었는지 모르겠네요. 다시 시도하시거나 다른 페이지 스크린샷을 찍어 보시겠어요?"
   },
   "tourBodyOne": {
     "message": "Firefox를 떠나지 않은 채로 찍고, 저장하고, 공유하세요."
   },
   "tourHeaderTwo": {
     "message": "원하는 것을 캡춰하세요"
   },
   "tourBodyTwo": {
     "message": "캡춰할 페이지의 부분을 클릭해서 드래그 해 보세요. 마우스를 올려서 선택한 부분을 확인할 수 있습니다."
   },
   "tourHeaderThree": {
-    "message": "내가 원하는 대로"
+    "message": "창이나 페이지 전체를 캡춰할 수 있습니다"
   },
   "tourBodyThree": {
-    "message": "스크린샷을 공유하거나, 컴퓨터로 다운로드할 수도 있습니다. 내 스크린샷 버튼을 눌러서 지금까지 찍었던 모든 스크린샷을 찾을 수도 있습니다."
+    "message": "우측 위에 있는 버튼을 눌러 창을 캡처하거나 페이지 전체를 캡처할 수 있습니다."
   },
   "tourHeaderFour": {
-    "message": "창이나 페이지 전체를 캡춰할 수 있습니다"
+    "message": "내가 원하는 대로"
   },
   "tourBodyFour": {
-    "message": "우측 위에 있는 버튼을 눌러 창을 캡처하거나 페이지 전체를 캡처할 수 있습니다."
+    "message": "스크린샷을 공유하거나, 컴퓨터로 다운로드할 수도 있습니다. 내 스크린샷 버튼을 눌러서 지금까지 찍었던 모든 스크린샷을 찾을 수도 있습니다."
   },
   "tourSkip": {
     "message": "건너뛰기"
   },
   "tourNext": {
     "message": "다음 슬라이드"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/lij/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/lij/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "Catua solo quello che t'eu"
   },
   "tourBodyTwo": {
     "message": "Sciacca e rebela pe catuâ solo 'na porçion de 'na pagina. Ti peu anche anâ co-o ratto sorvia l'area seleçionâ pe evidençiala."
   },
   "tourHeaderThree": {
-    "message": "Comme te piaxe"
+    "message": "Catua 'n barcon ò 'na pagina intrega"
   },
   "tourBodyThree": {
-    "message": "Sarva 'n ritaggio de 'na pagina Web pe condividila in mòddo ciù façile ò scaregala into teu computer. Ti peu anche sciacâ into pomello  “E mæ föto do schermo pe atrovâ” quello che t'æ za pigiou."
+    "message": "Seleçionn-a i pomelli de d'ato a drita pe catuâ l'area vixibile into barcon ò a pagina intrega."
   },
   "tourHeaderFour": {
-    "message": "Catua 'n barcon ò 'na pagina intrega"
+    "message": "Comme te piaxe"
   },
   "tourBodyFour": {
-    "message": "Seleçionn-a i pomelli de d'ato a drita pe catuâ l'area vixibile into barcon ò a pagina intrega."
+    "message": "Sarva 'n ritaggio de 'na pagina Web pe condividila in mòddo ciù façile ò scaregala into teu computer. Ti peu anche sciacâ into pomello  “E mæ föto do schermo pe atrovâ” quello che t'æ za pigiou."
   },
   "tourSkip": {
     "message": "Ignòra"
   },
   "tourNext": {
     "message": "Pròscima schermâ"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/lo/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/lo/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "ຖ່າຍພາບຕາມທີ່ທ່ານຕ້ອງການ"
   },
   "tourBodyTwo": {
     "message": "ຄິກ ຫລື ລາກເພື່ອຖ່າຍພາບສະເພາະບາງສ່ວນຂອງຫນ້າເວັບ. ພ້ອມດຽວກັນນັ້ນທ່ານຍັງສາມາດເລື່ອນມາເພື່ອເນັ້ນພາບທີ່ທ່ານເລືອກ."
   },
   "tourHeaderThree": {
-    "message": "ຕາມທີ່ທ່ານມັກ"
+    "message": "ຖ່າຍພາບວິນໂດ ຫລື ຫມົດທັ້ງຫນ້າ"
   },
   "tourBodyThree": {
-    "message": "ບັນທຶກຮູບພາບທີ່ທ່ານໄດ້ຄັອບເອົາໄວ້ລົງໄປໄວ້ໃນເວັບເພື່ອເຮັດໃຫ້ແບ່ງປັນໄດ້ງ່າຍ ຫລື ດາວໂຫລດໄປໄວ້ໃນຄອມພິວເຕີຂອງທ່ານ. ທ່ານຍັງສາມາດຄິກໃສ່ໃນປຸ່ມກົດ \"ຮູບພາບຂອງຂ້ອຍ\" ເພື່ອຊອກຫາຮູບພາບທັງຫມົດທີ່ທ່ານໄດ້ຖ່າຍເອົາໄວ້."
+    "message": "ເລືອກປຸ່ມກົດທີ່ຢູ່ເທິງເບື້ອງຂວາມືເພື່ອຈັບພາບໃນບໍລິເວນທີ່ເບິງເຫັນໄດ້ໃນວິນໂດ ຫລື ເພື່ອຈັບພາບທັງຫມົດໃນຫນ້າເວັບ."
   },
   "tourHeaderFour": {
-    "message": "ຖ່າຍພາບວິນໂດ ຫລື ຫມົດທັ້ງຫນ້າ"
+    "message": "ຕາມທີ່ທ່ານມັກ"
   },
   "tourBodyFour": {
-    "message": "ເລືອກປຸ່ມກົດທີ່ຢູ່ເທິງເບື້ອງຂວາມືເພື່ອຈັບພາບໃນບໍລິເວນທີ່ເບິງເຫັນໄດ້ໃນວິນໂດ ຫລື ເພື່ອຈັບພາບທັງຫມົດໃນຫນ້າເວັບ."
+    "message": "ບັນທຶກຮູບພາບທີ່ທ່ານໄດ້ຄັອບເອົາໄວ້ລົງໄປໄວ້ໃນເວັບເພື່ອເຮັດໃຫ້ແບ່ງປັນໄດ້ງ່າຍ ຫລື ດາວໂຫລດໄປໄວ້ໃນຄອມພິວເຕີຂອງທ່ານ. ທ່ານຍັງສາມາດຄິກໃສ່ໃນປຸ່ມກົດ \"ຮູບພາບຂອງຂ້ອຍ\" ເພື່ອຊອກຫາຮູບພາບທັງຫມົດທີ່ທ່ານໄດ້ຖ່າຍເອົາໄວ້."
   },
   "tourSkip": {
     "message": "ຂ້າມໄປ"
   },
   "tourNext": {
     "message": "ສະໄລດ໌ຕໍ່ໄປ"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/lt/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/lt/messages.json
@@ -59,42 +59,45 @@
     "message": "Mums nepavyko nufotografuoti šio tinklalapio."
   },
   "unshootablePageErrorDetails": {
     "message": "Tai nėra įprastas tinklalapis, tad negalite padaryti jo nuotraukos."
   },
   "selfScreenshotErrorTitle": {
     "message": "Negalite padaryti „Firefox Screenshots“ tinklalapio nuotraukos!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Jūsų pasirinkimas yra per mažas"
+  },
   "genericErrorTitle": {
     "message": "Vau! „Firefox Screenshots“ sugedo."
   },
   "genericErrorDetails": {
     "message": "Mes nesame tikri, kas ką tik nutiko. Norite pabandyti dar kartą arba nufotografuoti kitą tinklalapį?"
   },
   "tourBodyOne": {
     "message": "Darykite, įrašykite ir dalinkitės ekrano nuotraukomis nepalikdami „Firefox“."
   },
   "tourHeaderTwo": {
     "message": "Užfiksuokite būtent tai, ką norite"
   },
   "tourBodyTwo": {
     "message": "Spustelėkite ir tempkite, kad užfiksuotumėte tik dalį tinklalapio. Taip pat galite užvesti pelę, norėdami paryškinti savo pasirinkimą."
   },
   "tourHeaderThree": {
-    "message": "Kaip jums patogiau"
+    "message": "Fiksuokite langus arba ištisus tinklalapius"
   },
   "tourBodyThree": {
-    "message": "Įrašykite padarytas nuotraukas saityne patogesniam dalinimuisi, arba atsisiųskite jas į savo kompiuterį. Spustelėję mygtuką „Mano kadrai“, matysite visas savo padarytas nuotraukas."
+    "message": "Pasirinkite mygtukus aukščiau dešinėje, norėdami užfiksuoti matomą lango dalį arba visą tinklalapį."
   },
   "tourHeaderFour": {
-    "message": "Fiksuokite langus arba ištisus tinklalapius"
+    "message": "Kaip jums patogiau"
   },
   "tourBodyFour": {
-    "message": "Pasirinkite mygtukus aukščiau dešinėje, norėdami užfiksuoti matomą lango dalį arba visą tinklalapį."
+    "message": "Įrašykite padarytas nuotraukas saityne patogesniam dalinimuisi, arba atsisiųskite jas į savo kompiuterį. Spustelėję mygtuką „Mano kadrai“, matysite visas savo padarytas nuotraukas."
   },
   "tourSkip": {
     "message": "SKIP"
   },
   "tourNext": {
     "message": "Kita skaidrė"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/ms/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ms/messages.json
@@ -59,42 +59,45 @@
     "message": "Halaman ini tidak boleh diskrinshot."
   },
   "unshootablePageErrorDetails": {
     "message": "Ini bukan halaman Web piawai, jadi anda tidak boleh membuat skrinshot."
   },
   "selfScreenshotErrorTitle": {
     "message": "Anda tidak boleh mengambil gambar halaman Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Pilihan anda terlalu kecil"
+  },
   "genericErrorTitle": {
     "message": "Oh tidak! Firefox Screenshot tidak berfungsi dengan betul."
   },
   "genericErrorDetails": {
     "message": "Kami tidak pasti apa yang baru berlaku. Anda mahu cuba lagi atau mengambil gambar halaman lain?"
   },
   "tourBodyOne": {
     "message": "Ambil, simpan, dan kongsi screenshot tanpa meninggalkan pelayar Firefox."
   },
   "tourHeaderTwo": {
     "message": "Ambil gambar hanya yang anda mahu"
   },
   "tourBodyTwo": {
     "message": "Klik dan seret untuk mengambil gambar sebahagian daripada halaman. Anda boleh juga serlahkan pilihan anda."
   },
   "tourHeaderThree": {
-    "message": "Seperti Yang Anda Suka"
+    "message": "Tangkap Tetingkap atau Keseluruhan Halaman"
   },
   "tourBodyThree": {
-    "message": "Simpan rakaman yang dipotong ke Web, cara yang lebih mudah untuk berkongsi, atau memuatturunnya ke komputer anda. Anda juga boleh klik pada butang Shot Saya untuk mencari semua rakaman yang telah diambil."
+    "message": "Pilih butang di bahagian atas kanan untuk merakam kawasan paparan dalam tetingkap atau untuk merakamkan keseluruhan halaman."
   },
   "tourHeaderFour": {
-    "message": "Tangkap Tetingkap atau Keseluruhan Halaman"
+    "message": "Seperti Yang Anda Suka"
   },
   "tourBodyFour": {
-    "message": "Pilih butang di bahagian atas kanan untuk merakam kawasan paparan dalam tetingkap atau untuk merakamkan keseluruhan halaman."
+    "message": "Simpan rakaman yang dipotong ke Web, cara yang lebih mudah untuk berkongsi, atau memuatturunnya ke komputer anda. Anda juga boleh klik pada butang Shot Saya untuk mencari semua rakaman yang telah diambil."
   },
   "tourSkip": {
     "message": "Langkau"
   },
   "tourNext": {
     "message": "Slaid Seterusnya"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/my/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/my/messages.json
@@ -43,20 +43,20 @@
   },
   "tourBodyOne": {
     "message": "Firefox ကနေ ထွက်ခွာရန် မလိုဘဲ မျက်နှာပြင်ပုံရိပ်များကို ရိုက်ကူး၊ သိမ်းဆည်း၊ မျှဝေပါ။"
   },
   "tourHeaderTwo": {
     "message": "ကိုယ်နှစ်သက်ရာ စာမျက်နှာများကို ဖမ်းယူပါ"
   },
   "tourHeaderThree": {
-    "message": "နှစ်သက်သလို"
+    "message": "ဝင်ဒိုးများ သို့မဟုတ် စာမျက်နှာတစ်ခုလုံးကို ဖမ်းယူပါ"
   },
   "tourHeaderFour": {
-    "message": "ဝင်ဒိုးများ သို့မဟုတ် စာမျက်နှာတစ်ခုလုံးကို ဖမ်းယူပါ"
+    "message": "နှစ်သက်သလို"
   },
   "tourSkip": {
     "message": "SKIP"
   },
   "tourNext": {
     "message": "နောက်ဆလိုက်"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/nb_NO/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/nb_NO/messages.json
@@ -7,17 +7,17 @@
   },
   "contextMenuLabel": {
     "message": "Ta et skjermbilde"
   },
   "myShotsLink": {
     "message": "Mine skjermbilder"
   },
   "screenshotInstructions": {
-    "message": "Dra eller klikk på siden for å velge en region. Trykk på ESC for å avbryte."
+    "message": "Dra eller klikk på siden for å velge et område. Trykk på ESC for å avbryte."
   },
   "saveScreenshotSelectedArea": {
     "message": "Lagre"
   },
   "saveScreenshotVisibleArea": {
     "message": "Lagre synlig område"
   },
   "saveScreenshotFullPage": {
@@ -59,42 +59,45 @@
     "message": "Vi kan ikke ta skjermbilde av siden."
   },
   "unshootablePageErrorDetails": {
     "message": "Dette er ikke en vanlig nettside, og du kan ikke ta skjermbilde av den."
   },
   "selfScreenshotErrorTitle": {
     "message": "Du kan ikke ta skjermbilde av siden Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Det valgte området er for liten"
+  },
   "genericErrorTitle": {
     "message": "Oi! Det ser ut til at Firefox Screenshots ikke fungerer korrekt."
   },
   "genericErrorDetails": {
     "message": "Vi er ikke sikre på hva som hendte. Kan du prøve igjen eller ta et bilde av en annen side?"
   },
   "tourBodyOne": {
     "message": "Ta, lagre og del skjermbilder uten å forlate Firefox."
   },
   "tourHeaderTwo": {
     "message": "Ta bilde av akkurat hva du vil"
   },
   "tourBodyTwo": {
     "message": "Klikk for å dra og ta skjermbilde av bare en del av siden. Du kan også føre musen over for å framheve merket område."
   },
   "tourHeaderThree": {
-    "message": "Som du vil ha det"
+    "message": "Ta skjermbilde av vinduer eller hele sider."
   },
   "tourBodyThree": {
-    "message": "Lagre de beskjærte skjermbildene dine på nettet for enklere deling, eller last de ned til din datamaskin. Du kan også klikke på knappen Mine skjermbilde for å finne alle skjermbildene du har tatt."
+    "message": "Bruk knappene i det øvre høyre hjørnet for å ta skjermbilde av det synlige området i vinduet eller for å ta skjermbilde av en hel side."
   },
   "tourHeaderFour": {
-    "message": "Ta skjermbilde av vinduer eller hele sider."
+    "message": "Som du vil ha det"
   },
   "tourBodyFour": {
-    "message": "Bruk knappene i det øvre høyre hjørnet for å ta skjermbilde av det synlige området i vinduet eller for å ta skjermbilde av en hel side."
+    "message": "Lagre de beskjærte skjermbildene dine på nettet for enklere deling, eller last de ned til din datamaskin. Du kan også klikke på knappen Mine skjermbilde for å finne alle skjermbildene du har tatt."
   },
   "tourSkip": {
     "message": "Hopp over"
   },
   "tourNext": {
     "message": "Neste slide"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/nl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/nl/messages.json
@@ -59,42 +59,45 @@
     "message": "Van deze pagina kan geen schermafbeelding worden gemaakt."
   },
   "unshootablePageErrorDetails": {
     "message": "Dit is geen standaardwebpagina, dus u kunt er geen schermafbeelding van maken."
   },
   "selfScreenshotErrorTitle": {
     "message": "U kunt geen afbeelding van een Firefox Screenshots-pagina maken!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Uw selectie is te klein"
+  },
   "genericErrorTitle": {
     "message": "Ho! Er is iets mis met Firefox Screenshots."
   },
   "genericErrorDetails": {
     "message": "We weten niet precies wat er zonet is gebeurd. Wilt u het nogmaals proberen of een schermafbeelding van een andere pagina maken?"
   },
   "tourBodyOne": {
     "message": "Maak, bewaar en deel schermafbeeldingen zonder Firefox te verlaten."
   },
   "tourHeaderTwo": {
     "message": "Leg alleen vast wat u wilt"
   },
   "tourBodyTwo": {
     "message": "Klik en sleep om alleen een gedeelte van een pagina vast te leggen. U kunt ook de muisaanwijzer boven een gebied houden om uw selectie te accentueren."
   },
   "tourHeaderThree": {
-    "message": "Zoals u wilt"
+    "message": "Leg vensters of hele pagina’s vast"
   },
   "tourBodyThree": {
-    "message": "Sla uw bijgesneden afbeeldingen op op het web voor makkelijker delen, of download ze naar uw computer. U kunt ook op de knop Mijn afbeeldingen klikken om al uw gemaakte afbeeldingen te vinden."
+    "message": "Selecteer de knoppen rechtsboven om het zichtbare gebied in het venster vast te leggen, of om een hele pagina vast te leggen."
   },
   "tourHeaderFour": {
-    "message": "Leg vensters of hele pagina’s vast"
+    "message": "Zoals u wilt"
   },
   "tourBodyFour": {
-    "message": "Selecteer de knoppen rechtsboven om het zichtbare gebied in het venster vast te leggen, of om een hele pagina vast te leggen."
+    "message": "Sla uw bijgesneden afbeeldingen op op het web voor makkelijker delen, of download ze naar uw computer. U kunt ook op de knop Mijn afbeeldingen klikken om al uw gemaakte afbeeldingen te vinden."
   },
   "tourSkip": {
     "message": "Overslaan"
   },
   "tourNext": {
     "message": "Volgende slide"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/nn_NO/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/nn_NO/messages.json
@@ -7,17 +7,17 @@
   },
   "contextMenuLabel": {
     "message": "Ta eit skjermbilde"
   },
   "myShotsLink": {
     "message": "Mine skjermbilde"
   },
   "screenshotInstructions": {
-    "message": "Drag eller klikk på sida for å velje ein region. Trykk på ESC for å avbryte."
+    "message": "Drag eller klikk på sida for å velje eit område. Trykk på ESC for å avbryte."
   },
   "saveScreenshotSelectedArea": {
     "message": "Lagre"
   },
   "saveScreenshotVisibleArea": {
     "message": "Lagre synleg område"
   },
   "saveScreenshotFullPage": {
@@ -28,17 +28,17 @@
   },
   "downloadScreenshot": {
     "message": "Last ned"
   },
   "notificationLinkCopiedTitle": {
     "message": "Lenke kopiert"
   },
   "notificationLinkCopiedDetails": {
-    "message": "Lenka til skjermbildet ditt er kopiert til utklipp. Trykk på $META_KEY$-V for å lime inn.",
+    "message": "Lenka til skjermbildet ditt er kopiert til utklippstavla. Trykk på $META_KEY$-V for å lime inn.",
     "placeholders": {
       "meta_key": {
         "content": "$1"
       }
     }
   },
   "requestErrorTitle": {
     "message": "I ustand."
@@ -59,42 +59,45 @@
     "message": "Vi kan ikkje ta skjermbilde av sida."
   },
   "unshootablePageErrorDetails": {
     "message": "Dette er ikkje ei vanleg nettside, og du kan ikkje ta skjermbilde av henne."
   },
   "selfScreenshotErrorTitle": {
     "message": "Du kan ikkje ta skjermbilde av sida Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Markeringa di er for lita"
+  },
   "genericErrorTitle": {
     "message": "Oj! Det ser ut til at Firefox Screenshots ikkje fungerer korrekt."
   },
   "genericErrorDetails": {
     "message": "Vi er ikkje sikre på kva som hende. Kan du prøve igjen eller ta eit bilde på ei anna side?"
   },
   "tourBodyOne": {
     "message": "Ta, lagre og del skjermbilde utan å forlate Firefox."
   },
   "tourHeaderTwo": {
     "message": "Knips akkurat det du vil"
   },
   "tourBodyTwo": {
     "message": "Klikk for å drage og knipse berre ein del av sida. Du kan også føre musa over for å framheve merkt område."
   },
   "tourHeaderThree": {
-    "message": "Som du vil ha det"
+    "message": "Knips vindauge eller heile sider"
   },
   "tourBodyThree": {
-    "message": "Lagre dei tilskjerte bilda dine på nettet for enklare deling, eller last dei ned til datamaskina di. Du kan også klikke på knappen Mine skjermbilde for å finne alle bilda du har tatt."
+    "message": "Vel knappane i det øvre høgre hjørnet for å knipse det synlege området i vindauget eller for å knipse ei heil side."
   },
   "tourHeaderFour": {
-    "message": "Knips vindauge eller heile sider"
+    "message": "Som du vil ha det"
   },
   "tourBodyFour": {
-    "message": "Vel knappane i det øvre høgre hjørnet for å knipse det synlege området i vindauget eller for å knipse ei heil side."
+    "message": "Lagre dei tilskjerte bilda dine på nettet for enklare deling, eller last dei ned til datamaskina di. Du kan også klikke på knappen Mine skjermbilde for å finne alle bilda du har tatt."
   },
   "tourSkip": {
     "message": "Hopp over"
   },
   "tourNext": {
     "message": "Neste slide"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/pl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/pl/messages.json
@@ -59,42 +59,45 @@
     "message": "Nie można wykonać zrzutu tej strony."
   },
   "unshootablePageErrorDetails": {
     "message": "To nie jest standardowa strona internetowa, więc nie można wykonać jej zrzutu."
   },
   "selfScreenshotErrorTitle": {
     "message": "Nie można wykonać zrzutu strony Firefox Screenshots."
   },
+  "emptySelectionErrorTitle": {
+    "message": "Zaznaczenie jest za małe"
+  },
   "genericErrorTitle": {
     "message": "Firefox Screenshots wymknęło się spod kontroli."
   },
   "genericErrorDetails": {
     "message": "Nie bardzo wiemy, co się wydarzyło. Spróbujesz ponownie lub wykonasz zrzut innej strony?"
   },
   "tourBodyOne": {
     "message": "Wykonuj, zapisuj i udostępniaj zrzuty ekranu bez wychodzenia z Firefoksa."
   },
   "tourHeaderTwo": {
     "message": "Zapisuj tylko to, co potrzebujesz"
   },
   "tourBodyTwo": {
     "message": "Kliknij i przeciągnij, aby zapisać tylko część strony. Możesz także najechać, aby wyróżnić zaznaczony obszar."
   },
   "tourHeaderThree": {
-    "message": "Tak, jak lubisz"
+    "message": "Zapisuj zrzuty okien lub całych stron"
   },
   "tourBodyThree": {
-    "message": "Zapisuj przycięte zrzuty w Internecie, aby łatwiej je udostępniać, albo pobierz je na swój komputer. Możesz też kliknąć przycisk „Moje zrzuty”, aby przeglądać wszystkie wykonane zrzuty."
+    "message": "Kliknij przycisk w górnym prawym rogu, aby zapisać obszar widoczny w oknie lub całą stronę."
   },
   "tourHeaderFour": {
-    "message": "Zapisuj zrzuty okien lub całych stron"
+    "message": "Tak, jak lubisz"
   },
   "tourBodyFour": {
-    "message": "Kliknij przycisk w górnym prawym rogu, aby zapisać obszar widoczny w oknie lub całą stronę."
+    "message": "Zapisuj przycięte zrzuty w Internecie, aby łatwiej je udostępniać, albo pobierz je na swój komputer. Możesz też kliknąć przycisk „Moje zrzuty”, aby przeglądać wszystkie wykonane zrzuty."
   },
   "tourSkip": {
     "message": "Pomiń"
   },
   "tourNext": {
     "message": "Dalej"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json
@@ -59,42 +59,45 @@
     "message": "Não conseguimos capturar a tela nesta página."
   },
   "unshootablePageErrorDetails": {
     "message": "Esta não é uma página web padrão, por isso não podemos tirar uma captura de tela da mesma."
   },
   "selfScreenshotErrorTitle": {
     "message": "Você não pode tirar uma captura em uma página de capturas de tela do Firefox!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "Sua seleção é muito pequena"
+  },
   "genericErrorTitle": {
     "message": "Uau! Algo correu mal com a capturas de tela do Firefox."
   },
   "genericErrorDetails": {
     "message": "Não temos certeza do que acabou de acontecer. Tentar novamente ou fazer uma captura de uma página diferente?"
   },
   "tourBodyOne": {
     "message": "Capture, salve e compartilhe telas sem sair do Firefox."
   },
   "tourHeaderTwo": {
     "message": "Capture apenas o que você quer"
   },
   "tourBodyTwo": {
     "message": "Clique e arraste para capturar apenas uma parte de uma página. Você também pode passar o mouse para realçar sua seleção."
   },
   "tourHeaderThree": {
-    "message": "Como você quiser"
+    "message": "Capture janelas ou páginas inteiras"
   },
   "tourBodyThree": {
-    "message": "Salve as suas capturas na Web para compartilhar mais facilmente ou baixe-as no seu computador. Você também pode clicar no botão Minhas capturas para encontras todas as capturas que tirou."
+    "message": "Selecione os botões no canto superior direito para capturar a área visível na janela ou capturar uma página inteira."
   },
   "tourHeaderFour": {
-    "message": "Capture janelas ou páginas inteiras"
+    "message": "Como você quiser"
   },
   "tourBodyFour": {
-    "message": "Selecione os botões no canto superior direito para capturar a área visível na janela ou capturar uma página inteira."
+    "message": "Salve as suas capturas na Web para compartilhar mais facilmente ou baixe-as no seu computador. Você também pode clicar no botão Minhas capturas para encontras todas as capturas que tirou."
   },
   "tourSkip": {
     "message": "Pular"
   },
   "tourNext": {
     "message": "Próximo slide"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/pt_PT/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/pt_PT/messages.json
@@ -59,42 +59,45 @@
     "message": "Não conseguimos capturar o ecrã nesta página."
   },
   "unshootablePageErrorDetails": {
     "message": "Esta não é uma página Web padrão, por isso não podemos tirar uma captura de ecrã da mesma."
   },
   "selfScreenshotErrorTitle": {
     "message": "Não pode tirar uma captura de uma página Firefox Screenshots!"
   },
+  "emptySelectionErrorTitle": {
+    "message": "A sua seleção é demasiado pequena"
+  },
   "genericErrorTitle": {
     "message": "Uau! Algo correu mal com o Firefox Screenshots."
   },
   "genericErrorDetails": {
     "message": "Não temos a certeza do que acabou de acontecer. Importa-se de tentar novamente ou tirar uma captura de uma página diferente?"
   },
   "tourBodyOne": {
     "message": "Tire, guarde, e partilhe capturas de ecrã sem sair do Firefox."
   },
   "tourHeaderTwo": {
     "message": "Capture aquilo mesmo que pretende"
   },
   "tourBodyTwo": {
     "message": "Clique e arraste para capturar apenas uma porção de uma página. Pode também pairar para destacar a sua seleção."
   },
   "tourHeaderThree": {
-    "message": "Como gosta"
+    "message": "Capture janelas ou páginas inteiras"
   },
   "tourBodyThree": {
-    "message": "Guarde as suas capturas na Web para partilhar mais facilmente, ou descarregue-as para o seu computador. Pode também clicar no botão Minhas capturas para encontras todas as capturas que tirou."
+    "message": "Selecione os botões no canto superior direito para capturar a área visível na janela ou para capturar uma página inteira."
   },
   "tourHeaderFour": {
-    "message": "Capture janelas ou páginas inteiras"
+    "message": "Como gosta"
   },
   "tourBodyFour": {
-    "message": "Selecione os botões no canto superior direito para capturar a área visível na janela ou para capturar uma página inteira."
+    "message": "Guarde as suas capturas na Web para partilhar mais facilmente, ou descarregue-as para o seu computador. Pode também clicar no botão Minhas capturas para encontras todas as capturas que tirou."
   },
   "tourSkip": {
     "message": "SALTAR"
   },
   "tourNext": {
     "message": "Diapositivo seguinte"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/rm/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/rm/messages.json
@@ -75,26 +75,26 @@
   },
   "tourHeaderTwo": {
     "message": "Far maletgs da visur da tut che vi vuls"
   },
   "tourBodyTwo": {
     "message": "Clicca e tira per far in maletg da be ina part da la pagina. Ti pos posiziunar la mieur sur la selecziun per la relevar."
   },
   "tourHeaderThree": {
-    "message": "Co che ti prefereschas"
+    "message": "Far maletgs da fanestras u paginas cumplettas"
   },
   "tourBodyThree": {
-    "message": "Memorisescha ils maletgs da visur en il web per als pudair cundivider u telechargiar sin tes computer. Ti pos era cliccar sin il buttun «Mes maletgs da visur» per vesair tut ils maletgs dal visur che ti has fatg."
+    "message": "Tscherna il buttun sura dretg per far in maletg da la part visibla en la fanestra u per far in maletg da la pagina cumpletta."
   },
   "tourHeaderFour": {
-    "message": "Far maletgs da fanestras u paginas cumplettas"
+    "message": "Co che ti prefereschas"
   },
   "tourBodyFour": {
-    "message": "Tscherna il buttun sura dretg per far in maletg da la part visibla en la fanestra u per far in maletg da la pagina cumpletta."
+    "message": "Memorisescha ils maletgs da visur en il web per als pudair cundivider u telechargiar sin tes computer. Ti pos era cliccar sin il buttun «Mes maletgs da visur» per vesair tut ils maletgs dal visur che ti has fatg."
   },
   "tourSkip": {
     "message": "Sursiglir"
   },
   "tourNext": {
     "message": "Proxim pass"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/ru/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ru/messages.json
@@ -59,42 +59,45 @@
     "message": "Мы не можем сделать скриншот этой страницы."
   },
   "unshootablePageErrorDetails": {
     "message": "Так как это не обычная веб-страница, мы не сможем сделать её скриншот."
   },
   "selfScreenshotErrorTitle": {
     "message": "Вы не можете сделать скриншот страницы Скриншотов Firefox."
   },
+  "emptySelectionErrorTitle": {
+    "message": "Выбрана слишком небольшая область"
+  },
   "genericErrorTitle": {
     "message": "Ого! Скриншоты Firefox вышли из строя."
   },
   "genericErrorDetails": {
     "message": "Мы не уверены, в чём проблема. Попробуете ещё раз или сделаете снимок другой страницы?"
   },
   "tourBodyOne": {
     "message": "Делайте, сохраняйте и делитесь скриншотами прямо в Firefox."
   },
   "tourHeaderTwo": {
     "message": "Делайте снимки чего угодно"
   },
   "tourBodyTwo": {
     "message": "Щелкните и потяните мышью для захвата части страницы. Вы также можете навести курсор мыши для подсветки выбранной области."
   },
   "tourHeaderThree": {
-    "message": "Как вам нравится"
+    "message": "Захватывайте окна или целые страницы"
   },
   "tourBodyThree": {
-    "message": "Сохраняйте свои снимки в Интернете, чтобы легко ими делиться, или загружайте их на свой компьютер. Вы также можете просмотреть все сохранённые снимки, нажав на кнопку Мои снимки."
+    "message": "С помощью кнопок в верхнем правом углу выбирайте захват видимой области окна или страницы целиком."
   },
   "tourHeaderFour": {
-    "message": "Захватывайте окна или целые страницы"
+    "message": "Как вам нравится"
   },
   "tourBodyFour": {
-    "message": "С помощью кнопок в верхнем правом углу выбирайте захват видимой области окна или страницы целиком."
+    "message": "Сохраняйте свои снимки в Интернете, чтобы легко ими делиться, или загружайте их на свой компьютер. Вы также можете просмотреть все сохранённые снимки, нажав на кнопку Мои снимки."
   },
   "tourSkip": {
     "message": "Пропустить"
   },
   "tourNext": {
     "message": "Следующий слайд"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/sk/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sk/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Zachyťte to, čo chcete"
   },
   "tourBodyTwo": {
     "message": "Ak chcete zachytiť časť stránky, urobíte to kliknutím a potiahnutím. Váš výber zvýrazníte tak, že sa naň presuniete myšou."
   },
   "tourHeaderThree": {
-    "message": "Tak ako to chcete"
+    "message": "Zachyťte okná alebo celé webové stránky"
   },
   "tourBodyThree": {
-    "message": "Uložte si orezanú snímku na web, aby ste ju mohli ľahšie zdieľať alebo si ju prevziať do počítača. Môžete si taktiež pozrieť všetky vaše snímky, stačí ak kliknete na tlačidlo Moje snímky."
+    "message": "Kliknutím na tlačidlo v pravom hornom rohu môžete zachytiť viditeľnú časť stránky. Pomocou ďalšieho tlačidla zachytíte celú stránku."
   },
   "tourHeaderFour": {
-    "message": "Zachyťte okná alebo celé webové stránky"
+    "message": "Tak ako to chcete"
   },
   "tourBodyFour": {
-    "message": "Kliknutím na tlačidlo v pravom hornom rohu môžete zachytiť viditeľnú časť stránky. Pomocou ďalšieho tlačidla zachytíte celú stránku."
+    "message": "Uložte si orezanú snímku na web, aby ste ju mohli ľahšie zdieľať alebo si ju prevziať do počítača. Môžete si taktiež pozrieť všetky vaše snímky, stačí ak kliknete na tlačidlo Moje snímky."
   },
   "tourSkip": {
     "message": "Preskočiť"
   },
   "tourNext": {
     "message": "Ďalšia snímka"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/sl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sl/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Zajemite to, kar hočete"
   },
   "tourBodyTwo": {
     "message": "Kliknite in povlecite, če želite zajeti samo del strani. Svojo izbiro lahko tudi poudarite, tako da preko nje povlečete miškin kazalec."
   },
   "tourHeaderThree": {
-    "message": "Kot vi želite"
+    "message": "Zajemite okna ali celotne strani"
   },
   "tourBodyThree": {
-    "message": "Shranite obrezane posnetke na splet za lažje deljenje ali jih prenesite na svoj računalnik. Vse zajete posnetke lahko najdete s klikom na gumb My Shots."
+    "message": "V zgornjem desnem kotu izberite gumb za zajem vidnega območja v oknu ali celotne strani."
   },
   "tourHeaderFour": {
-    "message": "Zajemite okna ali celotne strani"
+    "message": "Kot vi želite"
   },
   "tourBodyFour": {
-    "message": "V zgornjem desnem kotu izberite gumb za zajem vidnega območja v oknu ali celotne strani."
+    "message": "Shranite obrezane posnetke na splet za lažje deljenje ali jih prenesite na svoj računalnik. Vse zajete posnetke lahko najdete s klikom na gumb My Shots."
   },
   "tourSkip": {
     "message": "Preskoči"
   },
   "tourNext": {
     "message": "Naslednji diapozitiv"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/sq/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sq/messages.json
@@ -57,20 +57,20 @@
   },
   "unshootablePageErrorTitle": {
     "message": "S’bëjmë dot foto të kësaj faqeje."
   },
   "tourHeaderTwo": {
     "message": "Fiksoni Në Foto Aq Sa Doni"
   },
   "tourHeaderThree": {
-    "message": "Si T’ju Pëlqejë"
+    "message": "Fiksoni Dritare ose Krejt Faqet"
   },
   "tourHeaderFour": {
-    "message": "Fiksoni Dritare ose Krejt Faqet"
+    "message": "Si T’ju Pëlqejë"
   },
   "tourDone": {
     "message": "U bë"
   },
   "termsAndPrivacyNoticeTermsLink": {
     "message": "Kushte"
   },
   "termsAndPrivacyNoticyPrivacyLink": {
--- a/browser/extensions/screenshots/webextension/_locales/sr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sr/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Усликајте баш оно што желите"
   },
   "tourBodyTwo": {
     "message": "Кликните и превуците да усликате само део странице. Такође можете означити вашу селекцију."
   },
   "tourHeaderThree": {
-    "message": "Као што волите"
+    "message": "Усликајте прозоре или целе странице"
   },
   "tourBodyThree": {
-    "message": "Сачувајте ваш исечени снимак на веб ради лакшег дељења или преузимања на ваш рачунар. Такође можете кликнути на дугме \"Моји снимци\" да пронађете све ваше снимке."
+    "message": "Изаберите дугмад у горњем десном углу да усликате видљиве делове прозора или да усликате целу страницу."
   },
   "tourHeaderFour": {
-    "message": "Усликајте прозоре или целе странице"
+    "message": "Као што волите"
   },
   "tourBodyFour": {
-    "message": "Изаберите дугмад у горњем десном углу да усликате видљиве делове прозора или да усликате целу страницу."
+    "message": "Сачувајте ваш исечени снимак на веб ради лакшег дељења или преузимања на ваш рачунар. Такође можете кликнути на дугме \"Моји снимци\" да пронађете све ваше снимке."
   },
   "tourSkip": {
     "message": "Прескочи"
   },
   "tourNext": {
     "message": "Следећи слајд"
   },
   "tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json
@@ -78,26 +78,26 @@
   },
   "tourHeaderTwo": {
     "message": "Fånga precis vad du vill"
   },
   "tourBodyTwo": {
     "message": "Klicka och dra för att fånga bara en del av en sida. Du kan också hovra för att markera ditt val."
   },
   "tourHeaderThree": {
-    "message": "Som du vill ha det"
+    "message": "Fånga fönster eller hela sidor"
   },
   "tourBodyThree": {
-    "message": "Spara dina beskurna bilder till webben för enklare delning, eller hämta dem till datorn. Du kan också klicka på knappen Mina skärmbilder för att hitta alla bilder du tagit."
+    "message": "Välj knapparna i det övre högra hörnet för att fånga det synliga området i fönstret eller för att fånga en hel sida."
   },
   "tourHeaderFour": {
-    "message": "Fånga fönster eller hela sidor"
+    "message": "Som du vill ha det"
   },
   "tourBodyFour": {
-    "message": "Välj knapparna i det övre högra hörnet för att fånga det synliga området i fönstret eller för att fånga en hel sida."
+    "message": "Spara dina beskurna bilder till webben för enklare delning, eller hämta dem till datorn. Du kan också klicka på knappen Mina skärmbilder för att hitta alla bilder du tagit."
   },
   "tourSkip": {
     "message": "Hoppa över"
   },
   "tourNext": {
     "message": "Nästa sida"
   },
   "tourPrevious": {
new file mode 100644
--- /dev/null
+++ b/browser/extensions/screenshots/webextension/_locales/ta/messages.json
@@ -0,0 +1,126 @@
+{
+  "addonDescription": {
+    "message": "வலைபக்கங்களை நிரந்தரமாக (அ) தற்காலிகமாக துணுக்குகளாக (அ) திரைப்பிடிப்புகளாக சேமியுங்கள்."
+  },
+  "addonAuthorsList": {
+    "message": "மொசில்லா <screenshots-feedback@mozilla.com>"
+  },
+  "contextMenuLabel": {
+    "message": "ஒரு திரைப்பிடிப்பு செய்"
+  },
+  "myShotsLink": {
+    "message": "எனது திரைகள்"
+  },
+  "screenshotInstructions": {
+    "message": "பக்கத்தில் இழுத்தோ (அ) சொடுக்கியோ ஒரு பகுதியைத் தேர்வுச்செய்க. இரத்து செய்ய ESC விசையை அழுத்தவும்."
+  },
+  "saveScreenshotSelectedArea": {
+    "message": "சேமி"
+  },
+  "saveScreenshotVisibleArea": {
+    "message": "பார்ப்பதைச் சேமி"
+  },
+  "saveScreenshotFullPage": {
+    "message": "முழு பக்கத்தைச் சேமி"
+  },
+  "cancelScreenshot": {
+    "message": "இரத்து"
+  },
+  "downloadScreenshot": {
+    "message": "பதிவிறக்கு"
+  },
+  "notificationLinkCopiedTitle": {
+    "message": "தொடுப்பு நகலெடுக்கப்பட்டது"
+  },
+  "notificationLinkCopiedDetails": {
+    "message": "நீங்கள் எடுத்த திரைப்பிடிப்பிற்கான தொடுப்பு ஒட்டுபலகைக்கு நகலெடுக்கப்பட்டது. ஒட்ட $META_KEY$ விசையை அழுத்தவும்.",
+    "placeholders": {
+      "meta_key": {
+        "content": "$1"
+      }
+    }
+  },
+  "requestErrorTitle": {
+    "message": "சேவை இணைப்பில் இல்லை."
+  },
+  "requestErrorDetails": {
+    "message": "மன்னிக்க! உங்களின் திரைப்பிடிப்பைச் சேமிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்."
+  },
+  "connectionErrorTitle": {
+    "message": "உங்களின் திரைப்பிடிப்பு சேவையகத்தை அணுக முடியவில்லை."
+  },
+  "connectionErrorDetails": {
+    "message": "தயவுச்செய்து உங்கள் இணைய இணைப்பைச் சரிபாருங்கள். உங்களால் இணையத்தை அணுக முடிந்தால் இது பயர்பாஃசு திரைப்பிடிப்பிற்கான இடைப்பட்ட சேவை துண்டிப்பாகும்."
+  },
+  "loginErrorDetails": {
+    "message": "பயர்பாஃசின் திரைப்பிடிப்பு சேவை தடைப்பட்டதால் உங்களின் திரைப்பிடிப்பைச் சேமிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்."
+  },
+  "unshootablePageErrorTitle": {
+    "message": "இப்பக்கத்தை திரைப்பிடிப்பு செய்ய முடியாது."
+  },
+  "unshootablePageErrorDetails": {
+    "message": "இது ஒரு இணையத்தளம் போன்று தெரிவில்லை, எனவே உங்களால் திரைப்பிடிப்பு எடுக்க முடியாது."
+  },
+  "selfScreenshotErrorTitle": {
+    "message": "பயர்பாஃசு திரைப்பிடிப்பு பக்கத்தை உங்களால் திரைப்பிடிப்பு செய்ய முடியாது!"
+  },
+  "emptySelectionErrorTitle": {
+    "message": "உங்களின் தேர்வு மிகச் சிறியது"
+  },
+  "genericErrorTitle": {
+    "message": "அய் அய்யோ! பயர்பாஃசு திரைப்பிடிப்பு வீணாய் போனது. "
+  },
+  "genericErrorDetails": {
+    "message": "என்ன நடந்தது என எங்களுக்குத் தெரியவில்லை. முடிந்தால் மீண்டும் முயற்சியுங்கள் (அ) வேறொரு பக்கத்தில் முயற்சியுங்கள்?"
+  },
+  "tourBodyOne": {
+    "message": "பயர்பாஃசை விட்டு வெளியேறாமல் திரைப்பிடிப்புகளைச் எடுங்க, சேமிங்க மற்றவருடன் பகிர்ந்துக்கொள்க."
+  },
+  "tourHeaderTwo": {
+    "message": "உங்களுக்கு என்ன வேண்டுமோ அதைக் கைப்பற்றுங்கள்"
+  },
+  "tourBodyTwo": {
+    "message": "சொடுக்கி இழுத்து சும்மா ஒரு பகுதியைத் தேர்வுச்செய்க. நீங்கள் இங்கும் அங்குமாக நகர்த்திக் கூட நீங்கள் தேர்வுச்செய்த பக்கத்தை மிளிர்க்கச் செய்யலாம்."
+  },
+  "tourHeaderThree": {
+    "message": "சாளரங்களை (அ) முழுப் பக்கங்களை கைப்பற்றவும்"
+  },
+  "tourBodyThree": {
+    "message": "வலது மேல்முனையில் உள்ள கத்திரிகோல் போன்ற பயன்படுத்தி பார்வையில் இருக்கும் வலைப்பக்கத்தையோ (அ) முழு பக்கத்தையோ திரைப்பிடிப்புச் செய்யுங்கள்."
+  },
+  "tourHeaderFour": {
+    "message": "நீங்கள் விரும்பியவாறே"
+  },
+  "tourBodyFour": {
+    "message": "நீங்கள் எடுத்த வெட்டிய திரைப்பிடிப்புகளை இணையத்தில் எளிதில் சேமித்து பகிரவோ (அ) கணினியில் பதிவிறக்கவோ முடியும். 'எனது பிடிப்புகள்' மீது சொடுக்கி உங்களின் திரைப்பிடிப்புகளைக் காணலாம்."
+  },
+  "tourSkip": {
+    "message": "தாவு"
+  },
+  "tourNext": {
+    "message": "அடுத்த வில்லை"
+  },
+  "tourPrevious": {
+    "message": "முந்தைய வில்லை"
+  },
+  "tourDone": {
+    "message": "முடிந்தது"
+  },
+  "termsAndPrivacyNoticeCloudServices": {
+    "message": "பயர்பாஃசு திரைப்பிடிப்பைப் பயன்படுத்துவதன் மூலம் எங்களின் முகில் கணிமச் சேவைகளுக்கான பின்வரும் $TERMSANDPRIVACYNOTICETERMSLINK$ $TERMSANDPRIVACYNOTICEPRIVACYLINK$ நிபந்தனைகளை ஏற்றுக் கொள்கிறீர்கள்.",
+    "placeholders": {
+      "termsandprivacynoticetermslink": {
+        "content": "$1"
+      },
+      "termsandprivacynoticeprivacylink": {