Cache-control should be set only on api/runs
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Jan 2015 22:39:33 +0000 (22:39 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Jan 2015 22:39:33 +0000 (22:39 +0000)
https://bugs.webkit.org/show_bug.cgi?id=140312

Reviewed by Andreas Kling.

Some JSON APIs such as api/analysis-tasks can't be cached even for a short period of time (e.g. a few minutes)
since they can be modified by the user on demand. Since only api/runs.php takes a long time to generate JSONs,
just set cache-control there instead of json-header.php which is used by other JSON APIs.

Also set date_default_timezone_set in db.php since we never use non-UTC timezone in our scripts.

* public/api/analysis-tasks.php:
* public/api/runs.php: Set the cache control headers.
* public/api/test-groups.php:
* public/include/db.php: Set the default timezone to UTC.
* public/include/json-header.php: Don't set the cache control headers.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@178208 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/api/analysis-tasks.php
Websites/perf.webkit.org/public/api/runs.php
Websites/perf.webkit.org/public/api/test-groups.php
Websites/perf.webkit.org/public/include/db.php
Websites/perf.webkit.org/public/include/json-header.php

index 4f59d4e..a5fb972 100644 (file)
@@ -1,5 +1,24 @@
 2015-01-09  Ryosuke Niwa  <rniwa@webkit.org>
 
+        Cache-control should be set only on api/runs
+        https://bugs.webkit.org/show_bug.cgi?id=140312
+
+        Reviewed by Andreas Kling.
+
+        Some JSON APIs such as api/analysis-tasks can't be cached even for a short period of time (e.g. a few minutes)
+        since they can be modified by the user on demand. Since only api/runs.php takes a long time to generate JSONs,
+        just set cache-control there instead of json-header.php which is used by other JSON APIs.
+
+        Also set date_default_timezone_set in db.php since we never use non-UTC timezone in our scripts.
+
+        * public/api/analysis-tasks.php:
+        * public/api/runs.php: Set the cache control headers.
+        * public/api/test-groups.php:
+        * public/include/db.php: Set the default timezone to UTC.
+        * public/include/json-header.php: Don't set the cache control headers.
+
+2015-01-09  Ryosuke Niwa  <rniwa@webkit.org>
+
         api/report-commit should authenticate with a slave name and password
         https://bugs.webkit.org/show_bug.cgi?id=140308
 
index 82c9cda..1967b62 100644 (file)
@@ -60,7 +60,6 @@ function fetch_and_push_bugs_to_tasks($db, &$tasks) {
     return $bugs;
 }
 
-date_default_timezone_set('UTC');
 function format_task($task_row) {
     return array(
         'id' => $task_row['task_id'],
index adfa166..31cfa87 100644 (file)
@@ -15,6 +15,11 @@ $db = new Database;
 if (!$db->connect())
     exit_with_error('DatabaseConnectionFailure');
 
+// FIXME: We should support revalication as well as caching results in the server side.
+$maxage = config('jsonCacheMaxAge');
+header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $maxage) . ' GMT');
+header("Cache-Control: maxage=$maxage");
+
 $platform_id = intval($parts[0]);
 $metric_id = intval($parts[1]);
 $config_rows = $db->query_and_fetch_all('SELECT config_id, config_type, config_platform, config_metric
@@ -47,7 +52,6 @@ function fetch_runs_for_config($db, $config) {
     return $formatted_runs;
 }
 
-date_default_timezone_set('UTC');
 function parse_revisions_array($postgres_array) {
     global $repository_id_to_name;
 
index 3d7390a..ab01ae9 100644 (file)
@@ -58,7 +58,6 @@ function fetch_build_requests_for_group($db, $test_group_id) {
         WHERE request_build = build_id AND request_group = $1 ORDER BY request_order', array($test_group_id));
 }
 
-date_default_timezone_set('UTC');
 function format_test_group($group_row) {
     return array(
         'id' => $group_row['testgroup_id'],
index 1af4465..0fe3d95 100644 (file)
@@ -40,6 +40,8 @@ if (config('debug')) {
 } else
     error_reporting(E_ERROR);
 
+date_default_timezone_set('UTC');
+
 class Database
 {
     private $connection = false;
index 07ad8e8..b52626e 100644 (file)
@@ -3,9 +3,6 @@
 require_once('db.php');
 
 header('Content-type: application/json');
-$maxage = config('jsonCacheMaxAge');
-header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $maxage) . ' GMT');
-header("Cache-Control: maxage=$maxage");
 
 function exit_with_error($status, $details = array()) {
     $details['status'] = $status;