Update extensions for deprecation of openWindow/closeWindow promise in OOjs UI v0.22
Closed, ResolvedPublic8 Story Points

Description

We should update extensions for the deprecation of openWindow/closeWindow promise in OOjs UI v0.22.

The return value of WindowManager#openWindow (and thus also Window#open) and WindowManager#closeWindow (and thus also Window#close) is no longer a funny nested promise; instead it is an object with a few properties containing regular promises. Using the old calling convention generates deprecation warnings. See T95923: WindowManager interface for opening is not user-friendly and https://gerrit.wikimedia.org/r/#/c/356061/ for details.

Basically, grep all of our code for these functions, and ensure that the return value (if it is used) is used in the new way.

ExtensionPatches / Notes
corehttps://gerrit.wikimedia.org/r/356992
ArticlePlaceholder
BlueSpiceExtensions
BlueSpiceFoundation
Cargo
Cite
Citoidhttps://gerrit.wikimedia.org/r/357433
CollaborationKithttps://gerrit.wikimedia.org/r/357105
CommentStreamshttps://gerrit.wikimedia.org/r/357104
EducationProgram
EventLogging
Flowhttps://gerrit.wikimedia.org/r/357434
GoogleLogin
Graph
ImageTweaks
Kartographerhttps://gerrit.wikimedia.org/r/357432
LinkSuggest
MediaWikiChat
MobileFrontend
MultimediaViewer
MwEmbedSupport
OOJsUIAjaxLogin
PageViewInfo
PerformanceInspector
PictureGamehttps://gerrit.wikimedia.org/r/357414
PopcornEditor
QuizGamehttps://gerrit.wikimedia.org/r/357415
RevisionSlider
SemanticComments
SemanticExpressiveness
SemanticLinks
SemanticPageMaker
SocialLogin
SVGEdit
Teahousehttps://gerrit.wikimedia.org/r/357435
TemplateDatahttps://gerrit.wikimedia.org/r/357436
TimedMediaHandler
Translate
TwoColConflicthttps://gerrit.wikimedia.org/r/357213
UniversalLanguageSelector
UploadWizard
VIKI
VirtualKeyboard
VisualEditorhttps://gerrit.wikimedia.org/r/356766 https://gerrit.wikimedia.org/r/356767
WikiEditor
matmarex created this task.May 31 2017, 8:19 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMay 31 2017, 8:19 PM
Jdforrester-WMF set the point value for this task to 8.
Jdforrester-WMF moved this task from To Triage to TR0: Interrupt on the VisualEditor board.
Jdforrester-WMF added a subscriber: Jdforrester-WMF.
Jdforrester-WMF triaged this task as Normal priority.May 31 2017, 11:17 PM
matmarex updated the task description. (Show Details)Jun 1 2017, 4:54 PM
Jdforrester-WMF moved this task from Backlog to Doing on the OOjs-UI board.Jun 1 2017, 7:42 PM
matmarex added a comment.EditedJun 1 2017, 10:17 PM

I grepped everything for calls to the four functions, then removed obvious false positives (code dealing with opening filesystem files or HTTP requests or browser windows, or part of a well-known library that definitely doesn't use OOjs UI). Here's a shortlist of code I'll go through. Probably half of this is more false positives, and half of the remaining are simple cases that don't need changes (do not use the return value at all).

core/resources/src/mediawiki/mediawiki.feedback.js:
  121: 			this.constructor.static.windowManager.openWindow(
  151: 		this.constructor.static.windowManager.openWindow(
  375: 				this.close( { action: action } );
  380: 				window.open( this.getBugReportLink(), '_blank' );
  382: 				this.close();
  408: 					fb.close();

core/resources/src/mediawiki/mediawiki.notification.convertmessagebox.js:
   55: 					notif.close();

core/resources/src/mediawiki/mediawiki.notification.js:
   76: 		//         Set back to false after .close() to avoid duplicating the close animation.
  139: 					notif.close();
  196: 				notif.close();
  282: 					notif.close();

core/resources/src/mediawiki/mediawiki.Upload.Dialog.js:
   15: 	 *     windowManager.openWindow( uploadDialog );
  208: 				dialog.close( dialog.upload );
  212: 			return new OO.ui.Process( this.close() );

core/resources/src/mediawiki.special/mediawiki.special.apisandbox.js:
   54: 				windowManager.openWindow( 'errorAlert', {
  995: 					windowManager.openWindow( 'errorAlert', {
 1322: 					windowManager.openWindow( 'errorAlert', {

extensions/ArticlePlaceholder/modules/ext.articleplaceholder.createArticle/ext.articleplaceholder.createArticle.js:
   90: 			self.close();

extensions/ArticlePlaceholder/modules/ext.articleplaceholder.createArticle/ext.articleplaceholder.newArticle.js:
   23: 			windowManager.openWindow( dialog );

extensions/ArticlePlaceholder/tests/qunit/modules/ext.articleplaceholder.createArticle/ext.articleplaceholder.createArticle.test.js:
   76: 		windowManager.openWindow( dialog );

extensions/ArticlePlaceholder/tests/qunit/modules/ext.articleplaceholder.createArticle/ext.articleplaceholder.createArticleTranslation.test.js:
   50: 		windowManager.openWindow( dialog );

extensions/BlueSpiceExtensions/Avatars/resources/BS.Avatars/SettingsWindow.js:
   92: 		this.close();

extensions/BlueSpiceExtensions/Flexiskin/resources/BS.Flexiskin/UploadFile.js:
   45: 					this.close();

extensions/BlueSpiceExtensions/PageAssignments/resources/BS.PageAssignments/dialog/PageAssignment.js:
   47: 					me.close();

extensions/BlueSpiceExtensions/PageTemplates/resources/BS.PageTemplates/Panel.js:
  150: 			me.dlgTemplateAdd.close();
  185: 			me.dlgTemplateEdit.close();

extensions/BlueSpiceFoundation/resources/bluespice.extjs/BS/PromptDialog.js:
   29: 		this.close();

extensions/BlueSpiceFoundation/resources/bluespice.extjs/BS/SimpleDialog.js:
   53: 		this.close();
   59: 		this.close();

extensions/BlueSpiceFoundation/resources/bluespice.extjs/BS/Window.js:
   68: 			this.close();
   74: 		this.close();

extensions/BlueSpiceFoundation/resources/bluespice.extjs/BS/dialog/Upload.js:
   32: 		this.close();

extensions/BlueSpiceFoundation/resources/bluespice.extjs/BS/form/CategoryBoxSelect.js:
  150: 			this.wdTree.close();

extensions/BlueSpiceFoundation/resources/extjs/ext-all-debug.js:
 85212:             this.close();

extensions/Cargo/libs/ext.cargo.maps.js:
  131: 					infoWindows[i].close();
  133: 				infoWindows[this.itemNum].open(map,this);

extensions/Cargo/libs/SimileTimeline/scripts/timeline.js:
  655:         this._bubble.close();

extensions/Cite/modules/ve-cite/ve.ui.MWCitationDialog.js:
  220: 				dialog.close( { action: action } );

extensions/Cite/modules/ve-cite/ve.ui.MWReferenceDialog.js:
  368: 			this.close( { action: action } );

extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListDialog.js:
  121: 			this.close( { action: action } );

extensions/Citoid/modules/ve.ui.CiteFromIdInspector.js:
  335: 	this.close().then( function () {
  353: 	this.close();
  401: 		this.close();

extensions/Citoid/modules/ve.ui.Citoid.init.js:
  113: 				action.open( true, convertibleHref );

extensions/CollaborationKit/modules/ext.CollaborationKit.hubtheme.js:
  126: 				dialog.close( { action: action } );
  160: 		windowManager.openWindow( processDialog );
  234: 					return dialog.close();
  250: 						dialog.close( { action: action } );
  283: 		windowManager.openWindow( processDialog );

extensions/CollaborationKit/modules/ext.CollaborationKit.iconbrowser.js:
   89: 				dialog.close( { action: action } );
  123: 		windowManager.openWindow( processDialog );

extensions/CollaborationKit/modules/ext.CollaborationKit.list.ui.js:
   61: 		windowManager.openWindow( dialog );
  260: 				dialog.close(); // FIXME should we just leave open?

extensions/CommentStreams/resources/CommentStreams.js:
  503: 			window_manager.openWindow( dialog, {
  684: 			window_manager.openWindow( dialog, {

extensions/EducationProgram/resources/ep.tagsinput/ep.typeahead.js:
  841:                     this.close();
 1060:                 this.dropdownView.open();
 1083:                         this.dropdownView.close();

extensions/EventLogging/modules/ext.eventLogging.debug.js:
   20: 					wm.openWindow( dialog, $.extend( {

extensions/Flow/modules/editor/editors/visualeditor/ui/inspectors/mw.flow.ve.ui.MentionInspector.js:
  222: 					inspector.close( { action: action } );
  234: 				this.close( { action: action } );

extensions/Flow/modules/engine/components/board/base/flow-board-interactive-events.js:
   68: 			// eg. call mw.Modal.close( this );

extensions/Flow/modules/engine/components/board/base/flow-boardandhistory-base.js:
  176: 			mw.Modal.close( this );

extensions/Flow/modules/engine/misc/mw-ui.modal.js:
   67: 			this.open( settings.open );
  254: 					self.close();
  320: 			return this.close();

extensions/Flow/modules/flow/ui/widgets/editor/mw.flow.ui.EditorWidget.js:
  134: 			mw.flow.ui.windowManager.openWindow( 'cancelconfirm' )

extensions/Flow/tests/qunit/engine/misc/test_mw-ui.enhance.js:
   85: 		modal.close();
   93: 		modal.open( 'contentfoo' );
   97: 		modal.open( '<h1>contentfoo</h1>' );
  101: 		modal.open( $( '<h2>contentfoo</h2>' ) );
  114: 		modal.close(); // kill the test modal

extensions/GoogleLogin/javascripts/specialpages/ext.GoogleLogin.specialManage.js:
  116: 					self.close();
  123: 					windowManager.openWindow( messageDialog, {
  147: 								this.close();
  160: 			windowManager.openWindow( infoDialog );

extensions/Graph/modules/ve-graph/ve.ui.MWGraphDialog.js:
  310: 				this.close( { action: action } );

extensions/ImageTweaks/resources/src/imagetweaks.bootstrap.js:
   37: 					editor.close();
   90: 					wm.openWindow( dialog );

extensions/Kartographer/modules/box/Map.js:
  534: 			mw.loader.require( 'ext.kartographer.dialog' ).close();

extensions/Kartographer/modules/dialog/index.js:
   29: 			mapDialog.close();
   61: 					.openWindow( dialog, { map: map } )
   72: 						dialog.close();
  116: 					.openWindow( dialog, {} )
  128: 						dialog.close();

extensions/Kartographer/modules/wikivoyage/wikivoyage.js:
   29: 		return getWindowManager().openWindow( messageDialog, {

extensions/LinkSuggest/jquery.mw.linksuggest.js:
  124: 					this.close( event );
  156: 				this.element.data( 'autocomplete' ).close( event );

extensions/MediaWikiChat/MediaWikiChat.js:
  708: 			notification.close();

extensions/MobileFrontend/resources/mobile.editor.ve/ve.init.mw.MobileFrontendArticleTarget.js:
  245: 	ve.init.mw.MobileFrontendArticleTarget.super.prototype.close.apply( this, arguments );

extensions/MobileFrontend/resources/mobile.startup/toast.js:
   34: 				notif.close();

extensions/MultimediaViewer/resources/mmv/mmv.bootstrap.js:
  292: 				bs.statusInfoDialog.close();
  300: 				bs.statusInfoDialog.close();
  330: 				bs.statusInfoDialog.open();

extensions/MultimediaViewer/resources/mmv/mmv.js:
  252: 			this.ui.open();
  911: 				// FIXME triggers mmv-close event, which calls viewer.close()
  914: 				this.close();
  977: 			viewer.close();

extensions/MultimediaViewer/resources/mmv/ui/mmv.ui.tipsyDialog.js:
  197: 			this.close();

extensions/MultimediaViewer/tests/qunit/mmv/mmv.test.js:
   53: 		viewer.close();
  176: 		viewer.close();
  296: 		viewer.close();
  474: 		viewer.displayRealThumbnail = this.sandbox.spy( function () { viewer.close(); } );
  696: 		viewer.close();

extensions/MultimediaViewer/tests/qunit/mmv/ui/mmv.ui.tipsyDialog.test.js:
   33: 		dialog.open();
   35: 		dialog.close();
   47: 		dialog.open();
   58: 		dialog.open();
   64: 		dialog.open();

extensions/MwEmbedSupport/MwEmbedModules/MwEmbedSupport/jquery/jquery.mwMessage.js:
   19:  *				      function(){ $dialog.close() },

extensions/OOJsUIAjaxLogin/resources/ext.OOJsUIAjaxLogin.overlay/LoginOverlay.js:
  221: 			windowManager.openWindow( this.overlay, {

extensions/PageViewInfo/resources/ext.pageviewinfo.js:
   34: 						dialog.close( { action: action } );
   45: 			windowManager.openWindow( dialog );

extensions/PerformanceInspector/modules/ext.PerformanceInspector.startup.js:
   54: 						windowManager.openWindow( dialog );

extensions/PerformanceInspector/modules/ext.PerformanceInspector.view.js:
  101: 				this.close( {

extensions/PictureGame/picturegame/PictureGame.js:
   25: 	return manager.openWindow( 'message', $.extend( {
   30: 			manager.getCurrentWindow().close( { action: 'accept' } );

extensions/PopcornEditor/modules/ext.popcorn.editButton.js:
   15: 			mw.popcorn.open({

extensions/QuizGame/js/QuizGame.js:
   26: 	return manager.openWindow( 'message', $.extend( {
   31: 			manager.getCurrentWindow().close( { action: 'accept' } );

extensions/RevisionSlider/modules/ext.RevisionSlider.HelpDialog.js:
  191: 			windowManager.openWindow( dialogue );
  196: 				windowManager.closeWindow( dialogue );

extensions/SemanticComments/scripts/overlay.js:
  121: 						this.close(e);
  168: 							self.close(e); 
  179: 							self.close(e);	 
  209: 					$.mask.close();		
  262: 			self.close(e);  

extensions/SemanticExpressiveness/resources/ext.semex.ui.ContextPopup.js:
  279: 	 * @param {Function} [callback] Executed after this.close()
  284: 			self.close();
  296: 	 * @param {Function} [callback] Executed for each affected popup after this.close()
  686: 			openChild.close();

extensions/SemanticLinks/modules/VELinkTyping.js:
  297:             this.close();

extensions/SemanticPageMaker/scripts/wysiwyg/ckeditor/_source/plugins/dialogui/plugin.js:
 1424: 						frameDocument.$.open();
 1448: 						frameDocument.$.close();

extensions/SemanticPageMaker/scripts/wysiwyg/ckeditor/_source/plugins/listblock/plugin.js:
  110: 						this._.close();
  121: 						this._.close();

extensions/SemanticPageMaker/scripts/wysiwyg/ckeditor/_source/plugins/panel/plugin.js:
  140: 				doc.$.open();
  166: 				doc.$.close();

extensions/SocialLogin/auth.js:
   53: 					win.close();

extensions/SVGEdit/modules/ext.svgedit.editButton.js:
   23: 			mw.svgedit.open({

extensions/SVGEdit/modules/ext.svgedit.inline.js:
   22: 		mw.svgedit.open({

extensions/SVGEdit/modules/ext.svgedit.toolbar.js:
   36: 		mediaWiki.svgedit.open({

extensions/Teahouse/resources/mediawiki.util.teahouse.dialog.js:
   50: 			_windowManager.openWindow( _questionDialog, data );
   68: 				.openWindow( _messageDialog, data )

extensions/Teahouse/resources/ui/dialog/Question.js:
  205: 					me.close( { action: action } )

extensions/TemplateData/modules/ext.templateDataGenerator.target.js:
  178: 	this.windowManager.openWindow( 'TemplateDataDialog', {
  206: 				OO.ui.getWindowManager().openWindow( 'messageDialog', {
  301: 		this.windowManager.closeWindow( this.windowManager.getCurrentWindow() );
  302: 		OO.ui.getWindowManager().openWindow( 'messageDialog', {

extensions/TemplateData/modules/ext.templateDataGenerator.ui.tdDialog.js:
 1059: 			this.close( { action: action } );
 1068: 						dialog.close();

extensions/TimedMediaHandler/MwEmbedModules/EmbedPlayer/binPlayers/ogv.js/ogv.js:
 1230: 				codec.close();
 1239: 				audioFeeder.close();
 7919: 					this._backend.close();
 9382: 				demuxer.close();
 9386: 				videoDecoder.close();
 9390: 				audioDecoder.close();

extensions/TimedMediaHandler/resources/videojs/video.js:
 7272:       this.close();
 10120:         this.errorDisplay.close();
 10699:     return modal.open();

extensions/Translate/resources/js/ext.translate.quickedit.js:
  113: 						callbacks.close();
  127: 				callbacks.close();
  316: 									callbacks.close();

extensions/TwoColConflict/modules/ext.TwoColConflict.BaseVersionSelector.js:
   62: 				self.close().then(

extensions/TwoColConflict/modules/ext.TwoColConflict.HelpDialog.js:
  167: 			windowManager.openWindow( dialog );
  172: 				windowManager.closeWindow( dialog );

extensions/TwoColConflict/modules/ext.TwoColConflict.init.js:
  156: 		windowManager.openWindow( versionSelector );

extensions/UniversalLanguageSelector/resources/js/ext.uls.displaysettings.js:
  623: 			this.$parent.close();
  711: 				this.close();
  726: 			this.close();

extensions/UniversalLanguageSelector/resources/js/ext.uls.inputsettings.js:
  500: 			this.$parent.close();
  570: 				this.close();
  583: 			this.close();

extensions/UploadWizard/resources/mw.errorDialog.js:
   14: 		OO.ui.getWindowManager().openWindow( 'upwizErrorDialog', {

extensions/UploadWizard/resources/mw.UploadWizardLicenseInput.js:
   22: 				dialog.close();
   34: 			dialog.close();
  624: 			this.windowManager.openWindow( this.previewDialog );
  630: 				input.windowManager.openWindow( input.previewDialog );

extensions/VIKI/VIKI.js:
  317: 			self.loadingView = vex.open( {
  741: 			vex.close( self.loadingView.data().vex.id );
 1531: 				vex.dialog.open( {
 1592: 				vex.open( {
 2537: 			self.progressbarView = vex.open( {
 2584: 			vex.close( self.progressbarView.data().vex.id );

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/virtualkeyboard.js:
 1110:       self.isOpen()&&nodes.attachedInput==self.attachInput(input)?self.close():self.show(input, holder, kpTarget);

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/vk_easy.js:
  159:             VirtualKeyboard.close();

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/vk_iframe.js:
  128:                 hWnd.VirtualKeyboard.close();
  149:         self.isOpen()?self.close():self.open(input,holder);
  158:         this.close();

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/vk_popup.js:
   94:         hWnd.close();
  108:         self.isOpen()?self.close():self.open(input);

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/setup/io.js:
   57:                 default: ts.Close(); return 0
   59:         ts.Close()
   95:         this.ts.Close()

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/setup/setup.html:
   85:               of.Close();
   88:               of.Close();

extensions/VirtualKeyboard/modules/VirtualKeyboard.full.3.7.2/setup/trantable.html:
   64:                       of.Close();

extensions/VisualEditor/build/screenshots.diffs.js:
   18: 				target.saveDialog.close();

extensions/VisualEditor/lib/ve/demos/ve/ve.demo.SurfaceContainer.js:
   79: 		windowAction.open( 'diff', {

extensions/VisualEditor/lib/ve/src/ui/ve.ui.Surface.js:
  745: 	dialogs.openWindow( 'progress', { progresses: progresses, $returnFocusTo: null } );

extensions/VisualEditor/lib/ve/src/ui/ve.ui.Tool.js:
  111: 			surface.context.inspector.close().done( function () {

extensions/VisualEditor/lib/ve/src/ui/actions/ve.ui.WindowAction.js:
   99: 			autoClosePromises.push( windowManager.closeWindow( currentWindow ) );
  108: 			autoClosePromises.push( inspectorWindowManager.closeWindow( currentInspector ) );
  117: 				var opening = windowManager.openWindow( win, data );
  177: 	windowManager.closeWindow( name, data );
  200: 		this.open( name, data );
  202: 		this.close( name, data );

extensions/VisualEditor/lib/ve/src/ui/contexts/ve.ui.DesktopContext.js:
   94: 			this.inspector.close();
  118: 			this.inspector.close();
  192: 		this.inspector.close();

extensions/VisualEditor/lib/ve/src/ui/contexts/ve.ui.LinearContext.js:
  131: 			this.inspector.close();

extensions/VisualEditor/lib/ve/src/ui/dialogs/ve.ui.LanguageSearchDialog.js:
   71: 	this.close( {

extensions/VisualEditor/lib/ve/src/ui/dialogs/ve.ui.ProgressDialog.js:
  118: 		this.close( { action: action } );
  131: 		this.close();

extensions/VisualEditor/lib/ve/src/ui/dialogs/ve.ui.SpecialCharacterDialog.js:
  101: 		this.close( { action: action } );

extensions/VisualEditor/lib/ve/src/ui/dialogs/ve.ui.TableDialog.js:
  139: 				this.close( { action: 'done' } );

extensions/VisualEditor/lib/ve/src/ui/inspectors/ve.ui.CommentInspector.js:
   70: 			this.close( { action: action } );

extensions/VisualEditor/lib/ve/src/ui/inspectors/ve.ui.FragmentInspector.js:
  126: 			this.close( { action: 'done' } );

extensions/VisualEditor/lib/ve/src/ui/widgets/ve.ui.LanguageInputWidget.js:
  126: 	this.dialogs.openWindow( 'languageSearch', { availableLanguages: this.availableLanguages, $returnFocusTo: null } )

extensions/VisualEditor/lib/ve/tests/ui/dialogs/ve.ui.FindAndReplaceDialog.test.js:
   78: 		dialog.open( {
  125: 		dialog.open( {

extensions/VisualEditor/modules/ve-mw/init/ve.init.mw.ArticleTarget.js:
 1954: 		windowAction.open( 'mwSave', data, action );
 2127: 			windowManager.openWindow(
 2256: 		windowManager.openWindow( switchWindow, { mode: 'simple' } )

extensions/VisualEditor/modules/ve-mw/init/ve.init.MWEditingTabDialog.js:
   87: 				dialog.close( { action: act } );

extensions/VisualEditor/modules/ve-mw/init/ve.init.MWVESwitchConfirmDialog.js:
   92: 			this.close( { action: 'keep' } );
   99: 			this.close( { action: 'discard' } );
  103: 			this.close( { action: 'cancel' } );

extensions/VisualEditor/modules/ve-mw/init/ve.init.MWWelcomeDialog.js:
   98: 			this.close( { action: 'switch-wte' } );

extensions/VisualEditor/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js:
  655: 					windowManager.openWindow( switchWindow )
  980: 							windowManager.openWindow( editingTabDialog )
 1068: 				windowManager.openWindow(

extensions/VisualEditor/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js:
  344: 		windowManager.openWindow( this.editingTabDialog )
  561: 		this.welcomeDialog.close();
  564: 		this.editingTabDialog.close();
  573: 		this.getSurface().dialogs.openWindow( 'cancelconfirm' ).then( function ( opened ) {
 1034: 	this.getSurface().getDialogs().closeWindow( 'wikitextswitchconfirm' );
 1051: 	this.getSurface().getDialogs().openWindow( 'meta' );
 1072: 			.open( 'wikitextswitchconfirm', { target: this } );
 1092: 			promises.push( this.saveDialog.close() );
 1271: 				windowAction.open( 'meta', { page: 'categories' } );
 1579: 		windowAction.open( 'meta', { page: 'settings' } );
 1735: 			windowAction.open( 'meta', { page: 'settings' } );

extensions/VisualEditor/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js:
  263: 	ve.init.target.close();

extensions/VisualEditor/modules/ve-mw/ui/datatransferhandlers/ve.ui.MWMediaTransferHandler.js:
   49: 	action.open( 'media', { file: file } );

extensions/VisualEditor/modules/ve-mw/ui/dialogs/ve.ui.MWExtensionDialog.js:
  118: 			this.close( { action: 'done' } );

extensions/VisualEditor/modules/ve-mw/ui/dialogs/ve.ui.MWMediaDialog.js:
 1413: 				this.close( { action: action } );

extensions/VisualEditor/modules/ve-mw/ui/dialogs/ve.ui.MWMetaDialog.js:
   93: 			this.close( { action: action } );

extensions/VisualEditor/modules/ve-mw/ui/dialogs/ve.ui.MWPreDialog.js:
  108: 			this.close();

extensions/VisualEditor/modules/ve-mw/ui/dialogs/ve.ui.MWTemplateDialog.js:
  383: 		this.confirmDialogs.openWindow( 'requiredparamblankconfirm', {
  436: 					dialog.close( { action: action } ).always( dialog.popPending.bind( dialog ) );

extensions/VisualEditor/modules/ve-mw/ui/dialogs/ve.ui.MWWikitextSwitchConfirmDialog.js:
   67: 			this.close( { action: action } );

extensions/VisualEditor/modules/ve-mw/ui/inspectors/ve.ui.MWLinkAnnotationInspector.js:
  224: 			this.close( { action: 'done', convert: true } );

extensions/VisualEditor/modules/ve-mw/ui/inspectors/ve.ui.MWLinkNodeInspector.js:
   66: 			this.close( { action: action } );

extensions/VisualEditor/modules/ve-mw/ui/inspectors/ve.ui.MWMagicLinkNodeInspector.js:
   95: 			this.close( { action: action } );

extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.config.js:
  795: 								windowManager.openWindow( uploadDialog );
  798: 									uploadDialog.close();

Change 356766 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[VisualEditor/VisualEditor@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/356766

Change 356767 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/VisualEditor@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/356767

Change 356766 merged by jenkins-bot:
[VisualEditor/VisualEditor@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/356766

Change 356767 merged by jenkins-bot:
[mediawiki/extensions/VisualEditor@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/356767

Change 356992 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/core@master] mw.Upload.Dialog: Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/356992

matmarex updated the task description. (Show Details)Jun 3 2017, 8:32 AM
matmarex updated the task description. (Show Details)Jun 3 2017, 8:36 AM
matmarex updated the task description. (Show Details)Jun 3 2017, 9:15 AM
matmarex updated the task description. (Show Details)

Change 357104 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/CommentStreams@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357104

Change 357105 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/CollaborationKit@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357105

matmarex updated the task description. (Show Details)Jun 3 2017, 10:23 PM

Change 357105 merged by jenkins-bot:
[mediawiki/extensions/CollaborationKit@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357105

Change 356992 merged by jenkins-bot:
[mediawiki/core@master] mw.Upload.Dialog: Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/356992

matmarex updated the task description. (Show Details)Jun 5 2017, 2:14 PM
matmarex updated the task description. (Show Details)

Change 357213 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/TwoColConflict@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357213

matmarex updated the task description. (Show Details)Jun 5 2017, 2:32 PM
matmarex updated the task description. (Show Details)Jun 5 2017, 11:09 PM

Change 357213 merged by jenkins-bot:
[mediawiki/extensions/TwoColConflict@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357213

Change 357414 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/PictureGame@master] Use OO.ui.prompt() when available

https://gerrit.wikimedia.org/r/357414

Change 357415 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/QuizGame@master] Use OO.ui.prompt() when available

https://gerrit.wikimedia.org/r/357415

matmarex updated the task description. (Show Details)Jun 6 2017, 4:30 PM

Change 357432 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/Kartographer@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357432

Change 357433 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/Citoid@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357433

Change 357434 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/Flow@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357434

Change 357435 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/Teahouse@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357435

matmarex updated the task description. (Show Details)Jun 6 2017, 6:35 PM

Change 357436 had a related patch set uploaded (by Bartosz Dziewoński; owner: Bartosz Dziewoński):
[mediawiki/extensions/TemplateData@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357436

matmarex updated the task description. (Show Details)Jun 6 2017, 6:41 PM
matmarex added a comment.EditedJun 6 2017, 6:43 PM

That is all (unless someone's doing something crazy somewhere that did not match my regexp searches).

Please note that I generally did not test those patches, since I don't have most of the affected extensions set up locally. Please verify before merging. They are generally just simple mechanical replacements.

Extensions that do not have a patch listed did not require any changes (either the match was a false positive and they don't use OOjs UI, or their usage does not depend on the deprecated feature).

Change 357436 merged by jenkins-bot:
[mediawiki/extensions/TemplateData@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357436

Change 357433 merged by jenkins-bot:
[mediawiki/extensions/Citoid@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357433

matmarex updated the task description. (Show Details)Jun 7 2017, 1:34 PM

Change 357434 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357434

Change 357432 merged by jenkins-bot:
[mediawiki/extensions/Kartographer@master] Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357432

Jdforrester-WMF closed this task as Resolved.

This is now Resolved for all maintained extensions, FWICS.

Restricted Application added a project: User-Ryasmeen. · View Herald TranscriptJul 11 2017, 11:21 PM

Change 357414 merged by jenkins-bot:
[mediawiki/extensions/PictureGame@master] Use OO.ui.prompt() when available

https://gerrit.wikimedia.org/r/357414

Change 357415 merged by jenkins-bot:
[mediawiki/extensions/QuizGame@master] Use OO.ui.prompt() when available

https://gerrit.wikimedia.org/r/357415

Change 357104 abandoned by Bartosz Dziewoński:
Update for deprecation of OOjs UI openWindow/closeWindow promise

Reason:
This extension appears to be unmaintained and this is cluttering my dashboard. Feel free to restore and merge if desired.

https://gerrit.wikimedia.org/r/357104

Change 357435 abandoned by Bartosz Dziewoński:
Update for deprecation of OOjs UI openWindow/closeWindow promise

Reason:
This extension appears to be unmaintained and this is cluttering my dashboard. Feel free to restore and merge if desired.

https://gerrit.wikimedia.org/r/357435

CommentStreams is not unmaintained. It uses the "master" compatibility policy. If I merge this change into master, the extension will no longer work with current MediaWiki releases, correct? What is the recommended approach for preparing for breaking changes in future MediaWiki releases?

Change 357104 abandoned by Bartosz Dziewoński:
Update for deprecation of OOjs UI openWindow/closeWindow promise

Reason:
This extension appears to be unmaintained and this is cluttering my dashboard. Feel free to restore and merge if desired.

https://gerrit.wikimedia.org/r/357104

CommentStreams is not unmaintained. It uses the "master" compatibility policy. If I merge this change into master, the extension will no longer work with current MediaWiki releases, correct? What is the recommended approach for preparing for breaking changes in future MediaWiki releases?

It will work with master, and it will work with the upcoming MediaWiki 1.30; I'd have to look up which OOjs UI version exactly was included in MW 1.29 and older to tell you if those will work (I can amend the patch to make it compatible with everything is desired). OOjs UI is updated in MediaWiki immediately after we release new versions, which is usually every week or two: https://gerrit.wikimedia.org/r/#/q/status:merged+project:mediawiki/core+branch:master+topic:upstream-oojs-ui. As long as you plan to merge that patch some time in the foreseeable future, I'm happy to keep it open.

Yes, I absolutely plan to merge the patch when I'm sure it will work with the currently released MediaWiki version. I had been planning to wait until 1.30 was released. I thought I had tested with 1.29, but it may have been 1.28. It did not work in the version I tested with.

Change 357104 restored by Bartosz Dziewoński:
Update for deprecation of OOjs UI openWindow/closeWindow promise

https://gerrit.wikimedia.org/r/357104

I just tested the patch with 1.29, and it does not work, so it will have to wait until 1.30 is released to be merged.