Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index 273522e0634cdc92be8c03409c73a9d37be8fc24..8cc9ac793fe833ad8aa056e57cc17daea083b13f 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -91,6 +91,7 @@ |
#include "content/public/common/url_constants.h" |
#include "content/public/renderer/plugin_instance_throttler.h" |
#include "content/public/renderer/render_frame.h" |
+#include "content/public/renderer/render_frame_visitor.h" |
#include "content/public/renderer/render_thread.h" |
#include "content/public/renderer/render_view.h" |
#include "content/public/renderer/render_view_visitor.h" |
@@ -250,19 +251,19 @@ void AppendParams(const std::vector<base::string16>& additional_names, |
#endif // BUILDFLAG(ENABLE_PLUGINS) |
#if BUILDFLAG(ENABLE_SPELLCHECK) |
-class SpellCheckReplacer : public content::RenderViewVisitor { |
+class SpellCheckReplacer : public content::RenderFrameVisitor { |
public: |
explicit SpellCheckReplacer(SpellCheck* spellcheck) |
: spellcheck_(spellcheck) {} |
- bool Visit(content::RenderView* render_view) override; |
+ bool Visit(content::RenderFrame* render_frame) override; |
private: |
SpellCheck* spellcheck_; // New shared spellcheck for all views. Weak Ptr. |
DISALLOW_COPY_AND_ASSIGN(SpellCheckReplacer); |
}; |
-bool SpellCheckReplacer::Visit(content::RenderView* render_view) { |
- SpellCheckProvider* provider = SpellCheckProvider::Get(render_view); |
+bool SpellCheckReplacer::Visit(content::RenderFrame* render_frame) { |
+ SpellCheckProvider* provider = SpellCheckProvider::Get(render_frame); |
DCHECK(provider); |
provider->set_spellcheck(spellcheck_); |
return true; |
@@ -567,11 +568,7 @@ void ChromeContentRendererClient::RenderFrameCreated( |
} |
#if BUILDFLAG(ENABLE_SPELLCHECK) |
- // TODO(xiaochengh): Use a different SpellCheckProvider for each RenderFrame. |
- if (SpellCheckProvider* provider = |
- SpellCheckProvider::Get(render_frame->GetRenderView())) { |
- render_frame->GetWebFrame()->setTextCheckClient(provider); |
- } |
+ new SpellCheckProvider(render_frame, spellcheck_.get()); |
Xiaocheng
2017/04/07 01:43:45
SpellCheckProvider created at RenderFrameCreated()
|
#endif |
} |
@@ -581,16 +578,6 @@ void ChromeContentRendererClient::RenderViewCreated( |
ChromeExtensionsRendererClient::GetInstance()->RenderViewCreated(render_view); |
#endif |
#if BUILDFLAG(ENABLE_SPELLCHECK) |
- SpellCheckProvider* provider = |
- new SpellCheckProvider(render_view, spellcheck_.get()); |
- // For a main frame of a view, RenderFrameCreated is called earlier than |
- // RenderViewCreated. This workaround ensures that WebTextCheckClient is |
- // still set for any main frame. |
- // TODO(xiaochengh): Remove this workaround once SpellCheckProvider becomes |
- // a RenderFrameObserver. |
- if (content::RenderFrame* main_frame = render_view->GetMainRenderFrame()) |
- main_frame->GetWebFrame()->setTextCheckClient(provider); |
- |
new SpellCheckPanel(render_view); |
#endif |
new prerender::PrerendererClient(render_view); |
@@ -1235,7 +1222,7 @@ void ChromeContentRendererClient::SetSpellcheck(SpellCheck* spellcheck) { |
thread->RemoveObserver(spellcheck_.get()); |
spellcheck_.reset(spellcheck); |
SpellCheckReplacer replacer(spellcheck_.get()); |
- content::RenderView::ForEach(&replacer); |
+ content::RenderFrame::ForEach(&replacer); |
if (thread) |
thread->AddObserver(spellcheck_.get()); |
} |