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

Side by Side Diff: chrome/browser/component_updater/pepper_flash_component_installer.cc

Issue 2434103005: Do not replace up-to-date System Flash with Component Flash. (Closed)
Patch Set: Through #10 Created 4 years, 2 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
« no previous file with comments | « base/files/file_util_win.cc ('k') | chrome/common/chrome_content_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/component_updater/pepper_flash_component_installer.h" 5 #include "chrome/browser/component_updater/pepper_flash_component_installer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 122
123 if (plugin.path == placeholder_path) { 123 if (plugin.path == placeholder_path) {
124 // This is the Flash placeholder; replace it regardless of version or 124 // This is the Flash placeholder; replace it regardless of version or
125 // other considerations. 125 // other considerations.
126 PluginService::GetInstance()->UnregisterInternalPlugin(plugin.path); 126 PluginService::GetInstance()->UnregisterInternalPlugin(plugin.path);
127 break; 127 break;
128 } 128 }
129 129
130 base::Version registered_version(base::UTF16ToUTF8(plugin.version)); 130 base::Version registered_version(base::UTF16ToUTF8(plugin.version));
131 131
132 // If lower version, never register. 132 // If lower or equal version, never register.
133 if (registered_version.IsValid() && 133 if (registered_version.IsValid() &&
134 version.CompareTo(registered_version) < 0) { 134 version.CompareTo(registered_version) <= 0) {
135 return; 135 return;
136 } 136 }
137 137
138 bool registered_is_debug_system =
139 !system_flash_path.empty() &&
140 base::FilePath::CompareEqualIgnoreCase(plugin.path.value(),
141 system_flash_path.value()) &&
142 chrome::IsSystemFlashScriptDebuggerPresent();
143 bool is_on_network = false;
144 #if defined(OS_WIN)
145 // On Windows, component updated DLLs can't load off network drives.
146 // See crbug.com/572131 for details.
147 is_on_network = base::IsOnNetworkDrive(path);
148 #endif
149 // If equal version, register iff component is not on a network drive,
150 // and the version of flash is not debug system.
151 if (registered_version.IsValid() &&
152 version.CompareTo(registered_version) == 0 &&
153 (is_on_network || registered_is_debug_system)) {
154 return;
155 }
156
157 // If the version is newer, remove the old one first. 138 // If the version is newer, remove the old one first.
158 PluginService::GetInstance()->UnregisterInternalPlugin(plugin.path); 139 PluginService::GetInstance()->UnregisterInternalPlugin(plugin.path);
159 break; 140 break;
160 } 141 }
161 142
162 PluginService::GetInstance()->RegisterInternalPlugin(web_plugin, true); 143 PluginService::GetInstance()->RegisterInternalPlugin(web_plugin, true);
163 PluginService::GetInstance()->RefreshPlugins(); 144 PluginService::GetInstance()->RefreshPlugins();
164 } 145 }
165 146
166 void UpdatePathService(const base::FilePath& path) { 147 void UpdatePathService(const base::FilePath& path) {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 std::unique_ptr<ComponentInstallerTraits> traits( 266 std::unique_ptr<ComponentInstallerTraits> traits(
286 new FlashComponentInstallerTraits); 267 new FlashComponentInstallerTraits);
287 // |cus| will take ownership of |installer| during installer->Register(cus). 268 // |cus| will take ownership of |installer| during installer->Register(cus).
288 DefaultComponentInstaller* installer = 269 DefaultComponentInstaller* installer =
289 new DefaultComponentInstaller(std::move(traits)); 270 new DefaultComponentInstaller(std::move(traits));
290 installer->Register(cus, base::Closure()); 271 installer->Register(cus, base::Closure());
291 #endif // defined(GOOGLE_CHROME_BUILD) 272 #endif // defined(GOOGLE_CHROME_BUILD)
292 } 273 }
293 274
294 } // namespace component_updater 275 } // namespace component_updater
OLDNEW
« no previous file with comments | « base/files/file_util_win.cc ('k') | chrome/common/chrome_content_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698