From 207c64c6c1a2a9e273f771bb5a421f6b32d470a6 Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Tue, 1 Dec 2015 15:01:36 +0100 Subject: [PATCH] Backed out changeset f4348b2f5c5f (bug 1223678) for bustage --HG-- extra : rebase_source : 1e7bf92b54ceff74b6eee2143a2f82434af1e8e3 --- dom/ipc/TabParent.cpp | 35 ++----- dom/ipc/TabParent.h | 2 +- netwerk/test/mochitests/mochitest.ini | 3 - .../signed_web_packaged_app_random.sjs | 92 ------------------- ...est_signed_to_signed_web_packaged_app.html | 83 ----------------- 5 files changed, 9 insertions(+), 206 deletions(-) delete mode 100644 netwerk/test/mochitests/signed_web_packaged_app_random.sjs delete mode 100644 netwerk/test/mochitests/test_signed_to_signed_web_packaged_app.html diff --git a/dom/ipc/TabParent.cpp b/dom/ipc/TabParent.cpp index 7c3c9b46b6e6..22cb3613b3b0 100644 --- a/dom/ipc/TabParent.cpp +++ b/dom/ipc/TabParent.cpp @@ -458,28 +458,8 @@ static void LogChannelRelevantInfo(nsIURI* aURI, LOG("Result principal origin: %s\n", resultPrincipalOrigin.get()); } -// This is similar to nsIScriptSecurityManager.getChannelResultPrincipal -// but taking signedPkg into account. The reason we can't rely on channel -// loadContext/loadInfo is it's dangerous to mutate them on parent process. -static already_AddRefed -GetChannelPrincipalWithSingedPkg(nsIChannel* aChannel, const nsACString& aSignedPkg) -{ - OriginAttributes attrs; - NS_GetOriginAttributes(aChannel, attrs); - attrs.mSignedPkg = NS_ConvertUTF8toUTF16(aSignedPkg); - - nsCOMPtr uri; - nsresult rv = NS_GetFinalChannelURI(aChannel, getter_AddRefs(uri)); - NS_ENSURE_SUCCESS(rv, nullptr); - - nsCOMPtr principal = - BasePrincipal::CreateCodebasePrincipal(uri, attrs); - - return principal.forget(); -} - bool -TabParent::ShouldSwitchProcess(nsIChannel* aChannel, const nsACString& aSignedPkg) +TabParent::ShouldSwitchProcess(nsIChannel* aChannel) { // If we lack of any information which is required to decide the need of // process switch, consider that we should switch process. @@ -493,18 +473,19 @@ TabParent::ShouldSwitchProcess(nsIChannel* aChannel, const nsACString& aSignedPk NS_ENSURE_TRUE(loadingPrincipal, true); // Prepare the channel result principal. - nsCOMPtr channelPrincipal = - GetChannelPrincipalWithSingedPkg(aChannel, aSignedPkg); + nsCOMPtr resultPrincipal; + nsContentUtils::GetSecurityManager()-> + GetChannelResultPrincipal(aChannel, getter_AddRefs(resultPrincipal)); // Log the debug info which is used to decide the need of proces switch. nsCOMPtr uri; aChannel->GetURI(getter_AddRefs(uri)); - LogChannelRelevantInfo(uri, loadingPrincipal, channelPrincipal, + LogChannelRelevantInfo(uri, loadingPrincipal, resultPrincipal, loadInfo->InternalContentPolicyType()); // Check if the signed package is loaded from the same origin. bool sameOrigin = false; - loadingPrincipal->Equals(channelPrincipal, &sameOrigin); + loadingPrincipal->Equals(resultPrincipal, &sameOrigin); if (sameOrigin) { LOG("Loading singed package from the same origin. Don't switch process.\n"); return false; @@ -535,7 +516,7 @@ void TabParent::OnStartSignedPackageRequest(nsIChannel* aChannel, const nsACString& aPackageId) { - if (!ShouldSwitchProcess(aChannel, aPackageId)) { + if (!ShouldSwitchProcess(aChannel)) { return; } @@ -2363,7 +2344,7 @@ TabParent::RecvStartPluginIME(const WidgetKeyboardEvent& aKeyboardEvent, return true; } widget->StartPluginIME(aKeyboardEvent, - (int32_t&)aPanelX, + (int32_t&)aPanelX, (int32_t&)aPanelY, *aCommitted); return true; diff --git a/dom/ipc/TabParent.h b/dom/ipc/TabParent.h index f4e7e0ec37cb..8befdbaa68d2 100644 --- a/dom/ipc/TabParent.h +++ b/dom/ipc/TabParent.h @@ -496,7 +496,7 @@ protected: // Decide whether we have to use a new process to reload the URI associated // with the given channel. - bool ShouldSwitchProcess(nsIChannel* aChannel, const nsACString& aSignedPkg); + bool ShouldSwitchProcess(nsIChannel* aChannel); ContentCacheInParent mContentCache; diff --git a/netwerk/test/mochitests/mochitest.ini b/netwerk/test/mochitests/mochitest.ini index ecadbe7120ad..13f28c8d81fb 100644 --- a/netwerk/test/mochitests/mochitest.ini +++ b/netwerk/test/mochitests/mochitest.ini @@ -9,7 +9,6 @@ support-files = user_agent_update.sjs web_packaged_app.sjs signed_web_packaged_app.sjs - signed_web_packaged_app_random.sjs file_loadinfo_redirectchain.sjs redirect_idn.html^headers^ redirect_idn.html @@ -30,8 +29,6 @@ skip-if = e10s skip-if = e10s || buildapp != 'browser' [test_signed_web_packaged_app_origin.html] skip-if = e10s || buildapp != 'browser' -[test_signed_to_signed_web_packaged_app.html] -skip-if = e10s || buildapp != 'browser' [test_web_packaged_app.html] [test_loadinfo_redirectchain.html] skip-if = buildapp == 'b2g' #no ssl support diff --git a/netwerk/test/mochitests/signed_web_packaged_app_random.sjs b/netwerk/test/mochitests/signed_web_packaged_app_random.sjs deleted file mode 100644 index f3773ac4496d..000000000000 --- a/netwerk/test/mochitests/signed_web_packaged_app_random.sjs +++ /dev/null @@ -1,92 +0,0 @@ -// Same as signed_web_packaged_app.sjs except this one would return a random -// package-identifer. - -var Cc = Components.classes; -var Ci = Components.interfaces; -var Cu = Components.utils; - -var uuid = Cc["@mozilla.org/uuid-generator;1"]. - getService(Ci.nsIUUIDGenerator). - generateUUID(). - toString().replace(/[{}]/g, ""); - -function handleRequest(request, response) -{ - response.setHeader("Content-Type", "application/package", false); - response.write(signedPackage); - return; -} - -// The package content -// getData formats it as described at http://www.w3.org/TR/web-packaging/#streamable-package-format -var signedPackage = `manifest-signature: MIIF1AYJKoZIhvcNAQcCoIIFxTCCBcECAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCCA54wggOaMIICgqADAgECAgECMA0GCSqGSIb3DQEBCwUAMHMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEkMCIGA1UEChMbRXhhbXBsZSBUcnVzdGVkIENvcnBvcmF0aW9uMRkwFwYDVQQDExBUcnVzdGVkIFZhbGlkIENBMB4XDTE1MDkxMDA4MDQzNVoXDTM1MDkxMDA4MDQzNVowdDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MSQwIgYDVQQKExtFeGFtcGxlIFRydXN0ZWQgQ29ycG9yYXRpb24xGjAYBgNVBAMTEVRydXN0ZWQgQ29ycCBDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAts8whjOzEbn/w1xkFJ67af7F/JPujBK91oyJekh2schIMzFau9pY8S1AiJQoJCulOJCJfUc8hBLKBZiGAkii+4Gpx6cVqMLe6C22MdD806Soxn8Dg4dQqbIvPuI4eeVKu5CEk80PW/BaFMmRvRHO62C7PILuH6yZeGHC4P7dTKpsk4CLxh/jRGXLC8jV2BCW0X+3BMbHBg53NoI9s1Gs7KGYnfOHbBP5wEFAa00RjHnubUaCdEBlC8Kl4X7p0S4RGb3rsB08wgFe9EmSZHIgcIm+SuVo7N4qqbI85qo2ulU6J8NN7ZtgMPHzrMhzgAgf/KnqPqwDIxnNmRNJmHTUYwIDAQABozgwNjAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAukH6cJUUj5faa8CuPCqrEa0PoLY4SYNnff9NI+TTAHkB9l+kOcFl5eo2EQOcWmZKYi7QLlWC4jy/KQYattO9FMaxiOQL4FAc6ZIbNyfwWBzZWyr5syYJTTTnkLq8A9pCKarN49+FqhJseycU+8EhJEJyP5pv5hLvDNTTHOQ6SXhASsiX8cjo3AY4bxA5pWeXuTZ459qDxOnQd+GrOe4dIeqflk0hA2xYKe3SfF+QlK8EO370B8Dj8RX230OATM1E3OtYyALe34KW3wM9Qm9rb0eViDnVyDiCWkhhQnw5yPg/XQfloug2itRYuCnfUoRt8xfeHgwz2Ymz8cUADn3KpTGCAf4wggH6AgEBMHgwczELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MSQwIgYDVQQKExtFeGFtcGxlIFRydXN0ZWQgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFRydXN0ZWQgVmFsaWQgQ0ECAQIwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE1MTAyODExMTIwMlowIwYJKoZIhvcNAQkEMRYEFENKTXRUkdej+EPd/oKRhz0Cp13zMA0GCSqGSIb3DQEBAQUABIIBAFCr+i8cwTiwzzCVjzZZI2NAqu8dnYOAJjkhD02tJjBCbvehEhXW6pP/Gk8+oyx2zoV87zbw9xBGcEU9b3ulbggdFR56S3C3w+eTbeOXMcx7A8mn9vvsoMJm+/rkT4DgEUU1iaM7pdwH48CKJOnAZP5FkjRvpRBh8TgfcDbusXveYTwG5LVpDp8856+9FBzvZ7wLz9iWDvlT/EFxfWOnGduAJunQ9qQm+pWu5cvSTwWasCMYmiPRlsuBhU9Fx7LtlXIHtE2nYYQVMTMDE58z/mzT34W0bnneecrghHREhb90UvdlUZJ2q3Jahsa3718WUGPTp7ZYwYaPBy7ryoOoWSA=\r ---7IYGY9UDJB\r -Content-Location: manifest.webapp\r -Content-Type: application/x-web-app-manifest+json\r -\r -{ - "moz-package-origin": "http://mochi.test:8888", - "name": "My App", - "moz-resources": [ - { - "src": "page2.html", - "integrity": "JREF3JbXGvZ+I1KHtoz3f46ZkeIPrvXtG4VyFQrJ7II=" - }, - { - "src": "index.html", - "integrity": "IjQ2S/V9qsC7wW5uv/Niq40M1aivvqH5+1GKRwUnyRg=" - }, - { - "src": "scripts/script.js", - "integrity": "6TqtNArQKrrsXEQWu3D9ZD8xvDRIkhyV6zVdTcmsT5Q=" - }, - { - "src": "scripts/library.js", - "integrity": "TN2ByXZiaBiBCvS4MeZ02UyNi44vED+KjdjLInUl4o8=" - } - ], - "moz-permissions": [ - { - "systemXHR": { - "description": "Needed to download stuff" - }, - "devicestorage:pictures": { - "description": "Need to load pictures" - } - } - ], - -` - + ' "package-identifier": "' + uuid + '",\n\r' + -` - "description": "A great app!" -}\r ---7IYGY9UDJB\r -Content-Location: page2.html\r -Content-Type: text/html\r -\r - - page2.html - -\r ---7IYGY9UDJB\r -Content-Location: index.html\r -Content-Type: text/html\r -\r - - Last updated: 2015/10/28 - -\r ---7IYGY9UDJB\r -Content-Location: scripts/script.js\r -Content-Type: text/javascript\r -\r -// script.js -\r ---7IYGY9UDJB\r -Content-Location: scripts/library.js\r -Content-Type: text/javascript\r -\r -// library.js -\r ---7IYGY9UDJB--`; diff --git a/netwerk/test/mochitests/test_signed_to_signed_web_packaged_app.html b/netwerk/test/mochitests/test_signed_to_signed_web_packaged_app.html deleted file mode 100644 index d57ff08af7a7..000000000000 --- a/netwerk/test/mochitests/test_signed_to_signed_web_packaged_app.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - Web packaged app - - - - - -

- -
-
-
- -