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

Side by Side Diff: chrome/browser/safe_browsing/incident_reporting/environment_data_collection_win_unittest.cc

Issue 2163803003: [chrome_elf] Removing blacklist finch for dynamic dll changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review fixes. Created 4 years, 4 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/safe_browsing/incident_reporting/environment_data_colle ction_win.h" 5 #include "chrome/browser/safe_browsing/incident_reporting/environment_data_colle ction_win.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 11 matching lines...) Expand all
22 #include "chrome/browser/safe_browsing/path_sanitizer.h" 22 #include "chrome/browser/safe_browsing/path_sanitizer.h"
23 #include "chrome/common/safe_browsing/csd.pb.h" 23 #include "chrome/common/safe_browsing/csd.pb.h"
24 #include "chrome_elf/chrome_elf_constants.h" 24 #include "chrome_elf/chrome_elf_constants.h"
25 #include "net/base/winsock_init.h" 25 #include "net/base/winsock_init.h"
26 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
27 27
28 namespace safe_browsing { 28 namespace safe_browsing {
29 29
30 namespace { 30 namespace {
31 31
32 const wchar_t test_dll[] = L"test_name.dll";
33
34 // Returns true if a dll with filename |dll_name| is found in |process_report|, 32 // Returns true if a dll with filename |dll_name| is found in |process_report|,
35 // providing a copy of it in |result|. 33 // providing a copy of it in |result|.
36 bool GetProcessReportDll( 34 bool GetProcessReportDll(
37 const ClientIncidentReport_EnvironmentData_Process& process_report, 35 const ClientIncidentReport_EnvironmentData_Process& process_report,
38 const base::FilePath& dll_name, 36 const base::FilePath& dll_name,
39 ClientIncidentReport_EnvironmentData_Process_Dll* result) { 37 ClientIncidentReport_EnvironmentData_Process_Dll* result) {
40 for (const auto& dll : process_report.dll()) { 38 for (const auto& dll : process_report.dll()) {
41 if (base::FilePath::FromUTF8Unsafe(dll.path()).BaseName() == dll_name) { 39 if (base::FilePath::FromUTF8Unsafe(dll.path()).BaseName() == dll_name) {
42 result->CopyFrom(dll); 40 result->CopyFrom(dll);
43 return true; 41 return true;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 116
119 RecordLspFeature(&process_report); 117 RecordLspFeature(&process_report);
120 118
121 // Return successfully if LSP feature is found. 119 // Return successfully if LSP feature is found.
122 if (DllEntryContainsLspFeature(process_report, lsp)) 120 if (DllEntryContainsLspFeature(process_report, lsp))
123 return; 121 return;
124 122
125 FAIL() << "No LSP feature found for " << lsp; 123 FAIL() << "No LSP feature found for " << lsp;
126 } 124 }
127 125
128 TEST(SafeBrowsingEnvironmentDataCollectionWinTest, CollectDllBlacklistData) {
129 // Ensure that CollectDllBlacklistData correctly adds the set of sanitized dll
130 // names currently stored in the registry to the report.
131 registry_util::RegistryOverrideManager override_manager;
132 override_manager.OverrideRegistry(HKEY_CURRENT_USER);
133
134 base::win::RegKey blacklist_registry_key(HKEY_CURRENT_USER,
135 blacklist::kRegistryFinchListPath,
136 KEY_QUERY_VALUE | KEY_SET_VALUE);
137
138 // Check that with an empty registry the blacklisted dlls field is left empty.
139 ClientIncidentReport_EnvironmentData_Process process_report;
140 CollectDllBlacklistData(&process_report);
141 EXPECT_EQ(0, process_report.blacklisted_dll_size());
142
143 // Check that after adding exactly one dll to the registry it appears in the
144 // process report.
145 blacklist_registry_key.WriteValue(test_dll, test_dll);
146 CollectDllBlacklistData(&process_report);
147 ASSERT_EQ(1, process_report.blacklisted_dll_size());
148
149 base::string16 process_report_dll =
150 base::UTF8ToWide(process_report.blacklisted_dll(0));
151 EXPECT_EQ(base::string16(test_dll), process_report_dll);
152
153 // Check that if the registry contains the full path to a dll it is properly
154 // sanitized before being reported.
155 blacklist_registry_key.DeleteValue(test_dll);
156 process_report.clear_blacklisted_dll();
157
158 base::FilePath path;
159 ASSERT_TRUE(PathService::Get(base::DIR_HOME, &path));
160 base::string16 input_path =
161 path.Append(FILE_PATH_LITERAL("test_path.dll")).value();
162
163 std::string path_expected = base::FilePath(FILE_PATH_LITERAL("~"))
164 .Append(FILE_PATH_LITERAL("test_path.dll"))
165 .AsUTF8Unsafe();
166
167 blacklist_registry_key.WriteValue(input_path.c_str(), input_path.c_str());
168 CollectDllBlacklistData(&process_report);
169
170 ASSERT_EQ(1, process_report.blacklisted_dll_size());
171 std::string process_report_path = process_report.blacklisted_dll(0);
172 EXPECT_EQ(path_expected, process_report_path);
173 }
174
175 #if !defined(_WIN64) 126 #if !defined(_WIN64)
176 TEST(SafeBrowsingEnvironmentDataCollectionWinTest, VerifyLoadedModules) { 127 TEST(SafeBrowsingEnvironmentDataCollectionWinTest, VerifyLoadedModules) {
177 // Load the test modules. 128 // Load the test modules.
178 std::vector<base::ScopedNativeLibrary> test_dlls(kTestDllNamesCount); 129 std::vector<base::ScopedNativeLibrary> test_dlls(kTestDllNamesCount);
179 for (size_t i = 0; i < kTestDllNamesCount; ++i) { 130 for (size_t i = 0; i < kTestDllNamesCount; ++i) {
180 test_dlls[i].Reset( 131 test_dlls[i].Reset(
181 LoadNativeLibrary(base::FilePath(kTestDllNames[i]), NULL)); 132 LoadNativeLibrary(base::FilePath(kTestDllNames[i]), NULL));
182 } 133 }
183 134
184 // Edit the first byte of the function exported by the first module. Calling 135 // Edit the first byte of the function exported by the first module. Calling
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 TEST(SafeBrowsingEnvironmentDataCollectionWinTest, 263 TEST(SafeBrowsingEnvironmentDataCollectionWinTest,
313 CollectDomainEnrollmentData) { 264 CollectDomainEnrollmentData) {
314 // The test may or may not be running on a domain-enrolled machine, so all we 265 // The test may or may not be running on a domain-enrolled machine, so all we
315 // can check is that some value is filled in. 266 // can check is that some value is filled in.
316 ClientIncidentReport_EnvironmentData_OS os_data; 267 ClientIncidentReport_EnvironmentData_OS os_data;
317 CollectDomainEnrollmentData(&os_data); 268 CollectDomainEnrollmentData(&os_data);
318 EXPECT_TRUE(os_data.has_is_enrolled_to_domain()); 269 EXPECT_TRUE(os_data.has_is_enrolled_to_domain());
319 } 270 }
320 271
321 } // namespace safe_browsing 272 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698