diff --git a/VisualEditor.hooks.php b/VisualEditor.hooks.php index bf5bd7ac90..87985d3b37 100644 --- a/VisualEditor.hooks.php +++ b/VisualEditor.hooks.php @@ -191,10 +191,16 @@ class VisualEditorHooks { public static function onDoEditSectionLink( $skin, $title, $section, $tooltip, &$result, $lang ) { // Only do this if the user has VE enabled // (and we're not in parserTests) + // (and we're not on a foreign file description page) if ( isset( $GLOBALS[ 'wgVisualEditorInParserTests' ] ) || !$skin->getUser()->getOption( 'visualeditor-enable' ) || - $skin->getUser()->getOption( 'visualeditor-betatempdisable' ) + $skin->getUser()->getOption( 'visualeditor-betatempdisable' ) || + ( + $title->inNamespace( NS_FILE ) && + WikiPage::factory( $title ) instanceof WikiFilePage && + !WikiPage::factory( $title )->isLocal() + ) ) { return; } diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.init.js b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.init.js index f40e9269d1..9091a3419b 100644 --- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.init.js +++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.init.js @@ -282,17 +282,21 @@ $divider .addClass( 'mw-editsection-divider' ) .text( dividerText ); - $editLink - .attr( 'href', function ( i, val ) { - return new mw.Uri( veEditUri ).extend( { - 'vesection': new mw.Uri( val ).query.section - } ); - } ) - .addClass( 'mw-editsection-visualeditor' ); - if ( conf.tabPosition === 'before' ) { - $editSourceLink.before( $editLink, $divider ); - } else { - $editSourceLink.after( $divider, $editLink ); + // Don't mess with section edit links on foreign file description pages + // (bug 54259) + if ( !$( '#ca-view-foreign' ).length ) { + $editLink + .attr( 'href', function ( i, val ) { + return new mw.Uri( veEditUri ).extend( { + 'vesection': new mw.Uri( val ).query.section + } ); + } ) + .addClass( 'mw-editsection-visualeditor' ); + if ( conf.tabPosition === 'before' ) { + $editSourceLink.before( $editLink, $divider ); + } else { + $editSourceLink.after( $divider, $editLink ); + } } } ); }