Changeset 147291 in webkit


Ignore:
Timestamp:
Mar 31, 2013 4:27:34 PM (11 years ago)
Author:
rafaelw@chromium.org
Message:

HTMLLinkElement should resolve resource URLs when resources will be fetched
https://bugs.webkit.org/show_bug.cgi?id=113630

Source/WebCore:

HTMLLinkElement was resolving its URL when the href attribute was processed and caching it without ever
invalidating the cached URL. This patch removes the cached URL and adds getURL() which resolve the
URL dynamically.

Reviewed by Eric Seidel.

Test: fast/dom/HTMLLinkElement/resolve-url-on-insertion.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::getURL):
(WebCore):
(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::shouldLoadLink):
(WebCore::HTMLLinkElement::process):

  • html/HTMLLinkElement.h:

(HTMLLinkElement):

LayoutTests:

Reviewed by Eric Seidel.

  • fast/dom/HTMLLinkElement/resolve-url-on-insertion-expected.txt: Added.
  • fast/dom/HTMLLinkElement/resolve-url-on-insertion.html: Added.
  • fast/dom/HTMLLinkElement/resources/stylesheet2.css: Added.

(#test2):

Location:
trunk
Files:
3 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r147281 r147291  
     12013-03-31  Rafael Weinstein  <rafaelw@chromium.org>
     2
     3        HTMLLinkElement should resolve resource URLs when resources will be fetched
     4        https://bugs.webkit.org/show_bug.cgi?id=113630
     5
     6        Reviewed by Eric Seidel.
     7
     8        * fast/dom/HTMLLinkElement/resolve-url-on-insertion-expected.txt: Added.
     9        * fast/dom/HTMLLinkElement/resolve-url-on-insertion.html: Added.
     10        * fast/dom/HTMLLinkElement/resources/stylesheet2.css: Added.
     11        (#test2):
     12
    1132013-03-30  Tom Sepez  <tsepez@chromium.org>
    214
  • trunk/Source/WebCore/ChangeLog

    r147287 r147291  
     12013-03-31  Rafael Weinstein  <rafaelw@chromium.org>
     2
     3        HTMLLinkElement should resolve resource URLs when resources will be fetched
     4        https://bugs.webkit.org/show_bug.cgi?id=113630
     5
     6        HTMLLinkElement was resolving its URL when the href attribute was processed and caching it without ever
     7        invalidating the cached URL. This patch removes the cached URL and adds getURL() which resolve the
     8        URL dynamically.
     9
     10        Reviewed by Eric Seidel.
     11
     12        Test: fast/dom/HTMLLinkElement/resolve-url-on-insertion.html
     13
     14        * html/HTMLLinkElement.cpp:
     15        (WebCore::HTMLLinkElement::getURL):
     16        (WebCore):
     17        (WebCore::HTMLLinkElement::parseAttribute):
     18        (WebCore::HTMLLinkElement::shouldLoadLink):
     19        (WebCore::HTMLLinkElement::process):
     20        * html/HTMLLinkElement.h:
     21        (HTMLLinkElement):
     22
    1232013-03-31  Brady Eidson  <beidson@apple.com>
    224
  • trunk/Source/WebCore/html/HTMLLinkElement.cpp

    r147205 r147291  
    138138        process();
    139139    } else if (name == hrefAttr) {
    140         String url = stripLeadingAndTrailingHTMLSpaces(value);
    141         m_url = url.isEmpty() ? KURL() : document()->completeURL(url);
    142140        process();
    143141    } else if (name == typeAttr) {
     
    164162{
    165163    RefPtr<Document> originalDocument = document();
    166     if (!dispatchBeforeLoadEvent(m_url))
     164    if (!dispatchBeforeLoadEvent(getNonEmptyURLAttribute(hrefAttr)))
    167165        return false;
    168166    // A beforeload handler might have removed us from the document or changed the document.
     
    180178
    181179    String type = m_type.lower();
    182 
    183     if (!m_linkLoader.loadLink(m_relAttribute, type, m_sizes->toString(), m_url, document()))
     180    KURL url = getNonEmptyURLAttribute(hrefAttr);
     181
     182    if (!m_linkLoader.loadLink(m_relAttribute, type, m_sizes->toString(), url, document()))
    184183        return;
    185184
     
    187186
    188187    if (m_disabledState != Disabled && (m_relAttribute.m_isStyleSheet || (acceptIfTypeContainsTextCSS && type.contains("text/css")))
    189         && document()->frame() && m_url.isValid()) {
     188        && document()->frame() && url.isValid()) {
    190189       
    191190        String charset = getAttribute(charsetAttr);
     
    219218        // Load stylesheets that are not needed for the rendering immediately with low priority.
    220219        ResourceLoadPriority priority = blocking ? ResourceLoadPriorityUnresolved : ResourceLoadPriorityVeryLow;
    221         CachedResourceRequest request(ResourceRequest(document()->completeURL(m_url)), charset, priority);
     220        CachedResourceRequest request(ResourceRequest(document()->completeURL(url)), charset, priority);
    222221        request.setInitiator(this);
    223222        m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(request);
  • trunk/Source/WebCore/html/HTMLLinkElement.h

    r137045 r147291  
    137137    };
    138138
    139     KURL m_url;
    140139    String m_type;
    141140    String m_media;
Note: See TracChangeset for help on using the changeset viewer.