1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/extensions/api/browser/browser_api.h" 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/extensions/extension_tab_util.h" 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace extensions { 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace api { 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)BrowserOpenTabFunction::~BrowserOpenTabFunction() { 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)bool BrowserOpenTabFunction::RunSync() { 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<browser::OpenTab::Params> params( 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) browser::OpenTab::Params::Create(*args_)); 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXTENSION_FUNCTION_VALIDATE(params.get()); 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ExtensionTabUtil::OpenTabParams options; 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) options.create_browser_if_needed = true; 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) options.url.reset(new std::string(params->options.url)); 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) std::string error; 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<base::DictionaryValue> result( 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ExtensionTabUtil::OpenTab(this, options, &error)); 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (!result) { 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) SetError(error); 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return false; 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return true; 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace api 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace extensions 37