Title: [143861] trunk/Source/WebCore
Revision
143861
Author
[email protected]
Date
2013-02-23 23:29:13 -0800 (Sat, 23 Feb 2013)

Log Message

ResourceRequestBase unnecessarily updates when nothing changes
https://bugs.webkit.org/show_bug.cgi?id=110665

Reviewed by Dan Bernstein.

Don't mark platform data for update if nothing really changed. This avoids ever doing
doUpdatePlatformRequest() in NetworkProcess during normal browsing for me, which is
good for performance.

* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::removeCredentials):
(WebCore::ResourceRequestBase::setCachePolicy):
(WebCore::ResourceRequestBase::setTimeoutInterval):
(WebCore::ResourceRequestBase::setFirstPartyForCookies):
(WebCore::ResourceRequestBase::setHTTPMethod):
(WebCore::ResourceRequestBase::clearHTTPAuthorization):
(WebCore::ResourceRequestBase::setAllowCookies):
(WebCore::ResourceRequestBase::setPriority):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (143860 => 143861)


--- trunk/Source/WebCore/ChangeLog	2013-02-24 07:24:12 UTC (rev 143860)
+++ trunk/Source/WebCore/ChangeLog	2013-02-24 07:29:13 UTC (rev 143861)
@@ -1,3 +1,24 @@
+2013-02-23  Alexey Proskuryakov  <[email protected]>
+
+        ResourceRequestBase unnecessarily updates when nothing changes
+        https://bugs.webkit.org/show_bug.cgi?id=110665
+
+        Reviewed by Dan Bernstein.
+
+        Don't mark platform data for update if nothing really changed. This avoids ever doing
+        doUpdatePlatformRequest() in NetworkProcess during normal browsing for me, which is
+        good for performance.
+
+        * platform/network/ResourceRequestBase.cpp:
+        (WebCore::ResourceRequestBase::removeCredentials):
+        (WebCore::ResourceRequestBase::setCachePolicy):
+        (WebCore::ResourceRequestBase::setTimeoutInterval):
+        (WebCore::ResourceRequestBase::setFirstPartyForCookies):
+        (WebCore::ResourceRequestBase::setHTTPMethod):
+        (WebCore::ResourceRequestBase::clearHTTPAuthorization):
+        (WebCore::ResourceRequestBase::setAllowCookies):
+        (WebCore::ResourceRequestBase::setPriority):
+
 2013-02-23  Philip Rogers  <[email protected]>
 
         Prevent crash in animated transform lists

Modified: trunk/Source/WebCore/platform/network/ResourceRequestBase.cpp (143860 => 143861)


--- trunk/Source/WebCore/platform/network/ResourceRequestBase.cpp	2013-02-24 07:24:12 UTC (rev 143860)
+++ trunk/Source/WebCore/platform/network/ResourceRequestBase.cpp	2013-02-24 07:29:13 UTC (rev 143861)
@@ -136,6 +136,9 @@
 {
     updateResourceRequest(); 
 
+    if (m_url.user().isEmpty() && m_url.pass().isEmpty())
+        return;
+
     m_url.setUser(String());
     m_url.setPass(String());
 
@@ -152,6 +155,9 @@
 void ResourceRequestBase::setCachePolicy(ResourceRequestCachePolicy cachePolicy)
 {
     updateResourceRequest(); 
+
+    if (m_cachePolicy == cachePolicy)
+        return;
     
     m_cachePolicy = cachePolicy;
     
@@ -170,7 +176,10 @@
 {
     updateResourceRequest(); 
     
-    m_timeoutInterval = timeoutInterval; 
+    if (m_timeoutInterval == timeoutInterval)
+        return;
+
+    m_timeoutInterval = timeoutInterval;
     
     if (url().protocolIsInHTTPFamily())
         m_platformRequestUpdated = false;
@@ -186,7 +195,10 @@
 void ResourceRequestBase::setFirstPartyForCookies(const KURL& firstPartyForCookies)
 { 
     updateResourceRequest(); 
-    
+
+    if (m_firstPartyForCookies == firstPartyForCookies)
+        return;
+
     m_firstPartyForCookies = firstPartyForCookies;
     
     m_platformRequestUpdated = false;
@@ -203,6 +215,9 @@
 {
     updateResourceRequest(); 
 
+    if (m_httpMethod == httpMethod)
+        return;
+
     m_httpMethod = httpMethod;
     
     if (url().protocolIsInHTTPFamily())
@@ -249,8 +264,12 @@
 {
     updateResourceRequest(); 
 
-    m_httpHeaderFields.remove("Authorization");
+    HTTPHeaderMap::iterator iter = m_httpHeaderFields.find("Authorization");
+    if (iter == m_httpHeaderFields.end())
+        return;
 
+    m_httpHeaderFields.remove(iter);
+
     if (url().protocolIsInHTTPFamily())
         m_platformRequestUpdated = false;
 }
@@ -349,7 +368,10 @@
 void ResourceRequestBase::setAllowCookies(bool allowCookies)
 {
     updateResourceRequest(); 
-    
+
+    if (m_allowCookies == allowCookies)
+        return;
+
     m_allowCookies = allowCookies;
     
     if (url().protocolIsInHTTPFamily())
@@ -367,6 +389,9 @@
 {
     updateResourceRequest();
 
+    if (m_priority == priority)
+        return;
+
     m_priority = priority;
 
     if (url().protocolIsInHTTPFamily())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to