OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/manifest_handlers/extension_action_handler.h" | 5 #include "chrome/common/extensions/manifest_handlers/extension_action_handler.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/common/extensions/api/extension_action/action_info.h" | 12 #include "chrome/common/extensions/api/extension_action/action_info.h" |
13 #include "chrome/common/extensions/extension_constants.h" | 13 #include "chrome/common/extensions/extension_constants.h" |
14 #include "chrome/grit/generated_resources.h" | 14 #include "chrome/grit/generated_resources.h" |
15 #include "extensions/common/extension.h" | 15 #include "extensions/common/extension.h" |
16 #include "extensions/common/feature_switch.h" | |
17 #include "extensions/common/file_util.h" | 16 #include "extensions/common/file_util.h" |
18 #include "extensions/common/manifest_constants.h" | 17 #include "extensions/common/manifest_constants.h" |
19 | 18 |
20 namespace extensions { | 19 namespace extensions { |
21 | 20 |
22 ExtensionActionHandler::ExtensionActionHandler() { | 21 ExtensionActionHandler::ExtensionActionHandler() { |
23 } | 22 } |
24 | 23 |
25 ExtensionActionHandler::~ExtensionActionHandler() { | 24 ExtensionActionHandler::~ExtensionActionHandler() { |
26 } | 25 } |
(...skipping 27 matching lines...) Expand all Loading... |
54 std::unique_ptr<ActionInfo> action_info = | 53 std::unique_ptr<ActionInfo> action_info = |
55 ActionInfo::Load(extension, dict, error); | 54 ActionInfo::Load(extension, dict, error); |
56 if (!action_info) | 55 if (!action_info) |
57 return false; // Failed to parse extension action definition. | 56 return false; // Failed to parse extension action definition. |
58 | 57 |
59 if (key == manifest_keys::kPageAction) | 58 if (key == manifest_keys::kPageAction) |
60 ActionInfo::SetPageActionInfo(extension, action_info.release()); | 59 ActionInfo::SetPageActionInfo(extension, action_info.release()); |
61 else | 60 else |
62 ActionInfo::SetBrowserActionInfo(extension, action_info.release()); | 61 ActionInfo::SetBrowserActionInfo(extension, action_info.release()); |
63 } else { // No key, used for synthesizing an action for extensions with none. | 62 } else { // No key, used for synthesizing an action for extensions with none. |
64 if (!FeatureSwitch::extension_action_redesign()->IsEnabled()) | |
65 return true; // Do nothing if the switch is off. | |
66 if (Manifest::IsComponentLocation(extension->location())) | 63 if (Manifest::IsComponentLocation(extension->location())) |
67 return true; // Don't synthesize actions for component extensions. | 64 return true; // Don't synthesize actions for component extensions. |
68 if (extension->was_installed_by_default()) | 65 if (extension->was_installed_by_default()) |
69 return true; // Don't synthesize actions for default extensions. | 66 return true; // Don't synthesize actions for default extensions. |
70 if (extension->manifest()->HasKey( | 67 if (extension->manifest()->HasKey( |
71 manifest_keys::kSynthesizeExtensionAction)) { | 68 manifest_keys::kSynthesizeExtensionAction)) { |
72 *error = base::ASCIIToUTF16(base::StringPrintf( | 69 *error = base::ASCIIToUTF16(base::StringPrintf( |
73 "Key %s is reserved.", manifest_keys::kSynthesizeExtensionAction)); | 70 "Key %s is reserved.", manifest_keys::kSynthesizeExtensionAction)); |
74 return false; // No one should use this key. | 71 return false; // No one should use this key. |
75 } | 72 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 108 |
112 const std::vector<std::string> ExtensionActionHandler::Keys() const { | 109 const std::vector<std::string> ExtensionActionHandler::Keys() const { |
113 std::vector<std::string> keys; | 110 std::vector<std::string> keys; |
114 keys.push_back(manifest_keys::kPageAction); | 111 keys.push_back(manifest_keys::kPageAction); |
115 keys.push_back(manifest_keys::kBrowserAction); | 112 keys.push_back(manifest_keys::kBrowserAction); |
116 keys.push_back(manifest_keys::kSynthesizeExtensionAction); | 113 keys.push_back(manifest_keys::kSynthesizeExtensionAction); |
117 return keys; | 114 return keys; |
118 } | 115 } |
119 | 116 |
120 } // namespace extensions | 117 } // namespace extensions |
OLD | NEW |