blob: 4924051c9f5cd21814c15367a21ed6344d5b8de0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_EXTENSIONS_API_EXTENSION_ACTION_EXTENSION_ACTIONS_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_EXTENSION_ACTION_EXTENSION_ACTIONS_API_H_
#pragma once
#include "chrome/browser/extensions/extension_function.h"
#include "chrome/common/extensions/extension_action.h"
namespace base {
class DictionaryValue;
}
class TabContents;
// Implementation of the browserAction, pageAction, and scriptBadge APIs.
//
// Divergent behaviour between the three is minimal (pageAction and scriptBadge
// have required tabIds while browserAction's are optional, they have different
// internal browser notification requirements, and not all functions are defined
// for all APIs).
class ExtensionActionFunction : public SyncExtensionFunction {
public:
static bool ParseCSSColorString(const std::string& color_string,
SkColor* result);
protected:
ExtensionActionFunction();
virtual ~ExtensionActionFunction();
virtual bool RunImpl() OVERRIDE;
virtual bool RunExtensionAction() = 0;
void NotifyChange();
void NotifyBrowserActionChange();
void NotifyLocationBarChange();
bool SetVisible(bool visible);
// All the extension action APIs take a single argument called details that
// is a dictionary.
base::DictionaryValue* details_;
// The tab id the extension action function should apply to, if any, or
// kDefaultTabId if none was specified.
int tab_id_;
// Tab content for |tab_id_| if one exists.
TabContents* contents_;
// The extension action for the current extension.
ExtensionAction* extension_action_;
};
//
// Implementations of each extension action API.
//
// pageAction and browserAction bindings are created for these by extending them
// then declaring an EXTENSION_FUNCTION_NAME.
//
// show
class ExtensionActionShowFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionShowFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// hide
class ExtensionActionHideFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionHideFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// setIcon
class ExtensionActionSetIconFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionSetIconFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// setTitle
class ExtensionActionSetTitleFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionSetTitleFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// setPopup
class ExtensionActionSetPopupFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionSetPopupFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// setBadgeText
class ExtensionActionSetBadgeTextFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionSetBadgeTextFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// setBadgeBackgroundColor
class ExtensionActionSetBadgeBackgroundColorFunction
: public ExtensionActionFunction {
protected:
virtual ~ExtensionActionSetBadgeBackgroundColorFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// getTitle
class ExtensionActionGetTitleFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionGetTitleFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// getPopup
class ExtensionActionGetPopupFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionGetPopupFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// getBadgeText
class ExtensionActionGetBadgeTextFunction : public ExtensionActionFunction {
protected:
virtual ~ExtensionActionGetBadgeTextFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
// getBadgeBackgroundColor
class ExtensionActionGetBadgeBackgroundColorFunction
: public ExtensionActionFunction {
protected:
virtual ~ExtensionActionGetBadgeBackgroundColorFunction() {}
virtual bool RunExtensionAction() OVERRIDE;
};
#endif // CHROME_BROWSER_EXTENSIONS_API_EXTENSION_ACTION_EXTENSION_ACTIONS_API_H_
|