Changeset 96249 in webkit


Ignore:
Timestamp:
Sep 28, 2011 12:55:44 PM (13 years ago)
Author:
Csaba Osztrogonác
Message:

Fix a regression in r96060. ResourceLoader shouldn't get
initialized with a null DocumentLoader.
https://bugs.webkit.org/show_bug.cgi?id=69004

Patch by Nate Chapin <Nate Chapin> on 2011-09-28
Reviewed by Csaba Osztrogonác.

This should fix a debug crash in some platforms in
plugins/js-from-destroy.html

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init): Move the activeDocumentLoader() null checks back

to SubresouceLoader::create().

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::create):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r96239 r96249  
     12011-09-28  Nate Chapin  <japhet@chromium.org>
     2
     3        Fix a regression in r96060. ResourceLoader shouldn't get
     4        initialized with a null DocumentLoader.
     5        https://bugs.webkit.org/show_bug.cgi?id=69004
     6
     7        Reviewed by Csaba Osztrogonác.
     8
     9        This should fix a debug crash in some platforms in
     10        plugins/js-from-destroy.html
     11
     12        * loader/ResourceLoader.cpp:
     13        (WebCore::ResourceLoader::init): Move the activeDocumentLoader() null checks back
     14            to SubresouceLoader::create().
     15        * loader/SubresourceLoader.cpp:
     16        (WebCore::SubresourceLoader::create):
     17
    1182011-09-28  Adam Barth  <abarth@webkit.org>
    219
  • trunk/Source/WebCore/loader/ResourceLoader.cpp

    r96060 r96249  
    114114    ResourceRequest clientRequest(r);
    115115   
    116     FrameLoader* frameLoader = m_frame->loader();
    117     if (m_options.securityCheck == DoSecurityCheck && (frameLoader->state() == FrameStateProvisional || !frameLoader->activeDocumentLoader() || frameLoader->activeDocumentLoader()->isStopping())) {
    118         releaseResources();
    119         return false;
    120     }
    121    
    122116    if (m_options.securityCheck == DoSecurityCheck && !m_frame->document()->securityOrigin()->canDisplay(clientRequest.url())) {
    123117        FrameLoader::reportLocalLoadFailed(m_frame.get(), clientRequest.url().string());
  • trunk/Source/WebCore/loader/SubresourceLoader.cpp

    r96060 r96249  
    6767        return 0;
    6868
    69     FrameLoader* fl = frame->loader();
     69    FrameLoader* frameLoader = frame->loader();
     70    if (options.securityCheck == DoSecurityCheck && (frameLoader->state() == FrameStateProvisional || !frameLoader->activeDocumentLoader() || frameLoader->activeDocumentLoader()->isStopping()))
     71        return 0;
     72
    7073    ResourceRequest newRequest = request;
    7174
     
    7780    String outgoingOrigin;
    7881    if (request.httpReferrer().isNull()) {
    79         outgoingReferrer = fl->outgoingReferrer();
    80         outgoingOrigin = fl->outgoingOrigin();
     82        outgoingReferrer = frameLoader->outgoingReferrer();
     83        outgoingOrigin = frameLoader->outgoingOrigin();
    8184    } else {
    8285        outgoingReferrer = request.httpReferrer();
     
    9093    FrameLoader::addHTTPOriginIfNeeded(newRequest, outgoingOrigin);
    9194
    92     fl->addExtraFieldsToSubresourceRequest(newRequest);
     95    frameLoader->addExtraFieldsToSubresourceRequest(newRequest);
    9396
    9497    RefPtr<SubresourceLoader> subloader(adoptRef(new SubresourceLoader(frame, client, options)));
Note: See TracChangeset for help on using the changeset viewer.