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

Side by Side Diff: ppapi/proxy/ppb_message_loop_proxy.cc

Issue 2132593002: Remove remaining calls to deprecated MessageLoop methods on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: h264_vt_encoder_unittest.cc Created 4 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 | « ppapi/proxy/ppb_message_loop_proxy.h ('k') | remoting/client/client_status_logger_unittest.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ppapi/proxy/ppb_message_loop_proxy.h" 5 #include "ppapi/proxy/ppb_message_loop_proxy.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/bind_helpers.h"
12 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
13 #include "base/location.h" 14 #include "base/logging.h"
14 #include "base/threading/thread_task_runner_handle.h" 15 #include "base/threading/thread_task_runner_handle.h"
15 #include "ppapi/c/pp_errors.h" 16 #include "ppapi/c/pp_errors.h"
16 #include "ppapi/c/ppb_message_loop.h" 17 #include "ppapi/c/ppb_message_loop.h"
17 #include "ppapi/proxy/plugin_dispatcher.h" 18 #include "ppapi/proxy/plugin_dispatcher.h"
18 #include "ppapi/proxy/plugin_globals.h" 19 #include "ppapi/proxy/plugin_globals.h"
19 #include "ppapi/shared_impl/proxy_lock.h" 20 #include "ppapi/shared_impl/proxy_lock.h"
20 #include "ppapi/thunk/enter.h" 21 #include "ppapi/thunk/enter.h"
21 22
22 using ppapi::thunk::PPB_MessageLoop_API; 23 using ppapi::thunk::PPB_MessageLoop_API;
23 24
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 103
103 return PP_OK; 104 return PP_OK;
104 } 105 }
105 106
106 int32_t MessageLoopResource::Run() { 107 int32_t MessageLoopResource::Run() {
107 if (!IsCurrent()) 108 if (!IsCurrent())
108 return PP_ERROR_WRONG_THREAD; 109 return PP_ERROR_WRONG_THREAD;
109 if (is_main_thread_loop_) 110 if (is_main_thread_loop_)
110 return PP_ERROR_INPROGRESS; 111 return PP_ERROR_INPROGRESS;
111 112
113 base::RunLoop* previous_run_loop = run_loop_;
114 base::RunLoop run_loop;
115 run_loop_ = &run_loop;
116
112 nested_invocations_++; 117 nested_invocations_++;
113 CallWhileUnlocked( 118 CallWhileUnlocked(
114 base::Bind(&base::MessageLoop::Run, base::Unretained(loop_.get()))); 119 base::Bind(&base::RunLoop::Run, base::Unretained(run_loop_)));
115 nested_invocations_--; 120 nested_invocations_--;
116 121
122 run_loop_ = previous_run_loop;
123
117 if (should_destroy_ && nested_invocations_ == 0) { 124 if (should_destroy_ && nested_invocations_ == 0) {
118 task_runner_ = NULL; 125 task_runner_ = NULL;
119 loop_.reset(); 126 loop_.reset();
120 destroyed_ = true; 127 destroyed_ = true;
121 } 128 }
122 return PP_OK; 129 return PP_OK;
123 } 130 }
124 131
125 int32_t MessageLoopResource::PostWork(PP_CompletionCallback callback, 132 int32_t MessageLoopResource::PostWork(PP_CompletionCallback callback,
126 int64_t delay_ms) { 133 int64_t delay_ms) {
127 if (!callback.func) 134 if (!callback.func)
128 return PP_ERROR_BADARGUMENT; 135 return PP_ERROR_BADARGUMENT;
129 if (destroyed_) 136 if (destroyed_)
130 return PP_ERROR_FAILED; 137 return PP_ERROR_FAILED;
131 PostClosure(FROM_HERE, 138 PostClosure(FROM_HERE,
132 base::Bind(callback.func, callback.user_data, 139 base::Bind(callback.func, callback.user_data,
133 static_cast<int32_t>(PP_OK)), 140 static_cast<int32_t>(PP_OK)),
134 delay_ms); 141 delay_ms);
135 return PP_OK; 142 return PP_OK;
136 } 143 }
137 144
138 int32_t MessageLoopResource::PostQuit(PP_Bool should_destroy) { 145 int32_t MessageLoopResource::PostQuit(PP_Bool should_destroy) {
139 if (is_main_thread_loop_) 146 if (is_main_thread_loop_)
140 return PP_ERROR_WRONG_THREAD; 147 return PP_ERROR_WRONG_THREAD;
141 148
142 if (PP_ToBool(should_destroy)) 149 if (PP_ToBool(should_destroy))
143 should_destroy_ = true; 150 should_destroy_ = true;
144 151
145 if (IsCurrent() && nested_invocations_ > 0) 152 if (IsCurrent() && nested_invocations_ > 0) {
146 loop_->QuitWhenIdle(); 153 run_loop_->QuitWhenIdle();
147 else 154 } else {
148 PostClosure(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), 0); 155 PostClosure(FROM_HERE, base::Bind(&MessageLoopResource::QuitRunLoopWhenIdle,
156 Unretained(this)),
157 0);
158 }
149 return PP_OK; 159 return PP_OK;
150 } 160 }
151 161
152 // static 162 // static
153 MessageLoopResource* MessageLoopResource::GetCurrent() { 163 MessageLoopResource* MessageLoopResource::GetCurrent() {
154 PluginGlobals* globals = PluginGlobals::Get(); 164 PluginGlobals* globals = PluginGlobals::Get();
155 if (!globals->msg_loop_slot()) 165 if (!globals->msg_loop_slot())
156 return NULL; 166 return NULL;
157 return reinterpret_cast<MessageLoopResource*>( 167 return reinterpret_cast<MessageLoopResource*>(
158 globals->msg_loop_slot()->Get()); 168 globals->msg_loop_slot()->Get());
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 } 204 }
195 205
196 base::SingleThreadTaskRunner* MessageLoopResource::GetTaskRunner() { 206 base::SingleThreadTaskRunner* MessageLoopResource::GetTaskRunner() {
197 return task_runner_.get(); 207 return task_runner_.get();
198 } 208 }
199 209
200 bool MessageLoopResource::CurrentlyHandlingBlockingMessage() { 210 bool MessageLoopResource::CurrentlyHandlingBlockingMessage() {
201 return currently_handling_blocking_message_; 211 return currently_handling_blocking_message_;
202 } 212 }
203 213
214 void MessageLoopResource::QuitRunLoopWhenIdle() {
215 DCHECK(IsCurrent());
216 DCHECK(run_loop_);
217 run_loop_->QuitWhenIdle();
218 }
219
204 // static 220 // static
205 void MessageLoopResource::ReleaseMessageLoop(void* value) { 221 void MessageLoopResource::ReleaseMessageLoop(void* value) {
206 static_cast<MessageLoopResource*>(value)->DetachFromThread(); 222 static_cast<MessageLoopResource*>(value)->DetachFromThread();
207 } 223 }
208 224
209 // ----------------------------------------------------------------------------- 225 // -----------------------------------------------------------------------------
210 226
211 PP_Resource Create(PP_Instance instance) { 227 PP_Resource Create(PP_Instance instance) {
212 ProxyAutoLock lock; 228 ProxyAutoLock lock;
213 // Validate the instance. 229 // Validate the instance.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 PPB_MessageLoop_Proxy::~PPB_MessageLoop_Proxy() { 293 PPB_MessageLoop_Proxy::~PPB_MessageLoop_Proxy() {
278 } 294 }
279 295
280 // static 296 // static
281 const PPB_MessageLoop_1_0* PPB_MessageLoop_Proxy::GetInterface() { 297 const PPB_MessageLoop_1_0* PPB_MessageLoop_Proxy::GetInterface() {
282 return &ppb_message_loop_interface; 298 return &ppb_message_loop_interface;
283 } 299 }
284 300
285 } // namespace proxy 301 } // namespace proxy
286 } // namespace ppapi 302 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_message_loop_proxy.h ('k') | remoting/client/client_status_logger_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698