r67275 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r67274‎ | r67275 | r67276 >
Date:09:09, 3 June 2010
Author:dale
Status:deferred
Tags:
Comment:
* more swarmTransport support
Modified paths:
  • /branches/MwEmbedStandAlone/jsScriptLoader.php (modified) (history)
  • /branches/MwEmbedStandAlone/modules/EmbedPlayer/loader.js (modified) (history)
  • /branches/MwEmbedStandAlone/modules/EmbedPlayer/mw.EmbedPlayer.js (modified) (history)
  • /branches/MwEmbedStandAlone/modules/EmbedPlayer/skins/ctrlBuilder.js (modified) (history)
  • /branches/MwEmbedStandAlone/modules/EmbedPlayer/skins/kskin/kskinConfig.js (modified) (history)
  • /branches/MwEmbedStandAlone/modules/SwarmTransport/loader.js (modified) (history)
  • /branches/MwEmbedStandAlone/modules/SwarmTransport/mw.SwarmTransport.js (modified) (history)
  • /branches/MwEmbedStandAlone/remotes/mediaWiki.js (modified) (history)
  • /branches/MwEmbedStandAlone/tests/Player_SwarmTransport.html (added) (history)

Diff [purge]

Index: branches/MwEmbedStandAlone/tests/Player_SwarmTransport.html
@@ -0,0 +1,53 @@
 2+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 3+"http://www.w3.org/TR/html4/loose.dtd">
 4+<html>
 5+<head>
 6+ <title>sample mv embed</title>
 7+ <!-- <script type="text/javascript" src="../mwEmbed.js?debug=true"></script> -->
 8+ <!-- <script type="text/javascript" src="../jsScriptLoader.php?class=window.jQuery,mwEmbed&debug=true"></script> -->
 9+
 10+ <script type="text/javascript" src="../mwEmbed.js?debug=true"></script>
 11+
 12+ <script type="text/javascript">
 13+
 14+ // Set configuration:
 15+ mw.setConfig( 'enableSwarmTransport', true );
 16+
 17+ mw.setConfig( 'recommendSwarmTransport', true );
 18+
 19+ </script>
 20+</head>
 21+<body>
 22+<h3> Swarm Transport:</h3>
 23+
 24+Install the swarmTransport add-on and this video will be served via p2p next <a href="http://wikipedia.p2p-next.org/">swarm transport</a> <br />
 25+ <table border="1" cellpadding="6" width="950">
 26+
 27+ <tr>
 28+ <td id="apiExample" valign="top" width="410">
 29+ <video
 30+ style="width:400px;height:300px"
 31+ apiTitleKey="Welcome_to_globallives_2.0.ogv"
 32+ apiProvider="commons"
 33+ class="kskin">
 34+ </video>
 35+ <td valign="top">
 36+ Commons Video API based timedText discovery<br>
 37+
 38+ <textarea id="apiExampleTextArea" style="width:600px;height:180px">
 39+<video
 40+ style="width:400px;height:300px"
 41+ apiTitleKey="Welcome_to_globallives_2.0.ogv"
 42+ apiProvider="commons"
 43+ class="kskin">
 44+</video>
 45+
 46+ </textarea>
 47+ </td>
 48+ </tr>
 49+
 50+ </table>
 51+
 52+</body>
 53+</html>
 54+
Index: branches/MwEmbedStandAlone/modules/SwarmTransport/loader.js
@@ -10,7 +10,7 @@
1111 mw.addClassFilePaths( {
1212 "mw.SwarmTransport" : "mw.SwarmTransport.js"
1313 });
14 -
 14+
1515 mw.setDefaultConfig({
1616 /**
1717 * If SwarmTransport should be enabled as a video transport mechanism
@@ -24,7 +24,7 @@
2525 });
2626
2727 // Add the mw.SwarmTransport to the embedPlayer loader:
28 - $j( mw ).bind( 'LoaderEmbedPlayerUpdateRequest', function( event, playerElement, classRequest ) {
 28+ $j( mw ).bind( 'LoaderEmbedPlayerUpdateRequest', function( event, playerElement, classRequest ) {
2929 // If the swarm transport is enabled add mw.SwarmTransport to the request.
3030 if( mw.getConfig( 'enableSwarmTransport' ) ) {
3131 if( $j.inArray( 'mw.SwarmTransport', classRequest ) == -1 ) {
Index: branches/MwEmbedStandAlone/modules/SwarmTransport/mw.SwarmTransport.js
@@ -8,7 +8,8 @@
99 * Define mw.SwarmTransport object:
1010 */
1111 mw.SwarmTransport = {
12 - addPlayerHooks: function(){
 12+
 13+ addPlayerHooks: function(){
1314 var _this = this;
1415 // Bind some hooks to every player:
1516 $j( mw ).bind( 'newEmbedPlayerEvent', function( event, swapedPlayerId ) {
@@ -16,11 +17,10 @@
1718 var embedPlayer = $j( '#' + swapedPlayerId ).get(0);
1819
1920 // Setup the "embedCode" binding to swap in an updated url
20 - $j( embedPlayer ).bind( 'checkPlayerSourcesEvent', function( event, callback ) {
21 -
 21+ $j( embedPlayer ).bind( 'checkPlayerSourcesEvent', function( event, callback ) {
2222 // Confirm SwarmTransport add-on is available ( defines swarmTransport var )
2323 if( typeof window['swarmTransport'] != 'undefined' ){
24 -
 24+ _this.addSwarmPlayer( embedPlayer );
2525 mw.log(" SwarmTransport :: checkPlayerSourcesEvent ");
2626 _this.addSwarmSource( embedPlayer, callback );
2727
@@ -30,7 +30,7 @@
3131 }
3232 } );
3333
34 - // Check if we have a "recommend" binding and provide an xpi link
 34+ // Check if we have a "recommend" binding and provide an xpi install link
3535 mw.log('bind::addControlBindingsEvent');
3636 $j( embedPlayer ).bind( 'addControlBindingsEvent', function(){
3737 if( mw.getConfig( 'recommendSwarmTransport' ) &&
@@ -43,28 +43,23 @@
4444 }
4545 });
4646
47 - } );
 47+ } );
 48+
 49+ },
4850
 51+ addSwarmPlayer: function( embedPlayer ){
 52+ // Add the swarmTransport playerType
 53+ mw.EmbedTypes.players.defaultPlayers['video/swarmTransport'] = ['native'];
4954
 55+ // Build the swarm Transport Player
 56+ var swarmTransportPlayer = new mediaPlayer( 'swarmTransportPlayer', ['video/swarmTransport' ], 'native' );
5057
51 - $j( mw ).bind( 'embedPlayerUpdateMediaPlayersEvent', function( event, mediaPlayers){
52 - // Detect support for SwarmTransport
53 - if( typeof window['swarmTransport'] != 'undefined' ){
54 - // Add the swarmTransport playerType
55 - mediaPlayers.defaultPlayers['video/swarmTransport'] = ['native'];
56 -
57 - // For now swarm transport only supports ogg ( probably add webm in the future )
58 - // Native html5 player
59 - var swarmTransportPlayer = new mediaPlayer( 'swarmTransportPlayer', ['video/swarmTransport' ], 'native' );
60 -
61 - // Add the swarmTransport "player"
62 - mediaPlayers.addPlayer( swarmTransportPlayer );
63 - }
64 - });
65 -
 58+ // Add the swarmTransport "player"
 59+ mw.EmbedTypes.players.addPlayer( swarmTransportPlayer );
6660 },
6761
6862 addSwarmSource: function( embedPlayer, callback ) {
 63+ var _this = this;
6964
7065 // Setup function to run in context based on callback result
7166 var finishAddSwarmSource = function(){
@@ -74,7 +69,7 @@
7570 var absoluteSource = mw.absoluteUrl( source.getSrc() );
7671 var swarmSrc = httpseed2tstream( absoluteSource );
7772
78 - mw.log('addSwarmSource for: ' + source.getSrc() + "\nGot:" + swarmSrc );
 73+ mw.log('addSwarmSource for: ' + source.getSrc() + "\n\nGot:" + swarmSrc );
7974
8075 embedPlayer.mediaElement.tryAddSource(
8176 $j('<source />')
@@ -92,9 +87,11 @@
9388 // p2p next does not have a lookup service rather a static file that defines a function
9489 // by the name of httpseed2tstream ( check if httpseed2tstream is defined )
9590 if ( typeof httpseed2tstream == 'undefined' ) {
 91+ // should do a check to avoid loading tlookup multiple times
9692 mw.load('http://wikipedia.p2p-next.org/tlookup.js', function(){
97 - finishAddSwarmSource();
98 - } );
 93+ finishAddSwarmSource();
 94+ });
 95+
9996 } else {
10097 finishAddSwarmSource();
10198 }
Index: branches/MwEmbedStandAlone/modules/EmbedPlayer/loader.js
@@ -197,9 +197,8 @@
198198 ]
199199
200200 ];
201 -
202 - // Get the class of all embed video elements
203 - // to add the skin to the load request
 201+
 202+ // Pass every tag being rewritten through the update request function
204203 $j( mw.getConfig( 'rewritePlayerTags' ) ).each( function() {
205204 var playerElement = this;
206205 mw.embedPlayerUpdateLibraryRequest( playerElement, dependencyRequest[ 0 ] )
@@ -226,10 +225,8 @@
227226 // Setup userConfig
228227 mw.setupUserConfig( function() {
229228 // Remove no video html elements:
230 - $j( '.videonojs' ).remove();
 229+ $j( '.videonojs' ).remove();
231230
232 -
233 -
234231 // Detect supported players:
235232 mw.EmbedTypes.init();
236233
@@ -284,6 +281,7 @@
285282
286283 $j( mw ).trigger( 'LoaderEmbedPlayerUpdateRequest',
287284 [ playerElement, dependencyRequest ] );
 285+
288286 }
289287
290288 } )( window.mw );
Index: branches/MwEmbedStandAlone/modules/EmbedPlayer/mw.EmbedPlayer.js
@@ -344,7 +344,7 @@
345345 * _this.checkForTimedText()
346346 * _this.setupSourcePlayer()
347347 * _this.inheritEmbedPlayer()
348 - * _this.selected_player.load()
 348+ * _this.selectedPlayer.load()
349349 * _this.showPlayer()
350350 *
351351 * @param {Element} playerElement DOM element to be swapped
@@ -1324,6 +1324,10 @@
13251325 if( this[ attr ] == "false" ) this[attr] = false;
13261326 if( this[ attr ] == "true" ) this[attr] = true;
13271327 }
 1328+
 1329+ if( this.apiTitleKey ){
 1330+ this.apiTitleKey = unescape( this.apiTitleKey );
 1331+ }
13281332
13291333 // Hide "controls" if using native player controls:
13301334 if( this.useNativeControls() ){
@@ -1636,16 +1640,16 @@
16371641 mw.log( 'no sources, type:' + this.type + ' check for html' );
16381642 // do load player if just displaying innerHTML:
16391643 if ( this.pc.type == 'text/html' ) {
1640 - this.selected_player = mw.EmbedTypes.players.defaultPlayer( 'text/html' );
1641 - mw.log( 'set selected player:' + this.selected_player.mimeType );
 1644+ this.selectedPlayer = mw.EmbedTypes.players.defaultPlayer( 'text/html' );
 1645+ mw.log( 'set selected player:' + this.selectedPlayer.mimeType );
16421646 }
16431647 }
16441648 } else {
1645 - this.selected_player = mw.EmbedTypes.players.defaultPlayer( this.mediaElement.selectedSource.mimeType );
 1649+ this.selectedPlayer = mw.EmbedTypes.players.defaultPlayer( this.mediaElement.selectedSource.mimeType );
16461650 }
16471651
1648 - if ( this.selected_player ) {
1649 - mw.log( "Playback system: " + this.selected_player.library );
 1652+ if ( this.selectedPlayer ) {
 1653+ mw.log( "Playback system: " + this.selectedPlayer.library );
16501654
16511655 // Inherit the playback system of the selected player:
16521656 this.inheritEmbedPlayer();
@@ -1688,14 +1692,14 @@
16891693 }
16901694
16911695 // Set up the new embedObj
1692 - mw.log( 'f: inheritEmbedPlayer: embedding with ' + this.selected_player.library );
 1696+ mw.log( 'f: inheritEmbedPlayer: embedding with ' + this.selectedPlayer.library );
16931697 var _this = this;
16941698
16951699 // Load the selected player
1696 - this.selected_player.load( function() {
1697 - mw.log( _this.selected_player.library + " player loaded" );
 1700+ this.selectedPlayer.load( function() {
 1701+ mw.log( _this.selectedPlayer.library + " player loaded" );
16981702 // Get embed library player Interface
1699 - var playerInterface = window[ _this.selected_player.library + 'Embed' ];
 1703+ var playerInterface = window[ _this.selectedPlayer.library + 'Embed' ];
17001704
17011705 for ( var method in playerInterface ) {
17021706 if ( _this[method] && !_this['parent_' + method] ) {
@@ -1726,8 +1730,8 @@
17271731 */
17281732 selectPlayer: function( player ) {
17291733 var _this = this;
1730 - if ( this.selected_player.id != player.id ) {
1731 - this.selected_player = player;
 1734+ if ( this.selectedPlayer.id != player.id ) {
 1735+ this.selectedPlayer = player;
17321736 this.inheritEmbedPlayer( function() {
17331737 // Update the controls for the new selected player
17341738 _this.refreshControls();
@@ -1831,7 +1835,7 @@
18321836 * issues a loading request
18331837 */
18341838 doEmbedPlayer: function() {
1835 - mw.log( 'f:doEmbedPlayer::' + this.selected_player.id );
 1839+ mw.log( 'f:doEmbedPlayer::' + this.selectedPlayer.id );
18361840 mw.log( 'thum disp:' + this.thumbnail_disp );
18371841 var _this = this;
18381842
@@ -2528,8 +2532,8 @@
25292533
25302534 // Check if thumbnail is being displayed and embed html
25312535 if ( this.thumbnail_disp ) {
2532 - if ( !this.selected_player ) {
2533 - mw.log( 'no selected_player' );
 2536+ if ( !this.selectedPlayer ) {
 2537+ mw.log( 'no selectedPlayer' );
25342538 this.showPluginMissingHTML();
25352539 } else {
25362540 this.thumbnail_disp = false;
@@ -2802,7 +2806,7 @@
28032807 mw.getJSON( {
28042808 'action' : 'playtracking',
28052809 'filename' : this.apiTitleKey,
2806 - 'client' : this.selected_player.library + ' && ' + navigator.userAgent
 2810+ 'client' : this.selectedPlayer.library + ' && ' + navigator.userAgent
28072811 }, function( data ) {
28082812 mw.log( 'done logging play request' );
28092813 } );
@@ -3310,10 +3314,10 @@
33113315 * @param {String} mimeType Mime type for the associated player stream
33123316 */
33133317 setPlayerPreference : function( playerId, mimeType ) {
3314 - var selected_player = null;
 3318+ var selectedPlayer = null;
33153319 for ( var i = 0; i < this.players.length; i++ ) {
33163320 if ( this.players[i].id == playerId ) {
3317 - selected_player = this.players[i];
 3321+ selectedPlayer = this.players[i];
33183322 mw.log( 'choosing ' + playerId + ' for ' + mimeType );
33193323 this.preference[ mimeType ] = playerId;
33203324 mw.setUserConfig( 'playerPref', this.preference );
@@ -3321,14 +3325,14 @@
33223326 }
33233327 }
33243328 // Update All the player instances:
3325 - if ( selected_player ) {
 3329+ if ( selectedPlayer ) {
33263330 var playerList = mw.playerManager.getPlayerList();
33273331 for ( var i = 0; i < playerList.length; i++ ) {
33283332 var embed = $j( '#' + playerList[i] ).get( 0 );
33293333 if ( embed.mediaElement.selectedSource && ( embed.mediaElement.selectedSource.mimeType == mimeType ) )
33303334 {
3331 - embed.selectPlayer( selected_player );
3332 - mw.log( 'using ' + embed.selected_player.getName() + ' for ' + embed.mediaElement.selectedSource.getTitle() );
 3335+ embed.selectPlayer( selectedPlayer );
 3336+ mw.log( 'using ' + embed.selectedPlayer.getName() + ' for ' + embed.mediaElement.selectedSource.getTitle() );
33333337 }
33343338 }
33353339 }
@@ -3344,7 +3348,6 @@
33453349 if( typeof preferenceConfig == 'object' ) {
33463350 this.preference = preferenceConfig;
33473351 }
3348 - //debugger;
33493352 }
33503353 };
33513354
@@ -3390,7 +3393,7 @@
33913394 */
33923395 detect: function() {
33933396 mw.log( "embedPlayer: running detect" );
3394 - this.players = new mediaPlayers();
 3397+ this.players = new mediaPlayers();
33953398 // every browser supports html rendering:
33963399 this.players.addPlayer( htmlPlayer );
33973400 // In Mozilla, navigator.javaEnabled() only tells us about preferences, we need to
@@ -3514,6 +3517,7 @@
35153518 }
35163519
35173520 // Allow extensions to detect and add their own "players"
 3521+ mw.log("trigger::embedPlayerUpdateMediaPlayersEvent");
35183522 $j( mw ).trigger( 'embedPlayerUpdateMediaPlayersEvent' , this.players );
35193523
35203524 },
Index: branches/MwEmbedStandAlone/modules/EmbedPlayer/skins/kskin/kskinConfig.js
@@ -33,7 +33,7 @@
3434 },
3535 'options': {
3636 'w':50,
37 - 'o':function() {
 37+ 'o':function( ctrlObj ) {
3838 return $j( '<div />' )
3939 .attr( 'title', gM( 'mwe-embedplayer-player_options' ) )
4040 .addClass( "ui-state-default ui-corner-bl rButton k-options" )
@@ -194,7 +194,8 @@
195195 * Close the menu overlay
196196 */
197197 closeMenuOverlay: function( ) {
198 - mw.log(" close menu overlay" );
 198+ mw.log(" close menu overlay" );
 199+
199200 var $optionsMenu = this.$playerTarget.find( '.k-options' );
200201 var $kmenu = this.$playerTarget.find( '.k-menu' );
201202 $kmenu.fadeOut( "fast", function() {
@@ -202,6 +203,9 @@
203204 .text ( gM( 'mwe-embedplayer-menu_btn' ) );
204205 } );
205206 this.$playerTarget.find( '.play-btn-large' ).fadeIn( 'fast' );
 207+
 208+ // Set close overlay menu flag:
 209+ this.displayOptionsMenuFlag = false;
206210 },
207211
208212 /**
@@ -210,11 +214,15 @@
211215 showMenuOverlay: function( $ktxt ) {
212216 var $optionsMenu = this.$playerTarget.find( '.k-options' );
213217 var $kmenu = this.$playerTarget.find( '.k-menu' );
 218+
214219 $kmenu.fadeIn( "fast", function() {
215220 $optionsMenu.find( 'span' )
216221 .text ( gM( 'mwe-embedplayer-close_btn' ) );
217222 } );
218223 this.$playerTarget.find( '.play-btn-large' ).fadeOut( 'fast' );
 224+
 225+ // Set the Options Menu display flag to true:
 226+ this.displayOptionsMenuFlag = true;
219227 },
220228
221229 /**
Index: branches/MwEmbedStandAlone/modules/EmbedPlayer/skins/ctrlBuilder.js
@@ -52,6 +52,9 @@
5353 // Flag to store if a warning binding has been added
5454 addWarningFlag: false,
5555
 56+ // Flag to store state of overlay on player
 57+ displayOptionsMenuFlag: false,
 58+
5659 /**
5760 * Initialization Object for the control builder
5861 *
@@ -569,8 +572,18 @@
570573 * Hide the control bar.
571574 */
572575 hideControlBar : function(){
573 - var animateDuration = 'slow';
 576+ var animateDuration = 'slow';
 577+ var _this = this;
574578
 579+ // Do not hide control bar if overlay menu item is being displayed:
 580+ if( _this.displayOptionsMenuFlag ){
 581+ setTimeout( function(){
 582+ _this.hideControlBar();
 583+ }, 200 );
 584+ return ;
 585+ }
 586+
 587+
575588 // Hide the control bar
576589 this.embedPlayer.$interface.find( '.control-bar')
577590 .fadeOut( animateDuration );
@@ -581,11 +594,7 @@
582595 .animate( {
583596 'bottom' : 10
584597 }, 'slow' );
585 -
586 - // Hide the warning if present
587 - if( this.addWarningFlag ){
588 - $j( '#warningOverlay_' + this.embedPlayer.id ).fadeOut( 'slow' );
589 - }
 598+
590599 },
591600
592601 /**
@@ -594,7 +603,7 @@
595604 showControlBar : function(){
596605 var animateDuration = 'slow';
597606 $j( this.embedPlayer.getPlayerElement() ).css('z-index', '1')
598 -
 607+ mw.log( 'showControlBar' );
599608 // Move up text track if present
600609 this.embedPlayer.$interface.find( '.track' )
601610 .animate(
@@ -921,8 +930,11 @@
922931 var embedPlayer = this.embedPlayer;
923932 var $overlay = embedPlayer.$interface.find( '.overlay-win,.ui-widget-overlay,.ui-widget-shadow' );
924933
 934+ this.displayOptionsMenuFlag = false;
 935+ mw.log(' closeMenuOverlay: ' + this.displayOptionsMenuFlag);
 936+
925937 $overlay.fadeOut( "slow", function() {
926 - $overlay.remove();
 938+ $overlay.remove();
927939 } );
928940 // Show the big play button:
929941 embedPlayer.$interface.find( '.play-btn-large' ).fadeIn( 'slow' );
@@ -938,6 +950,10 @@
939951 displayOverlay: function( overlayContent ) {
940952 var _this = this;
941953 var embedPlayer = this.embedPlayer;
 954+ mw.log( 'displayOverlay::' );
 955+ // set the overlay display flag to true:
 956+ this.displayOptionsMenuFlag = true;
 957+ mw.log(" set displayOptionsMenuFlag:: " + this.displayOptionsMenuFlag);
942958
943959 if ( !this.supportedComponets[ 'overlays' ] ) {
944960 embedPlayer.stop();
@@ -1104,9 +1120,10 @@
11051121 .append(
11061122 $j( '<h2 />' )
11071123 .text( gM( 'mwe-embedplayer-choose_player' ) )
1108 - );
 1124+ );
11091125
11101126 $j.each( embedPlayer.mediaElement.getPlayableSources(), function( sourceId, source ) {
 1127+
11111128 var playable = mw.EmbedTypes.players.defaultPlayer( source.getMIMEType() );
11121129 var is_selected = ( source == embedPlayer.mediaElement.selectedSource );
11131130
@@ -1118,12 +1135,13 @@
11191136 if ( playable ) {
11201137 $playerList = $j('<ul />');
11211138 // output the player select code:
 1139+
11221140 var supportingPlayers = mw.EmbedTypes.players.getMIMETypePlayers( source.getMIMEType() );
11231141
11241142 for ( var i = 0; i < supportingPlayers.length ; i++ ) {
11251143
11261144 // Add link to select the player if not already selected )
1127 - if( embedPlayer.selected_player.id == supportingPlayers[i].id && is_selected ) {
 1145+ if( embedPlayer.selectedPlayer.id == supportingPlayers[i].id && is_selected ) {
11281146 // Active player ( no link )
11291147 $playerLine = $j( '<span />' )
11301148 .text(
@@ -1434,7 +1452,7 @@
14351453 .addClass( 'ui-icon ui-icon-wrench' )
14361454 )
14371455 .buttonHover()
1438 - // Options binding:
 1456+ // Options binding:
14391457 .menu( {
14401458 'content' : ctrlObj.getOptionsMenu(),
14411459 'zindex' : mw.getConfig( 'fullScreenIndex' ) + 1,
Index: branches/MwEmbedStandAlone/jsScriptLoader.php
@@ -30,7 +30,7 @@
3131 class jsScriptLoader {
3232
3333 // The list of named javascript & css files
34 - var $namedFileList = array();
 34+ private $namedFileList = array();
3535
3636 // The language code for the script-loader request
3737 var $langCode = '';
@@ -144,6 +144,15 @@
145145 // Output the current language class js
146146 $this->output .= jsClassLoader::getLanguageJs( $this->langCode );
147147
 148+ // Add the required core mwEmbed style sheets Commted out
 149+ // because when creating stand alone packages js package with css
 150+ // the paths get messed up.
 151+ /*
 152+ if( !isset( $this->namedFileList[ 'mw.style.mwCommon' ] ) ) {
 153+ $this->output .= $this->getScriptText( 'mw.style.mwCommon' );
 154+ }
 155+ */
 156+
148157 // Output "special" IE comment tag to support "special" mwEmbed tags.
149158 $this->notMinifiedTopOutput .='/*@cc_on@if(@_jscript_version<9){\'video audio source itext playlist\'.replace(/\w+/g,function(n){document.createElement(n)})}@end@*/'."\n";
150159 }
@@ -797,7 +806,7 @@
798807 // Do language swap by index:
799808 if ( $wgEnableScriptLocalization ){
800809 // Get the mw.addMessage javascript from scriptText and moduleName
801 - $addMessageJs = $this->getAddMessagesFromScriptText( & $scriptText , $moduleName);
 810+ $addMessageJs = $this->getAddMessagesFromScriptText( $scriptText , $moduleName);
802811 //@@NOTE getAddMessagesFromClass could identify which mode we are in and we would not need to
803812 // try each of these search patterns in the same order as before.
804813
Index: branches/MwEmbedStandAlone/remotes/mediaWiki.js
@@ -5,7 +5,7 @@
66 var urlparts = getRemoteEmbedPath();
77 var mwEmbedHostPath = urlparts[0];
88 var mwRemoteVersion = 'r127';
9 -var mwUseScriptLoader = false;
 9+var mwUseScriptLoader = true;
1010
1111 // Log the mwRemote version makes it easy to debug cache issues
1212 if( window.console ){
@@ -171,17 +171,28 @@
172172 */
173173 function mwLoadPlayer( callback ){
174174 // the jsPlayerRequest includes both javascript and style sheets for the embedPlayer
175 - var jsPlayerRequest = [
 175+ var jsPlayerRequest = [
 176+
176177 'mw.EmbedPlayer',
 178+ 'mw.style.EmbedPlayer',
177179 '$j.ui',
178180 'ctrlBuilder',
 181+ '$j.fn.hoverIntent',
179182 '$j.cookie',
 183+ 'JSON',
180184 '$j.ui.slider',
181185 'kskinConfig',
182186 'mw.style.kskin',
183187 '$j.fn.menu',
184188 'mw.style.jquerymenu',
185 - 'mw.TimedText'
 189+
 190+ // Timed Text module
 191+ 'mw.TimedText',
 192+ 'mw.style.TimedText',
 193+
 194+ // mwSwarmTransport module
 195+ 'mw.SwarmTransport'
 196+
186197 ];
187198 // Quick sniff use java if IE and native if firefox
188199 // ( other browsers will run detect and get on-demand )

Status & tagging log