From: MatmaRex Date: Sat, 11 May 2013 19:05:43 +0000 (+0200) Subject: Remove the $wgHandheldForIPhone config variable entirely X-Git-Tag: 1.31.0-rc.0~19495^2 X-Git-Url: https://git.cyclocoop.org/%242?a=commitdiff_plain;h=1965df8df3844ea62e409a34b1e971f66ac9a74a;p=lhc%2Fweb%2Fwiklou.git Remove the $wgHandheldForIPhone config variable entirely It only really made sense in pair with $wgHandheldStyle, and that has been removed in Ia8d79b4a. Remove irrelevant tests, adjust still relevant ones. Change-Id: I7c24128f7b148d0244538ad95bb60bf09ec4b5cb --- diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22 index 42462dd4d0..c46d3270fc 100644 --- a/RELEASE-NOTES-1.22 +++ b/RELEASE-NOTES-1.22 @@ -24,6 +24,7 @@ production. * $wgXhtmlDefaultNamespace is no longer used by core. Setting it will no longer change the xmlns used by MediaWiki. Reliance on this variable by extensions is deprecated. * $wgHandheldStyle was removed. +* $wgHandheldForIPhone was removed. * $wgJsMimeType is no longer used by core. Most usage has been removed since HTML output is now exclusively HTML5. * $wgDBOracleDRCP added. True enables persistent connection with DRCP on Oracle. diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index b86de8c097..c93142a9a1 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -2676,18 +2676,6 @@ $wgSkipSkin = ''; /** Array for more like $wgSkipSkin. */ $wgSkipSkins = array(); -/** - * If set, 'screen' and 'handheld' media specifiers for stylesheets are - * transformed such that they apply to the iPhone/iPod Touch Mobile Safari, - * which doesn't recognize 'handheld' but does support media queries on its - * screen size. - * - * Consider only using this if you have a *really good* handheld stylesheet, - * as iPhone users won't have any way to disable it and use the "grown-up" - * styles instead. - */ -$wgHandheldForIPhone = false; - /** * Allow user Javascript page? * This enables a lot of neat customizations, but may diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 6bb29d2eec..0849afd0d9 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -3566,7 +3566,7 @@ $templates * this stylesheet */ public static function transformCssMedia( $media ) { - global $wgRequest, $wgHandheldForIPhone; + global $wgRequest; // http://www.w3.org/TR/css3-mediaqueries/#syntax $screenMediaQueryRegex = '/^(?:only\s+)?screen\b/i'; @@ -3598,18 +3598,6 @@ $templates } } - // Expand longer media queries as iPhone doesn't grok 'handheld' - if ( $wgHandheldForIPhone ) { - $mediaAliases = array( - 'screen' => 'screen and (min-device-width: 481px)', - 'handheld' => 'handheld, only screen and (max-device-width: 480px)', - ); - - if ( isset( $mediaAliases[$media] ) ) { - $media = $mediaAliases[$media]; - } - } - return $media; } diff --git a/tests/phpunit/includes/OutputPageTest.php b/tests/phpunit/includes/OutputPageTest.php index 4084fb1799..56bb0fcef2 100644 --- a/tests/phpunit/includes/OutputPageTest.php +++ b/tests/phpunit/includes/OutputPageTest.php @@ -19,7 +19,6 @@ class OutputPageTest extends MediaWikiTestCase { * * options['printableQuery'] - value of query string for printable, or omitted for none * options['handheldQuery'] - value of query string for handheld, or omitted for none - * options['handheldForIPhone'] - value of the $wgHandheldForIPhone global * options['media'] - passed into the method under the same name * options['expectedReturn'] - expected return value * options['message'] - PHPUnit message for assertion @@ -39,58 +38,38 @@ class OutputPageTest extends MediaWikiTestCase { $fauxRequest = new FauxRequest( $queryData, false ); $this->setMWGlobals( array( 'wgRequest' => $fauxRequest, - 'wgHandheldForIPhone' => $args['handheldForIPhone'] ) ); $actualReturn = OutputPage::transformCssMedia( $args['media'] ); $this->assertSame( $args['expectedReturn'], $actualReturn, $args['message'] ); } - /** - * Tests a case of transformCssMedia with both values of wgHandheldForIPhone. - * Used to verify that behavior is orthogonal to that option. - * - * If the value of wgHandheldForIPhone should matter, use assertTransformCssMediaCase. - * - * @param array $args key-value array of arguments as shown in assertTransformCssMediaCase. - * Will be mutated. - */ - protected function assertTransformCssMediaCaseWithBothHandheldForIPhone( $args ) { - $message = $args['message']; - foreach ( array( true, false ) as $handheldForIPhone ) { - $args['handheldForIPhone'] = $handheldForIPhone; - $stringHandheldForIPhone = var_export( $handheldForIPhone, true ); - $args['message'] = "$message. \$wgHandheldForIPhone was $stringHandheldForIPhone"; - $this->assertTransformCssMediaCase( $args ); - } - } - /** * Tests print requests */ public function testPrintRequests() { - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'printableQuery' => '1', 'media' => 'screen', 'expectedReturn' => null, 'message' => 'On printable request, screen returns null' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'printableQuery' => '1', 'media' => self::SCREEN_MEDIA_QUERY, 'expectedReturn' => null, 'message' => 'On printable request, screen media query returns null' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'printableQuery' => '1', 'media' => self::SCREEN_ONLY_MEDIA_QUERY, 'expectedReturn' => null, 'message' => 'On printable request, screen media query with only returns null' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'printableQuery' => '1', 'media' => 'print', 'expectedReturn' => '', @@ -103,25 +82,30 @@ class OutputPageTest extends MediaWikiTestCase { */ public function testScreenRequests() { $this->assertTransformCssMediaCase( array( - 'handheldForIPhone' => false, 'media' => 'screen', 'expectedReturn' => 'screen', - 'message' => 'On screen request, with handheldForIPhone false, screen media type is preserved' + 'message' => 'On screen request, screen media type is preserved' + ) ); + + $this->assertTransformCssMediaCase( array( + 'media' => 'handheld', + 'expectedReturn' => 'handheld', + 'message' => 'On screen request, handheld media type is preserved' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'media' => self::SCREEN_MEDIA_QUERY, 'expectedReturn' => self::SCREEN_MEDIA_QUERY, 'message' => 'On screen request, screen media query is preserved.' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'media' => self::SCREEN_ONLY_MEDIA_QUERY, 'expectedReturn' => self::SCREEN_ONLY_MEDIA_QUERY, 'message' => 'On screen request, screen media query with only is preserved.' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'media' => 'print', 'expectedReturn' => 'print', 'message' => 'On screen request, print media type is preserved' @@ -129,44 +113,21 @@ class OutputPageTest extends MediaWikiTestCase { } /** - * Tests handheld and wgHandheldForIPhone behavior + * Tests handheld behavior */ public function testHandheld() { - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'handheldQuery' => '1', 'media' => 'handheld', 'expectedReturn' => '', 'message' => 'On request with handheld querystring and media is handheld, returns empty string' ) ); - $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array( + $this->assertTransformCssMediaCase( array( 'handheldQuery' => '1', 'media' => 'screen', 'expectedReturn' => null, 'message' => 'On request with handheld querystring and media is screen, returns null' ) ); - - // A bit counter-intuitively, $wgHandheldForIPhone should only matter if the query handheld is false or omitted - $this->assertTransformCssMediaCase( array( - 'handheldQuery' => '0', - 'media' => 'screen', - 'handheldForIPhone' => true, - 'expectedReturn' => 'screen and (min-device-width: 481px)', - 'message' => 'With $wgHandheldForIPhone true, screen media type is transformed' - ) ); - - $this->assertTransformCssMediaCase( array( - 'media' => 'handheld', - 'handheldForIPhone' => true, - 'expectedReturn' => 'handheld, only screen and (max-device-width: 480px)', - 'message' => 'With $wgHandheldForIPhone true, handheld media type is transformed' - ) ); - - $this->assertTransformCssMediaCase( array( - 'media' => 'handheld', - 'handheldForIPhone' => false, - 'expectedReturn' => 'handheld', - 'message' => 'With $wgHandheldForIPhone false, handheld media type is preserved' - ) ); } }