Changeset 19524 in webkit


Ignore:
Timestamp:
Feb 9, 2007 12:50:57 AM (17 years ago)
Author:
bdash
Message:

2007-02-09 Mark Rowe <mrowe@apple.com>

Reviewed by Maciej.

http://bugs.webkit.org/show_bug.cgi?id=12705
REGRESSION: Crash with user stylesheet set

Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.

  • ChangeLog:
  • loader/DocLoader.cpp: (WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet. (WebCore::DocLoader::requestUserCSSStyleSheet): (WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
  • loader/DocLoader.h:
  • page/Frame.cpp: (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
Location:
trunk/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r19523 r19524  
     12007-02-09  Mark Rowe  <mrowe@apple.com>
     2
     3        Reviewed by Maciej.
     4
     5        http://bugs.webkit.org/show_bug.cgi?id=12705
     6        REGRESSION: Crash with user stylesheet set
     7
     8        Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.
     9
     10        * ChangeLog:
     11        * loader/DocLoader.cpp:
     12        (WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet.
     13        (WebCore::DocLoader::requestUserCSSStyleSheet):
     14        (WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
     15        * loader/DocLoader.h:
     16        * page/Frame.cpp:
     17        (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
     18
    1192007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
    220
  • trunk/WebCore/loader/DocLoader.cpp

    r19500 r19524  
    9494}
    9595
    96 CachedCSSStyleSheet* DocLoader::requestCSSStyleSheet(const String& url, const String& charset)
    97 {
    98     return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, url, &charset));
     96CachedCSSStyleSheet* DocLoader::requestCSSStyleSheet(const String& url, const String& charset, bool isUserStyleSheet)
     97{
     98    return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, url, &charset, isUserStyleSheet));
     99}
     100
     101CachedCSSStyleSheet* DocLoader::requestUserCSSStyleSheet(const String& url, const String& charset)
     102{
     103    return requestCSSStyleSheet(url, charset, true);
    99104}
    100105
     
    118123#endif
    119124
    120 CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String* charset)
     125CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String* charset, bool skipCanLoadCheck)
    121126{
    122127    KURL fullURL = m_doc->completeURL(url.deprecatedString());
     
    133138    CachedResource* resource = 0;
    134139    //If you are not allowed to load you may not get from the cache either.
    135     if (fl && fl->canLoad(fullURL, fl->outgoingReferrer(), hideReferrer)) {
     140    if (skipCanLoadCheck || (fl && fl->canLoad(fullURL, fl->outgoingReferrer(), hideReferrer))) {
    136141        resource = cache()->requestResource(this, type, fullURL, m_expireDate, charset);
    137142        if (resource) {
  • trunk/WebCore/loader/DocLoader.h

    r18771 r19524  
    5757
    5858    CachedImage* requestImage(const String& url);
    59     CachedCSSStyleSheet* requestCSSStyleSheet(const String& url, const String& charset);
     59    CachedCSSStyleSheet* requestCSSStyleSheet(const String& url, const String& charset, bool isUserStyleSheet = false);
     60    CachedCSSStyleSheet* requestUserCSSStyleSheet(const String& url, const String& charset);
    6061    CachedScript* requestScript(const String& url, const String& charset);
    6162
     
    8889
    8990private:
    90     CachedResource* requestResource(CachedResource::Type, const String& url, const String* charset = 0);
     91    CachedResource* requestResource(CachedResource::Type, const String& url, const String* charset = 0, bool skipCanLoadCheck = false);
    9192
    9293    void checkForReload(const KURL&);
  • trunk/WebCore/page/Frame.cpp

    r19522 r19524  
    130130    UserStyleSheetLoader(Frame* frame, const String& url, DocLoader* docLoader)
    131131        : m_frame(frame)
    132         , m_cachedSheet(docLoader->requestCSSStyleSheet(url, ""))
     132        , m_cachedSheet(docLoader->requestUserCSSStyleSheet(url, ""))
    133133    {
    134134        m_cachedSheet->ref(this);
Note: See TracChangeset for help on using the changeset viewer.