1 <?php 2 # Copyright (C) 2010 The Android Open Source Project 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 16 ############################################################################### 17 18 # Show the source of the test. 19 # 20 # Usage: 21 # view_source.php?src=PATH 22 # where 23 # PATH - relative path in the LayoutTests dir 24 25 # Global variables 26 # The server document root is LayoutTests/http/tests. See run_apache2.py. 27 $rootDir = realpath($_SERVER['DOCUMENT_ROOT'] . '..' . DIRECTORY_SEPARATOR . '..'); 28 29 function getAbsolutePath($relPath) { 30 global $rootDir; 31 return $rootDir . DIRECTORY_SEPARATOR . $relPath; 32 } 33 34 function main() { 35 global $rootDir; 36 37 # Very primitive check if path tries to go above DOCUMENT_ROOT or is absolute 38 if (strpos($_GET['src'], "..") !== False || 39 substr($_GET['src'], 0, 1) == DIRECTORY_SEPARATOR) { 40 return; 41 } 42 43 # If we don't want realpath to append any prefixes we need to pass it an absolute path 44 $src = realpath(getAbsolutePath($_GET['src'])); 45 46 echo "<html><body>"; 47 # TODO: Add link following and syntax highlighting for html and js. 48 highlight_string(file_get_contents($src)); 49 echo "</body></html>"; 50 } 51 52 main(); 53 ?> 54