forked from mirrors/gecko-dev
		
	 aac6fb9470
			
		
	
	
		aac6fb9470
		
	
	
	
	
		
			
			Make sure cookies aren't saved on channel headers in the content process. Adds test to verify that this works, and removes tests that expected cookie headers to be visible to the child. MozReview-Commit-ID: KOB83xpuAlF --HG-- extra : rebase_source : 6f9a5ef570fb23200acf8d75285e67d80b7c27f0
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| ChromeUtils.import("resource://testing-common/httpd.js");
 | |
| ChromeUtils.import("resource://gre/modules/Services.jsm");
 | |
| 
 | |
| 
 | |
| const TEST_DOMAIN = "www.example.com";
 | |
| XPCOMUtils.defineLazyGetter(this, "URL", function() {
 | |
|   return "http://" + TEST_DOMAIN +":" + httpserv.identity.primaryPort + "/path";
 | |
| });
 | |
| 
 | |
| const responseBody1 = "response";
 | |
| function requestHandler(metadata, response)
 | |
| {
 | |
|   response.setHeader("Content-Type", "text/plain");
 | |
|   response.setHeader("Set-Cookie", "tom=cool; Max-Age=10", true);
 | |
|   response.bodyOutputStream.write(responseBody1, responseBody1.length);
 | |
| }
 | |
| 
 | |
| let httpserv = null;
 | |
| 
 | |
| function run_test() {
 | |
|   httpserv = new HttpServer();
 | |
|   httpserv.registerPathHandler("/path", requestHandler);
 | |
|   httpserv.start(-1);
 | |
|   httpserv.identity.add("http", TEST_DOMAIN, httpserv.identity.primaryPort);
 | |
| 
 | |
|   registerCleanupFunction(() => {
 | |
|     Services.cookies.removeCookiesWithOriginAttributes("{}", TEST_DOMAIN);
 | |
|     Services.prefs.clearUserPref("network.dns.localDomains");
 | |
|     Services.prefs.clearUserPref("network.cookie.cookieBehavior");
 | |
| 
 | |
|     httpserv.stop();
 | |
|     httpserv = null;
 | |
|   });
 | |
| 
 | |
|   Services.prefs.setCharPref("network.dns.localDomains", TEST_DOMAIN);
 | |
|   Services.prefs.setIntPref("network.cookie.cookieBehavior", 0);
 | |
|   Services.cookies.removeCookiesWithOriginAttributes("{}", TEST_DOMAIN);
 | |
| 
 | |
|   // Sends back the URL to the child script
 | |
|   do_await_remote_message("start-test").then(() => {
 | |
|     do_send_remote_message("start-test-done", URL);
 | |
|   });
 | |
| 
 | |
|   // Sends back the cookie count for the domain
 | |
|   // Should only be one - from Set-Cookie
 | |
|   do_await_remote_message("check-cookie-count").then(() => {
 | |
|     do_send_remote_message("check-cookie-count-done", Services.cookies.countCookiesFromHost(TEST_DOMAIN));
 | |
|   });
 | |
| 
 | |
|   // Sends back the cookie count for the domain
 | |
|   // There should be 2 cookies. One from the Set-Cookie header, the other set
 | |
|   // manually.
 | |
|   do_await_remote_message("second-check-cookie-count").then(() => {
 | |
|     do_send_remote_message("second-check-cookie-count-done", Services.cookies.countCookiesFromHost(TEST_DOMAIN));
 | |
|   });
 | |
| 
 | |
|   // Sets a cookie for the test domain
 | |
|   do_await_remote_message("set-cookie").then(() => {
 | |
|     const expiry = Date.now() + 24 * 60 * 60;
 | |
|     Services.cookies.add(TEST_DOMAIN, "/", "cookieName", "cookieValue", false, false, false, expiry, {});
 | |
|     do_send_remote_message("set-cookie-done");
 | |
|   });
 | |
| 
 | |
|   // Run the actual test logic
 | |
|   run_test_in_child("child_cookie_header.js");
 | |
| }
 |