OLD | NEW |
---|---|
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/url_request/url_request_http_job.h" | 5 #include "net/url_request/url_request_http_job.h" |
6 | 6 |
7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 server_auth_state_(net::AUTH_STATE_DONT_NEED_AUTH), | 57 server_auth_state_(net::AUTH_STATE_DONT_NEED_AUTH), |
58 ALLOW_THIS_IN_INITIALIZER_LIST( | 58 ALLOW_THIS_IN_INITIALIZER_LIST( |
59 start_callback_(this, &URLRequestHttpJob::OnStartCompleted)), | 59 start_callback_(this, &URLRequestHttpJob::OnStartCompleted)), |
60 ALLOW_THIS_IN_INITIALIZER_LIST( | 60 ALLOW_THIS_IN_INITIALIZER_LIST( |
61 read_callback_(this, &URLRequestHttpJob::OnReadCompleted)), | 61 read_callback_(this, &URLRequestHttpJob::OnReadCompleted)), |
62 read_in_progress_(false), | 62 read_in_progress_(false), |
63 context_(request->context()) { | 63 context_(request->context()) { |
64 } | 64 } |
65 | 65 |
66 URLRequestHttpJob::~URLRequestHttpJob() { | 66 URLRequestHttpJob::~URLRequestHttpJob() { |
67 if (sdch_dictionary_url_.is_valid()) { | |
68 SdchManager::Global()->FetchDictionary(sdch_dictionary_url_); | |
Lincoln
2009/02/17 21:43:50
Could this cause a crash if, when the browser is s
| |
69 } | |
67 } | 70 } |
68 | 71 |
69 void URLRequestHttpJob::SetUpload(net::UploadData* upload) { | 72 void URLRequestHttpJob::SetUpload(net::UploadData* upload) { |
70 DCHECK(!transaction_.get()) << "cannot change once started"; | 73 DCHECK(!transaction_.get()) << "cannot change once started"; |
71 request_info_.upload_data = upload; | 74 request_info_.upload_data = upload; |
72 } | 75 } |
73 | 76 |
74 void URLRequestHttpJob::SetExtraRequestHeaders( | 77 void URLRequestHttpJob::SetExtraRequestHeaders( |
75 const std::string& headers) { | 78 const std::string& headers) { |
76 DCHECK(!transaction_.get()) << "cannot change once started"; | 79 DCHECK(!transaction_.get()) << "cannot change once started"; |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
438 request_->policy_url())) { | 441 request_->policy_url())) { |
439 FetchResponseCookies(); | 442 FetchResponseCookies(); |
440 net::CookieMonster::CookieOptions options; | 443 net::CookieMonster::CookieOptions options; |
441 options.set_include_httponly(); | 444 options.set_include_httponly(); |
442 ctx->cookie_store()->SetCookiesWithOptions(request_->url(), | 445 ctx->cookie_store()->SetCookiesWithOptions(request_->url(), |
443 response_cookies_, | 446 response_cookies_, |
444 options); | 447 options); |
445 } | 448 } |
446 } | 449 } |
447 | 450 |
448 // Get list of SDCH dictionary requests, and schedule them to be loaded. | |
449 if (SdchManager::Global() && | 451 if (SdchManager::Global() && |
450 SdchManager::Global()->IsInSupportedDomain(request_->url())) { | 452 SdchManager::Global()->IsInSupportedDomain(request_->url())) { |
451 static const std::string name = "Get-Dictionary"; | 453 static const std::string name = "Get-Dictionary"; |
452 std::string url_text; | 454 std::string url_text; |
453 void* iter = NULL; | 455 void* iter = NULL; |
454 // TODO(jar): We need to not fetch dictionaries the first time they are | 456 // TODO(jar): We need to not fetch dictionaries the first time they are |
455 // seen, but rather wait until we can justify their usefulness. | 457 // seen, but rather wait until we can justify their usefulness. |
456 // For now, we will only fetch the first dictionary, which will at least | 458 // For now, we will only fetch the first dictionary, which will at least |
457 // require multiple suggestions before we get additional ones for this site. | 459 // require multiple suggestions before we get additional ones for this site. |
458 // Eventually we should wait until a dictionary is requested several times | 460 // Eventually we should wait until a dictionary is requested several times |
459 // before we even download it (so that we don't waste memory or bandwidth). | 461 // before we even download it (so that we don't waste memory or bandwidth). |
460 if (response_info_->headers->EnumerateHeader(&iter, name, &url_text)) { | 462 if (response_info_->headers->EnumerateHeader(&iter, name, &url_text)) { |
461 GURL dictionary_url = request_->url().Resolve(url_text); | 463 GURL dictionary_url = request_->url().Resolve(url_text); |
462 SdchManager::Global()->FetchDictionary(request_->url(), dictionary_url); | 464 if (SdchManager::Global()->CanFetchDictionary(request_->url(), |
465 dictionary_url)) | |
466 sdch_dictionary_url_ = dictionary_url; | |
463 } | 467 } |
464 } | 468 } |
465 | 469 |
466 URLRequestJob::NotifyHeadersComplete(); | 470 URLRequestJob::NotifyHeadersComplete(); |
467 } | 471 } |
468 | 472 |
469 void URLRequestHttpJob::DestroyTransaction() { | 473 void URLRequestHttpJob::DestroyTransaction() { |
470 DCHECK(transaction_.get()); | 474 DCHECK(transaction_.get()); |
471 | 475 |
472 transaction_.reset(); | 476 transaction_.reset(); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
558 DCHECK(response_cookies_.empty()); | 562 DCHECK(response_cookies_.empty()); |
559 | 563 |
560 std::string name = "Set-Cookie"; | 564 std::string name = "Set-Cookie"; |
561 std::string value; | 565 std::string value; |
562 | 566 |
563 void* iter = NULL; | 567 void* iter = NULL; |
564 while (response_info_->headers->EnumerateHeader(&iter, name, &value)) | 568 while (response_info_->headers->EnumerateHeader(&iter, name, &value)) |
565 response_cookies_.push_back(value); | 569 response_cookies_.push_back(value); |
566 } | 570 } |
567 | 571 |
OLD | NEW |