Backed out 10 changesets (bug 1485305) for browser-chrome failures on docshell/test/browser/browser_loadURI.js. CLOSED TREE
authorBrindusan Cristian <cbrindusan@mozilla.com>
Wed, 19 Sep 2018 18:47:27 +0300
changeset 437226 8e4824d6f1357859bc4a374433ab282d7741c28b
parent 437225 35e63e22c36773a412337276ea3ed9564972f8b4
child 437227 1dd7a055bae0985e895946fa62b561feb8fbe78d
push id108027
push usercbrindusan@mozilla.com
push dateWed, 19 Sep 2018 15:48:07 +0000
treeherdermozilla-inbound@8e4824d6f135 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1485305
milestone64.0a1
backs out50439ec0166116f4d6e80e1af2616be1cf22e95e
a05e40ef7215b9a7b90bec535cbafa146625df03
c99b97b4348bfe6918ff622b49e6e9234ef485cb
75220b2f6669cfa0a0fb2b4bf5692383955ccc74
e698f2fc1c1a607b4402590414d22a0ee5ddde6e
acce14683c130d33970adfbfef6dcd4a6000c34d
323773a395ccbb547c2701acf03db49a178b7886
1b74152cabc1c5be1d02908a0f967423f23a8381
4b5c9d5929fcb2552cb20a2cf980619c98b7f8b3
238d92348159fa0b14c7acbd3549bc3335c47ada
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out 10 changesets (bug 1485305) for browser-chrome failures on docshell/test/browser/browser_loadURI.js. CLOSED TREE Backed out changeset 50439ec01661 (bug 1485305) Backed out changeset a05e40ef7215 (bug 1485305) Backed out changeset c99b97b4348b (bug 1485305) Backed out changeset 75220b2f6669 (bug 1485305) Backed out changeset e698f2fc1c1a (bug 1485305) Backed out changeset acce14683c13 (bug 1485305) Backed out changeset 323773a395cc (bug 1485305) Backed out changeset 1b74152cabc1 (bug 1485305) Backed out changeset 4b5c9d5929fc (bug 1485305) Backed out changeset 238d92348159 (bug 1485305)
accessible/tests/browser/events/browser_test_focus_browserui.js
accessible/tests/browser/events/browser_test_textcaret.js
accessible/tests/mochitest/events/test_scroll.xul
accessible/tests/mochitest/events/test_scroll_caret.xul
accessible/tests/mochitest/relations/test_embeds.xul
browser/actors/BlockedSiteChild.jsm
browser/base/content/browser.js
browser/base/content/tabbrowser.js
browser/base/content/test/favicons/browser_favicon_change.js
browser/base/content/test/favicons/browser_favicon_change_not_in_document.js
browser/base/content/test/general/browser_alltabslistener.js
browser/base/content/test/general/browser_bug417483.js
browser/base/content/test/general/browser_bug431826.js
browser/base/content/test/general/browser_bug519216.js
browser/base/content/test/general/browser_bug567306.js
browser/base/content/test/general/browser_bug579872.js
browser/base/content/test/general/browser_bug581253.js
browser/base/content/test/general/browser_bug624734.js
browser/base/content/test/general/browser_bug734076.js
browser/base/content/test/general/browser_documentnavigation.js
browser/base/content/test/general/browser_e10s_chrome_process.js
browser/base/content/test/general/browser_e10s_switchbrowser.js
browser/base/content/test/general/browser_findbarClose.js
browser/base/content/test/general/browser_refreshBlocker.js
browser/base/content/test/general/browser_restore_isAppTab.js
browser/base/content/test/general/browser_save_link-perwindowpb.js
browser/base/content/test/general/browser_save_link_when_window_navigates.js
browser/base/content/test/general/browser_save_video.js
browser/base/content/test/general/browser_ssl_error_reports.js
browser/base/content/test/general/browser_star_hsts.js
browser/base/content/test/general/browser_tab_detach_restore.js
browser/base/content/test/general/browser_tab_dragdrop.js
browser/base/content/test/general/browser_testOpenNewRemoteTabsFromNonRemoteBrowsers.js
browser/base/content/test/general/browser_typeAheadFind.js
browser/base/content/test/general/browser_unknownContentType_title.js
browser/base/content/test/general/head.js
browser/base/content/test/pageinfo/browser_pageinfo_firstPartyIsolation.js
browser/base/content/test/pageinfo/browser_pageinfo_image_info.js
browser/base/content/test/pageinfo/browser_pageinfo_images.js
browser/base/content/test/pageinfo/browser_pageinfo_svg_image.js
browser/base/content/test/plugins/browser_pluginCrashReportNonDeterminism.js
browser/base/content/test/popupNotifications/head.js
browser/base/content/test/siteIdentity/browser_check_identity_state.js
browser/base/content/test/siteIdentity/browser_csp_block_all_mixedcontent.js
browser/base/content/test/tabs/browser_abandonment_telemetry.js
browser/base/content/test/tabs/browser_allow_process_switches_despite_related_browser.js
browser/base/content/test/tabs/browser_audioTabIcon.js
browser/base/content/test/tabs/browser_contextmenu_openlink_after_tabnavigated.js
browser/base/content/test/tabs/browser_new_web_tab_in_file_process_pref.js
browser/base/content/test/tabs/browser_opened_file_tab_navigated_to_web.js
browser/base/content/test/tabs/browser_viewsource_of_data_URI_in_file_process.js
browser/base/content/test/urlbar/browser_URLBarSetURI.js
browser/base/content/test/urlbar/browser_bug304198.js
browser/base/content/test/urlbar/browser_bug623155.js
browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js
browser/base/content/test/urlbar/browser_urlbarAboutHomeLoading.js
browser/base/content/test/urlbar/browser_urlbarTrimURLs.js
browser/base/content/test/webextensions/browser_extension_sideloading.js
browser/base/content/test/webextensions/browser_extension_update_background.js
browser/base/content/test/webextensions/browser_extension_update_background_noprompt.js
browser/base/content/test/webextensions/browser_permissions_installTrigger.js
browser/base/content/test/webextensions/browser_permissions_mozAddonManager.js
browser/base/content/test/webextensions/browser_permissions_unsigned.js
browser/base/content/test/webextensions/browser_update_interactive_noprompt.js
browser/base/content/test/webextensions/head.js
browser/base/content/test/webrtc/browser_devices_get_user_media.js
browser/components/customizableui/test/browser_exit_background_customize_mode.js
browser/components/extensions/parent/ext-browser.js
browser/components/feeds/test/browser/browser_registerProtocolHandler_notification.js
browser/components/newtab/lib/SnippetsFeed.jsm
browser/components/originattributes/test/browser/browser_firstPartyIsolation_aboutPages.js
browser/components/originattributes/test/browser/browser_firstPartyIsolation_blobURI.js
browser/components/originattributes/test/browser/browser_firstPartyIsolation_js_uri.js
browser/components/preferences/in-content/subdialogs.js
browser/components/preferences/in-content/sync.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_blobUrl.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_concurrent.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_crh.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_geoprompt.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_localStorage.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js
browser/components/privatebrowsing/test/browser/browser_privatebrowsing_ui.js
browser/components/safebrowsing/content/test/browser_bug400731.js
browser/components/safebrowsing/content/test/browser_bug415846.js
browser/components/search/test/browser_426329.js
browser/components/search/test/browser_abouthome_behavior.js
browser/components/sessionstore/SessionStore.jsm
browser/components/sessionstore/content/aboutSessionRestore.js
browser/components/sessionstore/test/browser_394759_perwindowpb.js
browser/components/sessionstore/test/browser_480893.js
browser/components/sessionstore/test/browser_491168.js
browser/components/sessionstore/test/browser_async_window_flushing.js
browser/components/sessionstore/test/browser_background_tab_crash.js
browser/components/sessionstore/test/browser_backup_recovery.js
browser/components/sessionstore/test/browser_broadcast.js
browser/components/sessionstore/test/browser_closed_objects_changed_notifications_tabs.js
browser/components/sessionstore/test/browser_closed_objects_changed_notifications_windows.js
browser/components/sessionstore/test/browser_crashedTabs.js
browser/components/sessionstore/test/browser_dying_cache.js
browser/components/sessionstore/test/browser_forget_async_closings.js
browser/components/sessionstore/test/browser_frametree.js
browser/components/sessionstore/test/browser_history_persist.js
browser/components/sessionstore/test/browser_multiple_navigateAndRestore.js
browser/components/sessionstore/test/browser_privatetabs.js
browser/components/sessionstore/test/browser_replace_load.js
browser/components/sessionstore/test/browser_scrollPositions.js
browser/components/sessionstore/test/browser_sessionHistory.js
browser/components/sessionstore/test/browser_sessionStorage.js
browser/components/sessionstore/test/browser_switch_remoteness.js
browser/components/sessionstore/test/browser_undoCloseById.js
browser/components/shell/HeadlessShell.jsm
browser/components/shell/test/browser_1119088.js
browser/components/translation/test/browser_translation_exceptions.js
browser/components/translation/test/browser_translation_infobar.js
browser/components/uitour/UITour.jsm
browser/modules/ContentSearch.jsm
browser/modules/test/browser/browser_SitePermissions_tab_urls.js
browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js
browser/tools/mozscreenshots/mozscreenshots/extension/TestRunner.jsm
browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Tabs.jsm
devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js
devtools/client/debugger/test/mochitest/browser_dbg_navigation.js
devtools/client/framework/test/browser_source_map-reload.js
devtools/client/framework/test/browser_toolbox_remoteness_change.js
devtools/client/framework/test/browser_toolbox_window_title_changes.js
devtools/client/netmonitor/test/browser_net_cause.js
devtools/client/netmonitor/test/browser_net_cause_source_map.js
devtools/client/netmonitor/test/browser_net_charts-01.js
devtools/client/netmonitor/test/browser_net_charts-02.js
devtools/client/netmonitor/test/browser_net_charts-03.js
devtools/client/netmonitor/test/browser_net_charts-04.js
devtools/client/netmonitor/test/browser_net_charts-05.js
devtools/client/netmonitor/test/browser_net_charts-06.js
devtools/client/netmonitor/test/browser_net_charts-07.js
devtools/client/netmonitor/test/browser_net_columns_showhide.js
devtools/client/netmonitor/test/browser_net_edit_resend_caret.js
devtools/client/netmonitor/test/browser_net_frame.js
devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js
devtools/client/netmonitor/test/browser_net_telemetry_filters_changed.js
devtools/client/netmonitor/test/browser_net_telemetry_sidepanel_changed.js
devtools/client/responsive.html/browser/swap.js
devtools/client/responsive.html/browser/web-navigation.js
devtools/client/responsive.html/test/browser/head.js
devtools/client/scratchpad/test/browser_scratchpad_browser_last_window_closing.js
devtools/client/scratchpad/test/browser_scratchpad_chrome_context_pref.js
devtools/client/scratchpad/test/browser_scratchpad_contexts.js
devtools/client/scratchpad/test/browser_scratchpad_display_non_error_exceptions.js
devtools/client/scratchpad/test/browser_scratchpad_display_outputs_errors.js
devtools/client/scratchpad/test/browser_scratchpad_edit_ui_updates.js
devtools/client/scratchpad/test/browser_scratchpad_eval_func.js
devtools/client/scratchpad/test/browser_scratchpad_execute_print.js
devtools/client/scratchpad/test/browser_scratchpad_falsy.js
devtools/client/scratchpad/test/browser_scratchpad_files.js
devtools/client/scratchpad/test/browser_scratchpad_goto_line_ui.js
devtools/client/scratchpad/test/browser_scratchpad_help_key.js
devtools/client/scratchpad/test/browser_scratchpad_initialization.js
devtools/client/scratchpad/test/browser_scratchpad_inspect.js
devtools/client/scratchpad/test/browser_scratchpad_long_string.js
devtools/client/scratchpad/test/browser_scratchpad_modeline.js
devtools/client/scratchpad/test/browser_scratchpad_open_error_console.js
devtools/client/scratchpad/test/browser_scratchpad_pprint-02.js
devtools/client/scratchpad/test/browser_scratchpad_pprint.js
devtools/client/scratchpad/test/browser_scratchpad_pprint_error_goto_line.js
devtools/client/scratchpad/test/browser_scratchpad_recent_files.js
devtools/client/scratchpad/test/browser_scratchpad_remember_view_options.js
devtools/client/scratchpad/test/browser_scratchpad_reset_undo.js
devtools/client/scratchpad/test/browser_scratchpad_revert_to_saved.js
devtools/client/scratchpad/test/browser_scratchpad_run_error_goto_line.js
devtools/client/scratchpad/test/browser_scratchpad_tab.js
devtools/client/scratchpad/test/browser_scratchpad_tab_switch.js
devtools/client/scratchpad/test/browser_scratchpad_throw_output.js
devtools/client/scratchpad/test/browser_scratchpad_ui.js
devtools/client/scratchpad/test/browser_scratchpad_unsaved.js
devtools/client/scratchpad/test/browser_scratchpad_wrong_window_focus.js
devtools/client/scratchpad/test/head.js
devtools/client/styleeditor/test/head.js
docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js
docshell/test/browser/browser_bug1415918_beforeunload_options.js
docshell/test/browser/browser_bug420605.js
docshell/test/browser/browser_bug422543.js
docshell/test/browser/browser_dataURI_unique_opaque_origin.js
docshell/test/browser/browser_loadDisallowInherit.js
docshell/test/browser/browser_loadURI.js
docshell/test/chrome/bug112564_window.xul
docshell/test/chrome/bug215405_window.xul
docshell/test/chrome/bug364461_window.xul
docshell/test/chrome/bug396519_window.xul
docshell/test/chrome/bug582176_window.xul
docshell/test/chrome/bug92598_window.xul
docshell/test/chrome/docshell_helpers.js
docshell/test/navigation/browser_bug343515.js
dom/base/test/browser_aboutnewtab_process_selection.js
dom/base/test/browser_bug902350.js
dom/base/test/browser_messagemanager_loadprocessscript.js
dom/base/test/browser_state_notifications.js
dom/base/test/browser_timeout_throttling_with_audio_playback.js
dom/base/test/browser_use_counters.js
dom/events/test/test_bug415498.xul
dom/events/test/test_bug617528.xul
dom/html/test/browser_DOMDocElementInserted.js
dom/indexedDB/test/browser_forgetThisSite.js
dom/indexedDB/test/browser_permissionsPromptAllow.js
dom/indexedDB/test/browser_permissionsPromptDeny.js
dom/indexedDB/test/browser_permissionsPromptWorker.js
dom/indexedDB/test/browser_perwindow_privateBrowsing.js
dom/ipc/tests/browser_domainPolicy.js
dom/plugins/test/mochitest/browser_bug1335475.js
dom/plugins/test/mochitest/test_privatemode_perwindowpb.xul
dom/quota/test/browser_permissionsPromptAllow.js
dom/quota/test/browser_permissionsPromptDeny.js
dom/quota/test/browser_permissionsPromptUnknown.js
dom/security/test/general/browser_test_data_download.js
dom/security/test/general/browser_test_data_text_csv.js
dom/serviceworkers/test/browser_download.js
dom/serviceworkers/test/browser_force_refresh.js
dom/serviceworkers/test/test_privateBrowsing.html
dom/tests/browser/browser_ConsoleStoragePBTest_perwindowpb.js
dom/tests/browser/browser_autofocus_background.js
dom/tests/browser/browser_autofocus_preference.js
dom/tests/browser/browser_bug1236512.js
dom/tests/browser/browser_hasbeforeunload.js
dom/tests/browser/browser_localStorage_e10s.js
dom/tests/mochitest/beacon/test_beaconCookies.html
dom/url/tests/browser_download_after_revoke.js
dom/workers/test/test_sharedWorker_privateBrowsing.html
layout/forms/test/test_bug536567_perwindowpb.html
layout/tools/layout-debug/ui/content/layoutdebug.js
layout/tools/layout-debug/ui/content/layoutdebug.xul
layout/tools/recording/recording.js
security/manager/ssl/tests/mochitest/browser/browser_bug627234_perwindowpb.js
services/fxaccounts/tests/browser/browser_device_connected.js
services/fxaccounts/tests/browser/browser_verify_login.js
testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm
testing/talos/talos/pageloader/chrome/pageloader.js
testing/talos/talos/tests/tabswitch/api.js
toolkit/actors/WebNavigationChild.jsm
toolkit/components/extensions/ExtensionParent.jsm
toolkit/components/extensions/ExtensionXPCShellUtils.jsm
toolkit/components/mozprotocol/tests/browser_mozprotocol.js
toolkit/components/passwordmgr/test/browser/browser_DOMFormHasPassword.js
toolkit/components/passwordmgr/test/browser/browser_DOMInputPasswordAdded.js
toolkit/components/passwordmgr/test/browser/browser_formless_submit_chrome.js
toolkit/components/passwordmgr/test/browser/browser_passwordmgr_switchtab.js
toolkit/components/passwordmgr/test/chrome/test_privbrowsing_perwindowpb.html
toolkit/components/perfmonitoring/tests/browser/browser_compartments.js
toolkit/components/places/tests/browser/browser_bug399606.js
toolkit/components/places/tests/browser/browser_favicon_privatebrowsing_perwindowpb.js
toolkit/components/places/tests/browser/browser_visited_notfound.js
toolkit/components/places/tests/browser/browser_visituri_nohistory.js
toolkit/components/reader/test/browser_readerMode.js
toolkit/components/reader/test/browser_readerMode_hidden_nodes.js
toolkit/components/remotebrowserutils/RemoteWebNavigation.js
toolkit/components/remotepagemanager/tests/browser/browser_RemotePageManager.js
toolkit/components/thumbnails/test/head.js
toolkit/components/url-classifier/tests/mochitest/test_donottrack.html
toolkit/components/url-classifier/tests/mochitest/test_fastblock_bug1477046.html
toolkit/components/url-classifier/tests/mochitest/test_privatebrowsing_trackingprotection.html
toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_bug1157081.html
toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_bug1312515.html
toolkit/components/url-classifier/tests/mochitest/test_trackingprotection_whitelist.html
toolkit/components/viewsource/content/viewSource-content.js
toolkit/content/tests/browser/browser_audioCompeting.js
toolkit/content/tests/browser/browser_audioCompeting_onlyForActiveAgent.js
toolkit/content/tests/browser/browser_autoplay_audibleMediaOccurred.js
toolkit/content/tests/browser/browser_autoplay_policy_iframe_hierarchy.js
toolkit/content/tests/browser/browser_autoplay_policy_play_twice.js
toolkit/content/tests/browser/browser_autoplay_policy_user_gestures.js
toolkit/content/tests/browser/browser_autoscroll_disabled.js
toolkit/content/tests/browser/browser_block_autoplay_media.js
toolkit/content/tests/browser/browser_block_autoplay_media_pausedAfterPlay.js
toolkit/content/tests/browser/browser_block_autoplay_playAfterTabVisible.js
toolkit/content/tests/browser/browser_block_multipleMedia.js
toolkit/content/tests/browser/browser_block_notInTreeAudio.js
toolkit/content/tests/browser/browser_block_playMediaInMuteTab.js
toolkit/content/tests/browser/browser_block_plugIn.js
toolkit/content/tests/browser/browser_block_silentAudioTrack_media.js
toolkit/content/tests/browser/browser_block_webAudio.js
toolkit/content/tests/browser/browser_bug295977_autoscroll_overflow.js
toolkit/content/tests/browser/browser_content_url_annotation.js
toolkit/content/tests/browser/browser_isSynthetic.js
toolkit/content/tests/browser/browser_keyevents_during_autoscrolling.js
toolkit/content/tests/browser/browser_mediaPlayback.js
toolkit/content/tests/browser/browser_mediaPlayback_mute.js
toolkit/content/tests/browser/browser_mediaPlayback_suspended.js
toolkit/content/tests/browser/browser_mediaPlayback_suspended_multipleAudio.js
toolkit/content/tests/browser/browser_mute_plugIn.js
toolkit/content/tests/browser/browser_mute_webAudio.js
toolkit/content/tests/browser/browser_resume_bkg_video_on_tab_hover.js
toolkit/content/tests/browser/browser_save_resend_postdata.js
toolkit/content/tests/browser/browser_sound_indicator_silent_video.js
toolkit/mozapps/extensions/content/extensions.js
toolkit/mozapps/extensions/test/browser/browser_bug562797.js
toolkit/mozapps/extensions/test/xpinstall/browser_amosigned_trigger.js
toolkit/mozapps/extensions/test/xpinstall/browser_amosigned_trigger_iframe.js
toolkit/mozapps/extensions/test/xpinstall/browser_amosigned_url.js
toolkit/mozapps/extensions/test/xpinstall/browser_auth.js
toolkit/mozapps/extensions/test/xpinstall/browser_auth2.js
toolkit/mozapps/extensions/test/xpinstall/browser_auth3.js
toolkit/mozapps/extensions/test/xpinstall/browser_auth4.js
toolkit/mozapps/extensions/test/xpinstall/browser_badargs.js
toolkit/mozapps/extensions/test/xpinstall/browser_badargs2.js
toolkit/mozapps/extensions/test/xpinstall/browser_badhash.js
toolkit/mozapps/extensions/test/xpinstall/browser_badhashtype.js
toolkit/mozapps/extensions/test/xpinstall/browser_bug540558.js
toolkit/mozapps/extensions/test/xpinstall/browser_bug645699.js
toolkit/mozapps/extensions/test/xpinstall/browser_bug672485.js
toolkit/mozapps/extensions/test/xpinstall/browser_cookies.js
toolkit/mozapps/extensions/test/xpinstall/browser_cookies2.js
toolkit/mozapps/extensions/test/xpinstall/browser_cookies3.js
toolkit/mozapps/extensions/test/xpinstall/browser_cookies4.js
toolkit/mozapps/extensions/test/xpinstall/browser_corrupt.js
toolkit/mozapps/extensions/test/xpinstall/browser_datauri.js
toolkit/mozapps/extensions/test/xpinstall/browser_doorhanger_installs.js
toolkit/mozapps/extensions/test/xpinstall/browser_empty.js
toolkit/mozapps/extensions/test/xpinstall/browser_hash.js
toolkit/mozapps/extensions/test/xpinstall/browser_hash2.js
toolkit/mozapps/extensions/test/xpinstall/browser_httphash.js
toolkit/mozapps/extensions/test/xpinstall/browser_httphash2.js
toolkit/mozapps/extensions/test/xpinstall/browser_httphash3.js
toolkit/mozapps/extensions/test/xpinstall/browser_httphash4.js
toolkit/mozapps/extensions/test/xpinstall/browser_httphash5.js
toolkit/mozapps/extensions/test/xpinstall/browser_httphash6.js
toolkit/mozapps/extensions/test/xpinstall/browser_installchrome.js
toolkit/mozapps/extensions/test/xpinstall/browser_localfile.js
toolkit/mozapps/extensions/test/xpinstall/browser_localfile3.js
toolkit/mozapps/extensions/test/xpinstall/browser_localfile4.js
toolkit/mozapps/extensions/test/xpinstall/browser_offline.js
toolkit/mozapps/extensions/test/xpinstall/browser_relative.js
toolkit/mozapps/extensions/test/xpinstall/browser_signed_trigger.js
toolkit/mozapps/extensions/test/xpinstall/browser_signed_url.js
toolkit/mozapps/extensions/test/xpinstall/browser_softwareupdate.js
toolkit/mozapps/extensions/test/xpinstall/browser_trigger_redirect.js
toolkit/mozapps/extensions/test/xpinstall/browser_unsigned_trigger.js
toolkit/mozapps/extensions/test/xpinstall/browser_unsigned_trigger_iframe.js
toolkit/mozapps/extensions/test/xpinstall/browser_unsigned_trigger_xorigin.js
toolkit/mozapps/extensions/test/xpinstall/browser_unsigned_url.js
toolkit/mozapps/extensions/test/xpinstall/browser_whitelist.js
uriloader/exthandler/tests/mochitest/browser_web_protocol_handlers.js
widget/headless/tests/test_headless.js
--- a/accessible/tests/browser/events/browser_test_focus_browserui.js
+++ b/accessible/tests/browser/events/browser_test_focus_browserui.js
@@ -11,20 +11,18 @@ loadScripts({ name: "states.js", dir: MO
 
 async function runTests(browser, accDoc) {
   let onFocus = waitForEvent(EVENT_FOCUS, "input");
   EventUtils.synthesizeKey("VK_TAB", {}, browser.ownerGlobal);
   let evt = await onFocus;
   testStates(evt.accessible, STATE_FOCUSED);
 
   onFocus = waitForEvent(EVENT_FOCUS, "buttonInputDoc");
-  let url = snippetToURL(`<input id="input" type="button" value="button">`, { id: "buttonInputDoc" });
-  browser.loadURI(url, {
-    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
-  });
+  browser.loadURI(snippetToURL(
+    `<input id="input" type="button" value="button">`, { id: "buttonInputDoc" }));
   evt = await onFocus;
   testStates(evt.accessible, STATE_FOCUSED);
 
   onFocus = waitForEvent(EVENT_FOCUS, "input");
   browser.goBack();
   evt = await onFocus;
   testStates(evt.accessible, STATE_FOCUSED);
 
--- a/accessible/tests/browser/events/browser_test_textcaret.js
+++ b/accessible/tests/browser/events/browser_test_textcaret.js
@@ -11,17 +11,17 @@ function caretMoveChecker(target, caretO
     let cmEvent = event.QueryInterface(nsIAccessibleCaretMoveEvent);
     return cmEvent.accessible == getAccessible(target) && cmEvent.caretOffset == caretOffset;
   };
 }
 
 async function checkURLBarCaretEvents() {
   const kURL = "about:mozilla";
   let newWin = await BrowserTestUtils.openNewBrowserWindow();
-  BrowserTestUtils.loadURI(newWin.gBrowser.selectedBrowser, kURL);
+  newWin.gBrowser.selectedBrowser.loadURI(kURL);
 
   await waitForEvent(
     EVENT_DOCUMENT_LOAD_COMPLETE,
     event => {
       try {
         return event.accessible.QueryInterface(nsIAccessibleDocument).URL == kURL;
       } catch (e) {
         return false;
--- a/accessible/tests/mochitest/events/test_scroll.xul
+++ b/accessible/tests/mochitest/events/test_scroll.xul
@@ -38,19 +38,17 @@
     {
       this.eventSeq = [
         new asyncInvokerChecker(EVENT_DOCUMENT_LOAD_COMPLETE, currentTabDocument),
         new asyncInvokerChecker(EVENT_SCROLLING_START, getAnchorJumpInTabDocument)
       ];
 
       this.invoke = function loadTab_invoke()
       {
-        tabBrowser().loadURI(aURL, {
-          triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-        });
+        tabBrowser().loadURI(aURL);
       }
 
       this.getID = function loadTab_getID()
       {
         return "load tab: " + aURL;
       }
     }
 
--- a/accessible/tests/mochitest/events/test_scroll_caret.xul
+++ b/accessible/tests/mochitest/events/test_scroll_caret.xul
@@ -38,19 +38,17 @@
     {
       this.eventSeq = [
         new asyncInvokerChecker(EVENT_DOCUMENT_LOAD_COMPLETE, currentTabDocument),
         new asyncCaretMoveChecker(0, getAnchorJumpInTabDocument)
       ];
 
       this.invoke = function loadTab_invoke()
       {
-        tabBrowser().loadURI(aURL, {
-          triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-        });
+        tabBrowser().loadURI(aURL);
       }
 
       this.getID = function loadTab_getID()
       {
         return "load tab: " + aURL;
       }
     }
 
--- a/accessible/tests/mochitest/relations/test_embeds.xul
+++ b/accessible/tests/mochitest/relations/test_embeds.xul
@@ -28,19 +28,17 @@
   <![CDATA[
     ////////////////////////////////////////////////////////////////////////////
     // Invokers
 
     function loadURI(aURI)
     {
       this.invoke = function loadURI_invoke()
       {
-        tabBrowser().loadURI(aURI, {
-          triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-        });
+        tabBrowser().loadURI(aURI);
       }
 
       this.eventSeq = [
         new invokerChecker(EVENT_DOCUMENT_LOAD_COMPLETE, currentTabDocument)
       ];
 
       this.finalCheck = function loadURI_finalCheck()
       {
--- a/browser/actors/BlockedSiteChild.jsm
+++ b/browser/actors/BlockedSiteChild.jsm
@@ -3,18 +3,16 @@
  * 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/. */
 
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 var EXPORTED_SYMBOLS = ["BlockedSiteChild"];
 
 ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
-ChromeUtils.defineModuleGetter(this, "Utils",
-  "resource://gre/modules/sessionstore/Utils.jsm");
 
 ChromeUtils.defineModuleGetter(this, "SafeBrowsing",
                                "resource://gre/modules/SafeBrowsing.jsm");
 
 function getSiteBlockedErrorDetails(docShell) {
   let blockedInfo = {};
   if (docShell.failedChannel) {
     let classifiedChannel = docShell.failedChannel.
@@ -26,19 +24,17 @@ function getSiteBlockedErrorDetails(docS
 
       // Remove the query to avoid leaking sensitive data
       if (reportUri instanceof Ci.nsIURL) {
         reportUri = reportUri.mutate()
                              .setQuery("")
                              .finalize();
       }
 
-      let triggeringPrincipal = docShell.failedChannel.loadInfo ? Utils.serializePrincipal(docShell.failedChannel.loadInfo.triggeringPrincipal) : null;
       blockedInfo = { list: classifiedChannel.matchedList,
-                      triggeringPrincipal,
                       provider: classifiedChannel.matchedProvider,
                       uri: reportUri.asciiSpec };
     }
   }
   return blockedInfo;
 }
 
 class BlockedSiteChild extends ActorChild {
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1004,28 +1004,16 @@ function handleUriInChrome(aBrowser, aUr
     } catch (e) {
       return false;
     }
   }
 
   return false;
 }
 
-/* Creates a null principal using the userContextId
-   from the current selected tab or a passed in tab argument */
-function _createNullPrincipalFromTabUserContextId(tab = gBrowser.selectedTab) {
-  let userContextId;
-  if (tab.hasAttribute("usercontextid")) {
-    userContextId = tab.getAttribute("usercontextid");
-  }
-  return Services.scriptSecurityManager.createNullPrincipal({
-    userContextId,
-  });
-}
-
 // A shared function used by both remote and non-remote browser XBL bindings to
 // load a URI or redirect it to the correct process.
 function _loadURI(browser, uri, params = {}) {
   let tab = gBrowser.getTabForBrowser(browser);
   // Preloaded browsers don't have tabs, so we ignore those.
   if (tab) {
     maybeRecordAbandonmentTelemetry(tab, "newURI");
   }
@@ -1038,20 +1026,16 @@ function _loadURI(browser, uri, params =
     flags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE,
     referrerURI,
     referrerPolicy = Ci.nsIHttpChannel.REFERRER_POLICY_UNSET,
     triggeringPrincipal,
     postData,
     userContextId,
   } = params || {};
 
-  if (!triggeringPrincipal) {
-    throw new Error("Must load with a triggering Principal");
-  }
-
   let {
     uriObject,
     requiredRemoteType,
     mustChangeProcess,
     newFrameloader,
   } = E10SUtils.shouldLoadURIInBrowser(browser, uri, gMultiProcessBrowser,
                                        flags);
   if (uriObject && handleUriInChrome(browser, uriObject)) {
@@ -2410,20 +2394,16 @@ function BrowserCloseTabOrWindow(event) 
 function BrowserTryToCloseWindow() {
   if (WindowIsClosing())
     window.close(); // WindowIsClosing does all the necessary checks
 }
 
 function loadURI(uri, referrer, postData, allowThirdPartyFixup, referrerPolicy,
                  userContextId, originPrincipal, forceAboutBlankViewerInCurrent,
                  triggeringPrincipal, allowInheritPrincipal = false) {
-  if (!triggeringPrincipal) {
-    throw new Error("Must load with a triggering Principal");
-  }
-
   try {
     openLinkIn(uri, "current",
                { referrerURI: referrer,
                  referrerPolicy,
                  postData,
                  allowThirdPartyFixup,
                  userContextId,
                  originPrincipal,
@@ -3155,22 +3135,20 @@ var BrowserOnClick = {
           }
           this.ignoreWarningLink(reason, blockedInfo);
         }
         break;
     }
   },
 
   ignoreWarningLink(reason, blockedInfo) {
-    let triggeringPrincipal = Utils.deserializePrincipal(blockedInfo.triggeringPrincipal) || _createNullPrincipalFromTabUserContextId();
     // Allow users to override and continue through to the site,
     // but add a notify bar as a reminder, so that they don't lose
     // track after, e.g., tab switching.
     gBrowser.loadURI(gBrowser.currentURI.spec, {
-      triggeringPrincipal,
       flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CLASSIFIER,
     });
 
     Services.perms.add(gBrowser.currentURI, "safe-browsing",
                        Ci.nsIPermissionManager.ALLOW_ACTION,
                        Ci.nsIPermissionManager.EXPIRE_SESSION);
 
     let buttons = [{
@@ -3225,37 +3203,33 @@ var BrowserOnClick = {
 /**
  * Re-direct the browser to a known-safe page.  This function is
  * used when, for example, the user browses to a known malware page
  * and is presented with about:blocked.  The "Get me out of here!"
  * button should take the user to the default start page so that even
  * when their own homepage is infected, we can get them somewhere safe.
  */
 function getMeOutOfHere() {
-  gBrowser.loadURI(getDefaultHomePage(), {
-    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), // Also needs to load homepage
-  });
+  gBrowser.loadURI(getDefaultHomePage());
 }
 
 /**
  * Re-direct the browser to the previous page or a known-safe page if no
  * previous page is found in history.  This function is used when the user
  * browses to a secure page with certificate issues and is presented with
  * about:certerror.  The "Go Back" button should take the user to the previous
  * or a default start page so that even when their own homepage is on a server
  * that has certificate errors, we can get them somewhere safe.
  */
 function goBackFromErrorPage() {
   let state = JSON.parse(SessionStore.getTabState(gBrowser.selectedTab));
   if (state.index == 1) {
     // If the unsafe page is the first or the only one in history, go to the
     // start page.
-    gBrowser.loadURI(getDefaultHomePage(), {
-      triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-    });
+    gBrowser.loadURI(getDefaultHomePage());
   } else {
     BrowserBack();
   }
 }
 
 /**
  * Return the default start page for the cases when the user's own homepage is
  * infected, so we can get them somewhere safe.
@@ -3281,20 +3255,17 @@ function getWebNavigation() {
 }
 
 function BrowserReloadWithFlags(reloadFlags) {
   let url = gBrowser.currentURI.spec;
   if (gBrowser.updateBrowserRemotenessByURL(gBrowser.selectedBrowser, url)) {
     // If the remoteness has changed, the new browser doesn't have any
     // information of what was loaded before, so we need to load the previous
     // URL again.
-    gBrowser.loadURI(url, {
-      flags: reloadFlags,
-      triggeringPrincipal: gBrowser.selectedBrowser.contentPrincipal,
-    });
+    gBrowser.loadURI(url, { flags: reloadFlags });
     return;
   }
 
   // Do this after the above case where we might flip remoteness.
   // Unfortunately, we'll count the remoteness flip case as a
   // "newURL" load, since we're using loadURI, but hopefully
   // that's rare enough to not matter.
   maybeRecordAbandonmentTelemetry(gBrowser.selectedTab, "reload");
@@ -7690,19 +7661,17 @@ function switchToTabHavingURI(aURI, aOpe
             window.gBrowser.tabContainer.selectedIndex + 1,
             /* aSelectTab = */ true
           );
         } else {
           aWindow.focus();
         }
 
         if (ignoreFragment == "whenComparingAndReplace" || replaceQueryString) {
-          browser.loadURI(aURI.spec, {
-            triggeringPrincipal: aOpenParams.triggeringPrincipal || _createNullPrincipalFromTabUserContextId(),
-          });
+          browser.loadURI(aURI.spec);
         }
 
         if (!doAdopt) {
           aWindow.gBrowser.tabContainer.selectedIndex = i;
         }
 
         return true;
       }
--- a/browser/base/content/tabbrowser.js
+++ b/browser/base/content/tabbrowser.js
@@ -1787,19 +1787,17 @@ window._gBrowser = {
 
     if (remoteType != E10SUtils.NOT_REMOTE) {
       // For remote browsers, we need to make sure that the webProgress is
       // instantiated, otherwise the parent won't get informed about the state
       // of the preloaded browser until it gets attached to a tab.
       browser.webProgress;
     }
 
-    browser.loadURI(BROWSER_NEW_TAB_URL, {
-      triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-    });
+    browser.loadURI(BROWSER_NEW_TAB_URL);
     browser.docShellIsActive = false;
     browser._urlbarFocused = true;
 
     // Make sure the preloaded browser is loaded with desired zoom level
     let tabURI = Services.io.newURI(BROWSER_NEW_TAB_URL);
     FullZoom.onLocationChange(tabURI, false, browser);
   },
 
--- a/browser/base/content/test/favicons/browser_favicon_change.js
+++ b/browser/base/content/test/favicons/browser_favicon_change.js
@@ -5,17 +5,17 @@
 
 const TEST_ROOT = "http://mochi.test:8888/browser/browser/base/content/test/favicons/";
 const TEST_URL = TEST_ROOT + "file_favicon_change.html";
 
 add_task(async function() {
   let extraTab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   let haveChanged = waitForFavicon(extraTab.linkedBrowser, TEST_ROOT + "file_bug970276_favicon1.ico");
 
-  BrowserTestUtils.loadURI(extraTab.linkedBrowser, TEST_URL);
+  extraTab.linkedBrowser.loadURI(TEST_URL);
   await BrowserTestUtils.browserLoaded(extraTab.linkedBrowser);
   await haveChanged;
 
   haveChanged = waitForFavicon(extraTab.linkedBrowser, TEST_ROOT + "moz.png");
 
   ContentTask.spawn(extraTab.linkedBrowser, null, function() {
     let ev = new content.CustomEvent("PleaseChangeFavicon", {});
     content.dispatchEvent(ev);
--- a/browser/base/content/test/favicons/browser_favicon_change_not_in_document.js
+++ b/browser/base/content/test/favicons/browser_favicon_change_not_in_document.js
@@ -22,17 +22,17 @@ add_task(async function() {
   const linkAddedHandler = event => domLinkAddedFired++;
   const linkChangedhandler = event => domLinkChangedFired++;
   BrowserTestUtils.addContentEventListener(gBrowser.selectedBrowser, "DOMLinkAdded", linkAddedHandler);
   BrowserTestUtils.addContentEventListener(gBrowser.selectedBrowser, "DOMLinkChanged", linkChangedhandler);
 
   let expectedFavicon = TEST_ROOT + "file_generic_favicon.ico";
   let faviconPromise = waitForFavicon(extraTab.linkedBrowser, expectedFavicon);
 
-  BrowserTestUtils.loadURI(extraTab.linkedBrowser, TEST_URL);
+  extraTab.linkedBrowser.loadURI(TEST_URL);
   await BrowserTestUtils.browserLoaded(extraTab.linkedBrowser);
 
   await faviconPromise;
 
   is(domLinkAddedFired, 2, "Should fire the correct number of DOMLinkAdded event.");
   is(domLinkChangedFired, 0, "Should not fire any DOMLinkChanged event.");
 
   gBrowser.removeTab(extraTab);
--- a/browser/base/content/test/general/browser_alltabslistener.js
+++ b/browser/base/content/test/general/browser_alltabslistener.js
@@ -92,27 +92,27 @@ function test() {
   gBrowser.selectedTab = gForegroundTab;
 
   // We must wait until a page has completed loading before
   // starting tests or we get notifications from that
   let promises = [
     BrowserTestUtils.browserStopped(gBackgroundBrowser, kBasePage),
     BrowserTestUtils.browserStopped(gForegroundBrowser, kBasePage),
   ];
-  BrowserTestUtils.loadURI(gBackgroundBrowser, kBasePage);
-  BrowserTestUtils.loadURI(gForegroundBrowser, kBasePage);
+  gBackgroundBrowser.loadURI(kBasePage);
+  gForegroundBrowser.loadURI(kBasePage);
   Promise.all(promises).then(startTest1);
 }
 
 function runTest(browser, url, next) {
   gFrontNotificationsPos = 0;
   gAllNotificationsPos = 0;
   gNextTest = next;
   gTestBrowser = browser;
-  BrowserTestUtils.loadURI(browser, url);
+  browser.loadURI(url);
 }
 
 function startTest1() {
   info("\nTest 1");
   gBrowser.addProgressListener(gFrontProgressListener);
   gBrowser.addTabsProgressListener(gAllProgressListener);
 
   gAllNotifications = [
--- a/browser/base/content/test/general/browser_bug417483.js
+++ b/browser/base/content/test/general/browser_bug417483.js
@@ -1,12 +1,12 @@
 add_task(async function() {
   let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, true);
   const htmlContent = "data:text/html, <iframe src='data:text/html,text text'></iframe>";
-  BrowserTestUtils.loadURI(gBrowser, htmlContent);
+  gBrowser.loadURI(htmlContent);
   await loadedPromise;
 
   await ContentTask.spawn(gBrowser.selectedBrowser, { }, async function(arg) {
     let frame = content.frames[0];
     let sel = frame.getSelection();
     let range = frame.document.createRange();
     let tn = frame.document.body.childNodes[0];
     range.setStart(tn, 4);
--- a/browser/base/content/test/general/browser_bug431826.js
+++ b/browser/base/content/test/general/browser_bug431826.js
@@ -1,17 +1,17 @@
 function remote(task) {
   return ContentTask.spawn(gBrowser.selectedBrowser, null, task);
 }
 
 add_task(async function() {
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   let promise = BrowserTestUtils.waitForErrorPage(gBrowser.selectedBrowser);
-  BrowserTestUtils.loadURI(gBrowser, "https://nocert.example.com/");
+  gBrowser.loadURI("https://nocert.example.com/");
   await promise;
 
   await remote(() => {
     // Confirm that we are displaying the contributed error page, not the default
     let uri = content.document.documentURI;
     Assert.ok(uri.startsWith("about:certerror"), "Broken page should go to about:certerror, not about:neterror");
   });
 
--- a/browser/base/content/test/general/browser_bug519216.js
+++ b/browser/base/content/test/general/browser_bug519216.js
@@ -1,14 +1,14 @@
 function test() {
   waitForExplicitFinish();
   gBrowser.addProgressListener(progressListener1);
   gBrowser.addProgressListener(progressListener2);
   gBrowser.addProgressListener(progressListener3);
-  BrowserTestUtils.loadURI(gBrowser, "data:text/plain,bug519216");
+  gBrowser.loadURI("data:text/plain,bug519216");
 }
 
 var calledListener1 = false;
 var progressListener1 = {
   onLocationChange: function onLocationChange() {
     calledListener1 = true;
     gBrowser.removeProgressListener(this);
   },
--- a/browser/base/content/test/general/browser_bug567306.js
+++ b/browser/base/content/test/general/browser_bug567306.js
@@ -10,19 +10,17 @@ add_task(async function() {
   let selectedBrowser = newwindow.gBrowser.selectedBrowser;
   await new Promise((resolve, reject) => {
     BrowserTestUtils.waitForContentEvent(selectedBrowser, "pageshow", true, (event) => {
       return content.location.href != "about:blank";
     }).then(function pageshowListener() {
       ok(true, "pageshow listener called: " + newwindow.gBrowser.currentURI.spec);
       resolve();
     });
-    selectedBrowser.loadURI("data:text/html,<h1 id='h1'>Select Me</h1>", {
-      triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-    });
+    selectedBrowser.loadURI("data:text/html,<h1 id='h1'>Select Me</h1>");
   });
 
   await SimpleTest.promiseFocus(newwindow);
 
   ok(!newwindow.gFindBarInitialized, "find bar is not yet initialized");
   let findBar = await newwindow.gFindBarPromise;
 
   await ContentTask.spawn(selectedBrowser, { }, async function() {
--- a/browser/base/content/test/general/browser_bug579872.js
+++ b/browser/base/content/test/general/browser_bug579872.js
@@ -19,10 +19,10 @@ function test() {
 
     openTrustedLinkIn("http://example.org/", "current");
     is(gBrowser.tabs.length, 3, "Should open in new tab");
 
     gBrowser.removeTab(newTab);
     gBrowser.removeTab(gBrowser.tabs[1]); // example.org tab
     finish();
   }
-  BrowserTestUtils.loadURI(newTab.linkedBrowser, "http://example.com");
+  newTab.linkedBrowser.loadURI("http://example.com");
 }
--- a/browser/base/content/test/general/browser_bug581253.js
+++ b/browser/base/content/test/general/browser_bug581253.js
@@ -19,17 +19,17 @@ add_task(async function test_remove_book
   await PlacesUtils.bookmarks.insert({
     parentGuid: PlacesUtils.bookmarks.unfiledGuid,
     title: "",
     url: testURL,
   });
 
   Assert.ok(await PlacesUtils.bookmarks.fetch({url: testURL}), "the test url is bookmarked");
 
-  BrowserTestUtils.loadURI(gBrowser, testURL);
+  gBrowser.loadURI(testURL);
 
   await BrowserTestUtils.waitForCondition(
     () => BookmarkingUI.status == BookmarkingUI.STATUS_STARRED,
     "star button indicates that the page is bookmarked");
 
   PlacesUtils.tagging.tagURI(makeURI(testURL), [testTag]);
 
   let popupShownPromise = BrowserTestUtils.waitForEvent(StarUI.panel, "popupshown");
--- a/browser/base/content/test/general/browser_bug624734.js
+++ b/browser/base/content/test/general/browser_bug624734.js
@@ -25,10 +25,10 @@ function test() {
     if (BookmarkingUI.status == BookmarkingUI.STATUS_UPDATING) {
       waitForCondition(() => BookmarkingUI.status != BookmarkingUI.STATUS_UPDATING, finishTest, "BookmarkingUI was updating for too long");
     } else {
       CustomizableUI.removeWidgetFromArea("bookmarks-menu-button");
       finishTest();
     }
   });
 
-  BrowserTestUtils.loadURI(tab.linkedBrowser, "http://example.com/browser/browser/base/content/test/general/dummy_page.html");
+  tab.linkedBrowser.loadURI("http://example.com/browser/browser/base/content/test/general/dummy_page.html");
 }
--- a/browser/base/content/test/general/browser_bug734076.js
+++ b/browser/base/content/test/general/browser_bug734076.js
@@ -86,17 +86,17 @@ add_task(async function() {
       },
     },
   ];
 
   let contentAreaContextMenu = document.getElementById("contentAreaContextMenu");
 
   for (let test of tests) {
     let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
-    BrowserTestUtils.loadURI(gBrowser, test.url);
+    gBrowser.loadURI(test.url);
     await loadedPromise;
 
     info("Run subtest " + test.name);
     let commandToRun = await test.go();
 
     let popupShownPromise = BrowserTestUtils.waitForEvent(contentAreaContextMenu, "popupshown");
     await BrowserTestUtils.synthesizeMouse(test.element, 3, 3,
           { type: "contextmenu", button: 2 }, gBrowser.selectedBrowser);
--- a/browser/base/content/test/general/browser_documentnavigation.js
+++ b/browser/base/content/test/general/browser_documentnavigation.js
@@ -77,17 +77,17 @@ async function expectFocusOnF6(backward,
   if (onContent) {
     window.messageManager.removeMessageListener("BrowserTest:FocusChanged", focusChangedListener);
   }
 }
 
 // Load a page and navigate between it and the chrome window.
 add_task(async function() {
   let page1Promise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPage1);
+  gBrowser.selectedBrowser.loadURI(testPage1);
   await page1Promise;
 
   // When the urlbar is focused, pressing F6 should focus the root of the content page.
   gURLBar.focus();
   await expectFocusOnF6(false, "html1", "html1",
                                 true, "basic focus content page");
 
   // When the content is focused, pressing F6 should focus the urlbar.
--- a/browser/base/content/test/general/browser_e10s_chrome_process.js
+++ b/browser/base/content/test/general/browser_e10s_chrome_process.js
@@ -9,17 +9,17 @@ function makeTest(name, startURL, startP
     // In non-e10s nothing should be remote
     if (!gMultiProcessBrowser) {
       startProcessIsRemote = false;
       endProcessIsRemote = false;
     }
 
     // Load the initial URL and make sure we are in the right initial process
     info("Loading initial URL");
-    BrowserTestUtils.loadURI(browser, startURL);
+    browser.loadURI(startURL);
     await BrowserTestUtils.browserLoaded(browser);
 
     is(browser.currentURI.spec, startURL, "Shouldn't have been redirected");
     is(browser.isRemoteBrowser, startProcessIsRemote, "Should be displayed in the right process");
 
     let docLoadedPromise = BrowserTestUtils.browserLoaded(browser);
     let expectSyncChange = await transitionTask(browser, endURL);
     if (expectSyncChange) {
--- a/browser/base/content/test/general/browser_e10s_switchbrowser.js
+++ b/browser/base/content/test/general/browser_e10s_switchbrowser.js
@@ -43,17 +43,16 @@ var check_history = async function() {
   let sessionHistory = await get_remote_history(gBrowser.selectedBrowser);
 
   let count = sessionHistory.entries.length;
   is(count, gExpectedHistory.entries.length, "Should have the right number of history entries");
   is(sessionHistory.index, gExpectedHistory.index, "Should have the right history index");
 
   for (let i = 0; i < count; i++) {
     let entry = sessionHistory.entries[i];
-    info("Checking History Entry:", entry.uri);
     is(entry.uri, gExpectedHistory.entries[i].uri, "Should have the right URI");
     is(entry.title, gExpectedHistory.entries[i].title, "Should have the right title");
   }
 };
 
 function clear_history() {
   gExpectedHistory.index = -1;
   gExpectedHistory.entries = [];
@@ -73,20 +72,17 @@ var waitForLoad = async function(uri) {
     uri: gBrowser.currentURI.spec,
     title: gBrowser.contentTitle,
   });
 };
 
 // Waits for a load and updates the known history
 var waitForLoadWithFlags = async function(uri, flags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE) {
   info("Loading " + uri + " flags = " + flags);
-  gBrowser.selectedBrowser.loadURI(uri, {
-    flags,
-    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-  });
+  gBrowser.selectedBrowser.loadURI(uri, { flags });
 
   await BrowserTestUtils.browserStopped(gBrowser);
   if (!(flags & Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY)) {
 
     if (flags & Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY) {
       gExpectedHistory.entries.pop();
     } else {
       gExpectedHistory.index++;
--- a/browser/base/content/test/general/browser_findbarClose.js
+++ b/browser/base/content/test/general/browser_findbarClose.js
@@ -7,17 +7,17 @@ var newTab;
 
 add_task(async function findbar_test() {
   waitForExplicitFinish();
   newTab = BrowserTestUtils.addTab(gBrowser, "about:blank");
 
   let promise = ContentTask.spawn(newTab.linkedBrowser, null, async function() {
     await ContentTaskUtils.waitForEvent(this, "DOMContentLoaded", false);
   });
-  BrowserTestUtils.loadURI(newTab.linkedBrowser, "http://example.com/browser/" +
+  newTab.linkedBrowser.loadURI("http://example.com/browser/" +
     "browser/base/content/test/general/test_bug628179.html");
   await promise;
 
   await gFindBarPromise;
   gFindBar.open();
 
   await new ContentTask.spawn(newTab.linkedBrowser, null, async function() {
     let iframe = content.document.getElementById("iframe");
--- a/browser/base/content/test/general/browser_refreshBlocker.js
+++ b/browser/base/content/test/general/browser_refreshBlocker.js
@@ -86,17 +86,17 @@ add_task(async function test_can_enable_
  */
 async function testRealRefresh(refreshPage, delay) {
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: "about:blank",
   }, async function(browser) {
     await pushPrefs(["accessibility.blockautorefresh", true]);
 
-    BrowserTestUtils.loadURI(browser, refreshPage + "?p=" + TARGET_PAGE + "&d=" + delay);
+    browser.loadURI(refreshPage + "?p=" + TARGET_PAGE + "&d=" + delay);
     await BrowserTestUtils.browserLoaded(browser);
 
     // Once browserLoaded resolves, all nsIWebProgressListener callbacks
     // should have fired, so the notification should be visible.
     let notificationBox = gBrowser.getNotificationBox(browser);
     let notification = notificationBox.currentNotification;
 
     ok(notification, "Notification should be visible");
--- a/browser/base/content/test/general/browser_restore_isAppTab.js
+++ b/browser/base/content/test/general/browser_restore_isAppTab.js
@@ -57,31 +57,31 @@ add_task(async function navigate() {
   loadFrameScript(browser);
   let isAppTab = await isBrowserAppTab(browser);
   ok(!isAppTab, "Docshell shouldn't think it is an app tab");
 
   gBrowser.pinTab(tab);
   isAppTab = await isBrowserAppTab(browser);
   ok(isAppTab, "Docshell should think it is an app tab");
 
-  BrowserTestUtils.loadURI(gBrowser, DUMMY);
+  gBrowser.loadURI(DUMMY);
   await BrowserTestUtils.browserStopped(gBrowser);
   loadFrameScript(browser);
   isAppTab = await isBrowserAppTab(browser);
   ok(isAppTab, "Docshell should think it is an app tab");
 
   gBrowser.unpinTab(tab);
   isAppTab = await isBrowserAppTab(browser);
   ok(!isAppTab, "Docshell shouldn't think it is an app tab");
 
   gBrowser.pinTab(tab);
   isAppTab = await isBrowserAppTab(browser);
   ok(isAppTab, "Docshell should think it is an app tab");
 
-  BrowserTestUtils.loadURI(gBrowser, "about:robots");
+  gBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserStopped(gBrowser);
   loadFrameScript(browser);
   isAppTab = await isBrowserAppTab(browser);
   ok(isAppTab, "Docshell should think it is an app tab");
 
   gBrowser.removeCurrentTab();
 });
 
--- a/browser/base/content/test/general/browser_save_link-perwindowpb.js
+++ b/browser/base/content/test/general/browser_save_link-perwindowpb.js
@@ -9,17 +9,17 @@ MockFilePicker.init(window);
 // the first by checking that cookies set by the first response are not sent
 // during the second request.
 function triggerSave(aWindow, aCallback) {
   info("started triggerSave");
   var fileName;
   let testBrowser = aWindow.gBrowser.selectedBrowser;
   // This page sets a cookie if and only if a cookie does not exist yet
   let testURI = "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517-2.html";
-  BrowserTestUtils.loadURI(testBrowser, testURI);
+  testBrowser.loadURI(testURI);
   BrowserTestUtils.browserLoaded(testBrowser, false, testURI)
                   .then(() => {
     waitForFocus(function() {
       info("register to handle popupshown");
       aWindow.document.addEventListener("popupshown", contextMenuOpened);
 
       BrowserTestUtils.synthesizeMouseAtCenter("#fff", {type: "contextmenu", button: 2}, testBrowser);
       info("right clicked!");
--- a/browser/base/content/test/general/browser_save_link_when_window_navigates.js
+++ b/browser/base/content/test/general/browser_save_link_when_window_navigates.js
@@ -24,17 +24,17 @@ function createTemporarySaveDirectory() 
 }
 
 function triggerSave(aWindow, aCallback) {
   info("started triggerSave, persite downloads: " + (Services.prefs.getBoolPref(SAVE_PER_SITE_PREF) ? "on" : "off"));
   var fileName;
   let testBrowser = aWindow.gBrowser.selectedBrowser;
   let testURI = "http://mochi.test:8888/browser/browser/base/content/test/general/navigating_window_with_download.html";
   windowObserver.setCallback(onUCTDialog);
-  BrowserTestUtils.loadURI(testBrowser, testURI);
+  testBrowser.loadURI(testURI);
 
   // Create the folder the link will be saved into.
   var destDir = createTemporarySaveDirectory();
   var destFile = destDir.clone();
 
   MockFilePicker.displayDirectory = destDir;
   MockFilePicker.showCallback = function(fp) {
     info("showCallback");
--- a/browser/base/content/test/general/browser_save_video.js
+++ b/browser/base/content/test/general/browser_save_video.js
@@ -7,17 +7,17 @@ MockFilePicker.init(window);
 /**
  * TestCase for bug 564387
  * <https://bugzilla.mozilla.org/show_bug.cgi?id=564387>
  */
 add_task(async function() {
   var fileName;
 
   let loadPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
-  BrowserTestUtils.loadURI(gBrowser, "http://mochi.test:8888/browser/browser/base/content/test/general/web_video.html");
+  gBrowser.loadURI("http://mochi.test:8888/browser/browser/base/content/test/general/web_video.html");
   await loadPromise;
 
   let popupShownPromise = BrowserTestUtils.waitForEvent(document, "popupshown");
 
   await BrowserTestUtils.synthesizeMouseAtCenter("#video1",
                                                  { type: "contextmenu", button: 2 },
                                                  gBrowser.selectedBrowser);
   info("context menu click on video1");
--- a/browser/base/content/test/general/browser_ssl_error_reports.js
+++ b/browser/base/content/test/general/browser_ssl_error_reports.js
@@ -59,17 +59,17 @@ async function testSendReportAutomatical
   Services.prefs.setCharPref(PREF_REPORT_URL, URL_REPORTS + suffix);
 
   // Add a tab and wait until it's loaded.
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank");
   let browser = tab.linkedBrowser;
 
   // Load the page and wait for the error report submission.
   let promiseStatus = createReportResponseStatusPromise(URL_REPORTS + suffix);
-  BrowserTestUtils.loadURI(browser, testURL);
+  browser.loadURI(testURL);
   await BrowserTestUtils.waitForErrorPage(browser);
 
   ok(!isErrorStatus(await promiseStatus),
      "SSL error report submitted successfully");
 
   // Check that we loaded the right error page.
   await checkErrorPage(browser, errorURISuffix);
 
@@ -83,17 +83,17 @@ async function testSetAutomatic(testURL,
   Services.prefs.setBoolPref(PREF_REPORT_AUTOMATIC, false);
   Services.prefs.setCharPref(PREF_REPORT_URL, URL_REPORTS + suffix);
 
   // Add a tab and wait until it's loaded.
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank");
   let browser = tab.linkedBrowser;
 
   // Load the page.
-  BrowserTestUtils.loadURI(browser, testURL);
+  browser.loadURI(testURL);
   await BrowserTestUtils.waitForErrorPage(browser);
 
   // Check that we loaded the right error page.
   await checkErrorPage(browser, errorURISuffix);
 
   let statusPromise = createReportResponseStatusPromise(URL_REPORTS + suffix);
 
   // Click the checkbox, enable automatic error reports.
@@ -124,17 +124,17 @@ async function testSetAutomatic(testURL,
 }
 
 async function testSendReportDisabled(testURL, errorURISuffix) {
   // Add a tab and wait until it's loaded.
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank");
   let browser = tab.linkedBrowser;
 
   // Load the page.
-  BrowserTestUtils.loadURI(browser, testURL);
+  browser.loadURI(testURL);
   await BrowserTestUtils.waitForErrorPage(browser);
 
   // Check that we loaded the right error page.
   await checkErrorPage(browser, errorURISuffix);
 
   // Check that the error reporting section is hidden.
   await ContentTask.spawn(browser, null, async function() {
     let section = content.document.getElementById("certificateErrorReporting");
--- a/browser/base/content/test/general/browser_star_hsts.js
+++ b/browser/base/content/test/general/browser_star_hsts.js
@@ -63,11 +63,11 @@ function promiseStarState(aValue) {
  *        The url to wait for, same as aURL if not defined.
  * @return {Promise} resolved when the event is handled.
  */
 function promiseTabLoadEvent(aTab, aURL, aFinalURL) {
   if (!aFinalURL)
     aFinalURL = aURL;
 
   info("Wait for load tab event");
-  BrowserTestUtils.loadURI(aTab.linkedBrowser, aURL);
+  aTab.linkedBrowser.loadURI(aURL);
   return BrowserTestUtils.browserLoaded(aTab.linkedBrowser, false, aFinalURL);
 }
--- a/browser/base/content/test/general/browser_tab_detach_restore.js
+++ b/browser/base/content/test/general/browser_tab_detach_restore.js
@@ -5,17 +5,17 @@ const {TabStateFlusher} = ChromeUtils.im
 add_task(async function() {
   let uri = "http://example.com/browser/browser/base/content/test/general/dummy_page.html";
 
   // Clear out the closed windows set to start
   while (SessionStore.getClosedWindowCount() > 0)
     SessionStore.forgetClosedWindow(0);
 
   let tab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, uri);
+  tab.linkedBrowser.loadURI(uri);
   await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
   await TabStateFlusher.flush(tab.linkedBrowser);
 
   let key = tab.linkedBrowser.permanentKey;
   let win = gBrowser.replaceTabWithWindow(tab);
   await new Promise(resolve => whenDelayedStartupFinished(win, resolve));
 
   is(win.gBrowser.selectedBrowser.permanentKey, key, "Should have properly copied the permanentKey");
--- a/browser/base/content/test/general/browser_tab_dragdrop.js
+++ b/browser/base/content/test/general/browser_tab_dragdrop.js
@@ -22,17 +22,17 @@ var clickTest = async function(tab) {
     utils.sendMouseEvent("mouseup", left, top, 0, 1, 0, false, 0, 0);
   });
 
   let newClicks = await getClicks(tab);
   is(newClicks, clicks + 1, "adding 1 more click on BODY");
 };
 
 function loadURI(tab, url) {
-  BrowserTestUtils.loadURI(tab.linkedBrowser, url);
+  tab.linkedBrowser.loadURI(url);
   return BrowserTestUtils.browserLoaded(tab.linkedBrowser);
 }
 
 // Creates a framescript which caches the current object value from the plugin
 // in the page. checkObjectValue below verifies that the framescript is still
 // active for the browser and that the cached value matches that from the plugin
 // in the page which tells us the plugin hasn't been reinitialized.
 async function cacheObjectValue(browser) {
--- a/browser/base/content/test/general/browser_testOpenNewRemoteTabsFromNonRemoteBrowsers.js
+++ b/browser/base/content/test/general/browser_testOpenNewRemoteTabsFromNonRemoteBrowsers.js
@@ -20,17 +20,17 @@ function frame_script() {
 
 /**
  * Takes some browser in some window, and forces that browser
  * to become non-remote, and then navigates it to a page that
  * we're not supposed to be displaying remotely. Returns a
  * Promise that resolves when the browser is no longer remote.
  */
 function prepareNonRemoteBrowser(aWindow, browser) {
-  BrowserTestUtils.loadURI(browser, NON_REMOTE_PAGE);
+  browser.loadURI(NON_REMOTE_PAGE);
   return BrowserTestUtils.browserLoaded(browser);
 }
 
 registerCleanupFunction(() => {
   Services.prefs.clearUserPref(OPEN_LOCATION_PREF);
 });
 
 /**
--- a/browser/base/content/test/general/browser_typeAheadFind.js
+++ b/browser/base/content/test/general/browser_typeAheadFind.js
@@ -1,16 +1,16 @@
 /* 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/. */
 
 add_task(async function() {
   let testWindow = await BrowserTestUtils.openNewBrowserWindow();
 
-  BrowserTestUtils.loadURI(testWindow.gBrowser, "data:text/html,<h1>A Page</h1>");
+  testWindow.gBrowser.loadURI("data:text/html,<h1>A Page</h1>");
   await BrowserTestUtils.browserLoaded(testWindow.gBrowser.selectedBrowser);
 
   await SimpleTest.promiseFocus(testWindow.gBrowser.selectedBrowser);
 
   ok(!testWindow.gFindBarInitialized, "find bar is not initialized");
 
   let findBarOpenPromise = promiseWaitForEvent(testWindow.gBrowser, "findbaropen");
   EventUtils.synthesizeKey("/", {}, testWindow);
--- a/browser/base/content/test/general/browser_unknownContentType_title.js
+++ b/browser/base/content/test/general/browser_unknownContentType_title.js
@@ -16,17 +16,17 @@ function waitForNewWindow() {
 
 add_task(async function() {
   let tab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, url);
   let browser = tab.linkedBrowser;
   await promiseTabLoaded(gBrowser.selectedTab);
 
   is(gBrowser.contentTitle, "Test Page", "Should have the right title.");
 
-  BrowserTestUtils.loadURI(browser, unknown_url);
+  browser.loadURI(unknown_url);
   let win = await waitForNewWindow();
   is(win.location, "chrome://mozapps/content/downloads/unknownContentType.xul",
      "Should have seen the unknown content dialog.");
   is(gBrowser.contentTitle, "Test Page", "Should still have the right title.");
 
   win.close();
   await promiseWaitForFocus(window);
   gBrowser.removeCurrentTab();
--- a/browser/base/content/test/general/head.js
+++ b/browser/base/content/test/general/head.js
@@ -298,17 +298,17 @@ var FullZoomHelper = {
       }, true);
 
       this.waitForLocationChange().then(function() {
         didZoom = true;
         if (didLoad)
           resolve();
       });
 
-      BrowserTestUtils.loadURI(tab.linkedBrowser, url);
+      tab.linkedBrowser.loadURI(url);
     });
   },
 
   zoomTest: function zoomTest(tab, val, msg) {
     is(ZoomManager.getZoomForBrowser(tab.linkedBrowser), val, msg);
   },
 
   enlarge: function enlarge() {
--- a/browser/base/content/test/pageinfo/browser_pageinfo_firstPartyIsolation.js
+++ b/browser/base/content/test/pageinfo/browser_pageinfo_firstPartyIsolation.js
@@ -69,17 +69,17 @@ async function test() {
   Services.prefs.setBoolPref("privacy.firstparty.isolate", true);
   registerCleanupFunction(function() {
     Services.prefs.clearUserPref("privacy.firstparty.isolate");
   });
 
   let url = "https://example.com/browser/browser/base/content/test/pageinfo/image.html";
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   let loadPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, url);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, url);
+  gBrowser.selectedBrowser.loadURI(url);
   await loadPromise;
 
   // Pass a dummy imageElement, if there isn't an imageElement, pageInfo.js
   // will do a preview, however this sometimes will cause intermittent failures,
   // see bug 1403365.
   let pageInfo = BrowserPageInfo(url, "mediaTab", {});
   info("waitForEvent pageInfo");
   await waitForEvent(pageInfo, "load");
--- a/browser/base/content/test/pageinfo/browser_pageinfo_image_info.js
+++ b/browser/base/content/test/pageinfo/browser_pageinfo_image_info.js
@@ -41,10 +41,10 @@ function test() {
           pageInfo.close();
           gBrowser.removeCurrentTab();
           finish();
         });
       });
     }, {capture: true, once: true});
   });
 
-  BrowserTestUtils.loadURI(gBrowser, URI);
+  gBrowser.loadURI(URI);
 }
--- a/browser/base/content/test/pageinfo/browser_pageinfo_images.js
+++ b/browser/base/content/test/pageinfo/browser_pageinfo_images.js
@@ -23,17 +23,17 @@ function test() {
           pageInfo.close();
           gBrowser.removeCurrentTab();
           finish();
         });
       });
     }, {capture: true, once: true});
   });
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser,
+  gBrowser.selectedBrowser.loadURI(
     "data:text/html," +
     "<html>" +
     "  <head>" +
     "    <title>Test for media tab</title>" +
     "    <link rel='shortcut icon' href='file:///dummy_icon.ico'>" + // Icon
     "  </head>" +
     "  <body style='background-image:url(about:logo?a);'>" + // Background
     "    <img src='file:///dummy_image.gif'>" + // Image
--- a/browser/base/content/test/pageinfo/browser_pageinfo_svg_image.js
+++ b/browser/base/content/test/pageinfo/browser_pageinfo_svg_image.js
@@ -30,10 +30,10 @@ function test() {
           pageInfo.close();
           gBrowser.removeCurrentTab();
           finish();
         });
       });
     }, {capture: true, once: true});
   });
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, URI);
+  gBrowser.selectedBrowser.loadURI(URI);
 }
--- a/browser/base/content/test/plugins/browser_pluginCrashReportNonDeterminism.js
+++ b/browser/base/content/test/plugins/browser_pluginCrashReportNonDeterminism.js
@@ -131,17 +131,17 @@ add_task(async function testChromeHearsP
   // Setup the crash observer promise
   crashDeferred = PromiseUtils.defer();
 
   // Open a remote window so that we can run this test even if e10s is not
   // enabled by default.
   let win = await BrowserTestUtils.openNewBrowserWindow({remote: true});
   let browser = win.gBrowser.selectedBrowser;
 
-  BrowserTestUtils.loadURI(browser, CRASH_URL);
+  browser.loadURI(CRASH_URL);
   await BrowserTestUtils.browserLoaded(browser);
 
   // In this case, we want the <object> to match the -moz-handler-crashed
   // pseudoselector, but we want it to seem still active, because the
   // content process is not yet supposed to know that the plugin has
   // crashed.
   let runID = await preparePlugin(browser,
                                   Ci.nsIObjectLoadingContent.PLUGIN_ACTIVE);
@@ -200,17 +200,17 @@ add_task(async function testContentHears
   // Setup the crash observer promise
   crashDeferred = PromiseUtils.defer();
 
   // Open a remote window so that we can run this test even if e10s is not
   // enabled by default.
   let win = await BrowserTestUtils.openNewBrowserWindow({remote: true});
   let browser = win.gBrowser.selectedBrowser;
 
-  BrowserTestUtils.loadURI(browser, CRASH_URL);
+  browser.loadURI(CRASH_URL);
   await BrowserTestUtils.browserLoaded(browser);
 
   // In this case, we want the <object> to match the -moz-handler-crashed
   // pseudoselector, and we want the plugin to seem crashed, since the
   // content process in this case has heard about the crash first.
   let runID = await preparePlugin(browser,
                                   Ci.nsIObjectLoadingContent.PLUGIN_CRASHED);
 
--- a/browser/base/content/test/popupNotifications/head.js
+++ b/browser/base/content/test/popupNotifications/head.js
@@ -31,17 +31,17 @@ async function waitForWindowReadyForPopu
  * @return {Promise} resolved when the event is handled.
  * @resolves to the received event
  * @rejects if a valid load event is not received within a meaningful interval
  */
 function promiseTabLoadEvent(tab, url) {
   let browser = tab.linkedBrowser;
 
   if (url) {
-    BrowserTestUtils.loadURI(browser, url);
+    browser.loadURI(url);
   }
 
   return BrowserTestUtils.browserLoaded(browser, false, url);
 }
 
 const PREF_SECURITY_DELAY_INITIAL = Services.prefs.getIntPref("security.notification_enable_delay");
 
 // Tests that call setup() should have a `tests` array defined for the actual
--- a/browser/base/content/test/siteIdentity/browser_check_identity_state.js
+++ b/browser/base/content/test/siteIdentity/browser_check_identity_state.js
@@ -270,17 +270,17 @@ add_task(async function test_resource_ur
 
 async function noCertErrorTest(secureCheck) {
   let oldTab = gBrowser.selectedTab;
   await SpecialPowers.pushPrefEnv({set: [[INSECURE_ICON_PREF, secureCheck]]});
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
 
   let promise = BrowserTestUtils.waitForErrorPage(gBrowser.selectedBrowser);
-  BrowserTestUtils.loadURI(gBrowser, "https://nocert.example.com/");
+  gBrowser.loadURI("https://nocert.example.com/");
   await promise;
   is(getIdentityMode(), "unknownIdentity", "Identity should be unknown");
   is(getConnectionState(), "not-secure", "Connection should be file");
 
   gBrowser.selectedTab = oldTab;
   is(getIdentityMode(), "unknownIdentity", "Identity should be unknown");
 
   gBrowser.selectedTab = newTab;
--- a/browser/base/content/test/siteIdentity/browser_csp_block_all_mixedcontent.js
+++ b/browser/base/content/test/siteIdentity/browser_csp_block_all_mixedcontent.js
@@ -35,17 +35,17 @@ function runTests() {
   var newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   gTestBrowser = gBrowser.selectedBrowser;
   newTab.linkedBrowser.stop();
 
   // Starting the test
   var url = PRE_PATH + "file_csp_block_all_mixedcontent.html";
   BrowserTestUtils.browserLoaded(gTestBrowser, false, url).then(verifyUInotDegraded);
-  BrowserTestUtils.loadURI(gTestBrowser, url);
+  gTestBrowser.loadURI(url);
 }
 
 // ------------------------------------------------------
 function test() {
   // Performing async calls, e.g. 'onload', we have to wait till all of them finished
   waitForExplicitFinish();
 
   SpecialPowers.pushPrefEnv(
--- a/browser/base/content/test/tabs/browser_abandonment_telemetry.js
+++ b/browser/base/content/test/tabs/browser_abandonment_telemetry.js
@@ -72,17 +72,17 @@ const PROBE_TESTS = [
 
   // Test going back to a previous page
   {
     name: "Going back to a previous page",
 
     category: "back",
 
     async prepare(browser) {
-      BrowserTestUtils.loadURI(browser, PAGE_2);
+      browser.loadURI(PAGE_2);
       await BrowserTestUtils.browserLoaded(browser);
     },
 
     async doAction(browser) {
       let pageShow =
         BrowserTestUtils.waitForContentEvent(browser, "pageshow");
       document.getElementById("Browser:Back").doCommand();
       await pageShow;
@@ -91,17 +91,17 @@ const PROBE_TESTS = [
 
   // Test going forward to a previous page
   {
     name: "Going forward to the next page",
 
     category: "forward",
 
     async prepare(browser) {
-      BrowserTestUtils.loadURI(browser, PAGE_2);
+      browser.loadURI(PAGE_2);
       await BrowserTestUtils.browserLoaded(browser);
       let pageShow =
         BrowserTestUtils.waitForContentEvent(browser, "pageshow");
       browser.goBack();
       await pageShow;
     },
 
     async doAction(browser) {
@@ -114,19 +114,19 @@ const PROBE_TESTS = [
 
   // Test going backwards more than one page back via gotoIndex
   {
     name: "Going backward to a previous page via gotoIndex",
 
     category: "historyNavigation",
 
     async prepare(browser) {
-      BrowserTestUtils.loadURI(browser, PAGE_2);
+      browser.loadURI(PAGE_2);
       await BrowserTestUtils.browserLoaded(browser);
-      BrowserTestUtils.loadURI(browser, "http://example.com");
+      browser.loadURI("http://example.com");
       await BrowserTestUtils.browserLoaded(browser);
       await TabStateFlusher.flush(browser);
     },
 
     async doAction(browser) {
       let pageShow =
         BrowserTestUtils.waitForContentEvent(browser, "pageshow");
       synthesizeHistoryNavigationToIndex(0);
@@ -136,19 +136,19 @@ const PROBE_TESTS = [
 
   // Test going forwards more than one page back via gotoIndex
   {
     name: "Going forward to a previous page via gotoIndex",
 
     category: "historyNavigation",
 
     async prepare(browser) {
-      BrowserTestUtils.loadURI(browser, PAGE_2);
+      browser.loadURI(PAGE_2);
       await BrowserTestUtils.browserLoaded(browser);
-      BrowserTestUtils.loadURI(browser, "http://example.com");
+      browser.loadURI("http://example.com");
       await BrowserTestUtils.browserLoaded(browser);
       let pageShow =
         BrowserTestUtils.waitForContentEvent(browser, "pageshow");
       browser.gotoIndex(0);
       await pageShow;
       await TabStateFlusher.flush(browser);
     },
 
--- a/browser/base/content/test/tabs/browser_allow_process_switches_despite_related_browser.js
+++ b/browser/base/content/test/tabs/browser_allow_process_switches_despite_related_browser.js
@@ -21,13 +21,13 @@ add_task(async function() {
 
   let dummyPage = getChromeDir(getResolvedURI(gTestPath));
   dummyPage.append(DUMMY_FILE);
   const uriString = Services.io.newFileURI(dummyPage).spec;
 
   let viewSourceBrowser = viewSourceTab.linkedBrowser;
   let promiseLoad =
     BrowserTestUtils.browserLoaded(viewSourceBrowser, false, uriString);
-  BrowserTestUtils.loadURI(viewSourceBrowser, uriString);
+  viewSourceBrowser.loadURI(uriString);
   let href = await promiseLoad;
   is(href, uriString,
     "Check file:// URI loads in a browser that was previously for view-source");
 });
--- a/browser/base/content/test/tabs/browser_audioTabIcon.js
+++ b/browser/base/content/test/tabs/browser_audioTabIcon.js
@@ -364,17 +364,17 @@ async function test_cross_process_load()
     //   Start playback and wait for it to finish.
     await play(tab);
 
     let soundPlayingStoppedPromise = BrowserTestUtils.waitForEvent(tab, "TabAttrModified", false,
       event => event.detail.changed.includes("soundplaying")
     );
 
     // Go to a different process.
-    BrowserTestUtils.loadURI(browser, "about:mozilla");
+    browser.loadURI("about:mozilla");
     await BrowserTestUtils.browserLoaded(browser);
 
     await soundPlayingStoppedPromise;
 
     ok(!tab.hasAttribute("soundplaying"), "Tab should not be playing sound any more");
     ok(!tab.soundPlaying, "Tab should not be playing sound any more");
   }
 
--- a/browser/base/content/test/tabs/browser_contextmenu_openlink_after_tabnavigated.js
+++ b/browser/base/content/test/tabs/browser_contextmenu_openlink_after_tabnavigated.js
@@ -12,17 +12,17 @@ add_task(async function test_contextmenu
   await BrowserTestUtils.synthesizeMouse("a", 0, 0, {
     type: "contextmenu",
     button: 2,
   }, gBrowser.selectedBrowser);
   await awaitPopupShown;
   info("Popup Shown");
 
   info("Navigate the tab with the opened context menu");
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank");
+  gBrowser.selectedBrowser.loadURI("about:blank");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   let awaitNewTabOpen = BrowserTestUtils.waitForNewTab(gBrowser, "http://example.com/");
 
   info("Click the 'open link in new tab' menu item");
   let openLinkMenuItem = contextMenu.querySelector("#context-openlinkintab");
   openLinkMenuItem.click();
 
--- a/browser/base/content/test/tabs/browser_new_web_tab_in_file_process_pref.js
+++ b/browser/base/content/test/tabs/browser_new_web_tab_in_file_process_pref.js
@@ -57,17 +57,17 @@ add_task(async function() {
     let promiseLoad = BrowserTestUtils.browserLoaded(httpBrowser, false, TEST_HTTP);
     document.getElementById("reload-button").doCommand();
     await promiseLoad;
     await CheckBrowserInPid(httpBrowser, filePid,
       "Check that http tab still in file content process after reload.");
 
     // Check that same-origin load doesn't break the affinity.
     promiseLoad = BrowserTestUtils.browserLoaded(httpBrowser, false, TEST_HTTP + "foo");
-    BrowserTestUtils.loadURI(httpBrowser, TEST_HTTP + "foo");
+    httpBrowser.loadURI(TEST_HTTP + "foo");
     await promiseLoad;
     await CheckBrowserInPid(httpBrowser, filePid,
       "Check that http tab still in file content process after same origin load.");
 
     // Check that history back doesn't break the affinity.
     let promiseLocation =
       BrowserTestUtils.waitForLocationChange(gBrowser, TEST_HTTP);
     httpBrowser.goBack();
@@ -88,33 +88,33 @@ add_task(async function() {
     promiseLocation = BrowserTestUtils.waitForLocationChange(gBrowser, TEST_HTTP);
     httpBrowser.gotoIndex(0);
     await promiseLocation;
     await CheckBrowserInPid(httpBrowser, filePid,
       "Check that http tab still in file content process after history gotoIndex.");
 
     // Check that file:// URI load doesn't break the affinity.
     promiseLoad = BrowserTestUtils.browserLoaded(httpBrowser, false, uriString);
-    BrowserTestUtils.loadURI(httpBrowser, uriString);
+    httpBrowser.loadURI(uriString);
     await promiseLoad;
     await CheckBrowserInPid(httpBrowser, filePid,
       "Check that http tab still in file content process after file:// load.");
 
     // Check that location change doesn't break the affinity.
     promiseLoad = BrowserTestUtils.browserLoaded(httpBrowser, false, TEST_HTTP);
     await ContentTask.spawn(httpBrowser, TEST_HTTP, uri => {
       content.location = uri;
     });
     await promiseLoad;
     await CheckBrowserInPid(httpBrowser, filePid,
       "Check that http tab still in file content process after location change.");
 
     // Check that cross-origin load does break the affinity.
     promiseLoad = BrowserTestUtils.browserLoaded(httpBrowser, false, TEST_CROSS_ORIGIN);
-    BrowserTestUtils.loadURI(httpBrowser, TEST_CROSS_ORIGIN);
+    httpBrowser.loadURI(TEST_CROSS_ORIGIN);
     await promiseLoad;
     await CheckBrowserNotInPid(httpBrowser, filePid,
       "Check that http tab not in file content process after cross origin load.");
     is(httpBrowser.remoteType, E10SUtils.WEB_REMOTE_TYPE,
       "Check that tab now has web remote type.");
 
     // Check that history back now remains in the web content process.
     let httpPid = await ContentTask.spawn(httpBrowser, null, () => {
--- a/browser/base/content/test/tabs/browser_opened_file_tab_navigated_to_web.js
+++ b/browser/base/content/test/tabs/browser_opened_file_tab_navigated_to_web.js
@@ -31,13 +31,13 @@ add_task(async function() {
   let openedTab = await promiseTabOpened;
   registerCleanupFunction(async function() {
     BrowserTestUtils.removeTab(openedTab);
   });
 
   let openedBrowser = openedTab.linkedBrowser;
 
   // Ensure that new file:// tab can be navigated to web content.
-  BrowserTestUtils.loadURI(openedBrowser, "http://example.org/");
+  openedBrowser.loadURI(WEB_ADDRESS);
   let href = await BrowserTestUtils.browserLoaded(openedBrowser, false, WEB_ADDRESS);
   is(href, WEB_ADDRESS,
      "Check that new file:// page has navigated successfully to web content");
 });
--- a/browser/base/content/test/tabs/browser_viewsource_of_data_URI_in_file_process.js
+++ b/browser/base/content/test/tabs/browser_viewsource_of_data_URI_in_file_process.js
@@ -15,17 +15,17 @@ add_task(async function() {
   await BrowserTestUtils.withNewTab(uriString, async function(fileBrowser) {
     let filePid = await ContentTask.spawn(fileBrowser, null, () => {
       return Services.appinfo.processID;
     });
 
     // Navigate to data URI.
     let promiseLoad = BrowserTestUtils.browserLoaded(fileBrowser, false,
                                                      DATA_URI);
-    BrowserTestUtils.loadURI(fileBrowser, DATA_URI);
+    fileBrowser.loadURI(DATA_URI);
     let href = await promiseLoad;
     is(href, DATA_URI, "Check data URI loaded.");
     let dataPid = await ContentTask.spawn(fileBrowser, null, () => {
       return Services.appinfo.processID;
     });
     is(dataPid, filePid, "Check that data URI loaded in file content process.");
 
     // Make sure we can view-source on the data URI page.
--- a/browser/base/content/test/urlbar/browser_URLBarSetURI.js
+++ b/browser/base/content/test/urlbar/browser_URLBarSetURI.js
@@ -50,17 +50,17 @@ var tests = [
         }, win);
       });
     });
   },
   function pageloaderror(next) {
     loadTabInWindow(window, function(tab) {
       // Load a new URL and then immediately stop it, to simulate a page load
       // error.
-      BrowserTestUtils.loadURI(tab.linkedBrowser, "http://test1.example.com");
+      tab.linkedBrowser.loadURI("http://test1.example.com");
       tab.linkedBrowser.stop();
       is(gURLBar.textValue, "example.com", "URL bar had user/pass stripped after load error");
       gBrowser.removeTab(tab);
       next();
     });
   },
 ];
 
--- a/browser/base/content/test/urlbar/browser_bug304198.js
+++ b/browser/base/content/test/urlbar/browser_bug304198.js
@@ -9,19 +9,19 @@ add_task(async function() {
   deletedURLTab = BrowserTestUtils.addTab(gBrowser);
   fullURLTab = BrowserTestUtils.addTab(gBrowser);
   partialURLTab = BrowserTestUtils.addTab(gBrowser);
   testURL = "http://example.org/browser/browser/base/content/test/urlbar/dummy_page.html";
 
   let loaded1 = BrowserTestUtils.browserLoaded(deletedURLTab.linkedBrowser, false, testURL);
   let loaded2 = BrowserTestUtils.browserLoaded(fullURLTab.linkedBrowser, false, testURL);
   let loaded3 = BrowserTestUtils.browserLoaded(partialURLTab.linkedBrowser, false, testURL);
-  BrowserTestUtils.loadURI(deletedURLTab.linkedBrowser, testURL);
-  BrowserTestUtils.loadURI(fullURLTab.linkedBrowser, testURL);
-  BrowserTestUtils.loadURI(partialURLTab.linkedBrowser, testURL);
+  deletedURLTab.linkedBrowser.loadURI(testURL);
+  fullURLTab.linkedBrowser.loadURI(testURL);
+  partialURLTab.linkedBrowser.loadURI(testURL);
   await Promise.all([loaded1, loaded2, loaded3]);
 
   testURL = gURLBar.trimValue(testURL);
   testPartialURL = testURL.substr(0, (testURL.length - charsToDelete));
 
   function cleanUp() {
     gBrowser.removeTab(fullURLTab);
     gBrowser.removeTab(partialURLTab);
--- a/browser/base/content/test/urlbar/browser_bug623155.js
+++ b/browser/base/content/test/urlbar/browser_bug623155.js
@@ -104,17 +104,17 @@ function delayed(aIsSelectedTab) {
   let currentURI = gBrowser.selectedBrowser.currentURI.spec;
   ok(isRedirectedURISpec(currentURI),
      "The content area is redirected. aIsSelectedTab:" + aIsSelectedTab);
   is(gURLBar.value, currentURI,
      "The URL bar shows the content URI. aIsSelectedTab:" + aIsSelectedTab);
 
   if (!aIsSelectedTab) {
     // If this was a background request, go on a foreground request.
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, REDIRECT_FROM + "#FG");
+    gBrowser.selectedBrowser.loadURI(REDIRECT_FROM + "#FG");
   } else {
     // Othrewise, nothing to do remains.
     finish();
   }
 }
 
 /* Cleanup */
 registerCleanupFunction(function() {
--- a/browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js
+++ b/browser/base/content/test/urlbar/browser_tabMatchesInAwesomebar.js
@@ -54,17 +54,17 @@ add_task(async function step_3() {
 
   await Promise.all(promises);
   await ensure_opentabs_match_db();
 });
 
 add_task(async function step_4() {
   info("Running step 4 - ensure we don't register subframes as open pages");
   let tab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, 'data:text/html,<body><iframe src=""></iframe></body>');
+  tab.linkedBrowser.loadURI('data:text/html,<body><iframe src=""></iframe></body>');
   await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
 
   await ContentTask.spawn(tab.linkedBrowser, null, async function() {
     let iframe_loaded = ContentTaskUtils.waitForEvent(content.document, "load", true);
     content.document.querySelector("iframe").src = "http://test2.example.org/";
     await iframe_loaded;
   });
 
@@ -77,17 +77,17 @@ add_task(async function step_5() {
   BrowserTestUtils.removeTab(tab);
   await ensure_opentabs_match_db();
 });
 
 add_task(async function step_6() {
   info("Running step 6 - check swapBrowsersAndCloseOther preserves registered switch-to-tab result");
   let tabToKeep = BrowserTestUtils.addTab(gBrowser);
   let tab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, "about:mozilla");
+  tab.linkedBrowser.loadURI("about:mozilla");
   await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
 
   gBrowser.updateBrowserRemoteness(tabToKeep.linkedBrowser, tab.linkedBrowser.isRemoteBrowser);
   gBrowser.swapBrowsersAndCloseOther(tabToKeep, tab);
 
   await ensure_opentabs_match_db();
 
   BrowserTestUtils.removeTab(tabToKeep);
@@ -127,17 +127,17 @@ function loadTab(tab, url) {
         Services.obs.removeObserver(observer, aTopic);
         resolve();
       },
       "uri-visit-saved"
     );
   });
 
   info("Loading page: " + url);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, url);
+  tab.linkedBrowser.loadURI(url);
   return Promise.all([ loaded, visited ]);
 }
 
 function ensure_opentabs_match_db() {
   var tabs = {};
 
   for (let browserWin of Services.wm.getEnumerator("navigator:browser")) {
     // skip closed-but-not-destroyed windows
--- a/browser/base/content/test/urlbar/browser_urlbarAboutHomeLoading.js
+++ b/browser/base/content/test/urlbar/browser_urlbarAboutHomeLoading.js
@@ -28,17 +28,17 @@ add_task(async function clearURLBarAfter
  */
 add_task(async function clearURLBarAfterParentProcessURLInExistingTab() {
   let tab = await new Promise(resolve => {
     gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
     let newTabBrowser = gBrowser.getBrowserForTab(gBrowser.selectedTab);
     newTabBrowser.addEventListener("Initialized", async function() {
       resolve(gBrowser.selectedTab);
     }, {capture: true, once: true});
-    BrowserTestUtils.loadURI(newTabBrowser, "about:preferences");
+    newTabBrowser.loadURI("about:preferences");
   });
   document.getElementById("home-button").click();
   await BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, HomePage.get());
   is(gURLBar.value, "", "URL bar should be empty");
   is(tab.linkedBrowser.userTypedValue, null, "The browser should have no recorded userTypedValue");
   BrowserTestUtils.removeTab(tab);
 });
 
--- a/browser/base/content/test/urlbar/browser_urlbarTrimURLs.js
+++ b/browser/base/content/test/urlbar/browser_urlbarTrimURLs.js
@@ -64,17 +64,17 @@ add_task(async function() {
   Services.prefs.setBoolPref(PREF_TRIMURLS, false);
 
   testVal("http://mozilla.org/");
 
   Services.prefs.setBoolPref(PREF_TRIMURLS, true);
 
   let promiseLoaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser,
                                                      false, "http://example.com/");
-  BrowserTestUtils.loadURI(gBrowser, "http://example.com/");
+  gBrowser.loadURI("http://example.com/");
   await promiseLoaded;
 
   await testCopy("example.com", "http://example.com/");
 
   SetPageProxyState("invalid");
   gURLBar.valueIsTyped = true;
   await testCopy("example.com", "example.com");
 });
--- a/browser/base/content/test/webextensions/browser_extension_sideloading.js
+++ b/browser/base/content/test/webextensions/browser_extension_sideloading.js
@@ -95,22 +95,22 @@ add_task(async function() {
     // clear out ExtensionsUI state about sideloaded extensions so
     // subsequent tests don't get confused.
     ExtensionsUI.sideloaded.clear();
     ExtensionsUI.emit("change");
   };
 
   // Navigate away from the starting page to force about:addons to load
   // in a new tab during the tests below.
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
+  gBrowser.selectedBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   registerCleanupFunction(async function() {
     // Return to about:blank when we're done
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank");
+    gBrowser.selectedBrowser.loadURI("about:blank");
     await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
   });
 
   hookExtensionsTelemetry();
 
   let changePromise = new Promise(resolve => {
     ExtensionsUI.on("change", function listener() {
       ExtensionsUI.off("change", listener);
--- a/browser/base/content/test/webextensions/browser_extension_update_background.js
+++ b/browser/base/content/test/webextensions/browser_extension_update_background.js
@@ -36,22 +36,22 @@ add_task(async function setup() {
   await SpecialPowers.pushPrefEnv({set: [
     // We don't have pre-pinned certificates for the local mochitest server
     ["extensions.install.requireBuiltInCerts", false],
     ["extensions.update.requireBuiltInCerts", false],
   ]});
 
   // Navigate away from the initial page so that about:addons always
   // opens in a new tab during tests
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
+  gBrowser.selectedBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   registerCleanupFunction(async function() {
     // Return to about:blank when we're done
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank");
+    gBrowser.selectedBrowser.loadURI("about:blank");
     await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
   });
 });
 
 hookExtensionsTelemetry();
 
 // Helper function to test background updates.
 async function backgroundUpdateTest(url, id, checkIconFn) {
--- a/browser/base/content/test/webextensions/browser_extension_update_background_noprompt.js
+++ b/browser/base/content/test/webextensions/browser_extension_update_background_noprompt.js
@@ -16,22 +16,22 @@ add_task(async function setup() {
     ["extensions.install.requireBuiltInCerts", false],
     ["extensions.update.requireBuiltInCerts", false],
     // Don't require the extensions to be signed
     ["xpinstall.signatures.required", false],
   ]});
 
   // Navigate away from the initial page so that about:addons always
   // opens in a new tab during tests
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
+  gBrowser.selectedBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   registerCleanupFunction(async function() {
     // Return to about:blank when we're done
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank");
+    gBrowser.selectedBrowser.loadURI("about:blank");
     await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
   });
 });
 
 hookExtensionsTelemetry();
 
 // Helper function to test an upgrade that should not show a prompt
 async function testNoPrompt(origUrl, id) {
--- a/browser/base/content/test/webextensions/browser_permissions_installTrigger.js
+++ b/browser/base/content/test/webextensions/browser_permissions_installTrigger.js
@@ -1,14 +1,14 @@
 "use strict";
 
 const INSTALL_PAGE = `${BASE}/file_install_extensions.html`;
 
 async function installTrigger(filename) {
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, INSTALL_PAGE);
+  gBrowser.selectedBrowser.loadURI(INSTALL_PAGE);
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   ContentTask.spawn(gBrowser.selectedBrowser, `${BASE}/${filename}`, async function(url) {
     content.wrappedJSObject.installTrigger(url);
   });
 }
 
 add_task(() => testInstallMethod(installTrigger, "installAmo"));
--- a/browser/base/content/test/webextensions/browser_permissions_mozAddonManager.js
+++ b/browser/base/content/test/webextensions/browser_permissions_mozAddonManager.js
@@ -1,14 +1,14 @@
 "use strict";
 
 const INSTALL_PAGE = `${BASE}/file_install_extensions.html`;
 
 async function installMozAM(filename) {
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, INSTALL_PAGE);
+  gBrowser.selectedBrowser.loadURI(INSTALL_PAGE);
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   await ContentTask.spawn(gBrowser.selectedBrowser, `${BASE}/${filename}`, async function(url) {
     await content.wrappedJSObject.installMozAM(url);
   });
 }
 
 add_task(() => testInstallMethod(installMozAM, "installAmo"));
--- a/browser/base/content/test/webextensions/browser_permissions_unsigned.js
+++ b/browser/base/content/test/webextensions/browser_permissions_unsigned.js
@@ -10,17 +10,17 @@ add_task(async function test_unsigned() 
   ]});
 
   let testURI = makeURI("https://example.com/");
   Services.perms.add(testURI, "install", Services.perms.ALLOW_ACTION);
   registerCleanupFunction(() => Services.perms.remove(testURI, "install"));
 
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, `${BASE}/file_install_extensions.html`);
+  gBrowser.selectedBrowser.loadURI(`${BASE}/file_install_extensions.html`);
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   ContentTask.spawn(gBrowser.selectedBrowser, `${BASE}/browser_webext_unsigned.xpi`, async function(url) {
     content.wrappedJSObject.installTrigger(url);
   });
 
   let panel = await promisePopupNotificationShown("addon-webext-permissions");
 
--- a/browser/base/content/test/webextensions/browser_update_interactive_noprompt.js
+++ b/browser/base/content/test/webextensions/browser_update_interactive_noprompt.js
@@ -14,17 +14,17 @@ add_task(async function setup() {
   ]});
 });
 
 // Helper to test that an update of a given extension does not
 // generate any permission prompts.
 async function testUpdateNoPrompt(filename, id,
                                   initialVersion = "1.0", updateVersion = "2.0") {
   // Navigate away to ensure that BrowserOpenAddonMgr() opens a new tab
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
+  gBrowser.selectedBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   // Install initial version of the test extension
   let addon = await promiseInstallAddon(`${BASE}/${filename}`);
   ok(addon, "Addon was installed");
   is(addon.version, initialVersion, "Version 1 of the addon is installed");
 
   // Go to Extensions in about:addons
--- a/browser/base/content/test/webextensions/head.js
+++ b/browser/base/content/test/webextensions/head.js
@@ -396,17 +396,17 @@ async function interactiveUpdateTest(aut
       EventUtils.synthesizeMouseAtCenter(item._updateBtn, {}, win);
     }
 
     return {promise};
   }
 
   // Navigate away from the starting page to force about:addons to load
   // in a new tab during the tests below.
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
+  gBrowser.selectedBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   // Install version 1.0 of the test extension
   let addon = await promiseInstallAddon(`${BASE}/browser_webext_update1.xpi`);
   ok(addon, "Addon was installed");
   is(addon.version, "1.0", "Version 1 of the addon is installed");
 
   let win = await BrowserOpenAddonsMgr("addons://list/extension");
--- a/browser/base/content/test/webrtc/browser_devices_get_user_media.js
+++ b/browser/base/content/test/webrtc/browser_devices_get_user_media.js
@@ -526,17 +526,17 @@ var gTests = [
   },
 },
 
 {
   desc: "'Always Allow' disabled on http pages",
   run: async function checkNoAlwaysOnHttp() {
     // Load an http page instead of the https version.
     let browser = gBrowser.selectedBrowser;
-    BrowserTestUtils.loadURI(browser, browser.documentURI.spec.replace("https://", "http://"));
+    browser.loadURI(browser.documentURI.spec.replace("https://", "http://"));
     await BrowserTestUtils.browserLoaded(browser);
 
     // Initially set both permissions to 'allow'.
     let Perms = Services.perms;
     let uri = browser.documentURI;
     Perms.add(uri, "microphone", Perms.ALLOW_ACTION);
     Perms.add(uri, "camera", Perms.ALLOW_ACTION);
 
--- a/browser/components/customizableui/test/browser_exit_background_customize_mode.js
+++ b/browser/components/customizableui/test/browser_exit_background_customize_mode.js
@@ -16,17 +16,17 @@ add_task(async function test_exit_backgr
   is(gBrowser.tabs.length, 2, "Should have 2 tabs");
 
   let custTab = gBrowser.selectedTab;
 
   let finishedCustomizing = BrowserTestUtils.waitForEvent(gNavToolbox, "aftercustomization");
   await BrowserTestUtils.switchTab(gBrowser, nonCustomizingTab);
   await finishedCustomizing;
 
-  BrowserTestUtils.loadURI(custTab.linkedBrowser, "http://example.com");
+  custTab.linkedBrowser.loadURI("http://example.com");
   await BrowserTestUtils.browserLoaded(custTab.linkedBrowser);
 
   Assert.equal(gBrowser.tabContainer.querySelector("tab[customizemode=true]"),
                null,
                "Should not have a tab marked as being the customize tab now.");
 
   await startCustomizing();
   is(gBrowser.tabs.length, 3, "Should have 3 tabs now");
--- a/browser/components/extensions/parent/ext-browser.js
+++ b/browser/components/extensions/parent/ext-browser.js
@@ -119,17 +119,16 @@ global.waitForTabLoaded = (tab, url) => 
     });
   });
 };
 
 global.replaceUrlInTab = (gBrowser, tab, url) => {
   let loaded = waitForTabLoaded(tab, url);
   gBrowser.loadURI(url, {
     flags: Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY,
-    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), // This is safe from this functions usage however it would be preferred not to dot his.
   });
   return loaded;
 };
 
 /**
  * Manages tab-specific and window-specific context data, and dispatches
  * tab select events across all windows.
  */
--- a/browser/components/feeds/test/browser/browser_registerProtocolHandler_notification.js
+++ b/browser/components/feeds/test/browser/browser_registerProtocolHandler_notification.js
@@ -2,17 +2,17 @@
  * 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/. */
 
 const TEST_PATH = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "https://example.com");
 add_task(async function() {
   let notificationValue = "Protocol Registration: web+testprotocol";
   let testURI = TEST_PATH + "browser_registerProtocolHandler_notification.html";
 
-  BrowserTestUtils.loadURI(window.gBrowser.selectedBrowser, testURI);
+  window.gBrowser.selectedBrowser.loadURI(testURI);
   await TestUtils.waitForCondition(function() {
     // Do not start until the notification is up
     let notificationBox = window.gBrowser.getNotificationBox();
     let notification = notificationBox.getNotificationWithValue(notificationValue);
     return notification;
   }, "Still can not get notification after retrying 100 times.", 100, 100);
 
   let notificationBox = window.gBrowser.getNotificationBox();
--- a/browser/components/newtab/lib/SnippetsFeed.jsm
+++ b/browser/components/newtab/lib/SnippetsFeed.jsm
@@ -185,19 +185,17 @@ this.SnippetsFeed = class SnippetsFeed {
     Services.prefs.removeObserver(FXA_USERNAME_PREF, this._refresh);
     Services.obs.removeObserver(this, SEARCH_ENGINE_OBSERVER_TOPIC);
     this.store.dispatch(ac.BroadcastToContent({type: at.SNIPPETS_RESET}));
   }
 
   async showFirefoxAccounts(browser) {
     const url = await FxAccounts.config.promiseSignUpURI("snippets");
     // We want to replace the current tab.
-    browser.loadURI(url, {
-      triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-    });
+    browser.loadURI(url);
   }
 
   async onAction(action) {
     switch (action.type) {
       case at.INIT:
         this.init();
         break;
       case at.UNINIT:
--- a/browser/components/originattributes/test/browser/browser_firstPartyIsolation_aboutPages.js
+++ b/browser/components/originattributes/test/browser/browser_firstPartyIsolation_aboutPages.js
@@ -101,17 +101,17 @@ add_task(async function test_remote_wind
  */
 add_task(async function test_remote_window_open_data_uri2() {
   let win = await BrowserTestUtils.openNewBrowserWindow({ remote: true });
   let browser = win.gBrowser.selectedBrowser;
 
   // The iframe test2.html will fetch test2.js, which will have cookies.
   const DATA_URI = `data:text/html,
                     <iframe id="iframe1" src="http://mochi.test:8888/browser/browser/components/originattributes/test/browser/test2.html"></iframe>`;
-  BrowserTestUtils.loadURI(browser, DATA_URI);
+  browser.loadURI(DATA_URI);
   await BrowserTestUtils.browserLoaded(browser, true);
 
   await ContentTask.spawn(browser, {}, async function() {
     info("origin " + content.document.nodePrincipal.origin);
 
     let iframe = content.document.getElementById("iframe1");
     info("iframe principal: " + iframe.contentDocument.nodePrincipal.origin);
 
--- a/browser/components/originattributes/test/browser/browser_firstPartyIsolation_blobURI.js
+++ b/browser/components/originattributes/test/browser/browser_firstPartyIsolation_blobURI.js
@@ -17,17 +17,17 @@ add_task(async function setup() {
 add_task(async function test_blob_uri_inherit_oa_from_content() {
   const BASE_URI = "http://mochi.test:8888/browser/browser/components/" +
                    "originattributes/test/browser/dummy.html";
   const BASE_DOMAIN = "mochi.test";
 
   // First we load a normal web page.
   let win = await BrowserTestUtils.openNewBrowserWindow({ remote: true });
   let browser = win.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(browser, BASE_URI);
+  browser.loadURI(BASE_URI);
   await BrowserTestUtils.browserLoaded(browser);
 
   // Then navigate to the blob: URI.
   await ContentTask.spawn(browser, { firstPartyDomain: BASE_DOMAIN }, async function(attrs) {
     info("origin " + content.document.nodePrincipal.origin);
     Assert.equal(content.document.nodePrincipal.originAttributes.firstPartyDomain,
                  attrs.firstPartyDomain, "The document should have firstPartyDomain");
 
--- a/browser/components/originattributes/test/browser/browser_firstPartyIsolation_js_uri.js
+++ b/browser/components/originattributes/test/browser/browser_firstPartyIsolation_js_uri.js
@@ -7,17 +7,17 @@ add_task(async function setup() {
 });
 
 add_task(async function test_remote_window_open_js_uri() {
   let win = await BrowserTestUtils.openNewBrowserWindow({ remote: true });
   let browser = win.gBrowser.selectedBrowser;
 
   Assert.ok(browser.isRemoteBrowser, "should be a remote browser");
 
-  BrowserTestUtils.loadURI(browser, `javascript:1;`);
+  browser.loadURI(`javascript:1;`);
   await ContentTask.spawn(browser, {}, async function() {
     info("origin " + content.document.nodePrincipal.origin);
 
     Assert.ok(content.document.nodePrincipal.isNullPrincipal,
               "The principal of remote javascript: should be a NullPrincipal.");
 
     let str = content.document.nodePrincipal.originNoSuffix;
     let expectDomain = str.substring("moz-nullprincipal:{".length, str.length - 1) + ".mozilla";
@@ -30,17 +30,17 @@ add_task(async function test_remote_wind
 });
 
 add_task(async function test_remote_window_open_js_uri2() {
   let win = await BrowserTestUtils.openNewBrowserWindow({ remote: true });
   let browser = win.gBrowser.selectedBrowser;
 
   Assert.ok(browser.isRemoteBrowser, "should be a remote browser");
 
-  BrowserTestUtils.loadURI(browser, `javascript:
+  browser.loadURI(`javascript:
     let iframe = document.createElement("iframe");
     iframe.src = "http://example.com";
     iframe.id = "iframe1";
     document.body.appendChild(iframe);
     alert("connect to http://example.com");
  `);
 
   await BrowserTestUtils.browserLoaded(browser, true, function(url) {
--- a/browser/components/preferences/in-content/subdialogs.js
+++ b/browser/components/preferences/in-content/subdialogs.js
@@ -154,19 +154,17 @@ SubDialog.prototype = {
           this._frame.removeEventListener("load", onBlankLoad);
           // We're now officially done closing, so update the state to reflect that.
           this._openedURL = null;
           this._isClosing = false;
           this._resolveClosePromise();
         }
       };
       this._frame.addEventListener("load", onBlankLoad);
-      this._frame.loadURI("about:blank", {
-        triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-      });
+      this._frame.loadURI("about:blank");
     }, 0);
   },
 
   handleEvent(aEvent) {
     switch (aEvent.type) {
       case "click":
         // Close the dialog if the user clicked the overlay background, just
         // like when the user presses the ESC key (case "command" below).
--- a/browser/components/preferences/in-content/sync.js
+++ b/browser/components/preferences/in-content/sync.js
@@ -353,19 +353,17 @@ var gSyncPane = {
     win.switchToTabHavingURI(url, true, options);
   },
 
   // Replace the current tab with the specified URL.
   replaceTabWithUrl(url) {
     // Get the <browser> element hosting us.
     let browser = window.docShell.chromeEventHandler;
     // And tell it to load our URL.
-    browser.loadURI(url, {
-      triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-    });
+    browser.loadURI(url);
   },
 
   async signIn() {
     const url = await FxAccounts.config.promiseSignInURI(this._getEntryPoint());
     this.replaceTabWithUrl(url);
   },
 
   async reSignIn() {
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_blobUrl.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_blobUrl.js
@@ -5,32 +5,32 @@
 
 const BASE_URI = "http://mochi.test:8888/browser/browser/components/"
   + "privatebrowsing/test/browser/empty_file.html";
 
 add_task(async function test() {
   info("Creating a normal window...");
   let win = await BrowserTestUtils.openNewBrowserWindow();
   let tab = win.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(tab, BASE_URI);
+  tab.loadURI(BASE_URI);
   await BrowserTestUtils.browserLoaded(tab);
 
   let blobURL;
 
   info("Creating a blob URL...");
   await ContentTask.spawn(tab, null, function() {
     return Promise.resolve(content.window.URL.createObjectURL(new content.window.Blob([123])));
   }).then(newURL => { blobURL = newURL; });
 
   info("Blob URL: " + blobURL);
 
   info("Creating a private window...");
   let privateWin = await BrowserTestUtils.openNewBrowserWindow({ private: true });
   let privateTab = privateWin.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(privateTab, BASE_URI);
+  privateTab.loadURI(BASE_URI);
   await BrowserTestUtils.browserLoaded(privateTab);
 
   await ContentTask.spawn(privateTab, blobURL, function(url) {
     return new Promise(resolve => {
       var xhr = new content.window.XMLHttpRequest();
       xhr.onerror = function() { resolve("SendErrored"); };
       xhr.onload = function() { resolve("SendLoaded"); };
       xhr.open("GET", url);
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_concurrent.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_concurrent.js
@@ -22,74 +22,74 @@ add_task(async function test() {
 
   function getElts(browser) {
     return browser.contentTitle.split("|");
   }
 
   // Step 1
   let non_private_browser = gBrowser.selectedBrowser;
   let url = prefix + "?action=set&name=test&value=value&initial=true";
-  BrowserTestUtils.loadURI(non_private_browser, url);
+  non_private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(non_private_browser, false, url);
 
 
   // Step 2
   let private_window = await BrowserTestUtils.openNewBrowserWindow({ private: true });
   let private_browser = private_window.getBrowser().selectedBrowser;
   url = prefix + "?action=set&name=test2&value=value2";
-  BrowserTestUtils.loadURI(private_browser, url);
+  private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(private_browser, false, url);
 
 
   // Step 3
   url = prefix + "?action=get&name=test2";
-  BrowserTestUtils.loadURI(non_private_browser, url);
+  non_private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(non_private_browser, false, url);
   let elts = await getElts(non_private_browser);
   isnot(elts[0], "value2", "public window shouldn't see private storage");
   is(elts[1], "1", "public window should only see public items");
 
 
   // Step 4
   url = prefix + "?action=get&name=test";
-  BrowserTestUtils.loadURI(private_browser, url);
+  private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(private_browser, false, url);
   elts = await getElts(private_browser);
   isnot(elts[0], "value", "private window shouldn't see public storage");
   is(elts[1], "1", "private window should only see private items");
 
 
   // Reopen the private window again, without privateBrowsing, which should clear the
   // the private storage.
   private_window.close();
   private_window = await BrowserTestUtils.openNewBrowserWindow({ private: false });
   private_browser = null;
   await new Promise(resolve => Cu.schedulePreciseGC(resolve));
   private_browser = private_window.getBrowser().selectedBrowser;
 
   url = prefix + "?action=get&name=test2";
-  BrowserTestUtils.loadURI(private_browser, url);
+  private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(private_browser, false, url);
   elts = await getElts(private_browser);
   isnot(elts[0], "value2", "public window shouldn't see cleared private storage");
   is(elts[1], "1", "public window should only see public items");
 
 
   // Making it private again should clear the storage and it shouldn't
   // be able to see the old private storage as well.
   private_window.close();
   private_window = await BrowserTestUtils.openNewBrowserWindow({ private: true });
   private_browser = null;
   await new Promise(resolve => Cu.schedulePreciseGC(resolve));
   private_browser = private_window.getBrowser().selectedBrowser;
 
   url = prefix + "?action=set&name=test3&value=value3";
-  BrowserTestUtils.loadURI(private_browser, url);
+  private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(private_browser, false, url);
   elts = await getElts(private_browser);
   is(elts[1], "1", "private window should only see new private items");
 
   // Cleanup.
   url = prefix + "?final=true";
-  BrowserTestUtils.loadURI(non_private_browser, url);
+  non_private_browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(non_private_browser, false, url);
   private_window.close();
 });
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_crh.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_crh.js
@@ -15,26 +15,26 @@ add_task(async function test() {
     is(crhCommand.hasAttribute("disabled"), aPrivateMode,
       "Clear Recent History command should be disabled according to the private browsing mode");
   }
 
   let testURI = "http://mochi.test:8888/";
 
   let privateWin = await BrowserTestUtils.openNewBrowserWindow({private: true});
   let privateBrowser = privateWin.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(privateBrowser, testURI);
+  privateBrowser.loadURI(testURI);
   await BrowserTestUtils.browserLoaded(privateBrowser);
 
   info("Test on private window");
   checkDisableOption(true, privateWin);
 
 
   let win = await BrowserTestUtils.openNewBrowserWindow();
   let browser = win.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(browser, testURI);
+  browser.loadURI(testURI);
   await BrowserTestUtils.browserLoaded(browser);
 
   info("Test on public window");
   checkDisableOption(false, win);
 
 
   // Cleanup
   await BrowserTestUtils.closeWindow(privateWin);
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_geoprompt.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_geoprompt.js
@@ -31,24 +31,24 @@ add_task(async function test() {
       notification.remove();
 
       aWindow.gBrowser.removeCurrentTab();
     })();
   }
 
   let win = await BrowserTestUtils.openNewBrowserWindow();
   let browser = win.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(browser, testPageURL);
+  browser.loadURI(testPageURL);
   await BrowserTestUtils.browserLoaded(browser);
 
   await checkGeolocation(false, win);
 
   let privateWin = await BrowserTestUtils.openNewBrowserWindow({private: true});
   let privateBrowser = privateWin.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(privateBrowser, testPageURL);
+  privateBrowser.loadURI(testPageURL);
   await BrowserTestUtils.browserLoaded(privateBrowser);
 
   await checkGeolocation(true, privateWin);
 
   // Cleanup
   await BrowserTestUtils.closeWindow(win);
   await BrowserTestUtils.closeWindow(privateWin);
 });
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_localStorage.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_localStorage.js
@@ -8,17 +8,18 @@
                 "browser_privatebrowsing_localStorage_page1.html";
 
   let win = await BrowserTestUtils.openNewBrowserWindow({private: true});
 
   win.gBrowser.selectedTab = BrowserTestUtils.addTab(win.gBrowser, page1);
   let browser = win.gBrowser.selectedBrowser;
   await BrowserTestUtils.browserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, "http://mochi.test:8888/browser/browser/components/privatebrowsing/test/browser/" +
+  browser.loadURI(
+    "http://mochi.test:8888/browser/browser/components/privatebrowsing/test/browser/" +
     "browser_privatebrowsing_localStorage_page2.html");
   await BrowserTestUtils.browserLoaded(browser);
 
   is(browser.contentTitle, "2", "localStorage should contain 2 items");
 
   // Cleanup
   await BrowserTestUtils.closeWindow(win);
  });
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js
@@ -41,17 +41,17 @@ add_task(async function test() {
         checkMenuItem(function() {
           aCallback();
         });
         notification.querySelector("button").doCommand();
       });
 
     }, {once: true});
 
-    BrowserTestUtils.loadURI(aWindow.gBrowser.selectedBrowser, testURI);
+    aWindow.gBrowser.selectedBrowser.loadURI(testURI);
   }
 
   let win1 = await BrowserTestUtils.openNewBrowserWindow();
   await new Promise(resolve => waitForFocus(resolve, win1));
   await new Promise(resolve => testPopupBlockerMenuItem(false, win1, resolve));
 
   let win2 = await BrowserTestUtils.openNewBrowserWindow({private: true});
   await new Promise(resolve => waitForFocus(resolve, win2));
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_ui.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_ui.js
@@ -27,17 +27,17 @@ function test() {
         "The Private Browsing menu item should read \"New Private Window\"");
       is(PrivateBrowsingUtils.isWindowPrivate(aWindow), aIsPrivateMode,
         "PrivateBrowsingUtils should report the correct per-window private browsing status (privateBrowsing should be " +
         aIsPrivateMode + ")");
 
       aCallback();
     });
 
-    BrowserTestUtils.loadURI(aWindow.gBrowser.selectedBrowser, testURI);
+    aWindow.gBrowser.selectedBrowser.loadURI(testURI);
   }
 
   function openPrivateBrowsingModeByUI(aWindow, aCallback) {
     Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
       aSubject.addEventListener("load", function() {
         Services.obs.removeObserver(observer, "domwindowopened");
           windowsToClose.push(aSubject);
           aCallback(aSubject);
--- a/browser/components/safebrowsing/content/test/browser_bug400731.js
+++ b/browser/components/safebrowsing/content/test/browser_bug400731.js
@@ -35,28 +35,28 @@ function test() {
 
 function testMalware(data) {
   ok(data.buttonPresent, "Ignore warning link should be present for malware");
 
   Services.prefs.setBoolPref("browser.safebrowsing.allowOverride", false);
 
   // Now launch the unwanted software test
   onDOMContentLoaded(testUnwanted);
-  BrowserTestUtils.loadURI(gBrowser, "http://www.itisatrap.org/firefox/unwanted.html");
+  gBrowser.loadURI("http://www.itisatrap.org/firefox/unwanted.html");
 }
 
 function testUnwanted(data) {
   // Confirm that "Ignore this warning" is visible - bug 422410
   ok(!data.buttonPresent, "Ignore warning link should be missing for unwanted software");
 
   Services.prefs.setBoolPref("browser.safebrowsing.allowOverride", true);
 
   // Now launch the phishing test
   onDOMContentLoaded(testPhishing);
-  BrowserTestUtils.loadURI(gBrowser, "http://www.itisatrap.org/firefox/its-a-trap.html");
+  gBrowser.loadURI("http://www.itisatrap.org/firefox/its-a-trap.html");
 }
 
 function testPhishing(data) {
   ok(data.buttonPresent, "Ignore warning link should be present for phishing");
 
   gBrowser.removeCurrentTab();
   finish();
 }
--- a/browser/components/safebrowsing/content/test/browser_bug415846.js
+++ b/browser/components/safebrowsing/content/test/browser_bug415846.js
@@ -27,17 +27,17 @@ function check_menu_at_page(url, testFn)
     gBrowser,
     url: "about:blank",
   }, async function(browser) {
     // We don't get load events when the DocShell redirects to error
     // pages, but we do get DOMContentLoaded, so we'll wait for that.
     let dclPromise = ContentTask.spawn(browser, null, async function() {
       await ContentTaskUtils.waitForEvent(this, "DOMContentLoaded", false);
     });
-    BrowserTestUtils.loadURI(browser, url);
+    browser.loadURI(url);
     await dclPromise;
 
     let menu = document.getElementById("menu_HelpPopup");
     ok(menu, "Help menu should exist");
 
     let reportMenu =
       document.getElementById("menu_HelpPopup_reportPhishingtoolmenu");
     ok(reportMenu, "Report phishing menu item should exist");
--- a/browser/components/search/test/browser_426329.js
+++ b/browser/components/search/test/browser_426329.js
@@ -196,19 +196,17 @@ add_task(async function testShiftMiddleC
   let newTab = await newTabPromise;
 
   is(gBrowser.tabs.length, preTabNo + 1, "Shift+MiddleClick added new tab");
   is(newTab.linkedBrowser.currentURI.spec, url, "testShiftMiddleClick opened correct search page");
 });
 
 add_task(async function testRightClick() {
   preTabNo = gBrowser.tabs.length;
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank", {
-    triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-  });
+  gBrowser.selectedBrowser.loadURI("about:blank");
   await new Promise(resolve => {
     setTimeout(function() {
       is(gBrowser.tabs.length, preTabNo, "RightClick did not open new tab");
       is(gBrowser.currentURI.spec, "about:blank", "RightClick did nothing");
       resolve();
     }, 5000);
     simulateClick({ button: 2 }, searchButton);
   });
@@ -252,19 +250,17 @@ add_task(async function testClearHistory
   ok(count == 0, "History cleared");
 });
 
 add_task(async function asyncCleanup() {
   searchBar.value = "";
   while (gBrowser.tabs.length != 1) {
     gBrowser.removeTab(gBrowser.tabs[0], {animate: false});
   }
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank", {
-    triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-  });
+  gBrowser.selectedBrowser.loadURI("about:blank");
   await promiseRemoveEngine();
 });
 
 function promiseObserver(topic) {
   return new Promise(resolve => {
     let obs = (aSubject, aTopic, aData) => {
       Services.obs.removeObserver(obs, aTopic);
       resolve(aSubject);
--- a/browser/components/search/test/browser_abouthome_behavior.js
+++ b/browser/components/search/test/browser_abouthome_behavior.js
@@ -23,17 +23,17 @@ function test() {
     let engine = Services.search.getEngineByName(engine_name);
     ok(engine, engine_name + " is installed");
 
     Services.search.currentEngine = engine;
 
     // load about:home, but remove the listener first so it doesn't
     // get in the way
     gBrowser.removeProgressListener(listener);
-    BrowserTestUtils.loadURI(gBrowser, "about:home");
+    gBrowser.loadURI("about:home");
     info("Waiting for about:home load");
     tab.linkedBrowser.addEventListener("load", function load(event) {
       if (event.originalTarget != tab.linkedBrowser.contentDocumentAsCPOW ||
           event.target.location.href == "about:blank") {
         info("skipping spurious load event");
         return;
       }
       tab.linkedBrowser.removeEventListener("load", load, true);
--- a/browser/components/sessionstore/SessionStore.jsm
+++ b/browser/components/sessionstore/SessionStore.jsm
@@ -2955,21 +2955,17 @@ var SessionStoreInternal = {
                       "Somehow a crashed browser is still remote.");
     }
 
     // We put the browser at about:blank in case the user is
     // restoring tabs on demand. This way, the user won't see
     // a flash of the about:tabcrashed page after selecting
     // the revived tab.
     aTab.removeAttribute("crashed");
-    browser.loadURI("about:blank", {
-      triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({
-        userContextId: aTab.userContextId,
-      }),
-    });
+    browser.loadURI("about:blank");
 
     let data = TabState.collect(aTab, TAB_CUSTOM_VALUES.get(aTab));
     this.restoreTab(aTab, data, {
       forceOnDemand: true,
     });
   },
 
   /**
--- a/browser/components/sessionstore/content/aboutSessionRestore.js
+++ b/browser/components/sessionstore/content/aboutSessionRestore.js
@@ -175,19 +175,17 @@ function restoreSession() {
     var tabbrowser = top.gBrowser;
     var tabIndex = tabbrowser.getBrowserIndexForDocument(document);
     tabbrowser.removeTab(tabbrowser.tabs[tabIndex]);
   }, "browser-delayed-startup-finished");
 }
 
 function startNewSession() {
   if (Services.prefs.getIntPref("browser.startup.page") == 0)
-    getBrowserWindow().gBrowser.loadURI("about:blank", {
-      triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-    });
+    getBrowserWindow().gBrowser.loadURI("about:blank");
   else
     getBrowserWindow().BrowserHome();
 }
 
 function onListClick(aEvent) {
   // don't react to right-clicks
   if (aEvent.button == 2)
     return;
--- a/browser/components/sessionstore/test/browser_394759_perwindowpb.js
+++ b/browser/components/sessionstore/test/browser_394759_perwindowpb.js
@@ -11,17 +11,17 @@ const TESTS = [
   { url: "about:mozilla",
     key: "bug 394759 PB",
     value: "uniq" + r() },
 ];
 
 function promiseTestOpenCloseWindow(aIsPrivate, aTest) {
   return (async function() {
     let win = await BrowserTestUtils.openNewBrowserWindow({ "private": aIsPrivate });
-    BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, aTest.url);
+    win.gBrowser.selectedBrowser.loadURI(aTest.url);
     await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, aTest.url);
     // Mark the window with some unique data to be restored later on.
     ss.setWindowValue(win, aTest.key, aTest.value);
     await TabStateFlusher.flushWindow(win);
     // Close.
     await BrowserTestUtils.closeWindow(win);
   })();
 }
--- a/browser/components/sessionstore/test/browser_480893.js
+++ b/browser/components/sessionstore/test/browser_480893.js
@@ -28,17 +28,17 @@ add_task(async function() {
   let homepage = "http://mochi.test:8888/";
   await SpecialPowers.pushPrefEnv({
     "set": [
       ["browser.startup.homepage", homepage],
       ["browser.startup.page", 1],
     ],
   });
 
-  BrowserTestUtils.loadURI(browser, "about:sessionrestore");
+  browser.loadURI("about:sessionrestore");
   await BrowserTestUtils.browserLoaded(browser, false, "about:sessionrestore");
   doc = browser.contentDocument;
 
   // Click on the "Close" button after about:sessionrestore is loaded.
   doc.getElementById("errorCancel").click();
   await BrowserTestUtils.browserLoaded(browser);
 
   is(browser.currentURI.spec, homepage, "loaded page is the homepage");
--- a/browser/components/sessionstore/test/browser_491168.js
+++ b/browser/components/sessionstore/test/browser_491168.js
@@ -12,20 +12,17 @@ add_task(async function() {
 
   // Add a new tab.
   let tab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:blank");
   let browser = tab.linkedBrowser;
   await promiseBrowserLoaded(browser);
 
   // Load a new URI with a specific referrer.
   let referrerURI = Services.io.newURI(REFERRER1);
-  browser.loadURI("http://example.org", {
-    referrerURI,
-    triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-  });
+  browser.loadURI("http://example.org", { referrerURI });
   await promiseBrowserLoaded(browser);
 
   await TabStateFlusher.flush(browser);
   let tabState = JSON.parse(ss.getTabState(tab));
   is(tabState.entries[0].referrer, REFERRER1,
      "Referrer retrieved via getTabState matches referrer set via loadURI.");
 
   tabState.entries[0].referrer = REFERRER2;
--- a/browser/components/sessionstore/test/browser_async_window_flushing.js
+++ b/browser/components/sessionstore/test/browser_async_window_flushing.js
@@ -92,17 +92,17 @@ add_task(async function test_remove_unin
                    initialClosedWindows + 1]);
 
   let newWin = await BrowserTestUtils.openNewBrowserWindow();
 
   // Now browse the initial tab of that window to an interesting
   // site.
   let tab = newWin.gBrowser.selectedTab;
   let browser = tab.linkedBrowser;
-  BrowserTestUtils.loadURI(browser, PAGE);
+  browser.loadURI(PAGE);
 
   await BrowserTestUtils.browserLoaded(browser, false, PAGE);
   await TabStateFlusher.flush(browser);
 
   // Send a message that will cause the content to purge its
   // history entries and make itself seem uninteresting.
   await ContentTask.spawn(browser, null, async function() {
     // Epic hackery to make this browser seem suddenly boring.
@@ -152,17 +152,17 @@ add_task(async function test_synchronous
   let state = JSON.parse(ss.getBrowserState());
   ok(state, "Make sure we can get the state");
   let initialWindows = state.windows.length;
 
   // Open a new window and send the first tab somewhere
   // interesting.
   let newWin = await BrowserTestUtils.openNewBrowserWindow();
   let browser = newWin.gBrowser.selectedBrowser;
-  BrowserTestUtils.loadURI(browser, PAGE);
+  browser.loadURI(PAGE);
   await BrowserTestUtils.browserLoaded(browser, false, PAGE);
   await TabStateFlusher.flush(browser);
 
   state = JSON.parse(ss.getBrowserState());
   is(state.windows.length, initialWindows + 1,
      "The new window to be in the state");
 
   // Now close the window, and make sure that the window was removed
--- a/browser/components/sessionstore/test/browser_background_tab_crash.js
+++ b/browser/components/sessionstore/test/browser_background_tab_crash.js
@@ -27,17 +27,17 @@
 async function setupBackgroundTabs(testFn) {
   const REMOTE_PAGE = "http://www.example.com";
   const NON_REMOTE_PAGE = "about:robots";
 
   // Browse the initial tab to a non-remote page, which we'll have in the
   // foreground.
   let initialTab = gBrowser.selectedTab;
   let initialBrowser = initialTab.linkedBrowser;
-  BrowserTestUtils.loadURI(initialBrowser, NON_REMOTE_PAGE);
+  initialBrowser.loadURI(NON_REMOTE_PAGE);
   await BrowserTestUtils.browserLoaded(initialBrowser);
 
   // Open some tabs that should be running in the content process.
   let tab1 =
     await BrowserTestUtils.openNewForegroundTab(gBrowser, REMOTE_PAGE);
   let remoteBrowser1 = tab1.linkedBrowser;
   await TabStateFlusher.flush(remoteBrowser1);
 
--- a/browser/components/sessionstore/test/browser_backup_recovery.js
+++ b/browser/components/sessionstore/test/browser_backup_recovery.js
@@ -68,17 +68,17 @@ add_task(async function test_creation() 
   ok(!(await File.exists(Paths.recoveryBackup)), "After write, recoveryBackup sessionstore doesn't exist");
   ok((await promiseRead(Paths.recovery)).includes(URL), "Recovery sessionstore file contains the required tab");
   ok(!(await File.exists(Paths.clean)), "After first write, clean shutdown " +
     "sessionstore doesn't exist, since we haven't shutdown yet");
 
   // Open a second tab, save session, ensure that the correct files exist.
   info("Testing situation after a second write");
   let URL2 = URL_BASE + "?second_write";
-  BrowserTestUtils.loadURI(tab.linkedBrowser, URL2);
+  tab.linkedBrowser.loadURI(URL2);
   await promiseBrowserLoaded(tab.linkedBrowser);
   await TabStateFlusher.flush(tab.linkedBrowser);
   await SessionSaver.run();
 
   ok((await File.exists(Paths.recovery)), "After second write, recovery sessionstore file still exists");
   ok((await promiseRead(Paths.recovery)).includes(URL2), "Recovery sessionstore file contains the latest url");
   ok((await File.exists(Paths.recoveryBackup)), "After write, recoveryBackup sessionstore now exists");
   let backup = await promiseRead(Paths.recoveryBackup);
--- a/browser/components/sessionstore/test/browser_broadcast.js
+++ b/browser/components/sessionstore/test/browser_broadcast.js
@@ -115,15 +115,15 @@ function promiseNewWindow() {
   });
 }
 
 async function createTabWithStorageData(urls, win = window) {
   let tab = BrowserTestUtils.addTab(win.gBrowser);
   let browser = tab.linkedBrowser;
 
   for (let url of urls) {
-    BrowserTestUtils.loadURI(browser, url);
+    browser.loadURI(url);
     await promiseBrowserLoaded(browser);
     await modifySessionStorage(browser, {test: INITIAL_VALUE});
   }
 
   return tab;
 }
--- a/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_tabs.js
+++ b/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_tabs.js
@@ -7,17 +7,17 @@
 const MAX_TABS_UNDO_PREF = "browser.sessionstore.max_tabs_undo";
 const TOPIC = "sessionstore-closed-objects-changed";
 
 let notificationsCount = 0;
 
 async function openWindow(url) {
   let win = await promiseNewWindowLoaded();
   let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, url, { flags });
+  win.gBrowser.selectedBrowser.loadURI(url, { flags });
   await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, url);
   return win;
 }
 
 async function closeWindow(win) {
   await awaitNotification(() => BrowserTestUtils.closeWindow(win));
 }
 
--- a/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_windows.js
+++ b/browser/components/sessionstore/test/browser_closed_objects_changed_notifications_windows.js
@@ -9,17 +9,17 @@ requestLongerTimeout(2);
 const MAX_WINDOWS_UNDO_PREF = "browser.sessionstore.max_windows_undo";
 const TOPIC = "sessionstore-closed-objects-changed";
 
 let notificationsCount = 0;
 
 async function openWindow(url) {
   let win = await promiseNewWindowLoaded();
   let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, url, { flags });
+  win.gBrowser.selectedBrowser.loadURI(url, { flags });
   await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, url);
   return win;
 }
 
 async function closeWindow(win) {
   await awaitNotification(() => BrowserTestUtils.closeWindow(win));
 }
 
--- a/browser/components/sessionstore/test/browser_crashedTabs.js
+++ b/browser/components/sessionstore/test/browser_crashedTabs.js
@@ -129,17 +129,17 @@ function promiseTabCrashedReady(browser)
  */
 add_task(async function test_crash_page_not_in_history() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
   await TabStateFlusher.flush(browser);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
 
   // Check the tab state and make sure the tab crashed page isn't
   // mentioned.
@@ -158,26 +158,26 @@ add_task(async function test_crash_page_
  */
 add_task(async function test_revived_history_from_remote() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
   await TabStateFlusher.flush(browser);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
 
   // Browse to a new site that will cause the browser to
   // become remote again.
-  BrowserTestUtils.loadURI(browser, PAGE_2);
+  browser.loadURI(PAGE_2);
   await promiseTabRestored(newTab);
   ok(!newTab.hasAttribute("crashed"), "Tab shouldn't be marked as crashed anymore.");
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await TabStateFlusher.flush(browser);
 
   // Check the tab state and make sure the tab crashed page isn't
   // mentioned.
   let {entries} = JSON.parse(ss.getTabState(newTab));
@@ -197,26 +197,26 @@ add_task(async function test_revived_his
  */
 add_task(async function test_revived_history_from_non_remote() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
   await TabStateFlusher.flush(browser);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
 
   // Browse to a new site that will not cause the browser to
   // become remote again.
-  BrowserTestUtils.loadURI(browser, "about:mozilla");
+  browser.loadURI("about:mozilla");
   await promiseBrowserLoaded(browser);
   ok(!newTab.hasAttribute("crashed"), "Tab shouldn't be marked as crashed anymore.");
   ok(!browser.isRemoteBrowser, "Should not be a remote browser");
   await TabStateFlusher.flush(browser);
 
   // Check the tab state and make sure the tab crashed page isn't
   // mentioned.
   let {entries} = JSON.parse(ss.getTabState(newTab));
@@ -235,28 +235,28 @@ add_task(async function test_revived_his
  */
 add_task(async function test_revive_tab_from_session_store() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
   let newTab2 = BrowserTestUtils.addTab(gBrowser, "about:blank", { sameProcessAsFrameLoader: browser.frameLoader });
   let browser2 = newTab2.linkedBrowser;
   ok(browser2.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser2);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_2);
+  browser.loadURI(PAGE_2);
   await promiseBrowserLoaded(browser);
 
   await TabStateFlusher.flush(browser);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
   // Background tabs should not be crashed, but should be in the "to be restored"
   // state.
@@ -288,33 +288,33 @@ add_task(async function test_revive_tab_
  */
 add_task(async function test_revive_all_tabs_from_session_store() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
   // In order to see a second about:tabcrashed page, we'll need
   // a second window, since only selected tabs will show
   // about:tabcrashed.
   let win2 = await BrowserTestUtils.openNewBrowserWindow();
   let newTab2 = BrowserTestUtils.addTab(win2.gBrowser, PAGE_1, { sameProcessAsFrameLoader: browser.frameLoader });
   win2.gBrowser.selectedTab = newTab2;
   let browser2 = newTab2.linkedBrowser;
   ok(browser2.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser2);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_2);
+  browser.loadURI(PAGE_2);
   await promiseBrowserLoaded(browser);
 
   await TabStateFlusher.flush(browser);
   await TabStateFlusher.flush(browser2);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
   // Both tabs should now be crashed.
@@ -348,17 +348,17 @@ add_task(async function test_revive_all_
  */
 add_task(async function test_close_tab_after_crash() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
   await TabStateFlusher.flush(browser);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
 
   let promise = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabClose");
@@ -377,17 +377,17 @@ add_task(async function test_close_tab_a
  */
 add_task(async function test_hide_restore_all_button() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
   await TabStateFlusher.flush(browser);
 
   // Crash the tab
   await BrowserTestUtils.crashBrowser(browser);
 
   let doc = browser.contentDocument;
@@ -396,17 +396,17 @@ add_task(async function test_hide_restor
 
   let restoreAllStyles = window.getComputedStyle(restoreAllButton);
   is(restoreAllStyles.display, "none", "Restore All button should be hidden");
   ok(restoreOneButton.classList.contains("primary"), "Restore Tab button should have the primary class");
 
   let newTab2 = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
 
-  BrowserTestUtils.loadURI(browser, PAGE_2);
+  browser.loadURI(PAGE_2);
   await promiseBrowserLoaded(browser);
 
   // Load up a second window so we can get another tab to show
   // about:tabcrashed
   let win2 = await BrowserTestUtils.openNewBrowserWindow();
   let newTab3 = BrowserTestUtils.addTab(win2.gBrowser, PAGE_2, { sameProcessAsFrameLoader: browser.frameLoader });
   win2.gBrowser.selectedTab = newTab3;
   let otherWinBrowser = newTab3.linkedBrowser;
@@ -435,17 +435,17 @@ add_task(async function test_hide_restor
 
 add_task(async function test_aboutcrashedtabzoom() {
   let newTab = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = newTab;
   let browser = newTab.linkedBrowser;
   ok(browser.isRemoteBrowser, "Should be a remote browser");
   await promiseBrowserLoaded(browser);
 
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   await promiseBrowserLoaded(browser);
 
   FullZoom.enlarge();
   let zoomLevel = ZoomManager.getZoomForBrowser(browser);
   ok(zoomLevel !== 1, "should have enlarged");
 
   await TabStateFlusher.flush(browser);
 
--- a/browser/components/sessionstore/test/browser_dying_cache.js
+++ b/browser/components/sessionstore/test/browser_dying_cache.js
@@ -7,17 +7,17 @@
  */
 
 add_task(async function test() {
   // Open a new window.
   let win = await promiseNewWindowLoaded();
 
   // Load some URL in the current tab.
   let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, "about:robots", { flags });
+  win.gBrowser.selectedBrowser.loadURI("about:robots", { flags });
   await promiseBrowserLoaded(win.gBrowser.selectedBrowser);
 
   // Open a second tab and close the first one.
   let tab = BrowserTestUtils.addTab(win.gBrowser, "about:mozilla");
   await promiseBrowserLoaded(tab.linkedBrowser);
   await TabStateFlusher.flush(tab.linkedBrowser);
   await promiseRemoveTabAndSessionState(win.gBrowser.tabs[0]);
 
--- a/browser/components/sessionstore/test/browser_forget_async_closings.js
+++ b/browser/components/sessionstore/test/browser_forget_async_closings.js
@@ -73,17 +73,17 @@ let forgetWinHelper = async function(for
 
   is(ss.getClosedWindowCount(), 0, "We should have 0 closed windows being stored.");
 
   let newWin = await BrowserTestUtils.openNewBrowserWindow();
 
   // Create a tab worth remembering.
   let tab = newWin.gBrowser.selectedTab;
   let browser = tab.linkedBrowser;
-  BrowserTestUtils.loadURI(browser, PAGE);
+  browser.loadURI(PAGE);
   await BrowserTestUtils.browserLoaded(browser, false, PAGE);
   await TabStateFlusher.flush(browser);
 
   // Now close the window and immediately choose to forget it.
   let windowClosed = BrowserTestUtils.windowClosed(newWin);
 
   let handled = false;
   whenDomWindowClosedHandled(() => {
--- a/browser/components/sessionstore/test/browser_frametree.js
+++ b/browser/components/sessionstore/test/browser_frametree.js
@@ -15,17 +15,17 @@ add_task(async function test_frametree()
   let tab = BrowserTestUtils.addTab(gBrowser, URL);
   let browser = tab.linkedBrowser;
   await promiseBrowserLoaded(browser);
 
   // The page is a single frame with no children.
   is(await countNonDynamicFrames(browser), 0, "no child frames");
 
   // Navigate to a frameset.
-  BrowserTestUtils.loadURI(browser, URL_FRAMESET);
+  browser.loadURI(URL_FRAMESET);
   await promiseBrowserLoaded(browser);
 
   // The frameset has two frames.
   is(await countNonDynamicFrames(browser), 2, "two non-dynamic child frames");
 
   // Go back in history.
   let pageShowPromise = ContentTask.spawn(browser, null, async () => {
     return ContentTaskUtils.waitForEvent(this, "pageshow", true);
--- a/browser/components/sessionstore/test/browser_history_persist.js
+++ b/browser/components/sessionstore/test/browser_history_persist.js
@@ -29,17 +29,17 @@ add_task(async function check_history_no
     let sessionHistory = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
                                  .getInterface(Ci.nsISHistory);
 
     is(sessionHistory.count, 1, "Should be a single history entry");
     is(sessionHistory.getEntryAtIndex(0).URI.spec, "about:blank", "Should be the right URL");
   });
 
   // Load a new URL into the tab, it should replace the about:blank history entry
-  BrowserTestUtils.loadURI(browser, "about:robots");
+  browser.loadURI("about:robots");
   await promiseBrowserLoaded(browser);
   await ContentTask.spawn(browser, null, function() {
     let sessionHistory = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
                                  .getInterface(Ci.nsISHistory);
     is(sessionHistory.count, 1, "Should be a single history entry");
     is(sessionHistory.getEntryAtIndex(0).URI.spec, "about:robots", "Should be the right URL");
   });
 
@@ -72,17 +72,17 @@ add_task(async function check_history_de
     let sessionHistory = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
                                  .getInterface(Ci.nsISHistory);
 
     is(sessionHistory.count, 1, "Should be a single history entry");
     is(sessionHistory.getEntryAtIndex(0).URI.spec, "about:blank", "Should be the right URL");
   });
 
   // Load a new URL into the tab, it should replace the about:blank history entry
-  BrowserTestUtils.loadURI(browser, "about:robots");
+  browser.loadURI("about:robots");
   await promiseBrowserLoaded(browser);
   await ContentTask.spawn(browser, null, function() {
     let sessionHistory = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
                                  .getInterface(Ci.nsISHistory);
     is(sessionHistory.count, 2, "Should be two history entries");
     is(sessionHistory.getEntryAtIndex(0).URI.spec, "about:blank", "Should be the right URL");
     is(sessionHistory.getEntryAtIndex(1).URI.spec, "about:robots", "Should be the right URL");
   });
--- a/browser/components/sessionstore/test/browser_multiple_navigateAndRestore.js
+++ b/browser/components/sessionstore/test/browser_multiple_navigateAndRestore.js
@@ -8,19 +8,19 @@ add_task(async function() {
   let tab = BrowserTestUtils.addTab(gBrowser, "about:blank", {
     forceNotRemote: true,
   });
   gBrowser.selectedTab = tab;
   let browser = gBrowser.selectedBrowser;
   ok(!browser.isRemoteBrowser, "Ensure browser is not remote");
   // Load a remote page, and then another remote page immediately
   // after.
-  BrowserTestUtils.loadURI(browser, PAGE_1);
+  browser.loadURI(PAGE_1);
   browser.stop();
-  BrowserTestUtils.loadURI(browser, PAGE_2);
+  browser.loadURI(PAGE_2);
   await BrowserTestUtils.browserLoaded(browser);
 
   ok(browser.isRemoteBrowser, "Should have switched remoteness");
   await TabStateFlusher.flush(browser);
   let state = JSON.parse(ss.getTabState(tab));
   let entries = state.entries;
   is(entries.length, 1, "There should only be one entry");
   is(entries[0].url, PAGE_2, "Should have PAGE_2 as the sole history entry");
--- a/browser/components/sessionstore/test/browser_privatetabs.js
+++ b/browser/components/sessionstore/test/browser_privatetabs.js
@@ -17,17 +17,17 @@ add_task(async function() {
     info("Setting up public tab");
     tab1 = BrowserTestUtils.addTab(gBrowser, URL_PUBLIC);
     await promiseBrowserLoaded(tab1.linkedBrowser);
 
     info("Setting up private tab");
     tab2 = BrowserTestUtils.addTab(gBrowser);
     await promiseBrowserLoaded(tab2.linkedBrowser);
     await setUsePrivateBrowsing(tab2.linkedBrowser, true);
-    BrowserTestUtils.loadURI(tab2.linkedBrowser, URL_PRIVATE);
+    tab2.linkedBrowser.loadURI(URL_PRIVATE);
     await promiseBrowserLoaded(tab2.linkedBrowser);
 
     info("Flush to make sure chrome received all data.");
     await TabStateFlusher.flush(tab1.linkedBrowser);
     await TabStateFlusher.flush(tab2.linkedBrowser);
 
     info("Checking out state");
     let state = await promiseRecoveryFileContents();
--- a/browser/components/sessionstore/test/browser_replace_load.js
+++ b/browser/components/sessionstore/test/browser_replace_load.js
@@ -27,18 +27,16 @@ var testSwitchToTab = async function(url
   Services.prefs.setBoolPref("browser.sessionstore.restore_on_demand", true);
 
   // Prepare the tab state.
   let promise = promiseTabRestoring(tab);
   ss.setTabState(tab, JSON.stringify(STATE));
   ok(tab.hasAttribute("pending"), "tab is pending");
   await promise;
 
-  options.triggeringPrincipal = Services.scriptSecurityManager.getSystemPrincipal();
-
   // Switch-to-tab with a similar URI.
   switchToTabHavingURI(url, false, options);
 
   // Tab should now restore
   await promiseTabRestored(tab);
   is(browser.currentURI.spec, url, "correct URL loaded");
 
   // Check that we didn't lose any history entries.
--- a/browser/components/sessionstore/test/browser_scrollPositions.js
+++ b/browser/components/sessionstore/test/browser_scrollPositions.js
@@ -120,17 +120,17 @@ add_task(async function test_scroll_back
   let browser = tab.linkedBrowser;
   await BrowserTestUtils.browserLoaded(browser);
 
   // Scroll down a little.
   await sendMessage(browser, "ss-test:setScrollPosition", {x: SCROLL_X, y: SCROLL_Y});
   await checkScroll(tab, {scroll: SCROLL_STR}, "scroll on first page is fine");
 
   // Navigate to a different page and scroll there as well.
-  BrowserTestUtils.loadURI(browser, URL2);
+  browser.loadURI(URL2);
   await BrowserTestUtils.browserLoaded(browser);
 
   // Scroll down a little.
   await sendMessage(browser, "ss-test:setScrollPosition", {x: SCROLL2_X, y: SCROLL2_Y});
   await checkScroll(tab, {scroll: SCROLL2_STR}, "scroll on second page is fine");
 
   // Close the window
   await BrowserTestUtils.closeWindow(newWin);
--- a/browser/components/sessionstore/test/browser_sessionHistory.js
+++ b/browser/components/sessionstore/test/browser_sessionHistory.js
@@ -71,17 +71,17 @@ add_task(async function test_pageshow() 
   const URL2 = "data:text/html;charset=utf-8,<h1>second</h1>";
 
   // Create a new tab.
   let tab = BrowserTestUtils.addTab(gBrowser, URL);
   let browser = tab.linkedBrowser;
   await promiseBrowserLoaded(browser);
 
   // Create a second shistory entry.
-  BrowserTestUtils.loadURI(browser, URL2);
+  browser.loadURI(URL2);
   await promiseBrowserLoaded(browser);
 
   // Wait until shistory changes.
   let pageShowPromise = ContentTask.spawn(browser, null, async () => {
     return ContentTaskUtils.waitForEvent(this, "pageshow", true);
   });
 
   // Go back to the previous url which is loaded from the bfcache.
@@ -159,17 +159,17 @@ add_task(async function test_about_page_
   await TabStateFlusher.flush(browser);
   let {entries} = JSON.parse(ss.getTabState(tab));
   is(entries.length, 1, "there is one shistory entry");
   is(entries[0].url, "about:blank", "url is correct");
 
   // Verify that the title is also recorded.
   is(entries[0].title, "about:blank", "title is correct");
 
-  BrowserTestUtils.loadURI(browser, "about:robots");
+  browser.loadURI("about:robots");
   await promiseBrowserLoaded(browser);
 
   // Check that we have changed the history entry.
   await TabStateFlusher.flush(browser);
   ({entries} = JSON.parse(ss.getTabState(tab)));
   is(entries.length, 1, "there is one shistory entry");
   is(entries[0].url, "about:robots", "url is correct");
 
--- a/browser/components/sessionstore/test/browser_sessionStorage.js
+++ b/browser/components/sessionstore/test/browser_sessionStorage.js
@@ -71,27 +71,27 @@ add_task(async function session_storage(
 
   ({storage} = JSON.parse(ss.getTabState(tab2)));
   is(storage["http://example.com"].test, "modified2",
     "sessionStorage data for example.com has been duplicated correctly");
   is(storage["http://mochi.test:8888"].test, "modified3",
     "sessionStorage data for mochi.test has been duplicated correctly");
 
   // Check that loading a new URL discards data.
-  BrowserTestUtils.loadURI(browser2, "http://mochi.test:8888/");
+  browser2.loadURI("http://mochi.test:8888/");
   await promiseBrowserLoaded(browser2);
   await TabStateFlusher.flush(browser2);
 
   ({storage} = JSON.parse(ss.getTabState(tab2)));
   is(storage["http://mochi.test:8888"].test, "modified3",
     "navigating retains correct storage data");
   ok(!storage["http://example.com"], "storage data was discarded");
 
   // Check that loading a new URL discards data.
-  BrowserTestUtils.loadURI(browser2, "about:mozilla");
+  browser2.loadURI("about:mozilla");
   await promiseBrowserLoaded(browser2);
   await TabStateFlusher.flush(browser2);
 
   let state = JSON.parse(ss.getTabState(tab2));
   ok(!state.hasOwnProperty("storage"), "storage data was discarded");
 
   // Test that clearing the data in the first tab works properly within
   // the subframe
--- a/browser/components/sessionstore/test/browser_switch_remoteness.js
+++ b/browser/components/sessionstore/test/browser_switch_remoteness.js
@@ -22,26 +22,26 @@ add_task(async function() {
   ok(browser.isRemoteBrowser, "browser is remote");
 
   // Get the maximum number of preceding entries to save.
   const MAX_BACK = Services.prefs.getIntPref("browser.sessionstore.max_serialize_back");
   ok(MAX_BACK > -1, "check that the default has a value that caps data");
 
   // Load more pages than we would save to disk on a clean shutdown.
   for (let i = 0; i < MAX_BACK + 2; i++) {
-    BrowserTestUtils.loadURI(browser, URL + i);
+    browser.loadURI(URL + i);
     await promiseBrowserLoaded(browser);
     ok(browser.isRemoteBrowser, "browser is still remote");
   }
 
   // Check we have the right number of shistory entries.
   await countHistoryEntries(browser, MAX_BACK + 2);
 
   // Load a non-remote page.
-  BrowserTestUtils.loadURI(browser, "about:robots");
+  browser.loadURI("about:robots");
   await promiseTabRestored(tab);
   ok(!browser.isRemoteBrowser, "browser is not remote anymore");
 
   // Check that we didn't lose any shistory entries.
   await countHistoryEntries(browser, MAX_BACK + 3);
 
   // Cleanup.
   await BrowserTestUtils.closeWindow(win);
--- a/browser/components/sessionstore/test/browser_undoCloseById.js
+++ b/browser/components/sessionstore/test/browser_undoCloseById.js
@@ -12,17 +12,17 @@ async function openAndCloseTab(window, u
   await promiseBrowserLoaded(tab.linkedBrowser, true, url);
   await TabStateFlusher.flush(tab.linkedBrowser);
   await promiseRemoveTabAndSessionState(tab);
 }
 
 async function openWindow(url) {
   let win = await promiseNewWindowLoaded();
   let flags = Ci.nsIWebNavigation.LOAD_FLAGS_REPLACE_HISTORY;
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, url, { flags });
+  win.gBrowser.selectedBrowser.loadURI(url, { flags });
   await promiseBrowserLoaded(win.gBrowser.selectedBrowser, true, url);
   return win;
 }
 
 async function closeWindow(win) {
   await BrowserTestUtils.closeWindow(win);
   // Wait 20 ms to allow SessionStorage a chance to register the closed window.
   await new Promise(resolve => setTimeout(resolve, 20));
--- a/browser/components/shell/HeadlessShell.jsm
+++ b/browser/components/shell/HeadlessShell.jsm
@@ -8,19 +8,19 @@ var EXPORTED_SYMBOLS = ["HeadlessShell"]
 
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 ChromeUtils.import("resource://gre/modules/osfile.jsm");
 
 // Refrences to the progress listeners to keep them from being gc'ed
 // before they are called.
 const progressListeners = new Map();
 
-function loadContentWindow(webNavigation, uri, principal) {
+function loadContentWindow(webNavigation, uri) {
   return new Promise((resolve, reject) => {
-    webNavigation.loadURI(uri, Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null, principal);
+    webNavigation.loadURI(uri, Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null);
     let docShell = webNavigation.QueryInterface(Ci.nsIInterfaceRequestor)
                                 .getInterface(Ci.nsIDocShell);
     let webProgress = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
                               .getInterface(Ci.nsIWebProgress);
     let progressListener = {
       onLocationChange(progress, request, location, flags) {
         // Ignore inner-frame events
         if (progress != webProgress) {
@@ -45,17 +45,17 @@ function loadContentWindow(webNavigation
                                     Ci.nsIWebProgress.NOTIFY_LOCATION);
   });
 }
 
 async function takeScreenshot(fullWidth, fullHeight, contentWidth, contentHeight, path, url) {
   try {
     var windowlessBrowser = Services.appShell.createWindowlessBrowser(false);
     // nsIWindowlessBrowser inherits from nsIWebNavigation.
-    let contentWindow = await loadContentWindow(windowlessBrowser, url, Services.scriptSecurityManager.getSystemPrincipal());
+    let contentWindow = await loadContentWindow(windowlessBrowser, url);
     contentWindow.resizeTo(contentWidth, contentHeight);
 
     let canvas = contentWindow.document.createElementNS("http://www.w3.org/1999/xhtml", "html:canvas");
     let context = canvas.getContext("2d");
     let width = fullWidth ? contentWindow.innerWidth + contentWindow.scrollMaxX - contentWindow.scrollMinX
                           : contentWindow.innerWidth;
     let height = fullHeight ? contentWindow.innerHeight + contentWindow.scrollMaxY - contentWindow.scrollMinY
                             : contentWindow.innerHeight;
--- a/browser/components/shell/test/browser_1119088.js
+++ b/browser/components/shell/test/browser_1119088.js
@@ -53,12 +53,12 @@ function onPageLoad() {
     gBrowser.removeCurrentTab();
     finish();
   }, 1000);
 }
 
 function test() {
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(onPageLoad, false, "about:logo");
-  BrowserTestUtils.loadURI(gBrowser, "about:logo");
+  gBrowser.loadURI("about:logo");
 
   waitForExplicitFinish();
 }
--- a/browser/components/translation/test/browser_translation_exceptions.js
+++ b/browser/components/translation/test/browser_translation_exceptions.js
@@ -28,17 +28,17 @@ function test() {
         await testCase.run();
       }
     })().then(finish, ex => {
      ok(false, "Unexpected Exception: " + ex);
      finish();
     });
    });
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "http://example.com/");
+  gBrowser.selectedBrowser.loadURI("http://example.com/");
 }
 
 function getLanguageExceptions() {
   let langs = Services.prefs.getCharPref(kLanguagesPref);
   return langs ? langs.split(",") : [];
 }
 
 function getDomainExceptions() {
--- a/browser/components/translation/test/browser_translation_infobar.js
+++ b/browser/components/translation/test/browser_translation_infobar.js
@@ -83,17 +83,17 @@ function test() {
       gBrowser.removeTab(tab);
       Services.prefs.clearUserPref(kShowUIPref);
     });
     run_tests(() => {
       finish();
     });
   });
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "data:text/plain,test page");
+  gBrowser.selectedBrowser.loadURI("data:text/plain,test page");
 }
 
 function checkURLBarIcon(aExpectTranslated = false) {
   is(!PopupNotifications.getNotification("translate"), aExpectTranslated,
      "translate icon " + (aExpectTranslated ? "not " : "") + "shown");
   is(!!PopupNotifications.getNotification("translated"), aExpectTranslated,
      "translated icon " + (aExpectTranslated ? "" : "not ") + "shown");
 }
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -463,36 +463,32 @@ var UITour = {
           const url = new URL(uri);
           // Call our helper to validate extraURLCampaignParams and populate URLSearchParams
           if (!this._populateCampaignParams(url, data.extraURLCampaignParams)) {
             log.warn("showFirefoxAccounts: invalid campaign args specified");
             return;
           }
 
           // We want to replace the current tab.
-          browser.loadURI(url.href, {
-            triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-          });
+          browser.loadURI(url.href);
         });
         break;
       }
 
       case "showConnectAnotherDevice": {
         FxAccounts.config.promiseConnectDeviceURI("uitour").then(uri => {
           const url = new URL(uri);
           // Call our helper to validate extraURLCampaignParams and populate URLSearchParams
           if (!this._populateCampaignParams(url, data.extraURLCampaignParams)) {
             log.warn("showConnectAnotherDevice: invalid campaign args specified");
             return;
           }
 
           // We want to replace the current tab.
-          browser.loadURI(url.href, {
-            triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-          });
+          browser.loadURI(url.href);
         });
         break;
       }
 
       case "resetFirefox": {
         // Open a reset profile dialog window.
         if (ResetProfile.resetSupported()) {
           ResetProfile.openConfirmationDialog(window);
--- a/browser/modules/ContentSearch.jsm
+++ b/browser/modules/ContentSearch.jsm
@@ -242,19 +242,16 @@ var ContentSearch = {
     // where === "current"), openUILinkIn will not work because that tab is no
     // longer the current one. For this case we manually load the URI.
     if (where === "current") {
       // Since we're going to load the search in the same browser, blur the search
       // UI to prevent further interaction before we start loading.
       this._reply(msg, "Blur");
       browser.loadURI(submission.uri.spec, {
         postData: submission.postData,
-        triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({
-          userContextId: win.gBrowser.selectedBrowser.getAttribute("userContextId"),
-        }),
       });
     } else {
       let params = {
         postData: submission.postData,
         inBackground: Services.prefs.getBoolPref("browser.tabs.loadInBackground"),
       };
       win.openTrustedLinkIn(submission.uri.spec, where, params);
     }
--- a/browser/modules/test/browser/browser_SitePermissions_tab_urls.js
+++ b/browser/modules/test/browser/browser_SitePermissions_tab_urls.js
@@ -32,50 +32,50 @@ add_task(async function testTemporaryPer
                     newURI("http://example.com"),
                     newURI("http://example.org") ];
 
   let id = "microphone";
 
   await BrowserTestUtils.withNewTab("about:blank", async function(browser) {
     for (let uri of same) {
         let loaded = BrowserTestUtils.browserLoaded(browser, false, uri.spec);
-        BrowserTestUtils.loadURI(browser, uri.spec);
+        browser.loadURI(uri.spec);
         await loaded;
 
         SitePermissions.set(uri, id, SitePermissions.BLOCK, SitePermissions.SCOPE_TEMPORARY, browser);
 
         for (let uri2 of same) {
           let loaded2 = BrowserTestUtils.browserLoaded(browser, false, uri2.spec);
-          BrowserTestUtils.loadURI(browser, uri2.spec);
+          browser.loadURI(uri2.spec);
           await loaded2;
 
           Assert.deepEqual(SitePermissions.get(uri2, id, browser), {
             state: SitePermissions.BLOCK,
             scope: SitePermissions.SCOPE_TEMPORARY,
           }, `${uri.spec} should share tab permissions with ${uri2.spec}`);
         }
 
         SitePermissions.clearTemporaryPermissions(browser);
     }
 
     for (let uri of different) {
       let loaded = BrowserTestUtils.browserLoaded(browser, false, uri.spec);
-      BrowserTestUtils.loadURI(browser, uri.spec);
+      browser.loadURI(uri.spec);
       await loaded;
 
       SitePermissions.set(uri, id, SitePermissions.BLOCK, SitePermissions.SCOPE_TEMPORARY, browser);
 
       Assert.deepEqual(SitePermissions.get(uri, id, browser), {
         state: SitePermissions.BLOCK,
         scope: SitePermissions.SCOPE_TEMPORARY,
       });
 
       for (let uri2 of different) {
         loaded = BrowserTestUtils.browserLoaded(browser, false, uri2.spec);
-        BrowserTestUtils.loadURI(browser, uri2.spec);
+        browser.loadURI(uri2.spec);
         await loaded;
 
         if (uri2 != uri) {
           Assert.deepEqual(SitePermissions.get(uri2, id, browser), {
             state: SitePermissions.UNKNOWN,
             scope: SitePermissions.SCOPE_PERSISTENT,
           }, `${uri.spec} should not share tab permissions with ${uri2.spec}`);
         }
--- a/browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js
+++ b/browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js
@@ -47,17 +47,17 @@ add_task(async function test_abouthome_a
   let search_hist = getAndClearKeyedHistogram("SEARCH_COUNTS");
 
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
 
   info("Setup waiting for search input to initialise.");
   let promiseAboutHomeSearchLoaded = BrowserTestUtils.waitForContentEvent(tab.linkedBrowser, "ContentSearchClient", true, null, true).then(() => false);
 
   info("Load about:home.");
-  BrowserTestUtils.loadURI(tab.linkedBrowser, "about:home");
+  tab.linkedBrowser.loadURI("about:home");
   info("Wait for ActivityStream search input.");
   await promiseAboutHomeSearchLoaded;
 
   info("Wait for ContentSearchUI search provider to initialize.");
   await ContentTask.spawn(tab.linkedBrowser, null, async function() {
     await ContentTaskUtils.waitForCondition(() => content.wrappedJSObject.gContentSearchController.defaultEngine);
   });
 
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/TestRunner.jsm
+++ b/browser/tools/mozscreenshots/mozscreenshots/extension/TestRunner.jsm
@@ -203,17 +203,17 @@ var TestRunner = {
 
   cleanup() {
     let browserWindow = Services.wm.getMostRecentWindow("navigator:browser");
     let gBrowser = browserWindow.gBrowser;
     while (gBrowser.tabs.length > 1) {
       gBrowser.removeTab(gBrowser.selectedTab, {animate: false});
     }
     gBrowser.unpinTab(gBrowser.selectedTab);
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "data:text/html;charset=utf-8,<h1>Done!");
+    gBrowser.selectedBrowser.loadURI("data:text/html;charset=utf-8,<h1>Done!");
     browserWindow.restore();
     Services.prefs.clearUserPref("toolkit.cosmeticAnimations.enabled");
   },
 
   // helpers
 
   /**
   * Calculate the bounding box based on CSS selector from config for cropping
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Tabs.jsm
+++ b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Tabs.jsm
@@ -186,19 +186,17 @@ function fiveTabsHelper() {
 }
 
 function closeAllButOneTab(url = "about:blank") {
   let browserWindow = Services.wm.getMostRecentWindow("navigator:browser");
   let gBrowser = browserWindow.gBrowser;
   // Close all tabs except the last so we don't quit the browser.
   while (gBrowser.tabs.length > 1)
     gBrowser.removeTab(gBrowser.selectedTab, {animate: false});
-  gBrowser.selectedBrowser.loadURI(url, {
-    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-  });
+  gBrowser.selectedBrowser.loadURI(url);
   if (gBrowser.selectedTab.pinned)
     gBrowser.unpinTab(gBrowser.selectedTab);
   let newTabButton = browserWindow.document.getAnonymousElementByAttribute(browserWindow.gBrowser.tabContainer, "class", "tabs-newtab-button toolbarbutton-1");
   hoverTab(newTabButton, false);
 }
 
 function hoverTab(tab, hover = true) {
   if (hover) {
--- a/devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js
@@ -28,17 +28,17 @@ function test() {
     // createWorker in the tab to be resolved.
     yield createWorkerInTab(tab, WORKER1_URL);
     let { workers } = yield listWorkers(tabClient);
     let [, workerClient1] = yield attachWorker(tabClient,
                                                findWorker(workers, WORKER1_URL));
     is(workerClient1.isClosed, false, "worker in tab 1 should not be closed");
 
     executeSoon(() => {
-      BrowserTestUtils.loadURI(tab.linkedBrowser, TAB2_URL);
+      tab.linkedBrowser.loadURI(TAB2_URL);
     });
     yield waitForWorkerClose(workerClient1);
     is(workerClient1.isClosed, true, "worker in tab 1 should be closed");
 
     yield createWorkerInTab(tab, WORKER2_URL);
     ({ workers } = yield listWorkers(tabClient));
     let [, workerClient2] = yield attachWorker(tabClient,
                                                findWorker(workers, WORKER2_URL));
--- a/devtools/client/debugger/test/mochitest/browser_dbg_navigation.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_navigation.js
@@ -45,17 +45,17 @@ function testNavigate([aGrip, aResponse]
       outstanding[0].resolve();
     } else {
       ok(true, "Tab finished navigating.");
       gClient.removeListener("tabNavigated", onTabNavigated);
       outstanding[1].resolve();
     }
   });
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, TAB2_URL);
+  gBrowser.selectedBrowser.loadURI(TAB2_URL);
   return promise.all(outstanding.map(e => e.promise))
                 .then(() => aGrip.actor);
 }
 
 function testDetach(aActor) {
   let deferred = promise.defer();
 
   gClient.addOneTimeListener("tabDetached", (aType, aPacket) => {
--- a/devtools/client/framework/test/browser_source_map-reload.js
+++ b/devtools/client/framework/test/browser_source_map-reload.js
@@ -18,17 +18,17 @@ const ORIGINAL_LINE = 13;
 add_task(async function() {
   // Start with the empty page, then navigate, so that we can properly
   // listen for new sources arriving.
   const toolbox = await openNewTabAndToolbox(INITIAL_URL, "webconsole");
   const service = toolbox.sourceMapURLService;
   const tab = toolbox.target.tab;
 
   let sourceSeen = waitForSourceLoad(toolbox, JS_URL);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, PAGE_URL);
+  tab.linkedBrowser.loadURI(PAGE_URL);
   await sourceSeen;
 
   info(`checking original location for ${JS_URL}:${GENERATED_LINE}`);
   let newLoc = await service.originalPositionFor(JS_URL, GENERATED_LINE);
   is(newLoc.sourceUrl, ORIGINAL_URL_1, "check mapped URL");
   is(newLoc.line, ORIGINAL_LINE, "check mapped line number");
 
   // Reload the page.  The sjs ensures that a different source file
--- a/devtools/client/framework/test/browser_toolbox_remoteness_change.js
+++ b/devtools/client/framework/test/browser_toolbox_remoteness_change.js
@@ -13,17 +13,17 @@ add_task(async function() {
 
   let toolbox = await openToolboxForTab(tab);
 
   const onToolboxDestroyed = toolbox.once("destroyed");
   const onToolboxCreated = gDevTools.once("toolbox-created");
 
   info("Navigate to a URL supporting remote process");
   const onLoaded = BrowserTestUtils.browserLoaded(tab.linkedBrowser);
-  BrowserTestUtils.loadURI(gBrowser, URL_2);
+  gBrowser.loadURI(URL_2);
   await onLoaded;
 
   is(tab.linkedBrowser.getAttribute("remote"), "true", "Navigated to a data: URI and switching to remote");
 
   info("Waiting for the toolbox to be destroyed");
   await onToolboxDestroyed;
 
   info("Waiting for a new toolbox to be created");
--- a/devtools/client/framework/test/browser_toolbox_window_title_changes.js
+++ b/devtools/client/framework/test/browser_toolbox_window_title_changes.js
@@ -44,25 +44,25 @@ function test() {
         toolbox.selectTool(TOOL_ID_2);
         return onTitleChanged;
       })
       .then(checkTitle.bind(null, NAME_1, URL_1, "tool changed"))
 
     // navigate to different local url and check title
       .then(function() {
         const onTitleChanged = waitForTitleChange(toolbox);
-        BrowserTestUtils.loadURI(gBrowser, URL_2);
+        gBrowser.loadURI(URL_2);
         return onTitleChanged;
       })
       .then(checkTitle.bind(null, NAME_2, URL_2, "url changed"))
 
     // navigate to a real url and check title
       .then(() => {
         const onTitleChanged = waitForTitleChange(toolbox);
-        BrowserTestUtils.loadURI(gBrowser, URL_3);
+        gBrowser.loadURI(URL_3);
         return onTitleChanged;
       })
       .then(checkTitle.bind(null, NAME_3, URL_3, "url changed"))
 
     // destroy toolbox, create new one hosted in a window (with a
     // different tool id), and check title
       .then(function() {
         // Give the tools a chance to handle the navigation event before
--- a/devtools/client/netmonitor/test/browser_net_cause.js
+++ b/devtools/client/netmonitor/test/browser_net_cause.js
@@ -95,17 +95,17 @@ add_task(async function() {
   const {
     getDisplayedRequests,
     getSortedRequests,
   } = windowRequire("devtools/client/netmonitor/src/selectors/index");
 
   store.dispatch(Actions.batchEnable(false));
 
   const wait = waitForNetworkEvents(monitor, EXPECTED_REQUESTS.length);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, CAUSE_URL);
+  tab.linkedBrowser.loadURI(CAUSE_URL);
   await wait;
 
   const requests = getSortedRequests(store.getState());
   await Promise.all(requests.map(requestItem =>
     connector.requestData(requestItem.id, "stackTrace")));
 
   is(store.getState().requests.requests.size, EXPECTED_REQUESTS.length,
     "All the page events should be recorded.");
--- a/devtools/client/netmonitor/test/browser_net_cause_source_map.js
+++ b/devtools/client/netmonitor/test/browser_net_cause_source_map.js
@@ -21,17 +21,17 @@ add_task(async function() {
   // page has actually made at least one request.
   const { tab, monitor } = await initNetMonitor(SIMPLE_URL);
 
   const { document, store, windowRequire } = monitor.panelWin;
   const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
 
   store.dispatch(Actions.batchEnable(false));
   let waitPromise = waitForNetworkEvents(monitor, N_EXPECTED_REQUESTS);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, CAUSE_URL);
+  tab.linkedBrowser.loadURI(CAUSE_URL);
   await waitPromise;
 
   info("Clicking item and waiting for details panel to open");
   waitPromise = waitForDOM(document, ".network-details-panel");
   const xhrRequestItem = document.querySelectorAll(".request-list-item")[3];
   EventUtils.sendMouseEvent({ type: "mousedown" }, xhrRequestItem);
   await waitPromise;
 
--- a/devtools/client/netmonitor/test/browser_net_charts-01.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-01.js
@@ -11,17 +11,17 @@ add_task(async function() {
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
 
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const pie = Chart.Pie(document, {
     width: 100,
     height: 100,
     data: [{
       size: 1,
       label: "foo"
--- a/devtools/client/netmonitor/test/browser_net_charts-02.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-02.js
@@ -13,17 +13,17 @@ add_task(async function() {
 
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const pie = Chart.Pie(document, {
     data: null,
     width: 100,
     height: 100
   });
 
--- a/devtools/client/netmonitor/test/browser_net_charts-03.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-03.js
@@ -12,17 +12,17 @@ add_task(async function() {
 
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const table = Chart.Table(document, {
     title: "Table title",
     data: [{
       label1: 1,
       label2: 11.1
     }, {
--- a/devtools/client/netmonitor/test/browser_net_charts-04.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-04.js
@@ -13,17 +13,17 @@ add_task(async function() {
 
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const table = Chart.Table(document, {
     title: "Table title",
     data: null,
     totals: {
       label1: value => "Hello " + L10N.numberWithDecimals(value, 2),
       label2: value => "World " + L10N.numberWithDecimals(value, 2)
--- a/devtools/client/netmonitor/test/browser_net_charts-05.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-05.js
@@ -12,17 +12,17 @@ add_task(async function() {
 
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const chart = Chart.PieTable(document, {
     title: "Table title",
     data: [{
       size: 1,
       label: 11.1
     }, {
--- a/devtools/client/netmonitor/test/browser_net_charts-06.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-06.js
@@ -12,17 +12,17 @@ add_task(async function() {
 
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const pie = Chart.Pie(document, {
     data: [],
     width: 100,
     height: 100
   });
 
--- a/devtools/client/netmonitor/test/browser_net_charts-07.js
+++ b/devtools/client/netmonitor/test/browser_net_charts-07.js
@@ -12,17 +12,17 @@ add_task(async function() {
 
   const { monitor, tab } = await initNetMonitor(SIMPLE_URL);
   info("Starting test... ");
 
   const { document, windowRequire } = monitor.panelWin;
   const { Chart } = windowRequire("devtools/client/shared/widgets/Chart");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const table = Chart.Table(document, {
     data: [],
     totals: {
       label1: value => "Hello " + L10N.numberWithDecimals(value, 2),
       label2: value => "World " + L10N.numberWithDecimals(value, 2)
     },
--- a/devtools/client/netmonitor/test/browser_net_columns_showhide.js
+++ b/devtools/client/netmonitor/test/browser_net_columns_showhide.js
@@ -12,17 +12,17 @@ add_task(async function() {
 
   const { document, store, parent, connector, windowRequire } = monitor.panelWin;
   const { requestData } = connector;
   const {
     getSortedRequests,
   } = windowRequire("devtools/client/netmonitor/src/selectors/index");
 
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   const item = getSortedRequests(store.getState()).get(0);
   ok(item.responseHeadersAvailable, "headers are available for lazily fetching");
 
   if (item.responseHeadersAvailable && !item.responseHeaders) {
     await requestData(item.id, "responseHeaders");
   }
--- a/devtools/client/netmonitor/test/browser_net_edit_resend_caret.js
+++ b/devtools/client/netmonitor/test/browser_net_edit_resend_caret.js
@@ -16,17 +16,17 @@ add_task(async function() {
 
   const { document, store, windowRequire, parent } = monitor.panelWin;
   const parentDocument = parent.document;
   const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
   store.dispatch(Actions.batchEnable(false));
 
   // Reload to have one request in the list.
   const waitForEvents = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await waitForEvents;
 
   // Open context menu and execute "Edit & Resend".
   const firstRequest = document.querySelectorAll(".request-list-item")[0];
   const waitForHeaders = waitUntil(() => document.querySelector(".headers-overview"));
   EventUtils.sendMouseEvent({ type: "mousedown" }, firstRequest);
   await waitForHeaders;
   await waitForRequestData(store, ["requestHeaders"]);
--- a/devtools/client/netmonitor/test/browser_net_frame.js
+++ b/devtools/client/netmonitor/test/browser_net_frame.js
@@ -162,17 +162,17 @@ add_task(async function() {
   const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
   const {
     getDisplayedRequests,
     getSortedRequests,
   } = windowRequire("devtools/client/netmonitor/src/selectors/index");
 
   store.dispatch(Actions.batchEnable(false));
 
-  BrowserTestUtils.loadURI(tab.linkedBrowser, TOP_URL);
+  tab.linkedBrowser.loadURI(TOP_URL);
 
   await waitForNetworkEvents(monitor, REQUEST_COUNT);
 
   is(store.getState().requests.requests.size, REQUEST_COUNT,
     "All the page events should be recorded.");
 
   // Fetch stack-trace data from the backend and wait till
   // all packets are received.
--- a/devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js
+++ b/devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js
@@ -22,17 +22,17 @@ add_task(async function() {
   Services.telemetry.clearEvents();
 
   // Ensure no events have been logged
   const snapshot = Services.telemetry.snapshotEvents(OPTOUT, true);
   ok(!snapshot.parent, "No events have been logged for the main process");
 
   // Reload to have one request in the list.
   const waitForEvents = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await waitForEvents;
 
   // Open context menu and execute "Edit & Resend".
   const firstRequest = document.querySelectorAll(".request-list-item")[0];
   const waitForHeaders = waitUntil(() => document.querySelector(".headers-overview"));
   EventUtils.sendMouseEvent({ type: "mousedown" }, firstRequest);
   await waitForHeaders;
   await waitForRequestData(store, ["requestHeaders", "responseHeaders"]);
--- a/devtools/client/netmonitor/test/browser_net_telemetry_filters_changed.js
+++ b/devtools/client/netmonitor/test/browser_net_telemetry_filters_changed.js
@@ -26,17 +26,17 @@ add_task(async function() {
   Services.telemetry.clearEvents();
 
   // Ensure no events have been logged
   const snapshot = Services.telemetry.snapshotEvents(OPTOUT, true);
   ok(!snapshot.parent, "No events have been logged for the main process");
 
   // Reload to have one request in the list.
   const wait = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await wait;
 
   info("Click on the 'HTML' filter");
   EventUtils.sendMouseEvent({ type: "click" },
     document.querySelector(".requests-list-filter-html-button"));
 
   checkTelemetryEvent({
     trigger: "html",
--- a/devtools/client/netmonitor/test/browser_net_telemetry_sidepanel_changed.js
+++ b/devtools/client/netmonitor/test/browser_net_telemetry_sidepanel_changed.js
@@ -22,17 +22,17 @@ add_task(async function() {
   Services.telemetry.clearEvents();
 
   // Ensure no events have been logged
   const snapshot = Services.telemetry.snapshotEvents(OPTOUT, true);
   ok(!snapshot.parent, "No events have been logged for the main process");
 
   // Reload to have one request in the list.
   const waitForEvents = waitForNetworkEvents(monitor, 1);
-  BrowserTestUtils.loadURI(tab.linkedBrowser, SIMPLE_URL);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
   await waitForEvents;
 
   // Click on a request and wait till the default "Headers" side panel is opened.
   info("Click on a request");
   const waitForHeaders = waitUntil(() => document.querySelector(".headers-overview"));
   EventUtils.sendMouseEvent({ type: "mousedown" },
     document.querySelectorAll(".request-list-item")[0]);
   await waitForHeaders;
--- a/devtools/client/responsive.html/browser/swap.js
+++ b/devtools/client/responsive.html/browser/swap.js
@@ -112,17 +112,16 @@ function swapToInnerBrowser({ tab, conta
       const { newFrameloader } = E10SUtils.shouldLoadURIInBrowser(
         tab.linkedBrowser,
         "about:blank"
       );
       if (newFrameloader) {
         debug(`Tab will force a new frameloader on navigation, load about:blank first`);
         await loadURIWithNewFrameLoader(tab.linkedBrowser, "about:blank", {
           flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY,
-          triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
         });
       }
 
       tab.isResponsiveDesignMode = true;
 
       // Hide the browser content temporarily while things move around to avoid displaying
       // strange intermediate states.
       tab.linkedBrowser.style.visibility = "hidden";
@@ -151,17 +150,16 @@ function swapToInnerBrowser({ tab, conta
       // to achieve in a nice way.
       containerBrowser.messageManager.sendAsyncMessage("SessionStore:flush", {
         epoch: -1,
       });
       // Prevent the `containerURL` from ending up in the tab's history.
       debug("Load container URL");
       containerBrowser.loadURI(containerURL, {
         flags: Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_HISTORY,
-        triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
       });
 
       // Copy tab listener state flags to container tab.  Each tab gets its own tab
       // listener and state flags which cache document loading progress.  The state flags
       // are checked when switching tabs to update the browser UI.  The later step of
       // `swapBrowsersAndCloseOther` will fold the state back into the main tab.
       const stateFlags = gBrowser._tabListeners.get(tab).mStateFlags;
       gBrowser._tabListeners.get(containerTab).mStateFlags = stateFlags;
--- a/devtools/client/responsive.html/browser/web-navigation.js
+++ b/devtools/client/responsive.html/browser/web-navigation.js
@@ -59,34 +59,33 @@ BrowserElementWebNavigation.prototype = 
     // No equivalent in the current BrowserElement API
     this._sendMessage("WebNavigation:GotoIndex", { index });
   },
 
   loadURI(uri, flags, referrer, postData, headers) {
     // No equivalent in the current BrowserElement API
     this.loadURIWithOptions(uri, flags, referrer,
                             Ci.nsIHttpChannel.REFERRER_POLICY_UNSET,
-                            postData, headers, null,
-                            Services.scriptSecurityManager.createNullPrincipal({}));
+                            postData, headers, null, null);
   },
 
   loadURIWithOptions(uri, flags, referrer, referrerPolicy, postData, headers,
                      baseURI, triggeringPrincipal) {
     // No equivalent in the current BrowserElement API
     this._sendMessage("WebNavigation:LoadURI", {
       uri,
       flags,
       referrer: referrer ? referrer.spec : null,
       referrerPolicy: referrerPolicy,
       postData: postData ? readInputStreamToString(postData) : null,
       headers: headers ? readInputStreamToString(headers) : null,
       baseURI: baseURI ? baseURI.spec : null,
       triggeringPrincipal: triggeringPrincipal
                            ? Utils.serializePrincipal(triggeringPrincipal)
-                           : Services.scriptSecurityManager.createNullPrincipal({}),
+                           : null,
       requestTime: telemetry.msSystemNow(),
     });
   },
 
   setOriginAttributesBeforeLoading(originAttributes) {
     // No equivalent in the current BrowserElement API
     this._sendMessage("WebNavigation:SetOriginAttributes", {
       originAttributes,
--- a/devtools/client/responsive.html/test/browser/head.js
+++ b/devtools/client/responsive.html/test/browser/head.js
@@ -336,17 +336,17 @@ async function waitForPageShow(browser) 
 }
 
 function waitForViewportLoad(ui) {
   return BrowserTestUtils.waitForContentEvent(ui.getViewportBrowser(), "load", true);
 }
 
 function load(browser, url) {
   const loaded = BrowserTestUtils.browserLoaded(browser, false, url);
-  BrowserTestUtils.loadURI(browser, url);
+  browser.loadURI(url);
   return loaded;
 }
 
 function back(browser) {
   const shown = waitForPageShow(browser);
   browser.goBack();
   return shown;
 }
--- a/devtools/client/scratchpad/test/browser_scratchpad_browser_last_window_closing.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_browser_last_window_closing.js
@@ -11,17 +11,17 @@ function test() {
   // Observer must be attached *before* Scratchpad is opened.
   CloseObserver.init();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,<p>test browser last window closing</p>");
+  gBrowser.loadURI("data:text/html;charset=utf8,<p>test browser last window closing</p>");
 }
 
 function runTests({ Scratchpad }) {
   const browser = Services.wm.getEnumerator("navigator:browser").getNext();
   const oldPrompt = Services.prompt;
   let button;
 
   Services.prompt = {
--- a/devtools/client/scratchpad/test/browser_scratchpad_chrome_context_pref.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_chrome_context_pref.js
@@ -10,17 +10,17 @@ function test() {
 
   Services.prefs.setBoolPref(DEVTOOLS_CHROME_ENABLED, true);
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,Scratchpad test for bug 646070 - chrome context preference");
+  gBrowser.loadURI("data:text/html,Scratchpad test for bug 646070 - chrome context preference");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   ok(sp, "Scratchpad object exists in new window");
 
   const environmentMenu = gScratchpadWindow.document
                           .getElementById("sp-environment-menu");
--- a/devtools/client/scratchpad/test/browser_scratchpad_contexts.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_contexts.js
@@ -6,17 +6,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,test context switch in Scratchpad");
+  gBrowser.loadURI("data:text/html,test context switch in Scratchpad");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   const contentMenu = gScratchpadWindow.document.getElementById("sp-menu-content");
   const chromeMenu = gScratchpadWindow.document.getElementById("sp-menu-browser");
   const notificationBox = sp.notificationBox;
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_display_non_error_exceptions.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_display_non_error_exceptions.js
@@ -6,17 +6,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests, {"state": {"text": ""}});
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html, test that exceptions are output as " +
+  gBrowser.loadURI("data:text/html, test that exceptions are output as " +
                    "comments correctly in Scratchpad");
 }
 
 function runTests() {
   var scratchpad = gScratchpadWindow.Scratchpad;
 
   var message = "\"Hello World!\"";
   var openComment = "\n/*\n";
--- a/devtools/client/scratchpad/test/browser_scratchpad_display_outputs_errors.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_display_outputs_errors.js
@@ -6,17 +6,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests, {"state": {"text": ""}});
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test that exceptions are output as " +
+  gBrowser.loadURI("data:text/html,<p>test that exceptions are output as " +
                    "comments for 'display' and not sent to the console in Scratchpad");
 }
 
 function runTests() {
   const scratchpad = gScratchpadWindow.Scratchpad;
 
   const message = "\"Hello World!\"";
   const openComment = "\n/*\n";
--- a/devtools/client/scratchpad/test/browser_scratchpad_edit_ui_updates.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_edit_ui_updates.js
@@ -11,17 +11,17 @@ var DEVTOOLS_CHROME_ENABLED = "devtools.
 function test() {
   waitForExplicitFinish();
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   Services.prefs.setBoolPref(DEVTOOLS_CHROME_ENABLED, false);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,test Edit menu updates Scratchpad - bug 699130");
+  gBrowser.loadURI("data:text/html,test Edit menu updates Scratchpad - bug 699130");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   const doc = gScratchpadWindow.document;
   const winUtils = gScratchpadWindow.windowUtils;
   const OS = Services.appinfo.OS;
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_eval_func.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_eval_func.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,test Scratchpad eval function.");
+  gBrowser.loadURI("data:text/html;charset=utf8,test Scratchpad eval function.");
 }
 
 function reportErrorAndQuit(error) {
   DevToolsUtils.reportException("browser_scratchpad_eval_func.js", error);
   ok(false);
   finish();
 }
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_execute_print.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_execute_print.js
@@ -6,17 +6,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test run() and display() in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test run() and display() in Scratchpad");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   const tests = [{
     method: "run",
     prepare: async function() {
       await inContent(function() {
--- a/devtools/client/scratchpad/test/browser_scratchpad_falsy.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_falsy.js
@@ -6,17 +6,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(testFalsy);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test falsy display() values in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test falsy display() values in Scratchpad");
 }
 
 function testFalsy() {
   const scratchpad = gScratchpadWindow.Scratchpad;
   verifyFalsies(scratchpad).then(function() {
     scratchpad.setBrowserContext();
     verifyFalsies(scratchpad).then(finish);
   });
--- a/devtools/client/scratchpad/test/browser_scratchpad_files.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_files.js
@@ -14,17 +14,17 @@ var gFileContent = "hello.world('bug6367
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test file open and save in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test file open and save in Scratchpad");
 }
 
 function runTests() {
   gScratchpad = gScratchpadWindow.Scratchpad;
 
   createTempFile("fileForBug636725.tmp", gFileContent, function(aStatus, aFile) {
     ok(Components.isSuccessCode(aStatus),
       "The temporary file was saved successfully");
--- a/devtools/client/scratchpad/test/browser_scratchpad_goto_line_ui.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_goto_line_ui.js
@@ -6,17 +6,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test the 'Jump to line' feature in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test the 'Jump to line' feature in Scratchpad");
 }
 
 function runTests(aWindow, aScratchpad) {
   const editor = aScratchpad.editor;
   const text = "foobar bug650345\nBug650345 bazbaz\nfoobar omg\ntest";
   editor.setText(text);
   editor.setCursor({ line: 0, ch: 0 });
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_help_key.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_help_key.js
@@ -2,17 +2,17 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 /* Bug 650760 */
 
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,Test keybindings for opening Scratchpad MDN Documentation, bug 650760");
+  gBrowser.loadURI("data:text/html,Test keybindings for opening Scratchpad MDN Documentation, bug 650760");
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTest);
   });
 }
 
 function runTest() {
   const sp = gScratchpadWindow.Scratchpad;
   ok(sp, "Scratchpad object exists in new window");
--- a/devtools/client/scratchpad/test/browser_scratchpad_initialization.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_initialization.js
@@ -8,17 +8,17 @@ function test() {
   waitForExplicitFinish();
 
   Services.prefs.setBoolPref(DEVTOOLS_CHROME_ENABLED, false);
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,initialization test for Scratchpad");
+  gBrowser.loadURI("data:text/html,initialization test for Scratchpad");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   ok(sp, "Scratchpad object exists in new window");
   is(typeof sp.run, "function", "Scratchpad.run() exists");
   is(typeof sp.inspect, "function", "Scratchpad.inspect() exists");
   is(typeof sp.display, "function", "Scratchpad.display() exists");
--- a/devtools/client/scratchpad/test/browser_scratchpad_inspect.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_inspect.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,<p>test inspect() in Scratchpad</p>");
+  gBrowser.loadURI("data:text/html;charset=utf8,<p>test inspect() in Scratchpad</p>");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
 
   sp.setText("({ a: 'foobarBug636725' })");
 
   sp.inspect().then(function() {
--- a/devtools/client/scratchpad/test/browser_scratchpad_long_string.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_long_string.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,<p>test long string in Scratchpad</p>");
+  gBrowser.loadURI("data:text/html;charset=utf8,<p>test long string in Scratchpad</p>");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
 
   sp.setText("'0'.repeat(10000)");
 
   sp.display().then(() => {
--- a/devtools/client/scratchpad/test/browser_scratchpad_modeline.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_modeline.js
@@ -14,17 +14,17 @@ function test() {
   waitForExplicitFinish();
 
   Services.prefs.setBoolPref(DEVTOOLS_CHROME_ENABLED, false);
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test file open and save in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test file open and save in Scratchpad");
 }
 
 function runTests() {
   gScratchpad = gScratchpadWindow.Scratchpad;
   function size(obj) {
     return Object.keys(obj).length;
   }
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_open_error_console.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_open_error_console.js
@@ -7,17 +7,17 @@ const {HUDService} = require("devtools/c
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,test Scratchpad." +
+  gBrowser.loadURI("data:text/html;charset=utf8,test Scratchpad." +
                    "openErrorConsole()");
 }
 
 function runTests() {
   Services.obs.addObserver(function observer(aSubject) {
     Services.obs.removeObserver(observer, "web-console-created");
     aSubject.QueryInterface(Ci.nsISupportsString);
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_pprint-02.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_pprint-02.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,test Scratchpad pretty print.");
+  gBrowser.loadURI("data:text/html;charset=utf8,test Scratchpad pretty print.");
 }
 
 var gTabsize;
 
 function runTests(sw) {
   gTabsize = Services.prefs.getIntPref("devtools.editor.tabsize");
   Services.prefs.setIntPref("devtools.editor.tabsize", 6);
   const space = " ".repeat(6);
--- a/devtools/client/scratchpad/test/browser_scratchpad_pprint.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_pprint.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,test Scratchpad pretty print.");
+  gBrowser.loadURI("data:text/html;charset=utf8,test Scratchpad pretty print.");
 }
 
 function runTests(sw) {
   const sp = sw.Scratchpad;
   sp.setText("function main() { console.log(5); }");
   sp.prettyPrint().then(() => {
     const prettyText = sp.getText();
     ok(prettyText.includes("\n"));
--- a/devtools/client/scratchpad/test/browser_scratchpad_pprint_error_goto_line.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_pprint_error_goto_line.js
@@ -8,17 +8,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,"
+  gBrowser.loadURI("data:text/html;charset=utf8,"
                    + "test Scratchpad pretty print error goto line.");
 }
 
 function testJumpToPrettyPrintError(sp, error, remark) {
   info("will test jumpToLine after prettyPrint error" + remark);
 
   // CodeMirror lines and columns are 0-based, Scratchpad UI and error
   // stack are 1-based.
--- a/devtools/client/scratchpad/test/browser_scratchpad_recent_files.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_recent_files.js
@@ -322,14 +322,14 @@ function test() {
   // files max for this test.
   PreferenceObserver.init();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(startTest);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test recent files in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test recent files in Scratchpad");
 }
 
 function finishTest() {
   finish();
 }
--- a/devtools/client/scratchpad/test/browser_scratchpad_remember_view_options.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_remember_view_options.js
@@ -11,17 +11,17 @@ function test() {
   // view menu options. After each change we compare the correspondent
   // preference value with the expected value.
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<title>Bug 1140839</title>" +
+  gBrowser.loadURI("data:text/html,<title>Bug 1140839</title>" +
                    "<p>test Scratchpad should remember View options");
 }
 
 function runTests() {
   const doc = gScratchpadWindow.document;
 
   const testData = [
     {itemMenuId: "sp-menu-line-numbers", prefId: "devtools.scratchpad.lineNumbers", expectedVal: false},
--- a/devtools/client/scratchpad/test/browser_scratchpad_reset_undo.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_reset_undo.js
@@ -23,17 +23,17 @@ var gFirstFileSaved = false;
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test that undo get's reset after file load in Scratchpad");
+  gBrowser.loadURI("data:text/html,<p>test that undo get's reset after file load in Scratchpad");
 }
 
 function runTests() {
   gScratchpad = gScratchpadWindow.Scratchpad;
 
   // Create a temporary file.
   gFileA = FileUtils.getFile("TmpD", ["fileAForBug684546.tmp"]);
   gFileA.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o666);
--- a/devtools/client/scratchpad/test/browser_scratchpad_revert_to_saved.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_revert_to_saved.js
@@ -117,11 +117,11 @@ function tempFileSaved(aStatus) {
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(startTest);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test reverting to last saved state of" +
+  gBrowser.loadURI("data:text/html,<p>test reverting to last saved state of" +
                    " a file </p>");
 }
--- a/devtools/client/scratchpad/test/browser_scratchpad_run_error_goto_line.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_run_error_goto_line.js
@@ -8,17 +8,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,test Scratchpad pretty print.");
+  gBrowser.loadURI("data:text/html;charset=utf8,test Scratchpad pretty print.");
 }
 
 function runTests(sw) {
   const sp = sw.Scratchpad;
   sp.setText([
     "// line 1",
     "// line 2",
     "var re = /a bad /regexp/; // line 3 is an obvious syntax error!",
--- a/devtools/client/scratchpad/test/browser_scratchpad_tab.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_tab.js
@@ -10,17 +10,17 @@ function test() {
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     Services.prefs.setIntPref("devtools.editor.tabsize", 5);
 
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,Scratchpad test for the Tab key, bug 660560");
+  gBrowser.loadURI("data:text/html,Scratchpad test for the Tab key, bug 660560");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   ok(sp, "Scratchpad object exists in new window");
 
   ok(sp.editor.hasFocus(), "the editor has focus");
 
--- a/devtools/client/scratchpad/test/browser_scratchpad_tab_switch.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_tab_switch.js
@@ -12,20 +12,20 @@ function test() {
   tab1 = BrowserTestUtils.addTab(gBrowser);
   gBrowser.selectedTab = tab1;
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     tab2 = BrowserTestUtils.addTab(gBrowser);
     gBrowser.selectedTab = tab2;
     BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
       openScratchpad(runTests);
     });
-    BrowserTestUtils.loadURI(gBrowser, "data:text/html,test context switch in Scratchpad tab 2");
+    gBrowser.loadURI("data:text/html,test context switch in Scratchpad tab 2");
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,test context switch in Scratchpad tab 1");
+  gBrowser.loadURI("data:text/html,test context switch in Scratchpad tab 1");
 }
 
 async function runTests() {
   sp = gScratchpadWindow.Scratchpad;
 
   const contentMenu = gScratchpadWindow.document.getElementById("sp-menu-content");
   const browserMenu = gScratchpadWindow.document.getElementById("sp-menu-browser");
   const notificationBox = sp.notificationBox;
@@ -77,17 +77,17 @@ async function runTests2() {
   sp.setText("window.foosbug653108 = 'ahoyhoy';");
   await sp.run();
   await ContentTask.spawn(gBrowser.selectedBrowser, null, function() {
     is(content.wrappedJSObject.foosbug653108, "ahoyhoy",
       "content.foosbug653108 has been set 2");
   });
 
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(runTests3);
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,test context switch in Scratchpad location 2");
+  gBrowser.loadURI("data:text/html,test context switch in Scratchpad location 2");
 }
 
 function runTests3() {
   // Check that the sandbox is not cached.
 
   sp.setText("typeof foosbug653108;");
   sp.run().then(function([, , result]) {
     is(result, "undefined", "global variable does not exist");
--- a/devtools/client/scratchpad/test/browser_scratchpad_throw_output.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_throw_output.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(testThrowOutput);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,<p>Test throw outputs in Scratchpad</p>");
+  gBrowser.loadURI("data:text/html;charset=utf8,<p>Test throw outputs in Scratchpad</p>");
 }
 
 function testThrowOutput() {
   const scratchpad = gScratchpadWindow.Scratchpad, tests = [];
 
   const falsyValues = ["false", "0", "-0", "null", "undefined", "Infinity",
                        "-Infinity", "NaN"];
   falsyValues.forEach(function(value) {
--- a/devtools/client/scratchpad/test/browser_scratchpad_ui.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_ui.js
@@ -5,17 +5,17 @@
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(function() {
     openScratchpad(runTests);
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<title>foobarBug636725</title>" +
+  gBrowser.loadURI("data:text/html,<title>foobarBug636725</title>" +
                    "<p>test inspect() in Scratchpad");
 }
 
 function runTests() {
   const sp = gScratchpadWindow.Scratchpad;
   const doc = gScratchpadWindow.document;
 
   const methodsAndItems = {
--- a/devtools/client/scratchpad/test/browser_scratchpad_unsaved.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_unsaved.js
@@ -16,17 +16,17 @@ function test() {
   waitForExplicitFinish();
 
   testListeners();
   testRestoreNotFromFile();
   testRestoreFromFileSaved();
   testRestoreFromFileUnsaved();
 
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html,<p>test star* UI for unsaved file changes");
+  gBrowser.loadURI("data:text/html,<p>test star* UI for unsaved file changes");
 }
 
 function testListeners() {
   openScratchpad(function(aWin, aScratchpad) {
     aScratchpad.setText("new text");
     ok(isStar(aWin), "show star if scratchpad text changes");
 
     aScratchpad.dirty = false;
--- a/devtools/client/scratchpad/test/browser_scratchpad_wrong_window_focus.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_wrong_window_focus.js
@@ -31,17 +31,17 @@ function test() {
           const hud = toolbox.getCurrentPanel().hud;
           hud.ui.clearOutput(true);
           testFocus(sw, hud);
         });
       });
     });
   });
 
-  BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8,<p>test window focus for Scratchpad.");
+  gBrowser.loadURI("data:text/html;charset=utf8,<p>test window focus for Scratchpad.");
 }
 
 function testFocus(sw, hud) {
   const sp = sw.Scratchpad;
 
   function onMessage(messages) {
     const msg = [...messages][0];
     const node = msg.node;
--- a/devtools/client/scratchpad/test/head.js
+++ b/devtools/client/scratchpad/test/head.js
@@ -82,17 +82,17 @@ function openTabAndScratchpad(aOptions =
   waitForExplicitFinish();
   // eslint-disable-next-line new-cap
   return new promise(resolve => {
     gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
     const {selectedBrowser} = gBrowser;
     BrowserTestUtils.browserLoaded(selectedBrowser).then(function() {
       openScratchpad((win, sp) => resolve([win, sp]), aOptions);
     });
-    BrowserTestUtils.loadURI(gBrowser, "data:text/html;charset=utf8," + (aOptions.tabContent || ""));
+    gBrowser.loadURI("data:text/html;charset=utf8," + (aOptions.tabContent || ""));
   });
 }
 
 /**
  * Create a temporary file, write to it and call a callback
  * when done.
  *
  * @param string aName
--- a/devtools/client/styleeditor/test/head.js
+++ b/devtools/client/styleeditor/test/head.js
@@ -41,17 +41,17 @@ var addTab = function(url, win) {
  * Navigate the currently selected tab to a new URL and wait for it to load.
  * @param {String} url The url to be loaded in the current tab.
  * @return a promise that resolves when the page has fully loaded.
  */
 var navigateTo = function(url) {
   info(`Navigating to ${url}`);
   const browser = gBrowser.selectedBrowser;
 
-  BrowserTestUtils.loadURI(browser, url);
+  browser.loadURI(url);
   return BrowserTestUtils.browserLoaded(browser);
 };
 
 var navigateToAndWaitForStyleSheets = async function(url, ui) {
   const onReset = ui.once("stylesheets-reset");
   await navigateTo(url);
   await onReset;
 };
--- a/docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js
+++ b/docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js
@@ -9,24 +9,24 @@ add_task(async function runTests() {
 
   registerCleanupFunction(function() {
     gBrowser.removeTab(tab);
   });
 
   let browser = tab.linkedBrowser;
 
   let loaded = BrowserTestUtils.browserLoaded(browser);
-  BrowserTestUtils.loadURI(browser, "about:config");
+  browser.loadURI("about:config");
   let href = await loaded;
   is(href, "about:config", "Check about:config loaded");
 
   // Using a dummy onunload listener to disable the bfcache as that can prevent
   // the test browser load detection mechanism from working.
   loaded = BrowserTestUtils.browserLoaded(browser);
-  BrowserTestUtils.loadURI(browser, "data:text/html,<body%20onunload=''><iframe></iframe></body>");
+  browser.loadURI("data:text/html,<body%20onunload=''><iframe></iframe></body>");
   href = await loaded;
   is(href, "data:text/html,<body%20onunload=''><iframe></iframe></body>",
     "Check data URL loaded");
 
   loaded = BrowserTestUtils.browserLoaded(browser);
   browser.goBack();
   href = await loaded;
   is(href, "about:config", "Check we've gone back to about:config");
--- a/docshell/test/browser/browser_bug1415918_beforeunload_options.js
+++ b/docshell/test/browser/browser_bug1415918_beforeunload_options.js
@@ -99,17 +99,17 @@ add_task(async function test() {
 
   /*
    * Check condition where no one requests a prompt.  In all cases,
    * permitUnload should be true, and all handlers fired.
    */
 
   buttonId = "button0";
   url = TEST_PATH + "file_bug1415918_beforeunload_2.html";
-  BrowserTestUtils.loadURI(browser, url);
+  browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(browser, false, url);
   buttonId = "";
 
   promptShown = false;
   ok(browser.permitUnload().permitUnload, "permit unload should be true");
   ok(!promptShown, "prompt should not have been displayed");
 
   // Check that all beforeunload handlers fired and reset attributes.
@@ -153,17 +153,17 @@ add_task(async function test() {
 
   /*
    * Check condition where the parent beforeunload handler does not request a prompt,
    * but a child beforeunload handler does.
    */
 
   buttonId = "button0";
   url = TEST_PATH + "file_bug1415918_beforeunload_3.html";
-  BrowserTestUtils.loadURI(browser, url);
+  browser.loadURI(url);
   await BrowserTestUtils.browserLoaded(browser, false, url);
 
   // Prompt is shown, user clicks OK.
   promptShown = false;
   ok(browser.permitUnload().permitUnload, "permit unload should be true");
   ok(promptShown, "prompt should have been displayed");
 
   // Check that all beforeunload handlers fired and reset attributes.
--- a/docshell/test/browser/browser_bug420605.js
+++ b/docshell/test/browser/browser_bug420605.js
@@ -108,10 +108,10 @@ function test() {
     var info = getNavHistoryEntry(makeURI(pageurl));
     ok(!info, "The test page must not have been visited already.");
     info = getNavHistoryEntry(makeURI(fragmenturl));
     ok(!info, "The fragment test page must not have been visited already.");
 
     // Now open the test page in a new tab.
     gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
     BrowserTestUtils.waitForContentEvent(gBrowser.selectedBrowser, "DOMContentLoaded", true).then(onPageLoad);
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, pageurl);
+    gBrowser.selectedBrowser.loadURI(pageurl);
 }
--- a/docshell/test/browser/browser_bug422543.js
+++ b/docshell/test/browser/browser_bug422543.js
@@ -4,17 +4,17 @@
 add_task(async function runTests() {
   await setup();
   let browser = gBrowser.selectedBrowser;
   // Now that we're set up, initialize our frame script.
   await checkListeners("initial", "listeners initialized");
 
   // Check if all history listeners are always notified.
   info("# part 1");
-  await whenPageShown(browser, () => BrowserTestUtils.loadURI(browser, "http://www.example.com/"));
+  await whenPageShown(browser, () => browser.loadURI("http://www.example.com/"));
   await checkListeners("newentry", "shistory has a new entry");
   ok(browser.canGoBack, "we can go back");
 
   await whenPageShown(browser, () => browser.goBack());
   await checkListeners("gotoindex", "back to the first shentry");
   ok(browser.canGoForward, "we can go forward");
 
   await whenPageShown(browser, () => browser.goForward());
--- a/docshell/test/browser/browser_dataURI_unique_opaque_origin.js
+++ b/docshell/test/browser/browser_dataURI_unique_opaque_origin.js
@@ -9,17 +9,17 @@ add_task(async function setup() {
 add_task(async function test_dataURI_unique_opaque_origin() {
   let tab = BrowserTestUtils.addTab(gBrowser, "http://example.com");
   let browser = tab.linkedBrowser;
   await BrowserTestUtils.browserLoaded(browser);
 
   let pagePrincipal = browser.contentPrincipal;
   info("pagePrincial " + pagePrincipal.origin);
 
-  BrowserTestUtils.loadURI(browser, "data:text/html,hi");
+  browser.loadURI("data:text/html,hi");
   await BrowserTestUtils.browserLoaded(browser);
 
   await ContentTask.spawn(browser, { principal: pagePrincipal }, async function(args) {
     info("data URI principal: " + content.document.nodePrincipal.origin);
     Assert.ok(content.document.nodePrincipal.isNullPrincipal,
               "data: URI should have NullPrincipal.");
     Assert.ok(!content.document.nodePrincipal.equals(args.principal),
               "data: URI should have unique opaque origin.");
--- a/docshell/test/browser/browser_loadDisallowInherit.js
+++ b/docshell/test/browser/browser_loadDisallowInherit.js
@@ -1,57 +1,48 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 function test() {
   waitForExplicitFinish();
 
   // data: URI will only inherit principal only when the pref is false.
   Services.prefs.setBoolPref("security.data_uri.unique_opaque_origin", false);
-  // data: URIs will only open at the top level when the pref is false
-  //   or the use of system principal but we can't use that to test here.
-  Services.prefs.setBoolPref("security.data_uri.block_toplevel_data_uri_navigations", false);
   registerCleanupFunction(function () {
     Services.prefs.clearUserPref("security.data_uri.unique_opaque_origin");
-    Services.prefs.clearUserPref("security.data_uri.block_toplevel_data_uri_navigations");
   });
 
   executeSoon(startTest);
 }
 
 function startTest() {
   let tab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   let browser = gBrowser.getBrowserForTab(tab);
 
-  function loadURL(url, flags, triggeringPrincipal, func) {
+  function loadURL(url, flags, func) {
     BrowserTestUtils.browserLoaded(browser, false, url).then(() => {
       func();
     });
-    browser.loadURI(url, { flags, triggeringPrincipal });
+    browser.loadURI(url, { flags });
   }
 
   // Load a normal http URL
   function testURL(url, func) {
-    let secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].
-                   getService(Ci.nsIScriptSecurityManager);
-    let ios = Cc["@mozilla.org/network/io-service;1"].
-                getService(Ci.nsIIOService);
-    let artificialPrincipal = secMan.createCodebasePrincipal(ios.newURI("http://example.com/"), {});
-    loadURL("http://example.com/", 0, artificialPrincipal, function () {
+    loadURL("http://example.com/", 0, function () {
       let pagePrincipal = browser.contentPrincipal;
       ok(pagePrincipal, "got principal for http:// page");
 
       // Now load the URL normally
-      loadURL(url, 0, artificialPrincipal, function () {
+      loadURL(url, 0, function () {
         ok(browser.contentPrincipal.equals(pagePrincipal), url + " should inherit principal");
 
         // Now load the URL and disallow inheriting the principal
         let webNav = Ci.nsIWebNavigation;
-        loadURL(url, webNav.LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL, artificialPrincipal, function () {
+        loadURL(url, webNav.LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL, function () {
           let newPrincipal = browser.contentPrincipal;
           ok(newPrincipal, "got inner principal");
           ok(!newPrincipal.equals(pagePrincipal),
              url + " should not inherit principal when loaded with DISALLOW_INHERIT_OWNER");
 
           func();
         });
       });
--- a/docshell/test/browser/browser_loadURI.js
+++ b/docshell/test/browser/browser_loadURI.js
@@ -14,21 +14,18 @@ function test() {
   var dataStream = Cc["@mozilla.org/io/string-input-stream;1"].
                    createInstance(Ci.nsIStringInputStream);
   dataStream.data = gPostData;
 
   var postStream = Cc["@mozilla.org/network/mime-input-stream;1"].
                    createInstance(Ci.nsIMIMEInputStream);
   postStream.addHeader("Content-Type", "application/x-www-form-urlencoded");
   postStream.setData(dataStream);
-  var systemPrincipal = Cc["@mozilla.org/systemprincipal;1"]
-                          .getService(Ci.nsIPrincipal);
 
   tab.linkedBrowser.loadURI("http://mochi.test:8888/browser/docshell/test/browser/print_postdata.sjs", {
-    triggeringPrincipal,
     postData: postStream,
   });
   BrowserTestUtils.browserLoaded(tab.linkedBrowser).then(() => {
     ContentTask.spawn(tab.linkedBrowser, gPostData, function(postData) {
       var bodyText = content.document.body.textContent;
       is(bodyText, postData, "post data was submitted correctly");
     }).then(() => { finish(); });
   });
--- a/docshell/test/chrome/bug112564_window.xul
+++ b/docshell/test/chrome/bug112564_window.xul
@@ -9,17 +9,16 @@
 <window id="112564Test"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         width="600"
         height="600"
         onload="onLoad();"
         title="112564 test">
 
   <script type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
     const LISTEN_EVENTS = ["load", "unload", "pageshow", "pagehide"];
 
     var gBrowser;
     var gTestsIterator;
     var gExpected = [];
 
     function ok(condition, message) {
       window.opener.wrappedJSObject.SimpleTest.ok(condition, message);
@@ -84,26 +83,26 @@
       // Load a secure page with a no-cache header, followed by a simple page.
       // no-cache should not interfere with the bfcache in the way no-store
       // does.
       var test1DocURI = "https://example.com:443/tests/docshell/test/chrome/112564_nocache.html";
 
       gExpected = [{type: "pagehide", persisted: true},
                    {type: "load", title: "test1"},
                    {type: "pageshow", title: "test1", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test1DocURI);
+      gBrowser.loadURI(test1DocURI);
       yield undefined;
 
       var test2Doc = "data:text/html,<html><head><title>test2</title></head>" +
                      "<body>test2</body></html>";
 
       gExpected = [{type: "pagehide", title: "test1", persisted: true},
                    {type: "load", title: "test2"},
                    {type: "pageshow", title: "test2", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test2Doc);
+      gBrowser.loadURI(test2Doc);
       yield undefined;
 
       // Now go back in history. First page has been cached.
       // Check persisted property to confirm
       gExpected = [{type: "pagehide", title: "test2", persisted: true},
                    {type: "pageshow", title: "test1", persisted: true}];
       gBrowser.goBack();
       yield undefined;
--- a/docshell/test/chrome/bug215405_window.xul
+++ b/docshell/test/chrome/bug215405_window.xul
@@ -9,17 +9,16 @@
 <window id="215405Test"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         width="600"
         height="600"
         onload="onLoad();"
         title="215405 test">
 
   <script type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
     var imports = [ "SimpleTest", "is", "isnot", "ok"];
     for (var name of imports) {
       window[name] = window.opener.wrappedJSObject[name];
     }
 
     const text="MOZILLA";
     const nostoreURI = "http://mochi.test:8888/tests/docshell/test/chrome/" +
                        "215405_nostore.html";
@@ -57,17 +56,17 @@
       gTestsIterator.next();
     }
 
     function* testsIterator() {
       // No-store tests
       var testName = "[nostore]";
 
       // Load a page with a no-store header
-      BrowserTestUtils.loadURI(gBrowser, nostoreURI);
+      gBrowser.loadURI(nostoreURI);
       yield undefined;
 
 
       // Now that the page has loaded, amend the form contents
       var form = gBrowser.contentDocument.getElementById("inp");
       form.value = text;
 
       // Attempt to scroll the page
@@ -83,17 +82,17 @@
       isnot(scrollX, originalXPosition,
             testName + " failed to scroll window horizontally");
       isnot(scrollY, originalYPosition,
             testName + " failed to scroll window vertically");
 
       // Load a new document into the browser
       var simple = "data:text/html,<html><head><title>test2</title></head>" +
                      "<body>test2</body></html>";
-      BrowserTestUtils.loadURI(gBrowser, simple);
+      gBrowser.loadURI(simple);
       yield undefined;
 
 
       // Now go back in history. First page should not have been cached.
       gBrowser.goBack();
       yield undefined;
 
 
@@ -107,17 +106,17 @@
       isnot(formValue, text, testName + " form value incorrectly restored");
 
     
       // https no-cache
       testName = "[nocache]";
 
       // Load a page with a no-cache header. This should not be
       // restricted like no-store (bug 567365)
-      BrowserTestUtils.loadURI(gBrowser, nocacheURI);
+      gBrowser.loadURI(nocacheURI);
       yield undefined;
 
 
       // Now that the page has loaded, amend the form contents
       form = gBrowser.contentDocument.getElementById("inp");
       form.value = text;
 
       // Attempt to scroll the page
@@ -130,17 +129,17 @@
       // Save the scroll position for future comparison
       scrollX = gBrowser.contentWindow.scrollX;
       scrollY = gBrowser.contentWindow.scrollY;
       isnot(scrollX, originalXPosition,
             testName + " failed to scroll window horizontally");
       isnot(scrollY, originalYPosition,
             testName + " failed to scroll window vertically");
 
-      BrowserTestUtils.loadURI(gBrowser, simple);
+      gBrowser.loadURI(simple);
       yield undefined;
 
 
       // Now go back in history to the cached page.
       gBrowser.goBack();
       yield undefined;
 
 
--- a/docshell/test/chrome/bug364461_window.xul
+++ b/docshell/test/chrome/bug364461_window.xul
@@ -9,17 +9,17 @@
 <window id="364461Test"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         width="600"
         height="600"
         onload="onLoad();"
         title="364461 test">
 
   <script type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
+
     const LISTEN_EVENTS = ["load", "unload", "pageshow", "pagehide"];
 
     var gBrowser;
     var gTestsIterator;
     var gExpected = [];
 
     function ok(condition, message) {
       window.opener.wrappedJSObject.SimpleTest.ok(condition, message);
@@ -71,36 +71,37 @@
       }
     }
 
     function nextTest() {
       gTestsIterator.next();
     }
 
     function* testsIterator() {
+
       // Tests 1 + 2:
       //  Back/forward between two simple documents. Bfcache will be used.
 
       var test1Doc = "data:text/html,<html><head><title>test1</title></head>" +
                      "<body>test1</body></html>";
 
       gExpected = [{type: "pagehide", persisted: true},
 
                    {type: "load", title: "test1"},
                    {type: "pageshow", title: "test1", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test1Doc);
+      gBrowser.loadURI(test1Doc);
       yield undefined;
 
       var test2Doc = "data:text/html,<html><head><title>test2</title></head>" +
                      "<body>test2</body></html>";
 
       gExpected = [{type: "pagehide", title: "test1", persisted: true},
                    {type: "load", title: "test2"},
                    {type: "pageshow", title: "test2", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test2Doc);
+      gBrowser.loadURI(test2Doc);
       yield undefined;
 
       gExpected = [{type: "pagehide", title: "test2", persisted: true},
                    {type: "pageshow", title: "test1", persisted: true}];
       gBrowser.goBack();
       yield undefined;
       
       gExpected = [{type: "pagehide", title: "test1", persisted: true},
@@ -128,28 +129,28 @@
 
       gExpected = [{type: "pagehide", title: "test2", persisted: true},
                    {type: "load", title: "test3-nested2"},
                    {type: "pageshow", title: "test3-nested2", persisted: false},
                    {type: "load", title: "test3-nested1"},
                    {type: "pageshow", title: "test3-nested1", persisted: false},
                    {type: "load", title: "test3"},
                    {type: "pageshow", title: "test3", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test3Doc);
+      gBrowser.loadURI(test3Doc);
       yield undefined;
 
       var test4Doc = "data:text/html,<html><head><title>test4</title></head>" +
                      "<body>test4</body></html>";
 
       gExpected = [{type: "pagehide", title: "test3", persisted: true},
                    {type: "pagehide", title: "test3-nested1", persisted: true},
                    {type: "pagehide", title: "test3-nested2", persisted: true},
                    {type: "load", title: "test4"},
                    {type: "pageshow", title: "test4", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test4Doc);
+      gBrowser.loadURI(test4Doc);
       yield undefined;
 
       gExpected = [{type: "pagehide", title: "test4", persisted: true},
                    {type: "pageshow", title: "test3-nested2", persisted: true},
                    {type: "pageshow", title: "test3-nested1", persisted: true},
                    {type: "pageshow", title: "test3", persisted: true}];
       gBrowser.goBack();
       yield undefined;
@@ -169,27 +170,27 @@
       
       var test5Doc = "data:text/html,<html><head><title>test5</title></head>" +
                      "<body onunload='while(false) { /* nop */ }'>" +
                      "test5</body></html>";
 
       gExpected = [{type: "pagehide", title: "test4", persisted: true},
                    {type: "load", title: "test5"},
                    {type: "pageshow", title: "test5", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test5Doc);
+      gBrowser.loadURI(test5Doc);
       yield undefined;
 
       var test6Doc = "data:text/html,<html><head><title>test6</title></head>" +
                      "<body>test6</body></html>";
 
       gExpected = [{type: "pagehide", title: "test5", persisted: false},
                    {type: "unload", title: "test5"},
                    {type: "load", title: "test6"},
                    {type: "pageshow", title: "test6", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test6Doc);
+      gBrowser.loadURI(test6Doc);
       yield undefined;
 
       gExpected = [{type: "pagehide", title: "test6", persisted: true},
                    {type: "load", title: "test5"},
                    {type: "pageshow", title: "test5", persisted: false}];
       gBrowser.goBack();
       yield undefined;
       
@@ -215,17 +216,17 @@
                       "</iframe>" +
                     "</body></html>";
       
       gExpected = [{type: "pagehide", title: "test6", persisted: true},
                    {type: "load", title: "test7-nested1"},
                    {type: "pageshow", title: "test7-nested1", persisted: false},
                    {type: "load", title: "test7"},
                    {type: "pageshow", title: "test7", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test7Doc);
+      gBrowser.loadURI(test7Doc);
       yield undefined;
 
       // Simulates a click on the link inside the iframe
       function clickIframeLink() {
         var iframe = gBrowser.contentDocument.getElementsByTagName("iframe")[0];
         var w = iframe.contentWindow;
         var d = iframe.contentDocument;
         
--- a/docshell/test/chrome/bug396519_window.xul
+++ b/docshell/test/chrome/bug396519_window.xul
@@ -9,17 +9,17 @@
 <window id="396519Test"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         width="600"
         height="600"
         onload="onLoad();"
         title="396519 test">
 
   <script type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
+
     const LISTEN_EVENTS = ["pageshow"];
 
     var gBrowser;
     var gTestCount = 0;
     var gTestsIterator;
     var gExpected = [];
 
     function ok(condition, message) {
@@ -88,51 +88,52 @@
       setTimeout(nextTest, 0);
     }
 
     function nextTest() {
       gTestsIterator.next();
     }
 
     function* testsIterator() {
+
       // Tests 1 + 2:
       //  Back/forward between two simple documents. Bfcache will be used.
 
       var test1Doc = "data:text/html,<html><head><title>test1</title></head>" +
                      "<body>test1</body></html>";
 
       gTestCount++;
       gExpected = [false];
-      BrowserTestUtils.loadURI(gBrowser, test1Doc);
+      gBrowser.loadURI(test1Doc);
       yield undefined;
 
       gTestCount++;
       gExpected = [true, false];
       var test2Doc = test1Doc.replace(/1/,"2");
-      BrowserTestUtils.loadURI(gBrowser, test2Doc);
+      gBrowser.loadURI(test2Doc);
       yield undefined;
 
       gTestCount++;
       gExpected = [true, true, false];
-      BrowserTestUtils.loadURI(gBrowser, test1Doc);
+      gBrowser.loadURI(test1Doc);
       yield undefined;
 
       gTestCount++;
       gExpected = [true, true, true, false];
-      BrowserTestUtils.loadURI(gBrowser, test2Doc);
+      gBrowser.loadURI(test2Doc);
       yield undefined;
 
       gTestCount++;
       gExpected = [false, true, true, true, false];
-      BrowserTestUtils.loadURI(gBrowser, test1Doc);
+      gBrowser.loadURI(test1Doc);
       yield undefined;
 
       gTestCount++;
       gExpected = [false, false, true, true, true, false];
-      BrowserTestUtils.loadURI(gBrowser, test2Doc);
+      gBrowser.loadURI(test2Doc);
       yield undefined;
 
       gTestCount++;
       gExpected = [false, false, true, true, false, true];
       gBrowser.goBack();
       yield undefined;
 
       gTestCount++;
--- a/docshell/test/chrome/bug582176_window.xul
+++ b/docshell/test/chrome/bug582176_window.xul
@@ -6,18 +6,17 @@
         width="600"
         height="600"
         onload="nextTestAsync();"
         title="bug 582176 test">
 
   <script type="application/javascript" src= "chrome://mochikit/content/chrome-harness.js" />
   <script type="application/javascript" src="docshell_helpers.js" />
   <script type="application/javascript"><![CDATA[
-
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
+  
     // Define the generator-iterator for the tests.
     var tests = testIterator();
 
     ////
     // Execute the next test in the generator function.
     //
     function nextTestAsync() {
       SimpleTest.executeSoon(tests.next.bind(tests));
@@ -46,36 +45,36 @@
           notificationCount++;
         }
       };
 
       os = Cc["@mozilla.org/observer-service;1"].
         getService(Ci.nsIObserverService);
       os.addObserver(observer, "content-document-global-created");
 
-      BrowserTestUtils.loadURI(browser, "http://mochi.test:8888/tests/docshell/test/chrome/582176_dummy.html");
+      browser.loadURI("http://mochi.test:8888/tests/docshell/test/chrome/582176_dummy.html");
       yield undefined;
       is(browser.contentWindow.testVar, undefined,
          "variable unexpectedly there already");
       browser.contentWindow.wrappedJSObject.testVar = 1;
       is(notificationCount, 1, "Should notify on first navigation");
 
-      BrowserTestUtils.loadURI(browser, "http://mochi.test:8888/tests/docshell/test/chrome/582176_dummy.html?2");
+      browser.loadURI("http://mochi.test:8888/tests/docshell/test/chrome/582176_dummy.html?2");
       yield undefined;
       is(browser.contentWindow.wrappedJSObject.testVar, undefined,
          "variable should no longer be there");
       is(notificationCount, 2, "Should notify on second navigation");
 
       browser.goBack();
       yield undefined;
       is(browser.contentWindow.wrappedJSObject.testVar, 1,
          "variable should still be there");
       is(notificationCount, 2, "Should not notify on back navigation");
 
-      BrowserTestUtils.loadURI(browser, "http://mochi.test:8888/tests/docshell/test/chrome/582176_xml.xml");
+      browser.loadURI("http://mochi.test:8888/tests/docshell/test/chrome/582176_xml.xml");
       yield undefined;
       is(browser.contentDocument.body.textContent, "xslt result",
          "Transform performed successfully");
       is(notificationCount, 3, "Should notify only once on XSLT navigation");
 
       os.removeObserver(observer, "content-document-global-created")
 
       // Tell the framework the test is finished.
--- a/docshell/test/chrome/bug92598_window.xul
+++ b/docshell/test/chrome/bug92598_window.xul
@@ -9,17 +9,16 @@
 <window id="92598Test"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
         width="600"
         height="600"
         onload="onLoad();"
         title="92598 test">
 
   <script type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
     const LISTEN_EVENTS = ["load", "unload", "pageshow", "pagehide"];
 
     var gBrowser;
     var gTestsIterator;
     var gExpected = [];
 
     function ok(condition, message) {
       window.opener.wrappedJSObject.SimpleTest.ok(condition, message);
@@ -83,27 +82,27 @@
     function* testsIterator() {
       // Load a page with a no-cache header, followed by a simple page
       // On pagehide, first page should report it is not being persisted
       var test1DocURI = "http://mochi.test:8888/tests/docshell/test/chrome/92598_nostore.html";
 
       gExpected = [{type: "pagehide", persisted: true},
                    {type: "load", title: "test1"},
                    {type: "pageshow", title: "test1", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test1DocURI);
+      gBrowser.loadURI(test1DocURI);
       yield undefined;
 
       var test2Doc = "data:text/html,<html><head><title>test2</title></head>" +
                      "<body>test2</body></html>";
 
       gExpected = [{type: "pagehide", title: "test1", persisted: false},
                    {type: "unload", title: "test1"},
                    {type: "load", title: "test2"},
                    {type: "pageshow", title: "test2", persisted: false}];
-      BrowserTestUtils.loadURI(gBrowser, test2Doc);
+      gBrowser.loadURI(test2Doc);
       yield undefined;
 
       // Now go back in history. First page should not have been cached.
       // Check persisted property to confirm
       gExpected = [{type: "pagehide", title: "test2", persisted: true},
                    {type: "load", title: "test1"},
                    {type: "pageshow", title: "test1", persisted: false}];
       gBrowser.goBack();
--- a/docshell/test/chrome/docshell_helpers.js
+++ b/docshell/test/chrome/docshell_helpers.js
@@ -1,17 +1,16 @@
 /**  
  * Import common SimpleTest methods so that they're usable in this window.
  */
 var imports = [ "SimpleTest", "is", "isnot", "ok", "onerror", "todo",
   "todo_is", "todo_isnot" ];
 for (var name of imports) {
   window[name] = window.opener.wrappedJSObject[name];
 }
-ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
 
 /**
  * Define global constants and variables.
  */
 const NAV_NONE = 0;
 const NAV_BACK = 1;
 const NAV_FORWARD = 2;
 const NAV_URI = 3;
@@ -165,17 +164,17 @@ function doPageNavigation(params) {
     TestWindow.getBrowser().goBack();
   }
   else if (forward) {
     gNavType = NAV_FORWARD;
     TestWindow.getBrowser().goForward();
   }
   else if (uri) {
     gNavType = NAV_URI;
-    BrowserTestUtils.loadURI(TestWindow.getBrowser(), uri);
+    TestWindow.getBrowser().loadURI(uri);
   }
   else if (reload) {
     gNavType = NAV_RELOAD;
     TestWindow.getBrowser().reload();
   }
   else if (waitOnly) {
     gNavType = NAV_NONE;
   }
--- a/docshell/test/navigation/browser_bug343515.js
+++ b/docshell/test/navigation/browser_bug343515.js
@@ -96,17 +96,17 @@ function step3() {
     for (var i = 0; i < content.frames.length; i++) {
       info("step 3, frame " + i + " info: " + content.frames[i].location);
       let docshell = content.frames[i].docShell;
 
       Assert.ok(!docShell.isActive, `Tab2 iframe ${i} should be inactive`);
     }
   }).then(() => {
     // Navigate tab 2 to a different page
-    BrowserTestUtils.loadURI(ctx.tab2Browser, testPath + "bug343515_pg3.html");
+    ctx.tab2Browser.loadURI(testPath + "bug343515_pg3.html");
 
     // bug343515_pg3.html consists of a page with two iframes, one of which
     // contains another iframe, so there'll be a total of 4 load events
     nShotsListener(ctx.tab2Browser, "load", step4, 4);
   });
 }
 
 function step4() {
@@ -165,17 +165,17 @@ function step5() {
 
       Assert.ok(docShell.isActive, `Tab2 iframe ${i} should be active`);
     }
   }).then(() => {
     // Switch to tab 1
     return BrowserTestUtils.switchTab(gBrowser, ctx.tab1);
   }).then(() => {
     // Navigate to page 3
-    BrowserTestUtils.loadURI(ctx.tab1Browser, testPath + "bug343515_pg3.html");
+    ctx.tab1Browser.loadURI(testPath + "bug343515_pg3.html");
 
     // bug343515_pg3.html consists of a page with two iframes, one of which
     // contains another iframe, so there'll be a total of 4 load events
     nShotsListener(ctx.tab1Browser, "load", step6, 4);
   });
 }
 
 function step6() {
--- a/dom/base/test/browser_aboutnewtab_process_selection.js
+++ b/dom/base/test/browser_aboutnewtab_process_selection.js
@@ -49,17 +49,17 @@ add_task(async function(){
   BrowserOpenTab();
   let tab2 = gBrowser.selectedTab;
   await ensurePreloaded(gBrowser);
 
   // Check that the process count did not change.
   is(ppmm.childCount, originalChildCount, "Preloaded browser should (still) not create a new content process.")
 
   // Navigate to a content page from the parent side.
-  BrowserTestUtils.loadURI(tab2.linkedBrowser, TEST_URL);
+  tab2.linkedBrowser.loadURI(TEST_URL);
   await BrowserTestUtils.browserLoaded(tab2.linkedBrowser, false, TEST_URL);
   is(ppmm.childCount, originalChildCount + 1,
      "Navigating away from the preloaded browser (parent side) should create a new content process.")
 
   // Navigate to a content page from the child side.
   await BrowserTestUtils.switchTab(gBrowser, tab1);
   await ContentTask.spawn(tab1.linkedBrowser, null, async function() {
     const TEST_URL = "http://www.example.com/browser/dom/base/test/dummy.html";
@@ -92,17 +92,17 @@ add_task(async function preloaded_state_
   // Now check that the tabs have the correct browser attributes set
   let consumedTabState = gBrowser.selectedBrowser.getAttribute("preloadedState");
   is(consumedTabState, CONSUMED_STATE, "The opened tab consumed the preloaded browser and updated the attribute");
 
   preloadedTabState = gBrowser._preloadedBrowser.getAttribute("preloadedState");
   is(preloadedTabState, PRELOADED_STATE, "The preloaded browser has the correct attribute");
 
   // Navigate away and check that the attribute has been removed altogether
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, TEST_URL);
+  gBrowser.selectedBrowser.loadURI(TEST_URL);
   let navigatedTabHasState = gBrowser.selectedBrowser.hasAttribute("preloadedState");
   ok(!navigatedTabHasState, "Correctly removed the preloadState attribute when navigating away");
 
   // Remove tabs and preloaded browsers
   BrowserTestUtils.removeTab(gBrowser.selectedTab);
   gBrowser.removePreloadedBrowser();
 });
 
--- a/dom/base/test/browser_bug902350.js
+++ b/dom/base/test/browser_bug902350.js
@@ -13,17 +13,17 @@ add_task(async function mixed_content_bl
                                                              waitForLoad: true });
   let testBrowser = newTab.linkedBrowser;
 
   var url = httpsTestRoot + "file_bug902350.html";
   var frameUrl = httpsTestRoot + "file_bug902350_frame.html";
   let loadPromise = BrowserTestUtils.browserLoaded(testBrowser, false, url);
   let frameLoadPromise = BrowserTestUtils.browserLoaded(testBrowser, true,
                                                         frameUrl);
-  BrowserTestUtils.loadURI(testBrowser, url);
+  testBrowser.loadURI(url);
   await loadPromise;
   await frameLoadPromise;
 
   // Find the iframe and click the link in it.
   let insecureUrl = "http://example.com/";
   let insecureLoadPromise = BrowserTestUtils.browserLoaded(testBrowser, false,
                                                            insecureUrl);
   ContentTask.spawn(testBrowser, null, function() {
--- a/dom/base/test/browser_messagemanager_loadprocessscript.js
+++ b/dom/base/test/browser_messagemanager_loadprocessscript.js
@@ -117,17 +117,17 @@ add_task(async function() {
 add_task(async function() {
   // This test is only relevant in e10s
   if (!gMultiProcessBrowser)
     return;
 
   checkBaseProcessCount("Should still be at the base number of processes at this point");
 
   // Load something in the main process
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:robots");
+  gBrowser.selectedBrowser.loadURI("about:robots");
   await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
   let init = Services.ppmm.initialProcessData;
   init.test123 = "hello";
   init.test456 = new Map();
   init.test456.set("hi", "bye");
 
   // With no remote frames left we should be down to one process.
@@ -141,17 +141,17 @@ add_task(async function() {
     Services.ppmm.loadProcessScript(processScriptURL, true);
 
     // The main process should respond
     await check;
 
     check = checkProcess(Services.ppmm);
     // Reset the default browser to start a new child process
     gBrowser.updateBrowserRemoteness(gBrowser.selectedBrowser, true);
-    BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:blank");
+    gBrowser.selectedBrowser.loadURI("about:blank");
     await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
     checkBaseProcessCount("Should be back to the base number of processes at this point");
 
     // The new process should have responded
     await check;
 
     Services.ppmm.removeDelayedProcessScript(processScriptURL);
--- a/dom/base/test/browser_state_notifications.js
+++ b/dom/base/test/browser_state_notifications.js
@@ -101,17 +101,17 @@ const test = Test(async function() {
     // This test is executed synchronously when the event is received.
     is(d.readyState, "interactive", "document is interactive");
     is(d.URL, uri2, "document.URL matches URL loaded");
   });
   documentLoaded = receive("content-document-loaded", isData);
   pageShown = receive("content-page-shown", isData);
   let pageHidden = receive("content-page-hidden", isData);
 
-  BrowserTestUtils.loadURI(browser1, uri2);
+  browser1.loadURI(uri2);
 
   let hiddenPage = await pageHidden;
   is(interactiveDocument1, hiddenPage, "loaded document is hidden");
 
   let interactiveDocument2 = await documentInteractive;
 
   let loadedDocument2 = await documentLoaded;
   is(loadedDocument2.readyState, "complete", "document is loaded");
@@ -135,17 +135,17 @@ const test = Test(async function() {
   hiddenPage = await pageHidden;
   is(interactiveDocument2, hiddenPage, "new document is hidden");
 
   shownPage = await pageShown;
   is(interactiveDocument1, shownPage, "previous document is shown");
 
   info("load uri#3");
 
-  BrowserTestUtils.loadURI(browser1, uri3);
+  browser1.loadURI(uri3);
 
   pageShown = receive("content-page-shown", isData);
 
   let interactiveDocument3 = await documentInteractive;
 
   let loadedDocument3 = await documentLoaded;
   is(loadedDocument3.readyState, "complete", "document is loaded");
   is(interactiveDocument3, loadedDocument3, "interactive document is loaded");
--- a/dom/base/test/browser_timeout_throttling_with_audio_playback.js
+++ b/dom/base/test/browser_timeout_throttling_with_audio_playback.js
@@ -28,17 +28,17 @@ Services.scriptloader.loadSubScript(kPlu
 
 async function runTest(url) {
   let currentTab = gBrowser.selectedTab;
   let newTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, kBaseURI);
   let newBrowser = gBrowser.getBrowserForTab(newTab);
 
   // Wait for the UI to indicate that audio is being played back.
   let promise = BrowserTestUtils.waitForAttribute("soundplaying", newTab, "true");
-  BrowserTestUtils.loadURI(newBrowser, url);
+  newBrowser.loadURI(url);
   await promise;
 
   // Put the tab in the background.
   await BrowserTestUtils.switchTab(gBrowser, currentTab);
 
   let timeout = await ContentTask.spawn(newBrowser, kDelay, function(delay) {
     return new Promise(resolve => {
       let before = new Date();
--- a/dom/base/test/browser_use_counters.js
+++ b/dom/base/test/browser_use_counters.js
@@ -138,17 +138,17 @@ var check_use_counter_iframe = async fun
   newTab.linkedBrowser.stop();
 
   // Hold on to the current values of the telemetry histograms we're
   // interested in.
   let [histogram_page_before, histogram_document_before,
        histogram_docs_before, histogram_toplevel_docs_before] =
       await grabHistogramsFromContent(use_counter_middlefix);
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, gHttpTestRoot + "file_use_counter_outer.html");
+  gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html");
   await waitForPageLoad(gBrowser.selectedBrowser);
 
   // Inject our desired file into the iframe of the newly-loaded page.
   await ContentTask.spawn(gBrowser.selectedBrowser, { file: file }, function(opts) {
     ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm");
     let deferred = PromiseUtils.defer();
 
     let wu = content.window.windowUtils;
@@ -202,17 +202,17 @@ var check_use_counter_img = async functi
   newTab.linkedBrowser.stop();
 
   // Hold on to the current values of the telemetry histograms we're
   // interested in.
   let [histogram_page_before, histogram_document_before,
        histogram_docs_before, histogram_toplevel_docs_before] =
       await grabHistogramsFromContent(use_counter_middlefix);
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, gHttpTestRoot + "file_use_counter_outer.html");
+  gBrowser.selectedBrowser.loadURI(gHttpTestRoot + "file_use_counter_outer.html");
   await waitForPageLoad(gBrowser.selectedBrowser);
 
   // Inject our desired file into the img of the newly-loaded page.
   await ContentTask.spawn(gBrowser.selectedBrowser, { file: file }, async function(opts) {
     ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm");
     let deferred = PromiseUtils.defer();
 
     let img = content.document.getElementById('display');
@@ -268,17 +268,17 @@ var check_use_counter_direct = async fun
   newTab.linkedBrowser.stop();
 
   // Hold on to the current values of the telemetry histograms we're
   // interested in.
   let [histogram_page_before, histogram_document_before,
        histogram_docs_before, histogram_toplevel_docs_before] =
       await grabHistogramsFromContent(use_counter_middlefix);
 
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, gHttpTestRoot + file);
+  gBrowser.selectedBrowser.loadURI(gHttpTestRoot + file);
   await ContentTask.spawn(gBrowser.selectedBrowser, null, async function() {
     ChromeUtils.import("resource://gre/modules/PromiseUtils.jsm");
     await new Promise(resolve => {
       let listener = () => {
         removeEventListener("load", listener, true);
 
         let wu = content.window.windowUtils;
         wu.forceUseCounterFlush(content.document);
--- a/dom/events/test/test_bug415498.xul
+++ b/dom/events/test/test_bug415498.xul
@@ -15,17 +15,16 @@ https://bugzilla.mozilla.org/show_bug.cg
           src="chrome://mochikit/content/chrome-harness.js"></script>
 <body  xmlns="http://www.w3.org/1999/xhtml">
   <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=415498">Mozilla Bug 415498</a>
 
   <p id="display"></p>
 
   <pre id="test">
   <script class="testbody" type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
 
     /** Test for Bug 415498 **/
     SimpleTest.waitForExplicitFinish();
 
     var gTestsIterator;
     var gConsole;
     var gConsoleListener;
     var gMessages = [];
@@ -60,26 +59,26 @@ https://bugzilla.mozilla.org/show_bug.cg
 
       var browser = $("browser");
       browser.addEventListener("load", function() {
         setTimeout(nextTest, 0)
       }, false);
 
       // 1) This document uses addEventListener to register a method throwing an exception
       var chromeDir = getRootDirectory(window.location.href);
-      BrowserTestUtils.loadURI(browser, chromeDir + "bug415498-doc1.html");
+      browser.loadURI(chromeDir + "bug415498-doc1.html");
       yield undefined;
 
       ok(verifyErrorReceived("HierarchyRequestError"),
          "Error message not reported in event listener callback!");
       gMessages = [];
 
       // 2) This document sets window.onload to register a method throwing an exception
       var chromeDir = getRootDirectory(window.location.href);
-      BrowserTestUtils.loadURI(browser, chromeDir + "bug415498-doc2.html");
+      browser.loadURI(chromeDir + "bug415498-doc2.html");
       yield undefined;
 
       ok(verifyErrorReceived("HierarchyRequestError"),
          "Error message not reported in window.onload!");
     }
     
     function verifyErrorReceived(errorString) {
       for (var i = 0; i < gMessages.length; i++) {
--- a/dom/events/test/test_bug617528.xul
+++ b/dom/events/test/test_bug617528.xul
@@ -12,17 +12,16 @@ https://bugzilla.mozilla.org/show_bug.cg
           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
 
   <body xmlns="http://www.w3.org/1999/xhtml">
     <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=617528"
        target="_blank">Mozilla Bug 617528</a>
   </body>
 
   <script type="application/javascript"><![CDATA[
-    ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
     var _window;
     var browser;
 
     function start() {
       _window = window.open("window_bug617528.xul", "_new", "chrome");
       _window.addEventListener("load", onLoad, false);
     }
 
@@ -35,17 +34,17 @@ https://bugzilla.mozilla.org/show_bug.cg
       var uri='data:text/html,\
 <html>\
   <body>\
     <div oncontextmenu="event.preventDefault()">\
       <input id="node" type="text" value="Click here"></input>\
     </div>\
   </body>\
 </html>';
-      BrowserTestUtils.loadURI(browser, uri);
+      browser.loadURI(uri);
     }
 
     function onPageShow() {
       browser.removeEventListener("pageshow", onPageShow, true);
       SimpleTest.executeSoon(doTest);
     }
 
     function onContextMenu1(event) {
--- a/dom/html/test/browser_DOMDocElementInserted.js
+++ b/dom/html/test/browser_DOMDocElementInserted.js
@@ -11,14 +11,14 @@ add_task(async function() {
       removeEventListener("DOMDocElementInserted", listener, true);
       deferred.resolve(event.target.documentURIObject.spec);
     };
     addEventListener("DOMDocElementInserted", listener, true);
 
     return deferred.promise;
   });
 
-  BrowserTestUtils.loadURI(tab.linkedBrowser, uri);
+  tab.linkedBrowser.loadURI(uri);
   let loadedURI = await eventPromise;
   is(loadedURI, uri, "Should have seen the event for the right URI");
 
   gBrowser.removeTab(tab);
 });
--- a/dom/indexedDB/test/browser_forgetThisSite.js
+++ b/dom/indexedDB/test/browser_forgetThisSite.js
@@ -21,43 +21,43 @@ const testPageURL4 = "http://" + domains
 add_task(async function test1() {
   requestLongerTimeout(2);
   // Avoids the prompt
   setPermission(testPageURL1, "indexedDB");
   setPermission(testPageURL2, "indexedDB");
 
   // Set database version for domain 1
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL1);
+  gBrowser.selectedBrowser.loadURI(testPageURL1);
   await waitForMessage(11, gBrowser);
   gBrowser.removeCurrentTab();
 });
 
 add_task(async function test2() {
   // Set database version for domain 2
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL2);
+  gBrowser.selectedBrowser.loadURI(testPageURL2);
   await waitForMessage(11, gBrowser);
   gBrowser.removeCurrentTab();
 });
 
 add_task(async function test3() {
   // Remove database from domain 2
   ForgetAboutSite.removeDataFromDomain(domains[1]).then(() => {
     setPermission(testPageURL4, "indexedDB");
   });
 });
 
 add_task(async function test4() {
   // Get database version for domain 1
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL3);
+  gBrowser.selectedBrowser.loadURI(testPageURL3);
   await waitForMessage(11, gBrowser);
   gBrowser.removeCurrentTab();
 });
 
 add_task(async function test5() {
   // Get database version for domain 2
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL4);
+  gBrowser.selectedBrowser.loadURI(testPageURL4);
   await waitForMessage(1, gBrowser);
   gBrowser.removeCurrentTab();
 });
--- a/dom/indexedDB/test/browser_permissionsPromptAllow.js
+++ b/dom/indexedDB/test/browser_permissionsPromptAllow.js
@@ -21,17 +21,17 @@ add_task(async function test1() {
     ok(true, "prompt shown");
     triggerMainCommand(this);
   });
   registerPopupEventHandler("popuphidden", function() {
     ok(true, "prompt hidden");
   });
 
   info("loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
 
   await waitForMessage(true, gBrowser);
   is(getPermission(testPageURL, "indexedDB"),
      Ci.nsIPermissionManager.ALLOW_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
 });
 
@@ -45,17 +45,17 @@ add_task(async function test2() {
   registerPopupEventHandler("popupshown", function() {
     ok(false, "Shouldn't show a popup this time");
   });
   registerPopupEventHandler("popuphidden", function() {
     ok(false, "Shouldn't show a popup this time");
   });
 
   info("loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
 
   await waitForMessage(true, gBrowser);
   is(getPermission(testPageURL, "indexedDB"),
      Ci.nsIPermissionManager.ALLOW_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
   unregisterAllPopupEventHandlers();
   removePermission(testPageURL, "indexedDB");
--- a/dom/indexedDB/test/browser_permissionsPromptDeny.js
+++ b/dom/indexedDB/test/browser_permissionsPromptDeny.js
@@ -20,17 +20,17 @@ add_task(async function test1() {
   registerPopupEventHandler("popuphidden", function() {
     ok(true, "prompt hidden");
   });
 
   info("creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage("InvalidStateError", gBrowser);
 
   is(getPermission(testPageURL, "indexedDB"),
      Ci.nsIPermissionManager.DENY_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
 });
 
@@ -47,17 +47,17 @@ add_task(async function test2() {
   registerPopupEventHandler("popuphidden", function() {
     ok(false, "prompt hidden");
   }, win);
 
   info("creating private tab");
   win.gBrowser.selectedTab = BrowserTestUtils.addTab(win.gBrowser);
 
   info("loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, testPageURL);
+  win.gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage("InvalidStateError", win.gBrowser);
 
   is(getPermission(testPageURL, "indexedDB"),
      Ci.nsIPermissionManager.DENY_ACTION,
      "Correct permission set");
   unregisterAllPopupEventHandlers();
   win.gBrowser.removeCurrentTab();
   await BrowserTestUtils.closeWindow(win);
@@ -73,17 +73,17 @@ add_task(async function test3() {
   registerPopupEventHandler("popuphidden", function() {
     ok(false, "Shouldn't show a popup this time");
   });
 
   info("creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage("InvalidStateError", gBrowser);
 
   is(getPermission(testPageURL, "indexedDB"),
      Ci.nsIPermissionManager.DENY_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
   unregisterAllPopupEventHandlers();
   removePermission(testPageURL, "indexedDB");
--- a/dom/indexedDB/test/browser_permissionsPromptWorker.js
+++ b/dom/indexedDB/test/browser_permissionsPromptWorker.js
@@ -21,17 +21,17 @@ add_task(async function test1() {
   });
   registerPopupEventHandler("popuphidden", function() {
     ok(true, "prompt hidden");
   });
 
   info("creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
   info("loading test page: " + testWorkerURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testWorkerURL);
+  gBrowser.selectedBrowser.loadURI(testWorkerURL);
 
   await waitForMessage("ok", gBrowser);
   is(getPermission(testWorkerURL, "indexedDB"),
      Ci.nsIPermissionManager.ALLOW_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
 });
 
@@ -49,15 +49,15 @@ add_task(async function test2() {
     ok(false, "prompt hidden");
   });
 
   info("creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
 
   info("loading test page: " + testSharedWorkerURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testSharedWorkerURL);
+  gBrowser.selectedBrowser.loadURI(testSharedWorkerURL);
   await waitForMessage("InvalidStateError", gBrowser);
   is(getPermission(testSharedWorkerURL, "indexedDB"),
      Ci.nsIPermissionManager.UNKNOWN_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
 });
--- a/dom/indexedDB/test/browser_perwindow_privateBrowsing.js
+++ b/dom/indexedDB/test/browser_perwindow_privateBrowsing.js
@@ -10,26 +10,26 @@ const notificationID = "indexedDB-permis
 add_task(async function test1() {
   // Avoids the actual prompt
   setPermission(testPageURL, "indexedDB");
 
   info("creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
 
   await waitForMessage(true, gBrowser);
   gBrowser.removeCurrentTab();
 });
 
 add_task(async function test2() {
   info("creating private window");
   let win = await BrowserTestUtils.openNewBrowserWindow({ private: true });
 
   info("creating tab");
   win.gBrowser.selectedTab = BrowserTestUtils.addTab(win.gBrowser);
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, testPageURL);
+  win.gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage("InvalidStateError", win.gBrowser);
   win.gBrowser.removeCurrentTab();
   await BrowserTestUtils.closeWindow(win);
   win = null;
 });
--- a/dom/ipc/tests/browser_domainPolicy.js
+++ b/dom/ipc/tests/browser_domainPolicy.js
@@ -44,17 +44,17 @@ async function test_domainPolicy() {
           content.addEventListener('load', listener2);
         };
         addEventListener("DOMDocElementInserted", listener, true);
         return deferred.promise;
       }
 
       return loadBase();
     });
-    BrowserTestUtils.loadURI(tab.linkedBrowser, "http://mochi.test:8888/browser/dom/ipc/tests/file_domainPolicy_base.html");
+    tab.linkedBrowser.loadURI("http://mochi.test:8888/browser/dom/ipc/tests/file_domainPolicy_base.html");
     return initPromise;
   }
 
   // We use ContentTask for the tests, but we also want to pass some data and some helper functions too.
   // To do that, we serialize an input object via JSON |ipcArgs| and some shared helper functions |initUtils|
   // and eval them in the content process.
   var ipcArgs = {};
   function initUtils(obj) {
--- a/dom/plugins/test/mochitest/browser_bug1335475.js
+++ b/dom/plugins/test/mochitest/browser_bug1335475.js
@@ -12,17 +12,17 @@ add_task(async function() {
     await ContentTask.spawn(browser, null, async function() {
       is(content.window.navigator.plugins.length, 0,
          "plugins should not be available to null-principal about:blank");
       ok(!("application/x-test" in content.window.navigator.mimeTypes),
          "plugins should not be available to null-principal about:blank");
     });
 
     let promise = BrowserTestUtils.browserLoaded(browser);
-    BrowserTestUtils.loadURI(browser, gTestRoot + "plugin_test.html");
+    browser.loadURI(gTestRoot + "plugin_test.html");
     await promise;
 
     await ContentTask.spawn(browser, null, async function() {
       ok(content.window.navigator.plugins.length > 0,
          "plugins should be available to HTTP-loaded pages");
       ok("application/x-test" in content.window.navigator.mimeTypes,
          "plugins should be available to HTTP-loaded pages");
 
@@ -45,17 +45,17 @@ add_task(async function() {
       ok("application/x-test" in content.window.navigator.mimeTypes,
          "plugins should be available when a site triggers an about:blank load");
     });
 
     // navigate to the file: URI, which shouldn't allow plugins. This might
     // be wrapped in jar:, but that shouldn't matter for this test
     promise = BrowserTestUtils.browserLoaded(browser);
     let converteduri = Cc["@mozilla.org/chrome/chrome-registry;1"].getService(Ci.nsIChromeRegistry).convertChromeURL(Services.io.newURI(rootDir + "plugin_test.html"));
-    BrowserTestUtils.loadURI(browser, converteduri.spec);
+    browser.loadURI(converteduri.spec);
     await promise;
 
     await ContentTask.spawn(browser, null, async function() {
       ok(!("application/x-test" in content.window.navigator.mimeTypes),
          "plugins should not be available to file: URI content");
     });
   });
 
--- a/dom/plugins/test/mochitest/test_privatemode_perwindowpb.xul
+++ b/dom/plugins/test/mochitest/test_privatemode_perwindowpb.xul
@@ -15,17 +15,16 @@
 <body xmlns="http://www.w3.org/1999/xhtml" onload="runTestsCallback()">
 <embed id="plugin1" type="application/x-test" width="200" height="200"></embed>
 <embed id="plugin2" type="application/x-test" width="200" height="200"></embed>
 </body>
 <script class="testbody" type="application/javascript">
 <![CDATA[
 SimpleTest.waitForExplicitFinish();
 
-ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
 ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 function whenDelayedStartupFinished(aWindow, aCallback) {
   Services.obs.addObserver(function observer(aSubject, aTopic) {
     if (aWindow == aSubject) {
       Services.obs.removeObserver(observer, aTopic);
       SimpleTest.executeSoon(aCallback);
@@ -55,24 +54,24 @@ function runTestsCallback() {
   var mainWindow = window.docShell.rootTreeItem.domWindow;
   var contentPage = getRootDirectory(window.location.href) + "privatemode_perwindowpb.xul";
 
   function testOnWindow(aIsPrivate, aCallback) {
     var win = mainWindow.OpenBrowserWindow({private: aIsPrivate});
     whenDelayedStartupFinished(win, function () {
       win.addEventListener("DOMContentLoaded", function onInnerLoad() {
         if (win.content.location.href == "about:privatebrowsing") {
-          BrowserTestUtils.loadURI(win.gBrowser, contentPage)
+          win.gBrowser.loadURI(contentPage);
           return;
         }
         win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
         win.gBrowser.selectedBrowser.focus();
         SimpleTest.executeSoon(function() { aCallback(win); });
       }, true);
-      SimpleTest.executeSoon(function() { BrowserTestUtils.loadURI(win.gBrowser, contentPage); });
+      SimpleTest.executeSoon(function() { win.gBrowser.loadURI(contentPage); });
     });
   }
 
   testOnWindow(true, function(aWin) {
     pluginElement1 = aWin.gBrowser.contentDocument.getElementById("plugin1");
     pluginElement2 = aWin.gBrowser.contentDocument.getElementById("plugin2");
 
     var officialState1, officialState2;
--- a/dom/quota/test/browser_permissionsPromptAllow.js
+++ b/dom/quota/test/browser_permissionsPromptAllow.js
@@ -19,17 +19,17 @@ add_task(async function testPermissionAl
   registerPopupEventHandler("popuphidden", function () {
     ok(true, "prompt hidden");
   });
 
   info("Creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("Loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage(true, gBrowser);
 
   is(getPermission(testPageURL, "persistent-storage"),
      Ci.nsIPermissionManager.ALLOW_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
   unregisterAllPopupEventHandlers();
   // Keep persistent-storage permission for the next test.
@@ -45,17 +45,17 @@ add_task(async function testNoPermission
   registerPopupEventHandler("popuphidden", function () {
     ok(false, "Shouldn't show a popup this time");
   });
 
   info("Creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("Loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage(true, gBrowser);
 
   is(getPermission(testPageURL, "persistent-storage"),
      Ci.nsIPermissionManager.ALLOW_ACTION,
      "Correct permission set");
   gBrowser.removeCurrentTab();
   unregisterAllPopupEventHandlers();
   removePermission(testPageURL, "persistent-storage");
--- a/dom/quota/test/browser_permissionsPromptDeny.js
+++ b/dom/quota/test/browser_permissionsPromptDeny.js
@@ -19,17 +19,17 @@ add_task(async function testPermissionDe
   registerPopupEventHandler("popuphidden", function () {
     ok(true, "prompt hidden");
   });
 
   info("Creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("Loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage(false, gBrowser);
 
   is(getPermission(testPageURL, "persistent-storage"),
      Ci.nsIPermissionManager.DENY_ACTION,
      "Correct permission set");
   unregisterAllPopupEventHandlers();
   gBrowser.removeCurrentTab();
   // Keep persistent-storage permission for the next test.
@@ -45,17 +45,17 @@ add_task(async function testNoPermission
   registerPopupEventHandler("popuphidden", function () {
     ok(false, "Shouldn't show a popup this time");
   });
 
   info("Creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("Loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage(false, gBrowser);
 
   is(getPermission(testPageURL, "persistent-storage"),
      Ci.nsIPermissionManager.DENY_ACTION,
      "Correct permission set");
   unregisterAllPopupEventHandlers();
   gBrowser.removeCurrentTab();
   removePermission(testPageURL, "persistent-storage");
@@ -73,17 +73,17 @@ add_task(async function testPermissionDe
   registerPopupEventHandler("popuphidden", function () {
     ok(true, "prompt hidden");
   });
 
   info("Creating tab");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
 
   info("Loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, testPageURL);
+  gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage(false, gBrowser);
 
   // Pressing ESC results in a temporary block permission on the browser object.
   // So the global permission for the URL should still be unknown, but the browser
   // should have a block permission with a temporary scope.
   is(getPermission(testPageURL, "persistent-storage"),
      Ci.nsIPermissionManager.UNKNOWN_ACTION,
      "Correct permission set");
--- a/dom/quota/test/browser_permissionsPromptUnknown.js
+++ b/dom/quota/test/browser_permissionsPromptUnknown.js
@@ -20,17 +20,17 @@ add_task(async function testPermissionUn
   registerPopupEventHandler("popuphidden", function () {
     ok(false, "Shouldn't show a popup this time");
   }, win);
 
   info("Creating private tab");
   win.gBrowser.selectedTab = BrowserTestUtils.addTab(win.gBrowser);
 
   info("Loading test page: " + testPageURL);
-  BrowserTestUtils.loadURI(win.gBrowser.selectedBrowser, testPageURL);
+  win.gBrowser.selectedBrowser.loadURI(testPageURL);
   await waitForMessage(false, win.gBrowser);
 
   is(getPermission(testPageURL, "persistent-storage"),
      Ci.nsIPermissionManager.UNKNOWN_ACTION,
      "Correct permission set");
   unregisterAllPopupEventHandlers(win);
   win.gBrowser.removeCurrentTab();
   await BrowserTestUtils.closeWindow(win);
--- a/dom/security/test/general/browser_test_data_download.js
+++ b/dom/security/test/general/browser_test_data_download.js
@@ -26,10 +26,10 @@ function test() {
     Services.prefs.clearUserPref("security.data_uri.block_toplevel_data_uri_navigations");
   });
   addWindowListener("chrome://mozapps/content/downloads/unknownContentType.xul", function(win) {
     is(win.document.getElementById("location").value, "data-foo.html",
        "file name of download should match");
      win.close();
      finish();
   });
-  BrowserTestUtils.loadURI(gBrowser, kTestURI);
+  gBrowser.loadURI(kTestURI);
 }
--- a/dom/security/test/general/browser_test_data_text_csv.js
+++ b/dom/security/test/general/browser_test_data_text_csv.js
@@ -26,10 +26,10 @@ function test() {
     Services.prefs.clearUserPref("security.data_uri.block_toplevel_data_uri_navigations");
   });
   addWindowListener("chrome://mozapps/content/downloads/unknownContentType.xul", function(win) {
     is(win.document.getElementById("location").value, "text/csv;foo,bar,foobar",
        "file name of download should match");
      win.close();
      finish();
   });
-  BrowserTestUtils.loadURI(gBrowser, kTestURI);
+  gBrowser.loadURI(kTestURI);
 }
--- a/dom/serviceworkers/test/browser_download.js
+++ b/dom/serviceworkers/test/browser_download.js
@@ -69,12 +69,12 @@ function test() {
 
       downloadListener = {
         onDownloadAdded: downloadVerifier,
         onDownloadChanged: downloadVerifier
       };
 
       return downloadList.addView(downloadListener);
     }).then(function() {
-      BrowserTestUtils.loadURI(gBrowser, url);
+      gBrowser.loadURI(url);
     });
   });
 }
--- a/dom/serviceworkers/test/browser_force_refresh.js
+++ b/dom/serviceworkers/test/browser_force_refresh.js
@@ -35,17 +35,17 @@ function test() {
                                      ['browser.cache.memory.enable', false]]},
                             function() {
     var url = gTestRoot + 'browser_base_force_refresh.html';
     var tab = BrowserTestUtils.addTab(gBrowser);
     var tabBrowser = gBrowser.getBrowserForTab(tab);
     gBrowser.selectedTab = tab;
 
     tab.linkedBrowser.messageManager.loadFrameScript("data:,(" + encodeURIComponent(frameScript) + ")()", true);
-    BrowserTestUtils.loadURI(gBrowser, url);
+    gBrowser.loadURI(url);
 
     async function done() {
       tab.linkedBrowser.messageManager.removeMessageListener("test:event", eventHandler);
 
       await ContentTask.spawn(tabBrowser, null, async function() {
         const swr = await content.navigator.serviceWorker.getRegistration();
         await swr.unregister();
       });
--- a/dom/serviceworkers/test/test_privateBrowsing.html
+++ b/dom/serviceworkers/test/test_privateBrowsing.html
@@ -2,39 +2,38 @@
 <head>
   <title>Test for ServiceWorker - Private Browsing</title>
   <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
   <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
 </head>
 <body>
 
 <script type="application/javascript">
-ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
 
 var mainWindow;
 
 var contentPage = "http://mochi.test:8888/chrome/dom/workers/test/empty.html";
 var workerScope = "http://mochi.test:8888/chrome/dom/serviceworkers/test/";
 var workerURL = workerScope + "worker.js";
 
 function testOnWindow(aIsPrivate, aCallback) {
   var win = mainWindow.OpenBrowserWindow({private: aIsPrivate});
   win.addEventListener("load", function() {
     win.addEventListener("DOMContentLoaded", function onInnerLoad() {
       if (win.content.location.href != contentPage) {
-        BrowserTestUtils.loadURI(win.gBrowser, contentPage);
+        win.gBrowser.loadURI(contentPage);
         return;
       }
 
       win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
       SimpleTest.executeSoon(function() { aCallback(win); });
     }, true);
 
     if (!aIsPrivate) {
-      BrowserTestUtils.loadURI(win.gBrowser, contentPage);
+      win.gBrowser.loadURI(contentPage);
     }
   }, {capture: true, once: true});
 }
 
 function setupWindow() {
   mainWindow = window.docShell.rootTreeItem.domWindow;
   runTest();
 }
--- a/dom/tests/browser/browser_ConsoleStoragePBTest_perwindowpb.js
+++ b/dom/tests/browser/browser_ConsoleStoragePBTest_perwindowpb.js
@@ -47,17 +47,17 @@ function test() {
         consoleObserver, "console-api-log-event");
       aWindow.nativeConsole.log("foo bar baz (private: " + aIsPrivateMode + ")");
     });
 
     // We expect that console API messages are always stored.
     storageShouldOccur = true;
     innerID = getInnerWindowId(aWindow);
     beforeEvents = ConsoleAPIStorage.getEvents(innerID);
-    BrowserTestUtils.loadURI(aWindow.gBrowser.selectedBrowser, testURI);
+    aWindow.gBrowser.selectedBrowser.loadURI(testURI);
   }
 
   function testOnWindow(aOptions, aCallback) {
     whenNewWindowLoaded(aOptions, function(aWin) {
       windowsToClose.push(aWin);
       // execute should only be called when need, like when you are opening
       // web pages on the test. If calling executeSoon() is not necesary, then
       // call whenNewWindowLoaded() instead of testOnWindow() on your test.
--- a/dom/tests/browser/browser_autofocus_background.js
+++ b/dom/tests/browser/browser_autofocus_background.js
@@ -8,17 +8,17 @@ add_task(async function() {
       tagName: "INPUT"},
   ];
 
   // Set the focus to the first tab.
   tabs[0].linkedBrowser.focus();
 
   // Load the second tab in the background.
   let loadedPromise = BrowserTestUtils.browserLoaded(tabs[1].linkedBrowser);
-  BrowserTestUtils.loadURI(tabs[1].linkedBrowser, testingList[0].uri);
+  tabs[1].linkedBrowser.loadURI(testingList[0].uri);
   await loadedPromise;
 
   for (var i = 0; i < testingList.length; ++i) {
     // Get active element in the tab.
     let tagName = await ContentTask.spawn(tabs[i + 1].linkedBrowser, null, async function() {
       return content.document.activeElement.tagName;
     });
 
--- a/dom/tests/browser/browser_autofocus_preference.js
+++ b/dom/tests/browser/browser_autofocus_preference.js
@@ -1,15 +1,15 @@
 add_task(async function() {
   await SpecialPowers.pushPrefEnv({"set": [["browser.autofocus", false]]});
 
   const url = "data:text/html,<!DOCTYPE html><html><body><input autofocus><button autofocus></button><textarea autofocus></textarea><select autofocus></select></body></html>";
 
   let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
-  BrowserTestUtils.loadURI(gBrowser.selectedBrowser, url);
+  gBrowser.selectedBrowser.loadURI(url);
   await loadedPromise;
 
   await new Promise(resolve => executeSoon(resolve));
 
   await ContentTask.spawn(gBrowser.selectedBrowser, null, async function() {
     is(content.document.activeElement, content.document.body, "body focused");
   });
 });
--- a/dom/tests/browser/browser_bug1236512.js
+++ b/dom/tests/browser/browser_bug1236512.js
@@ -51,17 +51,17 @@ add_task(async function() {
   });
   winTest.moveTo(200, 200);
   winTest.resizeTo(500, 500);
   await resizePromise;
 
   let browserTest = winTest.gBrowser;
 
   info(`loading test page: ${testPageURL}`);
-  BrowserTestUtils.loadURI(browserTest.selectedBrowser, testPageURL);
+  browserTest.selectedBrowser.loadURI(testPageURL);
   await BrowserTestUtils.browserLoaded(browserTest.selectedBrowser);
 
   info("test init visibility state");
   await testContentVisibilityState(false /* isHidden */, browserTest);
 
   info("test window should report 'hidden' if it is fully covered by another " +
        "window");
   await new Promise(resolve => waitForFocus(resolve, window));
--- a/dom/tests/browser/browser_hasbeforeunload.js
+++ b/dom/tests/browser/browser_hasbeforeunload.js
@@ -425,17 +425,17 @@ add_task(async function test_inner_windo
     // away with a beforeunload listener set, and ensure
     // that we clear the hasBeforeUnload value.
     await addBeforeUnloadListeners(browser, 5);
     await navigateSubframe(browser, "http://example.com");
     assertHasBeforeUnload(browser, false);
 
     // Now send the page back to the test page for
     // the next few tests.
-    BrowserTestUtils.loadURI(browser, PAGE_URL);
+    browser.loadURI(PAGE_URL);
     await BrowserTestUtils.browserLoaded(browser);
 
     // We want to test hasBeforeUnload works properly with
     // beforeunload event listeners in <iframe> elements too.
     // We prepare a structure like this with 3 content windows
     // to exercise:
     //
     // <top-level content window at PAGE_URL> (TOP)
@@ -629,17 +629,17 @@ add_task(async function test_outer_windo
     // iframe inside it, and ensure that we clear the hasBeforeUnload
     // value.
     await addOuterBeforeUnloadListeners(browser, 5);
     await navigateSubframe(browser, "http://example.com", TOP);
     assertHasBeforeUnload(browser, false);
 
     // Now send the page back to the test page for
     // the next few tests.
-    BrowserTestUtils.loadURI(browser, PAGE_URL);
+    browser.loadURI(PAGE_URL);
     await BrowserTestUtils.browserLoaded(browser);
 
     // We should initially start with hasBeforeUnload set to false.
     assertHasBeforeUnload(browser, false);
 
     await prepareSubframes(browser, [
       { sandboxAttributes: null, },
       { sandboxAttributes: null, },
--- a/dom/tests/browser/browser_localStorage_e10s.js
+++ b/dom/tests/browser/browser_localStorage_e10s.js
@@ -49,17 +49,17 @@ async function openTestTabInOwnProcess(n
   ok(!knownTabs.byName.has(name), "tab needs its own name: " + name);
   ok(!knownTabs.byPid.has(pid), "tab needs to be in its own process: " + pid);
 
   let knownTab = new KnownTab(name, tab);
   knownTabs.byPid.set(pid, knownTab);
   knownTabs.byName.set(name, knownTab);
 
   // Now trigger the actual load of our page.
-  BrowserTestUtils.loadURI(tab.linkedBrowser, realUrl);
+  tab.linkedBrowser.loadURI(realUrl);
   await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
   is(tab.linkedBrowser.frameLoader.tabParent.osPid, pid, "still same pid");
   return knownTab;
 }
 
 /**
  * Close all the tabs we opened.
  */
--- a/dom/tests/mochitest/beacon/test_beaconCookies.html
+++ b/dom/tests/mochitest/beacon/test_beaconCookies.html
@@ -17,17 +17,16 @@ https://bugzilla.mozilla.org/show_bug.cg
 <pre id="test">
 <script class="testbody" type="text/javascript">
 
 // not enabled by default yet.
 SimpleTest.waitForExplicitFinish();
 SpecialPowers.pushPrefEnv({'set': [["beacon.enabled", true]]}, beginTest);
 
 ChromeUtils.import("resource://gre/modules/Services.jsm");
-ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
 
 var baseURL = "http://mochi.test:8888/chrome/dom/tests/mochitest/beacon/";
 
 function whenDelayedStartupFinished(aWindow, aCallback) {
   Services.obs.addObserver(function observer(aSubject, aTopic) {
     if (aWindow == aSubject) {
       Services.obs.removeObserver(observer, aTopic);
       setTimeout(aCallback, 0);
@@ -50,28 +49,28 @@ var next;
 
 function beginTest() {
   testOnWindow({}, function(aNormalWindow) {
     Services.obs.addObserver(function waitCookie() {
       Services.obs.removeObserver(waitCookie, "cookie-changed");
       ok(true, "cookie set by beacon request in normal window");
       testOnPrivateWindow();
     }, "cookie-changed");
-    BrowserTestUtils.loadURI(aNormalWindow.gBrowser.selectedBrowser, baseURL + "file_beaconCookies.html");
+    aNormalWindow.gBrowser.selectedBrowser.loadURI(baseURL + "file_beaconCookies.html");
   });
 }
 
 function testOnPrivateWindow() {
   testOnWindow({private: true}, function(aPrivateWindow) {
     Services.obs.addObserver(function waitCookie() {
       Services.obs.removeObserver(waitCookie, "private-cookie-changed");
       ok(true, "private cookie set by beacon request in private window");
       cleanup();
     }, "private-cookie-changed");
-    BrowserTestUtils.loadURI(aPrivateWindow.gBrowser.selectedBrowser, baseURL + "file_beaconCookies.html");
+    aPrivateWindow.gBrowser.selectedBrowser.loadURI(baseURL + "file_beaconCookies.html");
   });
 }
 
 function cleanup() {
   for (var i = 0; i < windowsToClose.length; ++i) {
     windowsToClose[i].close();
   }
   SimpleTest.finish();
--- a/dom/url/tests/browser_download_after_revoke.js
+++ b/dom/url/tests/browser_download_after_revoke.js
@@ -41,10 +41,10 @@ function test () {
 
       content.URL.revokeObjectURL(url);
     });
   }
 
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(onLoad);
 
   info("Loading download page...");
-  BrowserTestUtils.loadURI(gBrowser, "http://example.com/browser/dom/url/tests/empty.html");
+  gBrowser.loadURI("http://example.com/browser/dom/url/tests/empty.html");
 }
--- a/dom/workers/test/test_sharedWorker_privateBrowsing.html
+++ b/dom/workers/test/test_sharedWorker_privateBrowsing.html
@@ -2,36 +2,36 @@
 <head>
   <title>Test for SharedWorker - Private Browsing</title>
   <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
   <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
 </head>
 <body>
 
 <script type="application/javascript">
-ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm");
+
 var mainWindow;
 
 var contentPage = "http://mochi.test:8888/chrome/dom/workers/test/empty.html";
 
 function testOnWindow(aIsPrivate, aCallback) {
   var win = mainWindow.OpenBrowserWindow({private: aIsPrivate});
   win.addEventListener("load", function() {
     win.addEventListener("DOMContentLoaded", function onInnerLoad() {
       if (win.content.location.href != contentPage) {
-        BrowserTestUtils.loadURI(win.gBrowser, contentPage);
+        win.gBrowser.loadURI(contentPage);
         return;
       }
 
       win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
       SimpleTest.executeSoon(function() { aCallback(win); });
     }, true);
 
     if (!aIsPrivate) {
-      BrowserTestUtils.loadURI(win.gBrowser, contentPage);
+      win.gBrowser.loadURI(contentPage);
     }
   }, {capture: true, once: true});
 }
 
 function setupWindow() {
   mainWindow = window.docShell.rootTreeItem.domWindow;
   runTest();
 }
--- a/layout/forms/test/test_bug536567_perwindowpb.html
+++ b/layout/forms/test/test_bug536567_perwindowpb.html
@@ -141,32 +141,26 @@ function whenDelayedStartupFinished(aWin
   }, "browser-delayed-startup-finished");
 }
 
 function testOnWindow(aIsPrivate, aCallback) {
   var win = mainWindow.OpenBrowserWindow({private: aIsPrivate});
   whenDelayedStartupFinished(win, function() {
     win.addEventListener("DOMContentLoaded", function onInnerLoad() {
       if (win.content.location.href != contentPage) {
-        win.gBrowser.loadURI(contentPage, {
-          triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-        });
+        win.gBrowser.loadURI(contentPage);
         return;
       }
       win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
       win.gBrowser.selectedBrowser.focus();
       SimpleTest.info("DOMContentLoaded's window: " + win.location + " vs. " + window.location);
       win.setTimeout(function() { aCallback(win); }, 0);
     }, true);
     SimpleTest.info("load's window: " + win.location + " vs. " + window.location);
-    win.setTimeout(function() {
-      win.gBrowser.loadURI(contentPage, {
-        triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-      });
-    }, 0);
+    win.setTimeout(function() { win.gBrowser.loadURI(contentPage); }, 0);
   });
 }
 
 MockFilePicker.showCallback = function(filepicker) {
   var test = tests[testIndex];
   var returned = -1;
   for (var i = 0; i < dirs.length; i++) {
      var dir = MockFilePicker.displayDirectory
--- a/layout/tools/layout-debug/ui/content/layoutdebug.js
+++ b/layout/tools/layout-debug/ui/content/layoutdebug.js
@@ -105,25 +105,20 @@ function OnLDBLoad()
   gBrowser = document.getElementById("browser");
 
   gProgressListener = new nsLDBBrowserContentListener();
   gBrowser.addProgressListener(gProgressListener);
 
   gDebugger = Cc[NS_LAYOUT_DEBUGGINGTOOLS_CONTRACTID].
                   createInstance(nsILayoutDebuggingTools);
 
-  if (window.arguments && window.arguments[0]) {
-    gBrowser.loadURI(window.arguments[0], {
-      triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-    });
-  } else {
-    gBrowser.loadURI("about:blank", {
-      triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-    });
-  }
+  if (window.arguments && window.arguments[0])
+    gBrowser.loadURI(window.arguments[0]);
+  else
+    gBrowser.loadURI("about:blank");
 
   gDebugger.init(gBrowser.contentWindow);
 
   checkPersistentMenus();
 }
 
 function checkPersistentMenu(item)
 {
@@ -161,14 +156,12 @@ function openFile()
   var nsIFilePicker = Ci.nsIFilePicker;
   var fp = Cc["@mozilla.org/filepicker;1"]
         .createInstance(nsIFilePicker);
   fp.init(window, "Select a File", nsIFilePicker.modeOpen);
   fp.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterAll);
   fp.open(rv => {
     if (rv == nsIFilePicker.returnOK && fp.fileURL.spec &&
         fp.fileURL.spec.length > 0) {
-      gBrowser.loadURI(fp.fileURL.spec, {
-        triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-      });
+      gBrowser.loadURI(fp.fileURL.spec);
     }
   });
 }
--- a/layout/tools/layout-debug/ui/content/layoutdebug.xul
+++ b/layout/tools/layout-debug/ui/content/layoutdebug.xul
@@ -105,19 +105,17 @@
                        label="&ldb.ReloadButton.label;"
                        oncommand="gBrowser.reload();" />
         <toolbarbutton id="stop-button" class="toolbarbutton-1"
                        label="&ldb.StopButton.label;"
                        oncommand="gBrowser.stop();" />
 
         <textbox id="urlbar" flex="1"
                  onkeypress="if (event.keyCode == 13)
-                               gBrowser.loadURI(this.value, {
-                                 triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-                               });" />
+                               gBrowser.loadURI(this.value);" />
       </toolbar>
     </toolbox>
 
     <browser flex="1" id="browser" type="content" primary="true"/>
 
     <hbox>
       <description id="status-text" value="" />
     </hbox>
--- a/layout/tools/recording/recording.js
+++ b/layout/tools/recording/recording.js
@@ -35,12 +35,10 @@ this.OnRecordingLoad = function OnRecord
         gContainingWindow.close();
         return;
     }
 
     gBrowser.addEventListener("load", OnDocumentLoad, true);
 
     var args = window.arguments[0].wrappedJSObject;
 
-    gBrowser.loadURI(args.uri, {
-      triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
-    });
+    gBrowser.loadURI(args.uri);
 };
--- a/security/manager/ssl/tests/mochitest/browser/browser_bug627234_perwindowpb.js
+++ b/security/manager/ssl/tests/mochitest/browser/browser_bug627234_perwindowpb.js
@@ -51,17 +51,17 @@ function test() {
                                Ci.nsISiteSecurityService.SOURCE_ORGANIC_REQUEST);
       ok(gSSService.isSecureURI(Ci.nsISiteSecurityService.HEADER_HSTS, uri,
                                 privacyFlags(aIsPrivateMode)),
                                 "checking sts host");
 
       aCallback();
     });
 
-    BrowserTestUtils.loadURI(aWindow.gBrowser.selectedBrowser, testURI);
+    aWindow.gBrowser.selectedBrowser.loadURI(testURI);
   }
 
   function testOnWindow(aOptions, aCallback) {
     whenNewWindowLoaded(aOptions, function(aWin) {
       windowsToClose.push(aWin);
       // execute should only be called when need, like when you are opening
       // web pages on the test. If calling executeSoon() is not necesary, then
       // call whenNewWindowLoaded() instead of testO