// 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 "extensions/browser/extension_error_test_util.h" #include "base/logging.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "content/public/common/url_constants.h" #include "extensions/browser/extension_error.h" #include "extensions/common/constants.h" #include "extensions/common/stack_frame.h" #include "url/gurl.h" namespace extensions { namespace error_test_util { namespace { const char16_t kDefaultStackTrace[] = u"function_name (https://url.com:1:1)"; } std::unique_ptr CreateNewRuntimeError( const std::string& extension_id, const std::string& message, bool from_incognito) { StackTrace stack_trace; std::unique_ptr frame = StackFrame::CreateFromText(kDefaultStackTrace); CHECK(frame.get()); stack_trace.push_back(*frame); std::u16string source = base::UTF8ToUTF16(std::string(kExtensionScheme) + url::kStandardSchemeSeparator + extension_id); return std::unique_ptr( new RuntimeError(extension_id, from_incognito, source, base::UTF8ToUTF16(message), stack_trace, GURL::EmptyGURL(), // no context url logging::LOG_ERROR, 0, // Render frame id 0)); // Render process id } std::unique_ptr CreateNewRuntimeError( const std::string& extension_id, const std::string& message) { return CreateNewRuntimeError(extension_id, message, false); } std::unique_ptr CreateNewManifestError( const std::string& extension_id, const std::string& message) { return std::unique_ptr( new ManifestError(extension_id, base::UTF8ToUTF16(message), std::u16string(), std::u16string())); } } // namespace error_test_util } // namespace extensions