@@ -24,7 +24,6 @@ import { writeFileAndFlushSync } from 'vs/base/node/extfs';
2424import { generateUuid , isUUID } from 'vs/base/common/uuid' ;
2525import { values } from 'vs/base/common/map' ;
2626import { CancellationToken } from 'vs/base/common/cancellation' ;
27- import { wireCancellationToken } from 'vs/base/common/async' ;
2827
2928interface IRawGalleryExtensionFile {
3029 assetType : string ;
@@ -375,7 +374,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
375374 query = query . withFilter ( FilterType . ExtensionName , id ) ;
376375 }
377376
378- return this . queryGallery ( query ) . then ( ( { galleryExtensions } ) => {
377+ return this . queryGallery ( query , CancellationToken . None ) . then ( ( { galleryExtensions } ) => {
379378 if ( galleryExtensions . length ) {
380379 const galleryExtension = galleryExtensions [ 0 ] ;
381380 const versionAsset = version ? galleryExtension . versions . filter ( v => v . version === version ) [ 0 ] : galleryExtension . versions [ 0 ] ;
@@ -447,7 +446,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
447446 query = query . withSortOrder ( options . sortOrder ) ;
448447 }
449448
450- return this . queryGallery ( query ) . then ( ( { galleryExtensions, total } ) => {
449+ return this . queryGallery ( query , CancellationToken . None ) . then ( ( { galleryExtensions, total } ) => {
451450 const extensions = galleryExtensions . map ( ( e , index ) => toExtension ( e , e . versions [ 0 ] , index , query , options . source ) ) ;
452451 const pageSize = query . pageSize ;
453452 const getPage = ( pageIndex : number , ct : CancellationToken ) => {
@@ -456,17 +455,15 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
456455 }
457456
458457 const nextPageQuery = query . withPage ( pageIndex + 1 ) ;
459- const promise = this . queryGallery ( nextPageQuery )
458+ return this . queryGallery ( nextPageQuery , ct )
460459 . then ( ( { galleryExtensions } ) => galleryExtensions . map ( ( e , index ) => toExtension ( e , e . versions [ 0 ] , index , nextPageQuery , options . source ) ) ) ;
461-
462- return wireCancellationToken ( ct , promise ) ;
463460 } ;
464461
465462 return { firstPage : extensions , total, pageSize, getPage } as IPager < IGalleryExtension > ;
466463 } ) ;
467464 }
468465
469- private queryGallery ( query : Query ) : TPromise < { galleryExtensions : IRawGalleryExtension [ ] , total : number ; } > {
466+ private queryGallery ( query : Query , token : CancellationToken ) : TPromise < { galleryExtensions : IRawGalleryExtension [ ] , total : number ; } > {
470467 return this . commonHeadersPromise . then ( commonHeaders => {
471468 const data = JSON . stringify ( query . raw ) ;
472469 const headers = assign ( { } , commonHeaders , {
@@ -481,7 +478,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
481478 url : this . api ( '/extensionquery' ) ,
482479 data,
483480 headers
484- } ) . then ( context => {
481+ } , token ) . then ( context => {
485482
486483 if ( context . res . statusCode >= 400 && context . res . statusCode < 500 ) {
487484 return { galleryExtensions : [ ] , total : 0 } ;
@@ -511,7 +508,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
511508 type : 'POST' ,
512509 url : this . api ( `/publishers/${ publisher } /extensions/${ name } /${ version } /stats?statType=${ type } ` ) ,
513510 headers
514- } ) . then ( null , ( ) => null ) ;
511+ } , CancellationToken . None ) . then ( null , ( ) => null ) ;
515512 } ) ;
516513 }
517514
@@ -584,7 +581,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
584581 . withAssetTypes ( AssetType . Manifest , AssetType . VSIX )
585582 . withFilter ( FilterType . ExtensionId , extension . identifier . uuid ) ;
586583
587- return this . queryGallery ( query )
584+ return this . queryGallery ( query , CancellationToken . None )
588585 . then ( ( { galleryExtensions } ) => {
589586 const [ rawExtension ] = galleryExtensions ;
590587
@@ -619,7 +616,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
619616 . withAssetTypes ( AssetType . Icon , AssetType . License , AssetType . Details , AssetType . Manifest , AssetType . VSIX )
620617 . withFilter ( FilterType . ExtensionName , ...extensionNames ) ;
621618
622- return this . queryGallery ( query ) . then ( result => {
619+ return this . queryGallery ( query , CancellationToken . None ) . then ( result => {
623620 const dependencies = [ ] ;
624621 const ids = [ ] ;
625622
@@ -658,7 +655,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
658655 } ) ;
659656 }
660657
661- private getAsset ( asset : IGalleryExtensionAsset , options : IRequestOptions = { } ) : TPromise < IRequestContext > {
658+ private getAsset ( asset : IGalleryExtensionAsset , options : IRequestOptions = { } , token : CancellationToken = CancellationToken . None ) : TPromise < IRequestContext > {
662659 return this . commonHeadersPromise . then ( commonHeaders => {
663660 const baseOptions = { type : 'GET' } ;
664661 const headers = assign ( { } , commonHeaders , options . headers || { } ) ;
@@ -668,7 +665,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
668665 const fallbackUrl = asset . fallbackUri ;
669666 const firstOptions = assign ( { } , options , { url } ) ;
670667
671- return this . requestService . request ( firstOptions )
668+ return this . requestService . request ( firstOptions , token )
672669 . then ( context => {
673670 if ( context . res . statusCode === 200 ) {
674671 return TPromise . as ( context ) ;
@@ -700,7 +697,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
700697 this . telemetryService . publicLog ( 'galleryService:cdnFallback' , { url, message } ) ;
701698
702699 const fallbackOptions = assign ( { } , options , { url : fallbackUrl } ) ;
703- return this . requestService . request ( fallbackOptions ) . then ( null , err => {
700+ return this . requestService . request ( fallbackOptions , token ) . then ( null , err => {
704701 if ( isPromiseCanceledError ( err ) ) {
705702 return TPromise . wrapError < IRequestContext > ( err ) ;
706703 }
@@ -783,7 +780,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
783780 return TPromise . as ( [ ] ) ;
784781 }
785782
786- return this . requestService . request ( { type : 'GET' , url : this . extensionsControlUrl } ) . then ( context => {
783+ return this . requestService . request ( { type : 'GET' , url : this . extensionsControlUrl } , CancellationToken . None ) . then ( context => {
787784 if ( context . res . statusCode !== 200 ) {
788785 return TPromise . wrapError ( new Error ( 'Could not get extensions report.' ) ) ;
789786 }
@@ -831,4 +828,4 @@ export function resolveMarketplaceHeaders(environmentService: IEnvironmentServic
831828 'X-Market-User-Id' : uuid
832829 } ;
833830 } ) ;
834- }
831+ }
0 commit comments