Merge "Use WebRequest instead of $_SERVER in ApiMain."
authorReedy <reedy@wikimedia.org>
Fri, 3 Aug 2012 20:59:04 +0000 (20:59 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 3 Aug 2012 20:59:04 +0000 (20:59 +0000)
1  2 
includes/api/ApiMain.php

diff --combined includes/api/ApiMain.php
@@@ -65,7 -65,6 +65,7 @@@ class ApiMain extends ApiBase 
  
                // Write modules
                'purge' => 'ApiPurge',
 +              'setnotificationtimestamp' => 'ApiSetNotificationTimestamp',
                'rollback' => 'ApiRollback',
                'delete' => 'ApiDelete',
                'undelete' => 'ApiUndelete',
         */
        protected function handleCORS() {
                global $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions;
-               $response = $this->getRequest()->response();
                $originParam = $this->getParameter( 'origin' ); // defaults to null
                if ( $originParam === null ) {
                        // No origin parameter, nothing to do
                        return true;
                }
+               $request = $this->getRequest();
+               $response = $request->response();
                // Origin: header is a space-separated list of origins, check all of them
-               $originHeader = isset( $_SERVER['HTTP_ORIGIN'] ) ? $_SERVER['HTTP_ORIGIN'] : '';
-               $origins = explode( ' ', $originHeader );
+               $originHeader = $request->getHeader( 'Origin' );
+               if ( $originHeader === false ) {
+                       $origins = array();
+               } else {
+                       $origins = explode( ' ', $originHeader );
+               }
                if ( !in_array( $originParam, $origins ) ) {
                        // origin parameter set but incorrect
                        // Send a 403 response