Index: chrome/browser/extensions/api/browser/browser_api.cc |
diff --git a/chrome/browser/extensions/api/browser/browser_api.cc b/chrome/browser/extensions/api/browser/browser_api.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7e1a64bd9c38af3eb98acd18d5a17a964909eec8 |
--- /dev/null |
+++ b/chrome/browser/extensions/api/browser/browser_api.cc |
@@ -0,0 +1,36 @@ |
+// Copyright 2014 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/browser/extensions/api/browser/browser_api.h" |
+ |
+#include "chrome/browser/extensions/extension_tab_util.h" |
+ |
+namespace extensions { |
+namespace api { |
+ |
+BrowserOpenTabFunction::~BrowserOpenTabFunction() { |
+} |
+ |
+bool BrowserOpenTabFunction::RunSync() { |
+ scoped_ptr<browser::OpenTab::Params> params( |
+ browser::OpenTab::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ ExtensionTabUtil::OpenTabParams options; |
+ options.create_browser_if_needed = true; |
+ options.url.reset(new std::string(params->options.url)); |
+ |
+ std::string error; |
+ scoped_ptr<base::DictionaryValue> result( |
+ ExtensionTabUtil::OpenTab(this, options, &error)); |
+ if (!result) { |
+ SetError(error); |
+ return false; |
+ } |
+ |
+ return true; |
+} |
+ |
+} // namespace api |
+} // namespace extensions |