Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Side by Side Diff: sdk/lib/io/http_headers.dart

Issue 12758009: Support GZip encoding on the http server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Revivew fixes Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | sdk/lib/io/http_impl.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.io; 5 part of dart.io;
6 6
7 class _HttpHeaders implements HttpHeaders { 7 class _HttpHeaders implements HttpHeaders {
8 _HttpHeaders(String this.protocolVersion) 8 _HttpHeaders(String this.protocolVersion)
9 : _headers = new Map<String, List<String>>(); 9 : _headers = new Map<String, List<String>>();
10 10
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 313
314 _foldHeader(String name) { 314 _foldHeader(String name) {
315 if (name == HttpHeaders.SET_COOKIE || 315 if (name == HttpHeaders.SET_COOKIE ||
316 (_noFoldingHeaders != null && 316 (_noFoldingHeaders != null &&
317 _noFoldingHeaders.indexOf(name) != -1)) { 317 _noFoldingHeaders.indexOf(name) != -1)) {
318 return false; 318 return false;
319 } 319 }
320 return true; 320 return true;
321 } 321 }
322 322
323 void _finalize() { 323 void _synchronize() {
324 // If the content length is not known make sure chunked transfer 324 // If the content length is not known make sure chunked transfer
325 // encoding is used for HTTP 1.1. 325 // encoding is used for HTTP 1.1.
326 if (contentLength < 0) { 326 if (contentLength < 0) {
327 if (protocolVersion == "1.0") { 327 if (protocolVersion == "1.0") {
328 persistentConnection = false; 328 persistentConnection = false;
329 } else { 329 } else {
330 chunkedTransferEncoding = true; 330 chunkedTransferEncoding = true;
331 } 331 }
332 } 332 }
333 // If a Transfer-Encoding header field is present the 333 // If a Transfer-Encoding header field is present the
334 // Content-Length header MUST NOT be sent (RFC 2616 section 4.4). 334 // Content-Length header MUST NOT be sent (RFC 2616 section 4.4).
335 if (chunkedTransferEncoding && 335 if (chunkedTransferEncoding &&
336 contentLength >= 0 && 336 contentLength >= 0 &&
337 protocolVersion == "1.1") { 337 protocolVersion == "1.1") {
338 contentLength = -1; 338 contentLength = -1;
339 } 339 }
340 }
341
342 void _finalize() {
343 _synchronize();
340 _mutable = false; 344 _mutable = false;
341 } 345 }
342 346
343 _write(IOSink sink) { 347 _write(IOSink sink) {
344 final COLONSP = const [_CharCode.COLON, _CharCode.SP]; 348 final COLONSP = const [_CharCode.COLON, _CharCode.SP];
345 final COMMASP = const [_CharCode.COMMA, _CharCode.SP]; 349 final COMMASP = const [_CharCode.COMMA, _CharCode.SP];
346 final CRLF = const [_CharCode.CR, _CharCode.LF]; 350 final CRLF = const [_CharCode.CR, _CharCode.LF];
347 351
348 var bufferSize = 16 * 1024; 352 var bufferSize = 16 * 1024;
349 var buffer = new Uint8List(bufferSize); 353 var buffer = new Uint8List(bufferSize);
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 787
784 String name; 788 String name;
785 String value; 789 String value;
786 DateTime expires; 790 DateTime expires;
787 int maxAge; 791 int maxAge;
788 String domain; 792 String domain;
789 String path; 793 String path;
790 bool httpOnly = false; 794 bool httpOnly = false;
791 bool secure = false; 795 bool secure = false;
792 } 796 }
OLDNEW
« no previous file with comments | « no previous file | sdk/lib/io/http_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698