| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/proxy/proxy_resolver_v8_tracing.h" | 5 #include "net/proxy/proxy_resolver_v8_tracing.h" |
| 6 | 6 |
| 7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 int rv = | 63 int rv = |
| 64 resolver->SetPacScript(LoadScriptData(filename), callback.callback()); | 64 resolver->SetPacScript(LoadScriptData(filename), callback.callback()); |
| 65 EXPECT_EQ(ERR_IO_PENDING, rv); | 65 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 66 EXPECT_EQ(OK, callback.WaitForResult()); | 66 EXPECT_EQ(OK, callback.WaitForResult()); |
| 67 } | 67 } |
| 68 | 68 |
| 69 class MockErrorObserver : public ProxyResolverErrorObserver { | 69 class MockErrorObserver : public ProxyResolverErrorObserver { |
| 70 public: | 70 public: |
| 71 MockErrorObserver() : event_(true, false) {} | 71 MockErrorObserver() : event_(true, false) {} |
| 72 | 72 |
| 73 virtual void OnPACScriptError(int line_number, | 73 void OnPACScriptError(int line_number, const base::string16& error) override { |
| 74 const base::string16& error) override { | |
| 75 { | 74 { |
| 76 base::AutoLock l(lock_); | 75 base::AutoLock l(lock_); |
| 77 output += base::StringPrintf("Error: line %d: %s\n", line_number, | 76 output += base::StringPrintf("Error: line %d: %s\n", line_number, |
| 78 base::UTF16ToASCII(error).c_str()); | 77 base::UTF16ToASCII(error).c_str()); |
| 79 } | 78 } |
| 80 event_.Signal(); | 79 event_.Signal(); |
| 81 } | 80 } |
| 82 | 81 |
| 83 std::string GetOutput() { | 82 std::string GetOutput() { |
| 84 base::AutoLock l(lock_); | 83 base::AutoLock l(lock_); |
| (...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 756 proxy_info3.proxy_server().ToURI()); | 755 proxy_info3.proxy_server().ToURI()); |
| 757 } | 756 } |
| 758 | 757 |
| 759 // This implementation of HostResolver allows blocking until a resolve request | 758 // This implementation of HostResolver allows blocking until a resolve request |
| 760 // has been received. The resolve requests it receives will never be completed. | 759 // has been received. The resolve requests it receives will never be completed. |
| 761 class BlockableHostResolver : public HostResolver { | 760 class BlockableHostResolver : public HostResolver { |
| 762 public: | 761 public: |
| 763 BlockableHostResolver() | 762 BlockableHostResolver() |
| 764 : num_cancelled_requests_(0), waiting_for_resolve_(false) {} | 763 : num_cancelled_requests_(0), waiting_for_resolve_(false) {} |
| 765 | 764 |
| 766 virtual int Resolve(const RequestInfo& info, | 765 int Resolve(const RequestInfo& info, |
| 767 RequestPriority priority, | 766 RequestPriority priority, |
| 768 AddressList* addresses, | 767 AddressList* addresses, |
| 769 const CompletionCallback& callback, | 768 const CompletionCallback& callback, |
| 770 RequestHandle* out_req, | 769 RequestHandle* out_req, |
| 771 const BoundNetLog& net_log) override { | 770 const BoundNetLog& net_log) override { |
| 772 EXPECT_FALSE(callback.is_null()); | 771 EXPECT_FALSE(callback.is_null()); |
| 773 EXPECT_TRUE(out_req); | 772 EXPECT_TRUE(out_req); |
| 774 | 773 |
| 775 if (!action_.is_null()) | 774 if (!action_.is_null()) |
| 776 action_.Run(); | 775 action_.Run(); |
| 777 | 776 |
| 778 // Indicate to the caller that a request was received. | 777 // Indicate to the caller that a request was received. |
| 779 EXPECT_TRUE(waiting_for_resolve_); | 778 EXPECT_TRUE(waiting_for_resolve_); |
| 780 base::MessageLoop::current()->Quit(); | 779 base::MessageLoop::current()->Quit(); |
| 781 | 780 |
| 782 // This line is intentionally after action_.Run(), since one of the | 781 // This line is intentionally after action_.Run(), since one of the |
| 783 // tests does a cancellation inside of Resolve(), and it is more | 782 // tests does a cancellation inside of Resolve(), and it is more |
| 784 // interesting if *out_req hasn't been written yet at that point. | 783 // interesting if *out_req hasn't been written yet at that point. |
| 785 *out_req = reinterpret_cast<RequestHandle*>(1); // Magic value. | 784 *out_req = reinterpret_cast<RequestHandle*>(1); // Magic value. |
| 786 | 785 |
| 787 // Return ERR_IO_PENDING as this request will NEVER be completed. | 786 // Return ERR_IO_PENDING as this request will NEVER be completed. |
| 788 // Expectation is for the caller to later cancel the request. | 787 // Expectation is for the caller to later cancel the request. |
| 789 return ERR_IO_PENDING; | 788 return ERR_IO_PENDING; |
| 790 } | 789 } |
| 791 | 790 |
| 792 virtual int ResolveFromCache(const RequestInfo& info, | 791 int ResolveFromCache(const RequestInfo& info, |
| 793 AddressList* addresses, | 792 AddressList* addresses, |
| 794 const BoundNetLog& net_log) override { | 793 const BoundNetLog& net_log) override { |
| 795 NOTREACHED(); | 794 NOTREACHED(); |
| 796 return ERR_DNS_CACHE_MISS; | 795 return ERR_DNS_CACHE_MISS; |
| 797 } | 796 } |
| 798 | 797 |
| 799 virtual void CancelRequest(RequestHandle req) override { | 798 void CancelRequest(RequestHandle req) override { |
| 800 EXPECT_EQ(reinterpret_cast<RequestHandle*>(1), req); | 799 EXPECT_EQ(reinterpret_cast<RequestHandle*>(1), req); |
| 801 num_cancelled_requests_++; | 800 num_cancelled_requests_++; |
| 802 } | 801 } |
| 803 | 802 |
| 804 void SetAction(const base::Callback<void(void)>& action) { | 803 void SetAction(const base::Callback<void(void)>& action) { |
| 805 action_ = action; | 804 action_ = action; |
| 806 } | 805 } |
| 807 | 806 |
| 808 // Waits until Resolve() has been called. | 807 // Waits until Resolve() has been called. |
| 809 void WaitUntilRequestIsReceived() { | 808 void WaitUntilRequestIsReceived() { |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1090 proxy_uri.substr(0, proxy_uri.find(':') + 1)); | 1089 proxy_uri.substr(0, proxy_uri.find(':') + 1)); |
| 1091 } else { | 1090 } else { |
| 1092 NOTREACHED(); | 1091 NOTREACHED(); |
| 1093 } | 1092 } |
| 1094 } | 1093 } |
| 1095 } | 1094 } |
| 1096 | 1095 |
| 1097 } // namespace | 1096 } // namespace |
| 1098 | 1097 |
| 1099 } // namespace net | 1098 } // namespace net |
| OLD | NEW |