15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 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)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names_util.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_util.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace pref_names_util {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kWebKitFontPrefPrefix[] = "webkit.webprefs.fonts.";
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ParseFontNamePrefPath(const std::string& pref_path,
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           std::string* generic_family,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           std::string* script) {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!StartsWithASCII(pref_path, kWebKitFontPrefPrefix, true))
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return false;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  size_t start = strlen(kWebKitFontPrefPrefix);
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  size_t pos = pref_path.find('.', start);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (pos == std::string::npos || pos + 1 == pref_path.length())
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return false;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (generic_family)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *generic_family = pref_path.substr(start, pos - start);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (script)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *script = pref_path.substr(pos + 1);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace pref_names_util
31