| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/net/chrome_network_delegate.h" | 5 #include "chrome/browser/net/chrome_network_delegate.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 #include "components/sync_preferences/testing_pref_service_syncable.h" | 32 #include "components/sync_preferences/testing_pref_service_syncable.h" |
| 33 #include "content/public/browser/resource_request_info.h" | 33 #include "content/public/browser/resource_request_info.h" |
| 34 #include "content/public/common/content_switches.h" | 34 #include "content/public/common/content_switches.h" |
| 35 #include "content/public/common/previews_state.h" | 35 #include "content/public/common/previews_state.h" |
| 36 #include "content/public/common/resource_type.h" | 36 #include "content/public/common/resource_type.h" |
| 37 #include "content/public/test/test_browser_thread_bundle.h" | 37 #include "content/public/test/test_browser_thread_bundle.h" |
| 38 #include "extensions/features/features.h" | 38 #include "extensions/features/features.h" |
| 39 #include "net/base/request_priority.h" | 39 #include "net/base/request_priority.h" |
| 40 #include "net/http/http_request_headers.h" | 40 #include "net/http/http_request_headers.h" |
| 41 #include "net/socket/socket_test_util.h" | 41 #include "net/socket/socket_test_util.h" |
| 42 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" |
| 42 #include "net/url_request/url_request.h" | 43 #include "net/url_request/url_request.h" |
| 43 #include "net/url_request/url_request_test_util.h" | 44 #include "net/url_request/url_request_test_util.h" |
| 44 #include "testing/gtest/include/gtest/gtest.h" | 45 #include "testing/gtest/include/gtest/gtest.h" |
| 45 #include "url/gurl.h" | 46 #include "url/gurl.h" |
| 46 | 47 |
| 47 #if BUILDFLAG(ENABLE_EXTENSIONS) | 48 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 48 #include "chrome/browser/extensions/event_router_forwarder.h" | 49 #include "chrome/browser/extensions/event_router_forwarder.h" |
| 49 #endif | 50 #endif |
| 50 | 51 |
| 51 namespace { | 52 namespace { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 66 | 67 |
| 67 net::MockRead response_mock_reads[] = { | 68 net::MockRead response_mock_reads[] = { |
| 68 net::MockRead("HTTP/1.1 200 OK\r\n\r\n"), net::MockRead("response body"), | 69 net::MockRead("HTTP/1.1 200 OK\r\n\r\n"), net::MockRead("response body"), |
| 69 net::MockRead(net::SYNCHRONOUS, net::OK), | 70 net::MockRead(net::SYNCHRONOUS, net::OK), |
| 70 }; | 71 }; |
| 71 net::StaticSocketDataProvider response_socket_data_provider( | 72 net::StaticSocketDataProvider response_socket_data_provider( |
| 72 response_mock_reads, arraysize(response_mock_reads), nullptr, 0); | 73 response_mock_reads, arraysize(response_mock_reads), nullptr, 0); |
| 73 socket_factory->AddSocketDataProvider(&response_socket_data_provider); | 74 socket_factory->AddSocketDataProvider(&response_socket_data_provider); |
| 74 net::TestDelegate test_delegate; | 75 net::TestDelegate test_delegate; |
| 75 test_delegate.set_quit_on_complete(true); | 76 test_delegate.set_quit_on_complete(true); |
| 76 std::unique_ptr<net::URLRequest> request(context->CreateRequest( | 77 std::unique_ptr<net::URLRequest> request( |
| 77 GURL("http://example.com"), net::DEFAULT_PRIORITY, &test_delegate)); | 78 context->CreateRequest(GURL("http://example.com"), net::DEFAULT_PRIORITY, |
| 79 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS)); |
| 78 | 80 |
| 79 content::ResourceRequestInfo::AllocateForTesting( | 81 content::ResourceRequestInfo::AllocateForTesting( |
| 80 request.get(), content::RESOURCE_TYPE_MAIN_FRAME, nullptr, -2, -2, -2, | 82 request.get(), content::RESOURCE_TYPE_MAIN_FRAME, nullptr, -2, -2, -2, |
| 81 true, false, true, true, content::PREVIEWS_OFF); | 83 true, false, true, true, content::PREVIEWS_OFF); |
| 82 | 84 |
| 83 request->Start(); | 85 request->Start(); |
| 84 base::RunLoop().RunUntilIdle(); | 86 base::RunLoop().RunUntilIdle(); |
| 85 return request; | 87 return request; |
| 86 } | 88 } |
| 87 | 89 |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 | 257 |
| 256 const char kHttpRequestCompletionErrorCode[] = | 258 const char kHttpRequestCompletionErrorCode[] = |
| 257 "Net.HttpRequestCompletionErrorCodes"; | 259 "Net.HttpRequestCompletionErrorCodes"; |
| 258 const char kHttpRequestCompletionErrorCodeMainFrame[] = | 260 const char kHttpRequestCompletionErrorCodeMainFrame[] = |
| 259 "Net.HttpRequestCompletionErrorCodes.MainFrame"; | 261 "Net.HttpRequestCompletionErrorCodes.MainFrame"; |
| 260 | 262 |
| 261 for (const auto& test : kTests) { | 263 for (const auto& test : kTests) { |
| 262 base::HistogramTester histograms; | 264 base::HistogramTester histograms; |
| 263 | 265 |
| 264 net::TestDelegate test_delegate; | 266 net::TestDelegate test_delegate; |
| 265 std::unique_ptr<net::URLRequest> request(context()->CreateRequest( | 267 std::unique_ptr<net::URLRequest> request( |
| 266 test.url, net::DEFAULT_PRIORITY, &test_delegate)); | 268 context()->CreateRequest(test.url, net::DEFAULT_PRIORITY, |
| 269 &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS)); |
| 267 if (test.is_main_frame) { | 270 if (test.is_main_frame) { |
| 268 request->SetLoadFlags(request->load_flags() | | 271 request->SetLoadFlags(request->load_flags() | |
| 269 net::LOAD_MAIN_FRAME_DEPRECATED); | 272 net::LOAD_MAIN_FRAME_DEPRECATED); |
| 270 } | 273 } |
| 271 network_delegate()->NotifyCompleted(request.get(), false, test.net_error); | 274 network_delegate()->NotifyCompleted(request.get(), false, test.net_error); |
| 272 | 275 |
| 273 histograms.ExpectTotalCount(kHttpRequestCompletionErrorCode, | 276 histograms.ExpectTotalCount(kHttpRequestCompletionErrorCode, |
| 274 test.expected_request_completion_count); | 277 test.expected_request_completion_count); |
| 275 histograms.ExpectUniqueSample(kHttpRequestCompletionErrorCode, | 278 histograms.ExpectUniqueSample(kHttpRequestCompletionErrorCode, |
| 276 test.expected_sample_bucket, | 279 test.expected_sample_bucket, |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 force_google_safe_search_.SetValue(google_safe_search); | 346 force_google_safe_search_.SetValue(google_safe_search); |
| 344 force_youtube_restrict_.SetValue(youtube_restrict); | 347 force_youtube_restrict_.SetValue(youtube_restrict); |
| 345 } | 348 } |
| 346 | 349 |
| 347 // Does a request to an arbitrary URL and verifies that the SafeSearch | 350 // Does a request to an arbitrary URL and verifies that the SafeSearch |
| 348 // enforcement utility functions were called/not called as expected. | 351 // enforcement utility functions were called/not called as expected. |
| 349 void QueryURL(bool expect_google_safe_search, bool expect_youtube_restrict) { | 352 void QueryURL(bool expect_google_safe_search, bool expect_youtube_restrict) { |
| 350 safe_search_util::ClearForceGoogleSafeSearchCountForTesting(); | 353 safe_search_util::ClearForceGoogleSafeSearchCountForTesting(); |
| 351 safe_search_util::ClearForceYouTubeRestrictCountForTesting(); | 354 safe_search_util::ClearForceYouTubeRestrictCountForTesting(); |
| 352 | 355 |
| 353 std::unique_ptr<net::URLRequest> request(context_.CreateRequest( | 356 std::unique_ptr<net::URLRequest> request( |
| 354 GURL("http://anyurl.com"), net::DEFAULT_PRIORITY, &delegate_)); | 357 context_.CreateRequest(GURL("http://anyurl.com"), net::DEFAULT_PRIORITY, |
| 358 &delegate_, TRAFFIC_ANNOTATION_FOR_TESTS)); |
| 355 | 359 |
| 356 request->Start(); | 360 request->Start(); |
| 357 base::RunLoop().RunUntilIdle(); | 361 base::RunLoop().RunUntilIdle(); |
| 358 | 362 |
| 359 EXPECT_EQ(expect_google_safe_search ? 1 : 0, | 363 EXPECT_EQ(expect_google_safe_search ? 1 : 0, |
| 360 safe_search_util::GetForceGoogleSafeSearchCountForTesting()); | 364 safe_search_util::GetForceGoogleSafeSearchCountForTesting()); |
| 361 EXPECT_EQ(expect_youtube_restrict ? 1 : 0, | 365 EXPECT_EQ(expect_youtube_restrict ? 1 : 0, |
| 362 safe_search_util::GetForceYouTubeRestrictCountForTesting()); | 366 safe_search_util::GetForceYouTubeRestrictCountForTesting()); |
| 363 } | 367 } |
| 364 | 368 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 // If |expected| is passed as false, this routine verifies that no | 418 // If |expected| is passed as false, this routine verifies that no |
| 415 // X-GoogApps-Allowed-Domains header is set. If |expected| is passed as true, | 419 // X-GoogApps-Allowed-Domains header is set. If |expected| is passed as true, |
| 416 // this routine verifies that the X-GoogApps-Allowed-Domains header is set and | 420 // this routine verifies that the X-GoogApps-Allowed-Domains header is set and |
| 417 // the value is identical to |allowed|. | 421 // the value is identical to |allowed|. |
| 418 void CheckAllowedDomainsHeaders(const std::string& allowed, | 422 void CheckAllowedDomainsHeaders(const std::string& allowed, |
| 419 const GURL& url, | 423 const GURL& url, |
| 420 bool expected) { | 424 bool expected) { |
| 421 allowed_domains_for_apps_.SetValue(allowed); | 425 allowed_domains_for_apps_.SetValue(allowed); |
| 422 | 426 |
| 423 std::unique_ptr<net::URLRequest> request(context_.CreateRequest( | 427 std::unique_ptr<net::URLRequest> request(context_.CreateRequest( |
| 424 url, net::DEFAULT_PRIORITY, &delegate_)); | 428 url, net::DEFAULT_PRIORITY, &delegate_, TRAFFIC_ANNOTATION_FOR_TESTS)); |
| 425 | 429 |
| 426 request->Start(); | 430 request->Start(); |
| 427 base::RunLoop().RunUntilIdle(); | 431 base::RunLoop().RunUntilIdle(); |
| 428 | 432 |
| 429 net::HttpRequestHeaders request_headers = request->extra_request_headers(); | 433 net::HttpRequestHeaders request_headers = request->extra_request_headers(); |
| 430 | 434 |
| 431 const char allowed_domains_header_name[] = "X-GoogApps-Allowed-Domains"; | 435 const char allowed_domains_header_name[] = "X-GoogApps-Allowed-Domains"; |
| 432 EXPECT_EQ(expected, request_headers.HasHeader(allowed_domains_header_name)); | 436 EXPECT_EQ(expected, request_headers.HasHeader(allowed_domains_header_name)); |
| 433 | 437 |
| 434 if (expected) { | 438 if (expected) { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 | 636 |
| 633 // Files in external storage are allowed. | 637 // Files in external storage are allowed. |
| 634 base::FilePath external_storage_path; | 638 base::FilePath external_storage_path; |
| 635 PathService::Get(base::DIR_ANDROID_EXTERNAL_STORAGE, &external_storage_path); | 639 PathService::Get(base::DIR_ANDROID_EXTERNAL_STORAGE, &external_storage_path); |
| 636 EXPECT_TRUE(IsAccessAllowed( | 640 EXPECT_TRUE(IsAccessAllowed( |
| 637 external_storage_path.AppendASCII("foo.txt").AsUTF8Unsafe(), "")); | 641 external_storage_path.AppendASCII("foo.txt").AsUTF8Unsafe(), "")); |
| 638 // The external storage root itself is not allowed. | 642 // The external storage root itself is not allowed. |
| 639 EXPECT_FALSE(IsAccessAllowed(external_storage_path.AsUTF8Unsafe(), "")); | 643 EXPECT_FALSE(IsAccessAllowed(external_storage_path.AsUTF8Unsafe(), "")); |
| 640 #endif | 644 #endif |
| 641 } | 645 } |
| OLD | NEW |