Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "content/renderer/render_thread_impl.h" | 5 #include "content/renderer/render_thread_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 642 RemoveFilter(audio_message_filter_.get()); | 642 RemoveFilter(audio_message_filter_.get()); |
| 643 audio_message_filter_ = NULL; | 643 audio_message_filter_ = NULL; |
| 644 | 644 |
| 645 compositor_thread_.reset(); | 645 compositor_thread_.reset(); |
| 646 input_handler_manager_.reset(); | 646 input_handler_manager_.reset(); |
| 647 if (input_event_filter_.get()) { | 647 if (input_event_filter_.get()) { |
| 648 RemoveFilter(input_event_filter_.get()); | 648 RemoveFilter(input_event_filter_.get()); |
| 649 input_event_filter_ = NULL; | 649 input_event_filter_ = NULL; |
| 650 } | 650 } |
| 651 | 651 |
| 652 // RemoveEmbeddedWorkerRoute may be called while deleting | |
| 653 // EmbeddedWorkerDispatcher. So it must be deleted before deleting | |
| 654 // RenderThreadImpl. | |
| 655 embedded_worker_dispatcher_.reset(); | |
| 656 | |
| 657 // Ramp down IDB before we ramp down WebKit (and V8), since IDB classes might | 652 // Ramp down IDB before we ramp down WebKit (and V8), since IDB classes might |
| 658 // hold pointers to V8 objects (e.g., via pending requests). | 653 // hold pointers to V8 objects (e.g., via pending requests). |
| 659 main_thread_indexed_db_dispatcher_.reset(); | 654 main_thread_indexed_db_dispatcher_.reset(); |
| 660 | 655 |
| 661 main_thread_compositor_task_runner_ = NULL; | 656 main_thread_compositor_task_runner_ = NULL; |
| 662 | 657 |
| 663 if (blink_platform_impl_) | 658 if (blink_platform_impl_) |
| 664 blink::shutdown(); | 659 blink::shutdown(); |
| 665 | 660 |
| 661 // RemoveEmbeddedWorkerRoute may be called while deleting | |
| 662 // EmbeddedWorkerDispatcher. So it must be deleted before deleting | |
| 663 // RenderThreadImpl. | |
| 664 embedded_worker_dispatcher_.reset(); | |
|
horo
2014/10/27 13:38:25
Could you please write the comments about the race
Kunihiko Sakamoto
2014/10/28 01:12:27
Done.
| |
| 665 | |
| 666 lazy_tls.Pointer()->Set(NULL); | 666 lazy_tls.Pointer()->Set(NULL); |
| 667 | 667 |
| 668 // TODO(port) | 668 // TODO(port) |
| 669 #if defined(OS_WIN) | 669 #if defined(OS_WIN) |
| 670 // Clean up plugin channels before this thread goes away. | 670 // Clean up plugin channels before this thread goes away. |
| 671 NPChannelBase::CleanupChannels(); | 671 NPChannelBase::CleanupChannels(); |
| 672 #endif | 672 #endif |
| 673 } | 673 } |
| 674 | 674 |
| 675 bool RenderThreadImpl::Send(IPC::Message* msg) { | 675 bool RenderThreadImpl::Send(IPC::Message* msg) { |
| (...skipping 908 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1584 hidden_widget_count_--; | 1584 hidden_widget_count_--; |
| 1585 | 1585 |
| 1586 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { | 1586 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { |
| 1587 return; | 1587 return; |
| 1588 } | 1588 } |
| 1589 | 1589 |
| 1590 ScheduleIdleHandler(kLongIdleHandlerDelayMs); | 1590 ScheduleIdleHandler(kLongIdleHandlerDelayMs); |
| 1591 } | 1591 } |
| 1592 | 1592 |
| 1593 } // namespace content | 1593 } // namespace content |
| OLD | NEW |