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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/extensions/extension_info_map.h" | 10 #include "chrome/browser/extensions/extension_info_map.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 net::URLRequestContext* request_context = | 82 net::URLRequestContext* request_context = |
83 resource_context_.GetRequestContext(); | 83 resource_context_.GetRequestContext(); |
84 request_context->set_job_factory(old_factory_); | 84 request_context->set_job_factory(old_factory_); |
85 } | 85 } |
86 | 86 |
87 void SetProtocolHandler(bool incognito) { | 87 void SetProtocolHandler(bool incognito) { |
88 net::URLRequestContext* request_context = | 88 net::URLRequestContext* request_context = |
89 resource_context_.GetRequestContext(); | 89 resource_context_.GetRequestContext(); |
90 job_factory_.SetProtocolHandler( | 90 job_factory_.SetProtocolHandler( |
91 kExtensionScheme, | 91 kExtensionScheme, |
92 CreateExtensionProtocolHandler(incognito, extension_info_map_)); | 92 CreateExtensionProtocolHandler(incognito, extension_info_map_.get())); |
93 request_context->set_job_factory(&job_factory_); | 93 request_context->set_job_factory(&job_factory_); |
94 } | 94 } |
95 | 95 |
96 void StartRequest(net::URLRequest* request, | 96 void StartRequest(net::URLRequest* request, |
97 ResourceType::Type resource_type) { | 97 ResourceType::Type resource_type) { |
98 content::ResourceRequestInfo::AllocateForTesting(request, | 98 content::ResourceRequestInfo::AllocateForTesting(request, |
99 resource_type, | 99 resource_type, |
100 &resource_context_, | 100 &resource_context_, |
101 -1, | 101 -1, |
102 -1); | 102 -1); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 {"spanning disabled", false, false, false, false}, | 137 {"spanning disabled", false, false, false, false}, |
138 {"split disabled", true, false, false, false}, | 138 {"split disabled", true, false, false, false}, |
139 {"spanning enabled", false, true, false, true}, | 139 {"spanning enabled", false, true, false, true}, |
140 {"split enabled", true, true, true, true}, | 140 {"split enabled", true, true, true, true}, |
141 }; | 141 }; |
142 | 142 |
143 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { | 143 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { |
144 scoped_refptr<Extension> extension = | 144 scoped_refptr<Extension> extension = |
145 CreateTestExtension(cases[i].name, cases[i].incognito_split_mode); | 145 CreateTestExtension(cases[i].name, cases[i].incognito_split_mode); |
146 extension_info_map_->AddExtension( | 146 extension_info_map_->AddExtension( |
147 extension, base::Time::Now(), cases[i].incognito_enabled); | 147 extension.get(), base::Time::Now(), cases[i].incognito_enabled); |
148 | 148 |
149 // First test a main frame request. | 149 // First test a main frame request. |
150 { | 150 { |
151 // It doesn't matter that the resource doesn't exist. If the resource | 151 // It doesn't matter that the resource doesn't exist. If the resource |
152 // is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request | 152 // is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request |
153 // should just fail because the file doesn't exist. | 153 // should just fail because the file doesn't exist. |
154 net::URLRequest request(extension->GetResourceURL("404.html"), | 154 net::URLRequest request(extension->GetResourceURL("404.html"), |
155 &test_delegate_, | 155 &test_delegate_, |
156 resource_context_.GetRequestContext()); | 156 resource_context_.GetRequestContext()); |
157 StartRequest(&request, ResourceType::MAIN_FRAME); | 157 StartRequest(&request, ResourceType::MAIN_FRAME); |
(...skipping 27 matching lines...) Expand all Loading... |
185 } | 185 } |
186 } | 186 } |
187 | 187 |
188 // Tests getting a resource for a component extension works correctly, both when | 188 // Tests getting a resource for a component extension works correctly, both when |
189 // the extension is enabled and when it is disabled. | 189 // the extension is enabled and when it is disabled. |
190 TEST_F(ExtensionProtocolTest, ComponentResourceRequest) { | 190 TEST_F(ExtensionProtocolTest, ComponentResourceRequest) { |
191 // Register a non-incognito extension protocol handler. | 191 // Register a non-incognito extension protocol handler. |
192 SetProtocolHandler(false); | 192 SetProtocolHandler(false); |
193 | 193 |
194 scoped_refptr<Extension> extension = CreateWebStoreExtension(); | 194 scoped_refptr<Extension> extension = CreateWebStoreExtension(); |
195 extension_info_map_->AddExtension( | 195 extension_info_map_->AddExtension(extension.get(), base::Time::Now(), false); |
196 extension, base::Time::Now(), false); | |
197 | 196 |
198 // First test it with the extension enabled. | 197 // First test it with the extension enabled. |
199 { | 198 { |
200 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), | 199 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), |
201 &test_delegate_, | 200 &test_delegate_, |
202 resource_context_.GetRequestContext()); | 201 resource_context_.GetRequestContext()); |
203 StartRequest(&request, ResourceType::MEDIA); | 202 StartRequest(&request, ResourceType::MEDIA); |
204 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); | 203 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); |
205 } | 204 } |
206 | 205 |
207 // And then test it with the extension disabled. | 206 // And then test it with the extension disabled. |
208 extension_info_map_->RemoveExtension(extension->id(), | 207 extension_info_map_->RemoveExtension(extension->id(), |
209 extension_misc::UNLOAD_REASON_DISABLE); | 208 extension_misc::UNLOAD_REASON_DISABLE); |
210 { | 209 { |
211 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), | 210 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), |
212 &test_delegate_, | 211 &test_delegate_, |
213 resource_context_.GetRequestContext()); | 212 resource_context_.GetRequestContext()); |
214 StartRequest(&request, ResourceType::MEDIA); | 213 StartRequest(&request, ResourceType::MEDIA); |
215 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); | 214 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); |
216 } | 215 } |
217 } | 216 } |
218 | 217 |
219 } // namespace extensions | 218 } // namespace extensions |
OLD | NEW |