зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1673763 - Do not switch processes when loading error pages on Android r=geckoview-reviewers,nika,jonalmeida
Differential Revision: https://phabricator.services.mozilla.com/D186065
This commit is contained in:
Родитель
54a89b94cd
Коммит
5637e974b1
|
@ -77,13 +77,10 @@ skip-if = true
|
||||||
skip-if = toolkit != "cocoa" || headless # Headless: bug 1410525
|
skip-if = toolkit != "cocoa" || headless # Headless: bug 1410525
|
||||||
support-files = file_bug511449.html
|
support-files = file_bug511449.html
|
||||||
[test_bug529119-1.html]
|
[test_bug529119-1.html]
|
||||||
skip-if =
|
|
||||||
fission && os == "android" # Bug 1827321
|
|
||||||
[test_bug529119-2.html]
|
[test_bug529119-2.html]
|
||||||
skip-if =
|
skip-if =
|
||||||
http3
|
http3
|
||||||
http2
|
http2
|
||||||
fission && os == "android" # Bug 1827321
|
|
||||||
[test_bug530396.html]
|
[test_bug530396.html]
|
||||||
support-files = bug530396-noref.sjs bug530396-subframe.html
|
support-files = bug530396-noref.sjs bug530396-subframe.html
|
||||||
skip-if =
|
skip-if =
|
||||||
|
|
|
@ -576,6 +576,17 @@ Result<NavigationIsolationOptions, nsresult> IsolationOptionsForNavigation(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MOZ_WIDGET_ANDROID
|
||||||
|
// If we're loading an error page on android, it must complete within the same
|
||||||
|
// process as the errored page load would complete in due to code expecting
|
||||||
|
// that behavior. See bug 1673763.
|
||||||
|
if (aLoadStateLoadType == LOAD_ERROR_PAGE) {
|
||||||
|
MOZ_LOG(gProcessIsolationLog, LogLevel::Verbose,
|
||||||
|
("Forcing error page load to complete in the current process"));
|
||||||
|
behavior = IsolationBehavior::Anywhere;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// If we're loading for a specific extension, we'll need to perform a
|
// If we're loading for a specific extension, we'll need to perform a
|
||||||
// BCG-switching load to get our toplevel extension window in the correct
|
// BCG-switching load to get our toplevel extension window in the correct
|
||||||
// BrowsingContextGroup.
|
// BrowsingContextGroup.
|
||||||
|
|
|
@ -228,24 +228,24 @@ class NavigationDelegateTest : BaseSessionTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun loadFileNotFound() {
|
@Test fun loadFileNotFound() {
|
||||||
// TODO: Bug 1673954
|
|
||||||
assumeThat(sessionRule.env.isFission, equalTo(false))
|
|
||||||
|
|
||||||
testLoadExpectError(
|
testLoadExpectError(
|
||||||
"file:///test.mozilla",
|
"file:///test.mozilla",
|
||||||
WebRequestError.ERROR_CATEGORY_URI,
|
WebRequestError.ERROR_CATEGORY_URI,
|
||||||
WebRequestError.ERROR_FILE_NOT_FOUND,
|
WebRequestError.ERROR_FILE_NOT_FOUND,
|
||||||
)
|
)
|
||||||
|
|
||||||
val promise = mainSession.evaluatePromiseJS("document.addCertException(false)")
|
// This is temporarily disabled on Fission. See bug 1673954
|
||||||
var exceptionCaught = false
|
if (!sessionRule.env.isFission) {
|
||||||
try {
|
val promise = mainSession.evaluatePromiseJS("document.addCertException(false)")
|
||||||
val result = promise.value as Boolean
|
var exceptionCaught = false
|
||||||
assertThat("Promise should not resolve", result, equalTo(false))
|
try {
|
||||||
} catch (e: GeckoSessionTestRule.RejectedPromiseException) {
|
val result = promise.value as Boolean
|
||||||
exceptionCaught = true
|
assertThat("Promise should not resolve", result, equalTo(false))
|
||||||
|
} catch (e: GeckoSessionTestRule.RejectedPromiseException) {
|
||||||
|
exceptionCaught = true
|
||||||
|
}
|
||||||
|
assertThat("document.addCertException failed with exception", exceptionCaught, equalTo(true))
|
||||||
}
|
}
|
||||||
assertThat("document.addCertException failed with exception", exceptionCaught, equalTo(true))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun loadUnknownHost() {
|
@Test fun loadUnknownHost() {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче