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

Side by Side Diff: chrome/common/extensions/api/extension_action/action_info.cc

Issue 1168383002: Implement sidebar support for extension action popups Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/common/extensions/api/extension_action/action_info.h" 5 #include "chrome/common/extensions/api/extension_action/action_info.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/common/extensions/api/commands/commands_handler.h" 9 #include "chrome/common/extensions/api/commands/commands_handler.h"
10 #include "extensions/common/constants.h" 10 #include "extensions/common/constants.h"
(...skipping 27 matching lines...) Expand all
38 38
39 static const ActionInfo* GetActionInfo(const Extension* extension, 39 static const ActionInfo* GetActionInfo(const Extension* extension,
40 const std::string& key) { 40 const std::string& key) {
41 ActionInfoData* data = static_cast<ActionInfoData*>( 41 ActionInfoData* data = static_cast<ActionInfoData*>(
42 extension->GetManifestData(key)); 42 extension->GetManifestData(key));
43 return data ? data->action_info.get() : NULL; 43 return data ? data->action_info.get() : NULL;
44 } 44 }
45 45
46 } // namespace 46 } // namespace
47 47
48 ActionInfo::ActionInfo() { 48 ActionInfo::ActionInfo() : open_in_sidebar(false) {
49 } 49 }
50 50
51 ActionInfo::~ActionInfo() { 51 ActionInfo::~ActionInfo() {
52 } 52 }
53 53
54 // static 54 // static
55 scoped_ptr<ActionInfo> ActionInfo::Load(const Extension* extension, 55 scoped_ptr<ActionInfo> ActionInfo::Load(const Extension* extension,
56 const base::DictionaryValue* dict, 56 const base::DictionaryValue* dict,
57 base::string16* error) { 57 base::string16* error) {
58 scoped_ptr<ActionInfo> result(new ActionInfo()); 58 scoped_ptr<ActionInfo> result(new ActionInfo());
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 *error = ErrorUtils::FormatErrorMessageUTF16( 175 *error = ErrorUtils::FormatErrorMessageUTF16(
176 errors::kInvalidPageActionPopupPath, url_str); 176 errors::kInvalidPageActionPopupPath, url_str);
177 return scoped_ptr<ActionInfo>(); 177 return scoped_ptr<ActionInfo>();
178 } 178 }
179 } else { 179 } else {
180 DCHECK(result->default_popup_url.is_empty()) 180 DCHECK(result->default_popup_url.is_empty())
181 << "Shouldn't be possible for the popup to be set."; 181 << "Shouldn't be possible for the popup to be set.";
182 } 182 }
183 } 183 }
184 184
185 // Should open popup in sidebar?
186 dict->GetBoolean(keys::kPageActionOpenInSidebar, &result->open_in_sidebar);
187
185 return result.Pass(); 188 return result.Pass();
186 } 189 }
187 190
188 // static 191 // static
189 const ActionInfo* ActionInfo::GetBrowserActionInfo(const Extension* extension) { 192 const ActionInfo* ActionInfo::GetBrowserActionInfo(const Extension* extension) {
190 return GetActionInfo(extension, keys::kBrowserAction); 193 return GetActionInfo(extension, keys::kBrowserAction);
191 } 194 }
192 195
193 const ActionInfo* ActionInfo::GetPageActionInfo(const Extension* extension) { 196 const ActionInfo* ActionInfo::GetPageActionInfo(const Extension* extension) {
194 return GetActionInfo(extension, keys::kPageAction); 197 return GetActionInfo(extension, keys::kPageAction);
(...skipping 25 matching lines...) Expand all
220 223
221 // static 224 // static
222 bool ActionInfo::IsVerboseInstallMessage(const Extension* extension) { 225 bool ActionInfo::IsVerboseInstallMessage(const Extension* extension) {
223 const ActionInfo* page_action_info = GetPageActionInfo(extension); 226 const ActionInfo* page_action_info = GetPageActionInfo(extension);
224 return page_action_info && 227 return page_action_info &&
225 (CommandsInfo::GetPageActionCommand(extension) || 228 (CommandsInfo::GetPageActionCommand(extension) ||
226 !page_action_info->default_icon.empty()); 229 !page_action_info->default_icon.empty());
227 } 230 }
228 231
229 } // namespace extensions 232 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698