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