// Copyright 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 "extensions/common/extension_builder.h" #include "extensions/common/extension.h" namespace extensions { ExtensionBuilder::ExtensionBuilder() : location_(Manifest::UNPACKED), flags_(Extension::NO_FLAGS) { } ExtensionBuilder::~ExtensionBuilder() {} scoped_refptr ExtensionBuilder::Build() { std::string error; scoped_refptr extension = Extension::Create( path_, location_, *manifest_, flags_, id_, &error); CHECK_EQ("", error); return extension; } ExtensionBuilder& ExtensionBuilder::SetPath(const base::FilePath& path) { path_ = path; return *this; } ExtensionBuilder& ExtensionBuilder::SetLocation(Manifest::Location location) { location_ = location; return *this; } ExtensionBuilder& ExtensionBuilder::SetManifest( scoped_ptr manifest) { manifest_ = manifest.Pass(); return *this; } ExtensionBuilder& ExtensionBuilder::MergeManifest(DictionaryBuilder& builder) { manifest_->MergeDictionary(builder.Build().get()); return *this; } ExtensionBuilder& ExtensionBuilder::AddFlags(int init_from_value_flags) { flags_ |= init_from_value_flags; return *this; } ExtensionBuilder& ExtensionBuilder::SetID(const std::string& id) { id_ = id; return *this; } } // namespace extensions