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 4f59d4ec55b641c985d5d9ff69149a0ab71c2c6a..a5fb972a2b61799da78a893429aa5690e515430f 100644 (file)
@@ -1,3 +1,22 @@
+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
index 82c9cda638c302265ebf0e57e16578dbde300fe0..1967b629332118aac546b2113f5cf05205f75d16 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 adfa166b08369a9947ef8a7d307e4cdfde0f4846..31cfa87efe741a765f72f39795ee43a85e1122f0 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 3d7390abd60235e4d1c1c52727f56b51580ea722..ab01ae90d0bdecbcb2e1e2ecc1a6de20ab07617b 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 1af4465ba3b08d3dabb46eaf7be29a0a68a256c0..0fe3d954cd0794c8111ff68806c344525c791eee 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 07ad8e85972b75afb906cec0a4abbe4fb235a16e..b52626ed9331160d3b34aa64c22d6c03e097554e 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;