[prev in list] [next in list] [prev in thread] [next in thread]
List: kfm-devel
Subject: Re: [PATCH] Get rid of dialogs when visiting netvibes.com
From: Aurélien Gâteau <aurelien.gateau () free ! fr>
Date: 2008-01-14 12:44:23
Message-ID: E1JEOfw-00018O-BH () trinity
[Download RAW message or body]
Germain Garand wrote:
> Le Jeudi 10 Janvier 2008 10:11, Aurélien Gâteau a écrit :
>> Germain Garand wrote:
>> > so it would be hard to argue against extending that check to
>> > ChildFrame::IFrame for consistency.
>>
>> Thanks a lot! Attached simple patch do what you suggest. I believe it's
>> the best way to fix this.
>>
>
> the patch is not enough I think because we currently do not save the frame
> type in the page cache. So e.g. using back/forward, you'd get the dialog
> again.
You are right, here is a new version.
Aurélien
["kdelibs_netvibes_nodialog4.diff" (text/x-diff)]
Index: khtml/khtml_part.cpp
===================================================================
--- khtml/khtml_part.cpp (revision 761058)
+++ khtml/khtml_part.cpp (working copy)
@@ -4395,7 +4395,7 @@
// Before attempting to load a part, check if the user wants that.
// Many don't like getting ZIP files embedded.
// However we don't want to ask for flash and other plugin things..
- if ( child->m_type != khtml::ChildFrame::Object )
+ if ( child->m_type != khtml::ChildFrame::Object && child->m_type != \
khtml::ChildFrame::IFrame ) {
QString suggestedFileName;
int disposition = 0;
@@ -5362,6 +5362,7 @@
QStringList frameNameLst, frameServiceTypeLst, frameServiceNameLst;
KUrl::List frameURLLst;
QList<QByteArray> frameStateBufferLst;
+ QList<int> frameTypeLst;
ConstFrameIt it = d->m_frames.begin();
const ConstFrameIt end = d->m_frames.end();
@@ -5382,11 +5383,13 @@
(*it)->m_extension->saveState( frameStream );
frameStateBufferLst << state;
+
+ frameTypeLst << int( (*it)->m_type );
}
// Save frame data
stream << (quint32) frameNameLst.count();
- stream << frameNameLst << frameServiceTypeLst << frameServiceNameLst << \
frameURLLst << frameStateBufferLst; + stream << frameNameLst << frameServiceTypeLst \
<< frameServiceNameLst << frameURLLst << frameStateBufferLst << frameTypeLst; \
#ifndef NDEBUG s_saveStateIndentLevel = indentLevel;
#endif
@@ -5398,6 +5401,7 @@
qint32 xOffset, yOffset, wContents, hContents, mWidth, mHeight;
quint32 frameCount;
QStringList frameNames, frameServiceTypes, docState, frameServiceNames;
+ QList<int> frameTypes;
KUrl::List frameURLs;
QList<QByteArray> frameStateBuffers;
QList<int> fSizes;
@@ -5448,7 +5452,7 @@
setPageSecurity( d->m_ssl_in_use ? Encrypted : NotCrypted );
stream >> frameCount >> frameNames >> frameServiceTypes >> frameServiceNames
- >> frameURLs >> frameStateBuffers;
+ >> frameURLs >> frameStateBuffers >> frameTypes;
d->m_bComplete = false;
d->m_bLoadEventEmitted = false;
@@ -5475,8 +5479,9 @@
QStringList::ConstIterator fServiceNameIt = frameServiceNames.begin();
KUrl::List::ConstIterator fURLIt = frameURLs.begin();
QList<QByteArray>::ConstIterator fBufferIt = frameStateBuffers.begin();
+ QList<int>::ConstIterator fFrameTypeIt = frameTypes.begin();
- for (; fIt != fEnd; ++fIt, ++fNameIt, ++fServiceTypeIt, ++fServiceNameIt, \
++fURLIt, ++fBufferIt ) + for (; fIt != fEnd; ++fIt, ++fNameIt, ++fServiceTypeIt, \
++fServiceNameIt, ++fURLIt, ++fBufferIt, ++fFrameTypeIt ) {
khtml::ChildFrame* const child = *fIt;
@@ -5487,6 +5492,7 @@
child->m_bPreloaded = true;
child->m_name = *fNameIt;
child->m_serviceName = *fServiceNameIt;
+ child->m_type = static_cast<khtml::ChildFrame::Type>(*fFrameTypeIt);
processObjectRequest( child, *fURLIt, *fServiceTypeIt );
}
if ( child->m_part )
@@ -5534,13 +5540,15 @@
QStringList::ConstIterator fServiceNameIt = frameServiceNames.begin();
KUrl::List::ConstIterator fURLIt = frameURLs.begin();
QList<QByteArray>::ConstIterator fBufferIt = frameStateBuffers.begin();
+ QList<int>::ConstIterator fFrameTypeIt = frameTypes.begin();
- for (; fNameIt != fNameEnd; ++fNameIt, ++fServiceTypeIt, ++fServiceNameIt, \
++fURLIt, ++fBufferIt ) + for (; fNameIt != fNameEnd; ++fNameIt, ++fServiceTypeIt, \
++fServiceNameIt, ++fURLIt, ++fBufferIt, ++fFrameTypeIt ) {
khtml::ChildFrame* const newChild = new khtml::ChildFrame;
newChild->m_bPreloaded = true;
newChild->m_name = *fNameIt;
newChild->m_serviceName = *fServiceNameIt;
+ newChild->m_type = static_cast<khtml::ChildFrame::Type>(*fFrameTypeIt);
// kDebug( 6050 ) << *fNameIt << " ---- " << *fServiceTypeIt;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic