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

Side by Side Diff: chrome_frame/test/chrome_frame_test_utils.cc

Issue 6126002: Remove base/scoped_handle_win.h stub and fix up all callers to use the new location and namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_frame/test/chrome_frame_test_utils.h" 5 #include "chrome_frame/test/chrome_frame_test_utils.h"
6 6
7 #include <atlbase.h> 7 #include <atlbase.h>
8 #include <atlwin.h> 8 #include <atlwin.h>
9 #include <iepmapi.h> 9 #include <iepmapi.h>
10 #include <sddl.h> 10 #include <sddl.h>
11 11
12 #include "app/clipboard/clipboard.h" 12 #include "app/clipboard/clipboard.h"
13 #include "app/clipboard/scoped_clipboard_writer.h" 13 #include "app/clipboard/scoped_clipboard_writer.h"
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/file_path.h" 15 #include "base/file_path.h"
16 #include "base/file_version_info.h" 16 #include "base/file_version_info.h"
17 #include "base/path_service.h" 17 #include "base/path_service.h"
18 #include "base/process_util.h" 18 #include "base/process_util.h"
19 #include "base/scoped_handle.h"
20 #include "base/scoped_ptr.h" 19 #include "base/scoped_ptr.h"
21 #include "base/string_util.h" 20 #include "base/string_util.h"
22 #include "base/stringprintf.h" 21 #include "base/stringprintf.h"
23 #include "base/utf_string_conversions.h" 22 #include "base/utf_string_conversions.h"
24 #include "base/win/registry.h" 23 #include "base/win/registry.h"
24 #include "base/win/scoped_handle.h"
25 #include "base/win/windows_version.h" 25 #include "base/win/windows_version.h"
26 #include "ceee/ie/common/ceee_util.h" 26 #include "ceee/ie/common/ceee_util.h"
27 #include "chrome/common/chrome_switches.h" 27 #include "chrome/common/chrome_switches.h"
28 #include "chrome/common/chrome_paths.h" 28 #include "chrome/common/chrome_paths.h"
29 #include "chrome/common/chrome_paths_internal.h" 29 #include "chrome/common/chrome_paths_internal.h"
30 #include "chrome_frame/utils.h" 30 #include "chrome_frame/utils.h"
31 #include "testing/gtest/include/gtest/gtest.h" 31 #include "testing/gtest/include/gtest/gtest.h"
32 32
33 namespace chrome_frame_test { 33 namespace chrome_frame_test {
34 34
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 // windows on all threads of the process. 88 // windows on all threads of the process.
89 // The return value is the number of visible windows a close request was 89 // The return value is the number of visible windows a close request was
90 // sent to. 90 // sent to.
91 int CloseVisibleWindowsOnAllThreads(HANDLE process) { 91 int CloseVisibleWindowsOnAllThreads(HANDLE process) {
92 DWORD process_id = ::GetProcessId(process); 92 DWORD process_id = ::GetProcessId(process);
93 if (process_id == 0) { 93 if (process_id == 0) {
94 NOTREACHED(); 94 NOTREACHED();
95 return 0; 95 return 0;
96 } 96 }
97 97
98 ScopedHandle snapshot(CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0)); 98 base::win::ScopedHandle snapshot(
99 CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0));
99 if (!snapshot.IsValid()) { 100 if (!snapshot.IsValid()) {
100 NOTREACHED(); 101 NOTREACHED();
101 return 0; 102 return 0;
102 } 103 }
103 104
104 int window_close_attempts = 0; 105 int window_close_attempts = 0;
105 THREADENTRY32 te = { sizeof(THREADENTRY32) }; 106 THREADENTRY32 te = { sizeof(THREADENTRY32) };
106 if (Thread32First(snapshot, &te)) { 107 if (Thread32First(snapshot, &te)) {
107 do { 108 do {
108 if (RTL_CONTAINS_FIELD(&te, te.dwSize, th32OwnerProcessID) && 109 if (RTL_CONTAINS_FIELD(&te, te.dwSize, th32OwnerProcessID) &&
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 DCHECK(!impersonated_); 303 DCHECK(!impersonated_);
303 DCHECK(!IsImpersonated()); 304 DCHECK(!IsImpersonated());
304 HANDLE process_token_handle = NULL; 305 HANDLE process_token_handle = NULL;
305 BOOL ok = ::OpenProcessToken(GetCurrentProcess(), TOKEN_DUPLICATE, 306 BOOL ok = ::OpenProcessToken(GetCurrentProcess(), TOKEN_DUPLICATE,
306 &process_token_handle); 307 &process_token_handle);
307 if (!ok) { 308 if (!ok) {
308 DLOG(ERROR) << "::OpenProcessToken failed: " << GetLastError(); 309 DLOG(ERROR) << "::OpenProcessToken failed: " << GetLastError();
309 return ok; 310 return ok;
310 } 311 }
311 312
312 ScopedHandle process_token(process_token_handle); 313 base::win::ScopedHandle process_token(process_token_handle);
313 // Create impersonation low integrity token. 314 // Create impersonation low integrity token.
314 HANDLE impersonation_token_handle = NULL; 315 HANDLE impersonation_token_handle = NULL;
315 ok = ::DuplicateTokenEx(process_token, 316 ok = ::DuplicateTokenEx(process_token,
316 TOKEN_QUERY | TOKEN_IMPERSONATE | TOKEN_ADJUST_DEFAULT, NULL, 317 TOKEN_QUERY | TOKEN_IMPERSONATE | TOKEN_ADJUST_DEFAULT, NULL,
317 SecurityImpersonation, TokenImpersonation, &impersonation_token_handle); 318 SecurityImpersonation, TokenImpersonation, &impersonation_token_handle);
318 if (!ok) { 319 if (!ok) {
319 DLOG(ERROR) << "::DuplicateTokenEx failed: " << GetLastError(); 320 DLOG(ERROR) << "::DuplicateTokenEx failed: " << GetLastError();
320 return ok; 321 return ok;
321 } 322 }
322 323
323 // TODO(stoyan): sandbox/src/restricted_token_utils.cc has 324 // TODO(stoyan): sandbox/src/restricted_token_utils.cc has
324 // SetTokenIntegrityLevel function already. 325 // SetTokenIntegrityLevel function already.
325 ScopedHandle impersonation_token(impersonation_token_handle); 326 base::win::ScopedHandle impersonation_token(impersonation_token_handle);
326 PSID integrity_sid = NULL; 327 PSID integrity_sid = NULL;
327 TOKEN_MANDATORY_LABEL tml = {0}; 328 TOKEN_MANDATORY_LABEL tml = {0};
328 ok = ::ConvertStringSidToSid(SDDL_ML_LOW, &integrity_sid); 329 ok = ::ConvertStringSidToSid(SDDL_ML_LOW, &integrity_sid);
329 if (!ok) { 330 if (!ok) {
330 DLOG(ERROR) << "::ConvertStringSidToSid failed: " << GetLastError(); 331 DLOG(ERROR) << "::ConvertStringSidToSid failed: " << GetLastError();
331 return ok; 332 return ok;
332 } 333 }
333 334
334 tml.Label.Attributes = SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED; 335 tml.Label.Attributes = SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED;
335 tml.Label.Sid = integrity_sid; 336 tml.Label.Sid = integrity_sid;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 DLOG_IF(ERROR, closed != 0) << "Closed " << closed << " windows forcefully"; 534 DLOG_IF(ERROR, closed != 0) << "Closed " << closed << " windows forcefully";
534 } 535 }
535 536
536 // Attempt to connect to a running crash_service instance. Success occurs if we 537 // Attempt to connect to a running crash_service instance. Success occurs if we
537 // can actually connect to the service's pipe or we receive ERROR_PIPE_BUSY. 538 // can actually connect to the service's pipe or we receive ERROR_PIPE_BUSY.
538 // Waits up to |timeout_ms| for success. |timeout_ms| may be 0, meaning only try 539 // Waits up to |timeout_ms| for success. |timeout_ms| may be 0, meaning only try
539 // once, or negative, meaning wait forever. 540 // once, or negative, meaning wait forever.
540 bool DetectRunningCrashService(int timeout_ms) { 541 bool DetectRunningCrashService(int timeout_ms) {
541 // Wait for the crash_service.exe to be ready for clients. 542 // Wait for the crash_service.exe to be ready for clients.
542 base::Time start = base::Time::Now(); 543 base::Time start = base::Time::Now();
543 ScopedHandle new_pipe; 544 base::win::ScopedHandle new_pipe;
544 545
545 while (true) { 546 while (true) {
546 new_pipe.Set(::CreateFile(kCrashServicePipeName, 547 new_pipe.Set(::CreateFile(kCrashServicePipeName,
547 kCrashServicePipeDesiredAccess, 548 kCrashServicePipeDesiredAccess,
548 0, // dwShareMode 549 0, // dwShareMode
549 NULL, // lpSecurityAttributes 550 NULL, // lpSecurityAttributes
550 OPEN_EXISTING, 551 OPEN_EXISTING,
551 kCrashServicePipeFlagsAndAttributes, 552 kCrashServicePipeFlagsAndAttributes,
552 NULL)); // hTemplateFile 553 NULL)); // hTemplateFile
553 554
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 bool wait) { 668 bool wait) {
668 bool result = true; 669 bool result = true;
669 base::NamedProcessIterator iter(executable_name, NULL); 670 base::NamedProcessIterator iter(executable_name, NULL);
670 while (const base::ProcessEntry* entry = iter.NextProcessEntry()) { 671 while (const base::ProcessEntry* entry = iter.NextProcessEntry()) {
671 result &= base::KillProcessById(entry->pid(), exit_code, wait); 672 result &= base::KillProcessById(entry->pid(), exit_code, wait);
672 } 673 }
673 return result; 674 return result;
674 } 675 }
675 676
676 } // namespace chrome_frame_test 677 } // namespace chrome_frame_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698