Skip to content
  • ap's avatar
    Reviewed by Darin. · a01e8e12
    ap authored
            - http://bugzilla.opendarwin.org/show_bug.cgi?id=5499
            Page reload does not send any cache control headers
    
    WebCore:
            * bindings/js/kjs_window.cpp:
            (KJS::LocationFunc::callAsFunction): Call scheduleRefresh() for Location::Reload.
    
            * page/Frame.h: Add scheduleRefresh(). Don't derive from TransferJob or implement its methods - that was
            used only for storing response HTTP headers, which was an overkill.
    
            * page/FramePrivate.h: Replace TransferJob with a HashMap for storing response headers.
    
            * page/Frame.cpp:
            (WebCore::Frame::didOpenURL): Don't needlessly change d->m_cachePolicy. Don't create a TransferJob.
            (WebCore::Frame::stopLoading): Directly access the metadata map, instead of going through a TransferJob.
            (WebCore::Frame::receivedFirstData): Ditto.
            (WebCore::Frame::addMetaData): Ditto.
            (WebCore::Frame::scheduleRefresh): A new function that schedules a refresh, similarly to what
            scheduleRedirection() does.
            (WebCore::Frame::changeLocation): Set request.reload attribute based on the current cache policy.
    
    WebKit:
            * WebView/WebFrame.m:
            (-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]): Set a proper Cache-Control header for 
            reload requests.
            (-[WebFrame loadRequest:]): Reset loadType to WebFrameLoadTypeStandard (after a reload, it stayed at 
            WebFrameLoadTypeReload, so _addExtraFieldsToRequest erroneously added a Cache-Control header to them).
    
    LayoutTests:
            * http/tests/misc/refresh-headers-expected.txt: Added.
            * http/tests/misc/refresh-headers.php: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a01e8e12