forked from mirrors/gecko-dev
		
	 96233200ee
			
		
	
	
		96233200ee
		
	
	
	
	
		
			
			MozReview-Commit-ID: IymuzcUg0VN --HG-- extra : rebase_source : 5c262babe60132c9a73acc7dadf3b38f30133ecc
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 | |
| /* vim: set sts=2 sw=2 et tw=80: */
 | |
| "use strict";
 | |
| 
 | |
| // The ext-* files are imported into the same scopes.
 | |
| /* import-globals-from ../../../toolkit/components/extensions/ext-c-toolkit.js */
 | |
| 
 | |
| /**
 | |
|  * Responsible for fetching HTTP response content from the backend.
 | |
|  *
 | |
|  * @param {DevtoolsExtensionContext}
 | |
|  *   A devtools extension context running in a child process.
 | |
|  * @param {object} options
 | |
|  */
 | |
| class ChildNetworkResponseLoader {
 | |
|   constructor(context, requestId) {
 | |
|     this.context = context;
 | |
|     this.requestId = requestId;
 | |
|   }
 | |
| 
 | |
|   api() {
 | |
|     const {context, requestId} = this;
 | |
|     return {
 | |
|       getContent(callback) {
 | |
|         return context.childManager.callParentAsyncFunction(
 | |
|           "devtools.network.Request.getContent",
 | |
|           [requestId],
 | |
|           callback);
 | |
|       },
 | |
|     };
 | |
|   }
 | |
| }
 | |
| 
 | |
| this.devtools_network = class extends ExtensionAPI {
 | |
|   getAPI(context) {
 | |
|     return {
 | |
|       devtools: {
 | |
|         network: {
 | |
|           onRequestFinished: new EventManager(context, "devtools.network.onRequestFinished", fire => {
 | |
|             let onFinished = (data) => {
 | |
|               const loader = new ChildNetworkResponseLoader(context, data.requestId);
 | |
|               const harEntry = {...data.harEntry, ...loader.api()};
 | |
|               const result = Cu.cloneInto(harEntry, context.cloneScope, {
 | |
|                 cloneFunctions: true,
 | |
|               });
 | |
|               fire.asyncWithoutClone(result);
 | |
|             };
 | |
| 
 | |
|             let parent = context.childManager.getParentEvent("devtools.network.onRequestFinished");
 | |
|             parent.addListener(onFinished);
 | |
|             return () => {
 | |
|               parent.removeListener(onFinished);
 | |
|             };
 | |
|           }).api(),
 | |
|         },
 | |
|       },
 | |
|     };
 | |
|   }
 | |
| };
 |