Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(502)

Side by Side Diff: content/renderer/render_thread_impl_browsertest.cc

Issue 1227303002: Set listener task runner before connect channel. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix trybot error. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_thread_impl.cc ('k') | content/renderer/renderer_main.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/callback.h" 5 #include "base/callback.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/memory/discardable_memory.h" 8 #include "base/memory/discardable_memory.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "base/thread_task_runner_handle.h" 12 #include "base/thread_task_runner_handle.h"
13 #include "components/scheduler/renderer/renderer_scheduler.h"
13 #include "content/common/in_process_child_thread_params.h" 14 #include "content/common/in_process_child_thread_params.h"
14 #include "content/common/resource_messages.h" 15 #include "content/common/resource_messages.h"
15 #include "content/common/websocket_messages.h" 16 #include "content/common/websocket_messages.h"
16 #include "content/public/browser/content_browser_client.h" 17 #include "content/public/browser/content_browser_client.h"
17 #include "content/public/common/content_client.h" 18 #include "content/public/common/content_client.h"
18 #include "content/public/common/content_switches.h" 19 #include "content/public/common/content_switches.h"
19 #include "content/public/renderer/content_renderer_client.h" 20 #include "content/public/renderer/content_renderer_client.h"
20 #include "content/renderer/render_process_impl.h" 21 #include "content/renderer/render_process_impl.h"
21 #include "content/renderer/render_thread_impl.h" 22 #include "content/renderer/render_thread_impl.h"
22 #include "content/test/mock_render_process.h" 23 #include "content/test/mock_render_process.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 85
85 #if defined(COMPILER_MSVC) 86 #if defined(COMPILER_MSVC)
86 // See explanation for other RenderViewHostImpl which is the same issue. 87 // See explanation for other RenderViewHostImpl which is the same issue.
87 #pragma warning(push) 88 #pragma warning(push)
88 #pragma warning(disable: 4250) 89 #pragma warning(disable: 4250)
89 #endif 90 #endif
90 91
91 class RenderThreadImplForTest : public RenderThreadImpl { 92 class RenderThreadImplForTest : public RenderThreadImpl {
92 public: 93 public:
93 RenderThreadImplForTest(const InProcessChildThreadParams& params, 94 RenderThreadImplForTest(const InProcessChildThreadParams& params,
95 scoped_ptr<scheduler::RendererScheduler> scheduler,
94 scoped_refptr<TestTaskCounter> test_task_counter) 96 scoped_refptr<TestTaskCounter> test_task_counter)
95 : RenderThreadImpl(params), test_task_counter_(test_task_counter) {} 97 : RenderThreadImpl(params, scheduler.Pass()),
98 test_task_counter_(test_task_counter) {}
96 99
97 ~RenderThreadImplForTest() override {} 100 ~RenderThreadImplForTest() override {}
98 101
99 void SetResourceDispatchTaskQueue( 102 void SetResourceDispatchTaskQueue(
100 const scoped_refptr<base::SingleThreadTaskRunner>&) override { 103 const scoped_refptr<base::SingleThreadTaskRunner>&) override {
101 // Use our TestTaskCounter instead. 104 // Use our TestTaskCounter instead.
102 RenderThreadImpl::SetResourceDispatchTaskQueue(test_task_counter_); 105 RenderThreadImpl::SetResourceDispatchTaskQueue(test_task_counter_);
103 } 106 }
104 107
105 using ChildThreadImpl::OnMessageReceived; 108 using ChildThreadImpl::OnMessageReceived;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 test_task_counter_ = make_scoped_refptr(new TestTaskCounter()); 159 test_task_counter_ = make_scoped_refptr(new TestTaskCounter());
157 160
158 // RenderThreadImpl expects the browser to pass these flags. 161 // RenderThreadImpl expects the browser to pass these flags.
159 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); 162 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
160 base::CommandLine::StringVector old_argv = cmd->argv(); 163 base::CommandLine::StringVector old_argv = cmd->argv();
161 164
162 cmd->AppendSwitchASCII(switches::kNumRasterThreads, "1"); 165 cmd->AppendSwitchASCII(switches::kNumRasterThreads, "1");
163 cmd->AppendSwitchASCII(switches::kContentImageTextureTarget, 166 cmd->AppendSwitchASCII(switches::kContentImageTextureTarget,
164 base::UintToString(GL_TEXTURE_2D)); 167 base::UintToString(GL_TEXTURE_2D));
165 168
169 scoped_ptr<scheduler::RendererScheduler> renderer_scheduler =
170 scheduler::RendererScheduler::Create();
166 thread_ = new RenderThreadImplForTest( 171 thread_ = new RenderThreadImplForTest(
167 InProcessChildThreadParams(test_helper_->GetChannelId(), 172 InProcessChildThreadParams(test_helper_->GetChannelId(),
168 test_helper_->GetIOTaskRunner()), 173 test_helper_->GetIOTaskRunner()),
169 test_task_counter_); 174 renderer_scheduler.Pass(), test_task_counter_);
170 cmd->InitFromArgv(old_argv); 175 cmd->InitFromArgv(old_argv);
171 176
172 thread_->EnsureWebKitInitialized(); 177 thread_->EnsureWebKitInitialized();
173 178
174 test_msg_filter_ = make_scoped_refptr( 179 test_msg_filter_ = make_scoped_refptr(
175 new QuitOnTestMsgFilter(test_helper_->GetMessageLoop())); 180 new QuitOnTestMsgFilter(test_helper_->GetMessageLoop()));
176 thread_->AddFilter(test_msg_filter_.get()); 181 thread_->AddFilter(test_msg_filter_.get());
177 } 182 }
178 183
179 scoped_refptr<TestTaskCounter> test_task_counter_; 184 scoped_refptr<TestTaskCounter> test_task_counter_;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 test_helper_->Sender()->Send(new WebSocketMsg_NotifyFailure(1, "")); 225 test_helper_->Sender()->Send(new WebSocketMsg_NotifyFailure(1, ""));
221 test_helper_->Sender()->Send(new TestMsg_QuitRunLoop()); 226 test_helper_->Sender()->Send(new TestMsg_QuitRunLoop());
222 227
223 test_helper_->GetMessageLoop()->Run(); 228 test_helper_->GetMessageLoop()->Run();
224 229
225 EXPECT_EQ(0, test_task_counter_->NumTasksPosted()); 230 EXPECT_EQ(0, test_task_counter_->NumTasksPosted());
226 } 231 }
227 232
228 } // namespace 233 } // namespace
229 } // namespace content 234 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.cc ('k') | content/renderer/renderer_main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698