Index: src/chrome/browser/search_engines/template_url.cc =================================================================== --- src/chrome/browser/search_engines/template_url.cc (revision 46737) +++ src/chrome/browser/search_engines/template_url.cc (working copy) @@ -313,27 +313,28 @@ i != replacements_.rend(); ++i) { switch (i->type) { case ENCODING: - url.insert(i->index, input_encoding); + /* Temporary workaround according to http://crbug.com/41887 */ + url.replace(i->index, 0, input_encoding); break; case GOOGLE_ACCEPTED_SUGGESTION: if (accepted_suggestion == NO_SUGGESTION_CHOSEN) - url.insert(i->index, L"aq=f&"); + url.replace(i->index, 0, L"aq=f&"); else if (accepted_suggestion != NO_SUGGESTIONS_AVAILABLE) - url.insert(i->index, StringPrintf(L"aq=%d&", accepted_suggestion)); + url.replace(i->index, 0, StringPrintf(L"aq=%d&", accepted_suggestion)); break; case GOOGLE_BASE_URL: - url.insert(i->index, GoogleBaseURLValue()); + url.replace(i->index, 0, GoogleBaseURLValue()); break; case GOOGLE_BASE_SUGGEST_URL: - url.insert(i->index, GoogleBaseSuggestURLValue()); + url.replace(i->index, 0, GoogleBaseSuggestURLValue()); break; case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION: if (accepted_suggestion >= 0) - url.insert(i->index, L"oq=" + + url.replace(i->index, 0, L"oq=" + UTF16ToWideHack(encoded_original_query) + L"&"); break; @@ -347,7 +348,7 @@ RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz_string); if (!rlz_string.empty()) { rlz_string = L"rlz=" + rlz_string + L"&"; - url.insert(i->index, rlz_string); + url.replace(i->index, 0, rlz_string); } #endif break; @@ -358,18 +359,18 @@ base::WideToCodepage(terms, WideToASCII(input_encoding).c_str(), base::OnStringConversionError::SKIP, &unescaped_terms); - url.insert(i->index, std::wstring(unescaped_terms.begin(), + url.replace(i->index, 0, std::wstring(unescaped_terms.begin(), unescaped_terms.end())); break; } case LANGUAGE: - url.insert(i->index, + url.replace(i->index, 0, ASCIIToWide(g_browser_process->GetApplicationLocale())); break; case SEARCH_TERMS: - url.insert(i->index, UTF16ToWideHack(encoded_terms)); + url.replace(i->index, 0, UTF16ToWideHack(encoded_terms)); break; default: