OLD | NEW |
1 // Copyright (c) 2011 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/browser/importer/ie_importer.h" | 5 #include "chrome/browser/importer/ie_importer.h" |
6 | 6 |
7 #include <ole2.h> | 7 #include <ole2.h> |
8 #include <intshcut.h> | 8 #include <intshcut.h> |
9 #include <pstore.h> | 9 #include <pstore.h> |
10 #include <shlobj.h> | 10 #include <shlobj.h> |
11 #include <urlhist.h> | 11 #include <urlhist.h> |
12 | 12 |
13 #include <algorithm> | 13 #include <algorithm> |
14 #include <map> | 14 #include <map> |
15 #include <string> | 15 #include <string> |
16 #include <vector> | 16 #include <vector> |
17 | 17 |
| 18 #include "app/win/scoped_co_mem.h" |
| 19 #include "app/win/scoped_com_initializer.h" |
18 #include "base/file_path.h" | 20 #include "base/file_path.h" |
19 #include "base/file_util.h" | 21 #include "base/file_util.h" |
20 #include "base/string_split.h" | 22 #include "base/string_split.h" |
21 #include "base/string_util.h" | 23 #include "base/string_util.h" |
22 #include "base/time.h" | 24 #include "base/time.h" |
23 #include "base/utf_string_conversions.h" | 25 #include "base/utf_string_conversions.h" |
24 #include "base/win/registry.h" | 26 #include "base/win/registry.h" |
25 #include "base/win/scoped_com_initializer.h" | |
26 #include "base/win/scoped_comptr.h" | 27 #include "base/win/scoped_comptr.h" |
27 #include "base/win/scoped_handle.h" | 28 #include "base/win/scoped_handle.h" |
28 #include "base/win/windows_version.h" | 29 #include "base/win/windows_version.h" |
29 #include "chrome/browser/importer/importer_bridge.h" | 30 #include "chrome/browser/importer/importer_bridge.h" |
30 #include "chrome/browser/importer/importer_data_types.h" | 31 #include "chrome/browser/importer/importer_data_types.h" |
31 #include "chrome/browser/password_manager/ie7_password.h" | 32 #include "chrome/browser/password_manager/ie7_password.h" |
32 #include "chrome/browser/search_engines/template_url.h" | 33 #include "chrome/browser/search_engines/template_url.h" |
| 34 #include "chrome/browser/search_engines/template_url_service.h" |
33 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" | 35 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
34 #include "chrome/browser/search_engines/template_url_service.h" | |
35 #include "chrome/common/scoped_co_mem.h" | |
36 #include "chrome/common/time_format.h" | 36 #include "chrome/common/time_format.h" |
37 #include "chrome/common/url_constants.h" | 37 #include "chrome/common/url_constants.h" |
38 #include "googleurl/src/gurl.h" | 38 #include "googleurl/src/gurl.h" |
39 #include "grit/generated_resources.h" | 39 #include "grit/generated_resources.h" |
40 #include "ui/base/l10n/l10n_util.h" | 40 #include "ui/base/l10n/l10n_util.h" |
41 #include "webkit/glue/password_form.h" | 41 #include "webkit/glue/password_form.h" |
42 | 42 |
43 namespace { | 43 namespace { |
44 | 44 |
45 // A struct that hosts the information of AutoComplete data in PStore. | 45 // A struct that hosts the information of AutoComplete data in PStore. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 | 82 |
83 void IEImporter::StartImport(const importer::SourceProfile& source_profile, | 83 void IEImporter::StartImport(const importer::SourceProfile& source_profile, |
84 uint16 items, | 84 uint16 items, |
85 ImporterBridge* bridge) { | 85 ImporterBridge* bridge) { |
86 bridge_ = bridge; | 86 bridge_ = bridge; |
87 source_path_ = source_profile.source_path; | 87 source_path_ = source_profile.source_path; |
88 | 88 |
89 bridge_->NotifyStarted(); | 89 bridge_->NotifyStarted(); |
90 | 90 |
91 // Some IE settings (such as Protected Storage) are obtained via COM APIs. | 91 // Some IE settings (such as Protected Storage) are obtained via COM APIs. |
92 base::win::ScopedCOMInitializer com_initializer; | 92 app::win::ScopedCOMInitializer com_initializer; |
93 | 93 |
94 if ((items & importer::HOME_PAGE) && !cancelled()) | 94 if ((items & importer::HOME_PAGE) && !cancelled()) |
95 ImportHomepage(); // Doesn't have a UI item. | 95 ImportHomepage(); // Doesn't have a UI item. |
96 // The order here is important! | 96 // The order here is important! |
97 if ((items & importer::HISTORY) && !cancelled()) { | 97 if ((items & importer::HISTORY) && !cancelled()) { |
98 bridge_->NotifyItemStarted(importer::HISTORY); | 98 bridge_->NotifyItemStarted(importer::HISTORY); |
99 ImportHistory(); | 99 ImportHistory(); |
100 bridge_->NotifyItemEnded(importer::HISTORY); | 100 bridge_->NotifyItemEnded(importer::HISTORY); |
101 } | 101 } |
102 if ((items & importer::FAVORITES) && !cancelled()) { | 102 if ((items & importer::FAVORITES) && !cancelled()) { |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 LONG result = keyDefault.ReadValue(kIEDefaultHomepage, &default_homepage_url); | 456 LONG result = keyDefault.ReadValue(kIEDefaultHomepage, &default_homepage_url); |
457 if (result == ERROR_SUCCESS && !default_homepage_url.empty()) { | 457 if (result == ERROR_SUCCESS && !default_homepage_url.empty()) { |
458 if (homepage.spec() == GURL(default_homepage_url).spec()) | 458 if (homepage.spec() == GURL(default_homepage_url).spec()) |
459 return; | 459 return; |
460 } | 460 } |
461 | 461 |
462 bridge_->AddHomePage(homepage); | 462 bridge_->AddHomePage(homepage); |
463 } | 463 } |
464 | 464 |
465 std::wstring IEImporter::ResolveInternetShortcut(const std::wstring& file) { | 465 std::wstring IEImporter::ResolveInternetShortcut(const std::wstring& file) { |
466 chrome::common::ScopedCoMem<wchar_t> url; | 466 app::win::ScopedCoMem<wchar_t> url; |
467 base::win::ScopedComPtr<IUniformResourceLocator> url_locator; | 467 base::win::ScopedComPtr<IUniformResourceLocator> url_locator; |
468 HRESULT result = url_locator.CreateInstance(CLSID_InternetShortcut, NULL, | 468 HRESULT result = url_locator.CreateInstance(CLSID_InternetShortcut, NULL, |
469 CLSCTX_INPROC_SERVER); | 469 CLSCTX_INPROC_SERVER); |
470 if (FAILED(result)) | 470 if (FAILED(result)) |
471 return std::wstring(); | 471 return std::wstring(); |
472 | 472 |
473 base::win::ScopedComPtr<IPersistFile> persist_file; | 473 base::win::ScopedComPtr<IPersistFile> persist_file; |
474 result = persist_file.QueryFrom(url_locator); | 474 result = persist_file.QueryFrom(url_locator); |
475 if (FAILED(result)) | 475 if (FAILED(result)) |
476 return std::wstring(); | 476 return std::wstring(); |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 if (version < 0) { | 588 if (version < 0) { |
589 wchar_t buffer[128]; | 589 wchar_t buffer[128]; |
590 DWORD buffer_length = sizeof(buffer); | 590 DWORD buffer_length = sizeof(buffer); |
591 base::win::RegKey reg_key(HKEY_LOCAL_MACHINE, | 591 base::win::RegKey reg_key(HKEY_LOCAL_MACHINE, |
592 L"Software\\Microsoft\\Internet Explorer", KEY_READ); | 592 L"Software\\Microsoft\\Internet Explorer", KEY_READ); |
593 LONG result = reg_key.ReadValue(L"Version", buffer, &buffer_length, NULL); | 593 LONG result = reg_key.ReadValue(L"Version", buffer, &buffer_length, NULL); |
594 version = ((result == ERROR_SUCCESS)? _wtoi(buffer) : 0); | 594 version = ((result == ERROR_SUCCESS)? _wtoi(buffer) : 0); |
595 } | 595 } |
596 return version; | 596 return version; |
597 } | 597 } |
OLD | NEW |