OLD | NEW |
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/dom_ui/app_launcher_handler.h" | 5 #include "chrome/browser/dom_ui/app_launcher_handler.h" |
6 | 6 |
7 #include "app/animation.h" | 7 #include "app/animation.h" |
8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 std::string string_value; | 31 std::string string_value; |
32 | 32 |
33 if (list->GetString(index, &string_value)) { | 33 if (list->GetString(index, &string_value)) { |
34 base::StringToInt(string_value, out_int); | 34 base::StringToInt(string_value, out_int); |
35 return true; | 35 return true; |
36 } | 36 } |
37 | 37 |
38 return false; | 38 return false; |
39 } | 39 } |
40 | 40 |
| 41 std::string GetIconURL(Extension* extension, Extension::Icons icon, |
| 42 const std::string& default_val) { |
| 43 ExtensionResource resource = extension->GetIconPath(icon); |
| 44 if (resource.empty()) |
| 45 return default_val; |
| 46 |
| 47 #if defined(OS_POSIX) |
| 48 std::string path = resource.relative_path().value(); |
| 49 #elif defined(OS_WIN) |
| 50 std::string path = WideToUTF8(resource.relative_path().value()); |
| 51 #endif // OS_WIN |
| 52 |
| 53 return extension->GetResourceURL(path).spec(); |
| 54 } |
| 55 |
41 } // namespace | 56 } // namespace |
42 | 57 |
43 AppLauncherHandler::AppLauncherHandler(ExtensionsService* extension_service) | 58 AppLauncherHandler::AppLauncherHandler(ExtensionsService* extension_service) |
44 : extensions_service_(extension_service) { | 59 : extensions_service_(extension_service) { |
45 } | 60 } |
46 | 61 |
47 AppLauncherHandler::~AppLauncherHandler() {} | 62 AppLauncherHandler::~AppLauncherHandler() {} |
48 | 63 |
49 DOMMessageHandler* AppLauncherHandler::Attach(DOMUI* dom_ui) { | 64 DOMMessageHandler* AppLauncherHandler::Attach(DOMUI* dom_ui) { |
50 // TODO(arv): Add initialization code to the Apps store etc. | 65 // TODO(arv): Add initialization code to the Apps store etc. |
(...skipping 27 matching lines...) Expand all Loading... |
78 // static | 93 // static |
79 void AppLauncherHandler::CreateAppInfo(Extension* extension, | 94 void AppLauncherHandler::CreateAppInfo(Extension* extension, |
80 DictionaryValue* value) { | 95 DictionaryValue* value) { |
81 value->Clear(); | 96 value->Clear(); |
82 value->SetString("id", extension->id()); | 97 value->SetString("id", extension->id()); |
83 value->SetString("name", extension->name()); | 98 value->SetString("name", extension->name()); |
84 value->SetString("description", extension->description()); | 99 value->SetString("description", extension->description()); |
85 value->SetString("launch_url", extension->GetFullLaunchURL().spec()); | 100 value->SetString("launch_url", extension->GetFullLaunchURL().spec()); |
86 value->SetString("options_url", extension->options_url().spec()); | 101 value->SetString("options_url", extension->options_url().spec()); |
87 | 102 |
88 FilePath relative_path = | 103 // TODO(aa): Need a better default icon for apps. |
89 extension->GetIconPath(Extension::EXTENSION_ICON_LARGE).relative_path(); | 104 value->SetString("icon_big", GetIconURL( |
90 | 105 extension, Extension::EXTENSION_ICON_LARGE, |
91 #if defined(OS_POSIX) | 106 "chrome://theme/IDR_EXTENSION_DEFAULT_ICON")); |
92 std::string path = relative_path.value(); | 107 value->SetString("icon_small", GetIconURL( |
93 #elif defined(OS_WIN) | 108 extension, Extension::EXTENSION_ICON_BITTY, |
94 std::string path = WideToUTF8(relative_path.value()); | 109 std::string("chrome://favicon/") + extension->GetFullLaunchURL().spec())); |
95 #endif // OS_WIN | |
96 | |
97 GURL icon_url = extension->GetResourceURL(path); | |
98 value->SetString("icon", icon_url.spec()); | |
99 } | 110 } |
100 | 111 |
101 void AppLauncherHandler::HandleGetApps(const ListValue* args) { | 112 void AppLauncherHandler::HandleGetApps(const ListValue* args) { |
102 bool show_debug_link = CommandLine::ForCurrentProcess()->HasSwitch( | 113 bool show_debug_link = CommandLine::ForCurrentProcess()->HasSwitch( |
103 switches::kAppsDebug); | 114 switches::kAppsDebug); |
104 | 115 |
105 DictionaryValue dictionary; | 116 DictionaryValue dictionary; |
106 dictionary.SetBoolean("showDebugLink", show_debug_link); | 117 dictionary.SetBoolean("showDebugLink", show_debug_link); |
107 | 118 |
108 ListValue* list = new ListValue(); | 119 ListValue* list = new ListValue(); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 void AppLauncherHandler::HandleUninstallApp(const ListValue* args) { | 215 void AppLauncherHandler::HandleUninstallApp(const ListValue* args) { |
205 std::string extension_id = WideToUTF8(ExtractStringValue(args)); | 216 std::string extension_id = WideToUTF8(ExtractStringValue(args)); |
206 | 217 |
207 // Make sure that the extension exists. | 218 // Make sure that the extension exists. |
208 Extension* extension = | 219 Extension* extension = |
209 extensions_service_->GetExtensionById(extension_id, false); | 220 extensions_service_->GetExtensionById(extension_id, false); |
210 DCHECK(extension); | 221 DCHECK(extension); |
211 | 222 |
212 extensions_service_->UninstallExtension(extension_id, false); | 223 extensions_service_->UninstallExtension(extension_id, false); |
213 } | 224 } |
OLD | NEW |