Title: [127337] trunk/Source/WebKit2
Revision
127337
Author
[email protected]
Date
2012-08-31 16:49:17 -0700 (Fri, 31 Aug 2012)

Log Message

        [WK2] Use initial process in multi-process mode, too
        https://bugs.webkit.org/show_bug.cgi?id=95612

        Reviewed by Sam Weinig.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext):
        (WebKit::WebContext::warmInitialProcess):
        (WebKit::WebContext::disconnectProcess):
        (WebKit::WebContext::createWebPage):
        * UIProcess/WebContext.h:
        Added a boolean telling whether the last (normally, the only) process in m_processes
        is available for use in a new page.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (127336 => 127337)


--- trunk/Source/WebKit2/ChangeLog	2012-08-31 23:46:52 UTC (rev 127336)
+++ trunk/Source/WebKit2/ChangeLog	2012-08-31 23:49:17 UTC (rev 127337)
@@ -1,5 +1,21 @@
 2012-08-31  Alexey Proskuryakov  <[email protected]>
 
+        [WK2] Use initial process in multi-process mode, too
+        https://bugs.webkit.org/show_bug.cgi?id=95612
+
+        Reviewed by Sam Weinig.
+
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::WebContext):
+        (WebKit::WebContext::warmInitialProcess):
+        (WebKit::WebContext::disconnectProcess):
+        (WebKit::WebContext::createWebPage):
+        * UIProcess/WebContext.h:
+        Added a boolean telling whether the last (normally, the only) process in m_processes
+        is available for use in a new page.
+
+2012-08-31  Alexey Proskuryakov  <[email protected]>
+
         [WK2] WebProcesses should not wait 60 seconds to close in multi-process mode
         https://bugs.webkit.org/show_bug.cgi?id=95616
 

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (127336 => 127337)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2012-08-31 23:46:52 UTC (rev 127336)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2012-08-31 23:49:17 UTC (rev 127337)
@@ -112,6 +112,7 @@
 
 WebContext::WebContext(ProcessModel processModel, const String& injectedBundlePath)
     : m_processModel(processModel)
+    , m_haveInitialEmptyProcess(false)
     , m_defaultPageGroup(WebPageGroup::create())
     , m_injectedBundlePath(injectedBundlePath)
     , m_visitedLinkProvider(this)
@@ -363,8 +364,13 @@
 
 void WebContext::warmInitialProcess()  
 {
-    ASSERT(m_processes.isEmpty());
+    if (m_haveInitialEmptyProcess) {
+        ASSERT(!m_processes.isEmpty());
+        return;
+    }
+
     m_processes.append(createNewWebProcess());
+    m_haveInitialEmptyProcess = true;
 }
 
 void WebContext::enableProcessTermination()
@@ -493,8 +499,13 @@
         process = m_processes[0];
     } else {
         // FIXME (Multi-WebProcess): Add logic for sharing a process.
-        process = createNewWebProcess();
-        m_processes.append(process);
+        if (m_haveInitialEmptyProcess) {
+            process = m_processes.last();
+            m_haveInitialEmptyProcess = false;
+        } else {
+            process = createNewWebProcess();
+            m_processes.append(process);
+        }
     }
 
     if (!pageGroup)

Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (127336 => 127337)


--- trunk/Source/WebKit2/UIProcess/WebContext.h	2012-08-31 23:46:52 UTC (rev 127336)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h	2012-08-31 23:49:17 UTC (rev 127337)
@@ -277,6 +277,7 @@
     ProcessModel m_processModel;
     
     Vector<RefPtr<WebProcessProxy> > m_processes;
+    bool m_haveInitialEmptyProcess;
 
     RefPtr<WebPageGroup> m_defaultPageGroup;
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to