Index: chrome/common/extensions/api/page_launcher/page_launcher_handler.cc |
diff --git a/chrome/common/extensions/api/page_launcher/page_launcher_handler.cc b/chrome/common/extensions/api/page_launcher/page_launcher_handler.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dbfe7c34c9317142e0fac934297c9ca24dd07b0f |
--- /dev/null |
+++ b/chrome/common/extensions/api/page_launcher/page_launcher_handler.cc |
@@ -0,0 +1,44 @@ |
+// Copyright (c) 2013 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. |
+ |
+#include "chrome/common/extensions/api/page_launcher/page_launcher_handler.h" |
+ |
+#include "base/logging.h" |
+#include "base/utf_string_conversions.h" |
+#include "base/values.h" |
+#include "chrome/common/extensions/api/extension_action/action_info.h" |
+#include "chrome/common/extensions/extension.h" |
+#include "chrome/common/extensions/extension_manifest_constants.h" |
+#include "chrome/common/extensions/manifest.h" |
+#include "chrome/common/extensions/manifest_handler_helpers.h" |
+ |
+namespace keys = extension_manifest_keys; |
+ |
+namespace extensions { |
+ |
+PageLauncherHandler::PageLauncherHandler() { |
+} |
+ |
+PageLauncherHandler::~PageLauncherHandler() { |
+} |
+ |
+bool PageLauncherHandler::Parse(Extension* extension, string16* error) { |
+ DCHECK(extension->manifest()->HasKey(keys::kPageLauncher)); |
+ |
+ const base::DictionaryValue* dict; |
+ if (!extension->manifest()->GetDictionary(keys::kPageLauncher, &dict)) { |
+ *error = ASCIIToUTF16(extension_manifest_errors::kInvalidPageLauncher); |
+ return false; |
+ } |
+ |
+ scoped_ptr<ActionInfo> action_info = |
+ manifest_handler_helpers::LoadActionInfo(extension, dict, error); |
+ if (!action_info) |
+ return false; |
+ |
+ ActionInfo::SetPageLauncherInfo(extension, action_info.release()); |
+ return true; |
+} |
+ |
+} // namespace extensions |