Merge m-c to m-i
authorPhil Ringnalda <philringnalda@gmail.com>
Sat, 05 Nov 2016 14:13:18 -0700
changeset 351367 829525ed6a8d66b3f5e731c886fe68fdee093570
parent 351366 7d9c26e68aa9c4cd880872969affc2121aea3a57 (current diff)
parent 351350 c44c01dfd264370c1558b747525d220a9a89b51c (diff)
child 351368 e80ad115dbb882562a6ad3f066d6b41a00232357
push id6795
push userjlund@mozilla.com
push dateMon, 23 Jan 2017 14:19:46 +0000
treeherdermozilla-esr52@76101b503191 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone52.0a1
Merge m-c to m-i MozReview-Commit-ID: 4eFH8589fbx
dom/apps/tests/chrome.ini
dom/apps/tests/test_apps_service.xul
dom/apps/tests/test_manifest_helper.xul
dom/devicestorage/test/test_storageAreaListener.html
dom/media/test/test_mediarecorder_mp4_support.html
dom/network/tests/test_networkstats_alarms.html
dom/network/tests/test_networkstats_basics.html
dom/network/tests/test_networkstats_disabled.html
dom/network/tests/test_networkstats_enabled_no_perm.html
dom/network/tests/test_networkstats_enabled_perm.html
dom/phonenumberutils/PhoneNumber.jsm
dom/phonenumberutils/PhoneNumberMetaData.jsm
dom/phonenumberutils/PhoneNumberNormalizer.jsm
dom/phonenumberutils/PhoneNumberService.js
dom/phonenumberutils/PhoneNumberService.manifest
dom/phonenumberutils/PhoneNumberUtils.jsm
dom/phonenumberutils/mcc_iso3166_table.jsm
dom/phonenumberutils/moz.build
dom/phonenumberutils/tests/chrome.ini
dom/phonenumberutils/tests/mochitest.ini
dom/phonenumberutils/tests/test_phonenumber.xul
dom/phonenumberutils/tests/test_phonenumberservice.xul
dom/phonenumberutils/tests/test_phonenumberutils.xul
dom/phonenumberutils/tests/test_phonenumberutils_basics.html
dom/power/test/test_power_set_cpusleepallowed.html
dom/power/test/test_power_set_key_light_enabled.html
dom/power/test/test_power_set_screen_brightness.html
dom/power/test/test_power_set_screen_enabled.html
dom/webidl/PhoneNumberService.webidl
dom/xbl/test/test_bug946815.html
image/test/mochitest/test_image_buffer_limit.html
services/fxaccounts/tests/xpcshell/test_manager.js
toolkit/mozapps/update/tests/unit_aus_update/downloadFileTooBig_gonk.js
--- a/browser/base/content/test/alerts/browser.ini
+++ b/browser/base/content/test/alerts/browser.ini
@@ -5,9 +5,8 @@ support-files =
 
 [browser_notification_close.js]
 [browser_notification_do_not_disturb.js]
 [browser_notification_open_settings.js]
 [browser_notification_remove_permission.js]
 [browser_notification_permission_migration.js]
 [browser_notification_replace.js]
 [browser_notification_tab_switching.js]
-skip-if = buildapp == 'mulet'
--- a/browser/base/content/test/chrome/chrome.ini
+++ b/browser/base/content/test/chrome/chrome.ini
@@ -1,4 +1,3 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 
 [test_aboutCrashed.xul]
--- a/browser/base/content/test/general/browser.ini
+++ b/browser/base/content/test/general/browser.ini
@@ -150,17 +150,17 @@ skip-if = os == "linux" # Bug 924307
 tags = audiochannel
 [browser_backButtonFitts.js]
 skip-if = os == "mac" # The Fitt's Law back button is not supported on OS X
 [browser_beforeunload_duplicate_dialogs.js]
 [browser_blob-channelname.js]
 [browser_bookmark_popup.js]
 skip-if = (os == "linux" && debug) # mouseover not reliable on linux debug builds
 [browser_bookmark_titles.js]
-skip-if = buildapp == 'mulet' || toolkit == "windows" # Disabled on Windows due to frequent failures (bugs 825739, 841341)
+skip-if = toolkit == "windows" # Disabled on Windows due to frequent failures (bugs 825739, 841341)
 [browser_bug321000.js]
 subsuite = clipboard
 skip-if = true # browser_bug321000.js is disabled because newline handling is shaky (bug 592528)
 [browser_bug356571.js]
 [browser_bug380960.js]
 [browser_bug386835.js]
 [browser_bug406216.js]
 [browser_bug408415.js]
@@ -174,45 +174,40 @@ skip-if = true # browser_bug321000.js is
 [browser_bug423833.js]
 skip-if = true # bug 428712
 [browser_bug424101.js]
 [browser_bug427559.js]
 [browser_bug431826.js]
 [browser_bug432599.js]
 [browser_bug435035.js]
 [browser_bug435325.js]
-skip-if = buildapp == 'mulet'
 [browser_bug441778.js]
-skip-if = buildapp == 'mulet'
 [browser_bug455852.js]
 [browser_bug460146.js]
 [browser_bug462289.js]
 skip-if = toolkit == "cocoa"
 [browser_bug462673.js]
 [browser_bug477014.js]
 [browser_bug479408.js]
-skip-if = buildapp == 'mulet'
 [browser_bug481560.js]
 [browser_bug484315.js]
 [browser_bug491431.js]
-skip-if = buildapp == 'mulet'
 [browser_bug495058.js]
 [browser_bug517902.js]
 skip-if = (os == 'linux' && e10s) # bug 1161699
 [browser_bug519216.js]
 [browser_bug520538.js]
 [browser_bug521216.js]
 [browser_bug533232.js]
 [browser_bug537013.js]
 subsuite = clipboard
-skip-if = buildapp == 'mulet' || e10s # Bug 1134458 - Find bar doesn't work correctly in a detached tab
+skip-if = e10s # Bug 1134458 - Find bar doesn't work correctly in a detached tab
 [browser_bug537474.js]
 [browser_bug550565.js]
 [browser_bug553455.js]
-skip-if = buildapp == 'mulet' # Bug 1066070 - I don't think either popup notifications nor addon install stuff works on mulet?
 [browser_bug555224.js]
 [browser_bug555767.js]
 [browser_bug559991.js]
 [browser_bug561636.js]
 skip-if = true # bug 1057615
 [browser_bug563588.js]
 [browser_bug565575.js]
 [browser_bug567306.js]
@@ -241,21 +236,20 @@ skip-if = toolkit != "cocoa" # Because o
 skip-if = true # bug 1057615
 [browser_bug596687.js]
 [browser_bug597218.js]
 [browser_bug609700.js]
 [browser_bug623893.js]
 [browser_bug624734.js]
 [browser_bug633691.js]
 [browser_bug647886.js]
-skip-if = buildapp == 'mulet'
 [browser_bug655584.js]
 [browser_bug664672.js]
 [browser_bug676619.js]
-skip-if = buildapp == 'mulet' || os == "mac" # mac: Intermittent failures, bug 925225
+skip-if = os == "mac" # mac: Intermittent failures, bug 925225
 [browser_bug678392.js]
 skip-if = os == "mac" # Bug 1102331 - does focus things on the content window which break in e10s mode (still causes orange on Mac 10.10)
 [browser_bug710878.js]
 [browser_bug719271.js]
 [browser_bug724239.js]
 [browser_bug734076.js]
 [browser_bug735471.js]
 [browser_bug749738.js]
@@ -266,17 +260,16 @@ skip-if = os == "mac" # Bug 1102331 - do
 tags = mcb
 [browser_bug832435.js]
 [browser_bug839103.js]
 [browser_bug882977.js]
 [browser_bug902156.js]
 tags = mcb
 [browser_bug906190.js]
 tags = mcb
-skip-if = buildapp == "mulet" # Bug 1093642 - test manipulates content and relies on content focus
 [browser_mixedContentFromOnunload.js]
 tags = mcb
 [browser_mixedContentFramesOnHttp.js]
 tags = mcb
 [browser_bug970746.js]
 [browser_bug1015721.js]
 skip-if = os == 'win'
 [browser_bug1064280_changeUrlInPinnedTab.js]
@@ -307,28 +300,27 @@ skip-if = os == "mac" # decoder doctor i
 [browser_drag.js]
 skip-if = true # browser_drag.js is disabled, as it needs to be updated for the new behavior from bug 320638.
 [browser_favicon_change.js]
 [browser_favicon_change_not_in_document.js]
 [browser_findbarClose.js]
 [browser_focusonkeydown.js]
 [browser_fullscreen-window-open.js]
 tags = fullscreen
-skip-if = buildapp == 'mulet' || os == "linux" # Linux: Intermittent failures - bug 941575.
+skip-if = os == "linux" # Linux: Intermittent failures - bug 941575.
 [browser_fxaccounts.js]
 support-files = fxa_profile_handler.sjs
 [browser_fxa_migrate.js]
 [browser_fxa_oauth.js]
 [browser_fxa_web_channel.js]
 [browser_gestureSupport.js]
 skip-if = e10s # Bug 863514 - no gesture support.
 [browser_getshortcutoruri.js]
 [browser_hide_removing.js]
 [browser_homeDrop.js]
-skip-if = buildapp == 'mulet'
 [browser_identity_UI.js]
 [browser_insecureLoginForms.js]
 [browser_invalid_uri_back_forward_manipulation.js]
 [browser_keywordBookmarklets.js]
 [browser_keywordSearch.js]
 [browser_keywordSearch_postData.js]
 [browser_lastAccessedTab.js]
 skip-if = toolkit == "windows" # Disabled on Windows due to frequent failures (bug 969405)
@@ -338,98 +330,81 @@ skip-if = os != "win" # The Fitts Law me
 subsuite = clipboard
 [browser_minimize.js]
 [browser_misused_characters_in_strings.js]
 [browser_mixed_content_cert_override.js]
 [browser_mixedcontent_securityflags.js]
 tags = mcb
 [browser_modifiedclick_inherit_principal.js]
 [browser_offlineQuotaNotification.js]
-skip-if = buildapp == 'mulet'
 [browser_feed_discovery.js]
 support-files = feed_discovery.html
 [browser_gZipOfflineChild.js]
-skip-if = buildapp == 'mulet' # Bug 1066070 - I don't think either popup notifications nor addon install stuff works?
 support-files = test_offline_gzip.html gZipOfflineChild.cacheManifest gZipOfflineChild.cacheManifest^headers^ gZipOfflineChild.html gZipOfflineChild.html^headers^
 [browser_overflowScroll.js]
 [browser_pageInfo.js]
-skip-if = buildapp == 'mulet'
 [browser_page_style_menu.js]
 [browser_page_style_menu_update.js]
 [browser_parsable_css.js]
 skip-if = debug # no point in running on both opt and debug, and will likely intermittently timeout on debug
 [browser_parsable_script.js]
 skip-if = asan || (os == 'linux' && !debug && (bits == 32)) # disabled on asan because of timeouts, and bug 1172468 for the linux 32-bit pgo issue.
 [browser_permissions.js]
 support-files =
   permissions.html
 [browser_pinnedTabs.js]
 [browser_plainTextLinks.js]
 [browser_popupUI.js]
-skip-if = buildapp == 'mulet'
 [browser_popup_blocker.js]
 skip-if = (os == 'linux') || (e10s && debug) # Frequent bug 1081925 and bug 1125520 failures
 [browser_printpreview.js]
-skip-if = buildapp == 'mulet'
 [browser_private_browsing_window.js]
-skip-if = buildapp == 'mulet'
 [browser_private_no_prompt.js]
-skip-if = buildapp == 'mulet'
 [browser_purgehistory_clears_sh.js]
 [browser_PageMetaData_pushstate.js]
 [browser_refreshBlocker.js]
 support-files =
   refresh_header.sjs
   refresh_meta.sjs
 [browser_relatedTabs.js]
 [browser_remoteTroubleshoot.js]
 support-files =
   test_remoteTroubleshoot.html
 [browser_remoteWebNavigation_postdata.js]
 [browser_removeTabsToTheEnd.js]
 [browser_restore_isAppTab.js]
 [browser_sanitize-passwordDisabledHosts.js]
 [browser_sanitize-sitepermissions.js]
 [browser_sanitize-timespans.js]
-skip-if = buildapp == 'mulet'
 [browser_sanitizeDialog.js]
-skip-if = buildapp == 'mulet'
 [browser_save_link-perwindowpb.js]
-skip-if = buildapp == 'mulet' || (e10s && debug && os == "win") # Bug 1280505
+skip-if = e10s && debug && os == "win" # Bug 1280505
 [browser_save_private_link_perwindowpb.js]
-skip-if = buildapp == 'mulet'
 [browser_save_link_when_window_navigates.js]
-skip-if = buildapp == 'mulet'
 [browser_save_video.js]
-skip-if = buildapp == 'mulet'
 [browser_save_video_frame.js]
 [browser_scope.js]
 [browser_contentSearchUI.js]
 support-files =
   contentSearchUI.html
   contentSearchUI.js
 [browser_selectpopup.js]
 run-if = e10s
 [browser_selectTabAtIndex.js]
 [browser_ssl_error_reports.js]
 [browser_star_hsts.js]
 [browser_subframe_favicons_not_used.js]
 [browser_syncui.js]
 [browser_tab_close_dependent_window.js]
 [browser_tabDrop.js]
-skip-if = buildapp == 'mulet'
 [browser_tabReorder.js]
-skip-if = buildapp == 'mulet'
 [browser_tab_detach_restore.js]
 [browser_tab_drag_drop_perwindow.js]
-skip-if = buildapp == 'mulet'
 [browser_tab_dragdrop.js]
-skip-if = buildapp == 'mulet'
 [browser_tab_dragdrop2.js]
-skip-if = buildapp == 'mulet'
 [browser_tabbar_big_widgets.js]
 skip-if = os == "linux" || os == "mac" # No tabs in titlebar on linux
                                        # Disabled on OS X because of bug 967917
 [browser_tabfocus.js]
 [browser_tabkeynavigation.js]
 skip-if = (os == "mac" && !e10s) # Bug 1237713 - OSX eats keypresses for some reason
 [browser_tabopen_reflows.js]
 [browser_tabs_close_beforeunload.js]
@@ -467,32 +442,30 @@ support-files =
   file_trackingUI_6.html
   file_trackingUI_6.js
   file_trackingUI_6.js^headers^
 [browser_trackingUI_telemetry.js]
 tags = trackingprotection
 support-files =
   trackingPage.html
 [browser_typeAheadFind.js]
-skip-if = buildapp == 'mulet'
 [browser_unknownContentType_title.js]
 [browser_unloaddialogs.js]
 [browser_utilityOverlay.js]
 [browser_viewSourceInTabOnViewSource.js]
 [browser_visibleFindSelection.js]
 [browser_visibleTabs.js]
 [browser_visibleTabs_bookmarkAllPages.js]
 skip-if = true # Bug 1005420 - fails intermittently. also with e10s enabled: bizarre problem with hidden tab having _mouseenter called, via _setPositionalAttributes, and tab not being found resulting in 'candidate is undefined'
 [browser_visibleTabs_bookmarkAllTabs.js]
 [browser_visibleTabs_contextMenu.js]
 [browser_visibleTabs_tabPreview.js]
 skip-if = (os == "win" && !debug)
 [browser_web_channel.js]
 [browser_windowopen_reflows.js]
-skip-if = buildapp == 'mulet'
 [browser_zbug569342.js]
 skip-if = e10s || debug # Bug 1094240 - has findbar-related failures
 [browser_registerProtocolHandler_notification.js]
 [browser_no_mcb_on_http_site.js]
 tags = mcb
 [browser_addCertException.js]
 [browser_bug1045809.js]
 tags = mcb
--- a/browser/base/content/test/general/mochitest.ini
+++ b/browser/base/content/test/general/mochitest.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files =
   audio.ogg
   bug364677-data.xml
   bug364677-data.xml^headers^
   bug395533-data.txt
   contextmenu_common.js
   ctxmenu-image.png
   head_plain.js
@@ -20,9 +19,9 @@ support-files =
   offlineEvent.html
   subtst_contextmenu.html
   video.ogg
   !/image/test/mochitest/blue.png
 
 [test_bug364677.html]
 [test_bug395533.html]
 [test_offlineNotification.html]
-skip-if = buildapp == 'mulet' || e10s # Mulet: Bug 1066070; e10s: Bug 1257785
+skip-if = e10s # Bug 1257785
--- a/browser/base/content/test/newtab/browser.ini
+++ b/browser/base/content/test/newtab/browser.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = (buildapp == 'mulet') || (os == 'linux') # Bug 1243103, Bug 1243398, etc.
+skip-if = (os == 'linux') # Bug 1243103, Bug 1243398, etc.
 support-files =
   head.js
 
 [browser_newtab_1188015.js]
 [browser_newtab_background_captures.js]
 [browser_newtab_block.js]
 [browser_newtab_bug721442.js]
 [browser_newtab_bug722273.js]
--- a/browser/base/content/test/plugins/browser.ini
+++ b/browser/base/content/test/plugins/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == "mulet"
 support-files =
   blocklist_proxy.js
   blockNoPlugins.xml
   blockPluginHard.xml
   blockPluginInfoURL.xml
   blockPluginVulnerableNoUpdate.xml
   blockPluginVulnerableUpdatable.xml
   browser_clearplugindata.html
--- a/browser/base/content/test/social/browser.ini
+++ b/browser/base/content/test/social/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == "mulet"
 support-files =
   blocklist.xml
   head.js
   opengraph/og_invalid_url.html
   opengraph/opengraph.html
   opengraph/shortlink_linkrel.html
   opengraph/shorturl_link.html
   opengraph/shorturl_linkrel.html
--- a/browser/base/content/test/webrtc/browser.ini
+++ b/browser/base/content/test/webrtc/browser.ini
@@ -1,12 +1,12 @@
 [DEFAULT]
 support-files =
   get_user_media.html
   get_user_media_content_script.js
   head.js
 
 [browser_devices_get_user_media.js]
-skip-if = buildapp == 'mulet' || (os == "linux" && debug) # linux: bug 976544
+skip-if = (os == "linux" && debug) # linux: bug 976544
 [browser_devices_get_user_media_anim.js]
 [browser_devices_get_user_media_in_frame.js]
 [browser_devices_get_user_media_tear_off_tab.js]
 skip-if = e10s # Bug 1315042
--- a/browser/components/contextualidentity/test/browser/browser.ini
+++ b/browser/components/contextualidentity/test/browser/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == "mulet"
 support-files =
   empty_file.html
   file_reflect_cookie_into_title.html
   favicon-normal32.png
   file_set_storages.html
   serviceworker.html
   worker.js
 
--- a/browser/components/customizableui/test/browser.ini
+++ b/browser/components/customizableui/test/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == "mulet"
 support-files =
   head.js
   support/test_967000_charEncoding_page.html
   support/feeds_test_page.html
   support/test-feed.xml
 
 [browser_873501_handle_specials.js]
 [browser_876926_customize_mode_wrapping.js]
--- a/browser/components/downloads/test/browser/browser.ini
+++ b/browser/components/downloads/test/browser/browser.ini
@@ -1,13 +1,12 @@
 [DEFAULT]
 support-files = head.js
 
 [browser_basic_functionality.js]
-skip-if = buildapp == "mulet"
 [browser_first_download_panel.js]
 skip-if = os == "linux" # Bug 949434
 [browser_overflow_anchor.js]
 skip-if = os == "linux" # Bug 952422
 [browser_confirm_unblock_download.js]
 [browser_iframe_gone_mid_download.js]
 [browser_indicatorDrop.js]
 [browser_libraryDrop.js]
--- a/browser/components/downloads/test/unit/xpcshell.ini
+++ b/browser/components/downloads/test/unit/xpcshell.ini
@@ -1,7 +1,7 @@
 [DEFAULT]
 head = head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_DownloadsCommon.js]
--- a/browser/components/feeds/test/chrome/chrome.ini
+++ b/browser/components/feeds/test/chrome/chrome.ini
@@ -1,12 +1,10 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files = sample_feed.atom
   !/browser/components/feeds/test/bug408328-data.xml
   !/browser/components/feeds/test/valid-feed.xml
   !/browser/components/feeds/test/valid-unsniffable-feed.xml
 
 [test_423060.xul]
 [test_bug368464.html]
 [test_bug408328.html]
-skip-if= buildapp == 'mulet'
 [test_maxSniffing.html]
--- a/browser/components/feeds/test/mochitest.ini
+++ b/browser/components/feeds/test/mochitest.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g'
 support-files =
   bug368464-data.xml
   bug408328-data.xml
   bug436801-data.xml
   bug494328-data.xml
   bug589543-data.xml
   valid-feed.xml
   valid-unsniffable-feed.xml
--- a/browser/components/feeds/test/unit/xpcshell.ini
+++ b/browser/components/feeds/test/unit/xpcshell.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 head = head_feeds.js
 tail = 
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_355473.js]
 [test_758990.js]
--- a/browser/components/migration/tests/unit/xpcshell.ini
+++ b/browser/components/migration/tests/unit/xpcshell.ini
@@ -1,13 +1,13 @@
 [DEFAULT]
 head = head_migration.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   Library/**
   AppData/**
 
 [test_automigration.js]
 [test_Chrome_cookies.js]
 skip-if = os != "mac" # Relies on ULibDir
 [test_Chrome_passwords.js]
--- a/browser/components/newtab/tests/xpcshell/xpcshell.ini
+++ b/browser/components/newtab/tests/xpcshell/xpcshell.ini
@@ -1,11 +1,11 @@
 [DEFAULT]
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_AboutNewTabService.js]
 [test_NewTabPrefsProvider.js]
 [test_NewTabSearchProvider.js]
 [test_NewTabURL.js]
 [test_PlacesProvider.js]
--- a/browser/components/originattributes/test/browser/browser.ini
+++ b/browser/components/originattributes/test/browser/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == "mulet"
 tags = usercontextid firstpartyisolation originattributes
 support-files =
   dummy.html
   file_broadcastChannel.html
   file_broadcastChanneliFrame.html
   file_favicon.html
   file_favicon.png
   file_favicon.png^headers^
--- a/browser/components/places/tests/browser/browser.ini
+++ b/browser/components/places/tests/browser/browser.ini
@@ -1,14 +1,13 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 [DEFAULT]
-skip-if = buildapp == "mulet"
 support-files =
   head.js
   framedPage.html
   frameLeft.html
   frameRight.html
   sidebarpanels_click_test_page.html
   keyword_form.html
 
--- a/browser/components/places/tests/chrome/chrome.ini
+++ b/browser/components/places/tests/chrome/chrome.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files = head.js
 
 [test_0_bug510634.xul]
 [test_0_multiple_left_pane.xul]
 [test_bug1163447_selectItems_through_shortcut.xul]
 [test_bug427633_no_newfolder_if_noip.xul]
 [test_bug485100-change-case-loses-tag.xul]
 [test_bug549192.xul]
--- a/browser/components/places/tests/unit/xpcshell.ini
+++ b/browser/components/places/tests/unit/xpcshell.ini
@@ -1,13 +1,13 @@
 [DEFAULT]
 head = head_bookmarks.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   bookmarks.glue.html
   bookmarks.glue.json
   corruptDB.sqlite
   distribution.ini
 
 [test_421483.js]
 [test_browserGlue_bookmarkshtml.js]
--- a/browser/components/preferences/in-content/tests/browser.ini
+++ b/browser/components/preferences/in-content/tests/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == "mulet"
 support-files =
   head.js
   privacypane_tests_perwindow.js
 
 [browser_advanced_update.js]
 [browser_basic_rebuild_fonts_test.js]
 [browser_bug410900.js]
 [browser_bug705422.js]
@@ -35,10 +34,10 @@ skip-if = true || !healthreport # Bug 11
 [browser_sanitizeOnShutdown_prefLocked.js]
 [browser_searchsuggestions.js]
 [browser_security.js]
 [browser_subdialogs.js]
 support-files =
   subdialog.xul
   subdialog2.xul
 [browser_telemetry.js]
-# Skip this test on Android and B2G as FHR and Telemetry are separate systems there.
-skip-if = !healthreport || !telemetry || (os == 'linux' && debug) || (os == 'android') || (os == 'b2g')
+# Skip this test on Android as FHR and Telemetry are separate systems there.
+skip-if = !healthreport || !telemetry || (os == 'linux' && debug) || (os == 'android')
--- a/browser/components/privatebrowsing/test/browser/browser.ini
+++ b/browser/components/privatebrowsing/test/browser/browser.ini
@@ -1,11 +1,10 @@
 [DEFAULT]
 tags = openwindow
-skip-if = buildapp == "mulet"
 support-files =
   browser_privatebrowsing_concurrent_page.html
   browser_privatebrowsing_geoprompt_page.html
   browser_privatebrowsing_localStorage_before_after_page.html
   browser_privatebrowsing_localStorage_before_after_page2.html
   browser_privatebrowsing_localStorage_page1.html
   browser_privatebrowsing_localStorage_page2.html
   browser_privatebrowsing_placesTitleNoUpdate.html
--- a/browser/components/search/test/browser.ini
+++ b/browser/components/search/test/browser.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'mulet'
 support-files =
   426329.xml
   483086-1.xml
   483086-2.xml
   head.js
   opensearch.html
   test.html
   testEngine.xml
--- a/browser/components/sessionstore/test/browser.ini
+++ b/browser/components/sessionstore/test/browser.ini
@@ -83,17 +83,16 @@ skip-if = !e10s || !crashreporter
 [browser_unrestored_crashedTabs.js]
 skip-if = !e10s || !crashreporter
 [browser_revive_crashed_bg_tabs.js]
 skip-if = !e10s || !crashreporter
 [browser_dying_cache.js]
 [browser_dynamic_frames.js]
 [browser_form_restore_events.js]
 [browser_formdata.js]
-skip-if = buildapp == 'mulet'
 [browser_formdata_cc.js]
 [browser_formdata_format.js]
 [browser_formdata_xpath.js]
 [browser_frametree.js]
 [browser_frame_history.js]
 [browser_global_store.js]
 [browser_history_persist.js]
 [browser_label_and_icon.js]
--- a/browser/components/sessionstore/test/unit/xpcshell.ini
+++ b/browser/components/sessionstore/test/unit/xpcshell.ini
@@ -1,13 +1,13 @@
 [DEFAULT]
 head = head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   data/sessionCheckpoints_all.json
   data/sessionstore_invalid.js
   data/sessionstore_valid.js
 
 [test_backup_once.js]
 [test_histogram_corrupt_files.js]
 [test_shutdown_cleanup.js]
--- a/browser/components/shell/test/unit/xpcshell.ini
+++ b/browser/components/shell/test/unit/xpcshell.ini
@@ -1,7 +1,7 @@
 [DEFAULT]
 head = 
 tail = 
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_421977.js]
--- a/browser/components/tests/unit/xpcshell.ini
+++ b/browser/components/tests/unit/xpcshell.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
 head = head.js
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   distribution.ini
   data/engine-de-DE.xml
 
 [test_distribution.js]
 [test_browserGlue_migration_loop_cleanup.js]
--- a/browser/components/translation/test/unit/xpcshell.ini
+++ b/browser/components/translation/test/unit/xpcshell.ini
@@ -1,7 +1,7 @@
 [DEFAULT]
 head = 
 tail = 
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_cld2.js]
--- a/browser/experiments/test/xpcshell/xpcshell.ini
+++ b/browser/experiments/test/xpcshell/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 head = head.js
 tail =
 tags = addons
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   experiments_1.manifest
   experiment-1.xpi
   experiment-1a.xpi
   experiment-2.xpi
   experiment-racybranch.xpi
   !/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
 generated-files =
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -503,18 +503,16 @@
 @RESPATH@/components/AppsService.manifest
 @RESPATH@/components/recording-cmdline.js
 @RESPATH@/components/recording-cmdline.manifest
 @RESPATH@/components/htmlMenuBuilder.js
 @RESPATH@/components/htmlMenuBuilder.manifest
 
 @RESPATH@/components/PermissionSettings.js
 @RESPATH@/components/PermissionSettings.manifest
-@RESPATH@/components/PhoneNumberService.js
-@RESPATH@/components/PhoneNumberService.manifest
 @RESPATH@/components/NotificationStorage.js
 @RESPATH@/components/NotificationStorage.manifest
 @RESPATH@/components/Push.js
 @RESPATH@/components/Push.manifest
 @RESPATH@/components/PushComponents.js
 
 @RESPATH@/components/remotebrowserutils.manifest
 @RESPATH@/components/RemoteWebNavigation.js
--- a/browser/modules/test/unit/social/xpcshell.ini
+++ b/browser/modules/test/unit/social/xpcshell.ini
@@ -1,13 +1,13 @@
 [DEFAULT]
 head = head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files = blocklist.xml
 
 [test_social.js]
 [test_socialDisabledStartup.js]
 [test_SocialService.js]
 [test_SocialServiceMigration21.js]
 [test_SocialServiceMigration22.js]
 [test_SocialServiceMigration29.js]
--- a/browser/modules/test/xpcshell/xpcshell.ini
+++ b/browser/modules/test/xpcshell/xpcshell.ini
@@ -1,11 +1,11 @@
 [DEFAULT]
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_AttributionCode.js]
 skip-if = os != 'win'
 [test_DirectoryLinksProvider.js]
 [test_SitePermissions.js]
 [test_LaterRun.js]
--- a/caps/tests/mochitest/chrome.ini
+++ b/caps/tests/mochitest/chrome.ini
@@ -1,9 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   file_disableScript.html
   !/caps/tests/mochitest/file_disableScript.html
 
 [test_bug995943.xul]
 [test_addonMayLoad.html]
 [test_disableScript.xul]
--- a/caps/tests/mochitest/mochitest.ini
+++ b/caps/tests/mochitest/mochitest.ini
@@ -2,14 +2,12 @@
 support-files =
   file_data.txt
   file_disableScript.html
   !/js/xpconnect/tests/mochitest/file_empty.html
 
 [test_app_principal_equality.html]
 [test_bug246699.html]
 [test_bug292789.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug423375.html]
 [test_bug470804.html]
 [test_disallowInheritPrincipal.html]
 [test_extensionURL.html]
-skip-if = (buildapp == 'b2g') # nonsensical on b2g
--- a/chrome/test/unit/xpcshell.ini
+++ b/chrome/test/unit/xpcshell.ini
@@ -1,12 +1,11 @@
 [DEFAULT]
 head = head_crtestutils.js
 tail =
-skip-if = toolkit == 'gonk'
 support-files = data/**
 
 [test_abi.js]
 [test_bug292789.js]
 [test_bug380398.js]
 [test_bug397073.js]
 [test_bug399707.js]
 [test_bug401153.js]
--- a/chrome/test/unit_ipc/xpcshell.ini
+++ b/chrome/test/unit_ipc/xpcshell.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
 head = 
 tail = 
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   !/chrome/test/unit/data/**
   !/chrome/test/unit/test_resolve_uris.js
   !/chrome/test/unit/head_crtestutils.js
 
 [test_resolve_uris_ipc.js]
--- a/db/sqlite3/src/moz.build
+++ b/db/sqlite3/src/moz.build
@@ -78,15 +78,27 @@ if CONFIG['OS_TARGET'] == 'Android':
 # causes assertions on Win64. See bug 719579.
 if CONFIG['OS_ARCH'] == 'WINNT' and CONFIG['MOZ_MEMORY']:
     DEFINES['HAVE_MALLOC_USABLE_SIZE'] = True
     DEFINES['SQLITE_WITHOUT_MSIZE'] = True
 
 # Omit unused functions to save some library footprint.
 DEFINES['SQLITE_OMIT_DEPRECATED'] = True
 DEFINES['SQLITE_OMIT_BUILTIN_TEST'] = True
+DEFINES['SQLITE_OMIT_DECLTYPE'] = True
+
+# Try to use a MEMORY temp store when possible. That allows for better
+# performance and doesn't suffer from a full separate tmp partition.
+# Exclude 32bit platforms due to address space fragmentation issues.
+# System Sqlite is managed through a PRAGMA instead.
+if CONFIG['OS_TARGET'] == 'Android':
+    # On Android there's no tmp partition, so always use a MEMORY temp store.
+    DEFINES['SQLITE_TEMP_STORE'] = 3
+elif CONFIG['HAVE_64BIT_BUILD']:
+    # On 64bit platforms default to a MEMORY temp store for performance.
+    DEFINES['SQLITE_TEMP_STORE'] = 2
 
 # Suppress warnings in third-party code.
 if CONFIG['GNU_CC']:
     CFLAGS += [
         '-Wno-sign-compare',
         '-Wno-type-limits',
     ]
--- a/db/sqlite3/src/sqlite.symbols
+++ b/db/sqlite3/src/sqlite.symbols
@@ -21,18 +21,16 @@ sqlite3_changes
 sqlite3_clear_bindings
 sqlite3_close
 sqlite3_collation_needed
 sqlite3_collation_needed16
 sqlite3_column_blob
 sqlite3_column_bytes
 sqlite3_column_bytes16
 sqlite3_column_count
-sqlite3_column_decltype
-sqlite3_column_decltype16
 sqlite3_column_double
 sqlite3_column_int
 sqlite3_column_int64
 sqlite3_column_name
 sqlite3_column_name16
 sqlite3_column_text
 sqlite3_column_text16
 sqlite3_column_type
--- a/devtools/client/animationinspector/test/unit/xpcshell.ini
+++ b/devtools/client/animationinspector/test/unit/xpcshell.ini
@@ -1,12 +1,12 @@
 [DEFAULT]
 tags = devtools
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_findOptimalTimeInterval.js]
 [test_formatStopwatchTime.js]
 [test_getCssPropertyName.js]
 [test_timeScale.js]
 [test_timeScale_dimensions.js]
--- a/devtools/client/memory/test/unit/xpcshell.ini
+++ b/devtools/client/memory/test/unit/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 tags = devtools devtools-memory
 head = head.js ../../../framework/test/shared-redux-head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_action_diffing_01.js]
 [test_action_diffing_02.js]
 [test_action_diffing_03.js]
 [test_action_diffing_04.js]
 [test_action_diffing_05.js]
 [test_action-clear-snapshots_01.js]
 [test_action-clear-snapshots_02.js]
--- a/devtools/client/performance/test/unit/xpcshell.ini
+++ b/devtools/client/performance/test/unit/xpcshell.ini
@@ -1,21 +1,21 @@
 [DEFAULT]
 tags = devtools
 head = head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_frame-utils-01.js]
 [test_frame-utils-02.js]
 [test_marker-blueprint.js]
 [test_marker-utils.js]
 [test_profiler-categories.js]
-[test_jit-graph-data.js] 
+[test_jit-graph-data.js]
 [test_jit-model-01.js]
 [test_jit-model-02.js]
 [test_perf-utils-allocations-to-samples.js]
 [test_tree-model-01.js]
 [test_tree-model-02.js]
 [test_tree-model-03.js]
 [test_tree-model-04.js]
 [test_tree-model-05.js]
--- a/devtools/client/shared/redux/middleware/test/xpcshell.ini
+++ b/devtools/client/shared/redux/middleware/test/xpcshell.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
 tags = devtools
 head = head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_middleware-task-01.js]
 [test_middleware-task-02.js]
 [test_middleware-task-03.js]
--- a/devtools/client/shared/test/unit/xpcshell.ini
+++ b/devtools/client/shared/test/unit/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 tags = devtools
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 support-files =
   ../helper_color_data.js
 
 [test_advanceValidate.js]
 [test_attribute-parsing-01.js]
 [test_attribute-parsing-02.js]
 [test_bezierCanvas.js]
--- a/devtools/client/webconsole/net/test/unit/xpcshell.ini
+++ b/devtools/client/webconsole/net/test/unit/xpcshell.ini
@@ -1,9 +1,9 @@
 [DEFAULT]
 tags = devtools
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_json-utils.js]
 [test_net-utils.js]
--- a/devtools/client/webide/test/chrome.ini
+++ b/devtools/client/webide/test/chrome.ini
@@ -1,11 +1,10 @@
 [DEFAULT]
 tags = devtools
-skip-if = buildapp == 'b2g'
 support-files =
   app/index.html
   app/manifest.webapp
   app.zip
   addons/simulators.json
   addons/fxos_1_0_simulator-linux.xpi
   addons/fxos_1_0_simulator-linux64.xpi
   addons/fxos_1_0_simulator-win32.xpi
@@ -42,17 +41,17 @@ support-files =
   head.js
   hosted_app.manifest
   templates.json
   ../../shared/test/browser_devices.json
   validator/*
 
 [test_basic.html]
 [test_newapp.html]
-skip-if = buildapp == 'b2g' || (os == "win" && os_version == "10.0") # Bug 1197053
+skip-if = (os == "win" && os_version == "10.0") # Bug 1197053
 [test_import.html]
 [test_duplicate_import.html]
 [test_runtime.html]
 [test_manifestUpdate.html]
 [test_addons.html]
 skip-if = true # Bug 1201392 - Update add-ons after migration
 [test_device_runtime.html]
 [test_device_permissions.html]
--- a/devtools/server/tests/browser/browser.ini
+++ b/devtools/server/tests/browser/browser.ini
@@ -81,20 +81,17 @@ skip-if = e10s # Bug 1183605 - devtools/
 #[browser_perf-front-profiler-05.js] bug 1077464
 #[browser_perf-front-profiler-06.js]
 [browser_storage_dynamic_windows.js]
 [browser_storage_listings.js]
 [browser_storage_updates.js]
 [browser_stylesheets_getTextEmpty.js]
 [browser_stylesheets_nested-iframes.js]
 [browser_timeline.js]
-skip-if = buildapp == 'mulet'
 [browser_timeline_actors.js]
-skip-if = buildapp == 'mulet'
 [browser_timeline_iframes.js]
-skip-if = buildapp == 'mulet'
 [browser_directorscript_actors_exports.js]
 skip-if = e10s # Bug 1183605 - devtools/server/tests/browser/ tests are still disabled in E10S
 [browser_directorscript_actors_error_events.js]
 skip-if = e10s # Bug 1183605 - devtools/server/tests/browser/ tests are still disabled in E10S
 [browser_directorscript_actors.js]
 skip-if = e10s # Bug 1183605 - devtools/server/tests/browser/ tests are still disabled in E10S
 [browser_register_actor.js]
--- a/devtools/server/tests/mochitest/chrome.ini
+++ b/devtools/server/tests/mochitest/chrome.ini
@@ -1,11 +1,11 @@
 [DEFAULT]
 tags = devtools
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   animation-data.html
   Debugger.Source.prototype.element.js
   Debugger.Source.prototype.element-2.js
   Debugger.Source.prototype.element.html
   director-helpers.js
   hello-actor.js
   inspector_css-properties.html
@@ -21,59 +21,45 @@ support-files =
   memory-helpers.js
   nonchrome_unsafeDereference.html
   small-image.gif
   setup-in-child.js
   setup-in-parent.js
 
 [test_animation_actor-lifetime.html]
 [test_connection-manager.html]
-skip-if = buildapp == 'mulet'
 [test_connectToChild.html]
-skip-if = buildapp == 'mulet'
 [test_css-logic.html]
 [test_css-logic-media-queries.html]
 [test_css-logic-specificity.html]
 [test_css-properties_01.html]
 [test_css-properties_02.html]
 [test_Debugger.Source.prototype.introductionScript.html]
 [test_Debugger.Source.prototype.introductionType.html]
 [test_Debugger.Source.prototype.element.html]
 [test_Debugger.Script.prototype.global.html]
 [test_device.html]
-skip-if = buildapp == 'mulet'
 [test_director.html]
 [test_director_connectToChild.html]
-skip-if = buildapp == 'mulet'
 [test_executeInGlobal-outerized_this.html]
 [test_framerate_01.html]
-skip-if = buildapp == 'mulet'
 [test_framerate_02.html]
-skip-if = buildapp == 'mulet'
 [test_framerate_03.html]
-skip-if = buildapp == 'mulet'
 [test_framerate_04.html]
-skip-if = buildapp == 'mulet'
 [test_framerate_05.html]
-skip-if = buildapp == 'mulet'
 [test_framerate_06.html]
-skip-if = buildapp == 'mulet'
 [test_getProcess.html]
-skip-if = buildapp == 'mulet'
 [test_inspector-anonymous.html]
 [test_inspector-changeattrs.html]
 [test_inspector-changevalue.html]
 [test_inspector-dead-nodes.html]
 [test_inspector-duplicate-node.html]
 [test_inspector_getImageData.html]
-skip-if = buildapp == 'mulet'
 [test_inspector_getImageDataFromURL.html]
-skip-if = buildapp == 'mulet'
 [test_inspector_getImageData-wait-for-load.html]
-skip-if = buildapp == 'mulet'
 [test_inspector_getNodeFromActor.html]
 [test_inspector-hide.html]
 [test_inspector-insert.html]
 [test_inspector-mutations-attr.html]
 [test_inspector-mutations-events.html]
 [test_inspector-mutations-childlist.html]
 [test_inspector-mutations-frameload.html]
 [test_inspector-mutations-value.html]
--- a/devtools/server/tests/unit/xpcshell.ini
+++ b/devtools/server/tests/unit/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 tags = devtools
 head = head_dbg.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 support-files =
   babel_and_browserify_script_with_source_map.js
   source-map-data/sourcemapped.coffee
   source-map-data/sourcemapped.map
   post_init_global_actors.js
   post_init_tab_actors.js
   pre_init_global_actors.js
@@ -102,89 +102,56 @@ support-files =
 [test_protocol_children.js]
 [test_protocol_formtype.js]
 [test_protocol_longstring.js]
 [test_protocol_simple.js]
 [test_protocol_stack.js]
 [test_protocol_unregister.js]
 [test_breakpoint-01.js]
 [test_register_actor.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-02.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-03.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-04.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-05.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-06.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-07.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-08.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-09.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-10.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-11.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-12.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-13.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-14.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-15.js]
 [test_breakpoint-16.js]
 [test_breakpoint-17.js]
 [test_breakpoint-18.js]
 [test_breakpoint-19.js]
 skip-if = true
 reason = bug 1104838
 [test_breakpoint-20.js]
 [test_breakpoint-21.js]
 [test_conditional_breakpoint-01.js]
 [test_conditional_breakpoint-02.js]
 [test_conditional_breakpoint-03.js]
 [test_eventlooplag_actor.js]
-skip-if = toolkit != "gonk"
+skip-if = true
+reason = only ran on B2G
 [test_listsources-01.js]
 [test_listsources-02.js]
 [test_listsources-03.js]
 [test_listsources-04.js]
 [test_new_source-01.js]
 [test_sourcemaps-01.js]
 [test_sourcemaps-02.js]
 [test_sourcemaps-03.js]
 [test_sourcemaps-04.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_sourcemaps-05.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_sourcemaps-06.js]
 [test_sourcemaps-07.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_sourcemaps-08.js]
 [test_sourcemaps-09.js]
 [test_sourcemaps-10.js]
 [test_sourcemaps-11.js]
 [test_sourcemaps-12.js]
 [test_sourcemaps-13.js]
 [test_sourcemaps-16.js]
 [test_sourcemaps-17.js]
@@ -215,27 +182,21 @@ reason = bug 820380
 [test_framebindings-01.js]
 [test_framebindings-02.js]
 [test_framebindings-03.js]
 [test_framebindings-04.js]
 [test_framebindings-05.js]
 [test_framebindings-06.js]
 [test_framebindings-07.js]
 [test_pause_exceptions-01.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_pause_exceptions-02.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_longstringactor.js]
 [test_longstringgrips-01.js]
 [test_longstringgrips-02.js]
 [test_source-01.js]
-skip-if = toolkit == "gonk"
-reason = bug 820380
 [test_breakpoint-actor-map.js]
 [test_profiler_activation-01.js]
 [test_profiler_activation-02.js]
 [test_profiler_close.js]
 [test_profiler_data.js]
 [test_profiler_events-01.js]
 [test_profiler_events-02.js]
 [test_profiler_getbufferinfo.js]
--- a/devtools/shared/acorn/tests/unit/xpcshell.ini
+++ b/devtools/shared/acorn/tests/unit/xpcshell.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
 tags = devtools
 head = head_acorn.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_import_acorn.js]
 [test_same_ast.js]
 [test_lenient_parser.js]
--- a/devtools/shared/discovery/tests/unit/xpcshell.ini
+++ b/devtools/shared/discovery/tests/unit/xpcshell.ini
@@ -1,8 +1,7 @@
 [DEFAULT]
 tags = devtools
 head =
 tail =
 firefox-appdir = browser
 
 [test_discovery.js]
-skip-if = toolkit == 'gonk' # Disabled per Bug 1140913
--- a/devtools/shared/heapsnapshot/tests/mochitest/chrome.ini
+++ b/devtools/shared/heapsnapshot/tests/mochitest/chrome.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 tags = devtools devtools-memory
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
 
 [test_DominatorTree_01.html]
 [test_SaveHeapSnapshot.html]
 
--- a/devtools/shared/heapsnapshot/tests/unit/xpcshell.ini
+++ b/devtools/shared/heapsnapshot/tests/unit/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 tags = devtools heapsnapshot devtools-memory
 head = head_heapsnapshot.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 support-files =
   Census.jsm
   dominator-tree-worker.js
   heap-snapshot-worker.js
   Match.jsm
 
 [test_census_diff_01.js]
--- a/devtools/shared/jsbeautify/tests/unit/xpcshell.ini
+++ b/devtools/shared/jsbeautify/tests/unit/xpcshell.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 tags = devtools
 head = head_jsbeautify.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test.js]
--- a/devtools/shared/performance/test/xpcshell.ini
+++ b/devtools/shared/performance/test/xpcshell.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 tags = devtools
 head = head.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_perf-utils-allocations-to-samples.js]
--- a/devtools/shared/pretty-fast/tests/unit/xpcshell.ini
+++ b/devtools/shared/pretty-fast/tests/unit/xpcshell.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 tags = devtools
 head = head_pretty-fast.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test.js]
--- a/devtools/shared/qrcode/tests/unit/xpcshell.ini
+++ b/devtools/shared/qrcode/tests/unit/xpcshell.ini
@@ -1,8 +1,7 @@
 [DEFAULT]
 tags = devtools
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'gonk' && debug # Bug 1206586
 
 [test_encode.js]
--- a/devtools/shared/sourcemap/tests/unit/xpcshell.ini
+++ b/devtools/shared/sourcemap/tests/unit/xpcshell.ini
@@ -1,13 +1,12 @@
 [DEFAULT]
 tags = devtools
 head = head_sourcemap.js
 tail =
-skip-if = toolkit == 'gonk' && debug # Bug 1206586
 
 [test_util.js]
 [test_source_node.js]
 [test_source_map_generator.js]
 [test_source_map_consumer.js]
 [test_quick_sort.js]
 [test_dog_fooding.js]
 [test_binary_search.js]
--- a/devtools/shared/tests/mochitest/chrome.ini
+++ b/devtools/shared/tests/mochitest/chrome.ini
@@ -1,7 +1,7 @@
 [DEFAULT]
 tags = devtools
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 
 [test_eventemitter_basic.html]
 [test_devtools_extensions.html]
 skip-if = os == 'linux' && debug # Bug 1205739
--- a/devtools/shared/tests/unit/xpcshell.ini
+++ b/devtools/shared/tests/unit/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 tags = devtools
 head = head_devtools.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   exposeLoader.js
 
 [test_assert.js]
 [test_csslexer.js]
 [test_css-properties-db.js]
 # This test only enforces that the CSS database is up to date with nightly. The DB is
 # only used when inspecting a target that doesn't support the getCSSDatabase actor.
--- a/devtools/shared/transport/tests/unit/xpcshell.ini
+++ b/devtools/shared/transport/tests/unit/xpcshell.ini
@@ -1,23 +1,21 @@
 [DEFAULT]
 tags = devtools
 head = head_dbg.js
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 support-files =
   testactors.js
   testactors-no-bulk.js
 
 [test_bulk_error.js]
 [test_client_server_bulk.js]
 [test_dbgsocket.js]
-skip-if = toolkit == "gonk"
-reason = bug 821285
 [test_dbgsocket_connection_drop.js]
 [test_delimited_read.js]
 [test_no_bulk.js]
 [test_packet.js]
 [test_queue.js]
 [test_transport_bulk.js]
 [test_transport_events.js]
--- a/devtools/shared/webconsole/test/chrome.ini
+++ b/devtools/shared/webconsole/test/chrome.ini
@@ -1,11 +1,10 @@
 [DEFAULT]
 tags = devtools
-skip-if = buildapp == 'b2g'
 support-files =
   common.js
   data.json
   data.json^headers^
   helper_serviceworker.js
   network_requests_iframe.html
   sandboxed_iframe.html
   console-test-worker.js
--- a/devtools/shared/webconsole/test/unit/xpcshell.ini
+++ b/devtools/shared/webconsole/test/unit/xpcshell.ini
@@ -1,14 +1,14 @@
 [DEFAULT]
 tags = devtools
 head =
 tail =
 firefox-appdir = browser
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
 
 [test_js_property_provider.js]
 [test_network_helper.js]
 [test_security-info-certificate.js]
 [test_security-info-parser.js]
 [test_security-info-protocol-version.js]
 [test_security-info-state.js]
--- a/docshell/base/crashtests/crashtests.list
+++ b/docshell/base/crashtests/crashtests.list
@@ -6,10 +6,10 @@ load 430628-1.html
 load 432114-1.html
 load 432114-2.html
 load 436900-1.html
 asserts(0-1) load 436900-2.html # bug 566159
 load 500328-1.html
 load 514779-1.xhtml
 load 614499-1.html
 load 678872-1.html
-skip-if(Android||B2G) pref(dom.disable_open_during_load,false) load 914521.html
+skip-if(Android) pref(dom.disable_open_during_load,false) load 914521.html
 pref(browser.send_pings,true) load 1257730-1.html
--- a/docshell/test/browser/browser.ini
+++ b/docshell/test/browser/browser.ini
@@ -61,19 +61,17 @@ support-files =
 [browser_bug234628-8.js]
 [browser_bug234628-9.js]
 [browser_bug349769.js]
 [browser_bug388121-1.js]
 [browser_bug388121-2.js]
 [browser_bug420605.js]
 [browser_bug422543.js]
 [browser_bug441169.js]
-skip-if = buildapp == 'mulet'
 [browser_bug503832.js]
-skip-if = buildapp == 'mulet'
 [browser_bug554155.js]
 [browser_bug655270.js]
 [browser_bug655273.js]
 [browser_bug670318.js]
 [browser_bug673467.js]
 [browser_bug852909.js]
 [browser_bug92473.js]
 [browser_uriFixupIntegration.js]
--- a/docshell/test/chrome/chrome.ini
+++ b/docshell/test/chrome/chrome.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   662200a.html
   662200b.html
   662200c.html
   89419.html
   92598_nostore.html
   bug112564_window.xul
   bug113934_window.xul
@@ -52,22 +52,20 @@ support-files =
 [test_bug113934.xul]
 [test_bug215405.xul]
 [test_bug293235.xul]
 [test_bug294258.xul]
 [test_bug298622.xul]
 [test_bug301397.xul]
 [test_bug303267.xul]
 [test_bug311007.xul]
-skip-if = buildapp == 'mulet'
 [test_bug321671.xul]
 [test_bug360511.xul]
 [test_bug364461.xul]
 [test_bug396519.xul]
-skip-if = buildapp == 'mulet'
 [test_bug396649.xul]
 [test_bug428288.html]
 [test_bug449778.xul]
 [test_bug449780.xul]
 [test_bug453650.xul]
 [test_bug454235.xul]
 # bug 684176
 skip-if = toolkit == "gtk2"
--- a/docshell/test/iframesandbox/mochitest.ini
+++ b/docshell/test/iframesandbox/mochitest.ini
@@ -7,20 +7,18 @@ support-files =
   file_sibling_navigation_by_location.html
   file_top_navigation_by_location.html
   file_top_navigation_by_location_exotic.html
 
 [test_child_navigation_by_location.html]
 [test_marquee_event_handlers.html]
 [test_other_auxiliary_navigation_by_location.html]
 tags = openwindow
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
 [test_our_auxiliary_navigation_by_location.html]
 tags = openwindow
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
 [test_parent_navigation_by_location.html]
 tags = openwindow
 [test_sibling_navigation_by_location.html]
 tags = openwindow
 [test_top_navigation_by_location_exotic.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || android_version == '18' #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
+skip-if = android_version == '18' #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
 [test_top_navigation_by_location.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || android_version == '18' #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
+skip-if = android_version == '18' #bug 948948, NS_ERROR_FAILURE from nsWindowWatcher::GetPrompt
--- a/docshell/test/mochitest.ini
+++ b/docshell/test/mochitest.ini
@@ -32,80 +32,63 @@ support-files =
   file_bug680257.html
   file_bug703855.html
   file_bug728939.html
   file_pushState_after_document_open.html
   historyframes.html
 
 [test_anchor_scroll_after_document_open.html]
 [test_bfcache_plus_hash.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug123696.html]
 [test_bug369814.html]
-skip-if = buildapp == 'mulet' || (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug384014.html]
 [test_bug385434.html]
 [test_bug387979.html]
 [test_bug402210.html]
 [test_bug404548.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug413310.html]
 skip-if = true
 # Disabled for too many intermittent failures (bug 719186)
 [test_bug475636.html]
 [test_bug509055.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug511449.html]
 skip-if = toolkit != "cocoa"
 support-files = file_bug511449.html
 [test_bug529119-1.html]
-skip-if = buildapp == 'mulet' || (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug529119-2.html]
-skip-if = buildapp == 'mulet' || (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(debug-only failure) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
 [test_bug530396.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Timeouts on B2G desktop
 support-files = bug530396-noref.sjs bug530396-subframe.html
 [test_bug540462.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug551225.html]
 [test_bug570341.html]
-skip-if = (toolkit == 'gonk' && debug) || (android_version == '18' && debug) #debug-only failure, android bug 1040769
 [test_bug580069.html]
 [test_bug590573.html]
-skip-if = buildapp == 'b2g' #bug 823022 # b2g(queryinterfaces into webnavigation, might suffer from something similar as bug 823022) b2g-debug(queryinterfaces into webnavigation, might suffer from something similar as bug 823022) b2g-desktop(queryinterfaces into webnavigation, might suffer from something similar as bug 823022)
 [test_bug598895.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
+skip-if = toolkit == 'android'
 [test_bug634834.html]
 [test_bug637644.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
+skip-if = toolkit == 'android'
 [test_bug640387_1.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug640387_2.html]
 [test_bug653741.html]
 [test_bug660404.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug662170.html]
 [test_bug668513.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
+skip-if = toolkit == 'android'
 support-files = file_bug668513.html
 [test_bug669671.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug675587.html]
 [test_bug680257.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug691547.html]
 [test_bug694612.html]
 [test_bug703855.html]
 [test_bug713825.html]
 [test_bug728939.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug797909.html]
 [test_bug1045096.html]
+[test_bug1121701.html]
 [test_bug1186774.html]
+[test_forceinheritprincipal_overrule_owner.html]
 [test_framedhistoryframes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage, and also bug 784321
+skip-if = toolkit == 'android' # bug 784321
 support-files = file_framedhistoryframes.html
 [test_pushState_after_document_open.html]
 [test_windowedhistoryframes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
-[test_bug1121701.html]
-skip-if = (buildapp == 'b2g' || buildapp == 'mulet')
-[test_forceinheritprincipal_overrule_owner.html]
--- a/docshell/test/navigation/mochitest.ini
+++ b/docshell/test/navigation/mochitest.ini
@@ -33,36 +33,32 @@ support-files =
   file_triggeringprincipal_iframe_iframe_window_open_frame_b.html
   file_triggeringprincipal_iframe_iframe_window_open_frame_a_nav.html
   file_bug1300461.html
   file_bug1300461_redirect.html
   file_bug1300461_redirect.html^headers^
   file_bug1300461_back.html
 
 [test_bug13871.html]
-skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == 'android' #RANDOM # Bug 1136180 disabled on B2G Desktop and Mulet for intermittent failures
 [test_bug270414.html]
-skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == "android" # Bug 1136180 disabled on B2G Desktop and Mulet for intermittent failures
 [test_bug278916.html]
 [test_bug279495.html]
 [test_bug344861.html]
-skip-if = buildapp == 'b2g' || buildapp == 'mulet' || toolkit == "android" || toolkit == "windows" # disabled on Windows because of bug 1234520
+skip-if = toolkit == "android" || toolkit == "windows" # disabled on Windows because of bug 1234520
 [test_bug386782.html]
 [test_bug430624.html]
 [test_bug430723.html]
-skip-if = (buildapp == 'b2g' && debug) || toolkit == 'android' #TIMED_OUT # b2g-debug(bug 874423) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
+skip-if = toolkit == 'android' #TIMED_OUT
 [test_child.html]
 [test_grandchild.html]
 [test_not-opener.html]
-skip-if = buildapp == 'b2g'
 [test_opener.html]
 [test_popup-navigates-children.html]
-skip-if = buildapp == 'b2g' # b2g(Needs multiple window.open support, also uses docshelltreenode) b2g-debug(Needs multiple window.open support, also uses docshelltreenode) b2g-desktop(Needs multiple window.open support, also uses docshelltreenode)
 [test_reserved.html]
-skip-if = (buildapp == 'b2g' && debug) || (toolkit == 'android') || (debug && e10s) #too slow on Android 4.3 aws only; bug 1030403; bug 1263213 for debug e10s
+skip-if = (toolkit == 'android') || (debug && e10s) #too slow on Android 4.3 aws only; bug 1030403; bug 1263213 for debug e10s
 [test_sessionhistory.html]
-skip-if = (buildapp == 'b2g' && debug) || toolkit == 'android' #RANDOM # b2g-debug(Perma-orange on debug emulator builds) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
+skip-if = toolkit == 'android' #RANDOM
 [test_sibling-matching-parent.html]
 [test_sibling-off-domain.html]
 [test_triggeringprincipal_frame_nav.html]
 [test_triggeringprincipal_window_open.html]
 [test_triggeringprincipal_parent_iframe_window_open.html]
 [test_triggeringprincipal_iframe_iframe_window_open.html]
--- a/docshell/test/unit/xpcshell.ini
+++ b/docshell/test/unit/xpcshell.ini
@@ -1,12 +1,11 @@
 [DEFAULT]
 head = head_docshell.js
 tail = 
-skip-if = toolkit == 'gonk'
 
 [test_bug414201_jfif.js]
 [test_bug442584.js]
 [test_nsDefaultURIFixup.js]
 [test_nsDefaultURIFixup_search.js]
 skip-if = os == 'android'
 [test_nsDefaultURIFixup_info.js]
 skip-if = os == 'android'
--- a/docshell/test/unit_ipc/xpcshell.ini
+++ b/docshell/test/unit_ipc/xpcshell.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 head =
 tail =
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_pb_notification_ipc.js]
 # Bug 751575: Perma-fails with: command timed out: 1200 seconds without output
 skip-if = true
--- a/dom/animation/test/chrome.ini
+++ b/dom/animation/test/chrome.ini
@@ -10,9 +10,8 @@ support-files =
 # over HTTP
 [chrome/test_animation_observers.html]
 [chrome/test_animation_performance_warning.html]
 [chrome/test_animation_properties.html]
 [chrome/test_generated_content_getAnimations.html]
 [chrome/test_observers_for_sync_api.html]
 [chrome/test_restyles.html]
 [chrome/test_running_on_compositor.html]
-skip-if = buildapp == 'b2g'
--- a/dom/animation/test/mochitest.ini
+++ b/dom/animation/test/mochitest.ini
@@ -67,41 +67,37 @@ support-files =
 [css-animations/test_animation-playstate.html]
 [css-animations/test_animation-ready.html]
 [css-animations/test_animation-reverse.html]
 [css-animations/test_animation-starttime.html]
 [css-animations/test_cssanimation-animationname.html]
 [css-animations/test_document-get-animations.html]
 [css-animations/test_effect-target.html]
 [css-animations/test_element-get-animations.html]
-skip-if = buildapp == 'mulet'
 [css-animations/test_keyframeeffect-getkeyframes.html]
 [css-animations/test_pseudoElement-get-animations.html]
 [css-transitions/test_animation-cancel.html]
 [css-transitions/test_animation-computed-timing.html]
 [css-transitions/test_animation-currenttime.html]
 [css-transitions/test_animation-finished.html]
 [css-transitions/test_animation-pausing.html]
 [css-transitions/test_animation-ready.html]
 [css-transitions/test_animation-starttime.html]
 [css-transitions/test_csstransition-events.html]
 [css-transitions/test_csstransition-transitionproperty.html]
 [css-transitions/test_document-get-animations.html]
 [css-transitions/test_effect-target.html]
 [css-transitions/test_element-get-animations.html]
-skip-if = buildapp == 'mulet'
 [css-transitions/test_keyframeeffect-getkeyframes.html]
 [css-transitions/test_pseudoElement-get-animations.html]
 [css-transitions/test_setting-effect.html]
 [document-timeline/test_document-timeline.html]
 [document-timeline/test_request_animation_frame.html]
-skip-if = buildapp == 'mulet'
 [mozilla/test_cubic_bezier_limits.html]
 [mozilla/test_deferred_start.html]
-skip-if = (toolkit == 'gonk' && debug)
 [mozilla/test_disable_animations_api_core.html]
 [mozilla/test_disabled_properties.html]
 [mozilla/test_document-timeline-origin-time-range.html]
 [mozilla/test_hide_and_show.html]
 [mozilla/test_partial_keyframes.html]
 [mozilla/test_set-easing.html]
 [mozilla/test_spacing_property_order.html]
 [mozilla/test_spacing_transform.html]
--- a/dom/apps/PermissionsTable.jsm
+++ b/dom/apps/PermissionsTable.jsm
@@ -167,21 +167,16 @@ this.PermissionsTable =  { geolocation: 
                              certified: DENY_ACTION,
                              additional: ["indexedDB-chrome-settings", "settings-api"]
                            },
                            permissions: {
                              app: DENY_ACTION,
                              privileged: DENY_ACTION,
                              certified: ALLOW_ACTION
                            },
-                           phonenumberservice: {
-                             app: DENY_ACTION,
-                             privileged: DENY_ACTION,
-                             certified: ALLOW_ACTION
-                           },
                            fmradio: {
                              app: DENY_ACTION,
                              privileged: ALLOW_ACTION,
                              certified: ALLOW_ACTION
                            },
                            attention: {
                              app: DENY_ACTION,
                              privileged: DENY_ACTION,
--- a/dom/apps/moz.build
+++ b/dom/apps/moz.build
@@ -1,20 +1,16 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini']
 
-MOCHITEST_CHROME_MANIFESTS += [
-    'tests/chrome.ini'
-]
-
 EXTRA_COMPONENTS += [
     'AppsService.js',
     'AppsService.manifest',
 ]
 
 EXTRA_JS_MODULES += [
     'AppsServiceChild.jsm',
     'PermissionsInstaller.jsm',
deleted file mode 100644
--- a/dom/apps/tests/chrome.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[DEFAULT]
-skip-if = buildapp != 'mulet'
-
-[test_apps_service.xul]
-[test_manifest_helper.xul]
deleted file mode 100644
--- a/dom/apps/tests/test_apps_service.xul
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
-<?xml-stylesheet type="text/css" href="/tests/SimpleTest/test.css"?>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=754141
--->
-<window title="Mozilla Bug 754141"
-        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script type="application/javascript"
-          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
-
-  <!-- test results are displayed in the html:body -->
-  <body xmlns="http://www.w3.org/1999/xhtml">
-  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=754141"
-     target="_blank">Mozilla Bug 754141</a>
-  </body>
-
-  <!-- test code goes here -->
-  <script type="application/javascript">
-  <![CDATA[
-
-  /** Test for Bug 754141 **/
-
-  var appsService = Components.classes['@mozilla.org/AppsService;1']
-                              .getService(Components.interfaces.nsIAppsService);
-  SimpleTest.ok(appsService, "Should be able to get the Apps Service");
-
-  SimpleTest.ok('getAppByManifestURL' in appsService,
-                "getAppByManifestURL() should be a method in nsIAppsService");
-
-  SimpleTest.is(appsService.getAppByManifestURL(''), null,
-                "getAppByManifestURL() should return null for an empty string manifest url");
-
-  ]]>
-  </script>
-</window>
deleted file mode 100644
--- a/dom/apps/tests/test_manifest_helper.xul
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
-<?xml-stylesheet type="text/css" href="/tests/SimpleTest/test.css"?>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1042881
--->
-<window title="Mozilla Bug 1042881"
-        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script type="application/javascript"
-          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
-
-  <!-- test results are displayed in the html:body -->
-  <body xmlns="http://www.w3.org/1999/xhtml">
-  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1042881"
-     target="_blank">Mozilla Bug 1042881</a>
-  </body>
-
-  <!-- test code goes here -->
-  <script type="application/javascript">
-  <![CDATA[
-
-  /** Test for Bug 1042881 **/
-
-  Components.utils.import("resource://gre/modules/AppsUtils.jsm");
-
-  // Test that we get the right launch path from manifests similar to
-  // twitter's one.
-  var manifest = {
-    "version":"1.0",
-    "name":"Twitter",
-    "installs_allowed_from":["*"],
-    "developer":{
-      "name":"Twitter",
-      "url":"http://twitter.com"
-    },
-    "icons":{
-      "30":"/images/larrybird-30.png",
-      "60":"/images/larrybird-60.png",
-      "128":"/images/larrybird-128.png"
-    }
-  }
-
-  var helper = new ManifestHelper(manifest, "https://mobile.twitter.com",
-                                  "https://mobile.twitter.com/cache/twitter.webapp");
-
-  SimpleTest.is(helper.fullLaunchPath(), "https://mobile.twitter.com/");
-  SimpleTest.is(helper.iconURLForSize(60),
-                "https://mobile.twitter.com/images/larrybird-60.png");
-
-  ]]>
-  </script>
-</window>
--- a/dom/archivereader/test/mochitest.ini
+++ b/dom/archivereader/test/mochitest.ini
@@ -1,10 +1,7 @@
 [DEFAULT]
 support-files =
   helpers.js
 
 [test_basic.html]
-skip-if = (buildapp == 'b2g' && toolkit == 'gonk')
 [test_nonUnicode.html]
-skip-if = (buildapp == 'b2g' && toolkit == 'gonk')
 [test_zip_in_zip.html]
-skip-if = (buildapp == 'b2g' && toolkit == 'gonk')
--- a/dom/base/test/chrome.ini
+++ b/dom/base/test/chrome.ini
@@ -1,27 +1,27 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   file_empty.html
   file_bug945152.jar
   file_bug945152_worker.js
   file_bug1008126_worker.js
   mozbrowser_api_utils.js
 
 [test_anonymousContent_xul_window.xul]
 [test_bug715041.xul]
 [test_bug715041_removal.xul]
-[test_domrequesthelper.xul]
-[test_navigator_resolve_identity_xrays.xul]
-support-files = file_navigator_resolve_identity_xrays.xul
-[test_sendQueryContentAndSelectionSetEvent.html]
+[test_bug945152.html]
+[test_bug1008126.html]
 [test_bug1016960.html]
 [test_copypaste.xul]
 subsuite = clipboard
+[test_domrequesthelper.xul]
 [test_messagemanager_principal.html]
 [test_messagemanager_send_principal.html]
 skip-if = buildapp == 'mulet'
-[test_bug945152.html]
-[test_bug1008126.html]
+[test_mozbrowser_apis_allowed.html]
+[test_navigator_resolve_identity_xrays.xul]
+support-files = file_navigator_resolve_identity_xrays.xul
 [test_sandboxed_blob_uri.html]
+[test_sendQueryContentAndSelectionSetEvent.html]
 [test_websocket_frame.html]
-[test_mozbrowser_apis_allowed.html]
--- a/dom/base/test/chrome/chrome.ini
+++ b/dom/base/test/chrome/chrome.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   blockNoPlugins.xml
   blockPluginHard.xml
   bug418986-1.js
   cpows_child.js
   cpows_parent.xul
   file_bug549682.xul
   file_bug616841.xul
@@ -38,17 +38,16 @@ support-files = ../file_bug357450.js
 [test_bug418986-1.xul]
 [test_bug421622.xul]
 [test_bug429785.xul]
 [test_bug430050.xul]
 [test_bug467123.xul]
 [test_bug549682.xul]
 [test_bug571390.xul]
 [test_bug1098074_throw_from_ReceiveMessage.xul]
-skip-if = buildapp == 'mulet'
 [test_bug616841.xul]
 [test_bug635835.xul]
 [test_bug682305.html]
 [test_bug683852.xul]
 [test_bug752226-3.xul]
 [test_bug752226-4.xul]
 [test_bug765993.html]
 [test_bug780199.xul]
@@ -58,17 +57,16 @@ skip-if = buildapp == 'mulet'
 [test_bug816340.xul]
 [test_bug884693.xul]
 [test_bug914381.html]
 [test_bug990812.xul]
 [test_bug1063837.xul]
 [test_bug1139964.xul]
 [test_bug1209621.xul]
 [test_cpows.xul]
-skip-if = buildapp == 'mulet'
 [test_registerElement_content.xul]
 [test_registerElement_ep.xul]
 [test_domparsing.xul]
 [test_fileconstructor.xul]
 [test_fileconstructor_tempfile.xul]
 [test_nsITextInputProcessor.xul]
 [test_title.xul]
 [test_windowroot.xul]
--- a/dom/base/test/mochitest.ini
+++ b/dom/base/test/mochitest.ini
@@ -251,72 +251,65 @@ support-files =
 [test_anonymousContent_style_csp.html]
 [test_applet_alternate_content.html]
 [test_appname_override.html]
 [test_async_setTimeout_stack.html]
 [test_async_setTimeout_stack_across_globals.html]
 [test_audioWindowUtils.html]
 [test_audioNotification.html]
 tags = audiochannel
-skip-if = buildapp == 'mulet'
 [test_audioNotificationSilent_audioFile.html]
 tags = audiochannel
 [test_audioNotificationSilent_webAudio.html]
 tags = audiochannel
 [test_audioNotificationStream.html]
 tags = audiochannel
-skip-if = buildapp == 'mulet'
 [test_audioNotificationStopOnNavigation.html]
 tags = audiochannel
-skip-if = buildapp == 'mulet'
 [test_audioNotificationWithEarlyPlay.html]
 tags = audiochannel
-skip-if = buildapp == 'mulet'
 [test_base.xhtml]
 [test_blob_fragment_and_query.html]
 [test_blobconstructor.html]
 [test_blobURL_expiring.html]
 [test_bug5141.html]
 [test_bug28293.html]
 [test_bug28293.xhtml]
 [test_bug51034.html]
 [test_bug116083.html]
 subsuite = clipboard
 [test_bug166235.html]
 subsuite = clipboard
-skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(clipboard undefined) b2g-debug(clipboard undefined) b2g-desktop(clipboard undefined)
+skip-if = toolkit == 'android'
 [test_bug199959.html]
 [test_bug218236.html]
 [test_bug218277.html]
 [test_bug238409.html]
 [test_bug254337.html]
 [test_bug270145.xhtml]
 [test_bug276037-1.html]
 [test_bug276037-2.xhtml]
 [test_bug282547.html]
 [test_bug298064.html]
 [test_bug300992.html]
 [test_bug311681.xml]
 [test_bug313646.html]
 [test_bug320799.html]
 [test_bug322317.html]
 [test_bug326337.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug330925.xhtml]
 [test_bug331959.html]
 [test_bug333064.html]
 skip-if = toolkit == 'android'
 [test_bug333198.html]
 [test_bug333673.html]
 [test_bug337631.html]
 [test_bug338541.xhtml]
 [test_bug338583.html]
-# b2g(https not working, bug 907770) b2g-debug(https not working, bug 907770) b2g-desktop(43 total - bug 901343, specialpowers.wrap issue createsystemxhr)
-# e10s - bug 970589, bug 1091934
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_bug338679.html]
 [test_bug339494.html]
 [test_bug339494.xhtml]
 [test_bug340571.html]
 [test_bug343596.html]
 [test_bug345339.html]
 [test_bug346485.html]
 [test_bug352728.html]
@@ -379,29 +372,23 @@ support-files = test_bug402150.html^head
 [test_bug418214.html]
 [test_bug418986-1.html]
 [test_bug419132.html]
 [test_bug419527.xhtml]
 [test_bug420609.xhtml]
 [test_bug420700.html]
 [test_bug421602.html]
 [test_bug422403-1.html]
-skip-if = buildapp == 'b2g' # b2g(bug 901343, specialpowers.wrap issue [nsIChannel.open]) b2g-debug(bug 901343, specialpowers.wrap issue [nsIChannel.open]) b2g-desktop(bug 901343, specialpowers.wrap issue [nsIChannel.open])
 [test_bug422403-2.xhtml]
-skip-if = buildapp == 'b2g'
 [test_bug422537.html]
 [test_bug424212.html]
 [test_bug424359-1.html]
-skip-if = buildapp == 'b2g'
 [test_bug424359-2.html]
-skip-if = buildapp == 'b2g'
 [test_bug426308.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk')
 [test_bug426646.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug428847.html]
 [test_bug429157.html]
 [test_bug431082.html]
 [test_bug431701.html]
 [test_bug431833.html]
 [test_bug433533.html]
 [test_bug433662.html]
 [test_bug435425.html]
@@ -422,34 +409,31 @@ support-files = bug444546.sjs
 [test_bug455629.html]
 [test_bug456262.html]
 [test_bug457746.html]
 [test_bug459424.html]
 [test_bug461555.html]
 [test_bug461735.html]
 [test_bug465767.html]
 [test_bug466080.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(bug 901356, also fails on android) b2g-debug(bug 901356, also fails on android) b2g-desktop(bug 901356, also fails on android)
 [test_bug466409.html]
-skip-if = buildapp == 'b2g'
 [test_bug466751.xhtml]
 [test_bug469020.html]
 [test_bug469304.html]
 [test_bug473162-1.html]
 [test_bug473162-2.html]
 [test_bug475156.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 855762 # b2g(36 total - bug 902611) b2g-debug(36 total - bug 902611) b2g-desktop(36 total - bug 902611)
+skip-if = toolkit == 'android' #bug 855762
 [test_bug482935.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 855762
+skip-if = toolkit == 'android' #bug 855762
 [test_bug484396.html]
 [test_bug493881.html]
 support-files = test_bug493881.js
 [test_bug498240.html]
 [test_bug498433.html]
-skip-if = buildapp == 'b2g'
 [test_bug498897.html]
 [test_bug499656.html]
 [test_bug499656.xhtml]
 [test_bug500937.html]
 [test_bug503473.html]
 disabled = Disabled due to making the harness time out
 support-files = file_bug503473-frame.sjs
 [test_bug503481.html]
@@ -466,34 +450,31 @@ skip-if = toolkit == 'android' #TIMED_OU
 [test_bug540854.html]
 [test_bug541937.html]
 [test_bug544642.html]
 [test_bug545644.html]
 [test_bug545644.xhtml]
 [test_bug548463.html]
 [test_bug553896.xhtml]
 [test_bug557892.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug558726.html]
 [test_bug559526.html]
 [test_bug560780.html]
 skip-if = (os == "android") # Failure with AccessibleCarets on Android, bug 1230229
 [test_bug562137.html]
 [test_bug562169-1.html]
 [test_bug562169-2.html]
 [test_bug562652.html]
 [test_bug564047.html]
 [test_bug564863.xhtml]
 [test_bug567350.html]
 [test_bug574596.html]
 skip-if = toolkit == 'android'
 [test_bug578096.html]
-skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(debug-only failure; crash) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
 [test_bug585978.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only timeout
 [test_bug587931.html]
 [test_bug588990.html]
 [test_bug590812.html]
 skip-if = toolkit == 'android' #bug 687032
 [test_bug590870.html]
 [test_bug592366.html]
 [test_bug592829.html]
 [test_bug597345.html]
@@ -517,40 +498,36 @@ skip-if = toolkit == 'android' #bug 6870
 [test_bug638112.html]
 [test_bug647518.html]
 [test_bug650001.html]
 [test_bug650776.html]
 [test_bug650784.html]
 [test_bug656283.html]
 [test_bug664916.html]
 [test_bug666604.html]
-skip-if = buildapp == 'b2g' # b2g(dom.disable_open_during_load not implemented in b2g) b2g-debug(dom.disable_open_during_load not implemented in b2g) b2g-desktop(dom.disable_open_during_load not implemented in b2g)
 [test_bug675121.html]
-skip-if = buildapp == 'b2g' # b2g(bug 901378) b2g-debug(bug 901378) b2g-desktop(bug 901378)
 [test_bug675166.html]
 [test_bug682463.html]
 [test_bug682554.html]
 [test_bug682592.html]
-skip-if = buildapp == 'b2g'
 [test_bug684671.html]
 [test_bug685798.html]
 [test_bug686449.xhtml]
 [test_bug687859.html]
 [test_bug690056.html]
 [test_bug692434.html]
 [test_bug693615.html]
 [test_bug693875.html]
 [test_bug694754.xhtml]
 [test_bug696301-1.html]
 [test_bug696301-2.html]
 [test_bug698381.html]
 [test_bug698384.html]
 [test_bug704063.html]
 [test_bug704320.html]
-skip-if = buildapp == 'b2g'  # b2g (https://example.com not working bug 1162353)
 [test_bug704320_policyset.html]
 [test_bug704320_policyset2.html]
 [test_bug704320_preload.html]
 [test_bug707142.html]
 [test_bug708620.html]
 [test_bug711047.html]
 [test_bug711180.html]
 [test_bug719533.html]
@@ -566,17 +543,16 @@ skip-if = buildapp == 'b2g'  # b2g (http
 [test_bug761120.html]
 [test_bug769117.html]
 [test_bug782342.html]
 [test_bug787778.html]
 [test_bug789315.html]
 [test_bug789856.html]
 [test_bug793311.html]
 [test_bug804395.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #bug 901343, specialpowers.wrap issue createsystemxhr
 [test_bug809003.html]
 [test_bug810494.html]
 [test_bug811701.html]
 [test_bug811701.xhtml]
 [test_bug813919.html]
 [test_bug814576.html]
 [test_bug819051.html]
 [test_bug820909.html]
@@ -606,24 +582,22 @@ skip-if = (buildapp == 'b2g' && toolkit 
 [test_bug1037687.html]
 [test_bug1043106.html]
 [test_bug1057176.html]
 [test_bug1060938.html]
 [test_bug1064481.html]
 [test_bug1070015.html]
 [test_bug1075702.html]
 [test_bug1081686.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_bug1091883.html]
 [test_bug1101364.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_bug1118689.html]
-skip-if = buildapp == 'b2g'
 [test_bug1126851.html]
-skip-if = buildapp == 'b2g'
 [test_bug1163743.html]
 [test_bug1165501.html]
 [test_bug1187157.html]
 [test_bug1198095.html]
 [test_bug1238440.html]
 [test_bug1250148.html]
 [test_bug1259588.html]
 [test_bug1263696.html]
@@ -631,35 +605,34 @@ skip-if = buildapp == 'b2g'
 [test_bug1274806.html]
 [test_bug1281963.html]
 [test_bug1295852.html]
 [test_bug1307730.html]
 [test_bug1308069.html]
 [test_bug1314032.html]
 [test_caretPositionFromPoint.html]
 [test_change_policy.html]
-skip-if = buildapp == 'b2g' #no ssl support
 [test_classList.html]
 [test_clearTimeoutIntervalNoArg.html]
 [test_constructor-assignment.html]
 [test_constructor.html]
 [test_copyimage.html]
 subsuite = clipboard
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || (toolkit != 'cocoa' && toolkit != 'gonk' && toolkit != 'gtk2' && toolkit != 'gtk3' && toolkit != 'windows') #b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
+skip-if = toolkit == 'android' #bug 904183
 [test_copypaste.html]
 subsuite = clipboard
-skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 904183 # b2g(clipboard undefined) b2g-debug(clipboard undefined) b2g-desktop(clipboard undefined)
+skip-if = toolkit == 'android' #bug 904183
 [test_copypaste.xhtml]
 subsuite = clipboard
-skip-if = buildapp == 'b2g' || toolkit == 'android' #bug 904183 # b2g(bug 904183) b2g-debug(bug 904183) b2g-desktop(bug 904183)
+skip-if = toolkit == 'android' #bug 904183
 [test_createHTMLDocument.html]
 [test_declare_stylesheet_obsolete.html]
 [test_dialogArguments.html]
 tags = openwindow
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' || e10s # showmodaldialog
+skip-if = toolkit == 'android' || e10s # showmodaldialog
 [test_document.all_iteration.html]
 [test_document.all_unqualified.html]
 [test_document_constructor.html]
 [test_document_importNode_document.html]
 [test_document_register.html]
 [test_domcursor.html]
 [test_domparser_null_char.html]
 [test_domparsing.html]
@@ -702,38 +675,37 @@ skip-if = e10s || os != 'linux' || build
 [test_integer_attr_with_leading_zero.html]
 [test_intersectionobservers.html]
 [test_ipc_messagemanager_blob.html]
 [test_link_prefetch.html]
 skip-if = !e10s # Track Bug 1281415
 [test_link_stylesheet.html]
 [test_messagemanager_targetchain.html]
 [test_meta_viewport0.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport1.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport2.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport3.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport4.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport5.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport6.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_meta_viewport7.html]
-skip-if = (os != 'b2g' && os != 'android')    # meta-viewport tag support is mobile-only
+skip-if = (os != 'android')    # meta-viewport tag support is mobile-only
 [test_mozbrowser_apis_blocked.html]
 [test_mozfiledataurl.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT
+skip-if = toolkit == 'android' #TIMED_OUT
 [test_mozMatchesSelector.html]
 [test_mutationobserver_anonymous.html]
 [test_mutationobservers.html]
-skip-if = buildapp == 'b2g' # b2g(bug 901385, showmodaldialog) b2g-debug(bug 901385, showmodaldialog) b2g-desktop(bug 901385, showmodaldialog)
 [test_named_frames.html]
 [test_navigator_hardwareConcurrency.html]
 [test_navigator_language.html]
 [test_navigatorPrefOverride.html]
 [test_noAudioNotification.html]
 tags = audiochannel
 [test_noAudioNotificationOnMutedElement.html]
 tags = audiochannel
@@ -745,35 +717,34 @@ tags = audiochannel
 [test_NodeIterator_mutations_1.xhtml]
 [test_NodeIterator_mutations_2.html]
 [test_NodeIterator_mutations_3.html]
 [test_nodelist_holes.html]
 [test_nonascii_blob_url.html]
 [test_noWebAudioNotification.html]
 tags = audiochannel
 [test_open_null_features.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Fails on b2g-desktop, tracked in bug 1011874
 [test_openDialogChromeOnly.html]
 tags = openwindow
 [test_orientation_alternate.html]
-skip-if = toolkit != 'gonk'
+skip-if = true # bug 1312417
 [test_orientation_frame.html]
-skip-if = toolkit != 'gonk'
+skip-if = true # bug 1312417
 [test_orientation_frame_lock.html]
-skip-if = toolkit != 'gonk'
+skip-if = true # bug 1312417
 [test_orientation_sandbox_no_lock.html]
-skip-if = toolkit != 'gonk'
+skip-if = true # bug 1312417
 [test_plugin_freezing.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #CLICK_TO_PLAY
+skip-if = toolkit == 'android' #CLICK_TO_PLAY
 [test_pluginAudioNotification.html]
 tags = audiochannel
-skip-if = (buildapp == 'b2g' || buildapp == 'mulet' || toolkit == 'android') # Plugins don't work on Android and/or B2G/Mulet
+skip-if = toolkit == 'android' # Plugins don't work on Android
 [test_pluginMutedBeforePlay.html]
 tags = audiochannel
-skip-if = (buildapp == 'b2g' || buildapp == 'mulet' || toolkit == 'android') # Plugins don't work on Android and/or B2G/Mulet
+skip-if = toolkit == 'android' # Plugins don't work on Android
 [test_postMessage_solidus.html]
 [test_postMessages.html]
 support-files = worker_postMessages.js
 [test_processing_instruction_update_stylesheet.xhtml]
 [test_progress_events_for_gzip_data.html]
 [test_range_bounds.html]
 skip-if = toolkit == 'android'
 [test_reentrant_flush.html]
@@ -783,64 +754,61 @@ skip-if = toolkit == 'android'
 [test_screen_orientation.html]
 [test_script_loader_crossorigin_data_url.html]
 [test_setInterval_uncatchable_exception.html]
 skip-if = debug == false
 [test_settimeout_extra_arguments.html]
 [test_settimeout_inner.html]
 [test_setTimeoutWith0.html]
 [test_setting_opener.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_simplecontentpolicy.html]
-skip-if = e10s || buildapp == 'b2g' # Bug 1156489.
+skip-if = e10s # Bug 1156489.
 [test_text_wholeText.html]
 [test_textnode_normalize_in_selection.html]
 [test_textnode_split_in_selection.html]
 [test_title.html]
 [test_treewalker_nextsibling.xml]
 [test_user_select.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_viewport_scroll.html]
 [test_viewsource_forbidden_in_object.html]
 [test_w3element_traversal.html]
 [test_w3element_traversal.xhtml]
 [test_w3element_traversal_svg.html]
 [test_warning_for_blocked_cross_site_request.html]
 [test_webaudioNotification.html]
 tags = audiochannel
-skip-if = buildapp == 'mulet'
 [test_webaudioNotificationStopOnNavigation.html]
 tags = audiochannel
-skip-if = buildapp == 'mulet'
 [test_websocket_basic.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_websocket_hello.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_websocket_permessage_deflate.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_websocket1.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+skip-if = toolkit == 'android'
 [test_websocket2.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+skip-if = toolkit == 'android'
 [test_websocket3.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+skip-if = toolkit == 'android'
 [test_websocket4.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+skip-if = toolkit == 'android'
 [test_websocket5.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+skip-if = toolkit == 'android'
 [test_window_constructor.html]
 [test_window_cross_origin_props.html]
 [test_window_define_nonconfigurable.html]
 skip-if = release_or_beta
 [test_window_define_symbol.html]
 [test_window_element_enumeration.html]
 [test_window_enumeration.html]
 [test_window_extensible.html]
 [test_window_indexing.html]
 [test_window_named_frame_enumeration.html]
 [test_window_orientation.html]
-skip-if = toolkit != 'gonk'
+skip-if = true # bug 1312417
 [test_window_proto.html]
 [test_writable-replaceable.html]
 [test_x-frame-options.html]
 [test_xbl_userdata.xhtml]
 [test_youtube_flash_embed.html]
 # Please keep alphabetical order.
--- a/dom/base/test/unit/xpcshell.ini
+++ b/dom/base/test/unit/xpcshell.ini
@@ -1,12 +1,11 @@
 [DEFAULT]
 head = head_utilities.js
 tail =
-skip-if = toolkit == 'gonk'
 support-files =
   1_original.xml
   1_result.xml
   2_original.xml
   2_result_1.xml
   2_result_2.xml
   2_result_3.xml
   2_result_4.xml
--- a/dom/base/test/unit_ipc/xpcshell.ini
+++ b/dom/base/test/unit_ipc/xpcshell.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
 head =
 tail =
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 support-files =
   !/dom/base/test/unit/test_bug553888.js
   !/dom/base/test/unit/test_xhr_document.js
 
 [test_bug553888_wrap.js]
 [test_xhr_document_ipc.js]
--- a/dom/base/test/websocket_hybi/mochitest.ini
+++ b/dom/base/test/websocket_hybi/mochitest.ini
@@ -1,13 +1,13 @@
 [DEFAULT]
 support-files =
   file_binary-frames_wsh.py
   file_check-binary-messages_wsh.py
 
 [test_receive-arraybuffer.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_receive-blob.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_send-arraybuffer.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_send-blob.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
--- a/dom/bindings/test/chrome.ini
+++ b/dom/bindings/test/chrome.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files =
   !/dom/bindings/test/file_bug775543.html
   !/dom/bindings/test/file_document_location_set_via_xray.html
   !/dom/bindings/test/file_dom_xrays.html
   !/dom/bindings/test/file_proxies_via_xray.html
 
 [test_bug775543.html]
 [test_document_location_set_via_xray.html]
--- a/dom/bindings/test/mochitest.ini
+++ b/dom/bindings/test/mochitest.ini
@@ -32,17 +32,16 @@ skip-if = debug == false
 [test_enums.html]
 [test_exceptionThrowing.html]
 [test_exception_messages.html]
 [test_forOf.html]
 [test_integers.html]
 [test_interfaceName.html]
 [test_interfaceToString.html]
 [test_exceptions_from_jsimplemented.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure; bug 926547
 tags = webrtc
 [test_lenientThis.html]
 [test_lookupGetter.html]
 [test_namedNoIndexed.html]
 [test_named_getter_enumerability.html]
 [test_Object.prototype_props.html]
 [test_queryInterface.html]
 [test_returnUnion.html]
--- a/dom/broadcastchannel/tests/browser.ini
+++ b/dom/broadcastchannel/tests/browser.ini
@@ -1,6 +1,6 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   blank.html
 
 [browser_private_browsing.js]
--- a/dom/browser-element/mochitest/chrome.ini
+++ b/dom/browser-element/mochitest/chrome.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) || e10s || toolkit == 'android' # Bug 1287720: takes too long on android
+skip-if = e10s || toolkit == 'android' # Bug 1287720: takes too long on android
 
 support-files =
   audio.ogg
   async.js
   browserElementTestHelpers.js
   browserElement_ActiveStateChange.js
   browserElement_AudioChannelSeeking.js
   browserElement_AudioChannelMutedByDefault.js
--- a/dom/browser-element/mochitest/mochitest-oop.ini
+++ b/dom/browser-element/mochitest/mochitest-oop.ini
@@ -11,27 +11,24 @@ support-files =
   browserElement_OpenTab.js
 
 [test_browserElement_oop_AudioChannelSeeking.html]
 tags = audiochannel
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Viewmode.html]
 [test_browserElement_oop_ThemeColor.html]
 [test_browserElement_inproc_ErrorSecurity.html]
-skip-if = toolkit=='gonk'
 [test_browserElement_inproc_OpenMixedProcess.html]
-# skip-if = toolkit=='gonk' || (toolkit == 'gonk' && !debug)
 disabled = disabled for bug 1266035
 [test_browserElement_oop_Alert.html]
 [test_browserElement_oop_AlertInFrame.html]
 [test_browserElement_oop_AudioChannelMutedByDefault.html]
 tags = audiochannel
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Auth.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_BackForward.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_BadScreenshot.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_BrowserWindowResize.html]
 [test_browserElement_oop_Close.html]
 [test_browserElement_oop_CookiesNotThirdParty.html]
 [test_browserElement_oop_CopyPaste.html]
@@ -39,87 +36,74 @@ subsuite = clipboard
 [test_browserElement_oop_DOMRequestError.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_DataURI.html]
 [test_browserElement_oop_DocumentFirstPaint.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Download.html]
 disabled = bug 1022281
 [test_browserElement_oop_ErrorSecurity.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_ExecuteScript.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Find.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_FirstPaint.html]
 [test_browserElement_oop_ForwardName.html]
 [test_browserElement_oop_FrameWrongURI.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_GetScreenshot.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_GetScreenshotDppx.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Iconchange.html]
 [test_browserElement_oop_LoadEvents.html]
 [test_browserElement_oop_Manifestchange.html]
 [test_browserElement_oop_Metachange.html]
 [test_browserElement_oop_NoAudioTrack.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_AudioPlayback.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_OpenMixedProcess.html]
-# skip-if = (toolkit == 'gonk' && !debug)
 disabled = disabled for bug 1266035
 [test_browserElement_oop_OpenNamed.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_OpenWindow.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_OpenWindowDifferentOrigin.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_OpenWindowInFrame.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_OpenWindowRejected.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_Opensearch.html]
 [test_browserElement_oop_OpenTab.html]
-# skip-if = (toolkit == 'gonk') # Disabled on emulator. See bug 1144015 comment 8
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_PrivateBrowsing.html]
 skip-if = e10s # Bug 1315042
 [test_browserElement_oop_PromptCheck.html]
 [test_browserElement_oop_PromptConfirm.html]
-# Disabled on B2G Emulator because permission cannot be asserted in content process,
-# need to fix either bug 1094055 or bug 1020135.
 [test_browserElement_oop_Proxy.html]
-skip-if = (toolkit == 'gonk')
 [test_browserElement_oop_PurgeHistory.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Reload.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_ReloadPostRequest.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_RemoveBrowserElement.html]
 [test_browserElement_oop_ScrollEvent.html]
 [test_browserElement_oop_SecurityChange.html]
-skip-if = toolkit == 'android' || (toolkit == 'gonk' && !debug) #TIMED_OUT, bug 766586
+skip-if = toolkit == 'android' #TIMED_OUT, bug 766586
 [test_browserElement_oop_SendEvent.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_SetInputMethodActive.html]
 # skip-if = (os == "android")
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_SetVisible.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_SetVisibleFrames.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_SetVisibleFrames2.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_Stop.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_TargetBlank.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_oop_TargetTop.html]
 [test_browserElement_oop_Titlechange.html]
 [test_browserElement_oop_TopBarrier.html]
 [test_browserElement_oop_VisibilityChange.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_XFrameOptions.html]
 [test_browserElement_oop_XFrameOptionsAllowFrom.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
@@ -142,12 +126,11 @@ disabled = Disabling some OOP tests for 
 tags = audiochannel
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_AudioChannel_nested.html]
 tags = audiochannel
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_getWebManifest.html]
 disabled = Disabling some OOP tests for WebIDL scope changes
 [test_browserElement_oop_OpenWindowEmpty.html]
-skip-if = (toolkit == 'gonk') # Test doesn't work on B2G emulator
 [test_browserElement_oop_ActiveStateChange.html]
 tags = audiochannel
 disabled = Disabling some OOP tests for WebIDL scope changes
--- a/dom/browser-element/mochitest/mochitest.ini
+++ b/dom/browser-element/mochitest/mochitest.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) || e10s
+skip-if = e10s
 support-files =
   audio.ogg
   ../../../dom/media/test/short-video.ogv
   async.js
   browserElementTestHelpers.js
   browserElement_Alert.js
   browserElement_AlertInFrame.js
   browserElement_Auth.js
@@ -101,75 +101,59 @@ support-files =
 # whether the test should be OOP.  "_oop_" signals OOP, "_inproc_" signals in
 # process.  Default is OOP.
 [test_browserElement_NoAttr.html]
 [test_browserElement_NoPref.html]
 [test_browserElement_NoPermission.html]
 [test_browserElement_inproc_Alert.html]
 [test_browserElement_inproc_Viewmode.html]
 [test_browserElement_inproc_ThemeColor.html]
-skip-if = buildapp == 'b2g'
 [test_browserElement_inproc_AlertInFrame.html]
 [test_browserElement_inproc_Auth.html]
-skip-if = buildapp == 'b2g'
 [test_browserElement_inproc_BrowserWindowNamespace.html]
-skip-if = buildapp == 'b2g'
 [test_browserElement_inproc_BrowserWindowResize.html]
 [test_browserElement_inproc_Close.html]
 [test_browserElement_inproc_CloseFromOpener.html]
-skip-if = buildapp == 'b2g'
 [test_browserElement_inproc_ContextmenuEvents.html]
 [test_browserElement_inproc_CookiesNotThirdParty.html]
 [test_browserElement_inproc_CopyPaste.html]
 subsuite = clipboard
 skip-if = (os == "android") # Disabled on Android, see bug 1230421
 [test_browserElement_inproc_DataURI.html]
 [test_browserElement_inproc_Download.html]
 disabled = bug 1022281
 [test_browserElement_inproc_ExposableURI.html]
 [test_browserElement_inproc_FirstPaint.html]
 [test_browserElement_inproc_ForwardName.html]
 [test_browserElement_inproc_FrameWrongURI.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_Iconchange.html]
 [test_browserElement_inproc_LoadEvents.html]
 [test_browserElement_inproc_Manifestchange.html]
 [test_browserElement_inproc_Metachange.html]
 [test_browserElement_inproc_OpenNamed.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_OpenTab.html]
 disabled = won't work as Firefox desktop will intercept ctrl-click
 [test_browserElement_inproc_OpenWindow.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_OpenWindowDifferentOrigin.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_OpenWindowInFrame.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_OpenWindowRejected.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_Opensearch.html]
 [test_browserElement_inproc_PrivateBrowsing.html]
 [test_browserElement_inproc_PromptCheck.html]
 [test_browserElement_inproc_PromptConfirm.html]
-# Disabled on B2G Emulator because permission cannot be asserted in content process,
-# need to fix either bug 1094055 or bug 1020135.
 [test_browserElement_inproc_Proxy.html]
-skip-if = toolkit == 'gonk' || buildapp == 'mulet'
 [test_browserElement_inproc_RemoveBrowserElement.html]
 [test_browserElement_inproc_ScrollEvent.html]
 [test_browserElement_inproc_SecurityChange.html]
-skip-if = toolkit == 'android' || (toolkit == 'gonk' && !debug) # android(TIMED_OUT, bug 766586) androidx86(TIMED_OUT, bug 766586)
 [test_browserElement_inproc_TargetBlank.html]
-skip-if = (toolkit == 'gonk' && !debug)
 [test_browserElement_inproc_TargetTop.html]
 [test_browserElement_inproc_Titlechange.html]
 [test_browserElement_inproc_TopBarrier.html]
 [test_browserElement_inproc_XFrameOptions.html]
 [test_browserElement_inproc_XFrameOptionsAllowFrom.html]
 [test_browserElement_inproc_XFrameOptionsDeny.html]
 [test_browserElement_inproc_XFrameOptionsSameOrigin.html]
 [test_browserElement_oop_NextPaint.html]
 # Disabled due to https://bugzilla.mozilla.org/show_bug.cgi?id=774100
 disabled = temp disabling some OOP tests for WebIDL scope changes
 [test_browserElement_inproc_Reload.html]
 disabled = bug 774100
 [test_browserElement_inproc_OpenWindowEmpty.html]
-skip-if = (toolkit == 'gonk') # Test doesn't work on B2G emulator
--- a/dom/cache/test/mochitest/mochitest.ini
+++ b/dom/cache/test/mochitest/mochitest.ini
@@ -32,15 +32,14 @@ support-files =
 [test_cache_match_vary.html]
 [test_caches.html]
 [test_cache_keys.html]
 [test_cache_put.html]
 [test_cache_requestCache.html]
 [test_cache_delete.html]
 [test_cache_put_reorder.html]
 [test_cache_https.html]
-  skip-if = buildapp == 'b2g' # bug 1162353
 [test_cache_restart.html]
 [test_cache_shrink.html]
 [test_cache_orphaned_cache.html]
 [test_cache_orphaned_body.html]
 [test_cache_untrusted.html]
 [test_chrome_constructor.html]
--- a/dom/cache/test/xpcshell/xpcshell.ini
+++ b/dom/cache/test/xpcshell/xpcshell.ini
@@ -1,16 +1,15 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 [DEFAULT]
 head = head.js
 tail =
-skip-if = toolkit == 'gonk'
 support-files =
   schema_15_profile.zip
 
 # dummy test entry to generate profile zip files
 [make_profile.js]
   skip-if = true
 
 [test_migration.js]
--- a/dom/canvas/crashtests/crashtests.list
+++ b/dom/canvas/crashtests/crashtests.list
@@ -4,20 +4,20 @@ load 360293-1.html
 load 421715-1.html
 load 553938-1.html
 load 647480.html
 load 727547.html
 load 729116.html
 load 745699-1.html
 load 746813-1.html
 load 743499-negative-size.html
-skip-if(Android||B2G) load 745818-large-source.html # Bug XXX - Crashes Android/B2G mid-run w/o a stack
+skip-if(Android) load 745818-large-source.html # Bug XXX - Crashes Android mid-run w/o a stack
 load 767337-1.html
-skip-if(Android||B2G) load 780392-1.html # bug 833371 for B2G
-skip-if(Android||B2G) skip-if(gtkWidget&&isDebugBuild) load 789933-1.html # bug 833371 for B2G, bug 1155252 for linux
+skip-if(Android) load 780392-1.html
+skip-if(Android) skip-if(gtkWidget&&isDebugBuild) load 789933-1.html # bug 1155252 for linux
 load 794463-1.html
 load 802926-1.html
 load 896047-1.html
 load 916128-1.html
 load 934939-1.html
 load 1099143-1.html
 load 1161277-1.html
 load 1183363.html
--- a/dom/canvas/test/chrome/chrome.ini
+++ b/dom/canvas/test/chrome/chrome.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files = nonchrome_webgl_debug_renderer_info.html
 
 [test_webgl_debug_renderer_info.html]
 subsuite = gpu
 [test_drawWindow_widget_layers.html]
 support-files = ../file_drawWindow_source.html ../file_drawWindow_common.js
--- a/dom/canvas/test/mochitest.ini
+++ b/dom/canvas/test/mochitest.ini
@@ -149,28 +149,28 @@ skip-if = toolkit != 'cocoa'
 # See bug 512647.
 [test_2d.gradient.radial.cone.shape2.html]
 disabled = bug 512647
 [test_2d.gradient.radial.cone.behind.html]
 disabled = bug 512647
 [test_2d.gradient.radial.cone.beside.html]
 disabled = bug 512647
 # This is an issue with Quartz's handling of radial gradients and some numeric
-# imprecision that results in errors here. SkiaGL (on Android/Gonk) also has
+# imprecision that results in errors here. SkiaGL (on Android) also has
 # a similar problem.
 [test_2d.gradient.radial.inside2.html]
-skip-if = toolkit == 'cocoa' || toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'cocoa' || toolkit == 'android'
 [test_2d.gradient.radial.inside3.html]
-skip-if = toolkit == 'cocoa' || toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'cocoa' || toolkit == 'android'
 [test_2d.gradient.radial.outside1.html]
-skip-if = toolkit == 'cocoa' || toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'cocoa' || toolkit == 'android'
 [test_2d.gradient.radial.cone.front.html]
-skip-if = toolkit == 'cocoa' || toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'cocoa' || toolkit == 'android'
 [test_2d.gradient.radial.cone.top.html]
-skip-if = toolkit == 'cocoa' || toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'cocoa' || toolkit == 'android'
 # Tests that fail on non-Mac (bug 407107)
 [test_2d.gradient.radial.outside2.html]
 skip-if = toolkit != 'cocoa'
 [test_2d.gradient.radial.outside3.html]
 disabled = bug 1038277
 # These tests only pass on Mac OS X >= 10.5; see bug 450114
 [test_2d.gradient.radial.touch1.html]
 disabled = bug 450114
@@ -201,38 +201,36 @@ skip-if = toolkit != 'cocoa'
 disabled = bug 407107
 [test_2d.strokeRect.zero.5.html]
 [test_bitmaprenderer.html]
 [test_bug232227.html]
 [test_bug613794.html]
 [test_bug764125.html]
 [test_bug856472.html]
 [test_bug866575.html]
-skip-if = (toolkit == 'gonk' && debug) #bug 1045153
 [test_bug902651.html]
 [test_bug1215072.html]
 subsuite = gpu
 [test_canvas.html]
-skip-if = (toolkit == 'gonk' && debug) || (android_version == '18' && debug) #debug-only crash; bug 933541 #android 4.3 debug bug 1143317
+skip-if = (android_version == '18' && debug) #android 4.3 debug bug 1143317
 [test_canvas_focusring.html]
-skip-if = (toolkit == 'gonk' && !debug) || os == 'win' #specialpowers.wrap
+skip-if = os == 'win'
 [test_canvas_font_setter.html]
 [test_canvas_path.html]
 [test_hitregion_canvas.html]
 [test_hitregion_event.html]
-skip-if = os == "android" || appname == "b2g"
+skip-if = os == "android"
 [test_canvas_strokeStyle_getter.html]
 [test_capture.html]
 support-files = captureStream_common.js
 [test_drawImageIncomplete.html]
 [test_drawImage_document_domain.html]
 [test_drawImage_edge_cases.html]
 [test_drawWindow.html]
 support-files = file_drawWindow_source.html file_drawWindow_common.js
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk')
 [test_imagebitmap.html]
 tags = imagebitmap
 [test_imagebitmap_close.html]
 tags = imagebitmap
 [test_imagebitmap_cropping.html]
 tags = imagebitmap
 [test_imagebitmap_extensions.html]
 tags = imagebitmap
@@ -253,17 +251,16 @@ tags = imagebitmap
 [test_mozGetAsFile.html]
 [test_strokeText_throw.html]
 [test_toBlob.html]
 [test_toDataURL_alpha.html]
 [test_toDataURL_lowercase_ascii.html]
 [test_toDataURL_parameters.html]
 [test_windingRuleUndefined.html]
 [test_2d.fillText.gradient.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # bug 1040965
 [test_2d_composite_canvaspattern_setTransform.html]
 [test_createPattern_broken.html]
 [test_filter.html]
 skip-if = (e10s && debug && os == 'win')
 [test_filter_tainted.html]
 [test_offscreencanvas_toblob.html]
 subsuite = gpu
 tags = offscreencanvas
--- a/dom/canvas/test/reftest/reftest.list
+++ b/dom/canvas/test/reftest/reftest.list
@@ -122,27 +122,28 @@ skip-if(Android) pref(webgl.force-layers
 skip-if(Android) == webgl-hanging-scissor-test.html?__  wrapper.html?green.png
 skip-if(Android) == webgl-hanging-scissor-test.html?aa  wrapper.html?green.png
 skip-if(Android) pref(webgl.force-layers-readback,true)  == webgl-hanging-scissor-test.html?readback&__  wrapper.html?green.png
 skip-if(Android) pref(webgl.force-layers-readback,true)  == webgl-hanging-scissor-test.html?readback&aa  wrapper.html?green.png
 
 
 # Check that our experimental prefs still work:
 
-# 16bpp for Android/B2G: [16bpp] * PowerSet([readback, premult, alpha])
+# 16bpp for Android: [16bpp] * PowerSet([readback, premult, alpha])
 # RGB565 dithers 127 to [123,132]. (Max error: 5)
 # RGBA4444 dithers 128 to [119,136], and 191 to [192]. (Max error: 9)
-fuzzy(5,30000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&_______&_____  wrapper.html?colors-no-alpha.png
-fuzzy(5,30000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&_______&_____  wrapper.html?colors-no-alpha.png
-fuzzy(5,30000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&premult&_____  wrapper.html?colors-no-alpha.png
-fuzzy(5,30000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&premult&_____  wrapper.html?colors-no-alpha.png
-fuzzy(9,40000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&_______&alpha  wrapper.html?colors-non-premult.png
-fuzzy(9,40000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&_______&alpha  wrapper.html?colors-non-premult.png
-fuzzy(9,40000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&premult&alpha  wrapper.html?colors-premult.png
-fuzzy(9,40000) skip-if(!(Android||B2G)) skip-if(Android) pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&premult&alpha  wrapper.html?colors-premult.png
+# Bug 1285531 - tests disabled for memory corruption
+fuzzy(5,30000) skip pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&_______&_____  wrapper.html?colors-no-alpha.png
+fuzzy(5,30000) skip pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&_______&_____  wrapper.html?colors-no-alpha.png
+fuzzy(5,30000) skip pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&premult&_____  wrapper.html?colors-no-alpha.png
+fuzzy(5,30000) skip pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&premult&_____  wrapper.html?colors-no-alpha.png
+fuzzy(9,40000) skip pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&_______&alpha  wrapper.html?colors-non-premult.png
+fuzzy(9,40000) skip pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&_______&alpha  wrapper.html?colors-non-premult.png
+fuzzy(9,40000) skip pref(webgl.prefer-16bpp,true)                                         == webgl-color-test.html?16bpp&________&premult&alpha  wrapper.html?colors-premult.png
+fuzzy(9,40000) skip pref(webgl.prefer-16bpp,true) pref(webgl.force-layers-readback,true)  == webgl-color-test.html?16bpp&readback&premult&alpha  wrapper.html?colors-premult.png
 
 # Force native GL (Windows):
 skip-if(!winWidget) pref(webgl.disable-angle,true)  == webgl-color-test.html?native-gl  wrapper.html?colors-no-alpha.png
 
 
 # Non-WebGL Reftests!
 
 # Do we correctly handle multiple clip paths?
@@ -151,18 +152,18 @@ skip-if(!winWidget) pref(webgl.disable-a
 # Bug 1255062
 == clip-multiple-move-1.html clip-multiple-move-1-ref.html
 == clip-multiple-move-2.html clip-multiple-move-2-ref.html
 
 # Bug 815648
 == stroketext-shadow.html stroketext-shadow-ref.html
 
 # focus rings
-pref(canvas.focusring.enabled,true) skip-if(B2G) skip-if(cocoaWidget) skip-if(winWidget) needs-focus == drawFocusIfNeeded.html drawFocusIfNeeded-ref.html
-pref(canvas.customfocusring.enabled,true) skip-if(B2G) skip-if(cocoaWidget) skip-if(Android) skip-if(winWidget) fuzzy-if(gtkWidget,64,410) needs-focus == drawCustomFocusRing.html drawCustomFocusRing-ref.html
+pref(canvas.focusring.enabled,true) skip-if(cocoaWidget) skip-if(winWidget) needs-focus == drawFocusIfNeeded.html drawFocusIfNeeded-ref.html
+pref(canvas.customfocusring.enabled,true) skip-if(Android||cocoaWidget||winWidget) fuzzy-if(gtkWidget,64,410) needs-focus == drawCustomFocusRing.html drawCustomFocusRing-ref.html
 
 # Check that captureStream() displays in a local video element
 == capturestream.html wrapper.html?green.png
 
 fuzzy-if(azureSkia,16,2) fuzzy-if(Android,3,40) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),1,1) == 1177726-text-stroke-bounds.html 1177726-text-stroke-bounds-ref.html
 
 # Canvas Filter Reftests
 include filters/reftest.list
--- a/dom/canvas/test/webgl-mochitest/mochitest.ini
+++ b/dom/canvas/test/webgl-mochitest/mochitest.ini
@@ -1,11 +1,10 @@
 [DEFAULT]
 subsuite = webgl
-skip-if = ((os == 'linux') && (buildapp == 'b2g'))
 
 support-files =
   ensure-exts/ensure-ext.js
   driver-info.js
   es3-data.js
   webgl-util.js
 
 [ensure-exts/test_ANGLE_instanced_arrays.html]
@@ -46,30 +45,28 @@ fail-if = (os == 'android') || (os == 'w
 [ensure-exts/test_common.html]
 
 
 [regress/test_bug_1268096.html]
 
 
 [test_backends.html]
 [test_backbuffer_channels.html]
-fail-if = (os == 'b2g')
 [test_depth_readpixels.html]
 [test_canvas_size.html]
 [test_capture.html]
 support-files = ../captureStream_common.js
 # Even though we use ../ here, in the test HTML, we need to omit this. Sub-CWD relative
 # paths are fine, but they locate the file and dump it in the current directory.
 [test_cubemap_must_be_square.html]
 [test_depth_tex_lazy_clear.html]
 [test_draw.html]
 [test_fb_param.html]
 [test_fb_param_crash.html]
 [test_hidden_alpha.html]
-skip-if = (os == 'b2g') || buildapp == 'mulet' # Mulet - bug 1093639 (crashes in libLLVM-3.0.so)
 [test_hidden_depth_stencil.html]
 fail-if = (os == 'win' && os_version == '5.1')
 [test_implicit_color_buffer_float.html]
 [test_highp_fs.html]
 [test_no_arr_points.html]
 skip-if = android_version == '18' #Android 4.3 aws only; bug 1030942
 [test_noprog_draw.html]
 [test_pixel_pack_buffer.html]
--- a/dom/console/tests/chrome.ini
+++ b/dom/console/tests/chrome.ini
@@ -1,6 +1,6 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   file_empty.html
 
 [test_console.xul]
--- a/dom/crypto/test/mochitest.ini
+++ b/dom/crypto/test/mochitest.ini
@@ -1,11 +1,9 @@
 [DEFAULT]
-# Bug 1010743 - Re-enable WebCrypto tests on b2g
-skip-if = (buildapp == 'b2g')
 support-files =
   file_indexedDB.html
   test-array.js
   test-vectors.js
   test-worker.js
   test_WebCrypto.css
   util.js
 
--- a/dom/devicestorage/test/chrome.ini
+++ b/dom/devicestorage/test/chrome.ini
@@ -1,5 +1,5 @@
 [DEFAULT]
-skip-if = (buildapp == 'b2g' || os == 'android')
+skip-if = os == 'android'
 
 [test_app_permissions.html]
 [test_fs_app_permissions.html]
--- a/dom/devicestorage/test/mochitest.ini
+++ b/dom/devicestorage/test/mochitest.ini
@@ -12,26 +12,24 @@ support-files = devicestorage_common.js
 # [test_diskSpace.html]
 # Possible race between the time we write a file, and the
 # time it takes to be reflected by statfs().  Bug # 791287
 [test_dotdot.html]
 [test_enumerate.html]
 [test_enumerateMultipleContinue.html]
 [test_enumerateOptions.html]
 [test_freeSpace.html]
+# FileSystem API tests start
+[test_fs_basic.html]
+[test_fs_createDirectory.html]
+[test_fs_get.html]
+[test_fs_getFilesAndDirectories.html]
+[test_fs_remove.html]
+[test_fs_createFile.html]
+[test_fs_appendFile.html]
+# FileSystem API tests end
 [test_lastModificationFilter.html]
 [test_overrideDir.html]
 [test_overwrite.html]
 [test_sanity.html]
 [test_usedSpace.html]
 [test_watch.html]
 [test_watchOther.html]
-[test_storageAreaListener.html]
-skip-if = (toolkit != 'gonk')
-
-# FileSystem API tests
-[test_fs_basic.html]
-[test_fs_createDirectory.html]
-[test_fs_get.html]
-[test_fs_getFilesAndDirectories.html]
-[test_fs_remove.html]
-[test_fs_createFile.html]
-[test_fs_appendFile.html]
deleted file mode 100644
--- a/dom/devicestorage/test/test_storageAreaListener.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--
-Any copyright is dedicated to the Public Domain.
-http://creativecommons.org/publicdomain/zero/1.0/
--->
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1126694
--->
-<head>
-<title>Test for device storage area listener API </title>
-<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-<script type="text/javascript" src="devicestorage_common.js"></script>
-
-<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1126694">Mozilla Bug 1126684</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-
-</div>
-<pre id="test">
-<script class="testbody" type="text/javascript">
-
-	devicestorage_setup(function () {
-
-	var XPCOMUtils = SpecialPowers.Cu.import("resource://gre/modules/XPCOMUtils.jsm").XPCOMUtils;
-	var Ci = SpecialPowers.Ci;
-
-	var volumeService = SpecialPowers.Cc["@mozilla.org/telephony/volume-service;1"].getService(Ci.nsIVolumeService);
-
-	var volName = "dummy-volume";
-	var mountPoint = "/data/local/tmp/dummy";
-
-	var storage;
-	if (navigator.deviceStorageAreaListener) {
-		ok (true, "got deviceStorageAreaListener")
-	}
-
-	navigator.deviceStorageAreaListener.addEventListener("storageareachanged", function (e) {
-		info("got storageareachanged event name:" + e.storageName + "\n");
-		info("operation:" + e.operation + "\n");
-
-		if (e.operation == "added") {
-			storage = navigator.getDeviceStorageByNameAndType(e.storageName, "sdcard");
-			ok (storage, "got storage");
-			volumeService.removeFakeVolume(volName);
-		}
-		else if (e.operation == "removed") {
-			ok (true, "got removal event");
-			SimpleTest.finish();
-		}
-	});
-
-	storage = navigator.getDeviceStorageByNameAndType(volName, "sdcard");
-	ok(!storage, "storage area doesn't exist");
-
-	volumeService.createFakeVolume(volName, mountPoint);
-
-        });
-
-</script>
-</pre>
-</body>
-</html>
--- a/dom/encoding/test/chrome.ini
+++ b/dom/encoding/test/chrome.ini
@@ -1,5 +1,4 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files = file_stringencoding.jsm
 
 [test_stringencoding.xul]
--- a/dom/encoding/test/mochitest.ini
+++ b/dom/encoding/test/mochitest.ini
@@ -1,28 +1,27 @@
 [DEFAULT]
 support-files =
+  file_TLD.html
   file_utf16_be_bom.css
   file_utf16_be_bom.js
   file_utf16_be_bom.xhtml
   file_utf16_le_bom.css
   file_utf16_le_bom.js
   file_utf16_le_bom.xhtml
   file_utf16_le_nobom.xhtml
-  file_TLD.html
+  test_BOMEncoding.js
+  test_TextDecoder.js
+  test_TextEncoder.js
   unit/test_big5.js
   unit/test_euc-jp.js
   unit/test_euc-kr.js
   unit/test_gbk.js
   unit/test_iso-2022-jp.js
   unit/test_shift_jis.js
   worker_helper.js
-  test_BOMEncoding.js
-  test_TextDecoder.js
-  test_TextEncoder.js
 
+[test_stringencoding.html]
+[test_submit_euckr.html]
 [test_TextDecoder.html]
 [test_TextEncoder.html]
-[test_stringencoding.html]
-skip-if = buildapp == 'b2g' # b2g(Test timed out on b2g board) b2g-debug(Test timed out on b2g board) b2g-desktop(Test timed out on b2g board)
-[test_submit_euckr.html]
 [test_TLD.html]
 [test_utf16_files.html]
--- a/dom/encoding/test/unit/xpcshell.ini
+++ b/dom/encoding/test/unit/xpcshell.ini
@@ -1,14 +1,12 @@
 [DEFAULT]
 head = head.js
 tail =
-skip-if = toolkit == 'gonk'
-
-[test_misc.js]
-[test_utf.js]
 
 [test_big5.js]
 [test_euc-jp.js]
 [test_euc-kr.js]
 [test_gbk.js]
 [test_iso-2022-jp.js]
+[test_misc.js]
 [test_shift_jis.js]
+[test_utf.js]
--- a/dom/events/test/chrome.ini
+++ b/dom/events/test/chrome.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   bug415498-doc1.html
   bug415498-doc2.html
   bug418986-3.js
   bug591249_iframe.xul
   bug602962.xul
   file_bug679494.html
   window_bug617528.xul
--- a/dom/events/test/mochitest.ini
+++ b/dom/events/test/mochitest.ini
@@ -13,193 +13,173 @@ support-files =
   window_bug659071.html
   window_wheel_default_action.html
   !/gfx/layers/apz/test/mochitest/apz_test_utils.js
 
 [test_accel_virtual_modifier.html]
 [test_addEventListenerExtraArg.html]
 [test_all_synthetic_events.html]
 [test_bug226361.xhtml]
-skip-if = buildapp == 'b2g' || buildapp == 'mulet'
 [test_bug238987.html]
-skip-if = buildapp == 'b2g'
 [test_bug288392.html]
 [test_bug299673-1.html]
 [test_bug1037990.html]
 [test_bug299673-2.html]
 [test_bug322588.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug328885.html]
 [test_bug336682_1.html]
 support-files = test_bug336682.js
 [test_bug367781.html]
 [test_bug368835.html]
 [test_bug379120.html]
 [test_bug391568.xhtml]
 [test_bug402089.html]
 [test_bug405632.html]
 [test_bug409604.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT
+skip-if = toolkit == 'android' #TIMED_OUT
 [test_bug412567.html]
 [test_bug418986-3.html]
-# Sometimes fails to finish after tests pass on 'B2G ICS Emulator'.
-skip-if = (os == 'b2g')
 [test_bug422132.html]
-skip-if = buildapp == 'b2g' # b2g(2 failures out of 8, mousewheel test) b2g-debug(2 failures out of 8, mousewheel test) b2g-desktop(2 failures out of 8, mousewheel test)
 [test_bug426082.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || os == "win" || toolkit == 'android' # b2g(1 failure out of 6, Moving the mouse down from the label should have unpressed the button) b2g-debug(1 failure out of 6, Moving the mouse down from the label should have unpressed the button) b2g-desktop(1 failure out of 6, Moving the mouse down from the label should have unpressed the button)
 [test_bug427537.html]
-[test_bug1003432.html]
-support-files = test_bug1003432.js
 [test_bug428988.html]
 [test_bug432698.html]
-skip-if = buildapp == 'mulet'
 [test_bug443985.html]
 [test_bug447736.html]
 [test_bug448602.html]
 [test_bug450876.html]
-skip-if = buildapp == 'mulet'
 [test_bug456273.html]
 [test_bug457672.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #CRASH_DUMP, RANDOM
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug489671.html]
 [test_bug493251.html]
-skip-if = buildapp == 'mulet' || (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug502818.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug508479.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' #CRASH_DUMP, RANDOM # b2g(drag event, also fails on Android) b2g-debug(drag event, also fails on Android) b2g-desktop(drag event, also fails on Android)
-[test_bug822898.html]
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM # drag event fails
 [test_bug517851.html]
 [test_bug534833.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #CRASH_DUMP, RANDOM # b2g(4 failures out of 6, bug 901564,click not fired, also disabled on Android) b2g-debug(4 failures out of 6, bug 901564,click not fired, also disabled on Android) b2g-desktop(4 failures out of 6, bug 901564,click not fired, also disabled on Android)
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug545268.html]
-skip-if = buildapp == 'mulet' || (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #CRASH_DUMP, RANDOM #Bug 931116, b2g desktop specific, initial triage
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug547996-1.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug547996-2.xhtml]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug556493.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug563329.html]
 skip-if = true # Disabled due to timeouts.
 [test_bug574663.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #CRASH_DUMP, RANDOM
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug591815.html]
 [test_bug593959.html]
 [test_bug603008.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(1 failure out of 615, bug 901533, Six move events fired - got 7, expected 6, also disabled on Android, touchmove) b2g-debug(1 failure out of 615, bug 901533, Six move events fired - got 7, expected 6, also disabled on Android, touchmove) b2g-desktop(1 failure out of 615, bug 901533, Six move events fired - got 7, expected 6, also disabled on Android, touchmove)
+skip-if = toolkit == 'android'
 [test_bug605242.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug607464.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' || (e10s && os == 'win') || (e10s && os == "mac") #CRASH_DUMP, RANDOM, bug 1252273
+skip-if = toolkit == 'android' || (e10s && os == 'win') || (e10s && os == "mac") #CRASH_DUMP, RANDOM, bug 1252273
 [test_bug613634.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug615597.html]
-skip-if = buildapp == 'b2g' # b2g(bug 900969, 5 tests) b2g-debug(bug 900969, 5 tests) b2g-desktop(bug 900969, 5 tests)
 [test_bug624127.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug635465.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug641477.html]
 [test_bug648573.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug650493.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug656379-1.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #Bug 931116, b2g desktop specific, initial triage
+skip-if = toolkit == 'android'
 [test_bug656379-2.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug656954.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug659071.html]
-skip-if = buildapp == 'b2g' # b2g(1 failure out of 2, mousewheel zoom test) b2g-debug(1 failure out of 2, mousewheel zoom test) b2g-desktop(1 failure out of 2, mousewheel zoom test)
 [test_bug659350.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug662678.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug667612.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug667919-1.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #CRASH_DUMP, RANDOM # b2g(bug 900969, 5 tests) b2g-debug(bug 900969, 5 tests) b2g-desktop(bug 900969, 5 tests)
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug684208.html]
 [test_bug689564.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug698929.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_bug704423.html]
 [test_bug741666.html]
 [test_bug742376.html]
 [test_bug812744.html]
+[test_bug822898.html]
 [test_bug855741.html]
 [test_bug864040.html]
-skip-if = buildapp == 'b2g' # b2g(failing when the test gets moved around, and on debug)
 [test_bug924087.html]
 [test_bug930374-content.html]
 [test_bug944011.html]
 [test_bug944847.html]
 [test_bug946632.html]
-skip-if = buildapp == 'b2g' || (e10s && os == "mac") # bug 1252273
+skip-if = (e10s && os == "mac") # bug 1252273
 [test_bug967796.html]
-skip-if = toolkit == "gonk" || e10s # bug 1251659
+skip-if = e10s # bug 1251659
 [test_bug985988.html]
 [test_bug998809.html]
+[test_bug1003432.html]
+support-files = test_bug1003432.js
+[test_bug1013412.html]
 [test_bug1017086_disable.html]
 support-files = bug1017086_inner.html
 [test_bug1017086_enable.html]
 support-files = bug1017086_inner.html
 [test_bug1079236.html]
+[test_bug1096146.html]
+support-files =
+  bug1096146_embedded.html
 [test_bug1145910.html]
 [test_bug1150308.html]
 [test_bug1248459.html]
+[test_bug1264380.html]
+run-if = (e10s && os != "win") # Bug 1270043, crash at windows platforms; Bug1264380 comment 20, nsDragService::InvokeDragSessionImpl behaves differently among platform implementations in non-e10s mode which prevents us to check the validity of nsIDragService::getCurrentSession() consistently via synthesize mouse clicks in non-e10s mode.
 [test_clickevent_on_input.html]
 skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_continuous_wheel_events.html]
-skip-if = buildapp == 'b2g' # b2g(5535 passed, 108 failed - more tests running than desktop) b2g-debug(5535 passed, 108 failed - more tests running than desktop) b2g-desktop(5535 passed, 108 failed - more tests running than desktop)
 [test_dblclick_explicit_original_target.html]
-[test_dom_keyboard_event.html]
-skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
-[test_dom_mouse_event.html]
-skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
-[test_dom_storage_event.html]
-[test_dom_wheel_event.html]
-skip-if = buildapp == 'b2g' # b2g(456 failed out of 19873, mousewheel test) b2g-debug(456 failed out of 19873, mousewheel test) b2g-desktop(456 failed out of 19873, mousewheel test)
-[test_draggableprop.html]
-skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
-[test_dragstart.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' # b2g(drag event, also fails on Android) b2g-debug(drag event, also fails on Android) b2g-desktop(drag event, also fails on Android)
-[test_error_events.html]
-skip-if = toolkit == 'android' #TIMED_OUT
-[test_eventctors.html]
-skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
-[test_eventTimeStamp.html]
-[test_focus_disabled.html]
-skip-if = buildapp == 'mulet'
-[test_legacy_event.html]
-[test_messageEvent.html]
-[test_moz_mouse_pixel_scroll_event.html]
-skip-if = buildapp == 'b2g' # bug 1126090, no wheel events on b2g
-[test_onerror_handler_args.html]
-[test_wheel_default_action.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g'
+[test_dom_activate_event.html]
 [test_dom_before_after_keyboard_event.html]
 support-files =
   bug989198_embedded.html
   bug989198_helper.js
 [test_dom_before_after_keyboard_event_remote.html]
 support-files =
   bug989198_embedded.html
   bug989198_helper.js
-skip-if = buildapp == 'b2g' || e10s
-[test_bug1096146.html]
-support-files =
-  bug1096146_embedded.html
-[test_offsetxy.html]
+skip-if = e10s
+[test_dom_keyboard_event.html]
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
+[test_dom_mouse_event.html]
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
+[test_dom_storage_event.html]
+[test_dom_wheel_event.html]
+[test_draggableprop.html]
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
+[test_dragstart.html]
+[test_error_events.html]
+skip-if = toolkit == 'android' #TIMED_OUT
+[test_eventctors.html]
+skip-if = toolkit == 'android' #CRASH_DUMP, RANDOM
 [test_eventhandler_scoping.html]
-[test_bug1013412.html]
-skip-if = buildapp == 'b2g' # no wheel events on b2g
-[test_dom_activate_event.html]
-[test_bug1264380.html]
-run-if = (e10s && os != "win") # Bug 1270043, crash at windows platforms; Bug1264380 comment 20, nsDragService::InvokeDragSessionImpl behaves differently among platform implementations in non-e10s mode which prevents us to check the validity of nsIDragService::getCurrentSession() consistently via synthesize mouse clicks in non-e10s mode.
+[test_eventTimeStamp.html]
+[test_focus_disabled.html]
+[test_legacy_event.html]
+[test_messageEvent.html]
+[test_messageEvent_init.html]
+[test_moz_mouse_pixel_scroll_event.html]
+[test_offsetxy.html]
+[test_onerror_handler_args.html]
 [test_passive_listeners.html]
 [test_paste_image.html]
-[test_messageEvent_init.html]
+[test_wheel_default_action.html]
 [test_bug687787.html]
--- a/dom/events/test/pointerevents/mochitest.ini
+++ b/dom/events/test/pointerevents/mochitest.ini
@@ -1,10 +1,10 @@
 [DEFAULT]
-skip-if = (toolkit == 'gonk') || (os == 'android') # Bug 1178701 - Issue on 'B2G ICS Emulator' and 'Android'
+skip-if = os == 'android' # Bug 1312791
 support-files =
   mochitest_support_external.js
   mochitest_support_internal.js
   pointerevent_styles.css
   pointerevent_support.js
 
 [test_pointerevent_attributes_mouse-manual.html]
   support-files = pointerevent_attributes_mouse-manual.html
--- a/dom/html/reftests/autofocus/reftest.list
+++ b/dom/html/reftests/autofocus/reftest.list
@@ -1,14 +1,14 @@
 default-preferences pref(dom.forms.number,true) pref(dom.forms.datetime,true)
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == input-load.html input-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == input-create.html input-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == input-number.html input-number-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == input-time.html input-time-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == button-load.html button-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == button-create.html button-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == textarea-load.html textarea-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,3) needs-focus == textarea-create.html textarea-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,9,6) needs-focus == select-load.html select-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,2,4) needs-focus == select-create.html select-ref.html # B2G timed out waiting for reftest-wait to be removed # Initial mulet triage: parity with B2G/B2G Desktop
+fuzzy-if(skiaContent,1,3) needs-focus == input-load.html input-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == input-create.html input-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == input-number.html input-number-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == input-time.html input-time-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == button-load.html button-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == button-create.html button-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == textarea-load.html textarea-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == textarea-create.html textarea-ref.html
+fuzzy-if(skiaContent,9,6) needs-focus == select-load.html select-ref.html
+fuzzy-if(skiaContent,2,4) needs-focus == select-create.html select-ref.html
 needs-focus == autofocus-after-load.html autofocus-after-load-ref.html
-fails-if(B2G||Mulet) fuzzy-if(skiaContent,2,5) needs-focus == autofocus-leaves-iframe.html autofocus-leaves-iframe-ref.html # B2G focus difference between test and reference # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(skiaContent,2,5) needs-focus == autofocus-after-body-focus.html autofocus-after-body-focus-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+fuzzy-if(skiaContent,2,5) needs-focus == autofocus-leaves-iframe.html autofocus-leaves-iframe-ref.html
+fuzzy-if(skiaContent,2,5) needs-focus == autofocus-after-body-focus.html autofocus-after-body-focus-ref.html
--- a/dom/html/reftests/reftest.list
+++ b/dom/html/reftests/reftest.list
@@ -1,14 +1,14 @@
 # autofocus attribute (we can't test with mochitests)
 include autofocus/reftest.list
 include toblob-todataurl/reftest.list
 
-skip-if(B2G) == 41464-1a.html 41464-1-ref.html
-skip-if(B2G) == 41464-1b.html 41464-1-ref.html
+== 41464-1a.html 41464-1-ref.html
+== 41464-1b.html 41464-1-ref.html
 == 52019-1.html 52019-1-ref.html
 == 82711-1.html 82711-1-ref.html
 == 82711-2.html 82711-2-ref.html
 != 82711-1-ref.html 82711-2-ref.html
 != 468263-1a.html about:blank
 != 468263-1b.html about:blank
 != 468263-1c.html about:blank
 != 468263-1d.html about:blank
@@ -21,33 +21,33 @@ skip-if(B2G) == 41464-1b.html 41464-1-re
 == 573322-quirks.html 573322-quirks-ref.html
 == 573322-no-quirks.html 573322-no-quirks-ref.html
 == 596455-1a.html 596455-ref-1.html
 == 596455-1b.html 596455-ref-1.html
 == 596455-2a.html 596455-ref-2.html
 == 596455-2b.html 596455-ref-2.html
 == 610935.html 610935-ref.html
 == 649134-1.html 649134-ref.html
-skip-if(Android||B2G) == 649134-2.html 649134-2-ref.html
+skip-if(Android) == 649134-2.html 649134-2-ref.html
 
 == bug448564-1_malformed.html bug448564-1_well-formed.html
 == bug448564-1_malformed.html bug448564-1_ideal.html
 
 == bug448564-4a.html          bug448564-4b.html
 == bug502168-1_malformed.html bug502168-1_well-formed.html
 
 == responsive-image-load-shortcircuit.html responsive-image-load-shortcircuit-ref.html
 == image-load-shortcircuit.html image-load-shortcircuit-ref.html
 
 # Test that image documents taken into account CSS properties like
 # image-orientation when determining the size of the image.
 # (Fuzzy necessary due to pixel-wise comparison of different JPEGs.
 # The vast majority of the fuzziness comes from Linux and WinXP.)
 fuzzy(1,149) == bug917595-iframe-1.html    bug917595-1-ref.html
-skip-if(B2G||Mulet) fuzzy-if((!B2G&&!Mulet),3,640) == bug917595-exif-rotated.jpg bug917595-pixel-rotated.jpg # bug 1060869 # Bug 1150490 disabling on Mulet as on B2G
+fuzzy(3,640) == bug917595-exif-rotated.jpg bug917595-pixel-rotated.jpg # bug 1060869
 
 # Test support for SVG-as-image in <picture> elements.
 == bug1106522-1.html bug1106522-ref.html
 == bug1106522-2.html bug1106522-ref.html
 
 == href-attr-change-restyles.html href-attr-change-restyles-ref.html
 == figure.html figure-ref.html
 == pre-1.html pre-1-ref.html
--- a/dom/html/test/chrome.ini
+++ b/dom/html/test/chrome.ini
@@ -1,12 +1,10 @@
 [DEFAULT]
 support-files =
   file_anchor_ping.html
   wakelock.ogg
   wakelock.ogv
 
 [test_anchor_ping.html]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 [test_audio_wakelock.html]
-skip-if = buildapp == 'mulet' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
 [test_video_wakelock.html]
-skip-if = toolkit == 'android' || (toolkit == 'gonk' && debug) #bug 871015, bug 881443
--- a/dom/html/test/forms/chrome.ini
+++ b/dom/html/test/forms/chrome.ini
@@ -1,6 +1,5 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files =
   submit_invalid_file.sjs
 [test_autocompleteinfo.html]
 [test_submit_invalid_file.html]
--- a/dom/html/test/forms/mochitest.ini
+++ b/dom/html/test/forms/mochitest.ini
@@ -2,84 +2,74 @@
 support-files =
   save_restore_radio_groups.sjs
   test_input_number_data.js
   !/dom/html/test/reflect.js
 
 [test_bug1039548.html]
 [test_bug1283915.html]
 [test_bug1286509.html]
-skip-if = os == "android" || appname == "b2g" # up/down arrow keys not supported on android/b2g
+skip-if = os == "android" # up/down arrow keys not supported on android
 [test_button_attributes_reflection.html]
 [test_input_radio_indeterminate.html]
 [test_input_radio_radiogroup.html]
 [test_input_radio_required.html]
 [test_change_event.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_datalist_element.html]
 [test_form_attribute-1.html]
 [test_form_attribute-2.html]
 [test_form_attribute-3.html]
 [test_form_attribute-4.html]
 [test_form_attributes_reflection.html]
 [test_form_named_getter_dynamic.html]
 [test_formaction_attribute.html]
-skip-if = buildapp == 'mulet'
 [test_formnovalidate_attribute.html]
-skip-if = buildapp == 'mulet'
 [test_input_attributes_reflection.html]
 [test_input_autocomplete.html]
 [test_input_color_input_change_events.html]
-skip-if = buildapp == 'mulet'
 [test_input_color_picker_initial.html]
-skip-if = buildapp == 'mulet'
 [test_input_color_picker_popup.html]
 skip-if = android_version == '18' # Android, bug 1147974
 [test_input_color_picker_update.html]
 skip-if = android_version == '18' # Android, bug 1147974
 [test_input_datetime_focus_blur.html]
-skip-if = os == "android" || appname == "b2g"
+skip-if = os == "android"
 [test_input_datetime_tabindex.html]
-skip-if = os == "android" || appname == "b2g"
+skip-if = os == "android"
 [test_input_defaultValue.html]
 [test_input_email.html]
 [test_input_event.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || android_version == '18' #Bug 931116, b2g desktop and mulet specific, initial triage; on Android, bug 1147974
+skip-if = android_version == '18' # bug 1147974
 [test_input_file_picker.html]
-skip-if = buildapp == 'b2g' # b2g(5 failures out of 139 and timing out, bug 901581) b2g-debug(5 failures out of 139 and timing out, bug 901581) b2g-desktop(5 failures out of 139 and timing out, bug 901581)
 [test_input_list_attribute.html]
 [test_input_number_l10n.html]
-# We don't build ICU for Firefox for Android or Firefox OS:
-skip-if = os == "android" || appname == "b2g"
+# We don't build ICU for Firefox for Android:
+skip-if = os == "android"
 [test_input_number_key_events.html]
 [test_input_number_mouse_events.html]
-# Not run on Firefox OS and Firefox for Android where the spin buttons are hidden:
-skip-if = os == "android" || appname == "b2g" || buildapp == "mulet"
+# Not run on Firefox for Android where the spin buttons are hidden:
+skip-if = os == "android"
 [test_input_number_rounding.html]
-skip-if = os == "android" || buildapp == "mulet"
+skip-if = os == "android"
 [test_input_number_validation.html]
-# We don't build ICU for Firefox for Android or Firefox OS:
-skip-if = os == "android" || appname == "b2g"
+# We don't build ICU for Firefox for Android:
+skip-if = os == "android"
 [test_input_number_focus.html]
 [test_input_range_attr_order.html]
 [test_input_range_key_events.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_input_range_mouse_and_touch_events.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure; bug 926546
 [test_input_range_rounding.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_input_sanitization.html]
 [test_input_textarea_set_value_no_scroll.html]
 [test_input_time_key_events.html]
-skip-if = os == "android" || appname == "b2g"
+skip-if = os == "android"
 [test_input_time_focus_blur_events.html]
-skip-if = os == "android" || appname == "b2g"
+skip-if = os == "android"
 [test_input_types_pref.html]
 [test_input_typing_sanitization.html]
-skip-if = buildapp == 'mulet'
 [test_input_untrusted_key_events.html]
 [test_input_url.html]
 [test_interactive_content_in_label.html]
 [test_label_control_attribute.html]
 [test_label_input_controls.html]
 [test_max_attribute.html]
 [test_maxlength_attribute.html]
 [test_minlength_attribute.html]
@@ -105,14 +95,13 @@ skip-if = android_version == '18' || os 
 skip-if = android_version == '18' || os == 'mac'
 [test_select_selectedOptions.html]
 [test_select_validation.html]
 [test_set_range_text.html]
 [test_step_attribute.html]
 [test_stepup_stepdown.html]
 [test_textarea_attributes_reflection.html]
 [test_validation.html]
-skip-if = buildapp == 'b2g' # b2g(374 total, bug 901848, no keygen support) b2g-debug(374 total, bug 901848, no keygen support) b2g-desktop(374 total, bug 901848, no keygen support)
 [test_valueAsDate_pref.html]
 [test_valueasdate_attribute.html]
 [test_valueasnumber_attribute.html]
 [test_validation_not_in_doc.html]
 [test_reportValidation_preventDefault.html]
--- a/dom/html/test/imports/mochitest.ini
+++ b/dom/html/test/imports/mochitest.ini
@@ -37,21 +37,16 @@ support-files =
   file_blocking_DOMContentLoaded_B.html
   file_blocking_DOMContentLoaded_C.html
   file_blocking_DOMContentLoaded_D.html
   file_element_upgrade.html
   file_CSP_sandbox.html
   file_CSP_sandbox_import.html
 
 [test_cycle_1.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_cycle_2.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_cycle_3.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_cycle_4.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_blocking_DOMContentLoaded.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_encoding.html]
 [test_defaultView.html]
 [test_element_upgrade.html]
 [test_CSP_sandbox.html]
--- a/dom/html/test/mochitest.ini
+++ b/dom/html/test/mochitest.ini
@@ -217,17 +217,17 @@ support-files =
 [test_bug109445.xhtml]
 [test_bug1297.html]
 [test_bug1366.html]
 [test_bug1400.html]
 [test_bug143220.html]
 [test_bug182279.html]
 [test_bug2082.html]
 [test_bug209275.xhtml]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(timed out, 47 tests, bug 870262, :visited support) b2g-debug(timed out, 47 tests, bug 870262, :visited support) b2g-desktop(timed out, 47 tests, bug 870262, :visited support)
+skip-if = toolkit == 'android' #TIMED_OUT
 [test_bug237071.html]
 [test_bug242709.html]
 [test_bug24958.html]
 [test_bug274626.html]
 [test_bug277724.html]
 [test_bug277890.html]
 [test_bug287465.html]
 [test_bug295561.html]
@@ -276,33 +276,31 @@ skip-if = buildapp == 'b2g' || toolkit =
 [test_bug401160.xhtml]
 [test_bug405242.html]
 [test_bug406596.html]
 [test_bug417760.html]
 [test_bug421640.html]
 [test_bug424698.html]
 [test_bug428135.xhtml]
 [test_bug430351.html]
-skip-if = buildapp == 'b2g' # b2g(13 failing out of 700, not focusable iframes? bug 902207) b2g-debug(13 failing out of 700, not focusable iframes? bug 902207) b2g-desktop(13 failing out of 700, not focusable iframes? bug 902207)
 [test_bug430392.html]
 [test_bug441930.html]
 [test_bug442801.html]
 [test_bug448166.html]
 [test_bug456229.html]
 [test_bug458037.xhtml]
 [test_bug460568.html]
 [test_bug481335.xhtml]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(timed out, bug 870262, :visited support) b2g-debug(timed out, bug 870262, :visited support) b2g-desktop(timed out, bug 870262, :visited support)
+skip-if = toolkit == 'android' #TIMED_OUT
 [test_bug500885.html]
 [test_bug514856.html]
 skip-if = toolkit == 'android'
 [test_bug518122.html]
 [test_bug519987.html]
 [test_bug523771.html]
-skip-if = buildapp == 'b2g' # b2g(onload of iframe not firing, because submit not working?) b2g-debug(onload of iframe not firing, because submit not working?) b2g-desktop(onload of iframe not firing, because submit not working?)
 [test_bug529819.html]
 [test_bug529859.html]
 [test_bug535043.html]
 [test_bug536891.html]
 [test_bug536895.html]
 [test_bug546995.html]
 [test_bug547850.html]
 [test_bug551846.html]
@@ -316,17 +314,16 @@ skip-if = toolkit == 'android' #TIMED_OU
 [test_bug557087-5.html]
 [test_bug557087-6.html]
 [test_bug557620.html]
 [test_bug558788-1.html]
 [test_bug558788-2.html]
 [test_bug560112.html]
 [test_bug561634.html]
 [test_bug561636.html]
-skip-if = buildapp == 'b2g' # b2g(observerservice not working) b2g-debug(observerservice not working) b2g-desktop(observerservice not working)
 [test_bug561640.html]
 [test_bug564001.html]
 [test_bug566046.html]
 [test_bug567938-1.html]
 [test_bug567938-2.html]
 [test_bug567938-3.html]
 [test_bug567938-4.html]
 [test_bug569955.html]
@@ -343,88 +340,76 @@ skip-if = buildapp == 'b2g' # b2g(observ
 [test_bug590353-1.html]
 [test_bug590353-2.html]
 [test_bug590363.html]
 [test_bug592802.html]
 [test_bug593689.html]
 [test_bug595429.html]
 [test_bug595447.html]
 [test_bug595449.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure
 [test_bug596350.html]
 [test_bug596511.html]
 [test_bug598643.html]
 [test_bug598833-1.html]
 [test_bug600155.html]
 [test_bug601030.html]
 [test_bug605124-1.html]
 [test_bug605124-2.html]
-skip-if = buildapp == 'mulet' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
 [test_bug605125-1.html]
 [test_bug605125-2.html]
-skip-if = buildapp == 'mulet' # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
 [test_bug606817.html]
 [test_bug607145.html]
 [test_bug610212.html]
 [test_bug610687.html]
 [test_bug611189.html]
 [test_bug612730.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' # b2g(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-debug(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-desktop(form control not selected/checked with synthesizeMouse, also fails on Android)
+skip-if = toolkit == 'android' # form control not selected/checked with synthesizeMouse
 [test_bug613113.html]
-skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
 [test_bug613019.html]
 [test_bug613722.html]
 [test_bug613979.html]
 [test_bug615595.html]
 [test_bug615833.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' || os == 'mac' #TIMED_OUT # b2g(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-debug(form control not selected/checked with synthesizeMouse, also fails on Android) b2g-desktop(form control not selected/checked with synthesizeMouse, also fails on Android) osx(bug 1275664)
+skip-if = toolkit == 'android' || os == 'mac' #TIMED_OUT # form control not selected/checked with synthesizeMouse, osx(bug 1275664)
 [test_bug617528.html]
 [test_bug618948.html]
-skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
 [test_bug619278.html]
-skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
 [test_bug622558.html]
 [test_bug622597.html]
-skip-if = buildapp == 'b2g' # b2g(bug 587671, need an invalidformsubmit observer) b2g-debug(bug 587671, need an invalidformsubmit observer) b2g-desktop(bug 587671, need an invalidformsubmit observer)
 [test_bug623291.html]
 [test_bug6296.html]
 [test_bug629801.html]
 [test_bug633058.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug636336.html]
 [test_bug641219.html]
 [test_bug643051.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug646157.html]
 [test_bug649134.html]
 # This extra subdirectory is needed due to the nature of this test.
 # With the bug, the test loads the base URL of the bug649134/file_*.sjs
 # files, and the mochitest server responds with the contents of index.html if
 # it exists in that case, which we use to detect failure.
 # We cannot have index.html in this directory because it would prevent
 # running the tests here.
 support-files =
   bug649134/file_bug649134-1.sjs
   bug649134/file_bug649134-2.sjs
   bug649134/index.html
 [test_bug651956.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug658746.html]
 [test_bug659596.html]
 [test_bug659743.xml]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug660663.html]
 [test_bug660959-1.html]
 [test_bug660959-2.html]
 [test_bug660959-3.html]
 [test_bug666200.html]
 [test_bug666666.html]
 [test_bug669012.html]
 [test_bug674558.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug674927.html]
 [test_bug677463.html]
 [test_bug677658.html]
 [test_bug682886.html]
 [test_bug691.html]
 [test_bug694.html]
 [test_bug694503.html]
 [test_bug696.html]
@@ -438,17 +423,16 @@ skip-if = (buildapp == 'b2g' && toolkit 
 [test_bug797113.html]
 [test_bug803677.html]
 [test_bug821307.html]
 [test_bug827126.html]
 [test_bug838582.html]
 [test_bug839371.html]
 [test_bug839913.html]
 [test_bug841466.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure
 [test_bug845057.html]
 [test_bug869040.html]
 [test_bug870787.html]
 [test_bug874758.html]
 [test_bug879319.html]
 [test_bug885024.html]
 [test_bug893537.html]
 [test_bug95530.html]
@@ -462,77 +446,70 @@ skip-if = (toolkit == 'gonk' && debug) #
 [test_change_crossorigin.html]
 [test_checked.html]
 [test_dir_attributes_reflection.html]
 [test_dl_attributes_reflection.html]
 [test_element_prototype.html]
 [test_embed_attributes_reflection.html]
 [test_formData.html]
 [test_formSubmission.html]
-skip-if = buildapp == 'b2g' || toolkit == 'android' #TIMED_OUT # b2g(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) b2g-debug(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) b2g-desktop(NS_ERROR_FILE_TARGET_DOES_NOT_EXIST)
+skip-if = toolkit == 'android' #TIMED_OUT
 [test_formSubmission2.html]
 skip-if = toolkit == 'android'
 [test_formelements.html]
 [test_fullscreen-api.html]
 tags = fullscreen
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' # b2g(time out, some kind of focus issue) b2g-debug(time out, some kind of focus issue) b2g-desktop(time out, some kind of focus issue)
+skip-if = toolkit == 'android'
 [test_fullscreen-api-race.html]
 tags = fullscreen
-skip-if = buildapp == 'b2g' || toolkit == 'android' # just copy the conditions from the test above
+skip-if = toolkit == 'android' # just copy the conditions from the test above
 [test_hidden.html]
 [test_html_attributes_reflection.html]
 [test_htmlcollection.html]
 [test_iframe_sandbox_general.html]
 tags = openwindow
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_iframe_sandbox_inheritance.html]
 tags = openwindow
 [test_iframe_sandbox_modal.html]
 tags = openwindow
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' || e10s #modal tests fail on android # b2g(modal tests fail on B2G) b2g-debug(modal tests fail on B2G) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
+skip-if = toolkit == 'android' || e10s #modal tests fail on android
 [test_iframe_sandbox_navigation.html]
 tags = openwindow
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #time out on b2g desktop specific
 [test_iframe_sandbox_navigation2.html]
 tags = openwindow
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #time out on b2g desktop specific
 [test_iframe_sandbox_plugins.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' # b2g(plugins not supported) b2g-debug(plugins not supported) b2g-desktop(plugins not supported)
+skip-if = toolkit == 'android' # plugins not supported
 [test_iframe_sandbox_popups.html]
 tags = openwindow
-skip-if = buildapp == 'b2g' # b2g(multiple concurrent window.open()s fail on B2G) b2g-debug(multiple concurrent window.open()s fail on B2G) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
 [test_iframe_sandbox_popups_inheritance.html]
 tags = openwindow
-skip-if = buildapp == 'b2g' || toolkit == 'android' # b2g(multiple concurrent window.open()s fail on B2G) b2g-debug(multiple concurrent window.open()s fail on B2G) b2g-desktop(Bug 931116, b2g desktop specific, initial triage) android(bug 939642)
+skip-if = toolkit == 'android' # bug 939642
 [test_iframe_sandbox_redirect.html]
 [test_iframe_sandbox_refresh.html]
 [test_iframe_sandbox_same_origin.html]
 [test_iframe_sandbox_workers.html]
 [test_img_attributes_reflection.html]
 [test_imageSrcSet.html]
 [test_imports_basics.html]
 [test_imports_redirect.html]
 [test_imports_nonhttp.html]
 [test_imports_nested.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_imports_nested_2.html]
-skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
 [test_li_attributes_reflection.html]
 [test_link_attributes_reflection.html]
 [test_link_sizes.html]
 [test_map_attributes_reflection.html]
 [test_meta_attributes_reflection.html]
 [test_mod_attributes_reflection.html]
 [test_mozaudiochannel.html]
-skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Perma-orange on debug emulator) b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
 [test_named_options.html]
 [test_nested_invalid_fieldsets.html]
 [test_object_attributes_reflection.html]
 [test_object_plugin_nav.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' # b2g(plugins not supported) b2g-debug(plugins not supported) b2g-desktop(plugins not supported)
+skip-if = toolkit == 'android' # plugins not supported
 [test_ol_attributes_reflection.html]
 [test_option_defaultSelected.html]
 [test_option_selected_state.html]
 [test_param_attributes_reflection.html]
 [test_q_attributes_reflection.html]
 [test_restore_from_parser_fragment.html]
 [test_rowscollection.html]
 [test_srcdoc-2.html]
@@ -542,45 +519,43 @@ skip-if = buildapp == 'mulet' || buildap
 [test_ul_attributes_reflection.html]
 [test_input_files_not_nsIFile.html]
 [test_ignoreuserfocus.html]
 [test_fragment_form_pointer.html]
 [test_bug1682.html]
 [test_bug1823.html]
 [test_bug57600.html]
 [test_bug196523.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 [test_bug199692.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || toolkit == 'android' #bug 811644 #Bug 931116, b2g desktop specific, initial triage
+skip-if = toolkit == 'android' #bug 811644
 [test_bug172261.html]
 [test_bug255820.html]
 [test_bug259332.html]
 [test_bug311681.html]
 [test_bug311681.xhtml]
 [test_bug324378.html]
 [test_bug332848.xhtml]
 [test_bug340017.xhtml]
 [test_bug359657.html]
 [test_bug369370.html]
-skip-if = buildapp == "mulet" || buildapp == "b2g" || toolkit == "android" || toolkit == "windows" # disabled on Windows because of bug 1234520
+skip-if = toolkit == "android" || toolkit == "windows" # disabled on Windows because of bug 1234520
 [test_bug380383.html]
 [test_bug391777.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android' || e10s # b2g(showmodaldialog) b2g-debug(showmodaldialog) b2g-desktop(showmodaldialog)
+skip-if = toolkit == 'android' || e10s
 [test_bug402680.html]
 [test_bug403868.html]
 [test_bug403868.xhtml]
 [test_bug435128.html]
 skip-if = true # Disabled for timeouts.
 [test_bug463104.html]
 [test_form-parsing.html]
 [test_viewport.html]
 [test_documentAll.html]
 [test_document-element-inserted.html]
 [test_document.watch.html]
-skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(expects document.cookie setting to work) b2g-desktop(expects document.cookie setting to work)
 [test_bug445004.html]
 skip-if = true || toolkit == 'android' # Disabled permanently (bug 559932).
 [test_bug446483.html]
 skip-if = toolkit == 'android'
 [test_bug448564.html]
 [test_bug478251.html]
 [test_bug481440.html]
 [test_bug481647.html]
@@ -588,46 +563,43 @@ skip-if = toolkit == 'android'
 [test_bug486741.html]
 [test_bug489532.html]
 [test_bug497242.xhtml]
 [test_bug499092.html]
 [test_bug512367.html]
 [test_bug677495.html]
 [test_bug677495-1.html]
 [test_bug741266.html]
-skip-if = buildapp == "mulet" || buildapp == "b2g" || toolkit == "android" || toolkit == "windows" # b2g(needs control of popup window size) b2g-debug(needs control of popup window size) b2g-desktop(needs control of popup window size) windows(bug 1234520)
+skip-if = toolkit == "android" || toolkit == "windows" # Android: needs control of popup window size, windows(bug 1234520)
 [test_non-ascii-cookie.html]
-skip-if = buildapp == 'b2g'
 support-files = file_cookiemanager.js
 [test_bug765780.html]
 [test_bug871161.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') #Bug 931116, b2g desktop specific, initial triage
 support-files = file_bug871161-1.html file_bug871161-2.html
 [test_bug1013316.html]
 [test_hash_encoded.html]
 [test_bug1081037.html]
 [test_window_open_close.html]
 tags = openwindow
-skip-if = buildapp == 'b2g' # bug 1129014
 [test_img_complete.html]
 [test_viewport_resize.html]
 [test_image_clone_load.html]
 [test_bug1203668.html]
 [test_bug1166138.html]
 [test_bug1230665.html]
 [test_filepicker_default_directory.html]
-skip-if = buildapp == 'mulet' || buildapp == 'b2g' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_bug1233598.html]
 [test_bug1250401.html]
 [test_bug1260664.html]
 [test_bug1261673.html]
 skip-if = (os == 'android' || os == 'mac')
 [test_bug1261674-1.html]
 skip-if = (os == 'android' || os == 'mac')
 [test_bug1261674-2.html]
 skip-if = (os == 'android' || os == 'mac')
 [test_bug1260704.html]
 [test_allowMedia.html]
 [test_bug1292522_same_domain_with_different_port_number.html]
 [test_bug1295719_event_sequence_for_arrow_keys.html]
-skip-if = os == "android" || appname == "b2g" # up/down arrow keys not supported on android/b2g
+skip-if = os == "android" # up/down arrow keys not supported on android
 [test_bug1295719_event_sequence_for_number_keys.html]
 [test_bug1310865.html]
--- a/dom/imptests/editing/mochitest.ini
+++ b/dom/imptests/editing/mochitest.ini
@@ -5,24 +5,22 @@ support-files =
   css/reset.css
   implementation.js
   selecttest/common.js
   selecttest/test-iframe.html
   tests.js
 
 [conformancetest/test_event.html]
 [conformancetest/test_runtest.html]
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #b2g(takes too long) b2g-debug(takes too long) b2g-desktop(takes too long) 
+skip-if = toolkit == 'android'
 [selecttest/test_Document-open.html]
 [selecttest/test_addRange.html]
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(bug 775227) b2g(oom?, bug 775227) b2g-debug(oom?, bug 775227) b2g-desktop(oom?, bug 775227)
+skip-if = toolkit == 'android' #android(bug 775227)
 [selecttest/test_collapse.html]
 [selecttest/test_collapseToStartEnd.html]
 [selecttest/test_deleteFromDocument.html]
 [selecttest/test_extend.html]
-skip-if = (toolkit == 'gonk' && debug) #b2g-debug(debug-only failure; time out)
 [selecttest/test_getRangeAt.html]
 [selecttest/test_getSelection.html]
 [selecttest/test_interfaces.html]
 [selecttest/test_isCollapsed.html]
 [selecttest/test_removeAllRanges.html]
 [selecttest/test_selectAllChildren.html]
-skip-if = (toolkit == 'gonk' && debug) #b2g-debug(debug-only failure)
--- a/dom/imptests/html/html/dom/elements/global-attributes/reftest.list
+++ b/dom/imptests/html/html/dom/elements/global-attributes/reftest.list
@@ -41,16 +41,16 @@
 == dir_auto-N-EN-R.html dir_auto-N-EN-R-ref.html
 == dir_auto-N-L.html dir_auto-N-L-ref.html
 == dir_auto-N-R.html dir_auto-N-R-ref.html
 == dir_auto-pre-mixed.html dir_auto-pre-mixed-ref.html
 == dir_auto-pre-N-between-Rs.html dir_auto-pre-N-between-Rs-ref.html
 == dir_auto-pre-N-EN.html dir_auto-pre-N-EN-ref.html
 == dir_auto-R.html dir_auto-R-ref.html
 == dir_auto-textarea-mixed.html dir_auto-textarea-mixed-ref.html
-fails-if(B2G||Mulet||(Android&&asyncPan)) == dir_auto-textarea-N-between-Rs.html dir_auto-textarea-N-between-Rs-ref.html # B2G scrollbar on opposite side
+fails-if(Android&&asyncPan) == dir_auto-textarea-N-between-Rs.html dir_auto-textarea-N-between-Rs-ref.html
 == dir_auto-textarea-N-EN.html dir_auto-textarea-N-EN-ref.html
 == dir_auto-textarea-script-mixed.html dir_auto-textarea-script-mixed-ref.html
-fails-if(B2G||Mulet||(Android&&asyncPan)) == dir_auto-textarea-script-N-between-Rs.html dir_auto-textarea-script-N-between-Rs-ref.html # B2G scrollbar on reference only
+fails-if(Android&&asyncPan) == dir_auto-textarea-script-N-between-Rs.html dir_auto-textarea-script-N-between-Rs-ref.html
 == dir_auto-textarea-script-N-EN.html dir_auto-textarea-script-N-EN-ref.html
 == lang-xyzzy.html lang-xyzzy-ref.html
 == lang-xmllang-01.html lang-xmllang-01-ref.html
 == style-01.html style-01-ref.html
--- a/dom/imptests/html/mochitest.ini
+++ b/dom/imptests/html/mochitest.ini
@@ -1,25 +1,24 @@
 # THIS FILE IS AUTOGENERATED BY importTestsuite.py - DO NOT EDIT
 [DEFAULT]
 support-files =
   webgl/common.js
 
 [typedarrays/test_constructors.html]
 [webgl/test_bufferSubData.html]
 subsuite = gpu
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(WebGL)
+skip-if = toolkit == 'android' #android(WebGL)
 [webgl/test_compressedTexImage2D.html]
 subsuite = gpu
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(WebGL)
+skip-if = toolkit == 'android' #android(WebGL)
 [webgl/test_compressedTexSubImage2D.html]
 subsuite = gpu
 skip-if = true # Bug 1226336
-#skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(WebGL)
 [webgl/test_texImage2D.html]
 subsuite = gpu
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(WebGL)
+skip-if = toolkit == 'android' #android(WebGL)
 [webgl/test_texSubImage2D.html]
 subsuite = gpu
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(WebGL)
+skip-if = toolkit == 'android' #android(WebGL)
 [webgl/test_uniformMatrixNfv.html]
 subsuite = gpu
-skip-if = (toolkit == 'android') || (buildapp == 'b2g') #android(WebGL)
+skip-if = toolkit == 'android' #android(WebGL)
--- a/dom/imptests/webapps/mochitest.ini
+++ b/dom/imptests/webapps/mochitest.ini
@@ -1,11 +1,10 @@
 # THIS FILE IS AUTOGENERATED BY importTestsuite.py - DO NOT EDIT
 [DEFAULT]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure
 support-files =
   WebStorage/tests/submissions/Infraware/iframe/local_change_item_iframe.html
   WebStorage/tests/submissions/Infraware/iframe/local_security_iframe.html
   WebStorage/tests/submissions/Infraware/iframe/local_set_item_clear_iframe.html
   WebStorage/tests/submissions/Infraware/iframe/local_set_item_iframe.html
   WebStorage/tests/submissions/Infraware/iframe/session_change_item_iframe.html
   WebStorage/tests/submissions/Infraware/iframe/session_set_item_clear_iframe.html
   WebStorage/tests/submissions/Infraware/iframe/session_set_item_iframe.html
--- a/dom/indexedDB/test/chrome.ini
+++ b/dom/indexedDB/test/chrome.ini
@@ -1,6 +1,5 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g'
 support-files = chromeHelpers.js
 
 [test_globalObjects_chrome.xul]
 [test_globalObjects_other.xul]
--- a/dom/indexedDB/test/mochitest-intl-api.ini
+++ b/dom/indexedDB/test/mochitest-intl-api.ini
@@ -1,11 +1,10 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 [DEFAULT]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116, b2g desktop specific, initial triage
 
 [test_create_locale_aware_index.html]
 [test_locale_aware_indexes.html]
 [test_locale_aware_index_getAll.html]
 [test_locale_aware_index_getAllObjects.html]
--- a/dom/indexedDB/test/mochitest.ini
+++ b/dom/indexedDB/test/mochitest.ini
@@ -114,289 +114,154 @@ support-files =
   unit/test_transaction_ordering.js
   unit/test_unique_index_update.js
   unit/test_view_put_get_values.js
   unit/test_wasm_getAll.js
   unit/test_wasm_put_get_values.js
   unit/test_writer_starvation.js
 
 [test_abort_deleted_index.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_abort_deleted_objectStore.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_add_put.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_add_twice_failure.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_advance.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_app_isolation_inproc.html]
 # The app isolation tests are only supposed to run in the main process.
-skip-if = buildapp == 'b2g' || e10s
+skip-if = e10s
 [test_app_isolation_oop.html]
 # The app isolation tests are only supposed to run in the main process.
-skip-if = buildapp == 'b2g' || e10s
+skip-if = e10s
 [test_autoIncrement.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_autoIncrement_indexes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_bfcache.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_archive.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_file_backed.html]
-skip-if = buildapp == 'b2g'
 [test_blob_simple.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_worker_crash.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_worker_xhr_post.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_worker_xhr_post_multifile.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_worker_xhr_read.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blob_worker_xhr_read_slice.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_blocked_order.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_bug937006.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_clear.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_complex_keyPaths.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_count.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_create_index.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_create_index_with_integer_keys.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_create_objectStore.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_cursor_mutation.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_cursor_update_updates_indexes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_cursors.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_database_onclose.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_deleteDatabase.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_deleteDatabase_interactions.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_deleteDatabase_onblocked.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_deleteDatabase_onblocked_duringVersionChange.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_error_events_abort_transactions.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_event_propagation.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_event_source.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_exceptions_in_events.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_array.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_cross_database_copying.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_delete.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_os_delete.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_put_get_object.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_put_get_values.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_replace.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_resurrection_delete.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_resurrection_transaction_abort.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_sharing.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_file_transaction_abort.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_append_read_data.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_compat.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_disabled_pref.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_getFile.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_iteration.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_lifetimes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_lifetimes_nested.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_location.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_ordering.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_overlapping.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_progress_events.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_readonly_exceptions.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_request_readyState.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_serialization.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_store_snapshot.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_stream_tracking.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_success_events_after_abort.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_truncate.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_workers.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_filehandle_write_read_data.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_getAll.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_globalObjects_content.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_global_data.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_index_empty_keyPath.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_index_getAll.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_index_getAllObjects.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_index_object_cursors.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_index_update_delete.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_indexes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_indexes_bad_values.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_indexes_funny_things.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_invalid_cursor.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_invalid_version.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_invalidate.html]
 # disabled for the moment
 skip-if = true
-# skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_key_requirements.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_keys.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_leaving_page.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_lowDiskSpace.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_maximal_serialized_object_size.html]
 [test_message_manager_ipc.html]
 # This test is only supposed to run in the main process.
-skip-if = buildapp == 'b2g' || buildapp == 'mulet' || e10s
+skip-if = e10s
 [test_multientry.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_names_sorted.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_objectCursors.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_objectStore_getAllKeys.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_objectStore_inline_autoincrement_key_added_on_put.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_objectStore_openKeyCursor.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_objectStore_remove_values.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_object_identity.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_odd_result_order.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_open_empty_db.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_open_for_principal.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_open_objectStore.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_optionalArguments.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_overlapping_transactions.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_persistenceType.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_put_get_values.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_put_get_values_autoIncrement.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_readonly_transactions.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_readwriteflush_disabled.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_remove_index.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_rename_index.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_rename_index_errors.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_remove_objectStore.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') || (buildapp == 'mulet') # Bug 931116 # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
 [test_rename_objectStore.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_rename_objectStore_errors.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_request_readyState.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_sandbox.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
+[test_serviceworker.html]
 [test_setVersion.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_setVersion_abort.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_setVersion_events.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_setVersion_exclusion.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_setVersion_throw.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_storage_manager_estimate.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_success_events_after_abort.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_table_locks.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_table_rollback.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_third_party.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_traffic_jam.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_abort.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_abort_hang.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_duplicate_store_names.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_error.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_lifetimes.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_lifetimes_nested.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_transaction_ordering.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_unique_index_update.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_view_put_get_values.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_wasm_getAll.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
 [test_wasm_put_get_values.html]
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk') # Bug 931116
-[test_serviceworker.html]
-skip-if = buildapp == 'b2g'
--- a/dom/inputmethod/mochitest/chrome.ini
+++ b/dom/inputmethod/mochitest/chrome.ini
@@ -1,11 +1,11 @@
 [DEFAULT]
-# dom/inputmethod only makes sense on B2G
-run-if = (buildapp == 'b2g' && toolkit != 'gonk') || buildapp == 'mulet'
+# dom/inputmethod only made sense on B2G
+skip-if = true
 support-files =
   bug1110030_helper.js
   inputmethod_common.js
   file_inputmethod.html
   file_blank.html
   file_test_app.html
   file_test_bug1066515.html
   file_test_bug1137557.html
@@ -34,17 +34,17 @@ support-files =
 [test_bug1059163.html]
 disabled = fails because receiving bad values
 [test_bug1066515.html]
 [test_bug1137557.html]
 [test_bug1175399.html]
 [test_focus_blur_manage_events.html]
 disabled = fails because receiving bad events # also depends on bug 1254823
 [test_forward_hardware_key_to_ime.html]
-skip-if = buildapp != 'mulet'
+skip-if = true # Test only ran on Mulet
 [test_input_registry_events.html]
 disabled = timeout on pine
 [test_sendkey_cancel.html]
 [test_setSupportsSwitching.html]
 [test_simple_manage_events.html]
 disabled = fails because receiving bad events
 [test_sync_edit.html]
 [test_two_inputs.html]
--- a/dom/ipc/tests/chrome.ini
+++ b/dom/ipc/tests/chrome.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' || os == 'android'
+skip-if = os == 'android'
 support-files =
   process_error.xul
   process_error_contentscript.js
 
 [test_process_error.xul]
-skip-if = buildapp == "mulet" || !crashreporter
+skip-if = !crashreporter
--- a/dom/ipc/tests/mochitest.ini
+++ b/dom/ipc/tests/mochitest.ini
@@ -1,23 +1,22 @@
 [DEFAULT]
 support-files =
   file_bug1086684.html
 
 [test_blob_sliced_from_child_process.html]
 # This test is only supposed to run in the main process.
-skip-if = buildapp == 'b2g' || e10s
+skip-if = e10s
 [test_blob_sliced_from_parent_process.html]
 # This test is only supposed to run in the main process.
-skip-if = buildapp == 'b2g' || buildapp == 'mulet' || e10s
+skip-if = e10s
 [test_bug1086684.html]
 # This test is only supposed to run in the main process
-skip-if = buildapp == 'b2g' || e10s || toolkit == 'android'
+skip-if = e10s || toolkit == 'android'
 [test_cpow_cookies.html]
-skip-if = buildapp == 'b2g' || buildapp == 'mulet'
 [test_child_docshell.html]
 skip-if = toolkit == 'cocoa' # disabled due to hangs, see changeset 6852e7c47edf
 [test_CrashService_crash.html]
-skip-if = !(crashreporter && !e10s && (toolkit == 'gtk2' || toolkit == 'gtk3' || toolkit == 'cocoa' || toolkit == 'windows') && (buildapp != 'b2g' || toolkit == 'gonk') && (buildapp != 'mulet')) # TC: Bug 1144079 - Re-enable Mulet mochitests and reftests taskcluster-specific disables.
+skip-if = !(crashreporter && !e10s && (toolkit == 'gtk2' || toolkit == 'gtk3' || toolkit == 'cocoa' || toolkit == 'windows'))
 [test_temporaryfile_stream.html]
 support-files =
   blob_verify.sjs
   !/dom/canvas/test/captureStream_common.js
--- a/dom/json/test/unit/xpcshell.ini
+++ b/dom/json/test/unit/xpcshell.ini
@@ -1,12 +1,11 @@
 [DEFAULT]
 head =
 tail =
-skip-if = toolkit == 'gonk'
 support-files =
   decodeFromStream-01.json
   decodeFromStream-small.json
 
+[test_decode_long_input.js]
 [test_decodeFromStream.js]
-[test_decode_long_input.js]
 [test_encode.js]
 
--- a/dom/jsurl/test/mochitest.ini
+++ b/dom/jsurl/test/mochitest.ini
@@ -5,13 +5,11 @@ support-files =
   load-stopping-1a.html
   load-stopping-1b.html
   load-stopping-1c.html
   load-stopping-1d.html
   pass.html
 
 [test_bug351633-1.html]
 [test_bug351633-2.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure
 [test_bug351633-3.html]
 [test_bug351633-4.html]
-skip-if = (toolkit == 'gonk' && debug) #debug-only failure
 [test_bug384981.html]
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.cpp
@@ -0,0 +1,140 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "MediaDrmCDMCallbackProxy.h"
+#include "mozilla/CDMProxy.h"
+#include "nsString.h"
+#include "mozilla/dom/MediaKeys.h"
+#include "mozilla/dom/MediaKeySession.h"
+#include "mozIGeckoMediaPluginService.h"
+#include "nsContentCID.h"
+#include "nsServiceManagerUtils.h"
+#include "MainThreadUtils.h"
+#include "mozilla/EMEUtils.h"
+
+namespace mozilla {
+
+MediaDrmCDMCallbackProxy::MediaDrmCDMCallbackProxy(CDMProxy* aProxy)
+  : mProxy(aProxy)
+{
+
+}
+
+void
+MediaDrmCDMCallbackProxy::SetSessionId(uint32_t aToken,
+                                       const nsCString& aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  mProxy->OnSetSessionId(aToken, NS_ConvertUTF8toUTF16(aSessionId));
+}
+
+void
+MediaDrmCDMCallbackProxy::ResolveLoadSessionPromise(uint32_t aPromiseId,
+                                                    bool aSuccess)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  mProxy->OnResolveLoadSessionPromise(aPromiseId, aSuccess);
+}
+
+void
+MediaDrmCDMCallbackProxy::ResolvePromise(uint32_t aPromiseId)
+{
+  // Note: CDMProxy proxies this from non-main threads to main thread.
+  mProxy->ResolvePromise(aPromiseId);
+}
+
+void
+MediaDrmCDMCallbackProxy::RejectPromise(uint32_t aPromiseId,
+                                        nsresult aException,
+                                        const nsCString& aMessage)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  mProxy->OnRejectPromise(aPromiseId, aException, aMessage);
+}
+
+void
+MediaDrmCDMCallbackProxy::SessionMessage(const nsCString& aSessionId,
+                                         dom::MediaKeyMessageType aMessageType,
+                                         const nsTArray<uint8_t>& aMessage)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  // For removing constness
+  nsTArray<uint8_t> message(aMessage);
+  mProxy->OnSessionMessage(NS_ConvertUTF8toUTF16(aSessionId), aMessageType, message);
+}
+
+void
+MediaDrmCDMCallbackProxy::ExpirationChange(const nsCString& aSessionId,
+                                           UnixTime aExpiryTime)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  mProxy->OnExpirationChange(NS_ConvertUTF8toUTF16(aSessionId), aExpiryTime);
+}
+
+void
+MediaDrmCDMCallbackProxy::SessionClosed(const nsCString& aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  bool keyStatusesChange = false;
+  {
+    CDMCaps::AutoLock caps(mProxy->Capabilites());
+    keyStatusesChange = caps.RemoveKeysForSession(NS_ConvertUTF8toUTF16(aSessionId));
+  }
+  if (keyStatusesChange) {
+    mProxy->OnKeyStatusesChange(NS_ConvertUTF8toUTF16(aSessionId));
+  }
+  mProxy->OnSessionClosed(NS_ConvertUTF8toUTF16(aSessionId));
+}
+
+void
+MediaDrmCDMCallbackProxy::SessionError(const nsCString& aSessionId,
+                                       nsresult aException,
+                                       uint32_t aSystemCode,
+                                       const nsCString& aMessage)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  mProxy->OnSessionError(NS_ConvertUTF8toUTF16(aSessionId),
+                         aException,
+                         aSystemCode,
+                         NS_ConvertUTF8toUTF16(aMessage));
+}
+
+void
+MediaDrmCDMCallbackProxy::BatchedKeyStatusChanged(const nsCString& aSessionId,
+                                                  const nsTArray<CDMKeyInfo>& aKeyInfos)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  BatchedKeyStatusChangedInternal(aSessionId, aKeyInfos);
+}
+
+void
+MediaDrmCDMCallbackProxy::BatchedKeyStatusChangedInternal(const nsCString& aSessionId,
+                                                          const nsTArray<CDMKeyInfo>& aKeyInfos)
+{
+  bool keyStatusesChange = false;
+  {
+    CDMCaps::AutoLock caps(mProxy->Capabilites());
+    for (size_t i = 0; i < aKeyInfos.Length(); i++) {
+      keyStatusesChange |=
+        caps.SetKeyStatus(aKeyInfos[i].mKeyId,
+                          NS_ConvertUTF8toUTF16(aSessionId),
+                          aKeyInfos[i].mStatus);
+    }
+  }
+  if (keyStatusesChange) {
+    mProxy->OnKeyStatusesChange(NS_ConvertUTF8toUTF16(aSessionId));
+  }
+}
+
+void
+MediaDrmCDMCallbackProxy::Decrypted(uint32_t aId,
+                                    DecryptStatus aResult,
+                                    const nsTArray<uint8_t>& aDecryptedData)
+{
+  MOZ_ASSERT_UNREACHABLE("Fennec could not handle decrypted event");
+}
+
+} // namespace mozilla
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.h
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef MediaDrmCDMCallbackProxy_h_
+#define MediaDrmCDMCallbackProxy_h_
+
+#include "mozilla/CDMProxy.h"
+#include "mozilla/DecryptorProxyCallback.h"
+
+namespace mozilla {
+class CDMProxy;
+// Proxies call backs from the MediaDrmProxy -> MediaDrmProxySupport back to the MediaKeys
+// object on the main thread.
+// We used annotation calledFrom = "gecko" to ensure running on main thread.
+class MediaDrmCDMCallbackProxy : public DecryptorProxyCallback {
+public:
+  void SetSessionId(uint32_t aCreateSessionToken,
+                    const nsCString& aSessionId) override;
+
+  void ResolveLoadSessionPromise(uint32_t aPromiseId,
+                                 bool aSuccess) override;
+
+  void ResolvePromise(uint32_t aPromiseId) override;
+
+  void RejectPromise(uint32_t aPromiseId,
+                     nsresult aException,
+                     const nsCString& aSessionId) override;
+
+  void SessionMessage(const nsCString& aSessionId,
+                      dom::MediaKeyMessageType aMessageType,
+                      const nsTArray<uint8_t>& aMessage) override;
+
+  void ExpirationChange(const nsCString& aSessionId,
+                        UnixTime aExpiryTime) override;
+
+  void SessionClosed(const nsCString& aSessionId) override;
+
+  void SessionError(const nsCString& aSessionId,
+                    nsresult aException,
+                    uint32_t aSystemCode,
+                    const nsCString& aMessage) override;
+
+  void Decrypted(uint32_t aId,
+                 DecryptStatus aResult,
+                 const nsTArray<uint8_t>& aDecryptedData) override;
+
+  void BatchedKeyStatusChanged(const nsCString& aSessionId,
+                               const nsTArray<CDMKeyInfo>& aKeyInfos) override;
+
+   ~MediaDrmCDMCallbackProxy() {}
+
+private:
+  friend class MediaDrmCDMProxy;
+  explicit MediaDrmCDMCallbackProxy(CDMProxy* aProxy);
+
+  void BatchedKeyStatusChangedInternal(const nsCString& aSessionId,
+                                       const nsTArray<CDMKeyInfo>& aKeyInfos);
+  // Warning: Weak ref.
+  CDMProxy* mProxy;
+};
+
+} // namespace mozilla
+#endif
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp
@@ -0,0 +1,467 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "mozilla/dom/MediaKeySession.h"
+#include "mozilla/MediaDrmCDMProxy.h"
+#include "MediaDrmCDMCallbackProxy.h"
+
+using namespace mozilla::java::sdk;
+
+namespace mozilla {
+
+MediaDrmSessionType
+ToMediaDrmSessionType(dom::MediaKeySessionType aSessionType)
+{
+  switch (aSessionType) {
+    case dom::MediaKeySessionType::Temporary: return kKeyStreaming;
+    case dom::MediaKeySessionType::Persistent_license: return kKeyOffline;
+    default: return kKeyStreaming;
+  };
+}
+
+MediaDrmCDMProxy::MediaDrmCDMProxy(dom::MediaKeys* aKeys,
+                                   const nsAString& aKeySystem,
+                                   bool aDistinctiveIdentifierRequired,
+                                   bool aPersistentStateRequired)
+  : CDMProxy(aKeys,
+             aKeySystem,
+             aDistinctiveIdentifierRequired,
+             aPersistentStateRequired)
+  , mCDM(nullptr)
+  , mShutdownCalled(false)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  MOZ_COUNT_CTOR(MediaDrmCDMProxy);
+}
+
+MediaDrmCDMProxy::~MediaDrmCDMProxy()
+{
+  MOZ_COUNT_DTOR(MediaDrmCDMProxy);
+}
+
+void
+MediaDrmCDMProxy::Init(PromiseId aPromiseId,
+                       const nsAString& aOrigin,
+                       const nsAString& aTopLevelOrigin,
+                       const nsAString& aName,
+                       bool aInPrivateBrowsing)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
+
+  EME_LOG("MediaDrmCDMProxy::Init (%s, %s) %s",
+          NS_ConvertUTF16toUTF8(aOrigin).get(),
+          NS_ConvertUTF16toUTF8(aTopLevelOrigin).get(),
+          (aInPrivateBrowsing ? "PrivateBrowsing" : "NonPrivateBrowsing"));
+
+  // Create a thread to work with cdm.
+  if (!mOwnerThread) {
+    nsresult rv = NS_NewNamedThread("MDCDMThread", getter_AddRefs(mOwnerThread));
+    if (NS_FAILED(rv)) {
+      RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                    NS_LITERAL_CSTRING("Couldn't create CDM thread MediaDrmCDMProxy::Init"));
+      return;
+    }
+  }
+
+  mCDM = mozilla::MakeUnique<MediaDrmProxySupport>(mKeySystem);
+  nsCOMPtr<nsIRunnable> task(NewRunnableMethod<uint32_t>(this,
+                                                         &MediaDrmCDMProxy::md_Init,
+                                                         aPromiseId));
+  mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
+}
+
+void
+MediaDrmCDMProxy::CreateSession(uint32_t aCreateSessionToken,
+                                MediaKeySessionType aSessionType,
+                                PromiseId aPromiseId,
+                                const nsAString& aInitDataType,
+                                nsTArray<uint8_t>& aInitData)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  MOZ_ASSERT(mOwnerThread);
+
+  nsAutoPtr<CreateSessionData> data(new CreateSessionData());
+  data->mSessionType = aSessionType;
+  data->mCreateSessionToken = aCreateSessionToken;
+  data->mPromiseId = aPromiseId;
+  data->mInitDataType = NS_ConvertUTF16toUTF8(aInitDataType);
+  data->mInitData = Move(aInitData);
+
+  nsCOMPtr<nsIRunnable> task(
+    NewRunnableMethod<nsAutoPtr<CreateSessionData>>(this,
+                                                    &MediaDrmCDMProxy::md_CreateSession,
+                                                    data));
+  mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
+}
+
+void
+MediaDrmCDMProxy::LoadSession(PromiseId aPromiseId,
+                              const nsAString& aSessionId)
+{
+  // TODO: Implement LoadSession.
+  RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                NS_LITERAL_CSTRING("Currently Fennec did not support LoadSession"));
+}
+
+void
+MediaDrmCDMProxy::SetServerCertificate(PromiseId aPromiseId,
+                                     nsTArray<uint8_t>& aCert)
+{
+  // TODO: Implement SetServerCertificate.
+  RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                NS_LITERAL_CSTRING("Currently Fennec did not support SetServerCertificate"));
+}
+
+void
+MediaDrmCDMProxy::UpdateSession(const nsAString& aSessionId,
+                              PromiseId aPromiseId,
+                              nsTArray<uint8_t>& aResponse)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  MOZ_ASSERT(mOwnerThread);
+  NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
+
+  nsAutoPtr<UpdateSessionData> data(new UpdateSessionData());
+  data->mPromiseId = aPromiseId;
+  data->mSessionId = NS_ConvertUTF16toUTF8(aSessionId);
+  data->mResponse = Move(aResponse);
+
+  nsCOMPtr<nsIRunnable> task(
+    NewRunnableMethod<nsAutoPtr<UpdateSessionData>>(this,
+                                                    &MediaDrmCDMProxy::md_UpdateSession,
+                                                    data));
+  mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
+}
+
+void
+MediaDrmCDMProxy::CloseSession(const nsAString& aSessionId,
+                             PromiseId aPromiseId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  MOZ_ASSERT(mOwnerThread);
+  NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
+
+  nsAutoPtr<SessionOpData> data(new SessionOpData());
+  data->mPromiseId = aPromiseId;
+  data->mSessionId = NS_ConvertUTF16toUTF8(aSessionId);
+
+  nsCOMPtr<nsIRunnable> task(
+    NewRunnableMethod<nsAutoPtr<SessionOpData>>(this,
+                                                &MediaDrmCDMProxy::md_CloseSession,
+                                                data));
+  mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
+}
+
+void
+MediaDrmCDMProxy::RemoveSession(const nsAString& aSessionId,
+                              PromiseId aPromiseId)
+{
+  // TODO: Implement RemoveSession.
+  RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                NS_LITERAL_CSTRING("Currently Fennec did not support RemoveSession"));
+}
+
+void
+MediaDrmCDMProxy::Shutdown()
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  MOZ_ASSERT(mOwnerThread);
+  nsCOMPtr<nsIRunnable> task(
+    NewRunnableMethod(this, &MediaDrmCDMProxy::md_Shutdown));
+
+  mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
+  mOwnerThread->Shutdown();
+  mOwnerThread = nullptr;
+}
+
+void
+MediaDrmCDMProxy::Terminated()
+{
+  // TODO: Implement Terminated.
+  // Should find a way to handle the case when remote side MediaDrm crashed.
+}
+
+const nsCString&
+MediaDrmCDMProxy::GetNodeId() const
+{
+  return mNodeId;
+}
+
+void
+MediaDrmCDMProxy::OnSetSessionId(uint32_t aCreateSessionToken,
+                                 const nsAString& aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+
+  RefPtr<dom::MediaKeySession> session(mKeys->GetPendingSession(aCreateSessionToken));
+  if (session) {
+    session->SetSessionId(aSessionId);
+  }
+}
+
+void
+MediaDrmCDMProxy::OnResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccess)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+  mKeys->OnSessionLoaded(aPromiseId, aSuccess);
+}
+
+void
+MediaDrmCDMProxy::OnSessionMessage(const nsAString& aSessionId,
+                                   dom::MediaKeyMessageType aMessageType,
+                                   nsTArray<uint8_t>& aMessage)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+  RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
+  if (session) {
+    session->DispatchKeyMessage(aMessageType, aMessage);
+  }
+}
+
+void
+MediaDrmCDMProxy::OnExpirationChange(const nsAString& aSessionId,
+                                     UnixTime aExpiryTime)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+  RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
+  if (session) {
+    session->SetExpiration(static_cast<double>(aExpiryTime));
+  }
+}
+
+void
+MediaDrmCDMProxy::OnSessionClosed(const nsAString& aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+  RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
+  if (session) {
+    session->OnClosed();
+  }
+}
+
+void
+MediaDrmCDMProxy::OnSessionError(const nsAString& aSessionId,
+                                 nsresult aException,
+                                 uint32_t aSystemCode,
+                                 const nsAString& aMsg)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+  RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
+  if (session) {
+    session->DispatchKeyError(aSystemCode);
+  }
+}
+
+void
+MediaDrmCDMProxy::OnRejectPromise(uint32_t aPromiseId,
+                                  nsresult aDOMException,
+                                  const nsCString& aMsg)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  RejectPromise(aPromiseId, aDOMException, aMsg);
+}
+
+RefPtr<MediaDrmCDMProxy::DecryptPromise>
+MediaDrmCDMProxy::Decrypt(MediaRawData* aSample)
+{
+  MOZ_ASSERT_UNREACHABLE("Fennec could not handle decrypting individually");
+  return nullptr;
+}
+
+void
+MediaDrmCDMProxy::OnDecrypted(uint32_t aId,
+                              DecryptStatus aResult,
+                              const nsTArray<uint8_t>& aDecryptedData)
+{
+  MOZ_ASSERT_UNREACHABLE("Fennec could not handle decrypted event");
+}
+
+void
+MediaDrmCDMProxy::RejectPromise(PromiseId aId, nsresult aCode,
+                                const nsCString& aReason)
+{
+  if (NS_IsMainThread()) {
+    if (!mKeys.IsNull()) {
+      mKeys->RejectPromise(aId, aCode, aReason);
+    }
+  } else {
+    nsCOMPtr<nsIRunnable> task(new RejectPromiseTask(this, aId, aCode,
+                                                     aReason));
+    NS_DispatchToMainThread(task);
+  }
+}
+
+void
+MediaDrmCDMProxy::ResolvePromise(PromiseId aId)
+{
+  if (NS_IsMainThread()) {
+    if (!mKeys.IsNull()) {
+      mKeys->ResolvePromise(aId);
+    } else {
+      NS_WARNING("MediaDrmCDMProxy unable to resolve promise!");
+    }
+  } else {
+    nsCOMPtr<nsIRunnable> task;
+    task = NewRunnableMethod<PromiseId>(this,
+                                        &MediaDrmCDMProxy::ResolvePromise,
+                                        aId);
+    NS_DispatchToMainThread(task);
+  }
+}
+
+const nsString&
+MediaDrmCDMProxy::KeySystem() const
+{
+  return mKeySystem;
+}
+
+CDMCaps&
+MediaDrmCDMProxy::Capabilites()
+{
+  return mCapabilites;
+}
+
+void
+MediaDrmCDMProxy::OnKeyStatusesChange(const nsAString& aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+  RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
+  if (session) {
+    session->DispatchKeyStatusesChange();
+  }
+}
+
+void
+MediaDrmCDMProxy::GetSessionIdsForKeyId(const nsTArray<uint8_t>& aKeyId,
+                                      nsTArray<nsCString>& aSessionIds)
+{
+  CDMCaps::AutoLock caps(Capabilites());
+  caps.GetSessionIdsForKeyId(aKeyId, aSessionIds);
+}
+
+#ifdef DEBUG
+bool
+MediaDrmCDMProxy::IsOnOwnerThread()
+{
+  return NS_GetCurrentThread() == mOwnerThread;
+}
+#endif
+
+void
+MediaDrmCDMProxy::OnCDMCreated(uint32_t aPromiseId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  if (mKeys.IsNull()) {
+    return;
+  }
+
+  if (mCDM) {
+    mKeys->OnCDMCreated(aPromiseId, GetNodeId(), 0);
+    return;
+  }
+
+  // No CDM? Just reject the promise.
+  mKeys->RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                       NS_LITERAL_CSTRING("Null CDM in OnCDMCreated()"));
+}
+
+void
+MediaDrmCDMProxy::md_Init(uint32_t aPromiseId)
+{
+  MOZ_ASSERT(IsOnOwnerThread());
+  MOZ_ASSERT(mCDM);
+
+  mCallback = new MediaDrmCDMCallbackProxy(this);
+  mCDM->Init(mCallback);
+  nsCOMPtr<nsIRunnable> task(
+    NewRunnableMethod<uint32_t>(this,
+                                &MediaDrmCDMProxy::OnCDMCreated,
+                                aPromiseId));
+  NS_DispatchToMainThread(task);
+}
+
+void
+MediaDrmCDMProxy::md_CreateSession(nsAutoPtr<CreateSessionData> aData)
+{
+  MOZ_ASSERT(IsOnOwnerThread());
+
+  if (!mCDM) {
+    RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                  NS_LITERAL_CSTRING("Null CDM in md_CreateSession"));
+    return;
+  }
+
+  mCDM->CreateSession(aData->mCreateSessionToken,
+                      aData->mPromiseId,
+                      aData->mInitDataType,
+                      aData->mInitData,
+                      ToMediaDrmSessionType(aData->mSessionType));
+}
+
+void
+MediaDrmCDMProxy::md_UpdateSession(nsAutoPtr<UpdateSessionData> aData)
+{
+  MOZ_ASSERT(IsOnOwnerThread());
+
+  if (!mCDM) {
+    RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                  NS_LITERAL_CSTRING("Null CDM in md_UpdateSession"));
+    return;
+  }
+  mCDM->UpdateSession(aData->mPromiseId,
+                      aData->mSessionId,
+                      aData->mResponse);
+}
+
+void
+MediaDrmCDMProxy::md_CloseSession(nsAutoPtr<SessionOpData> aData)
+{
+  MOZ_ASSERT(IsOnOwnerThread());
+
+  if (!mCDM) {
+    RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
+                  NS_LITERAL_CSTRING("Null CDM in md_CloseSession"));
+    return;
+  }
+  mCDM->CloseSession(aData->mPromiseId, aData->mSessionId);
+}
+
+void
+MediaDrmCDMProxy::md_Shutdown()
+{
+  MOZ_ASSERT(IsOnOwnerThread());
+  MOZ_ASSERT(mCDM);
+  if (mShutdownCalled) {
+    return;
+  }
+  mShutdownCalled = true;
+  mCDM->Shutdown();
+  mCDM = nullptr;
+}
+
+} // namespace mozilla
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/MediaDrmCDMProxy.h
@@ -0,0 +1,184 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef MediaDrmCDMProxy_h_
+#define MediaDrmCDMProxy_h_
+
+#include <jni.h>
+#include "mozilla/jni/Types.h"
+#include "GeneratedJNINatives.h"
+
+#include "mozilla/CDMProxy.h"
+#include "mozilla/CDMCaps.h"
+#include "mozilla/dom/MediaKeys.h"
+#include "mozilla/MediaDrmProxySupport.h"
+#include "mozilla/UniquePtr.h"
+
+#include "MediaCodec.h"
+#include "nsString.h"
+#include "nsAutoPtr.h"
+
+using namespace mozilla::java;
+
+namespace mozilla {
+class MediaDrmCDMCallbackProxy;
+class MediaDrmCDMProxy : public CDMProxy {
+public:
+
+  NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaDrmCDMProxy)
+
+  MediaDrmCDMProxy(dom::MediaKeys* aKeys,
+                   const nsAString& aKeySystem,
+                   bool aDistinctiveIdentifierRequired,
+                   bool aPersistentStateRequired);
+
+  void Init(PromiseId aPromiseId,
+            const nsAString& aOrigin,
+            const nsAString& aTopLevelOrigin,
+            const nsAString& aGMPName,
+            bool aInPrivateBrowsing) override;
+
+  void CreateSession(uint32_t aCreateSessionToken,
+                     MediaKeySessionType aSessionType,
+                     PromiseId aPromiseId,
+                     const nsAString& aInitDataType,
+                     nsTArray<uint8_t>& aInitData) override;
+
+  void LoadSession(PromiseId aPromiseId,
+                   const nsAString& aSessionId) override;
+
+  void SetServerCertificate(PromiseId aPromiseId,
+                            nsTArray<uint8_t>& aCert) override;
+
+  void UpdateSession(const nsAString& aSessionId,
+                     PromiseId aPromiseId,
+                     nsTArray<uint8_t>& aResponse) override;
+
+  void CloseSession(const nsAString& aSessionId,
+                    PromiseId aPromiseId) override;
+
+  void RemoveSession(const nsAString& aSessionId,
+                     PromiseId aPromiseId) override;
+
+  void Shutdown() override;
+
+  void Terminated() override;
+
+  const nsCString& GetNodeId() const override;
+
+  void OnSetSessionId(uint32_t aCreateSessionToken,
+                      const nsAString& aSessionId) override;
+
+  void OnResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccess) override;
+
+  void OnSessionMessage(const nsAString& aSessionId,
+                        dom::MediaKeyMessageType aMessageType,
+                        nsTArray<uint8_t>& aMessage) override;
+
+  void OnExpirationChange(const nsAString& aSessionId,
+                          UnixTime aExpiryTime) override;
+
+  void OnSessionClosed(const nsAString& aSessionId) override;
+
+  void OnSessionError(const nsAString& aSessionId,
+                      nsresult aException,
+                      uint32_t aSystemCode,
+                      const nsAString& aMsg) override;
+
+  void OnRejectPromise(uint32_t aPromiseId,
+                       nsresult aCode,
+                       const nsCString& aMsg) override;
+
+  RefPtr<DecryptPromise> Decrypt(MediaRawData* aSample) override;
+  void OnDecrypted(uint32_t aId,
+                   DecryptStatus aResult,
+                   const nsTArray<uint8_t>& aDecryptedData) override;
+
+  void RejectPromise(PromiseId aId, nsresult aCode,
+                     const nsCString& aReason) override;
+
+  // Resolves promise with "undefined".
+  // Can be called from any thread.
+  void ResolvePromise(PromiseId aId) override;
+
+  // Threadsafe.
+  const nsString& KeySystem() const override;
+
+  CDMCaps& Capabilites() override;
+
+  void OnKeyStatusesChange(const nsAString& aSessionId) override;
+
+  void GetSessionIdsForKeyId(const nsTArray<uint8_t>& aKeyId,
+                             nsTArray<nsCString>& aSessionIds) override;
+
+#ifdef DEBUG
+  bool IsOnOwnerThread() override;
+#endif
+
+private:
+  virtual ~MediaDrmCDMProxy();
+
+  void OnCDMCreated(uint32_t aPromiseId);
+
+  struct CreateSessionData {
+    MediaKeySessionType mSessionType;
+    uint32_t mCreateSessionToken;
+    PromiseId mPromiseId;
+    nsCString mInitDataType;
+    nsTArray<uint8_t> mInitData;
+  };
+
+  struct UpdateSessionData {
+    PromiseId mPromiseId;
+    nsCString mSessionId;
+    nsTArray<uint8_t> mResponse;
+  };
+
+  struct SessionOpData {
+    PromiseId mPromiseId;
+    nsCString mSessionId;
+  };
+
+  class RejectPromiseTask : public Runnable {
+  public:
+    RejectPromiseTask(MediaDrmCDMProxy* aProxy,
+                      PromiseId aId,
+                      nsresult aCode,
+                      const nsCString& aReason)
+      : mProxy(aProxy)
+      , mId(aId)
+      , mCode(aCode)
+      , mReason(aReason)
+    {
+    }
+    NS_METHOD Run() {
+      mProxy->RejectPromise(mId, mCode, mReason);
+      return NS_OK;
+    }
+  private:
+    RefPtr<MediaDrmCDMProxy> mProxy;
+    PromiseId mId;
+    nsresult mCode;
+    nsCString mReason;
+  };
+
+  nsCString mNodeId;
+  mozilla::UniquePtr<MediaDrmProxySupport> mCDM;
+  nsAutoPtr<MediaDrmCDMCallbackProxy> mCallback;
+  bool mShutdownCalled;
+
+// =====================================================================
+// For MediaDrmProxySupport
+  void md_Init(uint32_t aPromiseId);
+  void md_CreateSession(nsAutoPtr<CreateSessionData> aData);
+  void md_UpdateSession(nsAutoPtr<UpdateSessionData> aData);
+  void md_CloseSession(nsAutoPtr<SessionOpData> aData);
+  void md_Shutdown();
+// =====================================================================
+};
+
+} // namespace mozilla
+#endif // MediaDrmCDMProxy_h_
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/MediaDrmProxySupport.cpp
@@ -0,0 +1,285 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "MediaDrmProxySupport.h"
+#include "mozilla/EMEUtils.h"
+#include "FennecJNINatives.h"
+#include "MediaCodec.h" // For MediaDrm::KeyStatus
+#include "MediaPrefs.h"
+
+using namespace mozilla::java;
+
+namespace mozilla {
+
+LogModule* GetMDRMNLog() {
+  static LazyLogModule log("MediaDrmProxySupport");
+  return log;
+}
+
+class MediaDrmJavaCallbacksSupport
+  : public MediaDrmProxy::NativeMediaDrmProxyCallbacks::Natives<MediaDrmJavaCallbacksSupport>
+{
+public:
+  typedef MediaDrmProxy::NativeMediaDrmProxyCallbacks::Natives<MediaDrmJavaCallbacksSupport> MediaDrmProxyNativeCallbacks;
+  using MediaDrmProxyNativeCallbacks::DisposeNative;
+  using MediaDrmProxyNativeCallbacks::AttachNative;
+
+  MediaDrmJavaCallbacksSupport(DecryptorProxyCallback* aDecryptorProxyCallback)
+    : mDecryptorProxyCallback(aDecryptorProxyCallback)
+  {
+    MOZ_ASSERT(aDecryptorProxyCallback);
+  }
+  /*
+   * Native implementation, called by Java.
+   */
+  void OnSessionCreated(int aCreateSessionToken,
+                        int aPromiseId,
+                        jni::ByteArray::Param aSessionId,
+                        jni::ByteArray::Param aRequest);
+
+  void OnSessionUpdated(int aPromiseId, jni::ByteArray::Param aSessionId);
+
+  void OnSessionClosed(int aPromiseId, jni::ByteArray::Param aSessionId);
+
+  void OnSessionMessage(jni::ByteArray::Param aSessionId,
+                        int /*mozilla::dom::MediaKeyMessageType*/ aSessionMessageType,
+                        jni::ByteArray::Param aRequest);
+
+  void OnSessionError(jni::ByteArray::Param aSessionId,
+                      jni::String::Param aMessage);
+
+  void OnSessionBatchedKeyChanged(jni::ByteArray::Param,
+                                  jni::ObjectArray::Param);
+
+  void OnRejectPromise(int aPromiseId, jni::String::Param aMessage);
+
+private:
+  DecryptorProxyCallback* mDecryptorProxyCallback;
+}; // MediaDrmJavaCallbacksSupport
+
+void
+MediaDrmJavaCallbacksSupport::OnSessionCreated(int aCreateSessionToken,
+                                               int aPromiseId,
+                                               jni::ByteArray::Param aSessionId,
+                                               jni::ByteArray::Param aRequest)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  auto reqDataArray = aRequest->GetElements();
+  nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
+                      aSessionId->Length());
+  MDRMN_LOG("SessionId(%s) closed", sessionId.get());
+
+  mDecryptorProxyCallback->SetSessionId(aCreateSessionToken, sessionId);
+  mDecryptorProxyCallback->ResolvePromise(aPromiseId);
+}
+
+void
+MediaDrmJavaCallbacksSupport::OnSessionUpdated(int aPromiseId,
+                                               jni::ByteArray::Param aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  MDRMN_LOG("SessionId(%s) closed",
+            nsCString(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
+                      aSessionId->Length()).get());
+  mDecryptorProxyCallback->ResolvePromise(aPromiseId);
+}
+
+void
+MediaDrmJavaCallbacksSupport::OnSessionClosed(int aPromiseId,
+                                              jni::ByteArray::Param aSessionId)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
+                      aSessionId->Length());
+  MDRMN_LOG("SessionId(%s) closed", sessionId.get());
+  mDecryptorProxyCallback->ResolvePromise(aPromiseId);
+  mDecryptorProxyCallback->SessionClosed(sessionId);
+}
+
+void
+MediaDrmJavaCallbacksSupport::OnSessionMessage(jni::ByteArray::Param aSessionId,
+                                               int /*mozilla::dom::MediaKeyMessageType*/ aMessageType,
+                                               jni::ByteArray::Param aRequest)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
+                      aSessionId->Length());
+  auto reqDataArray = aRequest->GetElements();
+
+  nsTArray<uint8_t> retRequest;
+  retRequest.AppendElements(reinterpret_cast<uint8_t*>(reqDataArray.Elements()),
+                            reqDataArray.Length());
+
+  mDecryptorProxyCallback->SessionMessage(sessionId,
+                                          static_cast<dom::MediaKeyMessageType>(aMessageType),
+                                          retRequest);
+}
+
+void
+MediaDrmJavaCallbacksSupport::OnSessionError(jni::ByteArray::Param aSessionId,
+                                             jni::String::Param aMessage)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
+                      aSessionId->Length());
+  nsCString errorMessage = aMessage->ToCString();
+  MDRMN_LOG("SessionId(%s)", sessionId.get());
+  // TODO: We cannot get system error code from media drm API.
+  // Currently use -1 as an error code.
+  mDecryptorProxyCallback->SessionError(sessionId,
+                                        NS_ERROR_DOM_INVALID_STATE_ERR,
+                                        -1,
+                                        errorMessage);
+}
+
+// TODO: MediaDrm.KeyStatus defined the status code not included
+// dom::MediaKeyStatus::Released and dom::MediaKeyStatus::Output_downscaled.
+// Should keep tracking for this if it will be changed in the future.
+static dom::MediaKeyStatus
+MediaDrmKeyStatusToMediaKeyStatus(int aStatusCode)
+{
+  using mozilla::java::sdk::KeyStatus;
+  switch (aStatusCode) {
+    case KeyStatus::STATUS_USABLE: return dom::MediaKeyStatus::Usable;
+    case KeyStatus::STATUS_EXPIRED: return dom::MediaKeyStatus::Expired;
+    case KeyStatus::STATUS_OUTPUT_NOT_ALLOWED: return dom::MediaKeyStatus::Output_restricted;
+    case KeyStatus::STATUS_INTERNAL_ERROR: return dom::MediaKeyStatus::Internal_error;
+    case KeyStatus::STATUS_PENDING: return dom::MediaKeyStatus::Status_pending;
+    default: return dom::MediaKeyStatus::Internal_error;
+  }
+}
+
+void
+MediaDrmJavaCallbacksSupport::OnSessionBatchedKeyChanged(jni::ByteArray::Param aSessionId,
+                                                         jni::ObjectArray::Param aKeyInfos)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
+                      aSessionId->Length());
+  nsTArray<jni::Object::LocalRef> keyInfosObjectArray(aKeyInfos->GetElements());
+
+  nsTArray<CDMKeyInfo> keyInfosArray;
+
+  for (auto&& keyInfoObject : keyInfosObjectArray) {
+    java::SessionKeyInfo::LocalRef keyInfo(mozilla::Move(keyInfoObject));
+    mozilla::jni::ByteArray::LocalRef keyIdByteArray = keyInfo->KeyId();
+    nsTArray<int8_t> keyIdInt8Array = keyIdByteArray->GetElements();
+    // Cast nsTArray<int8_t> to nsTArray<uint8_t>
+    nsTArray<uint8_t>* keyId = reinterpret_cast<nsTArray<uint8_t>*>(&keyIdInt8Array);
+    auto keyStatus = keyInfo->Status(); // int32_t
+    keyInfosArray.AppendElement(CDMKeyInfo(*keyId,
+                                           dom::Optional<dom::MediaKeyStatus>(
+                                             MediaDrmKeyStatusToMediaKeyStatus(keyStatus)
+                                                                             )
+                                          )
+                               );
+  }
+
+  mDecryptorProxyCallback->BatchedKeyStatusChanged(sessionId,
+                                                   keyInfosArray);
+}
+
+void
+MediaDrmJavaCallbacksSupport::OnRejectPromise(int aPromiseId, jni::String::Param aMessage)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+  nsCString reason = aMessage->ToCString();
+  MDRMN_LOG("OnRejectPromise aMessage(%s) ", reason.get());
+  // Current implementation assume all the reject from MediaDrm is due to invalid state.
+  // Other cases should be handled before calling into MediaDrmProxy API.
+  mDecryptorProxyCallback->RejectPromise(aPromiseId,
+                                         NS_ERROR_DOM_INVALID_STATE_ERR,
+                                         reason);
+}
+
+MediaDrmProxySupport::MediaDrmProxySupport(const nsAString& aKeySystem)
+  : mKeySystem(aKeySystem), mDestroyed(false)
+{
+  mJavaCallbacks = MediaDrmProxy::NativeMediaDrmProxyCallbacks::New();
+  // TODO: Bug 1306196 will check the pref to determine if it is oop case.
+  // Follow the pref flag PDMAndroidRemoteCodecEnabled returned to determine
+  // it is crossing process CDM or not.
+  mBridgeProxy =
+    MediaDrmProxy::Create(mKeySystem,
+                          mJavaCallbacks);
+}
+
+MediaDrmProxySupport::~MediaDrmProxySupport()
+{
+  MOZ_ASSERT(mDestroyed, "Shutdown() should be called before !!");
+  MediaDrmJavaCallbacksSupport::DisposeNative(mJavaCallbacks);
+}
+
+nsresult
+MediaDrmProxySupport::Init(DecryptorProxyCallback* aCallback)
+{
+  MOZ_ASSERT(mJavaCallbacks);
+
+  mCallback = aCallback;
+  MediaDrmJavaCallbacksSupport::AttachNative(mJavaCallbacks,
+                                             mozilla::MakeUnique<MediaDrmJavaCallbacksSupport>(mCallback));
+  return mBridgeProxy != nullptr ? NS_OK : NS_ERROR_FAILURE;
+}
+
+void
+MediaDrmProxySupport::CreateSession(uint32_t aCreateSessionToken,
+                                    uint32_t aPromiseId,
+                                    const nsCString& aInitDataType,
+                                    const nsTArray<uint8_t>& aInitData,
+                                    MediaDrmSessionType aSessionType)
+{
+  MOZ_ASSERT(mBridgeProxy);
+
+  auto initDataBytes =
+    mozilla::jni::ByteArray::New(reinterpret_cast<const int8_t*>(&aInitData[0]),
+                                 aInitData.Length());
+  // TODO: aSessionType is not used here.
+  // Refer to
+  // http://androidxref.com/5.1.1_r6/xref/external/chromium_org/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java#420
+  // it is hard code to streaming type.
+  mBridgeProxy->CreateSession(aCreateSessionToken,
+                              aPromiseId,
+                              NS_ConvertUTF8toUTF16(aInitDataType),
+                              initDataBytes);
+}
+
+void
+MediaDrmProxySupport::UpdateSession(uint32_t aPromiseId,
+                                    const nsCString& aSessionId,
+                                    const nsTArray<uint8_t>& aResponse)
+{
+  MOZ_ASSERT(mBridgeProxy);
+
+  auto response =
+    mozilla::jni::ByteArray::New(reinterpret_cast<const int8_t*>(aResponse.Elements()),
+                                 aResponse.Length());
+  mBridgeProxy->UpdateSession(aPromiseId,
+                              NS_ConvertUTF8toUTF16(aSessionId),
+                              response);
+}
+
+void
+MediaDrmProxySupport::CloseSession(uint32_t aPromiseId,
+                                   const nsCString& aSessionId)
+{
+  MOZ_ASSERT(mBridgeProxy);
+
+  mBridgeProxy->CloseSession(aPromiseId, NS_ConvertUTF8toUTF16(aSessionId));
+}
+
+void
+MediaDrmProxySupport::Shutdown()
+{
+  MOZ_ASSERT(mBridgeProxy);
+
+  if (mDestroyed) {
+    return;
+  }
+  mBridgeProxy->Destroy();
+  mDestroyed = true;
+}
+
+} // namespace mozilla
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/MediaDrmProxySupport.h
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef MediaDrmProxySupport_H
+#define MediaDrmProxySupport_H
+
+#include "mozilla/DecryptorProxyCallback.h"
+#include "mozilla/Logging.h"
+#include "FennecJNIWrappers.h"
+#include "nsString.h"
+
+
+namespace mozilla {
+
+enum MediaDrmSessionType {
+  kKeyStreaming = 1,
+  kKeyOffline = 2,
+  kKeyRelease = 3,
+};
+
+#ifndef MDRMN_LOG
+  LogModule* GetMDRMNLog();
+  #define MDRMN_LOG(x, ...) MOZ_LOG(GetMDRMNLog(), mozilla::LogLevel::Debug,\
+    ("[MediaDrmProxySupport][%s]" x, __FUNCTION__, ##__VA_ARGS__))
+#endif
+
+class MediaDrmProxySupport final
+{
+public:
+
+  MediaDrmProxySupport(const nsAString& aKeySystem);
+  ~MediaDrmProxySupport();
+
+  /*
+  * APIs to act as GMPDecryptorAPI, discarding unnecessary calls.
+  */
+  nsresult Init(DecryptorProxyCallback* aCallback);
+
+  void CreateSession(uint32_t aCreateSessionToken,
+                     uint32_t aPromiseId,
+                     const nsCString& aInitDataType,
+                     const nsTArray<uint8_t>& aInitData,
+                     MediaDrmSessionType aSessionType);
+
+  void UpdateSession(uint32_t aPromiseId,
+                     const nsCString& aSessionId,
+                     const nsTArray<uint8_t>& aResponse);
+
+  void CloseSession(uint32_t aPromiseId,
+                    const nsCString& aSessionId);
+
+  void Shutdown();
+
+private:
+  const nsString mKeySystem;
+  java::MediaDrmProxy::GlobalRef mBridgeProxy;
+  java::MediaDrmProxy::NativeMediaDrmProxyCallbacks::GlobalRef mJavaCallbacks;
+  DecryptorProxyCallback* mCallback;
+  bool mDestroyed;
+
+};
+
+} // namespace mozilla
+#endif // MediaDrmProxySupport_H
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/eme/mediadrm/moz.build
@@ -0,0 +1,19 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+EXPORTS.mozilla += [
+    'MediaDrmCDMCallbackProxy.h',
+    'MediaDrmCDMProxy.h',
+    'MediaDrmProxySupport.h',
+]
+
+UNIFIED_SOURCES += [
+    'MediaDrmCDMCallbackProxy.cpp',
+    'MediaDrmCDMProxy.cpp',
+    'MediaDrmProxySupport.cpp',
+]
+
+FINAL_LIBRARY = 'xul'
\ No newline at end of file
--- a/dom/media/eme/moz.build
+++ b/dom/media/eme/moz.build
@@ -32,11 +32,14 @@ UNIFIED_SOURCES += [
     'MediaKeyMessageEvent.cpp',
     'MediaKeys.cpp',
     'MediaKeySession.cpp',
     'MediaKeyStatusMap.cpp',
     'MediaKeySystemAccess.cpp',
     'MediaKeySystemAccessManager.cpp',
 ]
 
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+  DIRS += ['mediadrm']
+
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
--- a/dom/media/mediasource/test/mochitest.ini
+++ b/dom/media/mediasource/test/mochitest.ini
@@ -1,10 +1,9 @@
 [DEFAULT]
-skip-if = buildapp == 'b2g' # b2g( ReferenceError: MediaSource is not defined)
 subsuite = media
 support-files =
   mediasource.js
   seek.webm seek.webm^headers^
   seek_lowres.webm seek_lowres.webm^headers^
   bipbop/bipbop2s.mp4 bipbop/bipbop2s.mp4^headers^
   bipbop/bipbopinit.mp4 bipbop/bipbop_audioinit.mp4 bipbop/bipbop_videoinit.mp4
   bipbop/bipbop1.m4s bipbop/bipbop_audio1.m4s bipbop/bipbop_video1.m4s
@@ -58,17 +57,17 @@ skip-if = ((os == "win" && os_version ==
 [test_DrainOnMissingData_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_DurationChange.html]
 [test_DurationUpdated.html]
 [test_DurationUpdated_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_EndOfStream.html]
 [test_EndOfStream_mp4.html]
-skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android' || buildapp == 'mulet')) # Not supported on xp and android 2.3
+skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_Eviction_mp4.html]
 skip-if = (os == "win" && os_version == "5.1") # Not supported on xp.
 [test_FrameSelection.html]
 [test_FrameSelection_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_HaveMetadataUnbufferedSeek.html]
 [test_HaveMetadataUnbufferedSeek_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
@@ -123,16 +122,16 @@ skip-if = ((os == "win" && os_version ==
 [test_Threshold_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_TimestampOffset_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_TruncatedDuration.html]
 [test_TruncatedDuration_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_WaitingOnMissingData.html]
-skip-if = (toolkit == 'android' || buildapp == 'mulet') #timeout android/mulet only bug 1101187
+skip-if = (toolkit == 'android') #timeout android only bug 1101187
 [test_WaitingOnMissingData_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_WaitingOnMissingDataEnded_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_WaitingToEndedTransition_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 
--- a/dom/media/test/crashtests/crashtests.list
+++ b/dom/media/test/crashtests/crashtests.list
@@ -1,18 +1,18 @@
-skip-if(B2G) load 0-timescale.html # bug 1229166
+load 0-timescale.html # bug 1229166
 skip-if(Android) load 459439-1.html # bug 888557
 load 466607-1.html
 load 466945-1.html
 load 468763-1.html
 load 474744-1.html
 HTTP load 481136-1.html # needs to be HTTP to recognize the ogg as an audio file?
 load 492286-1.xhtml
 load 493915-1.html
-skip-if(B2G) load 495794-1.html # in b2g all the media are muted by default
+load 495794-1.html
 load 576612-1.html
 load 752784-1.html
 load 789075-1.html
 HTTP load 795892-1.html
 load 844563.html
 load 846612.html
 load 852838.html
 load 865537-1.html
@@ -66,24 +66,24 @@ load 944851.html
 load 952756.html
 load 966636.html
 load 986901.html
 load 990794.html
 load 995289.html
 load 1012609.html
 load 1015662.html
 load 1020205.html
-skip-if(Android||B2G) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1048863
+skip-if(Android) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1048863
 load 1041466.html
 load 1045650.html
 load 1080986.html
 load 1122218.html
 load 1127188.html
 load 1157994.html
-skip-if(!B2G) load 1158427.html
+load 1158427.html
 load 1185176.html
 load 1185192.html
 load 1223670.html
 load 1228484.html
 load 1304948.html
 load 1291702.html
 load disconnect-wrong-destination.html
 load analyser-channels-1.html
@@ -93,10 +93,10 @@ load buffer-source-ended-1.html
 load buffer-source-resampling-start-1.html
 load doppler-1.html
 HTTP load media-element-source-seek-1.html
 load offline-buffer-source-ended-1.html
 load oscillator-ended-1.html
 load oscillator-ended-2.html
 load video-replay-after-audio-end.html
 # This needs to run at the end to avoid leaking busted state into other tests.
-skip-if(B2G) load 691096-1.html # bug 852821
+load 691096-1.html
 load 1236639.html
--- a/dom/media/test/mochitest.ini
+++ b/dom/media/test/mochitest.ini
@@ -18,17 +18,17 @@
 # gErrorTests in manifest.js.
 
 # To test for a specific bug in handling a specific resource type, make the
 # test first check canPlayType for the type, and if it's not supported, just
 # do ok(true, "Type not supported") and stop the test.
 
 [DEFAULT]
 subsuite = media
-skip-if = buildapp == 'mulet' || android_version == '18'
+skip-if = android_version == '18' # Run on real devices via autophone
 support-files =
   16bit_wave_extrametadata.wav
   16bit_wave_extrametadata.wav^headers^
   320x240.ogv
   320x240.ogv^headers^
   448636.ogv
   448636.ogv^headers^
   A4.ogv
@@ -623,27 +623,25 @@ support-files =
   wavedata_u8.wav
   wavedata_u8.wav^headers^
   wavedata_ulaw.wav
   wavedata_ulaw.wav^headers^
   !/dom/canvas/test/captureStream_common.js
   !/dom/html/test/reflect.js
 
 [test_access_control.html]
-skip-if = buildapp == 'b2g' && toolkit != 'gonk' # bug 1082984
 [test_aspectratio_mp4.html]
 [test_audio1.html]
 [test_audio2.html]
 [test_audioDocumentTitle.html]
 skip-if = true # bug 475110 - disabled since we don't play Wave files standalone
 [test_autoplay.html]
 [test_autoplay_contentEditable.html]
 [test_buffered.html]
 [test_bug448534.html]
-skip-if = buildapp == 'mulet'
 [test_bug463162.xhtml]
 [test_bug465498.html]
 [test_bug495145.html]
 skip-if = (os == 'mac' && os_version == '10.6') # bug 1021174
 [test_bug495300.html]
 [test_bug654550.html]
 [test_bug686942.html]
 [test_bug726904.html]
@@ -660,63 +658,61 @@ tags=webvtt
 [test_bug1113600.html]
 tags=capturestream
 [test_bug1242338.html]
 [test_bug1242594.html]
 [test_bug1248229.html]
 tags=capturestream
 [test_can_play_type.html]
 [test_can_play_type_mpeg.html]
-skip-if = buildapp == 'b2g' # bug 1021675
 [test_can_play_type_no_ogg.html]
 [test_can_play_type_ogg.html]
 [test_chaining.html]
 [test_clone_media_element.html]
 [test_closing_connections.html]
 [test_constants.html]
 [test_controls.html]
 [test_cueless_webm_seek-1.html]
 [test_cueless_webm_seek-2.html]
 [test_cueless_webm_seek-3.html]
 [test_currentTime.html]
 [test_decode_error.html]
 [test_decoder_disable.html]
 [test_defaultMuted.html]
 [test_delay_load.html]
-skip-if = buildapp == 'b2g' && toolkit != 'gonk' # bug 1082984
 [test_eme_session_callable_value.html]
 [test_eme_canvas_blocked.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_detach_media_keys.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_initDataTypes.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_missing_pssh.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_non_mse_fails.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_request_notifications.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_playback.html]
-skip-if = toolkit == 'android' || toolkit == 'gonk' # android: bug 1149374; gonk: bug 1193351
+skip-if = toolkit == 'android' # bug 1149374
 [test_eme_requestKeySystemAccess.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_setMediaKeys_before_attach_MediaSource.html]
 skip-if = toolkit == 'android' # bug 1149374
 [test_eme_stream_capture_blocked_case1.html]
 tags=msg capturestream
-skip-if = toolkit == 'android' || toolkit == 'gonk' # android: bug 1149374; gonk: bug 1193351
+skip-if = toolkit == 'android' # bug 1149374
 [test_eme_stream_capture_blocked_case2.html]
 tags=msg capturestream
-skip-if = toolkit == 'android' || toolkit == 'gonk' # android: bug 1149374; gonk: bug 1193351
+skip-if = toolkit == 'android' # bug 1149374
 [test_eme_stream_capture_blocked_case3.html]
 tags=msg capturestream
-skip-if = toolkit == 'android' || toolkit == 'gonk' # android: bug 1149374; gonk: bug 1193351
+skip-if = toolkit == 'android' # bug 1149374
 [test_eme_waitingforkey.html]
-skip-if = toolkit == 'android' || toolkit == 'gonk' # android: bug 1149374; gonk: bug 1193351
+skip-if = toolkit == 'android' # bug 1149374
 [test_empty_resource.html]
 [test_error_in_video_document.html]
 [test_error_on_404.html]
 [test_fastSeek.html]
 [test_fastSeek-forwards.html]
 [test_gmp_playback.html]
 skip-if = (os != 'win' || os_version == '5.1') # Only gmp-clearkey on Windows Vista and later decodes
 [test_imagecapture.html]
@@ -730,17 +726,16 @@ skip-if = (os != 'win' || os_version == 
 [test_load_source.html]
 [test_loop.html]
 [test_media_selection.html]
 [test_media_sniffer.html]
 [test_mediarecorder_avoid_recursion.html]
 skip-if = os == 'win' && !debug # bug 1228605
 tags=msg
 [test_mediarecorder_bitrate.html]
-skip-if = (toolkit == 'gonk') # B2G emulator is too slow to run this without timing out.
 tags=msg
 [test_mediarecorder_creation.html]
 tags=msg capturestream
 [test_mediarecorder_creation_fail.html]
 tags=msg
 [test_mediarecorder_getencodeddata.html]
 tags=msg
 [test_mediarecorder_principals.html]
@@ -774,26 +769,22 @@ tags=msg
 tags=msg capturestream
 [test_mediarecorder_reload_crash.html]
 tags=msg capturestream
 [test_mediarecorder_unsupported_src.html]
 tags=msg
 [test_mediarecorder_webm_support.html]
 skip-if = os == 'android' || arch == 'arm' || arch == 'arm64'
 tags=msg
-[test_mediarecorder_mp4_support.html]
-skip-if = toolkit != 'gonk' || android_version < '17' # Android/Gonk before SDK version 17 does not have the OMX Encoder API.
-tags=msg
 [test_mediarecorder_record_getdata_afterstart.html]
 tags=msg capturestream
 [test_mediatrack_consuming_mediaresource.html]
 [test_mediatrack_consuming_mediastream.html]
 tags=msg
 [test_mediatrack_events.html]
-skip-if = toolkit == 'gonk' && debug # bug 1065924
 [test_mediatrack_parsing_ogg.html]
 [test_mediatrack_replay_from_end.html]
 [test_metadata.html]
 [test_mixed_principals.html]
 [test_mozHasAudio.html]
 [test_multiple_mediastreamtracks.html]
 [test_networkState.html]
 [test_new_audio.html]
@@ -802,28 +793,26 @@ skip-if = toolkit == 'gonk' && debug # b
 [test_paused_after_ended.html]
 [test_play_events.html]
 [test_play_events_2.html]
 [test_play_twice.html]
 # Seamonkey: Bug 598252
 skip-if = appname == "seamonkey"
 [test_playback.html]
 [test_playback_errors.html]
-skip-if = toolkit == 'gonk' # bug 1128845
 [test_playback_rate.html]
 [test_playback_rate_playpause.html]
 [test_playback_reactivate.html]
 [test_played.html]
 [test_preload_actions.html]
 [test_preload_attribute.html]
 [test_preload_suspend.html]
 [test_preserve_playbackrate_after_ui_play.html]
 [test_progress.html]
 [test_reactivate.html]
-skip-if = toolkit == 'gonk' # bug 1128845 on gonk
 [test_readyState.html]
 [test_referer.html]
 [test_replay_metadata.html]
 [test_reset_events_async.html]
 [test_reset_src.html]
 [test_video_dimensions.html]
 [test_resolution_change.html]
 tags=capturestream
@@ -854,27 +843,24 @@ tags=seektonextframe
 [test_source_null.html]
 [test_source_write.html]
 [test_standalone.html]
 [test_streams_autoplay.html]
 tags=msg capturestream
 [test_streams_capture_origin.html]
 tags=msg capturestream
 [test_streams_element_capture.html]
-#x86 only bug 914439, b2g desktop bug 752796
-skip-if = (buildapp == 'b2g' && toolkit != 'gonk')
 tags=msg capturestream
 [test_streams_element_capture_createObjectURL.html]
 tags=msg capturestream
 [test_streams_element_capture_playback.html]
 tags=msg capturestream
 [test_streams_element_capture_reset.html]
 tags=msg capturestream
 [test_streams_gc.html]
-skip-if = buildapp == 'b2g' && toolkit != 'gonk' # bug 1096270
 tags=msg capturestream
 [test_streams_individual_pause.html]
 tags=msg
 [test_streams_srcObject.html]
 tags=msg capturestream
 [test_streams_tracks.html]
 tags=msg capturestream
 [test_texttrack.html]
@@ -896,17 +882,16 @@ tags = webvtt
 [test_timeupdate_small_files.html]
 [test_trackelementevent.html]
 tags = webvtt
 [test_trackelementsrc.html]
 tags = webvtt
 [test_trackevent.html]
 tags = webvtt
 [test_unseekable.html]
-skip-if = toolkit == 'gonk' # bug 1128845 on gonk
 [test_video_to_canvas.html]
 [test_video_in_audio_element.html]
 [test_videoDocumentTitle.html]
 [test_VideoPlaybackQuality.html]
 [test_VideoPlaybackQuality_disabled.html]
 [test_volume.html]
 [test_vttparser.html]
 tags = webvtt
deleted file mode 100644
--- a/dom/media/test/test_mediarecorder_mp4_support.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Media Recording - test mp4 MIME support</title>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<pre id="test">
-<script class="testbody" type="text/javascript">
-
-ok(MediaRecorder.isTypeSupported('video/mp4'), 'Should support video/mp4');
-
-</script>
-</head>
-</html>
--- a/dom/media/tests/mochitest/identity/mochitest.ini
+++ b/dom/media/tests/mochitest/identity/mochitest.ini
@@ -1,14 +1,12 @@
 [DEFAULT]
-# won't run on b2g desktop tests - bug 1119993
-# broken HTTPS on b2g emulator - bug 1135339
 # Android 4.3 - bug 981881
 subsuite = media
-skip-if = android_version == '18' || (buildapp == 'b2g' && toolkit != 'gonk') || (buildapp == 'b2g' && toolkit == 'gonk') || buildapp == 'mulet'
+skip-if = android_version == '18' || (os == 'linux' && !debug && !e10s)
 support-files =
   /.well-known/idp-proxy/idp.js
   identityPcTest.js
   !/dom/media/tests/mochitest/blacksilence.js
   !/dom/media/tests/mochitest/dataChannel.js
   !/dom/media/tests/mochitest/head.js
   !/dom/media/tests/mochitest/network.js
   !/dom/media/tests/mochitest/pc.js
--- a/dom/media/tests/mochitest/mochitest.ini
+++ b/dom/media/tests/mochitest/mochitest.ini
@@ -1,12 +1,11 @@
 [DEFAULT]
 tags = msg webrtc
 subsuite = media
-skip-if = (buildapp == 'mulet') || (toolkit == 'gonk') # b2g (bug 1306391)
 support-files =
   head.js
   dataChannel.js
   mediaStreamPlayback.js
   network.js
   nonTrickleIce.js
   pc.js
   templates.js
@@ -93,17 +92,17 @@ skip-if = (android_version == '18') # an
 skip-if = toolkit == 'android' # websockets don't work on android (bug 1266217)
 [test_peerConnection_basicAudioNATRelay.html]
 skip-if = toolkit == 'android' # websockets don't work on android (bug 1266217)
 [test_peerConnection_basicAudioNATRelayTCP.html]
 skip-if = toolkit == 'android' # websockets don't work on android (bug 1266217)
 [test_peerConnection_basicAudioRequireEOC.html]
 skip-if = (android_version == '18' && debug) # android(Bug 1189784, timeouts on 4.3 emulator)
 [test_peerConnection_basicAudioPcmaPcmuOnly.html]
-skip-if = android_version == '18' # b2g (Bug 1059867)
+skip-if = android_version == '18'
 [test_peerConnection_basicAudioDynamicPtMissingRtpmap.html]
 skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
 [test_peerConnection_basicAudioVideo.html]
 skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
 [test_peerConnection_basicAudioVideoCombined.html]
 skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
 [test_peerConnection_basicAudioVideoNoBundle.html]
 skip-if = (android_version == '18') # android(Bug 1189784, timeouts on 4.3 emulator)
--- a/dom/media/tests/mochitest/sdpUtils.js
+++ b/dom/media/tests/mochitest/sdpUtils.js
@@ -84,19 +84,19 @@ verifySdp: function(desc, expectedType, 
   ok(desc.sdp.length > 10, "SessionDescription body length is plausible");
   ok(desc.sdp.includes("a=ice-ufrag"), "ICE username is present in SDP");
   ok(desc.sdp.includes("a=ice-pwd"), "ICE password is present in SDP");
   ok(desc.sdp.includes("a=fingerprint"), "ICE fingerprint is present in SDP");
   //TODO: update this for loopback support bug 1027350
   ok(!desc.sdp.includes(LOOPBACK_ADDR), "loopback interface is absent from SDP");
   var requiresTrickleIce = !desc.sdp.includes("a=candidate");
   if (requiresTrickleIce) {
-    info("at least one ICE candidate is present in SDP");
+    info("No ICE candidate in SDP -> requiring trickle ICE");
   } else {
-    info("No ICE candidate in SDP -> requiring trickle ICE");
+    info("at least one ICE candidate is present in SDP");
   }
 
   //TODO: how can we check for absence/presence of m=application?
 
   var audioTracks =
       sdputils.countTracksInConstraint('audio', offerConstraintsList) ||
       ((offerOptions && offerOptions.offerToReceiveAudio) ? 1 : 0);
 
--- a/dom/media/webaudio/test/blink/mochitest.ini
+++ b/dom/media/webaudio/test/blink/mochitest.ini
@@ -1,13 +1,12 @@
 [DEFAULT]
 tags=msg
 tags = webaudio
 subsuite = media
-skip-if = ((buildapp == 'b2g') && (toolkit != 'gonk' || debug)) #b2g-debug,b2g-desktop(bug 916135)
 support-files =
   biquad-filters.js
   biquad-testing.js
   ../webaudio.js
 
 [test_biquadFilterNodeAllPass.html]
 [test_biquadFilterNodeAutomation.html]
 skip-if = true # Known problems with Biquad automation, e.g. Bug 1155709
--- a/dom/media/webaudio/test/mochitest.ini
+++ b/dom/media/webaudio/test/mochitest.ini
@@ -1,13 +1,12 @@
 [DEFAULT]
 tags=msg
 tags = webaudio
 subsuite = media
-skip-if = ((buildapp == 'b2g') && (toolkit != 'gonk' || debug)) #b2g-debug,b2g-desktop(bug 916135)
 support-files =
   audio-expected.wav
   audio-mono-expected-2.wav
   audio-mono-expected.wav
   audio-quad.wav
   audio.ogv
   audiovideo.mp4
   audioBufferSourceNodeDetached_worker.js
@@ -41,23 +40,22 @@ support-files =
 [test_audioBufferSourceNodeLoop.html]
 [test_audioBufferSourceNodeLoopStartEnd.html]
 [test_audioBufferSourceNodeLoopStartEndSame.html]
 [test_audioBufferSourceNodeDetached.html]
 skip-if = (toolkit == 'android' && debug) || os == 'win' # bug 1127845, bug 1138468
 [test_audioBufferSourceNodeNoStart.html]
 [test_audioBufferSourceNodeNullBuffer.html]
 [test_audioBufferSourceNodeOffset.html]
-skip-if = (toolkit == 'gonk') || (toolkit == 'android') || debug #bug 906752
+skip-if = (toolkit == 'android') || debug #bug 906752
 [test_audioBufferSourceNodePassThrough.html]
 [test_audioBufferSourceNodeRate.html]
 [test_AudioContext.html]
 [test_AudioContext_disabled.html]
 [test_audioContextSuspendResumeClose.html]
-skip-if = buildapp == 'mulet'
 tags=capturestream
 [test_audioDestinationNode.html]
 [test_AudioListener.html]
 [test_AudioNodeDevtoolsAPI.html]
 [test_audioParamChaining.html]
 [test_AudioParamDevtoolsAPI.html]
 [test_audioParamExponentialRamp.html]
 [test_audioParamGain.html]
@@ -138,17 +136,16 @@ skip-if = toolkit == 'android' # bug 105
 [test_dynamicsCompressorNode.html]
 [test_dynamicsCompressorNodePassThrough.html]
 [test_dynamicsCompressorNodeWithGain.html]
 [test_gainNode.html]
 [test_gainNodeInLoop.html]
 [test_gainNodePassThrough.html]
 [test_iirFilterNodePassThrough.html]
 [test_maxChannelCount.html]
-skip-if = buildapp == 'mulet'
 [test_mediaDecoding.html]
 [test_mediaElementAudioSourceNode.html]
 tags=capturestream
 [test_mediaElementAudioSourceNodeFidelity.html]
 tags=capturestream
 [test_mediaElementAudioSourceNodePassThrough.html]
 tags=capturestream
 skip-if = toolkit == 'android' # bug 1145816
@@ -164,17 +161,17 @@ tags=capturestream
 [test_mediaStreamAudioSourceNodeNoGC.html]
 [test_mediaStreamAudioSourceNodePassThrough.html]
 [test_mediaStreamAudioSourceNodeResampling.html]
 tags=capturestream
 [test_mixingRules.html]
 skip-if = toolkit == 'android' # bug 1091965
 [test_mozaudiochannel.html]
 # Android: bug 1061675; OSX 10.6: bug 1097721
-skip-if = (toolkit == 'gonk' && !debug) || (toolkit == 'android') || (os == 'mac' && os_version == '10.6')
+skip-if = (toolkit == 'android') || (os == 'mac' && os_version == '10.6')
 [test_nodeToParamConnection.html]
 [test_OfflineAudioContext.html]
 [test_offlineDestinationChannelCountLess.html]
 [test_offlineDestinationChannelCountMore.html]
 [test_oscillatorNode.html]
 [test_oscillatorNode2.html]
 [test_oscillatorNodeNegativeFrequency.html]
 [test_oscillatorNodePassThrough.html]
--- a/dom/media/webspeech/recognition/test/mochitest.ini
+++ b/dom/media/webspeech/recognition/test/mochitest.ini
@@ -1,22 +1,21 @@
 [DEFAULT]
 tags=msg
-skip-if = buildapp == 'b2g' # Bug 1191270, bug 1037287, bug 967606, bug 1096400 etc
 subsuite = media
 support-files =
   head.js
   hello.ogg
   hello.ogg^headers^
   silence.ogg
   silence.ogg^headers^
 [test_abort.html]
 skip-if = toolkit == 'android' # bug 1037287
 [test_audio_capture_error.html]
 [test_call_start_from_end_handler.html]
 tags=capturestream
 skip-if = (android_version == '18' && debug) # bug 967606
 [test_nested_eventloop.html]
-skip-if = buildapp == 'mulet' || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_preference_enable.html]
 [test_recognition_service_error.html]
 [test_success_without_recognition_service.html]
 [test_timeout.html]
--- a/dom/moz.build
+++ b/dom/moz.build
@@ -42,17 +42,16 @@ DIRS += [
     'base',
     'archivereader',
     'bindings',
     'battery',
     'browser-element',
     'cache',
     'canvas',
     'crypto',
-    'phonenumberutils',
     'devicestorage',
     'encoding',
     'events',
     'fetch',
     'filehandle',
     'filesystem',
     'flyweb',
     'gamepad',
--- a/dom/network/tests/chrome.ini
+++ b/dom/network/tests/chrome.ini
@@ -3,11 +3,10 @@ support-files =
   tcpsocket_test.jsm
   test_tcpsocket_client_and_server_basics.js
   add_task.js
   file_udpsocket_iframe.html
 
 [test_tcpsocket_jsm.html]
 [test_tcpsocket_client_and_server_basics.html]
 [test_tcpsocket_enabled_with_perm.html]
-skip-if = toolkit == "gonk"
 [test_tcpsocket_legacy.html]
 [test_udpsocket.html]
--- a/dom/network/tests/mochitest.ini
+++ b/dom/network/tests/mochitest.ini
@@ -1,20 +1,8 @@
 [DEFAULT]
 support-files =
   add_task.js
 
 [test_network_basics.html]
-skip-if = toolkit == "gonk" || toolkit == 'android'
+skip-if = toolkit == 'android'
 [test_tcpsocket_default_permissions.html]
-skip-if = toolkit == "gonk"
 [test_tcpsocket_enabled_no_perm.html]
-skip-if = toolkit == "gonk"
-[test_networkstats_alarms.html]
-skip-if = toolkit != "gonk"
-[test_networkstats_basics.html]
-skip-if = toolkit != "gonk"
-[test_networkstats_disabled.html]
-skip-if = toolkit != "gonk"
-[test_networkstats_enabled_no_perm.html]
-skip-if = toolkit != "gonk"
-[test_networkstats_enabled_perm.html]
-skip-if = toolkit != "gonk"
deleted file mode 100644
--- a/dom/network/tests/test_networkstats_alarms.html
+++ /dev/null
@@ -1,237 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta charset="utf-8">
-  <title>Test for NetworkStats alarms</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-function test() {
-  ok(true, "Checking if no alarms are set.");
-
-  req = navigator.mozNetworkStats.getAllAlarms();
-
-  req.onsuccess = function () {
-    ok(true, "Succeeded to get alarms.");
-    ok(Array.isArray(req.result) && req.result.length == 0,
-       "There are no alarms set.");
-    next();
-  };
-
-  req.onerror = function () {
-    ok(false, "getAllAlarms() shouldn't fail!");
-  }
-}
-
-var req;
-var index = -1;
-
-var wifi = {'type': 0, 'id': '0'};
-var mobile = {'type': 1, 'id': '1'};
-
-var steps = [
-  function () {
-    ok(true, "Calling getAllAlarms() with invalid network.");
-
-    req = navigator.mozNetworkStats
-                   .getAllAlarms(new window.MozNetworkStatsInterface(mobile));
-
-    req.onsuccess = function () {
-      ok(false, "getAllAlarms() shouldn't succeed!");
-    };
-
-    req.onerror = function () {
-      is(req.error.name, "InvalidInterface", "Get InvalidInterface error");
-      next();
-    }
-  },
-  function () {
-    ok(true, "Calling addAlarm() with invalid network or parameters.");
-    var msg = "TypeError: Not enough arguments to MozNetworkStatsManager.addAlarm.";
-
-    try {
-      navigator.mozNetworkStats.addAlarm();
-    } catch(ex) {
-      is(ex.toString(), msg, "addAlarm() throws \"" + msg + "\" when no parameters");
-    }
-
-    try {
-      navigator.mozNetworkStats.addAlarm(100000);
-    } catch(ex) {
-      is(ex.toString(), msg, "addAlarm() throws " + msg + " when no network");
-    }
-
-    try {
-      navigator.mozNetworkStats.addAlarm(new window.MozNetworkStatsInterface(wifi));
-    } catch(ex) {
-      is(ex.toString(), msg, "addAlarm() throws " + msg + " when no threshold");
-    }
-
-    req = navigator.mozNetworkStats
-                   .addAlarm(new window.MozNetworkStatsInterface(mobile), -100000);
-
-    req.onsuccess = function () {
-      ok(false, "addAlarm() shouldn't succeed with negative threshold.");
-    };
-
-    req.onerror = function () {
-      is(req.error.name, "InvalidThresholdValue", "Get InvalidThresholdValue error");
-      next();
-    }
-  },
-  function () {
-    ok(true, "Calling addAlarm()");
-
-    req = navigator.mozNetworkStats
-                   .addAlarm(new window.MozNetworkStatsInterface(wifi), 100000000);
-
-    req.onsuccess = function () {
-      ok(true, "Succeeded to add alarm. AlarmId: " + req.result);
-      next();
-    };
-    req.onerror = function () {
-      ok(false, "addAlarm() shouldn't fail.");
-    };
-  },
-  function () {
-    ok(true, "Calling getAllAlarms()");
-
-    req = navigator.mozNetworkStats
-                   .getAllAlarms(new window.MozNetworkStatsInterface(wifi));
-
-    req.onsuccess = function () {
-      is(req.result.length, 1, "Only one alarm");
-      is(req.result[0].alarmId, 1, "Get correct alarmId");
-      next();
-    };
-
-    req.onerror = function () {
-      ok(false, "getAllAlarms() shouldn't fail.");
-    }
-  },
-  function () {
-    ok(true, "Calling removeAlarms() to remove alarms.");
-
-    req = navigator.mozNetworkStats.removeAlarms();
-
-    req.onsuccess = function () {
-      ok(req.result, "Succeeded to remove alarms.");
-      next();
-    };
-
-    req.onerror = function () {
-      ok(false, "removeAlarms() shouldn't fail.");
-    }
-  },
-  function () {
-    ok(true, "Checking if all alarms are removed.");
-
-    req = navigator.mozNetworkStats.getAllAlarms();
-
-    req.onsuccess = function () {
-      ok(Array.isArray(req.result) && req.result.length == 0,
-         "Succeeded to remove all alarms.");
-      next();
-    };
-
-    req.onerror = function () {
-      ok(false, "getAllAlarms() shouldn't fail.");
-    }
-  },
-  // Bug 1209654 - Test threshold value will overflow or not for 2^32.
-  function () {
-    ok(true, "Calling addAlarm() with threshold greater than 4GiB");
-
-    req = navigator.mozNetworkStats
-                   .addAlarm(new window.MozNetworkStatsInterface(wifi), 5000000000);
-
-    req.onsuccess = function () {
-      ok(true, "Succeeded to add alarm. AlarmId: " + req.result);
-      next();
-    };
-    req.onerror = function () {
-      ok(false, "addAlarm() shouldn't fail.");
-    };
-  },
-  function () {
-    ok(true, "Calling getAllAlarms() and check threshold.");
-
-    req = navigator.mozNetworkStats.getAllAlarms();
-
-    req.onsuccess = function () {
-      ok(Array.isArray(req.result) && req.result[0].threshold == 5000000000,
-         "Succeeded to check threshold.");
-      next();
-    };
-
-    req.onerror = function () {
-      ok(false, "getAllAlarms() shouldn't fail.");
-    }
-  },
-  // Bug 1209654 - Test threshold value will overflow or not for signed long.
-  function () {
-    ok(true, "Calling addAlarm() with threshold 3 Gib");
-
-    req = navigator.mozNetworkStats
-                   .addAlarm(new window.MozNetworkStatsInterface(wifi), 3000000000);
-
-    req.onsuccess = function () {
-      ok(true, "Succeeded to add alarm. AlarmId: " + req.result);
-      next();
-    };
-    req.onerror = function () {
-      ok(false, "addAlarm() shouldn't fail.");
-    };
-  },
-  function () {
-    ok(true, "all done!\n");
-    SimpleTest.finish();
-    return;
-  }
-];
-
-function next() {
-  index += 1;
-  if (index >= steps.length) {
-    ok(false, "Shouldn't get here!");
-    return;
-  }
-  try {
-    steps[index]();
-  } catch(ex) {
-    ok(false, "Caught exception", ex);
-  }
-}
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv({'set': [["dom.mozNetworkStats.enabled", true]]},
-                          function() {
-  SpecialPowers.pushPermissions([{ 'type': 'networkstats-manage', 'allow': 1, 'context': window.document }],
-                                function() {
-    ok(SpecialPowers.hasPermission("networkstats-manage", document),
-       "Has permission 'networkstats-manage'.");
-
-    ok(SpecialPowers.getBoolPref("dom.mozNetworkStats.enabled"),
-       "Preference 'dom.mozNetworkStats.enabled' is true.");
-
-    ok('mozNetworkStats' in navigator, "navigator.mozNetworkStats should exist");
-
-    ok(navigator.mozNetworkStats instanceof MozNetworkStatsManager,
-       "navigator.mozNetworkStats should be a MozNetworkStatsManager object");
-
-    test();
-  });
-});
-
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/dom/network/tests/test_networkstats_basics.html
+++ /dev/null
@@ -1,346 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test for NetworkStats</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-function test() {
-  netStats = window.navigator.mozNetworkStats;
-  ok(netStats, "mozNetworkStats exists");
-
-  // Test IDL attributes
-  ok('sampleRate' in netStats,
-   "sampleRate should be a NetworkStats attribute");
-  ok(netStats.sampleRate > 0,
-   "sampleRate is greater than 0.");
-
-  ok('maxStorageAge' in netStats,
-   "maxStorageAge should be a NetworkStats attribute");
-  ok(netStats.maxStorageAge > 0,
-   "maxStorageAge is greater than 0.");
-
-  // Test IDL methods
-  next();
-  return;
-}
-
-function checkDataDates(data, start, end, sampleRate) {
-  var offset = (new Date()).getTimezoneOffset() * 60 * 1000;
-  start = Math.floor((start.getTime() - offset) / sampleRate) * sampleRate + offset;
-  end = Math.floor((end.getTime() - offset) / sampleRate) * sampleRate + offset;
-
-  var counter = 0;
-  var date = start;
-  var success = true;
-
-  do {
-    if(data[counter].date.getTime() !=  date) {
-      success = false;
-      break;
-    }
-    date += sampleRate;
-    counter++;
-  } while (date <= end);
-
-  ok(success, "data result has correct dates");
-}
-
-function compareNetworks(networkA, networkB) {
-  return (networkA.id == networkB.id &&
-          networkA.type == networkB.type);
-}
-
-var req;
-var index = -1;
-var netStats = null;
-
-var steps = [
-  function () {
-    // Test getAvailableNetworks
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      ok(true, "getAvailableNetworks request ok");
-      ok(Array.isArray(req.result) && req.result.length > 0,
-         "getAvailableNetworks returns an array not empty");
-      next();
-    };
-    req.onerror = function () {
-      ok(false, "getAvailableNetworks failure!");
-    }
-  },
-  function () {
-    // Test clearAllStats
-    req = netStats.clearAllStats();
-    req.onsuccess = function () {
-      ok(true, "clearAllStats deleted the database");
-      next();
-    };
-    req.onerror = function () {
-      ok(false, "clearAllStats deleted the database");
-    }
-  },
-  function () {
-    // Check if getSamples throws exception when start is greather than end
-
-    // Prepare get params
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      var network = req.result[0];
-
-      // Get dates
-      var endDate = new Date();
-      var startDate = new Date(endDate.getTime() + 1000);
-
-      try {
-        netStats.getSamples(network, startDate, endDate);
-      } catch(ex) {
-        ok(true, "getSamples throws exception when start is greater than end");
-        next();
-        return;
-      }
-
-      ok(false, "getSamples throws exception when start is greater than end");
-      next();
-      return;
-    };
-    req.onerror = function () {
-      ok(false, "Error getting networks!");
-    }
-  },
-  function () {
-    // Test if call getSamples with network of type different than
-    // MozNetworkStatsInterface throws an exception
-
-    // Prepare get params
-    var network = "wifi";
-    var endDate = new Date();
-    var startDate = new Date(endDate.getTime() - 1000);
-
-    try {
-      netStats.getSamples(network, new Date(), new Date());
-    } catch(ex) {
-      ok(true, "getSamples throws exception if network is not " +
-               "a MozNetworkStatsInterface");
-      next();
-      return;
-    }
-
-    ok(false, "getSamples throws exception if network is not " +
-              "a MozNetworkStatsInterface");
-  },
-  function () {
-    // Test if call getSamples with start parameter type different than Date throws an exception
-
-    // Prepare get params
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      var network = req.result[0];
-
-      var endDate = new Date();
-      var startDate = new Date(endDate.getTime() - 1000);
-      startDate = startDate.toString();
-
-      try {
-        netStats.getSamples(network, startDate, endDate);
-      } catch(ex) {
-        ok(true, "getSamples throws exception when start param is not a Date");
-        next();
-        return;
-      }
-
-      ok(false, "getSamples throws exception when start param is not a Date");
-    };
-    req.onerror = function () {
-      ok(false, "Error getting networks!");
-    };
-  },
-  function () {
-    // Test if call getSamples with end parameter type different than Date throws an exception
-
-    // Prepare get params
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      var network = req.result[0];
-
-      var endDate = new Date();
-      var startDate = new Date(endDate.getTime() - 1000);
-      endDate = startDate.toString();
-
-      try {
-        netStats.getSamples(network, startDate, endDate);
-      } catch(ex) {
-        ok(true, "getSamples throws exception when end param is not a Date");
-        next();
-        return;
-      }
-
-      ok(false, "getSamples throws exception when end param is not a Date");
-    };
-    req.onerror = function () {
-      ok(false, "Error getting networks!");
-    };
-  },
-  function () {
-    ok(true, "Get stats for a network and dates adapted to samplerate");
-    // Prepare get params
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      var network = req.result[0];
-      var diff = 2;
-      // Get samplerate in millis
-      var sampleRate = netStats.sampleRate;
-      // Get date with samplerate's precision
-      var offset = new Date().getTimezoneOffset() * 60 * 1000;
-      var endDate = new Date(Math.floor((new Date().getTime() - offset) / sampleRate)
-                             * sampleRate + offset);
-      var startDate = new Date(endDate.getTime() - (sampleRate * diff));
-      // Calculate the number of samples that should be returned based on the
-      // the samplerate and including final and initial samples.
-      var samples = (endDate.getTime() - startDate.getTime()) / sampleRate + 1;
-
-      // Launch request
-      req = netStats.getSamples(network, startDate, endDate);
-      req.onsuccess = function () {
-        ok(true, "Get system stats request ok");
-        ok(req.result.manifestURL == null, "manifestURL should be null");
-        ok(compareNetworks(req.result.network, network), "networks should be equals");
-        ok(req.result.start.getTime() == startDate.getTime(), "starts should be equals");
-        ok(req.result.end.getTime() == endDate.getTime(), "ends should be equals");
-        var data = req.result.data;
-        ok(Array.isArray(data) && data.length == samples,
-           "data is an array of length " + samples);
-        checkDataDates(data, startDate, endDate, sampleRate);
-        next();
-      };
-      req.onerror = function () {
-        ok(false, "Get stats failure!");
-      }
-    };
-    req.onerror = function () {
-      ok(false, "Error getting networks!");
-    };
-  },
-  function () {
-    ok(true, "Get system stats for a network and dates not adapted to samplerate");
-    // Prepare get params
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      var network = req.result[0];
-      var diff = 2;
-      // Get samplerate in millis
-      var sampleRate = netStats.sampleRate;
-      var endDate = new Date();
-      var startDate = new Date(endDate.getTime() - (sampleRate * diff));
-      // Calculate the number of samples that should be returned based on the
-      // the samplerate, including final and initial samples and taking into
-      // account that these will be filtered according to precision.
-      var samples = (Math.floor(endDate.getTime() / (sampleRate)) * sampleRate -
-                     Math.floor(startDate.getTime() / (sampleRate)) * sampleRate) / sampleRate + 1;
-
-      // Launch request
-      req = netStats.getSamples(network, startDate, endDate);
-      req.onsuccess = function () {
-        ok(true, "Get stats request ok");
-        ok(req.result.manifestURL == null, "manifestURL should be null");
-        ok(compareNetworks(req.result.network, network), "networks should be equals");
-        ok(req.result.start.getTime() == startDate.getTime(), "starts should be equals");
-        ok(req.result.end.getTime() == endDate.getTime(), "ends should be equals");
-        var data = req.result.data;
-        ok(Array.isArray(data) && data.length == samples,
-           "data is an array of length " + samples);
-        checkDataDates(data, startDate, endDate, sampleRate);
-        next();
-      };
-      req.onerror = function () {
-        ok(false, "Get stats failure!");
-      }
-    };
-    req.onerror = function () {
-      ok(false, "Error getting networks!");
-    };
-  },
-  function () {
-    // Test clearStats
-    req = netStats.getAvailableNetworks();
-    req.onsuccess = function () {
-      var network = req.result[0];
-
-      req = netStats.clearStats(network);
-      req.onsuccess = function () {
-        ok(true, "clearStats deleted the database");
-        next();
-      };
-      req.onerror = function () {
-        ok(false, "clearStats deleted the database");
-      }
-    };
-    req.onerror = function () {
-      ok(false, "Error getting networks!");
-    };
-  },
-  function () {
-    // Test getAvailableServiceTypes
-    req = netStats.getAvailableServiceTypes();
-    req.onsuccess = function () {
-      ok(true, "getAvailableServiceTypes request ok");
-      ok(Array.isArray(req.result) && req.result.length == 0,
-         "getAvailableServiceTypes returns an empty array");
-      next();
-    };
-    req.onerror = function () {
-      ok(false, "getAvailableServiceTypes failure!");
-    }
-  },
-  function () {
-    ok(true, "all done!\n");
-    SimpleTest.finish();
-    return;
-  }
-];
-
-function next() {
-  index += 1;
-  if (index >= steps.length) {
-    ok(false, "Shouldn't get here!");
-    return;
-  }
-  try {
-    steps[index]();
-  } catch(ex) {
-    ok(false, "Caught exception", ex);
-  }
-}
-
-SimpleTest.waitForExplicitFinish();
-
-SpecialPowers.pushPrefEnv({'set': [["dom.mozNetworkStats.enabled", true]]},
-                          function() {
-  SpecialPowers.pushPermissions([{ 'type': 'networkstats-manage', 'allow': 1, 'context': window.document }],
-                                function() {
-    ok(SpecialPowers.hasPermission("networkstats-manage", document),
-       "Has permission 'networkstats-manage'.");
-
-    ok(SpecialPowers.getBoolPref("dom.mozNetworkStats.enabled"),
-       "Preference 'dom.mozNetworkStats.enabled' is true.");
-
-    ok('mozNetworkStats' in navigator, "navigator.mozNetworkStats should exist");
-
-    ok(navigator.mozNetworkStats instanceof MozNetworkStatsManager,
-       "navigator.mozNetworkStats should be a MozNetworkStatsManager object");
-
-    test();
-  });
-});
-
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/dom/network/tests/test_networkstats_disabled.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test to ensure NetworkStats is not accessible when it is disabled</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-"use strict";
-
-SimpleTest.waitForExplicitFinish();
-
-// Test to ensure NetworkStats is not accessible when it is disabled
-SpecialPowers.pushPrefEnv({'set': [["dom.mozNetworkStats.enabled", false]]},
-                          function() {
-  ok(!SpecialPowers.getBoolPref("dom.mozNetworkStats.enabled"),
-     "Preference 'dom.mozNetworkStats.enabled' is false.");
-
-  ok(!('mozNetworkStats' in navigator),
-     "navigator.mozNetworkStats should not exist when pref not set");
-
-  SimpleTest.finish();
-});
-
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/dom/network/tests/test_networkstats_enabled_no_perm.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test to ensure NetworkStats enabled and no networkstats-manage perm does not allow open</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-// Test to ensure NetworkStats is enabled but mozNetworkStats.getAvailableNetworks
-// does not work in content because mozNetworkStats is null when no permission.
-  SimpleTest.waitForExplicitFinish();
-  SpecialPowers.pushPrefEnv({"set": [['dom.mozNetworkStats.enabled', true]]},
-                            function() {
-    SpecialPowers.pushPermissions([{ 'type': 'networkstats-manage', 'allow': 0, 'context': window.document }], runTest);
-  });
-
-  function runTest() {
-    ok(SpecialPowers.getBoolPref("dom.mozNetworkStats.enabled"),
-      "Preference 'dom.mozNetworkStats.enabled' is true.");
-
-    ok(!SpecialPowers.hasPermission("networkstats-manage", document),
-      "Has no permission 'networkstats-manage'.");
-
-    ok(!('mozNetworkStats' in navigator),
-       "navigator.mozNetworkStats should not exist when permission not set");
-
-    SimpleTest.finish();
-  }
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/dom/network/tests/test_networkstats_enabled_perm.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test to ensure NetworkStats is not accessible when it is disabled</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-"use strict";
-
-SimpleTest.waitForExplicitFinish();
-
-// Test to ensure NetworkStats is not accessible when it is disabled.
-SpecialPowers.pushPrefEnv({'set': [["dom.mozNetworkStats.enabled", true]]},
-                          function() {
-  SpecialPowers.pushPermissions([{ 'type': 'networkstats-manage', 'allow': 1, 'context': window.document }],
-                                function() {
-
-    ok(SpecialPowers.hasPermission("networkstats-manage", document),
-       "Has permission 'networkstats-manage'.");
-
-    ok(SpecialPowers.getBoolPref("dom.mozNetworkStats.enabled"),
-       "Preference 'dom.mozNetworkStats.enabled' is true.");
-
-    ok('mozNetworkStats' in navigator, "navigator.mozNetworkStats should exist");
-
-    ok(navigator.mozNetworkStats instanceof MozNetworkStatsManager,
-       "navigator.mozNetworkStats should be a MozNetworkStatsManager object");
-
-    SimpleTest.finish();
-  });
-});
-
-</script>
-</pre>
-</body>
-</html>
--- a/dom/notification/test/unit/xpcshell.ini
+++ b/dom/notification/test/unit/xpcshell.ini
@@ -1,7 +1,7 @@
 [DEFAULT]
 head = common_test_notificationdb.js
 tail =
-skip-if = toolkit == 'android' || toolkit == 'gonk'
+skip-if = toolkit == 'android'
 
 [test_notificationdb.js]
 [test_notificationdb_bug1024090.js]
--- a/dom/permission/tests/mochitest.ini
+++ b/dom/permission/tests/mochitest.ini
@@ -23,10 +23,9 @@ skip-if = true
 skip-if = true
 [test_keyboard.html]
 # skip-if = toolkit == 'android'
 skip-if = true
 [test_input-manage.html]
 # skip-if = toolkit == 'android'
 skip-if = true
 [test_wifi-manage.html]
-# skip-if = (buildapp != 'b2g') || (buildapp == 'mulet') || (buildapp == 'b2g' && toolkit != 'gonk') #b2g-desktop(Bug 931116, b2g desktop specific, initial triage)
 skip-if = true
--- a/dom/permission/tests/unit/xpcshell.ini
+++ b/dom/permission/tests/unit/xpcshell.ini
@@ -1,6 +1,5 @@
 [DEFAULT]
 head =
 tail =
-skip-if = toolkit == 'gonk'
 
 [test_bug808734.js]
deleted file mode 100644
--- a/dom/phonenumberutils/PhoneNumber.jsm
+++ /dev/null
@@ -1,389 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-// Don't modify this code. Please use:
-// https://github.com/andreasgal/PhoneNumber.js
-
-"use strict";
-
-this.EXPORTED_SYMBOLS = ["PhoneNumber"];
-
-const Cu = Components.utils;
-
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, "PHONE_NUMBER_META_DATA",
-                                  "resource://gre/modules/PhoneNumberMetaData.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "PhoneNumberNormalizer",
-                                  "resource://gre/modules/PhoneNumberNormalizer.jsm");
-this.PhoneNumber = (function (dataBase) {
-  // Use strict in our context only - users might not want it
-  'use strict';
-
-  const MAX_PHONE_NUMBER_LENGTH = 50;
-  const NON_ALPHA_CHARS = /[^a-zA-Z]/g;
-  const NON_DIALABLE_CHARS = /[^,#+\*\d]/g;
-  const NON_DIALABLE_CHARS_ONCE = new RegExp(NON_DIALABLE_CHARS.source);
-  const BACKSLASH = /\\/g;
-  const SPLIT_FIRST_GROUP = /^(\d+)(.*)$/;
-  const LEADING_PLUS_CHARS_PATTERN = /^[+\uFF0B]+/g;
-
-  // Format of the string encoded meta data. If the name contains "^" or "$"
-  // we will generate a regular expression from the value, with those special
-  // characters as prefix/suffix.
-  const META_DATA_ENCODING = ["region",
-                              "^(?:internationalPrefix)",
-                              "nationalPrefix",
-                              "^(?:nationalPrefixForParsing)",
-                              "nationalPrefixTransformRule",
-                              "nationalPrefixFormattingRule",
-                              "^possiblePattern$",
-                              "^nationalPattern$",
-                              "formats"];
-
-  const FORMAT_ENCODING = ["^pattern$",
-                           "nationalFormat",
-                           "^leadingDigits",
-                           "nationalPrefixFormattingRule",
-                           "internationalFormat"];
-
-  var regionCache = Object.create(null);
-
-  // Parse an array of strings into a convenient object. We store meta
-  // data as arrays since thats much more compact than JSON.
-  function ParseArray(array, encoding, obj) {
-    for (var n = 0; n < encoding.length; ++n) {
-      var value = array[n];
-      if (!value)
-        continue;
-      var field = encoding[n];
-      var fieldAlpha = field.replace(NON_ALPHA_CHARS, "");
-      if (field != fieldAlpha)
-        value = new RegExp(field.replace(fieldAlpha, value));
-      obj[fieldAlpha] = value;
-    }
-    return obj;
-  }
-
-  // Parse string encoded meta data into a convenient object
-  // representation.
-  function ParseMetaData(countryCode, md) {
-    var array = eval(md.replace(BACKSLASH, "\\\\"));
-    md = ParseArray(array,
-                    META_DATA_ENCODING,
-                    { countryCode: countryCode });
-    regionCache[md.region] = md;
-    return md;
-  }
-
-  // Parse string encoded format data into a convenient object
-  // representation.
-  function ParseFormat(md) {
-    var formats = md.formats;
-    if (!formats) {
-      return null;
-    }
-    // Bail if we already parsed the format definitions.
-    if (!(Array.isArray(formats[0])))
-      return;
-    for (var n = 0; n < formats.length; ++n) {
-      formats[n] = ParseArray(formats[n],
-                              FORMAT_ENCODING,
-                              {});
-    }
-  }
-
-  // Search for the meta data associated with a region identifier ("US") in
-  // our database, which is indexed by country code ("1"). Since we have
-  // to walk the entire database for this, we cache the result of the lookup
-  // for future reference.
-  function FindMetaDataForRegion(region) {
-    // Check in the region cache first. This will find all entries we have
-    // already resolved (parsed from a string encoding).
-    var md = regionCache[region];
-    if (md)
-      return md;
-    for (var countryCode in dataBase) {
-      var entry = dataBase[countryCode];
-      // Each entry is a string encoded object of the form '["US..', or
-      // an array of strings. We don't want to parse the string here
-      // to save memory, so we just substring the region identifier
-      // and compare it. For arrays, we compare against all region
-      // identifiers with that country code. We skip entries that are
-      // of type object, because they were already resolved (parsed into
-      // an object), and their country code should have been in the cache.
-      if (Array.isArray(entry)) {
-        for (var n = 0; n < entry.length; n++) {
-          if (typeof entry[n] == "string" && entry[n].substr(2,2) == region) {
-            if (n > 0) {
-              // Only the first entry has the formats field set.
-              // Parse the main country if we haven't already and use
-              // the formats field from the main country.
-              if (typeof entry[0] == "string")
-                entry[0] = ParseMetaData(countryCode, entry[0]);
-              let formats = entry[0].formats;
-              let current = ParseMetaData(countryCode, entry[n]);
-              current.formats = formats;
-              return entry[n] = current;
-            }
-
-            entry[n] = ParseMetaData(countryCode, entry[n]);
-            return entry[n];
-          }
-        }
-        continue;
-      }
-      if (typeof entry == "string" && entry.substr(2,2) == region)
-        return dataBase[countryCode] = ParseMetaData(countryCode, entry);
-    }
-  }
-
-  // Format a national number for a given region. The boolean flag "intl"
-  // indicates whether we want the national or international format.
-  function FormatNumber(regionMetaData, number, intl) {
-    // We lazily parse the format description in the meta data for the region,
-    // so make sure to parse it now if we haven't already done so.
-    ParseFormat(regionMetaData);
-    var formats = regionMetaData.formats;
-    if (!formats) {
-      return null;
-    }
-    for (var n = 0; n < formats.length; ++n) {
-      var format = formats[n];
-      // The leading digits field is optional. If we don't have it, just
-      // use the matching pattern to qualify numbers.
-      if (format.leadingDigits && !format.leadingDigits.test(number))
-        continue;
-      if (!format.pattern.test(number))
-        continue;
-      if (intl) {
-        // If there is no international format, just fall back to the national
-        // format.
-        var internationalFormat = format.internationalFormat;
-        if (!internationalFormat)
-          internationalFormat = format.nationalFormat;
-        // Some regions have numbers that can't be dialed from outside the
-        // country, indicated by "NA" for the international format of that
-        // number format pattern.
-        if (internationalFormat == "NA")
-          return null;
-        // Prepend "+" and the country code.
-        number = "+" + regionMetaData.countryCode + " " +
-                 number.replace(format.pattern, internationalFormat);
-      } else {
-        number = number.replace(format.pattern, format.nationalFormat);
-        // The region has a national prefix formatting rule, and it can be overwritten
-        // by each actual number format rule.
-        var nationalPrefixFormattingRule = regionMetaData.nationalPrefixFormattingRule;
-        if (format.nationalPrefixFormattingRule)
-          nationalPrefixFormattingRule = format.nationalPrefixFormattingRule;
-        if (nationalPrefixFormattingRule) {
-          // The prefix formatting rule contains two magic markers, "$NP" and "$FG".
-          // "$NP" will be replaced by the national prefix, and "$FG" with the
-          // first group of numbers.
-          var match = number.match(SPLIT_FIRST_GROUP);
-          if (match) {
-            var firstGroup = match[1];
-            var rest = match[2];
-            var prefix = nationalPrefixFormattingRule;
-            prefix = prefix.replace("$NP", regionMetaData.nationalPrefix);
-            prefix = prefix.replace("$FG", firstGroup);
-            number = prefix + rest;
-          }
-        }
-      }
-      return (number == "NA") ? null : number;
-    }
-    return null;
-  }
-
-  function NationalNumber(regionMetaData, number) {
-    this.region = regionMetaData.region;
-    this.regionMetaData = regionMetaData;
-    this.nationalNumber = number;
-  }
-
-  // NationalNumber represents the result of parsing a phone number. We have
-  // three getters on the prototype that format the number in national and
-  // international format. Once called, the getters put a direct property
-  // onto the object, caching the result.
-  NationalNumber.prototype = {
-    // +1 949-726-2896
-    get internationalFormat() {
-      var value = FormatNumber(this.regionMetaData, this.nationalNumber, true);
-      Object.defineProperty(this, "internationalFormat", { value: value, enumerable: true });
-      return value;
-    },
-    // (949) 726-2896
-    get nationalFormat() {
-      var value = FormatNumber(this.regionMetaData, this.nationalNumber, false);
-      Object.defineProperty(this, "nationalFormat", { value: value, enumerable: true });
-      return value;
-    },
-    // +19497262896
-    get internationalNumber() {
-      var value = this.internationalFormat ? this.internationalFormat.replace(NON_DIALABLE_CHARS, "")
-                                           : null;
-      Object.defineProperty(this, "internationalNumber", { value: value, enumerable: true });
-      return value;
-    },
-    // country name 'US'
-    get countryName() {
-      var value = this.region ? this.region : null;
-      Object.defineProperty(this, "countryName", { value: value, enumerable: true });
-      return value;
-    }
-  };
-
-  // Check whether the number is valid for the given region.
-  function IsValidNumber(number, md) {
-    return md.possiblePattern.test(number);
-  }
-
-  // Check whether the number is a valid national number for the given region.
-  function IsNationalNumber(number, md) {
-    return IsValidNumber(number, md) && md.nationalPattern.test(number);
-  }
-
-  // Determine the country code a number starts with, or return null if
-  // its not a valid country code.
-  function ParseCountryCode(number) {
-    for (var n = 1; n <= 3; ++n) {
-      var cc = number.substr(0,n);
-      if (dataBase[cc])
-        return cc;
-    }
-    return null;
-  }
-
-  // Parse an international number that starts with the country code. Return
-  // null if the number is not a valid international number.
-  function ParseInternationalNumber(number) {
-    var ret;
-
-    // Parse and strip the country code.
-    var countryCode = ParseCountryCode(number);
-    if (!countryCode)
-      return null;
-    number = number.substr(countryCode.length);
-
-    // Lookup the meta data for the region (or regions) and if the rest of
-    // the number parses for that region, return the parsed number.
-    var entry = dataBase[countryCode];
-    if (Array.isArray(entry)) {
-      for (var n = 0; n < entry.length; ++n) {
-        if (typeof entry[n] == "string")
-          entry[n] = ParseMetaData(countryCode, entry[n]);
-        if (n > 0)
-          entry[n].formats = entry[0].formats;
-        ret = ParseNationalNumber(number, entry[n])
-        if (ret)
-          return ret;
-      }
-      return null;
-    }
-    if (typeof entry == "string")
-      entry = dataBase[countryCode] = ParseMetaData(countryCode, entry);
-    return ParseNationalNumber(number, entry);
-  }
-
-  // Parse a national number for a specific region. Return null if the
-  // number is not a valid national number (it might still be a possible
-  // number for parts of that region).
-  function ParseNationalNumber(number, md) {
-    if (!md.possiblePattern.test(number) ||
-        !md.nationalPattern.test(number)) {
-      return null;
-    }
-    // Success.
-    return new NationalNumber(md, number);
-  }
-
-  // Parse a number and transform it into the national format, removing any
-  // international dial prefixes and country codes.
-  function ParseNumber(number, defaultRegion) {
-    var ret;
-
-    // Remove formating characters and whitespace.
-    number = PhoneNumberNormalizer.Normalize(number);
-
-    // If there is no defaultRegion or the defaultRegion is the global region,
-    // we can't parse international access codes.
-    if ((!defaultRegion || defaultRegion === '001') && number[0] !== '+')
-      return null;
-
-    // Detect and strip leading '+'.
-    if (number[0] === '+')
-      return ParseInternationalNumber(number.replace(LEADING_PLUS_CHARS_PATTERN, ""));
-
-    // Lookup the meta data for the given region.
-    var md = FindMetaDataForRegion(defaultRegion.toUpperCase());
-
-    if (!md) {
-      dump("Couldn't find Meta Data for region: " + defaultRegion + "\n");
-      return null;
-    }
-
-    // See if the number starts with an international prefix, and if the
-    // number resulting from stripping the code is valid, then remove the
-    // prefix and flag the number as international.
-    if (md.internationalPrefix.test(number)) {
-      var possibleNumber = number.replace(md.internationalPrefix, "");
-      ret = ParseInternationalNumber(possibleNumber)
-      if (ret)
-        return ret;
-    }
-
-    // This is not an international number. See if its a national one for
-    // the current region. National numbers can start with the national
-    // prefix, or without.
-    if (md.nationalPrefixForParsing) {
-      // Some regions have specific national prefix parse rules. Apply those.
-      var withoutPrefix = number.replace(md.nationalPrefixForParsing,
-                                         md.nationalPrefixTransformRule || '');
-      ret = ParseNationalNumber(withoutPrefix, md)
-      if (ret)
-        return ret;
-    } else {
-      // If there is no specific national prefix rule, just strip off the
-      // national prefix from the beginning of the number (if there is one).
-      var nationalPrefix = md.nationalPrefix;
-      if (nationalPrefix && number.indexOf(nationalPrefix) == 0 &&
-          (ret = ParseNationalNumber(number.substr(nationalPrefix.length), md))) {
-        return ret;
-      }
-    }
-    ret = ParseNationalNumber(number, md)
-    if (ret)
-      return ret;
-
-    // Now lets see if maybe its an international number after all, but
-    // without '+' or the international prefix.
-    ret = ParseInternationalNumber(number)
-    if (ret)
-      return ret;
-
-    // If the number matches the possible numbers of the current region,
-    // return it as a possible number.
-    if (md.possiblePattern.test(number))
-      return new NationalNumber(md, number);
-
-    // We couldn't parse the number at all.
-    return null;
-  }
-
-  function IsPlainPhoneNumber(number) {
-    if (typeof number !== 'string') {
-      return false;
-    }
-
-    var length = number.length;
-    var isTooLong = (length > MAX_PHONE_NUMBER_LENGTH);
-    var isEmpty = (length === 0);
-    return !(isTooLong || isEmpty || NON_DIALABLE_CHARS_ONCE.test(number));
-  }
-
-  return {
-    IsPlain: IsPlainPhoneNumber,
-    Parse: ParseNumber,
-  };
-})(PHONE_NUMBER_META_DATA);
deleted file mode 100644
--- a/dom/phonenumberutils/PhoneNumberMetaData.jsm
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Automatically generated. Do not edit. */
-// Please use https://github.com/andreasgal/PhoneNumber.js
-
-this.EXPORTED_SYMBOLS = ["PHONE_NUMBER_META_DATA"];
-
-this.PHONE_NUMBER_META_DATA = {
-"46": '["SE","00","0",,,"$NP$FG","\\d{5,10}","[1-9]\\d{5,9}",[["(8)(\\d{2,3})(\\d{2,3})(\\d{2})","$1-$2 $3 $4","8",,"$1 $2 $3 $4"],["([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4","1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90",,"$1 $2 $3 $4"],["([1-69]\\d)(\\d{3})(\\d{2})","$1-$2 $3","1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90",,"$1 $2 $3"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4","1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])",,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3","1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])",,"$1 $2 $3"],["(7\\d)(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4","7",,"$1 $2 $3 $4"],["(77)(\\d{2})(\\d{2})","$1-$2$3","7",,"$1 $2 $3"],["(20)(\\d{2,3})(\\d{2})","$1-$2 $3","20",,"$1 $2 $3"],["(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4","9[034]",,"$1 $2 $3 $4"],["(9[034]\\d)(\\d{4})","$1-$2","9[034]",,"$1 $2"]]]',
-"299": '["GL","00",,,,,"\\d{6}","[1-689]\\d{5}",[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
-"385": '["HR","00","0",,,"$NP$FG","\\d{6,12}","[1-7]\\d{5,8}|[89]\\d{6,11}",[["(1)(\\d{4})(\\d{3})","$1 $2 $3","1",,],["(6[09])(\\d{4})(\\d{3})","$1 $2 $3","6[09]",,],["(62)(\\d{3})(\\d{3,4})","$1 $2 $3","62",,],["([2-5]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[2-5]",,],["(9\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","9",,],["(9\\d)(\\d{4})(\\d{4})","$1 $2 $3","9",,],["(9\\d)(\\d{3,4})(\\d{3})(\\d{3})","$1 $2 $3 $4","9",,],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3","6[145]|7",,],["(\\d{2})(\\d{3,4})(\\d{3})","$1 $2 $3","6[145]|7",,],["(80[01])(\\d{2})(\\d{2,3})","$1 $2 $3","8",,],["(80[01])(\\d{3,4})(\\d{3})","$1 $2 $3","8",,]]]',
-"670": '["TL","00",,,,,"\\d{7,8}","[2-489]\\d{6}|7\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[2-489]",,],["(\\d{4})(\\d{4})","$1 $2","7",,]]]',
-"258": '["MZ","00",,,,,"\\d{8,9}","[28]\\d{7,8}",[["([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","2|8[2-7]",,],["(80\\d)(\\d{3})(\\d{3})","$1 $2 $3","80",,]]]',
-"359": '["BG","00","0",,,"$NP$FG","\\d{5,9}","[23567]\\d{5,7}|[489]\\d{6,8}",[["(2)(\\d{5})","$1 $2","29",,],["(2)(\\d{3})(\\d{3,4})","$1 $2 $3","2",,],["(\\d{3})(\\d{4})","$1 $2","43[124-7]|70[1-9]",,],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3","43[124-7]|70[1-9]",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","[78]00",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","999",,],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3","[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","48|8[7-9]|9[08]",,]]]',
-"682": '["CK","00",,,,,"\\d{5}","[2-57]\\d{4}",[["(\\d{2})(\\d{3})","$1 $2",,,]]]',
-"852": '["HK","00",,,,,"\\d{5,11}","[235-7]\\d{7}|8\\d{7,8}|9\\d{4,10}",[["(\\d{4})(\\d{4})","$1 $2","[235-7]|[89](?:0[1-9]|[1-9])",,],["(800)(\\d{3})(\\d{3})","$1 $2 $3","800",,],["(900)(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4","900",,],["(900)(\\d{2,5})","$1 $2","900",,]]]',
-"998": '["UZ","810","8",,,"$NP $FG","\\d{7,9}","[679]\\d{8}",[["([679]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"291": '["ER","00","0",,,"$NP$FG","\\d{6,7}","[178]\\d{6}",[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
-"95": '["MM","00","0",,,"$NP$FG","\\d{5,10}","[14578]\\d{5,7}|[26]\\d{5,8}|9(?:2\\d{0,2}|[58]|3\\d|4\\d{1,2}|6\\d?|[79]\\d{0,2})\\d{6}",[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","1|2[45]",,],["(2)(\\d{4})(\\d{4})","$1 $2 $3","251",,],["(\\d)(\\d{2})(\\d{3})","$1 $2 $3","16|2",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","67|81",,],["(\\d{2})(\\d{2})(\\d{3,4})","$1 $2 $3","[4-8]",,],["(9)(\\d{3})(\\d{4,6})","$1 $2 $3","9(?:2[0-4]|[35-9]|4[13789])",,],["(9)(4\\d{4})(\\d{4})","$1 $2 $3","94[0245]",,],["(9)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","925",,]]]',
-"266": '["LS","00",,,,,"\\d{8}","[2568]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
-"245": '["GW","00",,,,,"\\d{7}","[3-79]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"374": '["AM","00","0",,,"($NP$FG)","\\d{5,8}","[1-9]\\d{7}",[["(\\d{2})(\\d{6})","$1 $2","1|47",,],["(\\d{2})(\\d{6})","$1 $2","4[139]|[5-7]|9[1-9]","$NP$FG",],["(\\d{3})(\\d{5})","$1 $2","[23]",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","8|90","$NP $FG",]]]',
-"379": '["VA","00",,,,,"\\d{10}","06\\d{8}",[["(06)(\\d{4})(\\d{4})","$1 $2 $3",,,]]]',
-"61": ['["AU","(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,,"\\d{6,10}","[1-578]\\d{5,9}",[["([2378])(\\d{4})(\\d{4})","$1 $2 $3","[2378]","($NP$FG)",],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[45]|14","$NP$FG",],["(16)(\\d{3})(\\d{2,4})","$1 $2 $3","16","$NP$FG",],["(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","1(?:[38]0|90)","$FG",],["(180)(2\\d{3})","$1 $2","180","$FG",],["(19\\d)(\\d{3})","$1 $2","19[13]","$FG",],["(19\\d{2})(\\d{4})","$1 $2","19[67]","$FG",],["(13)(\\d{2})(\\d{2})","$1 $2 $3","13[1-9]","$FG",]]]','["CC","(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,,"\\d{6,10}","[1458]\\d{5,9}",]','["CX","(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,,"\\d{6,10}","[1458]\\d{5,9}",]'],
-"500": '["FK","00",,,,,"\\d{5}","[2-7]\\d{4}",]',
-"261": '["MG","00","0",,,"$NP$FG","\\d{7,9}","[23]\\d{8}",[["([23]\\d)(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"92": '["PK","00","0",,,"($NP$FG)","\\d{6,12}","1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))",[["(\\d{2})(111)(\\d{3})(\\d{3})","$1 $2 $3 $4","(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)1",,],["(\\d{3})(111)(\\d{3})(\\d{3})","$1 $2 $3 $4","2[349]|45|54|60|72|8[2-5]|9[2-9]",,],["(\\d{2})(\\d{7,8})","$1 $2","(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]",,],["(\\d{3})(\\d{6,7})","$1 $2","2[349]|45|54|60|72|8[2-5]|9[2-9]",,],["(3\\d{2})(\\d{7})","$1 $2","3","$NP$FG",],["([15]\\d{3})(\\d{5,6})","$1 $2","58[12]|1",,],["(586\\d{2})(\\d{5})","$1 $2","586",,],["([89]00)(\\d{3})(\\d{2})","$1 $2 $3","[89]00","$NP$FG",]]]',
-"234": '["NG","009","0",,,"$NP$FG","\\d{5,14}","[1-6]\\d{5,8}|9\\d{5,9}|[78]\\d{5,13}",[["([129])(\\d{3})(\\d{3,4})","$1 $2 $3","[129]",,],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3","[3-6]|7(?:[1-79]|0[1-9])|8[2-9]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","70|8[01]|90[2359]",,],["([78]00)(\\d{4})(\\d{4,5})","$1 $2 $3","[78]00",,],["([78]00)(\\d{5})(\\d{5,6})","$1 $2 $3","[78]00",,],["(78)(\\d{2})(\\d{3})","$1 $2 $3","78",,]]]',
-"350": '["GI","00",,,,,"\\d{8}","[2568]\\d{7}",[["(\\d{3})(\\d{5})","$1 $2","2",,]]]',
-"45": '["DK","00",,,,,"\\d{8}","[2-9]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"963": '["SY","00","0",,,"$NP$FG","\\d{6,9}","[1-59]\\d{7,8}",[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","[1-5]",,],["(9\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","9",,]]]',
-"226": '["BF","00",,,,,"\\d{8}","[267]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"974": '["QA","00",,,,,"\\d{7,8}","[2-8]\\d{6,7}",[["([28]\\d{2})(\\d{4})","$1 $2","[28]",,],["([3-7]\\d{3})(\\d{4})","$1 $2","[3-7]",,]]]',
-"218": '["LY","00","0",,,"$NP$FG","\\d{7,9}","[25679]\\d{8}",[["([25679]\\d)(\\d{7})","$1-$2",,,]]]',
-"51": '["PE","19(?:1[124]|77|90)00","0",,,"($NP$FG)","\\d{6,9}","[14-9]\\d{7,8}",[["(1)(\\d{7})","$1 $2","1",,],["([4-8]\\d)(\\d{6})","$1 $2","[4-7]|8[2-4]",,],["(\\d{3})(\\d{5})","$1 $2","80",,],["(9\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","9","$FG",]]]',
-"62": '["ID","0(?:0[1789]|10(?:00|1[67]))","0",,,"$NP$FG","\\d{5,11}","[1-9]\\d{6,10}",[["(\\d{2})(\\d{5,8})","$1 $2","2[124]|[36]1","($NP$FG)",],["(\\d{3})(\\d{5,8})","$1 $2","[4579]|2[035-9]|[36][02-9]","($NP$FG)",],["(8\\d{2})(\\d{3,4})(\\d{3,4})","$1-$2-$3","8[1-35-9]",,],["(177)(\\d{6,8})","$1 $2","1",,],["(800)(\\d{5,7})","$1 $2","800",,],["(80\\d)(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4","80[79]",,]]]',
-"298": '["FO","00",,"(10(?:01|[12]0|88))",,,"\\d{6}","[2-9]\\d{5}",[["(\\d{6})","$1",,,]]]',
-"381": '["RS","00","0",,,"$NP$FG","\\d{5,12}","[126-9]\\d{4,11}|3(?:[0-79]\\d{3,10}|8[2-9]\\d{2,9})",[["([23]\\d{2})(\\d{4,9})","$1 $2","(?:2[389]|39)0",,],["([1-3]\\d)(\\d{5,10})","$1 $2","1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])",,],["(6\\d)(\\d{6,8})","$1 $2","6",,],["([89]\\d{2})(\\d{3,9})","$1 $2","[89]",,],["(7[26])(\\d{4,9})","$1 $2","7[26]",,],["(7[08]\\d)(\\d{4,9})","$1 $2","7[08]",,]]]',
-"975": '["BT","00",,,,,"\\d{6,8}","[1-8]\\d{6,7}",[["([17]7)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","1|77",,],["([2-8])(\\d{3})(\\d{3})","$1 $2 $3","[2-68]|7[246]",,]]]',
-"34": '["ES","00",,,,,"\\d{9}","[5-9]\\d{8}",[["([5-9]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[568]|[79][0-8]",,]]]',
-"881": '["001",,,,,,"\\d{9}","[67]\\d{8}",[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3","[67]",,]]]',
-"855": '["KH","00[14-9]","0",,,,"\\d{6,10}","[1-9]\\d{7,9}",[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","1\\d[1-9]|[2-9]","$NP$FG",],["(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3","1[89]0",,]]]',
-"420": '["CZ","00",,,,,"\\d{9,12}","[2-8]\\d{8}|9\\d{8,11}",[["([2-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[2-8]|9[015-7]",,],["(96\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","96",,],["(9\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","9[36]",,]]]',
-"216": '["TN","00",,,,,"\\d{8}","[2-57-9]\\d{7}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
-"673": '["BN","00",,,,,"\\d{7}","[2-578]\\d{6}",[["([2-578]\\d{2})(\\d{4})","$1 $2",,,]]]',
-"290": ['["SH","00",,,,,"\\d{4,5}","[25]\\d{4}",]','["TA","00",,,,,"\\d{4}","8\\d{3}",]'],
-"882": '["001",,,,,,"\\d{7,12}","[13]\\d{6,11}",[["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3","3[23]",,],["(\\d{2})(\\d{5})","$1 $2","16|342",,],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","34[57]",,],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","348",,],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3","1",,],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3","16",,],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3","16",,]]]',
-"267": '["BW","00",,,,,"\\d{7,8}","[2-79]\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[2-6]",,],["(7\\d)(\\d{3})(\\d{3})","$1 $2 $3","7",,],["(90)(\\d{5})","$1 $2","9",,]]]',
-"94": '["LK","00","0",,,"$NP$FG","\\d{7,9}","[1-9]\\d{8}",[["(\\d{2})(\\d{1})(\\d{6})","$1 $2 $3","[1-689]",,],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","7",,]]]',
-"356": '["MT","00",,,,,"\\d{8}","[2357-9]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
-"375": '["BY","810","8","8?0?",,,"\\d{7,11}","[1-4]\\d{8}|[89]\\d{9,10}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4","17[0-3589]|2[4-9]|[34]","$NP 0$FG",],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4","1(?:5[24]|6[235]|7[467])|2(?:1[246]|2[25]|3[26])","$NP 0$FG",],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3","1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","$NP 0$FG",],["([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","8[01]|9","$NP $FG",],["(8\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","82","$NP $FG",]]]',
-"690": '["TK","00",,,,,"\\d{4}","[2-9]\\d{3}",]',
-"507": '["PA","00",,,,,"\\d{7,8}","[1-9]\\d{6,7}",[["(\\d{3})(\\d{4})","$1-$2","[1-57-9]",,],["(\\d{4})(\\d{4})","$1-$2","6",,]]]',
-"692": '["MH","011","1",,,,"\\d{7}","[2-6]\\d{6}",[["(\\d{3})(\\d{4})","$1-$2",,,]]]',
-"250": '["RW","00","0",,,,"\\d{8,9}","[027-9]\\d{7,8}",[["(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","2","$FG",],["([7-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[7-9]","$NP$FG",],["(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","0",,]]]',
-"81": '["JP","010","0",,,"$NP$FG","\\d{8,17}","[1-9]\\d{8,9}|00(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})",[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3","(?:12|57|99)0",,],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3","800",,],["(\\d{4})(\\d{4})","$1-$2","0077","$FG","NA"],["(\\d{4})(\\d{2})(\\d{3,4})","$1-$2-$3","0077","$FG","NA"],["(\\d{4})(\\d{2})(\\d{4})","$1-$2-$3","0088","$FG","NA"],["(\\d{4})(\\d{3})(\\d{3,4})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{4})(\\d{4})(\\d{4,5})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{4})(\\d{5})(\\d{5,6})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{4})(\\d{6})(\\d{6,7})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3","[2579]0|80[1-9]",,],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3","1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])",,],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3","1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])",,],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3","1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)",,],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3","2(?:9[14-79]|74|[34]7|[56]9)|82|993",,],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3","3|4(?:2[09]|7[01])|6[1-9]",,],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3","[2479][1-9]",,]]]',
-"237": '["CM","00",,,,,"\\d{8,9}","[2368]\\d{7,8}",[["([26])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","[26]",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[23]|88",,],["(800)(\\d{2})(\\d{3})","$1 $2 $3","80",,]]]',
-"351": '["PT","00",,,,,"\\d{9}","[2-46-9]\\d{8}",[["(2\\d)(\\d{3})(\\d{4})","$1 $2 $3","2[12]",,],["([2-46-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","2[3-9]|[346-9]",,]]]',
-"246": '["IO","00",,,,,"\\d{7}","3\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"227": '["NE","00",,,,,"\\d{8}","[0289]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[289]|09",,],["(08)(\\d{3})(\\d{3})","$1 $2 $3","08",,]]]',
-"27": '["ZA","00","0",,,"$NP$FG","\\d{5,9}","[1-79]\\d{8}|8(?:[067]\\d{7}|[1-4]\\d{3,7})",[["(860)(\\d{3})(\\d{3})","$1 $2 $3","860",,],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[1-79]|8(?:[0-47]|6[1-9])",,],["(\\d{2})(\\d{3,4})","$1 $2","8[1-4]",,],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3","8[1-4]",,]]]',
-"962": '["JO","00","0",,,"$NP$FG","\\d{8,9}","[235-9]\\d{7,8}",[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3","[2356]|87","($NP$FG)",],["(7)(\\d{4})(\\d{4})","$1 $2 $3","7[457-9]",,],["(\\d{3})(\\d{5,6})","$1 $2","70|8[0158]|9",,]]]',
-"387": '["BA","00","0",,,"$NP$FG","\\d{6,9}","[3-9]\\d{7,8}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3","[3-5]",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","6[1-356]|[7-9]",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4","6[047]",,]]]',
-"33": '["FR","00","0",,,"$NP$FG","\\d{9}","[1-9]\\d{8}",[["([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","[1-79]",,],["(1\\d{2})(\\d{3})","$1 $2","11","$FG","NA"],["(8\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","8","$NP $FG",]]]',
-"972": '["IL","0(?:0|1[2-9])","0",,,"$FG","\\d{4,10}","[17]\\d{6,9}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}",[["([2-489])(\\d{3})(\\d{4})","$1-$2-$3","[2-489]","$NP$FG",],["([57]\\d)(\\d{3})(\\d{4})","$1-$2-$3","[57]","$NP$FG",],["(1)([7-9]\\d{2})(\\d{3})(\\d{3})","$1-$2-$3-$4","1[7-9]",,],["(1255)(\\d{3})","$1-$2","125",,],["(1200)(\\d{3})(\\d{3})","$1-$2-$3","120",,],["(1212)(\\d{2})(\\d{2})","$1-$2-$3","121",,],["(1599)(\\d{6})","$1-$2","15",,],["(\\d{4})","*$1","[2-689]",,]]]',
-"248": '["SC","0[0-2]",,,,,"\\d{6,7}","[2468]\\d{5,6}",[["(\\d{3})(\\d{3})","$1 $2","8",,],["(\\d)(\\d{3})(\\d{3})","$1 $2 $3","[246]",,]]]',
-"297": '["AW","00",,,,,"\\d{7}","[25-9]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"421": '["SK","00","0",,,"$NP$FG","\\d{9}","[2-689]\\d{8}",[["(2)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4","2",,],["([3-5]\\d)(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4","[3-5]",,],["([689]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[689]",,]]]',
-"672": '["NF","00",,,,,"\\d{5,6}","[13]\\d{5}",[["(\\d{2})(\\d{4})","$1 $2","1",,],["(\\d)(\\d{5})","$1 $2","3",,]]]',
-"870": '["001",,,,,,"\\d{9}","[35-7]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
-"883": '["001",,,,,,"\\d{9}(?:\\d{3})?","51\\d{7}(?:\\d{3})?",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","510",,],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","510",,],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3","51[13]",,]]]',
-"264": '["NA","00","0",,,"$NP$FG","\\d{8,9}","[68]\\d{7,8}",[["(8\\d)(\\d{3})(\\d{4})","$1 $2 $3","8[1235]",,],["(6\\d)(\\d{2,3})(\\d{4})","$1 $2 $3","6",,],["(88)(\\d{3})(\\d{3})","$1 $2 $3","88",,],["(870)(\\d{3})(\\d{3})","$1 $2 $3","870",,]]]',
-"878": '["001",,,,,,"\\d{12}","1\\d{11}",[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",,,]]]',
-"239": '["ST","00",,,,,"\\d{7}","[29]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"357": '["CY","00",,,,,"\\d{8}","[257-9]\\d{7}",[["(\\d{2})(\\d{6})","$1 $2",,,]]]',
-"240": '["GQ","00",,,,,"\\d{9}","[23589]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[235]",,],["(\\d{3})(\\d{6})","$1 $2","[89]",,]]]',
-"506": '["CR","00",,"(19(?:0[012468]|1[09]|20|66|77|99))",,,"\\d{8,10}","[24-9]\\d{7,9}",[["(\\d{4})(\\d{4})","$1 $2","[24-7]|8[3-9]",,],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3","[89]0",,]]]',
-"86": '["CN","(1(?:[129]\\d{3}|79\\d{2}))?00","0","(1(?:[129]\\d{3}|79\\d{2}))|0",,,"\\d{4,12}","[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,10}",[["(80\\d{2})(\\d{4})","$1 $2","80[2678]","$NP$FG",],["([48]00)(\\d{3})(\\d{4})","$1 $2 $3","[48]00",,],["(\\d{5,6})","$1","100|95",,"NA"],["(\\d{2})(\\d{5,6})","$1 $2","(?:10|2\\d)[19]","$NP$FG",],["(\\d{3})(\\d{5,6})","$1 $2","[3-9]","$NP$FG",],["(\\d{3,4})(\\d{4})","$1 $2","[2-9]",,"NA"],["(21)(\\d{4})(\\d{4,6})","$1 $2 $3","21","$NP$FG",],["([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3","10[1-9]|2[02-9]","$NP$FG",],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:[57]1|98)","$NP$FG",],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[4-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])","$NP$FG",],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","1[3-578]",,],["(10800)(\\d{3})(\\d{4})","$1 $2 $3","108",,],["(\\d{3})(\\d{7,8})","$1 $2","950",,]]]',
-"257": '["BI","00",,,,,"\\d{8}","[267]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"683": '["NU","00",,,,,"\\d{4}","[1-5]\\d{3}",]',
-"43": '["AT","00","0",,,"$NP$FG","\\d{3,13}","[1-9]\\d{3,12}",[["(1)(\\d{3,12})","$1 $2","1",,],["(5\\d)(\\d{3,5})","$1 $2","5[079]",,],["(5\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","5[079]",,],["(5\\d)(\\d{4})(\\d{4,7})","$1 $2 $3","5[079]",,],["(\\d{3})(\\d{3,10})","$1 $2","316|46|51|732|6(?:44|5[0-3579]|[6-9])|7(?:1|[28]0)|[89]",,],["(\\d{4})(\\d{3,9})","$1 $2","2|3(?:1[1-578]|[3-8])|4[2378]|5[2-6]|6(?:[12]|4[1-35-9]|5[468])|7(?:2[1-8]|35|4[1-8]|[5-79])",,]]]',
-"247": '["AC","00",,,,,"\\d{4,6}","[46]\\d{4}|[2-467]\\d{3}|[01589]\\d{5}",]',
-"675": '["PG","00",,,,,"\\d{7,8}","[1-9]\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[13-689]|27",,],["(\\d{4})(\\d{4})","$1 $2","20|7",,]]]',
-"376": '["AD","00",,,,,"\\d{6,8}","(?:[346-9]|180)\\d{5}",[["(\\d{3})(\\d{3})","$1 $2","[346-9]",,],["(180[02])(\\d{4})","$1 $2","1",,]]]',
-"63": '["PH","00","0",,,,"\\d{5,13}","2\\d{5,7}|[3-9]\\d{7,9}|1800\\d{7,9}",[["(2)(\\d{3})(\\d{4})","$1 $2 $3","2","($NP$FG)",],["(2)(\\d{5})","$1 $2","2","($NP$FG)",],["(\\d{4})(\\d{4,6})","$1 $2","3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|5(?:22|44)|642|8(?:62|8[245])","($NP$FG)",],["(\\d{5})(\\d{4})","$1 $2","346|4(?:27|9[35])|883","($NP$FG)",],["([3-8]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[3-8]","($NP$FG)",],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","81|9","$NP$FG",],["(1800)(\\d{3})(\\d{4})","$1 $2 $3","1",,],["(1800)(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4","1",,]]]',
-"236": '["CF","00",,,,,"\\d{8}","[278]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"590": ['["GP","00","0",,,"$NP$FG","\\d{9}","[56]\\d{8}",[["([56]90)(\\d{2})(\\d{4})","$1 $2-$3",,,]]]','["BL","00","0",,,,"\\d{9}","[56]\\d{8}",]','["MF","00","0",,,,"\\d{9}","[56]\\d{8}",]'],
-"53": '["CU","119","0",,,"($NP$FG)","\\d{4,8}","[2-57]\\d{5,7}",[["(\\d)(\\d{6,7})","$1 $2","7",,],["(\\d{2})(\\d{4,6})","$1 $2","[2-4]",,],["(\\d)(\\d{7})","$1 $2","5","$NP$FG",]]]',
-"64": '["NZ","0(?:0|161)","0",,,"$NP$FG","\\d{7,11}","6[235-9]\\d{6}|[2-57-9]\\d{7,10}",[["([34679])(\\d{3})(\\d{4})","$1-$2 $3","[346]|7[2-57-9]|9[1-9]",,],["(24099)(\\d{3})","$1 $2","240",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","21",,],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3","2(?:1[1-9]|[69]|7[0-35-9])|70|86",,],["(2\\d)(\\d{3,4})(\\d{4})","$1 $2 $3","2[028]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","2(?:10|74)|5|[89]0",,]]]',
-"965": '["KW","00",,,,,"\\d{7,8}","[12569]\\d{6,7}",[["(\\d{4})(\\d{3,4})","$1 $2","[126]|9[04-9]",,],["(\\d{3})(\\d{5})","$1 $2","5[015]|92",,]]]',
-"224": '["GN","00",,,,,"\\d{8,9}","[367]\\d{7,8}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","3",,],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[67]",,]]]',
-"973": '["BH","00",,,,,"\\d{8}","[136-9]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
-"32": '["BE","00","0",,,"$NP$FG","\\d{8,9}","[1-9]\\d{7,8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","4[6-9]",,],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[23]|4[23]|9[2-4]",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[156]|7[018]|8(?:0[1-9]|[1-79])",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","(?:80|9)0",,]]]',
-"249": '["SD","00","0",,,"$NP$FG","\\d{9}","[19]\\d{8}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",,,]]]',
-"678": '["VU","00",,,,,"\\d{5,7}","[2-57-9]\\d{4,6}",[["(\\d{3})(\\d{4})","$1 $2","[579]",,]]]',
-"52": '["MX","0[09]","01","0[12]|04[45](\\d{10})","1$1","$NP $FG","\\d{7,11}","[1-9]\\d{9,10}",[["([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3","33|55|81",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]",,],["(1)([358]\\d)(\\d{4})(\\d{4})","044 $2 $3 $4","1(?:33|55|81)","$FG","$1 $2 $3 $4"],["(1)(\\d{3})(\\d{3})(\\d{4})","044 $2 $3 $4","1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])","$FG","$1 $2 $3 $4"]]]',
-"968": '["OM","00",,,,,"\\d{7,9}","(?:2[2-6]|5|9[1-9])\\d{6}|800\\d{5,6}",[["(2\\d)(\\d{6})","$1 $2","2",,],["(9\\d{3})(\\d{4})","$1 $2","9",,],["([58]00)(\\d{4,6})","$1 $2","[58]",,]]]',
-"599": ['["CW","00",,,,,"\\d{7,8}","[169]\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[13-7]",,],["(9)(\\d{3})(\\d{4})","$1 $2 $3","9",,]]]','["BQ","00",,,,,"\\d{7}","[347]\\d{6}",]'],
-"800": '["001",,,,,,"\\d{8}","\\d{8}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
-"386": '["SI","00","0",,,"$NP$FG","\\d{5,8}","[1-7]\\d{6,7}|[89]\\d{4,7}",[["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[12]|3[4-8]|4[24-8]|5[2-8]|7[3-8]","($NP$FG)",],["([3-7]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[37][01]|4[0139]|51|6",,],["([89][09])(\\d{3,6})","$1 $2","[89][09]",,],["([58]\\d{2})(\\d{5})","$1 $2","59|8[1-3]",,]]]',
-"679": '["FJ","0(?:0|52)",,,,,"\\d{7}(?:\\d{4})?","[36-9]\\d{6}|0\\d{10}",[["(\\d{3})(\\d{4})","$1 $2","[36-9]",,],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3","0",,]]]',
-"238": '["CV","0",,,,,"\\d{7}","[259]\\d{6}",[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
-"691": '["FM","00",,,,,"\\d{7}","[39]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"262": ['["RE","00","0",,,"$NP$FG","\\d{9}","[268]\\d{8}",[["([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]','["YT","00","0",,,"$NP$FG","\\d{9}","[268]\\d{8}",]'],
-"241": '["GA","00",,,,,"\\d{7,8}","0?\\d{7}",[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[2-7]","0$FG",],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","0",,]]]',
-"370": '["LT","00","8","[08]",,"($NP-$FG)","\\d{8}","[3-9]\\d{7}",[["([34]\\d)(\\d{6})","$1 $2","37|4(?:1|5[45]|6[2-4])",,],["([3-6]\\d{2})(\\d{5})","$1 $2","3[148]|4(?:[24]|6[09])|528|6",,],["([7-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","[7-9]","$NP $FG",],["(5)(2\\d{2})(\\d{4})","$1 $2 $3","52[0-79]",,]]]',
-"256": '["UG","00[057]","0",,,"$NP$FG","\\d{5,9}","\\d{9}",[["(\\d{3})(\\d{6})","$1 $2","[7-9]|20(?:[013-8]|2[5-9])|4(?:6[45]|[7-9])",,],["(\\d{2})(\\d{7})","$1 $2","3|4(?:[1-5]|6[0-36-9])",,],["(2024)(\\d{5})","$1 $2","2024",,]]]',
-"677": '["SB","0[01]",,,,,"\\d{5,7}","[1-9]\\d{4,6}",[["(\\d{2})(\\d{5})","$1 $2","[7-9]",,]]]',
-"377": '["MC","00","0",,,"$NP$FG","\\d{8,9}","[4689]\\d{7,8}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","9","$FG",],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","4",,],["(6)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","6",,],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3","8","$FG",]]]',
-"382": '["ME","00","0",,,"$NP$FG","\\d{6,9}","[2-9]\\d{7,8}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[2-57-9]|6[036-9]",,],["(67)(9)(\\d{3})(\\d{3})","$1 $2 $3 $4","679",,]]]',
-"231": '["LR","00","0",,,"$NP$FG","\\d{7,9}","2\\d{7}|[37-9]\\d{8}|[45]\\d{6}",[["(2\\d)(\\d{3})(\\d{3})","$1 $2 $3","2",,],["([79]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[79]",,],["([4-6])(\\d{3})(\\d{3})","$1 $2 $3","[4-6]",,],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[38]",,]]]',
-"591": '["BO","00(1\\d)?","0","0(1\\d)?",,,"\\d{7,8}","[23467]\\d{7}",[["([234])(\\d{7})","$1 $2","[234]",,],["([67]\\d{7})","$1","[67]",,]]]',
-"808": '["001",,,,,,"\\d{8}","\\d{8}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
-"964": '["IQ","00","0",,,"$NP$FG","\\d{6,10}","[1-7]\\d{7,9}",[["(1)(\\d{3})(\\d{4})","$1 $2 $3","1",,],["([2-6]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","[2-6]",,],["(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","7",,]]]',
-"225": '["CI","00",,,,,"\\d{8}","[02-7]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"992": '["TJ","810","8",,,"($NP) $FG","\\d{3,9}","[3-59]\\d{8}",[["([349]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3","[34]7|91[78]",,],["([459]\\d)(\\d{3})(\\d{4})","$1 $2 $3","4[48]|5|9(?:1[59]|[0235-9])",,],["(331700)(\\d)(\\d{2})","$1 $2 $3","331",,],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3","3[1-5]",,]]]',
-"55": '["BR","00(?:1[45]|2[135]|31|4[13])","0","(?:0|90)(?:(1[245]|2[135]|[34]1)(\\d{10,11}))?","$2",,"\\d{8,11}","[1-46-9]\\d{7,10}|5\\d{8,9}",[["(\\d{4})(\\d{4})","$1-$2","[2-9](?:[1-9]|0[1-9])","$FG","NA"],["(\\d{5})(\\d{4})","$1-$2","9(?:[1-9]|0[1-9])","$FG","NA"],["(\\d{3,5})","$1","1[125689]","$FG","NA"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3","(?:[189][1-9]|2[12478])9","($FG)",],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3","[1-9][1-9]","($FG)",],["([34]00\\d)(\\d{4})","$1-$2","[34]00",,],["([3589]00)(\\d{2,3})(\\d{4})","$1 $2 $3","[3589]00","$NP$FG",]]]',
-"674": '["NR","00",,,,,"\\d{7}","[458]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"967": '["YE","00","0",,,"$NP$FG","\\d{6,9}","[1-7]\\d{6,8}",[["([1-7])(\\d{3})(\\d{3,4})","$1 $2 $3","[1-6]|7[24-68]",,],["(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","7[0137]",,]]]',
-"49": '["DE","00","0",,,"$NP$FG","\\d{2,15}","[1-35-9]\\d{3,14}|4(?:[0-8]\\d{4,12}|9(?:[0-37]\\d|4(?:[1-35-8]|4\\d?)|5\\d{1,2}|6[1-8]\\d?)\\d{2,8})",[["(1\\d{2})(\\d{7,8})","$1 $2","1[67]",,],["(1\\d{3})(\\d{7})","$1 $2","15",,],["(\\d{2})(\\d{3,11})","$1 $2","3[02]|40|[68]9",,],["(\\d{3})(\\d{3,11})","$1 $2","2(?:\\d1|0[2389]|1[24]|28|34)|3(?:[3-9][15]|40)|[4-8][1-9]1|9(?:06|[1-9]1)",,],["(\\d{4})(\\d{2,11})","$1 $2","[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])",,],["(3\\d{4})(\\d{1,10})","$1 $2","3",,],["(800)(\\d{7,12})","$1 $2","800",,],["(177)(99)(\\d{7,8})","$1 $2 $3","177",,],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3","(?:18|90)0|137",,],["(1\\d{2})(\\d{5,11})","$1 $2","181",,],["(18\\d{3})(\\d{6})","$1 $2","185",,],["(18\\d{2})(\\d{7})","$1 $2","18[68]",,],["(18\\d)(\\d{8})","$1 $2","18[2-579]",,],["(700)(\\d{4})(\\d{4})","$1 $2 $3","700",,],["(138)(\\d{4})","$1 $2","138",,]]]',
-"31": '["NL","00","0",,,"$NP$FG","\\d{5,10}","1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}",[["([1-578]\\d)(\\d{3})(\\d{4})","$1 $2 $3","1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7|8[4578]",,],["([1-5]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","1[16-8]|2[259]|3[124]|4[17-9]|5[124679]",,],["(6)(\\d{8})","$1 $2","6[0-57-9]",,],["(66)(\\d{7})","$1 $2","66",,],["(14)(\\d{3,4})","$1 $2","14","$FG",],["([89]0\\d)(\\d{4,7})","$1 $2","80|9",,]]]',
-"970": '["PS","00","0",,,"$NP$FG","\\d{4,10}","[24589]\\d{7,8}|1(?:[78]\\d{8}|[49]\\d{2,3})",[["([2489])(2\\d{2})(\\d{4})","$1 $2 $3","[2489]",,],["(5[69]\\d)(\\d{3})(\\d{3})","$1 $2 $3","5",,],["(1[78]00)(\\d{3})(\\d{3})","$1 $2 $3","1[78]","$FG",]]]',
-"58": '["VE","00","0",,,"$NP$FG","\\d{7,10}","[24589]\\d{9}",[["(\\d{3})(\\d{7})","$1-$2",,,]]]',
-"856": '["LA","00","0",,,"$NP$FG","\\d{6,10}","[2-8]\\d{7,9}",[["(20)(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4","20",,],["([2-8]\\d)(\\d{3})(\\d{3})","$1 $2 $3","2[13]|3[14]|[4-8]",,],["(30)(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4","30",,]]]',
-"354": '["IS","00",,,,,"\\d{7,9}","[4-9]\\d{6}|38\\d{7}",[["(\\d{3})(\\d{4})","$1 $2","[4-9]",,],["(3\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","3",,]]]',
-"242": '["CG","00",,,,,"\\d{9}","[028]\\d{8}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[02]",,],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3","8",,]]]',
-"423": '["LI","00","0",,,,"\\d{7,9}","6\\d{8}|[23789]\\d{6}",[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3","[23789]",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","6[56]",,],["(69)(7\\d{2})(\\d{4})","$1 $2 $3","697",,]]]',
-"213": '["DZ","00","0",,,"$NP$FG","\\d{8,9}","(?:[1-4]|[5-9]\\d)\\d{7}",[["([1-4]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[1-4]",,],["([5-8]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[5-8]",,],["(9\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","9",,]]]',
-"371": '["LV","00",,,,,"\\d{8}","[2689]\\d{7}",[["([2689]\\d)(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
-"503": '["SV","00",,,,,"\\d{7,8}|\\d{11}","[267]\\d{7}|[89]\\d{6}(?:\\d{4})?",[["(\\d{4})(\\d{4})","$1 $2","[267]",,],["(\\d{3})(\\d{4})","$1 $2","[89]",,],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","[89]",,]]]',
-"685": '["WS","0",,,,,"\\d{5,7}","[2-8]\\d{4,6}",[["(8\\d{2})(\\d{3,4})","$1 $2","8",,],["(7\\d)(\\d{5})","$1 $2","7",,],["(\\d{5})","$1","[2-6]",,]]]',
-"880": '["BD","00[12]?","0",,,"$NP$FG","\\d{6,10}","[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}",[["(2)(\\d{7})","$1-$2","2",,],["(\\d{2})(\\d{4,6})","$1-$2","[3-79]1",,],["(\\d{4})(\\d{3,6})","$1-$2","1|3(?:0|[2-58]2)|4(?:0|[25]2|3[23]|[4689][25])|5(?:[02-578]2|6[25])|6(?:[0347-9]2|[26][25])|7[02-9]2|8(?:[023][23]|[4-7]2)|9(?:[02][23]|[458]2|6[016])",,],["(\\d{3})(\\d{3,7})","$1-$2","[3-79][2-9]|8",,]]]',
-"265": '["MW","00","0",,,"$NP$FG","\\d{7,9}","(?:1(?:\\d{2})?|[2789]\\d{2})\\d{6}",[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3","1",,],["(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","2",,],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[1789]",,]]]',
-"65": '["SG","0[0-3]\\d",,,,,"\\d{8,11}","[36]\\d{7}|[17-9]\\d{7,10}",[["([3689]\\d{3})(\\d{4})","$1 $2","[369]|8[1-9]",,],["(1[89]00)(\\d{3})(\\d{4})","$1 $2 $3","1[89]",,],["(7000)(\\d{4})(\\d{3})","$1 $2 $3","70",,],["(800)(\\d{3})(\\d{4})","$1 $2 $3","80",,]]]',
-"504": '["HN","00",,,,,"\\d{8}","[237-9]\\d{7}",[["(\\d{4})(\\d{4})","$1-$2",,,]]]',
-"688": '["TV","00",,,,,"\\d{5,6}","[29]\\d{4,5}",]',
-"84": '["VN","00","0",,,"$NP$FG","\\d{7,10}","[17]\\d{6,9}|[2-69]\\d{7,9}|8\\d{6,8}",[["([17]99)(\\d{4})","$1 $2","[17]99",,],["([48])(\\d{4})(\\d{4})","$1 $2 $3","[48]",,],["([235-7]\\d)(\\d{4})(\\d{3})","$1 $2 $3","2[025-79]|3[0136-9]|5[2-9]|6[0-46-8]|7[02-79]",,],["(80)(\\d{5})","$1 $2","80",,],["(69\\d)(\\d{4,5})","$1 $2","69",,],["([235-7]\\d{2})(\\d{4})(\\d{3})","$1 $2 $3","2[1348]|3[25]|5[01]|65|7[18]",,],["(9\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","9",,],["(1[2689]\\d)(\\d{3})(\\d{4})","$1 $2 $3","1(?:[26]|8[68]|99)",,],["(1[89]00)(\\d{4,6})","$1 $2","1[89]0","$FG",]]]',
-"255": '["TZ","00[056]","0",,,"$NP$FG","\\d{7,9}","\\d{9}",[["([24]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[24]",,],["([67]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[67]",,],["([89]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3","[89]",,]]]',
-"222": '["MR","00",,,,,"\\d{8}","[2-48]\\d{7}",[["([2-48]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"230": '["MU","0(?:0|[2-7]0|33)",,,,,"\\d{7,8}","[2-9]\\d{6,7}",[["([2-46-9]\\d{2})(\\d{4})","$1 $2","[2-46-9]",,],["(5\\d{3})(\\d{4})","$1 $2","5",,]]]',
-"592": '["GY","001",,,,,"\\d{7}","[2-4679]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"41": '["CH","00","0",,,"$NP$FG","\\d{9}(?:\\d{3})?","[2-9]\\d{8}|860\\d{9}",[["([2-9]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[2-7]|[89]1",,],["([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","8[047]|90",,],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","860",,]]]',
-"39": '["IT","00",,,,,"\\d{6,11}","[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})",[["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3","0[26]|55",,],["(0[26])(\\d{4})(\\d{5})","$1 $2 $3","0[26]",,],["(0[26])(\\d{4,6})","$1 $2","0[26]",,],["(0\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3","0[13-57-9][0159]",,],["(\\d{3})(\\d{3,6})","$1 $2","0[13-57-9][0159]|8(?:03|4[17]|9[245])",,],["(0\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","0[13-57-9][2-46-8]",,],["(0\\d{3})(\\d{2,6})","$1 $2","0[13-57-9][2-46-8]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","[13]|8(?:00|4[08]|9[59])",,],["(\\d{4})(\\d{4})","$1 $2","894",,],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","3",,]]]',
-"993": '["TM","810","8",,,"($NP $FG)","\\d{8}","[1-6]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4","12",,],["(\\d{2})(\\d{6})","$1 $2","6","$NP $FG",],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4","13|[2-5]",,]]]',
-"888": '["001",,,,,,"\\d{11}","\\d{11}",[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",,,]]]',
-"353": '["IE","00","0",,,"($NP$FG)","\\d{5,10}","[124-9]\\d{6,9}",[["(1)(\\d{3,4})(\\d{4})","$1 $2 $3","1",,],["(\\d{2})(\\d{5})","$1 $2","2[24-9]|47|58|6[237-9]|9[35-9]",,],["(\\d{3})(\\d{5})","$1 $2","40[24]|50[45]",,],["(48)(\\d{4})(\\d{4})","$1 $2 $3","48",,],["(818)(\\d{3})(\\d{3})","$1 $2 $3","81",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","[24-69]|7[14]",,],["([78]\\d)(\\d{3,4})(\\d{4})","$1 $2 $3","76|8[35-9]","$NP$FG",],["(700)(\\d{3})(\\d{3})","$1 $2 $3","70","$NP$FG",],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3","1(?:8[059]|5)","$FG",]]]',
-"966": '["SA","00","0",,,"$NP$FG","\\d{7,10}","1\\d{7,8}|(?:[2-467]|92)\\d{7}|5\\d{8}|8\\d{9}",[["([1-467])(\\d{3})(\\d{4})","$1 $2 $3","[1-467]",,],["(1\\d)(\\d{3})(\\d{4})","$1 $2 $3","1[1-467]",,],["(5\\d)(\\d{3})(\\d{4})","$1 $2 $3","5",,],["(92\\d{2})(\\d{5})","$1 $2","92","$FG",],["(800)(\\d{3})(\\d{4})","$1 $2 $3","80","$FG",],["(811)(\\d{3})(\\d{3,4})","$1 $2 $3","81",,]]]',
-"380": '["UA","00","0",,,"$NP$FG","\\d{5,9}","[3-689]\\d{8}",[["([3-689]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[38]9|4(?:[45][0-5]|87)|5(?:0|6[37]|7[37])|6[36-8]|9[1-9]",,],["([3-689]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","3[1-8]2|4[13678]2|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90",,],["([3-6]\\d{3})(\\d{5})","$1 $2","3(?:5[013-9]|[1-46-8])|4(?:[137][013-9]|6|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6[0135-9]|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])",,]]]',
-"98": '["IR","00","0",,,"$NP$FG","\\d{4,10}","[1-8]\\d{9}|9(?:[0-4]\\d{8}|9\\d{2,8})",[["(21)(\\d{3,5})","$1 $2","21",,],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","[1-8]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","9",,],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3","9",,],["(\\d{3})(\\d{3})","$1 $2","9",,]]]',
-"971": '["AE","00","0",,,"$NP$FG","\\d{5,12}","[2-79]\\d{7,8}|800\\d{2,9}",[["([2-4679])(\\d{3})(\\d{4})","$1 $2 $3","[2-4679][2-8]",,],["(5[0256])(\\d{3})(\\d{4})","$1 $2 $3","5",,],["([479]00)(\\d)(\\d{5})","$1 $2 $3","[479]0","$FG",],["([68]00)(\\d{2,9})","$1 $2","60|8","$FG",]]]',
-"30": '["GR","00",,,,,"\\d{10}","[26-9]\\d{9}",[["([27]\\d)(\\d{4})(\\d{4})","$1 $2 $3","21|7",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","2[2-9]1|[689]",,],["(2\\d{3})(\\d{6})","$1 $2","2[2-9][02-9]",,]]]',
-"228": '["TG","00",,,,,"\\d{8}","[29]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"48": '["PL","00",,,,,"\\d{6,9}","[12]\\d{6,8}|[3-57-9]\\d{8}|6\\d{5,8}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[14]|2[0-57-9]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]",,],["(\\d{2})(\\d{1})(\\d{4})","$1 $2 $3","[12]2",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","261|39|5[0137]|6[0469]|7[02389]|8[08]",,],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3","64",,],["(\\d{3})(\\d{3})","$1 $2","64",,]]]',
-"886": '["TW","0(?:0[25679]|19)","0",,,"$NP$FG","\\d{8,10}","[2-689]\\d{7,8}|7\\d{7,9}",[["([2-8])(\\d{3,4})(\\d{4})","$1 $2 $3","[2-6]|[78][1-9]",,],["([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","80|9",,],["(70)(\\d{4})(\\d{4})","$1 $2 $3","70",,]]]',
-"212": ['["MA","00","0",,,"$NP$FG","\\d{9}","[5689]\\d{8}",[["([56]\\d{2})(\\d{6})","$1-$2","5(?:2[015-7]|3[0-4])|6",,],["([58]\\d{3})(\\d{5})","$1-$2","5(?:2[2-489]|3[5-9])|892",,],["(5\\d{4})(\\d{4})","$1-$2","5(?:29|38)",,],["(8[09])(\\d{7})","$1-$2","8(?:0|9[013-9])",,]]]','["EH","00","0",,,"$NP$FG","\\d{9}","[5689]\\d{8}",]'],
-"372": '["EE","00",,,,,"\\d{4,10}","1\\d{3,4}|[3-9]\\d{6,7}|800\\d{6,7}",[["([3-79]\\d{2})(\\d{4})","$1 $2","[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]",,],["(70)(\\d{2})(\\d{4})","$1 $2 $3","70",,],["(8000)(\\d{3})(\\d{3})","$1 $2 $3","800",,],["([458]\\d{3})(\\d{3,4})","$1 $2","40|5|8(?:00|[1-5])",,]]]',
-"598": '["UY","0(?:1[3-9]\\d|0)","0",,,,"\\d{7,8}","[2489]\\d{6,7}",[["(\\d{4})(\\d{4})","$1 $2","[24]",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","9[1-9]","$NP$FG",],["(\\d{3})(\\d{4})","$1 $2","[89]0","$NP$FG",]]]',
-"502": '["GT","00",,,,,"\\d{8}(?:\\d{3})?","[2-7]\\d{7}|1[89]\\d{9}",[["(\\d{4})(\\d{4})","$1 $2","[2-7]",,],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3","1",,]]]',
-"82": '["KR","00(?:[124-68]|[37]\\d{2})","0","0(8[1-46-8]|85\\d{2})?",,"$NP$FG","\\d{4,10}","[1-7]\\d{3,9}|8\\d{8}",[["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3","1(?:0|1[19]|[69]9|5[458])|[57]0",,],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3","1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][1-9]",,],["(\\d{3})(\\d)(\\d{4})","$1-$2-$3","131",,],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3","131",,],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3","13[2-9]",,],["(\\d{2})(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3-$4","30",,],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3","2[1-9]",,],["(\\d)(\\d{3,4})","$1-$2","21[0-46-9]",,],["(\\d{2})(\\d{3,4})","$1-$2","[3-6][1-9]1",,],["(\\d{4})(\\d{4})","$1-$2","1(?:5[46-9]|6[04678]|8[0579])","$FG",]]]',
-"253": '["DJ","00",,,,,"\\d{8}","[27]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"91": '["IN","00","0",,,"$NP$FG","\\d{6,13}","1\\d{7,12}|[2-9]\\d{9,10}",[["(\\d{5})(\\d{5})","$1 $2","7(?:0[2-9]|2[012579]|3[057-9]|4[0-389]|6[0-35-9]|[57]|8[0-79])|8(?:0[015689]|1[0-57-9]|2[2356-9]|3[0-57-9]|[45]|6[02457-9]|7[1-69]|8[0124-9]|9[02-9])|9",,],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","11|2[02]|33|4[04]|79|80[2-46]",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1(?:2[0-249]|3[0-25]|4[145]|[569][14]|7[1257]|8[1346]|[68][1-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|[36][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)",,],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3","1(?:[23579]|[468][1-9])|[2-8]",,],["(1600)(\\d{2})(\\d{4})","$1 $2 $3","160","$FG",],["(1800)(\\d{4,5})","$1 $2","180","$FG",],["(18[06]0)(\\d{2,4})(\\d{4})","$1 $2 $3","18[06]","$FG",],["(140)(\\d{3})(\\d{4})","$1 $2 $3","140","$FG",],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","18[06]","$FG",]]]',
-"389": '["MK","00","0",,,"$NP$FG","\\d{8}","[2-578]\\d{7}",[["(2)(\\d{3})(\\d{4})","$1 $2 $3","2",,],["([347]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[347]",,],["([58]\\d{2})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4","[58]",,]]]',
-"1": ['["US","011","1",,,,"\\d{7}(?:\\d{3})?","[2-9]\\d{9}",[["(\\d{3})(\\d{4})","$1-$2",,,"NA"],["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",,,"$1-$2-$3"]]]','["AI","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["AS","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["BB","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["BM","011","1",,,,"\\d{7}(?:\\d{3})?","[4589]\\d{9}",]','["BS","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["CA","011","1",,,,"\\d{7}(?:\\d{3})?","[2-9]\\d{9}|3\\d{6}",]','["DM","011","1",,,,"\\d{7}(?:\\d{3})?","[57-9]\\d{9}",]','["DO","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["GD","011","1",,,,"\\d{7}(?:\\d{3})?","[4589]\\d{9}",]','["GU","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["JM","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["KN","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["KY","011","1",,,,"\\d{7}(?:\\d{3})?","[3589]\\d{9}",]','["LC","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["MP","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["MS","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["PR","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["SX","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["TC","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["TT","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["AG","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["VC","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["VG","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["VI","011","1",,,,"\\d{7}(?:\\d{3})?","[3589]\\d{9}",]'],
-"60": '["MY","00","0",,,,"\\d{6,10}","[13-9]\\d{7,9}",[["([4-79])(\\d{3})(\\d{4})","$1-$2 $3","[4-79]","$NP$FG",],["(3)(\\d{4})(\\d{4})","$1-$2 $3","3","$NP$FG",],["([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3","1[02-46-9][1-9]|8","$NP$FG",],["(1)([36-8]00)(\\d{2})(\\d{4})","$1-$2-$3-$4","1[36-8]0",,],["(11)(\\d{4})(\\d{4})","$1-$2 $3","11","$NP$FG",],["(15[49])(\\d{3})(\\d{4})","$1-$2 $3","15","$NP$FG",]]]',
-"355": '["AL","00","0",,,"$NP$FG","\\d{5,9}","[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}",[["(4)(\\d{3})(\\d{4})","$1 $2 $3","4[0-6]",,],["(6[6-9])(\\d{3})(\\d{4})","$1 $2 $3","6",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[2358][2-5]|4[7-9]",,],["(\\d{3})(\\d{3,5})","$1 $2","[235][16-9]|8[016-9]|[79]",,]]]',
-"254": '["KE","000","0",,,"$NP$FG","\\d{7,10}","20\\d{6,7}|[4-9]\\d{6,9}",[["(\\d{2})(\\d{5,7})","$1 $2","[24-6]",,],["(\\d{3})(\\d{6,7})","$1 $2","7",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","[89]",,]]]',
-"223": '["ML","00",,,,,"\\d{8}","[246-9]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[246-9]",,],["(\\d{4})","$1","67|74",,"NA"]]]',
-"686": '["KI","00",,"0",,,"\\d{5,8}","[2458]\\d{4}|3\\d{4,7}|7\\d{7}",]',
-"994": '["AZ","00","0",,,"($NP$FG)","\\d{7,9}","[1-9]\\d{8}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","(?:1[28]|2(?:[45]2|[0-36])|365)",,],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[4-8]","$NP$FG",],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","9","$NP$FG",]]]',
-"979": '["001",,,,,,"\\d{9}","\\d{9}",[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",,,]]]',
-"66": '["TH","00","0",,,"$NP$FG","\\d{4}|\\d{8,10}","[2-9]\\d{7,8}|1\\d{3}(?:\\d{5,6})?",[["(2)(\\d{3})(\\d{4})","$1 $2 $3","2",,],["([13-9]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","14|[3-9]",,],["(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3","1","$FG",]]]',
-"233": '["GH","00","0",,,"$NP$FG","\\d{7,9}","[235]\\d{8}|8\\d{7}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[235]",,],["(\\d{3})(\\d{5})","$1 $2","8",,]]]',
-"593": '["EC","00","0",,,"($NP$FG)","\\d{7,11}","1\\d{9,10}|[2-8]\\d{7}|9\\d{8}",[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3","[247]|[356][2-8]",,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","9","$NP$FG",],["(1800)(\\d{3})(\\d{3,4})","$1 $2 $3","1","$FG",]]]',
-"509": '["HT","00",,,,,"\\d{8}","[2-489]\\d{7}",[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",,,]]]',
-"54": '["AR","00","0","0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))?15)?","9$1","$NP$FG","\\d{6,11}","11\\d{8}|[2368]\\d{9}|9\\d{10}",[["([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3","[68]",,],["(\\d{2})(\\d{4})","$1-$2","[2-9]","$FG","NA"],["(\\d{3})(\\d{4})","$1-$2","[2-9]","$FG","NA"],["(\\d{4})(\\d{4})","$1-$2","[2-9]","$FG","NA"],["(9)(11)(\\d{4})(\\d{4})","$2 15-$3-$4","911",,"$1 $2 $3-$4"],["(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4","9(?:2[234689]|3[3-8])",,"$1 $2 $3-$4"],["(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4","9[23]",,"$1 $2 $3-$4"],["(11)(\\d{4})(\\d{4})","$1 $2-$3","1",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3","2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[1-358]|5[138]|6[24]|7[069]|8[013578])",,],["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3","[23]",,],["(\\d{3})","$1","1[012]|911","$FG","NA"]]]',
-"57": '["CO","00(?:4(?:[14]4|56)|[579])","0","0([3579]|4(?:44|56))?",,,"\\d{7,11}","(?:[13]\\d{0,3}|[24-8])\\d{7}",[["(\\d)(\\d{7})","$1 $2","1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","($FG)",],["(\\d{3})(\\d{7})","$1 $2","3",,],["(1)(\\d{3})(\\d{7})","$1-$2-$3","1(?:80|9[04])","$NP$FG","$1 $2 $3"]]]',
-"597": '["SR","00",,,,,"\\d{6,7}","[2-8]\\d{5,6}",[["(\\d{3})(\\d{3})","$1-$2","[2-4]|5[2-58]",,],["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3","56",,],["(\\d{3})(\\d{4})","$1-$2","59|[6-8]",,]]]',
-"676": '["TO","00",,,,,"\\d{5,7}","[02-8]\\d{4,6}",[["(\\d{2})(\\d{3})","$1-$2","[1-6]|7[0-4]|8[05]",,],["(\\d{3})(\\d{4})","$1 $2","7[5-9]|8[47-9]",,],["(\\d{4})(\\d{3})","$1 $2","0",,]]]',
-"505": '["NI","00",,,,,"\\d{8}","[12578]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
-"850": '["KP","00|99","0",,,"$NP$FG","\\d{6,8}|\\d{10}","1\\d{9}|[28]\\d{7}",[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1",,],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3","2",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","8",,]]]',
-"7": ['["RU","810","8",,,"$NP ($FG)","\\d{10}","[3489]\\d{9}",[["(\\d{3})(\\d{2})(\\d{2})","$1-$2-$3","[1-79]","$FG","NA"],["([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4","[34689]",,],["(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","7",,]]]','["KZ","810","8",,,,"\\d{10}","(?:33\\d|7\\d{2}|80[09])\\d{7}",]'],
-"268": '["SZ","00",,,,,"\\d{8}","[027]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2","[027]",,]]]',
-"501": '["BZ","00",,,,,"\\d{7}(?:\\d{4})?","[2-8]\\d{6}|0\\d{10}",[["(\\d{3})(\\d{4})","$1-$2","[2-8]",,],["(0)(800)(\\d{4})(\\d{3})","$1-$2-$3-$4","0",,]]]',
-"252": '["SO","00","0",,,,"\\d{7,9}","[1-79]\\d{6,8}",[["(\\d)(\\d{6})","$1 $2","2[0-79]|[13-5]",,],["(\\d)(\\d{7})","$1 $2","24|[67]",,],["(\\d{2})(\\d{5,7})","$1 $2","15|28|6[1378]",,],["(69\\d)(\\d{6})","$1 $2","69",,],["(90\\d)(\\d{3})(\\d{3})","$1 $2 $3","90",,]]]',
-"229": '["BJ","00",,,,,"\\d{4,8}","[2689]\\d{7}|7\\d{3}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"680": '["PW","01[12]",,,,,"\\d{7}","[2-8]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"263": '["ZW","00","0",,,"$NP$FG","\\d{3,10}","2(?:[012457-9]\\d{3,8}|6\\d{3,6})|[13-79]\\d{4,8}|8[06]\\d{8}",[["([49])(\\d{3})(\\d{2,5})","$1 $2 $3","4|9[2-9]",,],["([179]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","[19]1|7",,],["(86\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","86[24]",,],["([2356]\\d{2})(\\d{3,5})","$1 $2","2(?:[278]|0[45]|[49]8)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","2(?:[278]|0[45]|48)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])|80",,],["([1-356]\\d)(\\d{3,5})","$1 $2","1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])",,],["([1-356]\\d)(\\d{3})(\\d{3})","$1 $2 $3","1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])",,],["([25]\\d{3})(\\d{3,5})","$1 $2","(?:25|54)8",,],["([25]\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","(?:25|54)8",,],["(8\\d{3})(\\d{6})","$1 $2","86",,]]]',
-"90": '["TR","00","0",,,,"\\d{7,10}","[2-589]\\d{9}|444\\d{4}",[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","[23]|4(?:[0-35-9]|4[0-35-9])","($NP$FG)",],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","[589]","$NP$FG",],["(444)(\\d{1})(\\d{3})","$1 $2 $3","444",,]]]',
-"352": '["LU","00",,"(15(?:0[06]|1[12]|35|4[04]|55|6[26]|77|88|99)\\d)",,,"\\d{4,11}","[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})",[["(\\d{2})(\\d{3})","$1 $2","[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])",,],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3","[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])",,],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","20",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4","2(?:[0367]|4[3-8])",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4","20",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5","2(?:[0367]|4[3-8])",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,4})","$1 $2 $3 $4","2(?:[12589]|4[12])|[3-5]|7[1-9]|8(?:[1-9]|0[2-9])|9(?:[1-9]|0[2-46-9])",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","70|80[01]|90[015]",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","6",,]]]',
-"47": ['["NO","00",,,,,"\\d{5}(?:\\d{3})?","0\\d{4}|[2-9]\\d{7}",[["([489]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","[489]",,],["([235-7]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[235-7]",,]]]','["SJ","00",,,,,"\\d{5}(?:\\d{3})?","0\\d{4}|[4789]\\d{7}",]'],
-"243": '["CD","00","0",,,"$NP$FG","\\d{7,9}","[2-6]\\d{6}|[18]\\d{6,8}|9\\d{8}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","12",,],["([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","8[0-2459]|9",,],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","88",,],["(\\d{2})(\\d{5})","$1 $2","[1-6]",,]]]',
-"220": '["GM","00",,,,,"\\d{7}","[2-9]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
-"687": '["NC","00",,,,,"\\d{6}","[2-57-9]\\d{5}",[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3","[2-46-9]|5[0-4]",,]]]',
-"995": '["GE","00","0",,,,"\\d{6,9}","[34578]\\d{8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[348]","$NP$FG",],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","7","$NP$FG",],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","5","$FG",]]]',
-"961": '["LB","00","0",,,,"\\d{7,8}","[13-9]\\d{6,7}",[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3","[13-6]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]|9","$NP$FG",],["([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[89][01]|7(?:[01]|6[013-9]|8[89]|9[1-3])",,]]]',
-"40": '["RO","00","0",,,"$NP$FG","\\d{6,9}","2\\d{5,8}|[37-9]\\d{8}",[["([237]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[23]1",,],["(21)(\\d{4})","$1 $2","21",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[23][3-7]|[7-9]",,],["(2\\d{2})(\\d{3})","$1 $2","2[3-6]",,]]]',
-"232": '["SL","00","0",,,"($NP$FG)","\\d{6,8}","[2-57-9]\\d{7}",[["(\\d{2})(\\d{6})","$1 $2",,,]]]',
-"594": '["GF","00","0",,,"$NP$FG","\\d{9}","[56]\\d{8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"976": '["MN","001","0",,,"$NP$FG","\\d{6,10}","[12]\\d{7,9}|[57-9]\\d{7}",[["([12]\\d)(\\d{2})(\\d{4})","$1 $2 $3","[12]1",,],["([12]2\\d)(\\d{5,6})","$1 $2","[12]2[1-3]",,],["([12]\\d{3})(\\d{5})","$1 $2","[12](?:27|[3-5])",,],["(\\d{4})(\\d{4})","$1 $2","[57-9]","$FG",],["([12]\\d{4})(\\d{4,5})","$1 $2","[12](?:27|[3-5])",,]]]',
-"20": '["EG","00","0",,,"$NP$FG","\\d{5,10}","1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}",[["(\\d)(\\d{7,8})","$1 $2","[23]",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1[012]|[89]00",,],["(\\d{2})(\\d{6,7})","$1 $2","1[35]|[4-6]|[89][2-9]",,]]]',
-"689": '["PF","00",,,,,"\\d{6}(?:\\d{2})?","4\\d{5,7}|8\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","4[09]|8[79]",,],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3","44",,]]]',
-"56": '["CL","(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0","0","0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))",,"$NP$FG","\\d{7,11}","(?:[2-9]|600|123)\\d{7,8}",[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3","22","($FG)",],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[357]|4[1-35]|6[13-57]","($FG)",],["(9)(\\d{4})(\\d{4})","$1 $2 $3","9",,],["(44)(\\d{3})(\\d{4})","$1 $2 $3","44",,],["([68]00)(\\d{3})(\\d{3,4})","$1 $2 $3","60|8","$FG",],["(600)(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4","60","$FG",],["(1230)(\\d{3})(\\d{4})","$1 $2 $3","1","$FG",],["(\\d{5})(\\d{4})","$1 $2","219","($FG)",],["(\\d{4,5})","$1","[1-9]","$FG","NA"]]]',
-"596": '["MQ","00","0",,,"$NP$FG","\\d{9}","[56]\\d{8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"508": '["PM","00","0",,,"$NP$FG","\\d{6}","[45]\\d{5}",[["([45]\\d)(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
-"269": '["KM","00",,,,,"\\d{7}","[379]\\d{6}",[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
-"358": ['["FI","00|99[049]","0",,,"$NP$FG","\\d{5,12}","1\\d{4,11}|[2-9]\\d{4,10}",[["(\\d{3})(\\d{3,7})","$1 $2","(?:[1-3]00|[6-8]0)",,],["(\\d{2})(\\d{4,10})","$1 $2","[14]|2[09]|50|7[135]",,],["(\\d)(\\d{4,11})","$1 $2","[25689][1-8]|3",,]]]','["AX","00|99[049]","0",,,"$NP$FG","\\d{5,12}","[135]\\d{5,9}|[27]\\d{4,9}|4\\d{5,10}|6\\d{7,8}|8\\d{6,9}",]'],
-"251": '["ET","00","0",,,"$NP$FG","\\d{7,9}","[1-59]\\d{8}",[["([1-59]\\d)(\\d{3})(\\d{4})","$1 $2 $3",,,]]]',
-"681": '["WF","00",,,,,"\\d{6}","[5-7]\\d{5}",[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
-"853": '["MO","00",,,,,"\\d{8}","[268]\\d{7}",[["([268]\\d{3})(\\d{4})","$1 $2",,,]]]',
-"44": ['["GB","00","0",,,"$NP$FG","\\d{4,10}","\\d{7,10}",[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","2|5[56]|7(?:0|6[013-9])",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1(?:1|\\d1)|3|9[018]",,],["(\\d{5})(\\d{4,5})","$1 $2","1(?:38|5[23]|69|76|94)",,],["(1\\d{3})(\\d{5,6})","$1 $2","1",,],["(7\\d{3})(\\d{6})","$1 $2","7(?:[1-5789]|62)",,],["(800)(\\d{4})","$1 $2","800",,],["(845)(46)(4\\d)","$1 $2 $3","845",,],["(8\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","8(?:4[2-5]|7[0-3])",,],["(80\\d)(\\d{3})(\\d{4})","$1 $2 $3","80",,],["([58]00)(\\d{6})","$1 $2","[58]00",,]]]','["GG","00","0",,,"$NP$FG","\\d{6,10}","[135789]\\d{6,9}",]','["IM","00","0",,,"$NP$FG","\\d{6,10}","[135789]\\d{6,9}",]','["JE","00","0",,,"$NP$FG","\\d{6,10}","[135789]\\d{6,9}",]'],
-"244": '["AO","00",,,,,"\\d{9}","[29]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
-"211": '["SS","00","0",,,,"\\d{9}","[19]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,"$NP$FG",]]]',
-"373": '["MD","00","0",,,"$NP$FG","\\d{8}","[235-9]\\d{7}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","22|3",,],["([25-7]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","2[13-79]|[5-7]",,],["([89]\\d{2})(\\d{5})","$1 $2","[89]",,]]]',
-"996": '["KG","00","0",,,"$NP$FG","\\d{5,10}","[235-8]\\d{8,9}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[25-7]|31[25]",,],["(\\d{4})(\\d{5})","$1 $2","3(?:1[36]|[2-9])",,],["(\\d{3})(\\d{3})(\\d)(\\d{3})","$1 $2 $3 $4","8",,]]]',
-"93": '["AF","00","0",,,"$NP$FG","\\d{7,9}","[2-7]\\d{8}",[["([2-7]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[2-7]",,]]]',
-"260": '["ZM","00","0",,,"$NP$FG","\\d{9}","[289]\\d{8}",[["([29]\\d)(\\d{7})","$1 $2","[29]",,],["(800)(\\d{3})(\\d{3})","$1 $2 $3","8",,]]]',
-"378": '["SM","00",,"(?:0549)?([89]\\d{5})","0549$1",,"\\d{6,10}","[05-7]\\d{7,9}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[5-7]",,],["(0549)(\\d{6})","$1 $2","0",,"($1) $2"],["(\\d{6})","0549 $1","[89]",,"(0549) $1"]]]',
-"235": '["TD","00|16",,,,,"\\d{8}","[2679]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
-"960": '["MV","0(?:0|19)",,,,,"\\d{7,10}","[3467]\\d{6}|9(?:00\\d{7}|\\d{6})",[["(\\d{3})(\\d{4})","$1-$2","[3467]|9(?:[1-9]|0[1-9])",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","900",,]]]',
-"221": '["SN","00",,,,,"\\d{9}","[3789]\\d{8}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[379]",,],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","8",,]]]',
-"595": '["PY","00","0",,,,"\\d{5,9}","5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}",[["(\\d{2})(\\d{5,7})","$1 $2","(?:[26]1|3[289]|4[124678]|7[123]|8[1236])","($FG)",],["(\\d{3})(\\d{3,6})","$1 $2","[2-9]0","$NP$FG",],["(\\d{3})(\\d{6})","$1 $2","9[1-9]","$NP$FG",],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","8700",,],["(\\d{3})(\\d{4,6})","$1 $2","[2-8][1-9]","($FG)",]]]',
-"977": '["NP","00","0",,,"$NP$FG","\\d{6,10}","[1-8]\\d{7}|9(?:[1-69]\\d{6,8}|7[2-6]\\d{5,7}|8\\d{8})",[["(1)(\\d{7})","$1-$2","1[2-6]",,],["(\\d{2})(\\d{6})","$1-$2","1[01]|[2-8]|9(?:[1-69]|7[15-9])",,],["(9\\d{2})(\\d{7})","$1-$2","9(?:6[013]|7[245]|8)",,]]]',
-"36": '["HU","00","06",,,"($FG)","\\d{6,9}","[1-9]\\d{7,8}",[["(1)(\\d{3})(\\d{4})","$1 $2 $3","1",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","[2-9]",,]]]',
-};
deleted file mode 100644
--- a/dom/phonenumberutils/PhoneNumberNormalizer.jsm
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-// Don't modify this code. Please use:
-// https://github.com/andreasgal/PhoneNumber.js
-
-"use strict";
-
-this.EXPORTED_SYMBOLS = ["PhoneNumberNormalizer"];
-
-this.PhoneNumberNormalizer = (function() {
-  const UNICODE_DIGITS = /[\uFF10-\uFF19\u0660-\u0669\u06F0-\u06F9]/g;
-  const VALID_ALPHA_PATTERN = /[a-zA-Z]/g;
-  const LEADING_PLUS_CHARS_PATTERN = /^[+\uFF0B]+/g;
-  const NON_DIALABLE_CHARS = /[^,#+\*\d]/g;
-
-  // Map letters to numbers according to the ITU E.161 standard
-  var E161 = {
-    'a': 2, 'b': 2, 'c': 2,
-    'd': 3, 'e': 3, 'f': 3,
-    'g': 4, 'h': 4, 'i': 4,
-    'j': 5, 'k': 5, 'l': 5,
-    'm': 6, 'n': 6, 'o': 6,
-    'p': 7, 'q': 7, 'r': 7, 's': 7,
-    't': 8, 'u': 8, 'v': 8,
-    'w': 9, 'x': 9, 'y': 9, 'z': 9
-  };
-
-  // Normalize a number by converting unicode numbers and symbols to their
-  // ASCII equivalents and removing all non-dialable characters.
-  function NormalizeNumber(number, numbersOnly) {
-    if (typeof number !== 'string') {
-      return '';
-    }
-
-    number = number.replace(UNICODE_DIGITS,
-                            function (ch) {
-                              return String.fromCharCode(48 + (ch.charCodeAt(0) & 0xf));
-                            });
-    if (!numbersOnly) {
-      number = number.replace(VALID_ALPHA_PATTERN,
-                              function (ch) {
-                                return String(E161[ch.toLowerCase()] || 0);
-                              });
-    }
-    number = number.replace(LEADING_PLUS_CHARS_PATTERN, "+");
-    number = number.replace(NON_DIALABLE_CHARS, "");
-    return number;
-  };
-
-
-  return {
-    Normalize: NormalizeNumber
-  };
-})();
\ No newline at end of file
deleted file mode 100644
--- a/dom/phonenumberutils/PhoneNumberService.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-const DEBUG = false;
-function debug(s) { dump("-*- PhoneNumberService.js: " + s + "\n"); }
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/DOMRequestHelper.jsm");
-Cu.import("resource://gre/modules/PhoneNumberUtils.jsm");
-Cu.import("resource://gre/modules/PhoneNumberNormalizer.jsm");
-
-XPCOMUtils.defineLazyServiceGetter(this, "cpmm",
-                                   "@mozilla.org/childprocessmessagemanager;1",
-                                   "nsIMessageSender");
-
-// PhoneNumberService
-
-function PhoneNumberService()
-{
-  if (DEBUG) debug("Constructor");
-}
-
-PhoneNumberService.prototype = {
-  __proto__: DOMRequestIpcHelper.prototype,
-
-  receiveMessage: function(aMessage) {
-    if (DEBUG) debug("receiveMessage: " + aMessage.name);
-    let msg = aMessage.json;
-
-    let req = this.getRequest(msg.requestID);
-    if (!req) {
-      return;
-    }
-
-    switch (aMessage.name) {
-      case "PhoneNumberService:FuzzyMatch:Return:KO":
-        Services.DOMRequest.fireError(req.request, msg.errorMsg);
-        break;
-      case "PhoneNumberService:FuzzyMatch:Return:OK":
-        Services.DOMRequest.fireSuccess(req.request, msg.result);
-        break;
-      default:
-        if (DEBUG) debug("Wrong message: " + aMessage.name);
-    }
-    this.removeRequest(msg.requestID);
-  },
-
-  fuzzyMatch: function(aNumber1, aNumber2) {
-    if (DEBUG) debug("fuzzyMatch: " + aNumber1 + ", " + aNumber2);
-    let request = this.createRequest();
-
-    if ((aNumber1 && !aNumber2) || (aNumber2 && !aNumber1)) {
-      // if only one of the numbers is empty/null/undefined and the other
-      // number is not, we can fire false result in next tick
-      Services.DOMRequest.fireSuccessAsync(request, false);
-    } else if ((aNumber1 === aNumber2) ||
-        (PhoneNumberNormalizer.Normalize(aNumber1) === PhoneNumberNormalizer.Normalize(aNumber2))) {
-      // if we have a simple match fire successful request in next tick
-      Services.DOMRequest.fireSuccessAsync(request, true);
-    } else {
-      // invoke fuzzy matching in the parent
-      let options = { number1: aNumber1, number2: aNumber2 };
-      cpmm.sendAsyncMessage("PhoneNumberService:FuzzyMatch",
-                           {requestID: this.getRequestId({request: request}),
-                            options: options});
-    }
-
-    return request;
-  },
-
-  normalize: function(aNumber) {
-    if (DEBUG) debug("normalize: " + aNumber);
-    return PhoneNumberNormalizer.Normalize(aNumber);
-  },
-
-  init: function(aWindow) {
-    if (DEBUG) debug("init call");
-    this.initDOMRequestHelper(aWindow, [
-      "PhoneNumberService:FuzzyMatch:Return:OK",
-      "PhoneNumberService:FuzzyMatch:Return:KO"
-    ]);
-  },
-
-  classID : Components.ID("{e2768710-eb17-11e2-91e2-0800200c9a66}"),
-  contractID : "@mozilla.org/phoneNumberService;1",
-  QueryInterface : XPCOMUtils.generateQI([Ci.nsIDOMGlobalPropertyInitializer,
-                                          Ci.nsISupportsWeakReference,
-                                          Ci.nsIObserver]),
-}
-
-this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PhoneNumberService]);
deleted file mode 100644
--- a/dom/phonenumberutils/PhoneNumberService.manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-component {e2768710-eb17-11e2-91e2-0800200c9a66} PhoneNumberService.js
-contract @mozilla.org/phoneNumberService;1 {e2768710-eb17-11e2-91e2-0800200c9a66}
\ No newline at end of file
deleted file mode 100644
--- a/dom/phonenumberutils/PhoneNumberUtils.jsm
+++ /dev/null
@@ -1,236 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-"use strict";
-
-this.EXPORTED_SYMBOLS = ["PhoneNumberUtils"];
-
-const DEBUG = false;
-function debug(s) { if(DEBUG) dump("-*- PhoneNumberutils: " + s + "\n"); }
-
-const Cu = Components.utils;
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, "PhoneNumberNormalizer",
-                                  "resource://gre/modules/PhoneNumberNormalizer.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "MCC_ISO3166_TABLE",
-                                  "resource://gre/modules/mcc_iso3166_table.jsm");
-
-#ifdef MOZ_B2G_RIL
-XPCOMUtils.defineLazyServiceGetter(this, "mobileConnection",
-                                   "@mozilla.org/mobileconnection/mobileconnectionservice;1",
-                                   "nsIMobileConnectionService");
-XPCOMUtils.defineLazyServiceGetter(this, "gIccService",
-                                   "@mozilla.org/icc/iccservice;1",
-                                   "nsIIccService");
-#endif
-
-this.PhoneNumberUtils = {
-
-  initParent: function() {
-    ppmm.addMessageListener(["PhoneNumberService:FuzzyMatch"], this);
-    this._countryNameCache = Object.create(null);
-  },
-
-  initChild: function () {
-    this._countryNameCache = Object.create(null);
-  },
-  //  1. See whether we have a network mcc
-  //  2. If we don't have that, look for the simcard mcc
-  //  3. If we don't have that or its 0 (not activated), pick up the last used mcc
-  //  4. If we don't have, default to some mcc
-
-  // mcc for Brasil
-  _mcc: '724',
-
-  getCountryName: function getCountryName() {
-    let mcc;
-    let countryName;
-
-#ifdef MOZ_B2G_RIL
-    // TODO: Bug 926740 - PhoneNumberUtils for multisim
-    // In Multi-sim, there is more than one client in
-    // iccService/mobileConnectionService. Each client represents a
-    // icc/mobileConnection service. To maintain the backward compatibility with
-    // single sim, we always use client 0 for now. Adding support for multiple
-    // sim will be addressed in bug 926740, if needed.
-    let clientId = 0;
-
-    // Get network mcc
-    let connection = mobileConnection.getItemByServiceId(clientId);
-    let voice = connection && connection.voice;
-    if (voice && voice.network && voice.network.mcc) {
-      mcc = voice.network.mcc;
-    }
-
-    // Get SIM mcc
-    let icc = gIccService.getIccByServiceId(clientId);
-    let iccInfo = icc && icc.iccInfo;
-    if (!mcc && iccInfo && iccInfo.mcc) {
-      mcc = iccInfo.mcc;
-    }
-
-    // Attempt to grab last known sim mcc from prefs
-    if (!mcc) {
-      try {
-        mcc = Services.prefs.getCharPref("ril.lastKnownSimMcc");
-      } catch (e) {}
-    }
-
-    // Set to default mcc
-    if (!mcc) {
-      mcc = this._mcc;
-    }
-#else
-
-    // Attempt to grab last known sim mcc from prefs
-    if (!mcc) {
-      try {
-        mcc = Services.prefs.getCharPref("ril.lastKnownSimMcc");
-      } catch (e) {}
-    }
-
-    if (!mcc) {
-      mcc = this._mcc;
-    }
-#endif
-
-    countryName = MCC_ISO3166_TABLE[mcc];
-    if (DEBUG) debug("MCC: " + mcc + "countryName: " + countryName);
-    return countryName;
-  },
-
-  parse: function(aNumber) {
-    if (DEBUG) debug("call parse: " + aNumber);
-    let result = PhoneNumber.Parse(aNumber, this.getCountryName());
-
-    if (result) {
-      let countryName = result.countryName || this.getCountryName();
-      let number = null;
-      if (countryName) {
-        if (Services.prefs.getPrefType("dom.phonenumber.substringmatching." + countryName) == Ci.nsIPrefBranch.PREF_INT) {
-          let val = Services.prefs.getIntPref("dom.phonenumber.substringmatching." + countryName);
-          if (val) {
-            number = result.internationalNumber || result.nationalNumber;
-            if (number && number.length > val) {
-              number = number.slice(-val);
-            }
-          }
-        }
-      }
-      Object.defineProperty(result, "nationalMatchingFormat", { value: number, enumerable: true });
-      if (DEBUG) {
-        debug("InternationalFormat: " + result.internationalFormat);
-        debug("InternationalNumber: " + result.internationalNumber);
-        debug("NationalNumber: " + result.nationalNumber);
-        debug("NationalFormat: " + result.nationalFormat);
-        debug("CountryName: " + result.countryName);
-        debug("NationalMatchingFormat: " + result.nationalMatchingFormat);
-      }
-    } else if (DEBUG) {
-      debug("NO PARSING RESULT!");
-    }
-    return result;
-  },
-
-  parseWithMCC: function(aNumber, aMCC) {
-    if (DEBUG) debug("parseWithMCC " + aNumber + ", " + aMCC);
-    let countryName = MCC_ISO3166_TABLE[aMCC];
-    if (DEBUG) debug("found country name: " + countryName);
-    return PhoneNumber.Parse(aNumber, countryName);
-  },
-
-  parseWithCountryName: function(aNumber, aCountryName) {
-    if (this._countryNameCache[aCountryName]) {
-      return PhoneNumber.Parse(aNumber, aCountryName);
-    }
-
-    if (Object.keys(this._countryNameCache).length === 0) {
-      // populate the cache
-      let keys = Object.keys(MCC_ISO3166_TABLE);
-      for (let i = 0; i < keys.length; i++) {
-        this._countryNameCache[MCC_ISO3166_TABLE[keys[i]]] = true;
-      }
-    }
-
-    if (!this._countryNameCache[aCountryName]) {
-      dump("Couldn't find country name: " + aCountryName + "\n");
-      return null;
-    }
-
-    return PhoneNumber.Parse(aNumber, aCountryName);
-  },
-
-  isPlainPhoneNumber: function isPlainPhoneNumber(aNumber) {
-    var isPlain = PhoneNumber.IsPlain(aNumber);
-    if (DEBUG) debug("isPlain(" + aNumber + ") " + isPlain);
-    return isPlain;
-  },
-
-  normalize: function Normalize(aNumber, aNumbersOnly) {
-    let normalized = PhoneNumberNormalizer.Normalize(aNumber, aNumbersOnly);
-    if (DEBUG) debug("normalize(" + aNumber + "): " + normalized + ", " + aNumbersOnly);
-    return normalized;
-  },
-
-  fuzzyMatch: function fuzzyMatch(aNumber1, aNumber2) {
-    let normalized1 = this.normalize(aNumber1);
-    let normalized2 = this.normalize(aNumber2);
-    if (DEBUG) debug("Normalized Number1: " + normalized1 + ", Number2: " + normalized2);
-    if (normalized1 === normalized2) {
-      return true;
-    }
-    let parsed1 = this.parse(aNumber1);
-    let parsed2 = this.parse(aNumber2);
-    if (parsed1 && parsed2) {
-      if ((parsed1.internationalNumber && parsed1.internationalNumber === parsed2.internationalNumber)
-          || (parsed1.nationalNumber && parsed1.nationalNumber === parsed2.nationalNumber)) {
-        return true;
-      }
-    }
-    let countryName = this.getCountryName();
-    let ssPref = "dom.phonenumber.substringmatching." + countryName;
-    if (Services.prefs.getPrefType(ssPref) == Ci.nsIPrefBranch.PREF_INT) {
-      let val = Services.prefs.getIntPref(ssPref);
-      if (normalized1.length > val && normalized2.length > val
-         && normalized1.slice(-val) === normalized2.slice(-val)) {
-        return true;
-      }
-    }
-    return false;
-  },
-
-  receiveMessage: function(aMessage) {
-    if (DEBUG) debug("receiveMessage " + aMessage.name);
-    let mm = aMessage.target;
-    let msg = aMessage.data;
-
-    switch (aMessage.name) {
-      case "PhoneNumberService:FuzzyMatch":
-        mm.sendAsyncMessage("PhoneNumberService:FuzzyMatch:Return:OK", {
-          requestID: msg.requestID,
-          result: this.fuzzyMatch(msg.options.number1, msg.options.number2)
-        });
-        break;
-      default:
-        if (DEBUG) debug("WRONG MESSAGE NAME: " + aMessage.name);
-    }
-  }
-};
-
-var inParent = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime)
-                 .processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
-if (inParent) {
-  XPCOMUtils.defineLazyModuleGetter(this, "PhoneNumber",
-                                    "resource://gre/modules/PhoneNumber.jsm");
-  XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
-                                     "@mozilla.org/parentprocessmessagemanager;1",
-                                     "nsIMessageListenerManager");
-  PhoneNumberUtils.initParent();
-} else {
-  PhoneNumberUtils.initChild();
-}
-
deleted file mode 100644
--- a/dom/phonenumberutils/mcc_iso3166_table.jsm
+++ /dev/null
@@ -1,244 +0,0 @@
-// MCC(Mobile Country Codes) and country name(ISO3166-1) mapping table.
-// Reference Data from:
-//           http://en.wikipedia.org/wiki/List_of_mobile_country_codes
-
-this.EXPORTED_SYMBOLS = ["MCC_ISO3166_TABLE"];
-
-this.MCC_ISO3166_TABLE = {
-412:'AF',
-276:'AL',
-603:'DZ',
-544:'AS',
-213:'AD',
-631:'AO',
-365:'AI',
-344:'AG',
-722:'AR',
-283:'AM',
-363:'AW',
-505:'AU',
-232:'AT',
-400:'AZ',
-364:'BS',
-426:'BH',
-470:'BD',
-342:'BB',
-257:'BY',
-206:'BE',
-702:'BZ',
-616:'BJ',
-350:'BM',
-402:'BT',
-736:'BO',
-218:'BA',
-652:'BW',
-724:'BR',
-348:'VG',
-528:'BN',
-284:'BG',
-613:'BF',
-642:'BI',
-456:'KH',
-624:'CM',
-302:'CA',
-625:'CV',
-346:'KY',
-623:'CF',
-622:'TD',
-730:'CL',
-460:'CN',
-461:'CN',
-732:'CO',
-654:'KM',
-629:'CG',
-548:'CK',
-712:'CR',
-612:'CI',
-219:'HR',
-368:'CU',
-362:'CW',
-280:'CY',
-230:'CZ',
-630:'CD',
-238:'DK',
-638:'DJ',
-366:'DM',
-370:'DO',
-514:'TL',
-740:'EC',
-602:'EG',
-706:'SV',
-627:'GQ',
-657:'ER',
-248:'EE',
-636:'ET',
-750:'FK',
-288:'FO',
-542:'FJ',
-244:'FI',
-208:'FR',
-742:'GF',
-547:'PF',
-628:'GA',
-607:'GM',
-282:'GE',
-262:'DE',
-620:'GH',
-266:'GI',
-202:'GR',
-290:'GL',
-352:'GD',
-340:'GP',
-535:'GU',
-704:'GT',
-611:'GN',
-632:'GW',
-738:'GY',
-372:'HT',
-708:'HN',
-454:'HK',
-216:'HU',
-274:'IS',
-404:'IN',
-405:'IN',
-406:'IN',
-510:'ID',
-432:'IR',
-418:'IQ',
-272:'IE',
-425:'IL',
-222:'IT',
-338:'JM',
-441:'JP',
-440:'JP',
-416:'JO',
-401:'KZ',
-639:'KE',
-545:'KI',
-467:'KP',
-450:'KR',
-419:'KW',
-437:'KG',
-457:'LA',
-247:'LV',
-415:'LB',
-651:'LS',
-618:'LR',
-606:'LY',
-295:'LI',
-246:'LT',
-270:'LU',
-455:'MO',
-294:'MK',
-646:'MG',
-650:'MW',
-502:'MY',
-472:'MV',
-610:'ML',
-278:'MT',
-551:'MH',
-340:'MQ',
-609:'MR',
-617:'MU',
-334:'MX',
-550:'FM',
-259:'MD',
-212:'MC',
-428:'MN',
-297:'ME',
-354:'MS',
-604:'MA',
-643:'MZ',
-414:'MM',
-649:'NA',
-536:'NR',
-429:'NP',
-204:'NL',
-546:'NC',
-530:'NZ',
-710:'NI',
-614:'NE',
-621:'NG',
-555:'NU',
-534:'MP',
-242:'NO',
-422:'OM',
-410:'PK',
-552:'PW',
-425:'PS',
-714:'PA',
-537:'PG',
-744:'PY',
-716:'PE',
-515:'PH',
-260:'PL',
-268:'PT',
-330:'PR',
-427:'QA',
-647:'RE',
-226:'RO',
-250:'RU',
-635:'RW',
-356:'KN',
-358:'LC',
-308:'PM',
-360:'VC',
-549:'WS',
-292:'SM',
-626:'ST',
-420:'SA',
-608:'SN',
-220:'RS',
-633:'SC',
-619:'SL',
-525:'SG',
-231:'SK',
-293:'SI',
-540:'SB',
-637:'SO',
-655:'ZA',
-214:'ES',
-413:'LK',
-634:'SD',
-746:'SR',
-653:'SZ',
-240:'SE',
-228:'CH',
-417:'SY',
-466:'TW',
-436:'TJ',
-640:'TZ',
-520:'TH',
-615:'TG',
-539:'TO',
-374:'TT',
-605:'TN',
-286:'TR',
-438:'TM',
-376:'TC',
-641:'UG',
-255:'UA',
-424:'AE',
-430:'AE',
-431:'AE',
-235:'GB',
-234:'GB',
-310:'US',
-311:'US',
-312:'US',
-313:'US',
-314:'US',
-315:'US',
-316:'US',
-332:'VI',
-748:'UY',
-434:'UZ',
-541:'VU',
-225:'VA',
-734:'VE',
-452:'VN',
-543:'WF',
-421:'YE',
-645:'ZM',
-648:'ZW'
-}
deleted file mode 100644
--- a/dom/phonenumberutils/moz.build
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-EXTRA_COMPONENTS += [
-    'PhoneNumberService.js',
-    'PhoneNumberService.manifest',
-]
-
-EXTRA_JS_MODULES += [
-    'mcc_iso3166_table.jsm',
-    'PhoneNumber.jsm',
-    'PhoneNumberMetaData.jsm',
-    'PhoneNumberNormalizer.jsm',
-]
-
-EXTRA_PP_JS_MODULES += [
-    'PhoneNumberUtils.jsm',
-]
-
-MOCHITEST_MANIFESTS += ['tests/mochitest.ini']
-MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini']
deleted file mode 100644
--- a/dom/phonenumberutils/tests/chrome.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[DEFAULT]
-skip-if = buildapp == 'b2g'
-
-[test_phonenumber.xul]
-[test_phonenumberservice.xul]
-[test_phonenumberutils.xul]
deleted file mode 100644
--- a/dom/phonenumberutils/tests/mochitest.ini
+++ /dev/null
@@ -1,1 +0,0 @@
-[test_phonenumberutils_basics.html]
deleted file mode 100644
--- a/dom/phonenumberutils/tests/test_phonenumber.xul
+++ /dev/null
@@ -1,366 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- Any copyright is dedicated to the Public Domain.
-   - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
-<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
-
-<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-        title="Mozilla Bug 781379">
-  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
-  <script type="application/javascript" src="head.js"/>
-  <!-- test results are displayed in the html:body -->
-  <body xmlns="http://www.w3.org/1999/xhtml">
-  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
-     target="_blank">Mozilla Bug 809213</a>
-  </body>
-
-<script type="application/javascript;version=1.8">
-
-"use strict";
-
-Components.utils.import("resource://gre/modules/PhoneNumber.jsm");
-Components.utils.import("resource://gre/modules/PhoneNumberNormalizer.jsm");
-
-function IsPlain(dial, expected) {
-  var result = PhoneNumber.IsPlain(dial);
-  if (result != expected) {
-    ok(false, dial + " is " + (result ? "" : "not ") + "plain, expects otherwise.");
-  } else {
-    ok(true, dial + " is " + (result ? "" : "not ") + "plain as expected.");
-  }
-}
-
-function Normalize(dial, expected) {
-  var result = PhoneNumberNormalizer.Normalize(dial);
-  if (result !== expected) {
-    ok(false, "normalized " + dial + " to " + result + ", expected " + expected + " instead.");
-  } else {
-    ok(true, "normalized " + dial + " to " + result + " as expected.");
-  }
-}
-
-function Normalize(dial, expected) {
-  var result = PhoneNumberNormalizer.Normalize(dial);
-  if (result != expected) {
-    ok(false, "Normalize error!\n");
-    print("expected: " + expected);
-    print("got: " + result);
-  } else {
-    ok(true, "Normalization OK");
-  }
-}
-
-function CantParse(dial, currentRegion) {
-  var result = PhoneNumber.Parse(dial, currentRegion);
-  if (result) {
-  	ok(false, "Shouldn't parse!\n");
-    print("expected: does not parse");
-    print("got: " + dial + " " + currentRegion);
-  }
-}
-
-function Parse(dial, currentRegion) {
-  dump("try: " + dial + ", " + currentRegion + "\n");
-  var result = PhoneNumber.Parse(dial, currentRegion);
-  if (!result) {
-  	ok(false, "got: " + dial + " " + currentRegion);
-  } else {
-  	ok(true, "Parses!\n");
-  }
-  return result;
-}
-
-function ParseWithIntl(dial, currentRegion) {
-  var result = PhoneNumber.Parse(dial, currentRegion);
-  if (!result) {
-  	ok(false, "got: " + dial + " " + currentRegion);
-  } else {
-    ok(result.internationalNumber, "Has International!");
-  	ok(true, "Parses!\n");
-  }
-  return result;
-}
-
-function Test(dial, currentRegion, nationalNumber, region) {
-  var result = Parse(dial, currentRegion);
-  if (result.region != region || result.nationalNumber != nationalNumber) {
-    ok(false, "expected: " + nationalNumber + " " + region + "got: " + result.nationalNumber + " " + result.region);
-  } else {
-  	ok(true, "Test ok!");
-  }
-  return result;
-}
-
-function Format(dial, currentRegion, nationalNumber, region, nationalFormat, internationalFormat) {
-  var result = Test(dial, currentRegion, nationalNumber, region);
-  if (result.nationalFormat != nationalFormat ||
-      result.internationalFormat != internationalFormat) {
-    ok(false, "expected: " + nationalFormat + " " + internationalFormat + 
-      "got: " + result.nationalFormat + " " + result.internationalFormat);
-  }
-}
-
-function TestProperties(dial, currentRegion) {
-  var result = PhoneNumber.Parse(dial, currentRegion);
-  if (result) {
-    ok(true, "found it");
-    ok(true, "InternationalFormat: " + result.internationalFormat);
-    ok(true, "InternationalNumber: " + result.internationalNumber);
-    ok(true, "NationalNumber: " + result.nationalNumber);
-    ok(true, "NationalFormat: " + result.nationalFormat);
-  } else {
-    ok(true, "not found");
-  }
-}
-
-function TestPropertiesWithExpectedCountry(dial, currentRegion, expectedRegion) {
-  var result = PhoneNumber.Parse(dial, currentRegion);
-  if (result) {
-    ok(true, "found it");
-    ok(true, "InternationalFormat: " + result.internationalFormat);
-    ok(true, "InternationalNumber: " + result.internationalNumber);
-    ok(true, "NationalNumber: " + result.nationalNumber);
-    ok(true, "NationalFormat: " + result.nationalFormat);
-    ok(true, "CountryName: " + result.countryName);
-    is(result.countryName, expectedRegion, "Same region");
-  } else {
-    ok(true, "not found");
-  }
-}
-
-function AllEqual(list, currentRegion) {
-  var first = PhoneNumber.Parse(list.shift(), currentRegion);
-  ok(!!first, "first parses");
-  for (var index in list) {
-    var other = PhoneNumber.Parse(list[index], currentRegion);
-    ok(!!other, "other parses");
-    ok(first.internationalNumber == other.internationalNumber, "first and other match");
-  }
-}
-
-TestProperties("+0988782456");
-TestProperties("+33442020", "ES");
-TestProperties("+43987614", "ES");
-TestProperties("+0988782456");
-TestProperties("+34556657");
-TestProperties("+66554433");
-TestProperties("+43442075");
-TestProperties("+13442074");
-
-TestPropertiesWithExpectedCountry("+4333822222", "DE", "AT");
-TestPropertiesWithExpectedCountry("+19491234567", "DE", "US");
-
-// Test whether could a string be a phone number.
-IsPlain(null, false);
-IsPlain("", false);
-IsPlain("1", true);
-IsPlain("*2", true); // Real number used in Venezuela
-IsPlain("*8", true); // Real number used in Venezuela
-IsPlain("12", true);
-IsPlain("123", true);
-IsPlain("1a2", false);
-IsPlain("12a", false);
-IsPlain("1234", true);
-IsPlain("123a", false);
-IsPlain("+", true);
-IsPlain("+1", true);
-IsPlain("+12", true);
-IsPlain("+123", true);
-IsPlain("()123", false);
-IsPlain("(1)23", false);
-IsPlain("(12)3", false);
-IsPlain("(123)", false);
-IsPlain("(123)4", false);
-IsPlain("123;ext=", false);
-IsPlain("123;ext=1", false);
-IsPlain("123;ext=1234567", false);
-IsPlain("123;ext=12345678", false);
-IsPlain("123 ext:1", false);
-IsPlain("123 ext:1#", false);
-IsPlain("123-1#", false);
-IsPlain("123 1#", false);
-IsPlain("123 12345#", false);
-IsPlain("123 +123456#", false);
-IsPlain("#123#", true);
-IsPlain("*#004#", true);
-IsPlain("*30#", true);
-IsPlain("*#06#", true);
-IsPlain("123456789012345678901234567890123456789012345678901", false); // more than 50 characters
-
-// test normalization
-Normalize(null, "");
-Normalize("", "");
-Normalize("1", "1");
-Normalize("*2", "*2"); // Real number used in Venezuela
-Normalize("*8", "*8"); // Real number used in Venezuela
-Normalize("12", "12");
-Normalize("123", "123");
-Normalize("1a2", "122");
-Normalize("12a", "122");
-Normalize("1234", "1234");
-Normalize("123a", "1232");
-Normalize("+", "+");
-Normalize("+1", "+1");
-Normalize("+12", "+12");
-Normalize("+123", "+123");
-Normalize("()123", "123");
-Normalize("(1)23", "123");
-Normalize("(12)3", "123");
-Normalize("(123)", "123");
-Normalize("(123)4", "1234");
-Normalize("123-1#", "1231#");
-Normalize("123 1#", "1231#");
-Normalize("123 12345#", "12312345#");
-Normalize("123 +123456#", "123+123456#");
-Normalize("#123#", "#123#");
-Normalize("*#004#", "*#004#");
-Normalize("*30#", "*30#");
-Normalize("*#06#", "*#06#");
-
-// Test parsing national numbers.
-Parse("033316005", "NZ");
-Parse("03-331 6005", "NZ");
-Parse("03 331 6005", "NZ");
-
-// Always test CA before US because CA has to load all meta-info for US.
-ParseWithIntl("4031234567", "CA");
-Parse("(416) 585-4319", "CA");
-Parse("647-967-4357", "CA");
-Parse("416-716-8768", "CA");
-Parse("18002684646", "CA");
-Parse("416-445-9119", "CA");
-Parse("1-800-668-6866", "CA");
-Parse("(416) 453-6486", "CA");
-Parse("(647) 268-4778", "CA");
-Parse("647-218-1313", "CA");
-Parse("+1 647-209-4642", "CA");
-Parse("416-559-0133", "CA");
-Parse("+1 647-639-4118", "CA");
-Parse("+12898803664", "CA");
-Parse("780-901-4687", "CA");
-Parse("+14167070550", "CA");
-Parse("+1-647-522-6487", "CA");
-Parse("(416) 877-0880", "CA");
-
-// Testing international prefixes.
-// Should strip country code.
-Parse("0064 3 331 6005", "NZ");
-// Try again, but this time we have an international number with region rode US. It should
-// recognize the country code and parse accordingly.
-Parse("01164 3 331 6005", "US");
-Parse("+64 3 331 6005", "US");
-Parse("64(0)64123456", "NZ");
-// Check that using a "/" is fine in a phone number.
-Parse("123/45678", "DE");
-Parse("123-456-7890", "US");
-
-// Test parsing international numbers.
-Parse("+1 (650) 333-6000", "NZ");
-Parse("1-650-333-6000", "US");
-// Calling the US number from Singapore by using different service providers
-// 1st test: calling using SingTel IDD service (IDD is 001)
-Parse("0011-650-333-6000", "SG");
-// 2nd test: calling using StarHub IDD service (IDD is 008)
-Parse("0081-650-333-6000", "SG");
-// 3rd test: calling using SingTel V019 service (IDD is 019)
-Parse("0191-650-333-6000", "SG");
-// Calling the US number from Poland
-Parse("0~01-650-333-6000", "PL");
-// Using "++" at the start.
-Parse("++1 (650) 333-6000", "PL");
-// Using a full-width plus sign.
-Parse("\uFF0B1 (650) 333-6000", "SG");
-// The whole number, including punctuation, is here represented in full-width form.
-Parse("\uFF0B\uFF11\u3000\uFF08\uFF16\uFF15\uFF10\uFF09" +
-      "\u3000\uFF13\uFF13\uFF13\uFF0D\uFF16\uFF10\uFF10\uFF10",
-      "SG");
-
-// Test parsing with leading zeros.
-Parse("+39 02-36618 300", "NZ");
-Parse("02-36618 300", "IT");
-Parse("312 345 678", "IT");
-
-// Test parsing numbers in Argentina.
-Parse("+54 9 343 555 1212", "AR");
-Parse("0343 15 555 1212", "AR");
-Parse("+54 9 3715 65 4320", "AR");
-Parse("03715 15 65 4320", "AR");
-Parse("+54 11 3797 0000", "AR");
-Parse("011 3797 0000", "AR");
-Parse("+54 3715 65 4321", "AR");
-Parse("03715 65 4321", "AR");
-Parse("+54 23 1234 0000", "AR");
-Parse("023 1234 0000", "AR");
-
-// Test numbers in Mexico
-Parse("+52 (449)978-0001", "MX");
-Parse("01 (449)978-0001", "MX");
-Parse("(449)978-0001", "MX");
-Parse("+52 1 33 1234-5678", "MX");
-Parse("044 (33) 1234-5678", "MX");
-Parse("045 33 1234-5678", "MX");
-
-// Test that lots of spaces are ok.
-Parse("0 3   3 3 1   6 0 0 5", "NZ");
-
-// Test omitting the current region. This is only valid when the number starts
-// with a '+'.
-Parse("+64 3 331 6005");
-Parse("+64 3 331 6005", null);
-
-// US numbers
-Format("19497261234", "US", "9497261234", "US", "(949) 726-1234", "+1 949-726-1234");
-
-// Try a couple german numbers from the US with various access codes.
-Format("49451491934", "US", "451491934", "DE", "0451 491934", "+49 451 491934");
-Format("+49451491934", "US", "451491934", "DE", "0451 491934", "+49 451 491934");
-Format("01149451491934", "US", "451491934", "DE", "0451 491934", "+49 451 491934");
-
-// Now try dialing the same number from within the German region.
-Format("451491934", "DE", "451491934", "DE", "0451 491934", "+49 451 491934");
-Format("0451491934", "DE", "451491934", "DE", "0451 491934", "+49 451 491934");
-
-// Numbers in italy keep the leading 0 in the city code when dialing internationally.
-Format("0577-555-555", "IT", "0577555555", "IT", "05 7755 5555", "+39 05 7755 5555");
-
-// Telefonica tests
-Format("612123123", "ES", "612123123", "ES", "612 12 31 23", "+34 612 12 31 23");
-
-// Chile mobile number from a landline
-Format("0997654321", "CL", "997654321", "CL", "(99) 765 4321", "+56 99 765 4321");
-
-// Chile mobile number from another mobile number
-Format("997654321", "CL", "997654321", "CL", "(99) 765 4321", "+56 99 765 4321");
-
-// Colombian international number without the leading "+"
-Format("5712234567", "CO", "12234567", "CO", "(1) 2234567", "+57 1 2234567");
-
-// Dialing 911 in the US. This is not a national number.
-CantParse("911", "US");
-
-// China mobile number with a 0 in it
-Format("15955042864", "CN", "15955042864", "CN", "0159 5504 2864", "+86 159 5504 2864");
-
-// Testing international region numbers.
-CantParse("883510000000091", "001");
-Format("+883510000000092", "001", "510000000092", "001", "510 000 000 092", "+883 510 000 000 092");
-Format("883510000000093", "FR", "510000000093", "001", "510 000 000 093", "+883 510 000 000 093");
-Format("+883510000000094", "FR", "510000000094", "001", "510 000 000 094", "+883 510 000 000 094");
-Format("883510000000095", "US", "510000000095", "001", "510 000 000 095", "+883 510 000 000 095");
-Format("+883510000000096", "US", "510000000096", "001", "510 000 000 096", "+883 510 000 000 096");
-CantParse("979510000012", "001");
-Format("+979510000012", "001", "510000012", "001", "5 1000 0012", "+979 5 1000 0012");
-
-// Test normalizing numbers. Only 0-9,#* are valid in a phone number.
-Normalize("+ABC # * , 9 _ 1 _0", "+222#*,910");
-Normalize("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "22233344455566677778889999");
-Normalize("abcdefghijklmnopqrstuvwxyz", "22233344455566677778889999");
-
-// 8 and 9 digit numbers with area code in Brazil with collect call prefix (90)
-AllEqual(["01187654321","0411187654321","551187654321","90411187654321","+551187654321"],"BR");
-AllEqual(["011987654321","04111987654321","5511987654321","904111987654321","+5511987654321"],"BR");
-
-</script>
-</window>
deleted file mode 100644
--- a/dom/phonenumberutils/tests/test_phonenumberservice.xul
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- Any copyright is dedicated to the Public Domain.
-   - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
-<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
-
-<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-        title="Mozilla Bug 781379">
-  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
-  <!-- test results are displayed in the html:body -->
-  <body xmlns="http://www.w3.org/1999/xhtml">
-  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
-     target="_blank">Mozilla Bug 809213</a>
-  </body>
-
-<script type="application/javascript;version=1.8">
-
-"use strict";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-Services.prefs.setIntPref("dom.phonenumber.substringmatching.BR", 8);
-Services.prefs.setCharPref("ril.lastKnownSimMcc", "724");
-
-var pm = SpecialPowers.Cc["@mozilla.org/permissionmanager;1"]
-                      .getService(SpecialPowers.Ci.nsIPermissionManager);
-
-pm.addFromPrincipal(window.document.nodePrincipal, "phonenumberservice",
-                    SpecialPowers.Ci.nsIPermissionManager.ALLOW_ACTION);
-
-function onUnwantedSuccess() {
-  ok(false, "onUnwantedSuccess: shouldn't get here");
-}
-
-function onFailure() {
-  ok(false, "in on Failure!");
-}
-
-var req;
-var index = 0;
-var mozPhoneNumberService = window.navigator.mozPhoneNumberService;
-ok(mozPhoneNumberService, "mozPhoneNumberService exists");
-var steps = [
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("123", "123");
-    req.onsuccess = function(e) {
-      is(req.result, true, "same number");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("abcdef", "222333");
-    req.onsuccess = function(e) {
-      is(req.result, true, "normalize first number");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("abc333", "222def");
-    req.onsuccess = function(e) {
-      is(req.result, true, "normalize first and second number");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("1234567", "1234568");
-    req.onsuccess = function(e) {
-      is(req.result, false, "different numbers should not match");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("1234567", "123456");
-    req.onsuccess = function(e) {
-      is(req.result, false, "different length numbers should not match");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("1234567", "123456---");
-    req.onsuccess = function(e) {
-      is(req.result, false, "invalid number should not match valid number");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("111", undefined);
-    req.onsuccess = function(e) {
-      is(req.result, false, "missing second argument should not match");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch(undefined, "111");
-    req.onsuccess = function(e) {
-      is(req.result, false, "missing first argument should not match");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch(null, "");
-    req.onsuccess = function(e) {
-      is(req.result, true, "missing first argument should fuzzy match empty string");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("+552155555555", "2155555555");
-    req.onsuccess = function(e) {
-      is(req.result, true, "test internationalization of number");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function() {
-    req = mozPhoneNumberService.fuzzyMatch("aaa123456789", "zzzzz123456789");
-    req.onsuccess = function(e) {
-      is(req.result, true, "substring matching should be in effect");
-      next();
-    };
-    req.onerror = onFailure;
-  },
-  function () {
-    ok(true, "all done!\n");
-    SimpleTest.finish();
-  }
-];
-
-function next() {
-  ok(true, "Begin!");
-  if (index >= steps.length) {
-    ok(false, "Shouldn't get here!");
-    return;
-  }
-  try {
-    var i = index++;
-    steps[i]();
-  } catch(ex) {
-    ok(false, "Caught exception", ex);
-  }
-}
-
-SimpleTest.waitForExplicitFinish();
-addLoadEvent(next);
-</script>
-</window>
deleted file mode 100644
--- a/dom/phonenumberutils/tests/test_phonenumberutils.xul
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- Any copyright is dedicated to the Public Domain.
-   - http://creativecommons.org/publicdomain/zero/1.0/ -->
-
-<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
-<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
-
-<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-        title="Mozilla Bug 781379">
-  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
-  <script type="application/javascript" src="head.js"/>
-  <!-- test results are displayed in the html:body -->
-  <body xmlns="http://www.w3.org/1999/xhtml">
-  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
-     target="_blank">Mozilla Bug 809213</a>
-  </body>
-
-<script type="application/javascript;version=1.8">
-
-"use strict";
-
-Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://gre/modules/PhoneNumberUtils.jsm");
-
-Services.prefs.setIntPref("dom.phonenumber.substringmatching.BR", 8);
-Services.prefs.setCharPref("ril.lastKnownSimMcc", "724");
-
-function CantParseWithMcc(dial, mcc) {
-  var result = PhoneNumberUtils.parseWithMCC(dial, mcc);
-  if (result) {
-    ok(false, "Shouldn't parse!\n");
-    dump("expected: does not parse");
-    dump("got: " + dial + " " + mcc);
-  } else {
-    ok(true, "Parses");
-  }
-}
-
-function ParseWithMcc(dial, mcc) {
-  var result = PhoneNumberUtils.parseWithMCC(dial, mcc);
-  if (result) {
-    ok(true, "Parses!\n");
-  } else {
-    ok(false, "Should Parse");
-    dump("expected: parses");
-  }
-}
-
-function ParseWithCountryName(dial, countryName) {
-  var result = PhoneNumberUtils.parseWithCountryName(dial, countryName);
-  if (result) {
-    ok(true, "Parses!\n");
-  } else {
-    ok(false, "Should Parse");
-    dump("expected: parses");
-  }
-}
-
-function CantParseWithCountryName(dial, countryName) {
-  var result = PhoneNumberUtils.parseWithCountryName(dial, countryName);
-  if (result) {
-    ok(false, "Should not Parse");
-    dump("expected: does not parse!\n");
-  } else {
-    ok(true, "Expected Parsing error!\n");
-  }
-}
-
-function FuzzyMatch(number1, number2, expect) {
-  var result = PhoneNumberUtils.fuzzyMatch(number1, number2);
-  is(result, expect, "FuzzyMatch OK!");
-}
-
-// Unknown mcc
-CantParseWithMcc("1234", 123);