Skip to content

Commit a6f8b3d

Browse files
committed
UserHighlighterSimple: handle invalid URLs
1 parent 23ae94d commit a6f8b3d

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

UserHighlighterSimple/modules/UserHighlighterSimple.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,12 @@ export class UserHighlighterSimple {
133133

134134
url = this.addDomainIfMissing( url );
135135

136-
const urlHelper = new URL( url );
136+
let urlHelper;
137+
try {
138+
urlHelper = new URL( url );
139+
} catch {
140+
return false;
141+
}
137142

138143
// Skip links that aren't to user pages
139144
const isUserPageLink = url.includes( '/w/index.php?title=User' ) || url.includes( '/wiki/User' );

UserHighlighterSimple/tests/UserHighlighterSimple.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ describe( 'linksToAUser( url )', () => {
7272
test( 'DiscussionTools section link', () => {
7373
expect( userHighlighterSimple.linksToAUser( 'https://en.wikipedia.org/wiki/User_talk:Novem_Linguae#c-Scope_creep-20250218175200-Novem_Linguae-20250218170600' ) ).toBe( false );
7474
} );
75+
76+
test( 'invalid domain name (weird punctuation)', () => {
77+
expect( userHighlighterSimple.linksToAUser( 'https://a:a' ) ).toBe( false );
78+
expect( userHighlighterSimple.linksToAUser( 'http://Wikipedia:Requests%20for%20arbitration/Eastern%20Europe' ) ).toBe( false );
79+
} );
7580
} );
7681

7782
describe( 'getTitle( url )', () => {

0 commit comments

Comments
 (0)