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

Unified Diff: chrome/browser/extensions/extension_font_settings_api.h

Issue 10447013: CL for readability review. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment for test Created 8 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_font_settings_api.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_font_settings_api.h
diff --git a/chrome/browser/extensions/extension_font_settings_api.h b/chrome/browser/extensions/extension_font_settings_api.h
index ba9697378da03a70c7c606f92c01ef1b74036b64..3761c2798d5aa69583535a32988b611103cb7659 100644
--- a/chrome/browser/extensions/extension_font_settings_api.h
+++ b/chrome/browser/extensions/extension_font_settings_api.h
@@ -2,30 +2,45 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// Defines the classes to realize the Font Settings Extension API as specified
+// in the extension API JSON.
+
#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_FONT_SETTINGS_API_H__
#pragma once
#include <map>
+#include <string>
+#include <utility>
#include "chrome/browser/extensions/extension_function.h"
#include "chrome/browser/prefs/pref_change_registrar.h"
+// This class observes pref changed events on a profile and dispatches the
+// corresponding extension API events to extensions.
class ExtensionFontSettingsEventRouter : public content::NotificationObserver {
public:
+ // Constructor for observing pref changed events on |profile|. Does not take
+ // ownership of |profile|. Init() must be called to start observing pref
rpang 2012/05/30 11:45:51 Does |profile| need to stay alive? Can it be NULL?
falken 2012/05/31 02:38:30 Done. Added more comments.
+ // changed events.
explicit ExtensionFontSettingsEventRouter(Profile* profile);
virtual ~ExtensionFontSettingsEventRouter();
+ // Starts observing pref changed events on the profile. Must not be called
+ // more than once.
void Init();
private:
typedef std::pair<std::string, std::string> EventAndKeyPair;
- // Map of pref name to a pair of event name and key (defined in the API) for
- // dispatching a pref changed event. For example,
+ // Map of pref name to a pair of event name and key (defined in the extension
+ // API) for dispatching a pref changed event. For example,
// "webkit.webprefs.default_font_size" to ("onDefaultFontSizedChanged",
// "pixelSize").
typedef std::map<std::string, EventAndKeyPair> PrefEventMap;
+ // Observes browser pref |pref_name|. When a change is observed, dispatches
+ // event |event_name| to extensions. A JavaScript object is passed to the
+ // extension event function with the new value of the pref in property |key|.
void AddPrefToObserve(const char* pref_name,
const char* event_name,
const char* key);
@@ -35,19 +50,33 @@ class ExtensionFontSettingsEventRouter : public content::NotificationObserver {
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
+ // Dispatches a changed event for the font setting for |generic_family| and
+ // |script| to extensions. The new value of the setting is the value of
+ // browser pref |pref_name|. If the pref changed on the incognito profile,
+ // |incognito| must be set to true for extensions to get the appropriate
+ // event.
void OnFontNamePrefChanged(PrefService* pref_service,
const std::string& pref_name,
const std::string& generic_family,
const std::string& script,
bool incognito);
+
+ // Dispatches the setting changed event |event_name| to extensions. The new
+ // value of the setting is the value of browser pref |pref_name|. This value
+ // is passed in the JavaScript object argument to the extension event function
+ // under the key |key|. If the pref changed on the incognito profile,
+ // |incognito| must be set to true for extensions to get the appropriate
+ // event.
void OnFontPrefChanged(PrefService* pref_service,
const std::string& pref_name,
const std::string& event_name,
const std::string& key,
bool incognito);
+ // Manages pref observation registration.
PrefChangeRegistrar registrar_;
+ // Maps browser pref names to extension API <event name, key> pairs.
PrefEventMap pref_event_map_;
// Weak, owns us (transitively via ExtensionService).
@@ -56,6 +85,7 @@ class ExtensionFontSettingsEventRouter : public content::NotificationObserver {
DISALLOW_COPY_AND_ASSIGN(ExtensionFontSettingsEventRouter);
};
+// clearFont API function.
rpang 2012/05/30 11:45:51 clearFont -> ClearFont?
falken 2012/05/31 02:38:30 No, it means the JavaScript extension API function
rpang 2012/05/31 02:42:42 Is it self-evident in this code base? If not, comm
falken 2012/05/31 03:34:27 I think it should be OK, but I changed to fontSett
class ClearFontFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.clearFont")
@@ -67,6 +97,7 @@ class ClearFontFunction : public SyncExtensionFunction {
virtual bool RunImpl() OVERRIDE;
};
+// getFont API function.
class GetFontFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.getFont")
@@ -78,6 +109,7 @@ class GetFontFunction : public SyncExtensionFunction {
virtual bool RunImpl() OVERRIDE;
};
+// setFont API function.
class SetFontFunction : public SyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.setFont")
@@ -89,6 +121,7 @@ class SetFontFunction : public SyncExtensionFunction {
virtual bool RunImpl() OVERRIDE;
};
+// getFontList API function.
class GetFontListFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("experimental.fontSettings.getFontList")
@@ -104,7 +137,7 @@ class GetFontListFunction : public AsyncExtensionFunction {
bool CopyFontsToResult(base::ListValue* fonts);
};
-// Base class for functions that clear a font pref.
+// Base class for extension API functions that clear a browser font pref.
class ClearFontPrefExtensionFunction : public SyncExtensionFunction {
protected:
virtual ~ClearFontPrefExtensionFunction() {}
@@ -117,7 +150,7 @@ class ClearFontPrefExtensionFunction : public SyncExtensionFunction {
virtual const char* GetPrefName() = 0;
};
-// Base class for functions that get a font pref.
+// Base class for extension API functions that get a browser font pref.
class GetFontPrefExtensionFunction : public SyncExtensionFunction {
protected:
virtual ~GetFontPrefExtensionFunction() {}
@@ -134,7 +167,7 @@ class GetFontPrefExtensionFunction : public SyncExtensionFunction {
virtual const char* GetKey() = 0;
};
-// Base class for functions that set a font pref.
+// Base class for extension API functions that set a browser font pref.
class SetFontPrefExtensionFunction : public SyncExtensionFunction {
protected:
virtual ~SetFontPrefExtensionFunction() {}
@@ -151,6 +184,9 @@ class SetFontPrefExtensionFunction : public SyncExtensionFunction {
virtual const char* GetKey() = 0;
};
+// The following are get/set/clear API functions that act on a browser font
+// pref.
+
class ClearDefaultFontSizeFunction : public ClearFontPrefExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME(
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_font_settings_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698