| 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 |