Bartosz Dziewoński has uploaded a new change for review.

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

Change subject: mw.widgets.CategorySelector: Avoid JS exceptions for invalid 
user input
......................................................................

mw.widgets.CategorySelector: Avoid JS exceptions for invalid user input

Previously, if the user entered a category name that was not a valid title,
we'd pass `null` to CategoryCapsuleItemWidget constructor, which would then
fail with 'TypeError: Cannot read property 'getMainText' of null'.

Depends on Ifb016e1d2c73ae701cbce4505583e48769fd4ed6 in OOjs UI.

Bug: T136238
Change-Id: I7446d85bce37a4bd9398e2d258aa2f6dc0e593a8
---
M resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
1 file changed, 10 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/88/297288/1

diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js 
b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
index 45f52b7..ffb7736 100644
--- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
+++ b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
@@ -186,9 +186,13 @@
         * @inheritdoc
         */
        CSP.createItemWidget = function ( data ) {
+               var title = mw.Title.makeTitle( NS_CATEGORY, data );
+               if ( !title ) {
+                       return null;
+               }
                return new mw.widgets.CategoryCapsuleItemWidget( {
                        apiUrl: this.api.apiUrl || undefined,
-                       title: mw.Title.makeTitle( NS_CATEGORY, data )
+                       title: title
                } );
        };
 
@@ -198,8 +202,11 @@
        CSP.getItemFromData = function ( data ) {
                // This is a bit of a hack... We have to canonicalize the data 
in the same way that
                // #createItemWidget and CategoryCapsuleItemWidget will do, 
otherwise we won't find duplicates.
-               data = mw.Title.makeTitle( NS_CATEGORY, data ).getMainText();
-               return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( 
this, data );
+               var title = mw.Title.makeTitle( NS_CATEGORY, data );
+               if ( !title ) {
+                       return null;
+               }
+               return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( 
this, title.getMainText() );
        };
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/297288
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7446d85bce37a4bd9398e2d258aa2f6dc0e593a8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <matma....@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to