[GTK] Crash of WebProcess on the last WebView disconnect
[WebKit-https.git] / Source / WebCore / platform / graphics / GLContext.cpp
index e9303ed..cf25b3d 100644 (file)
@@ -54,54 +54,6 @@ inline ThreadGlobalGLContext* currentContext()
     return *ThreadGlobalGLContext::staticGLContext;
 }
 
-#if PLATFORM(X11)
-// Because of driver bugs, exiting the program when there are active pbuffers
-// can crash the X server (this has been observed with the official Nvidia drivers).
-// We need to ensure that we clean everything up on exit. There are several reasons
-// that GraphicsContext3Ds will still be alive at exit, including user error (memory
-// leaks) and the page cache. In any case, we don't want the X server to crash.
-typedef Vector<GLContext*> ActiveContextList;
-static ActiveContextList& activeContextList()
-{
-    DEPRECATED_DEFINE_STATIC_LOCAL(ActiveContextList, activeContexts, ());
-    return activeContexts;
-}
-
-void GLContext::addActiveContext(GLContext* context)
-{
-    static bool addedAtExitHandler = false;
-    if (!addedAtExitHandler) {
-        atexit(&GLContext::cleanupActiveContextsAtExit);
-        addedAtExitHandler = true;
-    }
-    activeContextList().append(context);
-}
-
-static bool gCleaningUpAtExit = false;
-
-void GLContext::removeActiveContext(GLContext* context)
-{
-    // If we are cleaning up the context list at exit, don't bother removing the context
-    // from the list, since we don't want to modify the list while it's being iterated.
-    if (gCleaningUpAtExit)
-        return;
-
-    ActiveContextList& contextList = activeContextList();
-    size_t i = contextList.find(context);
-    if (i != notFound)
-        contextList.remove(i);
-}
-
-void GLContext::cleanupActiveContextsAtExit()
-{
-    gCleaningUpAtExit = true;
-
-    ActiveContextList& contextList = activeContextList();
-    for (size_t i = 0; i < contextList.size(); ++i)
-        delete contextList[i];
-}
-#endif // PLATFORM(X11)
-
 static bool initializeOpenGLShimsIfNeeded()
 {
 #if USE(OPENGL_ES_2)
@@ -178,20 +130,12 @@ std::unique_ptr<GLContext> GLContext::createSharingContext(PlatformDisplay& disp
 GLContext::GLContext(PlatformDisplay& display)
     : m_display(display)
 {
-#if PLATFORM(X11)
-    if (display.type() == PlatformDisplay::Type::X11)
-        addActiveContext(this);
-#endif
 }
 
 GLContext::~GLContext()
 {
     if (this == currentContext()->context())
         currentContext()->setContext(nullptr);
-#if PLATFORM(X11)
-    if (m_display.type() == PlatformDisplay::Type::X11)
-        removeActiveContext(this);
-#endif
 }
 
 bool GLContext::makeContextCurrent()