forked from mirrors/gecko-dev
		
	 ee093cd087
			
		
	
	
		ee093cd087
		
	
	
	
	
		
			
			Differential Revision: https://phabricator.services.mozilla.com/D69257 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * Send HTTP requests and notify the parent about their channelId
 | |
|  */
 | |
| /* global NetUtil, ChannelListener */
 | |
| 
 | |
| let shouldQuit = false;
 | |
| 
 | |
| function run_test() {
 | |
|   // keep the event loop busy and the test alive until a "finish" command
 | |
|   // is issued by parent
 | |
|   do_timeout(100, function keepAlive() {
 | |
|     if (!shouldQuit) {
 | |
|       do_timeout(100, keepAlive);
 | |
|     }
 | |
|   });
 | |
| }
 | |
| 
 | |
| function makeRequest(uri) {
 | |
|   let requestChannel = NetUtil.newChannel({
 | |
|     uri,
 | |
|     loadUsingSystemPrincipal: true,
 | |
|   });
 | |
|   requestChannel.asyncOpen(new ChannelListener(checkResponse, requestChannel));
 | |
|   requestChannel.QueryInterface(Ci.nsIHttpChannel);
 | |
|   dump(`Child opened request: ${uri}, channelId=${requestChannel.channelId}\n`);
 | |
| }
 | |
| 
 | |
| function checkResponse(request, buffer, requestChannel) {
 | |
|   // notify the parent process about the original request channel
 | |
|   requestChannel.QueryInterface(Ci.nsIHttpChannel);
 | |
|   do_send_remote_message(`request:${requestChannel.channelId}`);
 | |
| 
 | |
|   // the response channel can be different (if it was redirected)
 | |
|   let responseChannel = request.QueryInterface(Ci.nsIHttpChannel);
 | |
| 
 | |
|   let uri = responseChannel.URI.spec;
 | |
|   let origUri = responseChannel.originalURI.spec;
 | |
|   let id = responseChannel.channelId;
 | |
|   dump(`Child got response to: ${uri} (orig=${origUri}), channelId=${id}\n`);
 | |
| 
 | |
|   // notify the parent process about this channel's ID
 | |
|   do_send_remote_message(`response:${id}`);
 | |
| }
 | |
| 
 | |
| function finish() {
 | |
|   shouldQuit = true;
 | |
| }
 |