forked from mirrors/gecko-dev
		
	 6720e65c4e
			
		
	
	
		6720e65c4e
		
	
	
	
	
		
			
			Streams serialized with the default nsIInputStream serializer will be serialized with delayedStart, meaning that when sent from the parent process to the content process it will be serialized as a RemoteLazyInputStream. In the specific case of SendOpenStream this causes issues, as the content process code depends on the synchronous nature of nsIFileInputStream to allow it to be wrapped in a SnappyUncompressInputStream, which requires a sync stream. Relying on this property is not generally correct and only works because we know only nsFileInputStream will be sent by the parent process. Other types of sync streams may be received as async if they are sufficiently large, such as nsStringInputStream. Differential Revision: https://phabricator.services.mozilla.com/D103227
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			751 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			751 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* 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/. */
 | |
| 
 | |
| include protocol PBackground;
 | |
| include protocol PFileDescriptorSet;
 | |
| include protocol PChildToParentStream;
 | |
| include protocol PParentToChildStream;
 | |
| include IPCStream;
 | |
| 
 | |
| using struct nsID from "nsID.h";
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace dom {
 | |
| namespace cache {
 | |
| 
 | |
| refcounted protocol PCacheStreamControl
 | |
| {
 | |
|   manager PBackground;
 | |
| 
 | |
| parent:
 | |
|   async OpenStream(nsID aStreamId) returns(IPCStream? aStream);
 | |
|   async NoteClosed(nsID aStreamId);
 | |
| 
 | |
| child:
 | |
|   async CloseAll();
 | |
|   async __delete__();
 | |
| };
 | |
| 
 | |
| } // namespace cache
 | |
| } // namespace dom
 | |
| } // namespace mozilla
 |