Changeset 81635 in webkit


Ignore:
Timestamp:
Mar 21, 2011 7:32:42 PM (13 years ago)
Author:
Nate Chapin
Message:

2011-03-21 Nate Chapin <Nate Chapin>

Reviewed by Brady Eidson.

Tests for https://bugs.webkit.org/show_bug.cgi?id=38690.

  • http/tests/cache/post-redirect-get-expected.txt: Added.
  • http/tests/cache/post-redirect-get.php: Added.
  • http/tests/cache/post-with-cached-subresources-expected.txt: Added.
  • http/tests/cache/post-with-cached-subresources.php: Added.
  • http/tests/cache/resources/post-image-to-verify.php: Added.

2011-03-21 Nate Chapin <Nate Chapin>

Reviewed by Brady Eidson.

Do not check the DocumentLoader's request cache policy
in determining whether we should force revalidation of a cached
subresource. If the main resource received headers telling it not
to cache, that policy will be propagated to subresources.

The previous behavior is left in behind a flag in Settings, since
QuickLook depends on it.

https://bugs.webkit.org/show_bug.cgi?id=38690

Tests: http/tests/cache/post-redirect-get.php

http/tests/cache/post-with-cached-subresources.php

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::subresourceCachePolicy): (WebCore::FrameLoader::loadPostRequest):
  • page/Settings.cpp: (WebCore::Settings::Settings):
  • page/Settings.h: (WebCore::Settings::setUseQuickLookResourceCachingQuirks): (WebCore::Settings::useQuickLookResourceCachingQuirks):

2011-03-21 Nate Chapin <Nate Chapin>

Reviewed by Brady Eidson.

Expose a preference to use caching quirks for QuickLook,
and use it if the QuickLook framework is loaded.

https://bugs.webkit.org/show_bug.cgi?id=38690

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm: (useQuickLookQuirks): (+[WebPreferences initialize]): (-[WebPreferences useQuickLookResourceCachingQuirks]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]):
Location:
trunk
Files:
5 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r81632 r81635  
     12011-03-21  Nate Chapin  <japhet@chromium.org>
     2
     3        Reviewed by Brady Eidson.
     4
     5        Tests for https://bugs.webkit.org/show_bug.cgi?id=38690.
     6
     7        * http/tests/cache/post-redirect-get-expected.txt: Added.
     8        * http/tests/cache/post-redirect-get.php: Added.
     9        * http/tests/cache/post-with-cached-subresources-expected.txt: Added.
     10        * http/tests/cache/post-with-cached-subresources.php: Added.
     11        * http/tests/cache/resources/post-image-to-verify.php: Added.
     12
    1132011-03-21  Daniel Cheng  <dcheng@chromium.org>
    214
  • trunk/Source/WebCore/ChangeLog

    r81625 r81635  
     12011-03-21  Nate Chapin  <japhet@chromium.org>
     2
     3        Reviewed by Brady Eidson.
     4
     5        Do not check the DocumentLoader's request cache policy
     6        in determining whether we should force revalidation of a cached
     7        subresource. If the main resource received headers telling it not
     8        to cache, that policy will be propagated to subresources.
     9
     10        The previous behavior is left in behind a flag in Settings, since
     11        QuickLook depends on it.
     12
     13        https://bugs.webkit.org/show_bug.cgi?id=38690
     14
     15        Tests: http/tests/cache/post-redirect-get.php
     16               http/tests/cache/post-with-cached-subresources.php
     17
     18        * loader/FrameLoader.cpp:
     19        (WebCore::FrameLoader::subresourceCachePolicy):
     20        (WebCore::FrameLoader::loadPostRequest):
     21        * page/Settings.cpp:
     22        (WebCore::Settings::Settings):
     23        * page/Settings.h:
     24        (WebCore::Settings::setUseQuickLookResourceCachingQuirks):
     25        (WebCore::Settings::useQuickLookResourceCachingQuirks):
     26
    1272011-03-21  Rik Cabanier  <cabanier@adobe.com>
    228
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r81576 r81635  
    23512351    }
    23522352
    2353     // FIXME: POST documents are always Reloads, but their subresources should still be Revalidate.
    2354     // If we bring the CachePolicy.h and ResourceRequest cache policy enums in sync with each other and
    2355     // remember "Revalidate" in ResourceRequests, we can remove this "POST" check and return either "Reload"
    2356     // or "Revalidate" if the DocumentLoader was requested with either.
    23572353    const ResourceRequest& request(documentLoader()->request());
    2358     if (request.cachePolicy() == ReloadIgnoringCacheData && !equalIgnoringCase(request.httpMethod(), "post"))
     2354    Settings* settings = m_frame->settings();
     2355    if (settings && settings->useQuickLookResourceCachingQuirks() && request.cachePolicy() == ReloadIgnoringCacheData && !equalIgnoringCase(request.httpMethod(), "post"))
    23592356        return CachePolicyRevalidate;
    23602357
     
    27472744{
    27482745    RefPtr<FormState> formState = prpFormState;
    2749 
    2750     // When posting, use the NSURLRequestReloadIgnoringCacheData load flag.
    2751     // This prevents a potential bug which may cause a page with a form that uses itself
    2752     // as an action to be returned from the cache without submitting.
    2753 
    2754     // FIXME: Where's the code that implements what the comment above says?
    27552746
    27562747    // Previously when this method was reached, the original FrameLoadRequest had been deconstructed to build a
  • trunk/Source/WebCore/page/Settings.cpp

    r81305 r81635  
    176176    , m_hyperlinkAuditingEnabled(false)
    177177    , m_crossOriginCheckInGetMatchedCSSRulesDisabled(false)
     178    , m_useQuickLookResourceCachingQuirks(false)
    178179    , m_forceCompositingMode(false)
    179180{
  • trunk/Source/WebCore/page/Settings.h

    r81289 r81635  
    372372        void setCrossOriginCheckInGetMatchedCSSRulesDisabled(bool flag) { m_crossOriginCheckInGetMatchedCSSRulesDisabled = flag; }
    373373        bool crossOriginCheckInGetMatchedCSSRulesDisabled() const { return m_crossOriginCheckInGetMatchedCSSRulesDisabled; }
     374       
     375        void setUseQuickLookResourceCachingQuirks(bool flag) { m_useQuickLookResourceCachingQuirks = flag; }
     376        bool useQuickLookResourceCachingQuirks() const { return m_useQuickLookResourceCachingQuirks; }
    374377
    375378        void setForceCompositingMode(bool flag) { m_forceCompositingMode = flag; }
     
    474477        bool m_hyperlinkAuditingEnabled : 1;
    475478        bool m_crossOriginCheckInGetMatchedCSSRulesDisabled : 1;
     479        bool m_useQuickLookResourceCachingQuirks : 1;
    476480        bool m_forceCompositingMode : 1;
    477481
  • trunk/Source/WebKit/mac/ChangeLog

    r81619 r81635  
     12011-03-21  Nate Chapin  <japhet@chromium.org>
     2
     3        Reviewed by Brady Eidson.
     4
     5        Expose a preference to use caching quirks for QuickLook,
     6        and use it if the QuickLook framework is loaded.
     7
     8        https://bugs.webkit.org/show_bug.cgi?id=38690
     9
     10        * WebView/WebPreferenceKeysPrivate.h:
     11        * WebView/WebPreferences.mm:
     12        (useQuickLookQuirks):
     13        (+[WebPreferences initialize]):
     14        (-[WebPreferences useQuickLookResourceCachingQuirks]):
     15        * WebView/WebPreferencesPrivate.h:
     16        * WebView/WebView.mm:
     17        (-[WebView _preferencesChangedNotification:]):
     18
    1192011-03-21  Chris Fleizach  <cfleizach@apple.com>
    220
  • trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r80756 r81635  
    106106#define WebKitMemoryInfoEnabledPreferenceKey @"WebKitMemoryInfoEnabled"
    107107#define WebKitHyperlinkAuditingEnabledPreferenceKey @"WebKitHyperlinkAuditingEnabled"
     108#define WebKitUseQuickLookResourceCachingQuirksPreferenceKey @"WebKitUseQuickLookResourceCachingQuirks"
    108109
    109110// These are private both because callers should be using the cover methods and because the
  • trunk/Source/WebKit/mac/WebView/WebPreferences.mm

    r80756 r81635  
    135135
    136136    return cacheModel;
     137}
     138
     139static bool useQuickLookQuirks(void)
     140{
     141    NSArray* frameworks = [NSBundle allFrameworks];
     142                           
     143    if (!frameworks)
     144        return false;
     145
     146    for (unsigned int i = 0; i < [frameworks count]; i++) {
     147        NSBundle* bundle = [frameworks objectAtIndex: i];
     148        const char* bundleID = [[bundle bundleIdentifier] UTF8String];
     149        if (bundleID && !strcasecmp(bundleID, "com.apple.QuickLookUIFramework"))
     150            return true;
     151    }
     152    return false;
    137153}
    138154
     
    374390        [NSNumber numberWithBool:YES],  WebKitHyperlinkAuditingEnabledPreferenceKey,
    375391        [NSNumber numberWithBool:NO],   WebKitUsePreHTML5ParserQuirksKey,
     392        [NSNumber numberWithBool:useQuickLookQuirks()], WebKitUseQuickLookResourceCachingQuirksPreferenceKey,
    376393        [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
    377394        [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,
     
    13971414}
    13981415
     1416- (BOOL)useQuickLookResourceCachingQuirks
     1417{
     1418    return [self _boolValueForKey:WebKitUseQuickLookResourceCachingQuirksPreferenceKey];
     1419}
     1420
    13991421- (void)didRemoveFromWebView
    14001422{
  • trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h

    r80756 r81635  
    237237- (BOOL)usePreHTML5ParserQuirks;
    238238
     239- (BOOL)useQuickLookResourceCachingQuirks;
     240
    239241@end
  • trunk/Source/WebKit/mac/WebView/WebView.mm

    r81600 r81635  
    15171517    settings->setHyperlinkAuditingEnabled([preferences hyperlinkAuditingEnabled]);
    15181518    settings->setUsePreHTML5ParserQuirks([self _needsPreHTML5ParserQuirks]);
     1519    settings->setUseQuickLookResourceCachingQuirks([preferences useQuickLookResourceCachingQuirks]);
    15191520    settings->setCrossOriginCheckInGetMatchedCSSRulesDisabled([self _needsUnrestrictedGetMatchedCSSRules]);
    15201521
Note: See TracChangeset for help on using the changeset viewer.