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 <Cocoa/Cocoa.h> | 5 #include <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "chrome/utility/importer/safari_importer.h" | 7 #include "chrome/utility/importer/safari_importer.h" |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <vector> | 10 #include <vector> |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 } // namespace | 42 } // namespace |
43 | 43 |
44 SafariImporter::SafariImporter(const base::FilePath& library_dir) | 44 SafariImporter::SafariImporter(const base::FilePath& library_dir) |
45 : library_dir_(library_dir) { | 45 : library_dir_(library_dir) { |
46 } | 46 } |
47 | 47 |
48 SafariImporter::~SafariImporter() { | 48 SafariImporter::~SafariImporter() { |
49 } | 49 } |
50 | 50 |
51 // static | |
52 bool SafariImporter::CanImport(const base::FilePath& library_dir, | |
53 uint16* services_supported) { | |
54 DCHECK(services_supported); | |
55 *services_supported = importer::NONE; | |
56 | |
57 // Import features are toggled by the following: | |
58 // bookmarks import: existence of ~/Library/Safari/Bookmarks.plist file. | |
59 // history import: existence of ~/Library/Safari/History.plist file. | |
60 base::FilePath safari_dir = library_dir.Append("Safari"); | |
61 base::FilePath bookmarks_path = safari_dir.Append("Bookmarks.plist"); | |
62 base::FilePath history_path = safari_dir.Append("History.plist"); | |
63 | |
64 if (base::PathExists(bookmarks_path)) | |
65 *services_supported |= importer::FAVORITES; | |
66 if (base::PathExists(history_path)) | |
67 *services_supported |= importer::HISTORY; | |
68 | |
69 return *services_supported != importer::NONE; | |
70 } | |
71 | |
72 void SafariImporter::StartImport(const importer::SourceProfile& source_profile, | 51 void SafariImporter::StartImport(const importer::SourceProfile& source_profile, |
73 uint16 items, | 52 uint16 items, |
74 ImporterBridge* bridge) { | 53 ImporterBridge* bridge) { |
75 bridge_ = bridge; | 54 bridge_ = bridge; |
76 // The order here is important! | 55 // The order here is important! |
77 bridge_->NotifyStarted(); | 56 bridge_->NotifyStarted(); |
78 | 57 |
79 // In keeping with import on other platforms (and for other browsers), we | 58 // In keeping with import on other platforms (and for other browsers), we |
80 // don't import the home page (since it may lead to a useless homepage); see | 59 // don't import the home page (since it may lead to a useless homepage); see |
81 // crbug.com/25603. | 60 // crbug.com/25603. |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 if (!last_visit_str) | 369 if (!last_visit_str) |
391 continue; | 370 continue; |
392 | 371 |
393 // Convert Safari's last visit time to Unix Epoch time. | 372 // Convert Safari's last visit time to Unix Epoch time. |
394 double seconds_since_unix_epoch = HistoryTimeToEpochTime(last_visit_str); | 373 double seconds_since_unix_epoch = HistoryTimeToEpochTime(last_visit_str); |
395 row.last_visit = base::Time::FromDoubleT(seconds_since_unix_epoch); | 374 row.last_visit = base::Time::FromDoubleT(seconds_since_unix_epoch); |
396 | 375 |
397 history_items->push_back(row); | 376 history_items->push_back(row); |
398 } | 377 } |
399 } | 378 } |
OLD | NEW |