Changeset 89312 in webkit


Ignore:
Timestamp:
Jun 20, 2011 4:32:54 PM (13 years ago)
Author:
abarth@webkit.org
Message:

2011-06-20 Adam Barth <abarth@webkit.org>

Reviewed by Eric Seidel.

Remove FrameLoader::m_workingURL
https://bugs.webkit.org/show_bug.cgi?id=63021

FrameLoader shouldn't keep the working URL in separate state. It's
just a function of other state. m_workingURL exists only to create
bugs and confusion.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::documentURL):
  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): (WebCore::FrameLoader::didOpenURL): (WebCore::FrameLoader::receivedFirstData): (WebCore::FrameLoader::willSetEncoding): (WebCore::FrameLoader::commitProvisionalLoad): (WebCore::FrameLoader::open): (WebCore::FrameLoader::finishedLoadingDocument):
  • loader/FrameLoader.h:
Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r89311 r89312  
     12011-06-20  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Remove FrameLoader::m_workingURL
     6        https://bugs.webkit.org/show_bug.cgi?id=63021
     7
     8        FrameLoader shouldn't keep the working URL in separate state.  It's
     9        just a function of other state.  m_workingURL exists only to create
     10        bugs and confusion.
     11
     12        * loader/DocumentLoader.cpp:
     13        (WebCore::DocumentLoader::documentURL):
     14        * loader/DocumentLoader.h:
     15        * loader/FrameLoader.cpp:
     16        (WebCore::FrameLoader::stopLoading):
     17        (WebCore::FrameLoader::didOpenURL):
     18        (WebCore::FrameLoader::receivedFirstData):
     19        (WebCore::FrameLoader::willSetEncoding):
     20        (WebCore::FrameLoader::commitProvisionalLoad):
     21        (WebCore::FrameLoader::open):
     22        (WebCore::FrameLoader::finishedLoadingDocument):
     23        * loader/FrameLoader.h:
     24
    1252011-06-20  Kenneth Russell  <kbr@google.com>
    226
  • trunk/Source/WebCore/loader/DocumentLoader.cpp

    r88984 r89312  
    734734}
    735735
     736KURL DocumentLoader::documentURL() const
     737{
     738    KURL url = substituteData().responseURL();
     739    if (url.isEmpty())
     740        url = requestURL();
     741    if (url.isEmpty())
     742        url = responseURL();
     743    if (url.isEmpty())
     744        url = blankURL();
     745    return url;
     746}
     747
    736748const String& DocumentLoader::responseMIMEType() const
    737749{
  • trunk/Source/WebCore/loader/DocumentLoader.h

    r88610 r89312  
    9494        const SubstituteData& substituteData() const { return m_substituteData; }
    9595
     96        // FIXME: This is the same as requestURL(). We should remove one of them.
    9697        const KURL& url() const;
    9798        const KURL& unreachableURL() const;
     99
     100        // The URL of the document resulting from this DocumentLoader.
     101        KURL documentURL() const;
    98102
    99103        const KURL& originalURL() const;
     
    101105        const KURL& responseURL() const;
    102106        const String& responseMIMEType() const;
    103        
     107
    104108        void replaceRequestURLForSameDocumentNavigation(const KURL&);
    105109        bool isStopping() const { return m_isStopping; }
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r89079 r89312  
    197197    , m_isComplete(false)
    198198    , m_isLoadingMainResource(false)
     199    , m_hasReceivedFirstData(false)
    199200    , m_needsClear(false)
    200201    , m_checkTimer(this, &FrameLoader::checkTimerFired)
     
    419420        m_frame->document()->setParsing(false);
    420421    }
    421  
    422     m_workingURL = KURL();
     422
     423    m_hasReceivedFirstData = true;
    423424
    424425    if (Document* doc = m_frame->document()) {
     
    462463}
    463464
    464 bool FrameLoader::didOpenURL(const KURL& url)
     465bool FrameLoader::didOpenURL()
    465466{
    466467    if (m_frame->navigationScheduler()->redirectScheduledDuringLoad()) {
     
    486487        }
    487488    }
    488     m_workingURL = url;
    489     if (m_workingURL.protocolInHTTPFamily() && !m_workingURL.host().isEmpty() && m_workingURL.path().isEmpty())
    490         m_workingURL.setPath("/");
     489    m_hasReceivedFirstData = false;
    491490
    492491    started();
     
    574573void FrameLoader::receivedFirstData()
    575574{
    576     activeDocumentLoader()->writer()->begin(m_workingURL, false);
     575    KURL workingURL = activeDocumentLoader()->documentURL();
     576#if ENABLE(WEB_ARCHIVE) || ENABLE(MHTML)
     577    if (m_archive)
     578        workingURL = m_archive->mainResource()->url();
     579#endif
     580
     581    activeDocumentLoader()->writer()->begin(workingURL, false);
    577582    activeDocumentLoader()->writer()->setDocumentWasLoadedAsPartOfNavigation();
    578583
     
    587592    }
    588593
    589     m_workingURL = KURL();
     594    m_hasReceivedFirstData = true;
     595
     596    if (!m_documentLoader)
     597        return;
     598    if (m_frame->document()->isViewSource())
     599        return;
    590600
    591601    double delay;
    592602    String url;
    593     if (!m_documentLoader)
    594         return;
    595     if (m_frame->document()->isViewSource())
    596         return;
    597603    if (!parseHTTPRefresh(m_documentLoader->response().httpHeaderField("Refresh"), false, delay, url))
    598604        return;
    599 
    600605    if (url.isEmpty())
    601606        url = m_frame->document()->url().string();
     
    973978void FrameLoader::willSetEncoding()
    974979{
    975     if (!m_workingURL.isEmpty())
     980    if (!m_hasReceivedFirstData)
    976981        receivedFirstData();
    977982}
     
    17711776
    17721777        checkCompleted();
    1773     } else {       
    1774         KURL url = pdl->substituteData().responseURL();
    1775         if (url.isEmpty())
    1776             url = pdl->url();
    1777         if (url.isEmpty())
    1778             url = pdl->responseURL();
    1779         if (url.isEmpty())
    1780             url = blankURL();
    1781 
    1782         didOpenURL(url);
    1783     }
     1778    } else
     1779        didOpenURL();
    17841780
    17851781    LOG(Loading, "WebCoreLoading %s: Finished committing provisional load to URL %s", m_frame->tree()->uniqueName().string().utf8().data(),
     
    20112007    KURL url = cachedFrame.url();
    20122008
     2009    // FIXME: I suspect this block of code doesn't do anything.
    20132010    if (url.protocolInHTTPFamily() && !url.host().isEmpty() && url.path().isEmpty())
    20142011        url.setPath("/");
    2015    
    2016     m_workingURL = url;
     2012
     2013    m_hasReceivedFirstData = false;
    20172014
    20182015    started();
     
    21112108
    21122109    closeURL();
    2113     didOpenURL(mainResource->url());
     2110    didOpenURL();
    21142111
    21152112    ASSERT(m_frame->document());
  • trunk/Source/WebCore/loader/FrameLoader.h

    r89079 r89312  
    388388    void provisionalLoadStarted();
    389389
    390     bool didOpenURL(const KURL&);
     390    bool didOpenURL();
    391391
    392392    void scheduleCheckCompleted();
     
    437437    RefPtr<SerializedScriptValue> m_pendingStateObject;
    438438
    439     KURL m_workingURL;
     439    bool m_hasReceivedFirstData;
    440440
    441441    bool m_needsClear;
Note: See TracChangeset for help on using the changeset viewer.