1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/extension_builder.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/extension.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ExtensionBuilder::ExtensionBuilder() 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : location_(Manifest::UNPACKED), 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) flags_(Extension::NO_FLAGS) { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ExtensionBuilder::~ExtensionBuilder() {} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)scoped_refptr<Extension> ExtensionBuilder::Build() { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string error; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<Extension> extension = Extension::Create( 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path_, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) location_, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *manifest_, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) flags_, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) id_, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &error); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CHECK_EQ("", error); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return extension; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ExtensionBuilder& ExtensionBuilder::SetPath(const base::FilePath& path) { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) path_ = path; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ExtensionBuilder& ExtensionBuilder::SetLocation(Manifest::Location location) { 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) location_ = location; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ExtensionBuilder& ExtensionBuilder::SetManifest( 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_ptr<base::DictionaryValue> manifest) { 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) manifest_ = manifest.Pass(); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 46a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)ExtensionBuilder& ExtensionBuilder::MergeManifest(DictionaryBuilder& builder) { 47a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) manifest_->MergeDictionary(builder.Build().get()); 48a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return *this; 49a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 50a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ExtensionBuilder& ExtensionBuilder::AddFlags(int init_from_value_flags) { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) flags_ |= init_from_value_flags; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ExtensionBuilder& ExtensionBuilder::SetID(const std::string& id) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) id_ = id; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace extensions 62