diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-13 04:20:48 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-13 04:20:48 +0000 |
commit | 0e79b9e15734c1adf7d5b0d74c9ef2ba621a0f74 (patch) | |
tree | f50f3479d754b9b5baea537914b70d9f8ca96173 /chrome | |
parent | 6074d298427d7b4b0220a55bc52c7c7293fd362d (diff) | |
download | chromium_src-0e79b9e15734c1adf7d5b0d74c9ef2ba621a0f74.zip chromium_src-0e79b9e15734c1adf7d5b0d74c9ef2ba621a0f74.tar.gz chromium_src-0e79b9e15734c1adf7d5b0d74c9ef2ba621a0f74.tar.bz2 |
Some consumers in the renderer process need access to an IO message loop, RenderThread which holds WebKit runs on a message loop with type TYPE_DEFAULT, so we need to expose
the owner loop of RenderThread which has type TYPE_IO. That particular message loop is used for handling all IPC messages, so we need to be cautious about using this message loop and don't block on it.
Review URL: http://codereview.chromium.org/21318
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9741 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/renderer/render_view.cc | 8 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 6 |
2 files changed, 14 insertions, 0 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 7003f43..e38facb 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -2857,3 +2857,11 @@ std::string RenderView::GetAltHTMLForTemplate( return std::string(); #endif // OS_WIN } + +MessageLoop* RenderView::GetMessageLoopForIO() { + // Assume that we have only one RenderThread in the process and the owner loop + // of RenderThread is an IO message loop. + if (g_render_thread); + return g_render_thread->owner_loop(); + return NULL; +} diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 94d842d..ee0446e 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -334,6 +334,12 @@ class RenderView : public RenderWidget, delay_seconds_for_form_state_sync_ = delay_in_seconds; } + // Returns a message loop of type IO that can be used to run I/O jobs. The + // renderer thread is of type TYPE_DEFAULT, so doesn't support everything + // needed by some consumers. The returned thread will be the main thread of + // the renderer, which processes all IPC, to any I/O should be non-blocking. + MessageLoop* GetMessageLoopForIO(); + private: FRIEND_TEST(RenderViewTest, OnLoadAlternateHTMLText); FRIEND_TEST(RenderViewTest, OnNavStateChanged); |