| Index: chrome/browser/web_applications/web_app_win.cc
|
| diff --git a/chrome/browser/web_applications/web_app_win.cc b/chrome/browser/web_applications/web_app_win.cc
|
| index ff5783bd0f2511eb4c649caa24d495402a266960..9764257510415a22da0902c894dd020cf220aa52 100644
|
| --- a/chrome/browser/web_applications/web_app_win.cc
|
| +++ b/chrome/browser/web_applications/web_app_win.cc
|
| @@ -9,7 +9,6 @@
|
| #include "base/command_line.h"
|
| #include "base/file_util.h"
|
| #include "base/logging.h"
|
| -#include "base/md5.h"
|
| #include "base/path_service.h"
|
| #include "base/stringprintf.h"
|
| #include "base/strings/string_piece.h"
|
| @@ -28,71 +27,6 @@
|
|
|
| namespace {
|
|
|
| -const base::FilePath::CharType kIconChecksumFileExt[] =
|
| - FILE_PATH_LITERAL(".ico.md5");
|
| -
|
| -// Width and height of icons exported to .ico files.
|
| -
|
| -// Calculates checksum of an icon family using MD5.
|
| -// The checksum is derived from all of the icons in the family.
|
| -void GetImageCheckSum(const gfx::ImageFamily& image, base::MD5Digest* digest) {
|
| - DCHECK(digest);
|
| - base::MD5Context md5_context;
|
| - base::MD5Init(&md5_context);
|
| -
|
| - for (gfx::ImageFamily::const_iterator it = image.begin(); it != image.end();
|
| - ++it) {
|
| - SkBitmap bitmap = it->AsBitmap();
|
| -
|
| - SkAutoLockPixels image_lock(bitmap);
|
| - base::StringPiece image_data(
|
| - reinterpret_cast<const char*>(bitmap.getPixels()), bitmap.getSize());
|
| - base::MD5Update(&md5_context, image_data);
|
| - }
|
| -
|
| - base::MD5Final(digest, &md5_context);
|
| -}
|
| -
|
| -// Saves |image| as an |icon_file| with the checksum.
|
| -bool SaveIconWithCheckSum(const base::FilePath& icon_file,
|
| - const gfx::ImageFamily& image) {
|
| - if (!IconUtil::CreateIconFileFromImageFamily(image, icon_file))
|
| - return false;
|
| -
|
| - base::MD5Digest digest;
|
| - GetImageCheckSum(image, &digest);
|
| -
|
| - base::FilePath cheksum_file(icon_file.ReplaceExtension(kIconChecksumFileExt));
|
| - return file_util::WriteFile(cheksum_file,
|
| - reinterpret_cast<const char*>(&digest),
|
| - sizeof(digest)) == sizeof(digest);
|
| -}
|
| -
|
| -// Returns true if |icon_file| is missing or different from |image|.
|
| -bool ShouldUpdateIcon(const base::FilePath& icon_file,
|
| - const gfx::ImageFamily& image) {
|
| - base::FilePath checksum_file(
|
| - icon_file.ReplaceExtension(kIconChecksumFileExt));
|
| -
|
| - // Returns true if icon_file or checksum file is missing.
|
| - if (!file_util::PathExists(icon_file) ||
|
| - !file_util::PathExists(checksum_file))
|
| - return true;
|
| -
|
| - base::MD5Digest persisted_image_checksum;
|
| - if (sizeof(persisted_image_checksum) != file_util::ReadFile(checksum_file,
|
| - reinterpret_cast<char*>(&persisted_image_checksum),
|
| - sizeof(persisted_image_checksum)))
|
| - return true;
|
| -
|
| - base::MD5Digest downloaded_image_checksum;
|
| - GetImageCheckSum(image, &downloaded_image_checksum);
|
| -
|
| - // Update icon if checksums are not equal.
|
| - return memcmp(&persisted_image_checksum, &downloaded_image_checksum,
|
| - sizeof(base::MD5Digest)) != 0;
|
| -}
|
| -
|
| bool ShortcutIsForProfile(const base::FilePath& shortcut_file_name,
|
| const base::FilePath& profile_path) {
|
| string16 cmd_line_string;
|
| @@ -142,8 +76,8 @@ namespace internals {
|
| // is up to date or successfully updated.
|
| bool CheckAndSaveIcon(const base::FilePath& icon_file,
|
| const gfx::ImageFamily& image) {
|
| - if (ShouldUpdateIcon(icon_file, image)) {
|
| - if (SaveIconWithCheckSum(icon_file, image)) {
|
| + if (IconUtil::ShouldUpdateIcon(icon_file, image)) {
|
| + if (IconUtil::SaveIconWithCheckSum(icon_file, image)) {
|
| // Refresh shell's icon cache. This call is quite disruptive as user would
|
| // see explorer rebuilding the icon cache. It would be great that we find
|
| // a better way to achieve this.
|
|
|