зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1308039 - Preempt GC to paint (r=mrbkap)
This commit is contained in:
Родитель
387c3c0e70
Коммит
00e4e382d6
|
@ -307,7 +307,7 @@ HangMonitorChild::InterruptCallback()
|
||||||
if (forcePaint) {
|
if (forcePaint) {
|
||||||
RefPtr<TabChild> tabChild = TabChild::FindTabChild(forcePaintTab);
|
RefPtr<TabChild> tabChild = TabChild::FindTabChild(forcePaintTab);
|
||||||
if (tabChild) {
|
if (tabChild) {
|
||||||
JS::AutoAssertOnGC aaogc(mContext);
|
JS::AutoAssertOnGC nogc(mContext);
|
||||||
JS::AutoAssertOnBarrier nobarrier(mContext);
|
JS::AutoAssertOnBarrier nobarrier(mContext);
|
||||||
tabChild->ForcePaint(forcePaintEpoch);
|
tabChild->ForcePaint(forcePaintEpoch);
|
||||||
}
|
}
|
||||||
|
@ -390,6 +390,7 @@ HangMonitorChild::RecvForcePaint(const TabId& aTabId, const uint64_t& aLayerObse
|
||||||
}
|
}
|
||||||
|
|
||||||
JS_RequestInterruptCallback(mContext);
|
JS_RequestInterruptCallback(mContext);
|
||||||
|
JS::RequestGCInterruptCallback(mContext);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1188,6 +1189,7 @@ mozilla::CreateHangMonitorChild(mozilla::ipc::Transport* aTransport,
|
||||||
|
|
||||||
JSContext* cx = danger::GetJSContext();
|
JSContext* cx = danger::GetJSContext();
|
||||||
JS_AddInterruptCallback(cx, InterruptCallback);
|
JS_AddInterruptCallback(cx, InterruptCallback);
|
||||||
|
JS::AddGCInterruptCallback(cx, InterruptCallback);
|
||||||
|
|
||||||
ProcessHangMonitor* monitor = ProcessHangMonitor::GetOrCreate();
|
ProcessHangMonitor* monitor = ProcessHangMonitor::GetOrCreate();
|
||||||
HangMonitorChild* child = new HangMonitorChild(monitor);
|
HangMonitorChild* child = new HangMonitorChild(monitor);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче