12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "extensions/common/error_utils.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_util.h"
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace extensions {
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)std::string ErrorUtils::FormatErrorMessage(const std::string& format,
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                           const std::string& s1) {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  std::string ret_val = format;
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ReplaceFirstSubstringAfterOffset(&ret_val, 0, "*", s1);
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return ret_val;
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)std::string ErrorUtils::FormatErrorMessage(const std::string& format,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                           const std::string& s1,
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                           const std::string& s2) {
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  std::string ret_val = format;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ReplaceFirstSubstringAfterOffset(&ret_val, 0, "*", s1);
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ReplaceFirstSubstringAfterOffset(&ret_val, 0, "*", s2);
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return ret_val;
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)std::string ErrorUtils::FormatErrorMessage(const std::string& format,
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                           const std::string& s1,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                           const std::string& s2,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                           const std::string& s3) {
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  std::string ret_val = format;
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ReplaceFirstSubstringAfterOffset(&ret_val, 0, "*", s1);
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ReplaceFirstSubstringAfterOffset(&ret_val, 0, "*", s2);
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ReplaceFirstSubstringAfterOffset(&ret_val, 0, "*", s3);
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return ret_val;
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::string16 ErrorUtils::FormatErrorMessageUTF16(const std::string& format,
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                   const std::string& s1) {
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return base::UTF8ToUTF16(FormatErrorMessage(format, s1));
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::string16 ErrorUtils::FormatErrorMessageUTF16(const std::string& format,
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                   const std::string& s1,
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                   const std::string& s2) {
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return base::UTF8ToUTF16(FormatErrorMessage(format, s1, s2));
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::string16 ErrorUtils::FormatErrorMessageUTF16(const std::string& format,
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                   const std::string& s1,
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                   const std::string& s2,
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                                   const std::string& s3) {
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return base::UTF8ToUTF16(FormatErrorMessage(format, s1, s2, s3));
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace extensions
58