Chromium Code Reviews| Index: runtime/bin/http_impl.dart |
| diff --git a/runtime/bin/http_impl.dart b/runtime/bin/http_impl.dart |
| index ae9243af27be45418a69f3e261deb8e04e488f22..9a52ed8d7ea76c5de65c67b49513a0b1763a22ec 100644 |
| --- a/runtime/bin/http_impl.dart |
| +++ b/runtime/bin/http_impl.dart |
| @@ -63,6 +63,24 @@ class _HttpHeaders implements HttpHeaders { |
| _updateHostHeader(); |
| } |
| + Date get date() { |
| + List<String> values = _headers["date"]; |
| + if (values != null) { |
| + try { |
| + return _HttpUtils.parseDate(values[0]); |
| + } catch (Exception e) { |
| + return null; |
| + } |
| + } |
|
Anders Johnsen
2012/04/25 09:02:09
Maybe add an explicit return null.
Søren Gjesse
2012/04/25 14:14:36
Done.
|
| + } |
| + |
| + void set date(Date date) { |
| + // Format "Date" header with date in Greenwich Mean Time (GMT). |
| + String formatted = |
| + _HttpUtils.formatDate(expires.changeTimeZone(new TimeZone.utc())); |
| + _set("date", formatted); |
| + } |
| + |
| Date get expires() { |
| List<String> values = _headers["expires"]; |
| if (values != null) { |
| @@ -83,7 +101,15 @@ class _HttpHeaders implements HttpHeaders { |
| void _add(String name, Object value) { |
| // TODO(sgjesse): Add immutable state throw HttpException is immutable. |
| - if (name.toLowerCase() == "expires") { |
| + if (name.toLowerCase() == "date") { |
| + if (value is Date) { |
| + date = value; |
| + } else if (value is String) { |
| + _set("date", value); |
| + } else { |
| + throw new HttpException("Unexpected type for header named $name"); |
| + } |
| + } else if (name.toLowerCase() == "expires") { |
| if (value is Date) { |
| expires = value; |
| } else if (value is String) { |