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

Side by Side Diff: chrome/browser/web_applications/web_app.cc

Issue 4979003: Implement web app definition parsing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nacl64 build Created 10 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/web_applications/web_app.h" 5 #include "chrome/browser/web_applications/web_app.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <shellapi.h> 8 #include <shellapi.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif // defined(OS_WIN) 10 #endif // defined(OS_WIN)
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/browser_thread.h" 25 #include "chrome/browser/browser_thread.h"
26 #include "chrome/browser/download/download_util.h" 26 #include "chrome/browser/download/download_util.h"
27 #include "chrome/browser/profile.h" 27 #include "chrome/browser/profile.h"
28 #include "chrome/browser/tab_contents/tab_contents.h" 28 #include "chrome/browser/tab_contents/tab_contents.h"
29 #include "chrome/common/chrome_constants.h" 29 #include "chrome/common/chrome_constants.h"
30 #include "chrome/common/chrome_paths.h" 30 #include "chrome/common/chrome_paths.h"
31 #include "chrome/common/chrome_plugin_util.h" 31 #include "chrome/common/chrome_plugin_util.h"
32 #include "chrome/common/notification_registrar.h" 32 #include "chrome/common/notification_registrar.h"
33 #include "chrome/common/notification_service.h" 33 #include "chrome/common/notification_service.h"
34 #include "chrome/common/url_constants.h" 34 #include "chrome/common/url_constants.h"
35 #include "webkit/glue/dom_operations.h" 35 #include "chrome/common/web_apps.h"
36 36
37 #if defined(OS_LINUX) 37 #if defined(OS_LINUX)
38 #include "base/environment.h" 38 #include "base/environment.h"
39 #endif // defined(OS_LINUX) 39 #endif // defined(OS_LINUX)
40 40
41 #if defined(OS_WIN) 41 #if defined(OS_WIN)
42 #include "base/win_util.h" 42 #include "base/win_util.h"
43 #include "gfx/icon_util.h" 43 #include "gfx/icon_util.h"
44 #endif // defined(OS_WIN) 44 #endif // defined(OS_WIN)
45 45
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 108
109 // Returns data directory for given web app url 109 // Returns data directory for given web app url
110 FilePath GetWebAppDataDirectory(const FilePath& root_dir, 110 FilePath GetWebAppDataDirectory(const FilePath& root_dir,
111 const GURL& url) { 111 const GURL& url) {
112 return root_dir.Append(GetWebAppDir(url)); 112 return root_dir.Append(GetWebAppDir(url));
113 } 113 }
114 114
115 #if defined(TOOLKIT_VIEWS) 115 #if defined(TOOLKIT_VIEWS)
116 // Predicator for sorting images from largest to smallest. 116 // Predicator for sorting images from largest to smallest.
117 bool IconPrecedes( 117 bool IconPrecedes(const WebApplicationInfo::IconInfo& left,
118 const webkit_glue::WebApplicationInfo::IconInfo& left, 118 const WebApplicationInfo::IconInfo& right) {
119 const webkit_glue::WebApplicationInfo::IconInfo& right) {
120 return left.width < right.width; 119 return left.width < right.width;
121 } 120 }
122 #endif 121 #endif
123 122
124 #if defined(OS_WIN) 123 #if defined(OS_WIN)
125 // Calculates image checksum using MD5. 124 // Calculates image checksum using MD5.
126 void GetImageCheckSum(const SkBitmap& image, MD5Digest* digest) { 125 void GetImageCheckSum(const SkBitmap& image, MD5Digest* digest) {
127 DCHECK(digest); 126 DCHECK(digest);
128 127
129 SkAutoLockPixels image_lock(image); 128 SkAutoLockPixels image_lock(image);
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 } 715 }
717 716
718 return false; 717 return false;
719 } 718 }
720 719
721 FilePath GetDataDir(const FilePath& profile_path) { 720 FilePath GetDataDir(const FilePath& profile_path) {
722 return profile_path.Append(chrome::kWebAppDirname); 721 return profile_path.Append(chrome::kWebAppDirname);
723 } 722 }
724 723
725 #if defined(TOOLKIT_VIEWS) 724 #if defined(TOOLKIT_VIEWS)
726 void GetIconsInfo(const webkit_glue::WebApplicationInfo& app_info, 725 void GetIconsInfo(const WebApplicationInfo& app_info,
727 IconInfoList* icons) { 726 IconInfoList* icons) {
728 DCHECK(icons); 727 DCHECK(icons);
729 728
730 icons->clear(); 729 icons->clear();
731 for (size_t i = 0; i < app_info.icons.size(); ++i) { 730 for (size_t i = 0; i < app_info.icons.size(); ++i) {
732 // We only take square shaped icons (i.e. width == height). 731 // We only take square shaped icons (i.e. width == height).
733 if (app_info.icons[i].width == app_info.icons[i].height) { 732 if (app_info.icons[i].width == app_info.icons[i].height) {
734 icons->push_back(app_info.icons[i]); 733 icons->push_back(app_info.icons[i]);
735 } 734 }
736 } 735 }
737 736
738 std::sort(icons->begin(), icons->end(), &IconPrecedes); 737 std::sort(icons->begin(), icons->end(), &IconPrecedes);
739 } 738 }
740 #endif 739 #endif
741 740
742 void GetShortcutInfoForTab(TabContents* tab_contents, 741 void GetShortcutInfoForTab(TabContents* tab_contents,
743 ShellIntegration::ShortcutInfo* info) { 742 ShellIntegration::ShortcutInfo* info) {
744 DCHECK(info); // Must provide a valid info. 743 DCHECK(info); // Must provide a valid info.
745 744
746 const webkit_glue::WebApplicationInfo& app_info = 745 const WebApplicationInfo& app_info = tab_contents->web_app_info();
747 tab_contents->web_app_info();
748 746
749 info->url = app_info.app_url.is_empty() ? tab_contents->GetURL() : 747 info->url = app_info.app_url.is_empty() ? tab_contents->GetURL() :
750 app_info.app_url; 748 app_info.app_url;
751 info->title = app_info.title.empty() ? 749 info->title = app_info.title.empty() ?
752 (tab_contents->GetTitle().empty() ? UTF8ToUTF16(info->url.spec()) : 750 (tab_contents->GetTitle().empty() ? UTF8ToUTF16(info->url.spec()) :
753 tab_contents->GetTitle()) : 751 tab_contents->GetTitle()) :
754 app_info.title; 752 app_info.title;
755 info->description = app_info.description; 753 info->description = app_info.description;
756 info->favicon = tab_contents->GetFavIcon(); 754 info->favicon = tab_contents->GetFavIcon();
757 } 755 }
758 756
759 void UpdateShortcutForTabContents(TabContents* tab_contents) { 757 void UpdateShortcutForTabContents(TabContents* tab_contents) {
760 #if defined(OS_WIN) 758 #if defined(OS_WIN)
761 // UpdateShortcutWorker will delete itself when it's done. 759 // UpdateShortcutWorker will delete itself when it's done.
762 UpdateShortcutWorker* worker = new UpdateShortcutWorker(tab_contents); 760 UpdateShortcutWorker* worker = new UpdateShortcutWorker(tab_contents);
763 worker->Run(); 761 worker->Run();
764 #endif // defined(OS_WIN) 762 #endif // defined(OS_WIN)
765 } 763 }
766 764
767 }; // namespace web_app 765 }; // namespace web_app
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698