Crash when resume ScriptedIdleTaskController instance
Reported by
manjian2...@gmail.com,
Nov 6
|
|
Issue description
Example URL:
Steps to reproduce the problem:
No idea, monkey test reports that.
What is the expected behavior?
What went wrong?
according to the crash backtrace
00 pc 00f0b272 blink::V8ScriptRunner::CallFunction(v8::Local<v8::Function>, blink::ExecutionContext*, v8::Local<v8::Value>, int, v8::Local<v8::Value>*, v8::Isolate*) LINE: v8_script_runner.cc:412
01 pc 00f32fa5 blink::V8IdleRequestCallback::Invoke(blink::ScriptWrappable*, blink::IdleDeadline*) LINE: v8_idle_request_callback.cc:85
02 pc 00f3305f blink::V8IdleRequestCallback::InvokeAndReportException(blink::ScriptWrappable*, blink::IdleDeadline*) LINE: v8_idle_request_callback.cc:107
03 pc 0119ea71 blink::ScriptedIdleTaskController::RunCallback(int, base::TimeTicks, blink::IdleDeadline::CallbackType) LINE: scripted_idle_task_controller.cc:232
04 pc 0119eb7f blink::ScriptedIdleTaskController::Unpause() LINE: scripted_idle_task_controller.cc:256
05 pc 01165ce1 blink::ContextLifecycleNotifier::NotifyResumingPausableObjects()::$_0::operator()(blink::ContextLifecycleObserver*) const LINE: context_lifecycle_notifier.cc:45
(inlined by) void blink::LifecycleNotifier<blink::ExecutionContext, blink::ContextLifecycleObserver>::ForEachObserver<blink::ContextLifecycleNotifier::NotifyResumingPausableObjects()::$_0>(blink::ContextLifecycleNotifier::NotifyResumingPausableObjects()::$_0 const&) const LINE: lifecycle_notifier.h:80
(inlined by) blink::ContextLifecycleNotifier::NotifyResumingPausableObjects() LINE: context_lifecycle_notifier.cc:36
06 pc 011f7c4f blink::ExecutionContext::UnpauseScheduledTasks() LINE: execution_context.cc:100
07 pc 013ce813 blink::FrameLoader::SetDefersLoading(bool) LINE: frame_loader.cc:254
08 pc 013ead0b blink::Page::SetPaused(bool) LINE: page.cc:383
09 pc 013ef02f blink::ScopedPagePauser::SetPaused(bool) LINE: scoped_page_pauser.cc:63
10 pc 013ef057 blink::ScopedPagePauser::~ScopedPagePauser() LINE: scoped_page_pauser.cc:53
11 pc 013e3523 bool blink::OpenJavaScriptDialog<blink::ChromeClient::OpenJavaScriptAlert(blink::LocalFrame*, WTF::String const&)::$_1>(blink::LocalFrame*, WTF::String const&, blink::ChromeClient::DialogType, blink::ChromeClient::OpenJavaScriptAlert(blink::LocalFrame*, WTF::String const&)::$_1 const&) LINE: chrome_client.cc:119
(inlined by) blink::ChromeClient::OpenJavaScriptAlert(blink::LocalFrame*, WTF::String const&) LINE: chrome_client.cc:137
12 pc 0122f8c5 blink::LocalDOMWindow::alert(blink::ScriptState*, WTF::String const&) LINE: local_dom_window.cc:767
The iteration starts from
template <typename ForEachCallable>
void ForEachObserver(const ForEachCallable& callable) const {
base::AutoReset<IterationState> scope(&iteration_state_, kAllowingNone);
for (LifecycleObserverBase* observer_base : observers_) {
Observer* observer = static_cast<Observer*>(observer_base);
callable(observer);
}
}
and set iteration_state_ to kAllowingNone. But check on
CHECK(!context->IsIteratingOverObservers());
conflicts.
Does it occur on multiple sites: N/A
Is it a problem with a plugin? N/A
Did this work before? N/A
Does this work in other browsers? N/A
Chrome version: 69.0.3497.76 Channel: stable
OS Version: 6
Flash Version:
|
|
►
Sign in to add a comment |
|
Comment 1 by dtapu...@chromium.org
, Nov 6