diff --git a/content/browser/WebPageImpl.cpp b/content/browser/WebPageImpl.cpp index ba8cb9c606..01709509ca 100644 --- a/content/browser/WebPageImpl.cpp +++ b/content/browser/WebPageImpl.cpp @@ -89,6 +89,7 @@ void WebPageImpl::initBlink() void WebPageImpl::registerDestroyNotif(DestroyNotif* destroyNotif) { + WTF::Locker locker(m_destroyNotifsMutex); size_t pos = m_destroyNotifs.find(destroyNotif); if (WTF::kNotFound == pos) m_destroyNotifs.append(destroyNotif); @@ -96,6 +97,8 @@ void WebPageImpl::registerDestroyNotif(DestroyNotif* destroyNotif) void WebPageImpl::unregisterDestroyNotif(DestroyNotif* destroyNotif) { + RELEASE_ASSERT(WTF::isMainThread()); + WTF::Locker locker(m_destroyNotifsMutex); size_t pos = m_destroyNotifs.find(destroyNotif); if (WTF::kNotFound != pos) m_destroyNotifs.remove(pos); diff --git a/content/browser/WebPageImpl.h b/content/browser/WebPageImpl.h index e70bf34d1e..a48d295258 100644 --- a/content/browser/WebPageImpl.h +++ b/content/browser/WebPageImpl.h @@ -290,6 +290,7 @@ class WebPageImpl bool m_postCloseWidgetSoonMessage; WTF::Vector m_destroyNotifs; + WTF::Mutex m_destroyNotifsMutex; HRGN m_draggableRegion; HWND m_popupHandle;