Index: android_webview/renderer/aw_execution_termination_filter.cc |
diff --git a/android_webview/renderer/aw_execution_termination_filter.cc b/android_webview/renderer/aw_execution_termination_filter.cc |
deleted file mode 100644 |
index 75f130dbcb07e71cfad1f4c0564202034af53e87..0000000000000000000000000000000000000000 |
--- a/android_webview/renderer/aw_execution_termination_filter.cc |
+++ /dev/null |
@@ -1,76 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "android_webview/renderer/aw_execution_termination_filter.h" |
- |
-#include <v8.h> |
- |
-#include "android_webview/common/render_view_messages.h" |
-#include "base/message_loop/message_loop_proxy.h" |
- |
-namespace { |
-const int kTerminationTimeoutInSeconds = 3; |
-} // namespace |
- |
-namespace android_webview { |
- |
-AwExecutionTerminationFilter::AwExecutionTerminationFilter( |
- const scoped_refptr<base::MessageLoopProxy>& io_message_loop, |
- const scoped_refptr<base::MessageLoopProxy>& main_message_loop) |
- : io_message_loop_(io_message_loop), |
- main_message_loop_(main_message_loop), |
- render_thread_isolate_(NULL) { |
-} |
- |
-AwExecutionTerminationFilter::~AwExecutionTerminationFilter() { |
-} |
- |
-void AwExecutionTerminationFilter::SetRenderThreadIsolate( |
- v8::Isolate* isolate) { |
- render_thread_isolate_ = isolate; |
-} |
- |
-bool AwExecutionTerminationFilter::OnMessageReceived( |
- const IPC::Message& message) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP(AwExecutionTerminationFilter, message) |
- IPC_MESSAGE_HANDLER(AwViewMsg_CheckRenderThreadResponsiveness, |
- OnCheckRenderThreadResponsiveness) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- return handled; |
-} |
- |
-void AwExecutionTerminationFilter::OnCheckRenderThreadResponsiveness() { |
- termination_timer_.Start( |
- FROM_HERE, |
- base::TimeDelta::FromSeconds(kTerminationTimeoutInSeconds), |
- base::Bind(&AwExecutionTerminationFilter::TerminateExecution, this)); |
- // Post a request to stop the timer via render thread's message loop |
- // to ensure that render thread is responsive. |
- main_message_loop_->PostTask( |
- FROM_HERE, |
- base::Bind(&AwExecutionTerminationFilter::StopTimerOnMainThread, |
- this)); |
-} |
- |
-void AwExecutionTerminationFilter::StopTimerOnMainThread() { |
- io_message_loop_->PostTask( |
- FROM_HERE, |
- base::Bind(&AwExecutionTerminationFilter::StopTimer, this)); |
-} |
- |
-void AwExecutionTerminationFilter::StopTimer() { |
- termination_timer_.Stop(); |
-} |
- |
-void AwExecutionTerminationFilter::TerminateExecution() { |
- if (render_thread_isolate_) { |
- LOG(WARNING) << "Trying to terminate JavaScript execution because " |
- "renderer is unresponsive"; |
- v8::V8::TerminateExecution(render_thread_isolate_); |
- } |
-} |
- |
-} // namespace android_webview |