| 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 "chrome_frame/utils.h" | 5 #include "chrome_frame/utils.h" |
| 6 | 6 |
| 7 #include <atlsafe.h> | 7 #include <atlsafe.h> |
| 8 #include <atlsecurity.h> | 8 #include <atlsecurity.h> |
| 9 #include <htiframe.h> | 9 #include <htiframe.h> |
| 10 #include <mshtml.h> | 10 #include <mshtml.h> |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 DCHECK_LE(renderer_type, RENDERER_TYPE_OTHER); | 346 DCHECK_LE(renderer_type, RENDERER_TYPE_OTHER); |
| 347 return renderer_type >= RENDERER_TYPE_CHROME_MIN && | 347 return renderer_type >= RENDERER_TYPE_CHROME_MIN && |
| 348 renderer_type <= RENDERER_TYPE_CHROME_MAX; | 348 renderer_type <= RENDERER_TYPE_CHROME_MAX; |
| 349 } | 349 } |
| 350 | 350 |
| 351 namespace { | 351 namespace { |
| 352 const char kIEImageName[] = "iexplore.exe"; | 352 const char kIEImageName[] = "iexplore.exe"; |
| 353 } // namespace | 353 } // namespace |
| 354 | 354 |
| 355 std::wstring GetHostProcessName(bool include_extension) { | 355 std::wstring GetHostProcessName(bool include_extension) { |
| 356 FilePath exe; | 356 base::FilePath exe; |
| 357 if (PathService::Get(base::FILE_EXE, &exe)) | 357 if (PathService::Get(base::FILE_EXE, &exe)) |
| 358 exe = exe.BaseName(); | 358 exe = exe.BaseName(); |
| 359 if (!include_extension) { | 359 if (!include_extension) { |
| 360 exe = exe.RemoveExtension(); | 360 exe = exe.RemoveExtension(); |
| 361 } | 361 } |
| 362 return exe.value(); | 362 return exe.value(); |
| 363 } | 363 } |
| 364 | 364 |
| 365 BrowserType GetBrowserType() { | 365 BrowserType GetBrowserType() { |
| 366 static BrowserType browser_type = BROWSER_INVALID; | 366 static BrowserType browser_type = BROWSER_INVALID; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 383 return browser_type; | 383 return browser_type; |
| 384 } | 384 } |
| 385 | 385 |
| 386 uint32 GetIEMajorVersion() { | 386 uint32 GetIEMajorVersion() { |
| 387 static uint32 ie_major_version = UINT_MAX; | 387 static uint32 ie_major_version = UINT_MAX; |
| 388 | 388 |
| 389 if (ie_major_version == UINT_MAX) { | 389 if (ie_major_version == UINT_MAX) { |
| 390 wchar_t exe_path[MAX_PATH]; | 390 wchar_t exe_path[MAX_PATH]; |
| 391 HMODULE mod = GetModuleHandle(NULL); | 391 HMODULE mod = GetModuleHandle(NULL); |
| 392 GetModuleFileName(mod, exe_path, arraysize(exe_path) - 1); | 392 GetModuleFileName(mod, exe_path, arraysize(exe_path) - 1); |
| 393 std::wstring exe_name = FilePath(exe_path).BaseName().value(); | 393 std::wstring exe_name = base::FilePath(exe_path).BaseName().value(); |
| 394 if (!LowerCaseEqualsASCII(exe_name, kIEImageName)) { | 394 if (!LowerCaseEqualsASCII(exe_name, kIEImageName)) { |
| 395 ie_major_version = 0; | 395 ie_major_version = 0; |
| 396 } else { | 396 } else { |
| 397 uint32 high = 0; | 397 uint32 high = 0; |
| 398 uint32 low = 0; | 398 uint32 low = 0; |
| 399 if (GetModuleVersion(mod, &high, &low)) { | 399 if (GetModuleVersion(mod, &high, &low)) { |
| 400 ie_major_version = HIWORD(high); | 400 ie_major_version = HIWORD(high); |
| 401 } else { | 401 } else { |
| 402 ie_major_version = 0; | 402 ie_major_version = 0; |
| 403 } | 403 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 430 break; | 430 break; |
| 431 default: | 431 default: |
| 432 ie_version = (major_version >= 10) ? IE_10 : IE_UNSUPPORTED; | 432 ie_version = (major_version >= 10) ? IE_10 : IE_UNSUPPORTED; |
| 433 break; | 433 break; |
| 434 } | 434 } |
| 435 } | 435 } |
| 436 | 436 |
| 437 return ie_version; | 437 return ie_version; |
| 438 } | 438 } |
| 439 | 439 |
| 440 FilePath GetIETemporaryFilesFolder() { | 440 base::FilePath GetIETemporaryFilesFolder() { |
| 441 LPITEMIDLIST tif_pidl = NULL; | 441 LPITEMIDLIST tif_pidl = NULL; |
| 442 HRESULT hr = SHGetFolderLocation(NULL, CSIDL_INTERNET_CACHE, NULL, | 442 HRESULT hr = SHGetFolderLocation(NULL, CSIDL_INTERNET_CACHE, NULL, |
| 443 SHGFP_TYPE_CURRENT, &tif_pidl); | 443 SHGFP_TYPE_CURRENT, &tif_pidl); |
| 444 if (SUCCEEDED(hr) && tif_pidl) { | 444 if (SUCCEEDED(hr) && tif_pidl) { |
| 445 base::win::ScopedComPtr<IShellFolder> parent_folder; | 445 base::win::ScopedComPtr<IShellFolder> parent_folder; |
| 446 LPITEMIDLIST relative_pidl = NULL; | 446 LPITEMIDLIST relative_pidl = NULL; |
| 447 hr = SHBindToParent(tif_pidl, IID_IShellFolder, | 447 hr = SHBindToParent(tif_pidl, IID_IShellFolder, |
| 448 reinterpret_cast<void**>(parent_folder.Receive()), | 448 reinterpret_cast<void**>(parent_folder.Receive()), |
| 449 const_cast<LPCITEMIDLIST*>(&relative_pidl)); | 449 const_cast<LPCITEMIDLIST*>(&relative_pidl)); |
| 450 if (SUCCEEDED(hr) && relative_pidl) { | 450 if (SUCCEEDED(hr) && relative_pidl) { |
| 451 STRRET path = {0}; | 451 STRRET path = {0}; |
| 452 hr = parent_folder->GetDisplayNameOf(relative_pidl, | 452 hr = parent_folder->GetDisplayNameOf(relative_pidl, |
| 453 SHGDN_NORMAL | SHGDN_FORPARSING, | 453 SHGDN_NORMAL | SHGDN_FORPARSING, |
| 454 &path); | 454 &path); |
| 455 DCHECK(SUCCEEDED(hr)); | 455 DCHECK(SUCCEEDED(hr)); |
| 456 base::win::ScopedBstr temp_internet_files_bstr; | 456 base::win::ScopedBstr temp_internet_files_bstr; |
| 457 StrRetToBSTR(&path, relative_pidl, temp_internet_files_bstr.Receive()); | 457 StrRetToBSTR(&path, relative_pidl, temp_internet_files_bstr.Receive()); |
| 458 FilePath temp_internet_files(static_cast<BSTR>(temp_internet_files_bstr)); | 458 base::FilePath temp_internet_files( |
| 459 static_cast<BSTR>(temp_internet_files_bstr)); |
| 459 ILFree(tif_pidl); | 460 ILFree(tif_pidl); |
| 460 return temp_internet_files; | 461 return temp_internet_files; |
| 461 } else { | 462 } else { |
| 462 NOTREACHED() << "SHBindToParent failed with Error:" << hr; | 463 NOTREACHED() << "SHBindToParent failed with Error:" << hr; |
| 463 ILFree(tif_pidl); | 464 ILFree(tif_pidl); |
| 464 } | 465 } |
| 465 } else { | 466 } else { |
| 466 NOTREACHED() << "SHGetFolderLocation for internet cache failed. Error:" | 467 NOTREACHED() << "SHGetFolderLocation for internet cache failed. Error:" |
| 467 << hr; | 468 << hr; |
| 468 } | 469 } |
| 469 // As a last ditch effort we use the SHGetFolderPath function to retrieve the | 470 // As a last ditch effort we use the SHGetFolderPath function to retrieve the |
| 470 // path. This function has a limitation of MAX_PATH. | 471 // path. This function has a limitation of MAX_PATH. |
| 471 wchar_t path[MAX_PATH + 1] = {0}; | 472 wchar_t path[MAX_PATH + 1] = {0}; |
| 472 hr = SHGetFolderPath(NULL, CSIDL_INTERNET_CACHE, NULL, SHGFP_TYPE_CURRENT, | 473 hr = SHGetFolderPath(NULL, CSIDL_INTERNET_CACHE, NULL, SHGFP_TYPE_CURRENT, |
| 473 path); | 474 path); |
| 474 if (SUCCEEDED(hr)) { | 475 if (SUCCEEDED(hr)) { |
| 475 return FilePath(path); | 476 return base::FilePath(path); |
| 476 } else { | 477 } else { |
| 477 NOTREACHED() << "SHGetFolderPath for internet cache failed. Error:" | 478 NOTREACHED() << "SHGetFolderPath for internet cache failed. Error:" |
| 478 << hr; | 479 << hr; |
| 479 } | 480 } |
| 480 return FilePath(); | 481 return base::FilePath(); |
| 481 } | 482 } |
| 482 | 483 |
| 483 bool IsIEInPrivate() { | 484 bool IsIEInPrivate() { |
| 484 typedef BOOL (WINAPI* IEIsInPrivateBrowsingPtr)(); | 485 typedef BOOL (WINAPI* IEIsInPrivateBrowsingPtr)(); |
| 485 bool incognito_mode = false; | 486 bool incognito_mode = false; |
| 486 HMODULE h = GetModuleHandle(L"ieframe.dll"); | 487 HMODULE h = GetModuleHandle(L"ieframe.dll"); |
| 487 if (h) { | 488 if (h) { |
| 488 IEIsInPrivateBrowsingPtr IsInPrivate = | 489 IEIsInPrivateBrowsingPtr IsInPrivate = |
| 489 reinterpret_cast<IEIsInPrivateBrowsingPtr>(GetProcAddress(h, | 490 reinterpret_cast<IEIsInPrivateBrowsingPtr>(GetProcAddress(h, |
| 490 "IEIsInPrivateBrowsing")); | 491 "IEIsInPrivateBrowsing")); |
| (...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1666 &connections, connection_value_size); | 1667 &connections, connection_value_size); |
| 1667 if (!ret) { | 1668 if (!ret) { |
| 1668 return false; | 1669 return false; |
| 1669 } | 1670 } |
| 1670 } | 1671 } |
| 1671 wininet_connection_count_updated = true; | 1672 wininet_connection_count_updated = true; |
| 1672 return true; | 1673 return true; |
| 1673 } | 1674 } |
| 1674 | 1675 |
| 1675 void GetChromeFrameProfilePath(const string16& profile_name, | 1676 void GetChromeFrameProfilePath(const string16& profile_name, |
| 1676 FilePath* profile_path) { | 1677 base::FilePath* profile_path) { |
| 1677 chrome::GetChromeFrameUserDataDirectory(profile_path); | 1678 chrome::GetChromeFrameUserDataDirectory(profile_path); |
| 1678 *profile_path = profile_path->Append(profile_name); | 1679 *profile_path = profile_path->Append(profile_name); |
| 1679 DVLOG(1) << __FUNCTION__ << ": " << profile_path->value(); | 1680 DVLOG(1) << __FUNCTION__ << ": " << profile_path->value(); |
| 1680 } | 1681 } |
| OLD | NEW |