| Index: ui/gfx/render_text.cc
 | 
| diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc
 | 
| index add661d64c9d5edc34449ac3b0cf53bc7d102756..4da9880b33ae81ac6005b1a3d7e3db50a4c11fa9 100644
 | 
| --- a/ui/gfx/render_text.cc
 | 
| +++ b/ui/gfx/render_text.cc
 | 
| @@ -398,7 +398,7 @@ RenderText::~RenderText() {
 | 
|  }
 | 
|  
 | 
|  RenderText* RenderText::CreateInstance() {
 | 
| -#if defined(OS_MACOSX) && !defined(TOOLKIT_VIEWS)
 | 
| +#if defined(OS_MACOSX)
 | 
|    static const bool use_harfbuzz = CommandLine::ForCurrentProcess()->
 | 
|        HasSwitch(switches::kEnableHarfBuzzRenderText);
 | 
|  #else
 | 
| @@ -408,6 +408,12 @@ RenderText* RenderText::CreateInstance() {
 | 
|    return use_harfbuzz ? new RenderTextHarfBuzz : CreateNativeInstance();
 | 
|  }
 | 
|  
 | 
| +RenderText* RenderText::CreateInstanceForEditing() {
 | 
| +  static const bool use_harfbuzz = !CommandLine::ForCurrentProcess()->
 | 
| +      HasSwitch(switches::kDisableHarfBuzzRenderText);
 | 
| +  return use_harfbuzz ? new RenderTextHarfBuzz : CreateNativeInstance();
 | 
| +}
 | 
| +
 | 
|  void RenderText::SetText(const base::string16& text) {
 | 
|    DCHECK(!composition_range_.IsValid());
 | 
|    if (text_ == text)
 | 
| @@ -1233,7 +1239,7 @@ base::string16 RenderText::Elide(const base::string16& text,
 | 
|      return ElideEmail(text, available_width);
 | 
|  
 | 
|    // Create a RenderText copy with attributes that affect the rendering width.
 | 
| -  scoped_ptr<RenderText> render_text(CreateInstance());
 | 
| +  scoped_ptr<RenderText> render_text = CreateInstanceOfSameType();
 | 
|    render_text->SetFontList(font_list_);
 | 
|    render_text->SetDirectionalityMode(directionality_mode_);
 | 
|    render_text->SetCursorEnabled(cursor_enabled_);
 | 
| 
 |