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

Unified Diff: chrome/browser/ui/webui/options/font_settings_handler.cc

Issue 33753004: Add link to the Advanced Font Settings extension in Font Settings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm uneeded include Created 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options/font_settings_handler.cc
diff --git a/chrome/browser/ui/webui/options/font_settings_handler.cc b/chrome/browser/ui/webui/options/font_settings_handler.cc
index 23f7d6a2977811e495986b13093fcb8874cb8cb6..5563c8ede5a5ede3943dc9839a3af9f1e912cd1e 100644
--- a/chrome/browser/ui/webui/options/font_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/font_settings_handler.cc
@@ -13,15 +13,22 @@
#include "base/prefs/pref_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/character_encoding.h"
#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_system.h"
+#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/webui/options/font_settings_utils.h"
+#include "chrome/common/extensions/extension.h"
#include "chrome/common/pref_names.h"
#include "content/public/browser/font_list_async.h"
#include "content/public/browser/notification_details.h"
+#include "content/public/browser/notification_service.h"
#include "content/public/browser/web_ui.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
@@ -47,6 +54,9 @@ std::string MaybeGetLocalizedFontName(const std::string& font_name) {
#endif
}
+const char kAdvancedFontSettingsExtensionId[] =
+ "caclkomlalccbpcdllchkeecicepbmbm";
+
} // namespace
@@ -81,6 +91,8 @@ void FontSettingsHandler::GetLocalizedValues(
IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_HUGE },
{ "fontSettingsLoremIpsum",
IDS_FONT_LANGUAGE_SETTING_LOREM_IPSUM },
+ { "advancedFontSettingsOptions",
+ IDS_FONT_LANGUAGE_SETTING_ADVANCED_FONT_SETTINGS_OPTIONS }
};
RegisterStrings(localized_strings, resources, arraysize(resources));
@@ -89,6 +101,21 @@ void FontSettingsHandler::GetLocalizedValues(
localized_strings->SetString("fontSettingsPlaceholder",
l10n_util::GetStringUTF16(
IDS_FONT_LANGUAGE_SETTING_PLACEHOLDER));
+
+ std::string install_url = extension_urls::GetWebstoreItemDetailURLPrefix() +
Dan Beam 2013/10/23 18:04:00 nit: IMO use GURL GURL install_url(extension_urls
falken 2013/10/24 12:09:41 Looks nice. Done.
+ kAdvancedFontSettingsExtensionId;
+ localized_strings->SetString("advancedFontSettingsInstall",
+ l10n_util::GetStringFUTF16(
+ IDS_FONT_LANGUAGE_SETTING_ADVANCED_FONT_SETTINGS_INSTALL,
+ UTF8ToUTF16(install_url)));
+}
+
+void FontSettingsHandler::InitializeHandler() {
+ DCHECK(web_ui());
Dan Beam 2013/10/23 18:04:00 ^ why is this here?
falken 2013/10/24 12:09:41 I guess I don't need it. Basically I was copying I
+ registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
+ content::NotificationService::AllSources());
+ registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
+ content::NotificationService::AllSources());
}
void FontSettingsHandler::InitializePage() {
@@ -98,6 +125,7 @@ void FontSettingsHandler::InitializePage() {
SetUpSansSerifFontSample();
SetUpFixedFontSample();
SetUpMinimumFontSample();
+ NotifyAdvancedFontSettingsAvailability();
}
void FontSettingsHandler::RegisterMessages() {
@@ -142,6 +170,15 @@ void FontSettingsHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback("fetchFontsData",
base::Bind(&FontSettingsHandler::HandleFetchFontsData,
base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("openAdvancedFontSettingsOptions",
+ base::Bind(&FontSettingsHandler::OpenAdvancedFontSettingsOptions,
Dan Beam 2013/10/23 18:04:00 the callback method should be named "HandleOpenAdv
falken 2013/10/24 12:09:41 I see. Done.
+ base::Unretained(this)));
+}
+
+void FontSettingsHandler::Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) {
Dan Beam 2013/10/23 18:04:00 DCHECK(type == chrome::NOTIFICATION_EXTENSION_LOAD
falken 2013/10/24 12:09:41 Done.
+ NotifyAdvancedFontSettingsAvailability();
}
void FontSettingsHandler::HandleFetchFontsData(const ListValue* args) {
@@ -244,6 +281,34 @@ void FontSettingsHandler::SetUpMinimumFontSample() {
size_value);
}
+const extensions::Extension*
+FontSettingsHandler::GetAdvancedFontSettingsExtension() {
+ Profile* profile = Profile::FromWebUI(web_ui());
+ ExtensionService* service =
+ extensions::ExtensionSystem::Get(profile)->extension_service();
+ const extensions::Extension* extension =
+ service->GetInstalledExtension(kAdvancedFontSettingsExtensionId);
+ if (extension &&
+ service->IsExtensionEnabled(kAdvancedFontSettingsExtensionId))
Dan Beam 2013/10/23 18:04:00 curlies
falken 2013/10/24 12:09:41 I added them, but aren't they optional here? I jus
+ return extension;
+ return NULL;
+}
+
+void FontSettingsHandler::NotifyAdvancedFontSettingsAvailability() {
+ web_ui()->CallJavascriptFunction(
+ "FontSettings.notifyAdvancedFontSettingsAvailability",
+ base::FundamentalValue(GetAdvancedFontSettingsExtension() != NULL));
+}
+
+void FontSettingsHandler::OpenAdvancedFontSettingsOptions(
+ const base::ListValue* args) {
+ const extensions::Extension* extension = GetAdvancedFontSettingsExtension();
+ if (!extension)
+ return;
+ ExtensionTabUtil::OpenOptionsPage(extension,
+ chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()));
+}
+
void FontSettingsHandler::OnWebKitDefaultFontSizeChanged() {
SetUpStandardFontSample();
SetUpSerifFontSample();

Powered by Google App Engine
This is Rietveld 408576698