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/extensions/crx_installer.h" | 5 #include "chrome/browser/extensions/crx_installer.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
106 std::set<std::string>& ids = g_whitelisted_install_data.Get().ids; | 106 std::set<std::string>& ids = g_whitelisted_install_data.Get().ids; |
107 if (ContainsKey(ids, id)) { | 107 if (ContainsKey(ids, id)) { |
108 ids.erase(id); | 108 ids.erase(id); |
109 return true; | 109 return true; |
110 } | 110 } |
111 return false; | 111 return false; |
112 } | 112 } |
113 | 113 |
114 CrxInstaller::CrxInstaller(base::WeakPtr<ExtensionService> frontend_weak, | 114 CrxInstaller::CrxInstaller(base::WeakPtr<ExtensionService> frontend_weak, |
115 ExtensionInstallUI* client) | 115 ExtensionInstallUI* client) |
116 : install_directory_(frontend_weak->install_directory()), | 116 : install_source_(Extension::INTERNAL), |
117 install_source_(Extension::INTERNAL), | 117 extensions_enabled_(false), // Will be set again in body of this method. |
118 extensions_enabled_(frontend_weak->extensions_enabled()), | |
119 delete_source_(false), | 118 delete_source_(false), |
120 is_gallery_install_(false), | 119 is_gallery_install_(false), |
121 create_app_shortcut_(false), | 120 create_app_shortcut_(false), |
122 frontend_weak_(frontend_weak), | 121 frontend_weak_(frontend_weak), |
123 client_(client), | 122 client_(client), |
124 apps_require_extension_mime_type_(false), | 123 apps_require_extension_mime_type_(false), |
125 allow_silent_install_(false), | 124 allow_silent_install_(false), |
126 install_cause_(extension_misc::INSTALL_CAUSE_UNSET) { | 125 install_cause_(extension_misc::INSTALL_CAUSE_UNSET) { |
126 | |
127 // |frontend_weak| can be NULL at this point in unit tests. | |
Matt Perry
2011/05/31 21:34:25
Can we instead pass in a mock ExtensionService in
Sam Kerner (Chrome)
2011/05/31 23:16:15
There is ExtensionServiceInterface, which allows e
Matt Perry
2011/05/31 23:41:38
But I'm confused.. The rest of the code does not N
Sam Kerner (Chrome)
2011/06/01 00:15:11
Not sure what you mean: There are checks for fron
Matt Perry
2011/06/01 00:20:20
Ah, of course, sorry. That makes sense.
| |
128 if (!frontend_weak.get()) | |
129 return; | |
130 | |
131 install_directory_ = frontend_weak->install_directory(); | |
132 extensions_enabled_ = frontend_weak->extensions_enabled(); | |
127 } | 133 } |
128 | 134 |
129 CrxInstaller::~CrxInstaller() { | 135 CrxInstaller::~CrxInstaller() { |
130 // Delete the temp directory and crx file as necessary. Note that the | 136 // Delete the temp directory and crx file as necessary. Note that the |
131 // destructor might be called on any thread, so we post a task to the file | 137 // destructor might be called on any thread, so we post a task to the file |
132 // thread to make sure the delete happens there. | 138 // thread to make sure the delete happens there. |
133 if (!temp_dir_.value().empty()) { | 139 if (!temp_dir_.value().empty()) { |
134 if (!BrowserThread::PostTask( | 140 if (!BrowserThread::PostTask( |
135 BrowserThread::FILE, FROM_HERE, | 141 BrowserThread::FILE, FROM_HERE, |
136 NewRunnableFunction( | 142 NewRunnableFunction( |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
560 // Some users (such as the download shelf) need to know when a | 566 // Some users (such as the download shelf) need to know when a |
561 // CRXInstaller is done. Listening for the EXTENSION_* events | 567 // CRXInstaller is done. Listening for the EXTENSION_* events |
562 // is problematic because they don't know anything about the | 568 // is problematic because they don't know anything about the |
563 // extension before it is unpacked, so they can not filter based | 569 // extension before it is unpacked, so they can not filter based |
564 // on the extension. | 570 // on the extension. |
565 NotificationService::current()->Notify( | 571 NotificationService::current()->Notify( |
566 NotificationType::CRX_INSTALLER_DONE, | 572 NotificationType::CRX_INSTALLER_DONE, |
567 Source<CrxInstaller>(this), | 573 Source<CrxInstaller>(this), |
568 NotificationService::NoDetails()); | 574 NotificationService::NoDetails()); |
569 } | 575 } |
OLD | NEW |