| 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 "base/base64.h" | 5 #include "base/base64.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 955 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 class ExternallyConnectableMessagingWithTlsChannelIdTest : | 966 class ExternallyConnectableMessagingWithTlsChannelIdTest : |
| 967 public ExternallyConnectableMessagingTest { | 967 public ExternallyConnectableMessagingTest { |
| 968 public: | 968 public: |
| 969 ExternallyConnectableMessagingWithTlsChannelIdTest() | 969 ExternallyConnectableMessagingWithTlsChannelIdTest() |
| 970 : tls_channel_id_created_(false, false) { | 970 : tls_channel_id_created_(false, false) { |
| 971 } | 971 } |
| 972 | 972 |
| 973 std::string CreateTlsChannelId() { | 973 std::string CreateTlsChannelId() { |
| 974 scoped_refptr<net::URLRequestContextGetter> request_context_getter( | 974 scoped_refptr<net::URLRequestContextGetter> request_context_getter( |
| 975 profile()->GetRequestContext()); | 975 profile()->GetRequestContext()); |
| 976 std::string channel_id_private_key; | 976 scoped_ptr<crypto::ECPrivateKey> channel_id_key; |
| 977 std::string channel_id_cert; | 977 net::ChannelIDService::RequestHandle request_handle; |
| 978 net::ChannelIDService::RequestHandle request_handle; | |
| 979 content::BrowserThread::PostTask( | 978 content::BrowserThread::PostTask( |
| 980 content::BrowserThread::IO, | 979 content::BrowserThread::IO, FROM_HERE, |
| 981 FROM_HERE, | 980 base::Bind(&ExternallyConnectableMessagingWithTlsChannelIdTest:: |
| 982 base::Bind( | 981 CreateDomainBoundCertOnIOThread, |
| 983 &ExternallyConnectableMessagingWithTlsChannelIdTest:: | 982 base::Unretained(this), base::Unretained(&channel_id_key), |
| 984 CreateDomainBoundCertOnIOThread, | 983 base::Unretained(&request_handle), request_context_getter)); |
| 985 base::Unretained(this), | |
| 986 base::Unretained(&channel_id_private_key), | |
| 987 base::Unretained(&channel_id_cert), | |
| 988 base::Unretained(&request_handle), | |
| 989 request_context_getter)); | |
| 990 tls_channel_id_created_.Wait(); | 984 tls_channel_id_created_.Wait(); |
| 991 // Create the expected value. | 985 // Create the expected value. |
| 992 base::StringPiece spki; | 986 std::vector<uint8> spki_vector; |
| 993 net::asn1::ExtractSPKIFromDERCert(channel_id_cert, &spki); | 987 if (!channel_id_key->ExportPublicKey(&spki_vector)) |
| 988 return std::string(); |
| 989 base::StringPiece spki(reinterpret_cast<char*>( |
| 990 vector_as_array(&spki_vector)), spki_vector.size()); |
| 994 base::DictionaryValue jwk_value; | 991 base::DictionaryValue jwk_value; |
| 995 net::JwkSerializer::ConvertSpkiFromDerToJwk(spki, &jwk_value); | 992 net::JwkSerializer::ConvertSpkiFromDerToJwk(spki, &jwk_value); |
| 996 std::string tls_channel_id_value; | 993 std::string tls_channel_id_value; |
| 997 base::JSONWriter::Write(jwk_value, &tls_channel_id_value); | 994 base::JSONWriter::Write(jwk_value, &tls_channel_id_value); |
| 998 return tls_channel_id_value; | 995 return tls_channel_id_value; |
| 999 } | 996 } |
| 1000 | 997 |
| 1001 private: | 998 private: |
| 1002 void CreateDomainBoundCertOnIOThread( | 999 void CreateDomainBoundCertOnIOThread( |
| 1003 std::string* channel_id_private_key, | 1000 scoped_ptr<crypto::ECPrivateKey>* channel_id_key, |
| 1004 std::string* channel_id_cert, | |
| 1005 net::ChannelIDService::RequestHandle* request_handle, | 1001 net::ChannelIDService::RequestHandle* request_handle, |
| 1006 scoped_refptr<net::URLRequestContextGetter> request_context_getter) { | 1002 scoped_refptr<net::URLRequestContextGetter> request_context_getter) { |
| 1007 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 1003 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 1008 net::ChannelIDService* channel_id_service = | 1004 net::ChannelIDService* channel_id_service = |
| 1009 request_context_getter->GetURLRequestContext()-> | 1005 request_context_getter->GetURLRequestContext()-> |
| 1010 channel_id_service(); | 1006 channel_id_service(); |
| 1011 int status = channel_id_service->GetOrCreateChannelID( | 1007 int status = channel_id_service->GetOrCreateChannelID( |
| 1012 chromium_org_url().host(), | 1008 chromium_org_url().host(), channel_id_key, |
| 1013 channel_id_private_key, | |
| 1014 channel_id_cert, | |
| 1015 base::Bind(&ExternallyConnectableMessagingWithTlsChannelIdTest:: | 1009 base::Bind(&ExternallyConnectableMessagingWithTlsChannelIdTest:: |
| 1016 GotDomainBoundCert, | 1010 GotDomainBoundCert, |
| 1017 base::Unretained(this)), | 1011 base::Unretained(this)), |
| 1018 request_handle); | 1012 request_handle); |
| 1019 if (status == net::ERR_IO_PENDING) | 1013 if (status == net::ERR_IO_PENDING) |
| 1020 return; | 1014 return; |
| 1021 GotDomainBoundCert(status); | 1015 GotDomainBoundCert(status); |
| 1022 } | 1016 } |
| 1023 | 1017 |
| 1024 void GotDomainBoundCert(int status) { | 1018 void GotDomainBoundCert(int status) { |
| 1025 ASSERT_TRUE(status == net::OK); | 1019 ASSERT_TRUE(status == net::OK); |
| 1026 tls_channel_id_created_.Signal(); | 1020 tls_channel_id_created_.Signal(); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1200 ui_test_utils::NavigateToURL(browser(), chromium_org_url()); | 1194 ui_test_utils::NavigateToURL(browser(), chromium_org_url()); |
| 1201 EXPECT_EQ(COULD_NOT_ESTABLISH_CONNECTION_ERROR, | 1195 EXPECT_EQ(COULD_NOT_ESTABLISH_CONNECTION_ERROR, |
| 1202 CanConnectAndSendMessagesToMainFrame(invalid.get())); | 1196 CanConnectAndSendMessagesToMainFrame(invalid.get())); |
| 1203 } | 1197 } |
| 1204 | 1198 |
| 1205 #endif // !defined(OS_WIN) - http://crbug.com/350517. | 1199 #endif // !defined(OS_WIN) - http://crbug.com/350517. |
| 1206 | 1200 |
| 1207 } // namespace | 1201 } // namespace |
| 1208 | 1202 |
| 1209 }; // namespace extensions | 1203 }; // namespace extensions |
| OLD | NEW |