[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/khtml
From: Maks Orlovich <maksim () kde ! org>
Date: 2010-11-26 19:36:41
Message-ID: 20101126193641.68B87AC8A2 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1201110 by orlovich:
Make sure we don't lose base for javascript: URls and such. Fixes problem
noted by dfaure on kfm-devel.
M +9 -9 khtml_part.cpp
M +1 -1 khtmlpart_p.h
--- trunk/KDE/kdelibs/khtml/khtml_part.cpp #1201109:1201110
@@ -4441,11 +4441,9 @@
KHTMLPart* p = static_cast<KHTMLPart*>(static_cast<KParts::ReadOnlyPart \
*>(inPart));
p->begin();
- if (d->m_doc && p->d->m_doc)
- p->d->m_doc->setBaseURL(d->m_doc->baseURL());
// We may have to re-propagate the domain here if we go here due to navigation
- d->propagateInitialDomainTo(p);
+ d->propagateInitialDomainAndBaseTo(p);
// Support for javascript: sources
if (d->isJavaScriptURL(url.url())) {
@@ -4456,7 +4454,7 @@
p->begin();
p->setAlwaysHonourDoctype(); // Disable public API compat; it messes \
with doctype // We recreated the document, so propagate domain again.
- d->propagateInitialDomainTo( p );
+ d->propagateInitialDomainAndBaseTo(p);
p->write( res.toString() );
p->end();
}
@@ -5031,22 +5029,24 @@
// This must only be done when loading the frameset initially (#22039),
// not when following a link in a frame (#44162).
if (KHTMLPart* htmlFrame = qobject_cast<KHTMLPart*>(sender()))
- d->propagateInitialDomainTo( htmlFrame );
+ d->propagateInitialDomainAndBaseTo(htmlFrame);
// So it only happens once
disconnect( sender(), SIGNAL( docCreated() ), this, SLOT( slotChildDocCreated() ) \
); }
-void KHTMLPartPrivate::propagateInitialDomainTo(KHTMLPart* kid)
+void KHTMLPartPrivate::propagateInitialDomainAndBaseTo(KHTMLPart* kid)
{
- // This method is used to propagate our domain information for
- // child frames, to provide a domain for about: or JavaScript: URLs
+ // This method is used to propagate our domain and base information for
+ // child frames, to provide them for about: or JavaScript: URLs
if ( m_doc && kid->d->m_doc ) {
DocumentImpl* kidDoc = kid->d->m_doc;
- if ( kidDoc->origin()->isEmpty() )
+ if ( kidDoc->origin()->isEmpty() ) {
kidDoc->setOrigin( m_doc->origin() );
+ kidDoc->setBaseURL( m_doc->baseURL() );
}
}
+}
void KHTMLPart::slotChildURLRequest( const KUrl &url, const \
KParts::OpenUrlArguments& args, const KParts::BrowserArguments &browserArgs ) {
--- trunk/KDE/kdelibs/khtml/khtmlpart_p.h #1201109:1201110
@@ -448,7 +448,7 @@
executeJavascriptURL(url);
}
- void propagateInitialDomainTo(KHTMLPart* kid);
+ void propagateInitialDomainAndBaseTo(KHTMLPart* kid);
void renameFrameForContainer(DOM::HTMLPartContainerElementImpl* cont,
const QString& newName);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic