// 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 #include "extensions/common/extension.h" namespace extensions { ExtensionBuilder::ExtensionBuilder() : location_(Manifest::UNPACKED), flags_(Extension::NO_FLAGS) { } ExtensionBuilder::~ExtensionBuilder() {} ExtensionBuilder::ExtensionBuilder(ExtensionBuilder&& other) : path_(std::move(other.path_)), location_(other.location_), manifest_(std::move(other.manifest_)), flags_(other.flags_), id_(std::move(other.id_)) {} ExtensionBuilder& ExtensionBuilder::operator=(ExtensionBuilder&& other) { path_ = std::move(other.path_); location_ = other.location_; manifest_ = std::move(other.manifest_); flags_ = other.flags_; id_ = std::move(other.id_); return *this; } 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_ = std::move(manifest); return *this; } ExtensionBuilder& ExtensionBuilder::MergeManifest( scoped_ptr manifest) { manifest_->MergeDictionary(manifest.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