Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_permissions_unittest.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "extensions/browser/api/web_request/web_request_permissions.h"
6
7 #include <stddef.h> 5 #include <stddef.h>
8 6
7 #include <memory>
8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
12 #include "chrome/common/extensions/extension_test_util.h" 11 #include "chrome/common/extensions/extension_test_util.h"
13 #include "content/public/browser/resource_request_info.h" 12 #include "content/public/browser/resource_request_info.h"
14 #include "content/public/test/test_browser_thread_bundle.h" 13 #include "content/public/test/test_browser_thread_bundle.h"
14 #include "extensions/browser/api/web_request/web_request_permissions.h"
15 #include "extensions/browser/info_map.h" 15 #include "extensions/browser/info_map.h"
16 #include "extensions/common/constants.h" 16 #include "extensions/common/constants.h"
17 #include "extensions/common/permissions/permissions_data.h" 17 #include "extensions/common/permissions/permissions_data.h"
18 #include "ipc/ipc_message.h" 18 #include "ipc/ipc_message.h"
19 #include "net/base/request_priority.h" 19 #include "net/base/request_priority.h"
20 #include "net/url_request/url_request.h" 20 #include "net/url_request/url_request.h"
21 #include "net/url_request/url_request_test_util.h" 21 #include "net/url_request/url_request_test_util.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 23
24 using content::ResourceRequestInfo; 24 using content::ResourceRequestInfo;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 "https://chrome.google.com/webstore/" 97 "https://chrome.google.com/webstore/"
98 "inlineinstall/detail/kcnhkahnjcbndmmehfkdnkjomaanaooo" 98 "inlineinstall/detail/kcnhkahnjcbndmmehfkdnkjomaanaooo"
99 }; 99 };
100 const char* const non_sensitive_urls[] = { 100 const char* const non_sensitive_urls[] = {
101 "http://www.google.com/" 101 "http://www.google.com/"
102 }; 102 };
103 103
104 // Check that requests are rejected based on the destination 104 // Check that requests are rejected based on the destination
105 for (size_t i = 0; i < arraysize(sensitive_urls); ++i) { 105 for (size_t i = 0; i < arraysize(sensitive_urls); ++i) {
106 GURL sensitive_url(sensitive_urls[i]); 106 GURL sensitive_url(sensitive_urls[i]);
107 scoped_ptr<net::URLRequest> request(context.CreateRequest( 107 std::unique_ptr<net::URLRequest> request(
108 sensitive_url, net::DEFAULT_PRIORITY, NULL)); 108 context.CreateRequest(sensitive_url, net::DEFAULT_PRIORITY, NULL));
109 EXPECT_TRUE(WebRequestPermissions::HideRequest( 109 EXPECT_TRUE(WebRequestPermissions::HideRequest(
110 extension_info_map_.get(), request.get())) << sensitive_urls[i]; 110 extension_info_map_.get(), request.get())) << sensitive_urls[i];
111 } 111 }
112 // Check that requests are accepted if they don't touch sensitive urls. 112 // Check that requests are accepted if they don't touch sensitive urls.
113 for (size_t i = 0; i < arraysize(non_sensitive_urls); ++i) { 113 for (size_t i = 0; i < arraysize(non_sensitive_urls); ++i) {
114 GURL non_sensitive_url(non_sensitive_urls[i]); 114 GURL non_sensitive_url(non_sensitive_urls[i]);
115 scoped_ptr<net::URLRequest> request(context.CreateRequest( 115 std::unique_ptr<net::URLRequest> request(
116 non_sensitive_url, net::DEFAULT_PRIORITY, NULL)); 116 context.CreateRequest(non_sensitive_url, net::DEFAULT_PRIORITY, NULL));
117 EXPECT_FALSE(WebRequestPermissions::HideRequest( 117 EXPECT_FALSE(WebRequestPermissions::HideRequest(
118 extension_info_map_.get(), request.get())) << non_sensitive_urls[i]; 118 extension_info_map_.get(), request.get())) << non_sensitive_urls[i];
119 } 119 }
120 120
121 // Check protection of requests originating from the frame showing the Chrome 121 // Check protection of requests originating from the frame showing the Chrome
122 // WebStore. 122 // WebStore.
123 // Normally this request is not protected: 123 // Normally this request is not protected:
124 GURL non_sensitive_url("http://www.google.com/test.js"); 124 GURL non_sensitive_url("http://www.google.com/test.js");
125 scoped_ptr<net::URLRequest> non_sensitive_request(context.CreateRequest( 125 std::unique_ptr<net::URLRequest> non_sensitive_request(
126 non_sensitive_url, net::DEFAULT_PRIORITY, NULL)); 126 context.CreateRequest(non_sensitive_url, net::DEFAULT_PRIORITY, NULL));
127 EXPECT_FALSE(WebRequestPermissions::HideRequest( 127 EXPECT_FALSE(WebRequestPermissions::HideRequest(
128 extension_info_map_.get(), non_sensitive_request.get())); 128 extension_info_map_.get(), non_sensitive_request.get()));
129 // If the origin is labeled by the WebStoreAppId, it becomes protected. 129 // If the origin is labeled by the WebStoreAppId, it becomes protected.
130 { 130 {
131 int process_id = 42; 131 int process_id = 42;
132 int site_instance_id = 23; 132 int site_instance_id = 23;
133 int view_id = 17; 133 int view_id = 17;
134 scoped_ptr<net::URLRequest> sensitive_request(context.CreateRequest( 134 std::unique_ptr<net::URLRequest> sensitive_request(
135 non_sensitive_url, net::DEFAULT_PRIORITY, NULL)); 135 context.CreateRequest(non_sensitive_url, net::DEFAULT_PRIORITY, NULL));
136 ResourceRequestInfo::AllocateForTesting(sensitive_request.get(), 136 ResourceRequestInfo::AllocateForTesting(sensitive_request.get(),
137 content::RESOURCE_TYPE_SCRIPT, 137 content::RESOURCE_TYPE_SCRIPT,
138 NULL, 138 NULL,
139 process_id, 139 process_id,
140 view_id, 140 view_id,
141 MSG_ROUTING_NONE, 141 MSG_ROUTING_NONE,
142 false, // is_main_frame 142 false, // is_main_frame
143 false, // parent_is_main_frame 143 false, // parent_is_main_frame
144 true, // allow_download 144 true, // allow_download
145 false, // is_async 145 false, // is_async
146 false); // is_using_lofi 146 false); // is_using_lofi
147 extension_info_map_->RegisterExtensionProcess( 147 extension_info_map_->RegisterExtensionProcess(
148 extensions::kWebStoreAppId, process_id, site_instance_id); 148 extensions::kWebStoreAppId, process_id, site_instance_id);
149 EXPECT_TRUE(WebRequestPermissions::HideRequest( 149 EXPECT_TRUE(WebRequestPermissions::HideRequest(
150 extension_info_map_.get(), sensitive_request.get())); 150 extension_info_map_.get(), sensitive_request.get()));
151 } 151 }
152 } 152 }
153 153
154 TEST_F(ExtensionWebRequestHelpersTestWithThreadsTest, 154 TEST_F(ExtensionWebRequestHelpersTestWithThreadsTest,
155 TestCanExtensionAccessURL_HostPermissions) { 155 TestCanExtensionAccessURL_HostPermissions) {
156 scoped_ptr<net::URLRequest> request(context.CreateRequest( 156 std::unique_ptr<net::URLRequest> request(context.CreateRequest(
157 GURL("http://example.com"), net::DEFAULT_PRIORITY, NULL)); 157 GURL("http://example.com"), net::DEFAULT_PRIORITY, NULL));
158 158
159 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, 159 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED,
160 WebRequestPermissions::CanExtensionAccessURL( 160 WebRequestPermissions::CanExtensionAccessURL(
161 extension_info_map_.get(), permissionless_extension_->id(), 161 extension_info_map_.get(), permissionless_extension_->id(),
162 request->url(), 162 request->url(),
163 -1, // No tab id. 163 -1, // No tab id.
164 false /*crosses_incognito*/, 164 false /*crosses_incognito*/,
165 WebRequestPermissions::DO_NOT_CHECK_HOST)); 165 WebRequestPermissions::DO_NOT_CHECK_HOST));
166 EXPECT_EQ(PermissionsData::ACCESS_DENIED, 166 EXPECT_EQ(PermissionsData::ACCESS_DENIED,
167 WebRequestPermissions::CanExtensionAccessURL( 167 WebRequestPermissions::CanExtensionAccessURL(
168 extension_info_map_.get(), permissionless_extension_->id(), 168 extension_info_map_.get(), permissionless_extension_->id(),
169 request->url(), 169 request->url(),
170 -1, // No tab id. 170 -1, // No tab id.
171 false /*crosses_incognito*/, 171 false /*crosses_incognito*/,
172 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 172 WebRequestPermissions::REQUIRE_HOST_PERMISSION));
173 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, 173 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED,
174 WebRequestPermissions::CanExtensionAccessURL( 174 WebRequestPermissions::CanExtensionAccessURL(
175 extension_info_map_.get(), com_extension_->id(), request->url(), 175 extension_info_map_.get(), com_extension_->id(), request->url(),
176 -1, // No tab id. 176 -1, // No tab id.
177 false /*crosses_incognito*/, 177 false /*crosses_incognito*/,
178 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 178 WebRequestPermissions::REQUIRE_HOST_PERMISSION));
179 EXPECT_EQ(PermissionsData::ACCESS_DENIED, 179 EXPECT_EQ(PermissionsData::ACCESS_DENIED,
180 WebRequestPermissions::CanExtensionAccessURL( 180 WebRequestPermissions::CanExtensionAccessURL(
181 extension_info_map_.get(), com_extension_->id(), request->url(), 181 extension_info_map_.get(), com_extension_->id(), request->url(),
182 -1, // No tab id. 182 -1, // No tab id.
183 false /*crosses_incognito*/, 183 false /*crosses_incognito*/,
184 WebRequestPermissions::REQUIRE_ALL_URLS)); 184 WebRequestPermissions::REQUIRE_ALL_URLS));
185 } 185 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698