[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/khtml/css
From: Matthias Grimrath <maps4711 () gmx ! de>
Date: 2010-05-13 7:33:13
Message-ID: 20100513073313.9173AAC8B4 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1126176 by grimrath:
Remember original values from CSS. Delay expanding to full
URLs until needed. It enables the webarchiver plugin to change URLs
in CSS by search&replace and it is probably more correct
regarding the DOM API.
M +4 -2 css_valueimpl.cpp
M +1 -1 css_valueimpl.h
M +12 -14 cssparser.cpp
--- trunk/KDE/kdelibs/khtml/css/css_valueimpl.cpp #1126175:1126176
@@ -25,6 +25,7 @@
#include "css_valueimpl.h"
#include "css_ruleimpl.h"
#include "css_stylesheetimpl.h"
+#include "css/csshelper.h"
#include "cssparser.h"
#include "cssproperties.h"
#include "cssvalues.h"
@@ -1370,7 +1371,7 @@
// -----------------------------------------------------------------
-CSSImageValueImpl::CSSImageValueImpl(const DOMString &url, const StyleBaseImpl* \
style) +CSSImageValueImpl::CSSImageValueImpl(const DOMString &url, StyleBaseImpl* \
style) : CSSPrimitiveValueImpl(url, CSSPrimitiveValue::CSS_URI)
{
khtml::DocLoader *docLoader = 0;
@@ -1380,7 +1381,8 @@
if (root->isCSSStyleSheet())
docLoader = static_cast<const CSSStyleSheetImpl*>(root)->docLoader();
- m_image = docLoader->requestImage(url);
+ KUrl fullURL( style->baseURL(), khtml::parseURL(url).string() );
+ m_image = docLoader->requestImage( fullURL.url() );
if(m_image) m_image->ref(this);
}
--- trunk/KDE/kdelibs/khtml/css/css_valueimpl.h #1126175:1126176
@@ -351,7 +351,7 @@
class CSSImageValueImpl : public CSSPrimitiveValueImpl, public \
khtml::CachedObjectClient {
public:
- CSSImageValueImpl(const DOMString &url, const StyleBaseImpl *style);
+ CSSImageValueImpl(const DOMString &url, StyleBaseImpl *style);
CSSImageValueImpl();
virtual ~CSSImageValueImpl();
--- trunk/KDE/kdelibs/khtml/css/cssparser.cpp #1126175:1126176
@@ -844,11 +844,9 @@
}
else if (value->unit == CSSPrimitiveValue::CSS_URI ) {
// ### allow string in non strict mode?
- DOMString uri = khtml::parseURL( domString( value->string ) );
+ DOMString uri = domString( value->string );
if (!uri.isNull()) {
- parsedValue = new CSSImageValueImpl(
- DOMString(KUrl( styleElement->baseURL(), uri.string()).url()),
- styleElement );
+ parsedValue = new CSSImageValueImpl( uri, styleElement );
valueList->next();
}
}
@@ -1537,9 +1535,8 @@
parsedValue = 0;
if ( val->unit == CSSPrimitiveValue::CSS_URI ) {
// url
- DOMString value = khtml::parseURL(domString(val->string));
- parsedValue = new CSSImageValueImpl(
- DOMString(KUrl( styleElement->baseURL(), value.string()).url() ), \
styleElement ); + DOMString value = domString(val->string);
+ parsedValue = new CSSImageValueImpl( value, styleElement );
#ifdef CSS_DEBUG
kDebug( 6080 ) << "content, url=" << value.string() << " base=" << \
styleElement->baseURL().url( ); #endif
@@ -1649,20 +1646,21 @@
CSSValueImpl* CSSParser::parseBackgroundImage(bool& didParse)
{
- didParse = false;
if (valueList->current()->id == CSS_VAL_NONE) {
didParse = true;
return new CSSImageValueImpl();
- }
- if (valueList->current()->unit == CSSPrimitiveValue::CSS_URI) {
+ } else if (valueList->current()->unit == CSSPrimitiveValue::CSS_URI) {
didParse = true;
- DOMString uri = khtml::parseURL(domString(valueList->current()->string));
+ DOMString uri = domString(valueList->current()->string);
if (!uri.isNull())
- return new CSSImageValueImpl(DOMString(KUrl(styleElement->baseURL(), \
uri.string()).url()),
- styleElement);
- }
+ return new CSSImageValueImpl(uri, styleElement);
+ else
return 0;
+ } else {
+ didParse = false;
+ return 0;
}
+}
CSSValueImpl* CSSParser::parseBackgroundPositionXY(BackgroundPosKind& kindOut)
{
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic