OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "webkit/glue/webkitplatformsupport_impl.h" | 5 #include "webkit/glue/webkitplatformsupport_impl.h" |
6 | 6 |
7 #if defined(OS_LINUX) | 7 #if defined(OS_LINUX) |
8 #include <malloc.h> | 8 #include <malloc.h> |
9 #endif | 9 #endif |
10 | 10 |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 default: | 203 default: |
204 break; | 204 break; |
205 } | 205 } |
206 return -1; | 206 return -1; |
207 } | 207 } |
208 | 208 |
209 WebKitPlatformSupportImpl::WebKitPlatformSupportImpl() | 209 WebKitPlatformSupportImpl::WebKitPlatformSupportImpl() |
210 : main_loop_(MessageLoop::current()), | 210 : main_loop_(MessageLoop::current()), |
211 shared_timer_func_(NULL), | 211 shared_timer_func_(NULL), |
212 shared_timer_fire_time_(0.0), | 212 shared_timer_fire_time_(0.0), |
213 shared_timer_suspended_(0) { | 213 shared_timer_suspended_(0), |
| 214 current_thread_slot_(&DestroyCurrentThread) { |
214 } | 215 } |
215 | 216 |
216 WebKitPlatformSupportImpl::~WebKitPlatformSupportImpl() { | 217 WebKitPlatformSupportImpl::~WebKitPlatformSupportImpl() { |
217 } | 218 } |
218 | 219 |
219 WebThemeEngine* WebKitPlatformSupportImpl::themeEngine() { | 220 WebThemeEngine* WebKitPlatformSupportImpl::themeEngine() { |
220 return &theme_engine_; | 221 return &theme_engine_; |
221 } | 222 } |
222 | 223 |
223 WebURLLoader* WebKitPlatformSupportImpl::createURLLoader() { | 224 WebURLLoader* WebKitPlatformSupportImpl::createURLLoader() { |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
538 | 539 |
539 void WebKitPlatformSupportImpl::callOnMainThread( | 540 void WebKitPlatformSupportImpl::callOnMainThread( |
540 void (*func)(void*), void* context) { | 541 void (*func)(void*), void* context) { |
541 main_loop_->PostTask(FROM_HERE, NewRunnableFunction(func, context)); | 542 main_loop_->PostTask(FROM_HERE, NewRunnableFunction(func, context)); |
542 } | 543 } |
543 | 544 |
544 WebKit::WebThread* WebKitPlatformSupportImpl::createThread(const char* name) { | 545 WebKit::WebThread* WebKitPlatformSupportImpl::createThread(const char* name) { |
545 return new WebThreadImpl(name); | 546 return new WebThreadImpl(name); |
546 } | 547 } |
547 | 548 |
| 549 WebKit::WebThread* WebKitPlatformSupportImpl::currentThread() { |
| 550 WebThreadImplForMessageLoop* thread = |
| 551 static_cast<WebThreadImplForMessageLoop*>(current_thread_slot_.Get()); |
| 552 if (thread) |
| 553 return (thread); |
| 554 |
| 555 scoped_refptr<base::MessageLoopProxy> message_loop = |
| 556 base::MessageLoopProxy::current(); |
| 557 if (!message_loop) |
| 558 return NULL; |
| 559 |
| 560 thread = new WebThreadImplForMessageLoop(message_loop); |
| 561 current_thread_slot_.Set(thread); |
| 562 return thread; |
| 563 } |
| 564 |
548 base::PlatformFile WebKitPlatformSupportImpl::databaseOpenFile( | 565 base::PlatformFile WebKitPlatformSupportImpl::databaseOpenFile( |
549 const WebKit::WebString& vfs_file_name, int desired_flags) { | 566 const WebKit::WebString& vfs_file_name, int desired_flags) { |
550 return base::kInvalidPlatformFileValue; | 567 return base::kInvalidPlatformFileValue; |
551 } | 568 } |
552 | 569 |
553 int WebKitPlatformSupportImpl::databaseDeleteFile( | 570 int WebKitPlatformSupportImpl::databaseDeleteFile( |
554 const WebKit::WebString& vfs_file_name, bool sync_dir) { | 571 const WebKit::WebString& vfs_file_name, bool sync_dir) { |
555 return -1; | 572 return -1; |
556 } | 573 } |
557 | 574 |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
650 } | 667 } |
651 | 668 |
652 void WebKitPlatformSupportImpl::ResumeSharedTimer() { | 669 void WebKitPlatformSupportImpl::ResumeSharedTimer() { |
653 // The shared timer may have fired or been adjusted while we were suspended. | 670 // The shared timer may have fired or been adjusted while we were suspended. |
654 if (--shared_timer_suspended_ == 0 && !shared_timer_.IsRunning()) { | 671 if (--shared_timer_suspended_ == 0 && !shared_timer_.IsRunning()) { |
655 setSharedTimerFireInterval( | 672 setSharedTimerFireInterval( |
656 monotonicallyIncreasingTime() - shared_timer_fire_time_); | 673 monotonicallyIncreasingTime() - shared_timer_fire_time_); |
657 } | 674 } |
658 } | 675 } |
659 | 676 |
| 677 // static |
| 678 void WebKitPlatformSupportImpl::DestroyCurrentThread(void* thread) { |
| 679 WebThreadImplForMessageLoop* impl = |
| 680 static_cast<WebThreadImplForMessageLoop*>(thread); |
| 681 delete impl; |
| 682 } |
| 683 |
660 } // namespace webkit_glue | 684 } // namespace webkit_glue |
OLD | NEW |