[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
darin
darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:38:50 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 7b077f2ead5959658ac2b27d8b892c3ef7fff6a1
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Sep 13 14:50:00 2002 +0000
top level:
* Tests/WebFoundation-Misc/ifnsurlextensions-test.m: Remove uneeded
include of NSURLPathUtilities.h.
WebCore:
* kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
* WebCorePrefix.h: Remove NSURLPathUtilities.h include.
Use even more of the KHTML code so we get referrers in one more place.
* kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
* khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
* khtml/khtml_part.cpp:
(KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
(KHTMLPart::requestObject): Ditto.
(KHTMLPart::processObjectRequest): Ditto.
* khtml/rendering/render_frames.h: Less APPLE_CHANGES.
* khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
* kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
openURLNotify.
* kwq/khtml/khtml_ext.h: Add openURLNotify.
* kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
* kwq/KWQKHTMLPartBrowserExtension.mm:
(KHTMLPartBrowserExtension::openURLNotify): Implement.
* kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
Changed name from requestFrame. Do less work.
* kwq/qt/qtimer.h: Add singleShot.
* kwq/KWQTimer.mm:
(+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
Used to implement singleShot.
(-[KWQSingleShotTimerTarget dealloc]): Ditto.
(-[KWQSingleShotTimerTarget timerFired:]): Ditto.
(QTimer::singleShot): Added.
* kwq/qt/qmap.h: Add contains.
* kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
* kwq/KWQValueListImpl.h: Add iterator return value for appendNode
and prependNode.
* kwq/KWQValueListImpl.mm:
(KWQValueListImpl::appendNode): Add iterator.
(KWQValueListImpl::prependNode): Add iterator.
* kwq/kparts/part.h: Add openURL.
WebKit:
Prep work for fixes to the text encoding for subframes.
* WebCoreSupport.subproj/WebBridge.h: Remove [loadURL:withParent:].
* WebCoreSupport.subproj/WebBridge.m:
(-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
Added referrer parameter.
* WebView.subproj/WebController.h: Add new methods, not implemented yet.
* WebView.subproj/WebController.m:
(-[WebController supportsTextEncoding]): Here is one.
(-[WebController setCustomTextEncoding:]): Another.
(-[WebController resetTextEncoding]): Etc.
(-[WebController hasCustomTextEncoding]): Etc.
(-[WebController customTextEncoding]): Etc.
* WebView.subproj/WebDataSource.h:
* WebView.subproj/WebDataSource.m:
(-[WebDataSource startLoading]): Remove the forceRefresh flag.
This is now controlled by the WebResourceRequest.
* WebView.subproj/WebDataSourcePrivate.h:
* WebView.subproj/WebDataSourcePrivate.m:
(-[WebDataSource _startLoading]): Same for this private version.
* WebView.subproj/WebFrame.h:
* WebView.subproj/WebFrame.m:
(-[WebFrame startLoading]): Remove the forceRefresh flag.
(-[WebFrame reload]): Remove the forceRefresh flag.
A reload without a forceRefresh is only used internally, not requested
by the caller.
* WebView.subproj/WebFramePrivate.h:
* WebView.subproj/WebFramePrivate.m:
(-[WebFrame _transitionToCommitted]): Add handling for the case where we
reload, but allow stale data.
(-[WebFrame _isLoadComplete]): Ditto.
(-[WebFrame _reloadAllowingStaleData]): Placeholder, not implemented yet.
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView setTextEncoding:]): Update for new API, but this is going away.
(-[WebHTMLView setDefaultTextEncoding]): Ditto.
WebBrowser:
* BrowserDocument.m: (-[BrowserDocument refresh:]):
Call the new [reload] instead of the old [reload:].
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index ad8374a..57239f3 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,4 +1,52 @@
-2002-09-12 Richard Williamson (Local) <rjw at apple.com>
+2002-09-12 Darin Adler <darin at apple.com>
+
+ * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
+ * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
+
+ Use even more of the KHTML code so we get referrers in one more place.
+
+ * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
+
+ * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
+ * khtml/khtml_part.cpp:
+ (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
+ (KHTMLPart::requestObject): Ditto.
+ (KHTMLPart::processObjectRequest): Ditto.
+
+ * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
+ * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
+
+ * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
+ openURLNotify.
+
+ * kwq/khtml/khtml_ext.h: Add openURLNotify.
+ * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
+ * kwq/KWQKHTMLPartBrowserExtension.mm:
+ (KHTMLPartBrowserExtension::openURLNotify): Implement.
+
+ * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
+ Changed name from requestFrame. Do less work.
+
+ * kwq/qt/qtimer.h: Add singleShot.
+ * kwq/KWQTimer.mm:
+ (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
+ Used to implement singleShot.
+ (-[KWQSingleShotTimerTarget dealloc]): Ditto.
+ (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
+ (QTimer::singleShot): Added.
+
+ * kwq/qt/qmap.h: Add contains.
+
+ * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
+ * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
+ and prependNode.
+ * kwq/KWQValueListImpl.mm:
+ (KWQValueListImpl::appendNode): Add iterator.
+ (KWQValueListImpl::prependNode): Add iterator.
+
+ * kwq/kparts/part.h: Add openURL.
+
+2002-09-12 Richard Williamson <rjw at apple.com>
Rewrite of khtml selection drawing code. Now does
a delta between old and new selection and only
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index ad8374a..57239f3 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,4 +1,52 @@
-2002-09-12 Richard Williamson (Local) <rjw at apple.com>
+2002-09-12 Darin Adler <darin at apple.com>
+
+ * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
+ * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
+
+ Use even more of the KHTML code so we get referrers in one more place.
+
+ * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
+
+ * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
+ * khtml/khtml_part.cpp:
+ (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
+ (KHTMLPart::requestObject): Ditto.
+ (KHTMLPart::processObjectRequest): Ditto.
+
+ * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
+ * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
+
+ * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
+ openURLNotify.
+
+ * kwq/khtml/khtml_ext.h: Add openURLNotify.
+ * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
+ * kwq/KWQKHTMLPartBrowserExtension.mm:
+ (KHTMLPartBrowserExtension::openURLNotify): Implement.
+
+ * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
+ Changed name from requestFrame. Do less work.
+
+ * kwq/qt/qtimer.h: Add singleShot.
+ * kwq/KWQTimer.mm:
+ (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
+ Used to implement singleShot.
+ (-[KWQSingleShotTimerTarget dealloc]): Ditto.
+ (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
+ (QTimer::singleShot): Added.
+
+ * kwq/qt/qmap.h: Add contains.
+
+ * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
+ * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
+ and prependNode.
+ * kwq/KWQValueListImpl.mm:
+ (KWQValueListImpl::appendNode): Add iterator.
+ (KWQValueListImpl::prependNode): Add iterator.
+
+ * kwq/kparts/part.h: Add openURL.
+
+2002-09-12 Richard Williamson <rjw at apple.com>
Rewrite of khtml selection drawing code. Now does
a delta between old and new selection and only
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index ad8374a..57239f3 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,4 +1,52 @@
-2002-09-12 Richard Williamson (Local) <rjw at apple.com>
+2002-09-12 Darin Adler <darin at apple.com>
+
+ * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
+ * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
+
+ Use even more of the KHTML code so we get referrers in one more place.
+
+ * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
+
+ * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
+ * khtml/khtml_part.cpp:
+ (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
+ (KHTMLPart::requestObject): Ditto.
+ (KHTMLPart::processObjectRequest): Ditto.
+
+ * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
+ * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
+
+ * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
+ openURLNotify.
+
+ * kwq/khtml/khtml_ext.h: Add openURLNotify.
+ * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
+ * kwq/KWQKHTMLPartBrowserExtension.mm:
+ (KHTMLPartBrowserExtension::openURLNotify): Implement.
+
+ * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
+ Changed name from requestFrame. Do less work.
+
+ * kwq/qt/qtimer.h: Add singleShot.
+ * kwq/KWQTimer.mm:
+ (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
+ Used to implement singleShot.
+ (-[KWQSingleShotTimerTarget dealloc]): Ditto.
+ (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
+ (QTimer::singleShot): Added.
+
+ * kwq/qt/qmap.h: Add contains.
+
+ * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
+ * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
+ and prependNode.
+ * kwq/KWQValueListImpl.mm:
+ (KWQValueListImpl::appendNode): Add iterator.
+ (KWQValueListImpl::prependNode): Add iterator.
+
+ * kwq/kparts/part.h: Add openURL.
+
+2002-09-12 Richard Williamson <rjw at apple.com>
Rewrite of khtml selection drawing code. Now does
a delta between old and new selection and only
diff --git a/WebCore/WebCorePrefix.h b/WebCore/WebCorePrefix.h
index a877611..f8e4ef9 100644
--- a/WebCore/WebCorePrefix.h
+++ b/WebCore/WebCorePrefix.h
@@ -37,8 +37,6 @@
#ifdef __OBJC__
-#import <Foundation/NSURLPathUtilities.h>
-
#import <Cocoa/Cocoa.h>
#endif
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index 995bd1c..a382fa1 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -2117,14 +2117,16 @@ void KHTMLPart::slotClearSelection()
}
#ifdef APPLE_CHANGES
+
void KHTMLPart::overURL( const QString &url, const QString &target, int modifierState )
-#else
-void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPressed )
-#endif
{
-#ifdef APPLE_CHANGES
impl->overURL(url, target, modifierState);
+}
+
#else
+
+void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPressed )
+{
if ( !d->m_kjsStatusBarText.isEmpty() && !shiftPressed ) {
emit onURL( url );
emit setStatusBarText( d->m_kjsStatusBarText );
@@ -2285,9 +2287,10 @@ void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPr
#endif
emit setStatusBarText(u.htmlURL() + extra);
}
-#endif
}
+#endif // APPLE_CHANGES
+
void KHTMLPart::urlSelected( const QString &url, int button, int state, const QString &_target,
KParts::URLArgs args )
{
@@ -2607,9 +2610,6 @@ void KHTMLPart::updateActions()
bool KHTMLPart::requestFrame( khtml::RenderPart *frame, const QString &url, const QString &frameName,
const QStringList ¶ms, bool isIFrame )
{
-#ifdef APPLE_CHANGES
- return impl->requestFrame(frame, url, frameName, params, isIFrame);
-#else
// kdDebug( 6050 ) << "childRequest( ..., " << url << ", " << frameName << " )" << endl;
FrameIt it = d->m_frames.find( frameName );
if ( it == d->m_frames.end() )
@@ -2624,6 +2624,7 @@ bool KHTMLPart::requestFrame( khtml::RenderPart *frame, const QString &url, cons
(*it).m_frame = frame;
(*it).m_params = params;
+#ifndef APPLE_CHANGES
// Support for <frame src="javascript:string">
if ( url.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 )
{
@@ -2634,8 +2635,8 @@ bool KHTMLPart::requestFrame( khtml::RenderPart *frame, const QString &url, cons
myurl.setPath(res.asString());
return processObjectRequest(&(*it), myurl, QString("text/html") );
}
- return requestObject( &(*it), completeURL( url ));
#endif // APPLE_CHANGES
+ return requestObject( &(*it), completeURL( url ));
}
#ifdef APPLE_CHANGES
@@ -2650,9 +2651,6 @@ QString KHTMLPart::requestFrameName()
bool KHTMLPart::requestObject( khtml::RenderPart *frame, const QString &url, const QString &serviceType,
const QStringList ¶ms )
{
-#ifdef APPLE_CHANGES
- return impl->requestObject(frame, url, serviceType, params);
-#else
if (url.isEmpty())
return false;
khtml::ChildFrame child;
@@ -2664,16 +2662,14 @@ bool KHTMLPart::requestObject( khtml::RenderPart *frame, const QString &url, con
KParts::URLArgs args;
args.serviceType = serviceType;
return requestObject( &(*it), completeURL( url ), args );
-#endif
}
bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const KParts::URLArgs &_args )
{
-#ifdef APPLE_CHANGES
- return false;
-#else
+#ifndef APPLE_CHANGES
if (!checkLinkSecurity(url))
return false;
+#endif
if ( child->m_bPreloaded )
{
// kdDebug(6005) << "KHTMLPart::requestObject preload" << endl;
@@ -2686,8 +2682,10 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
KParts::URLArgs args( _args );
+#ifndef APPLE_CHANGES
if ( child->m_run )
child->m_run->abort();
+#endif
if ( child->m_part && !args.reload && urlcmp( child->m_part->url().url(), url.url(), true, true ) )
args.serviceType = child->m_serviceType;
@@ -2708,6 +2706,9 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
if ((url.isEmpty() || url.url() == "about:blank") && args.serviceType.isEmpty())
args.serviceType = QString::fromLatin1( "text/html" );
+#ifdef APPLE_CHANGES
+ return processObjectRequest( child, url, args.serviceType );
+#else
if ( args.serviceType.isEmpty() ) {
child->m_run = new KHTMLRun( this, child, url, child->m_args,
child->m_type != khtml::ChildFrame::Frame );
@@ -2718,8 +2719,6 @@ bool KHTMLPart::requestObject( khtml::ChildFrame *child, const KURL &url, const
#endif
}
-#ifndef APPLE_CHANGES
-
bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url, const QString &mimetype )
{
//kdDebug( 6050 ) << "KHTMLPart::processObjectRequest trying to create part for " << mimetype << endl;
@@ -2746,7 +2745,11 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
if ( !child->m_services.contains( mimetype ) )
{
+#ifdef APPLE_CHANGES
+ KParts::ReadOnlyPart *part = impl->createPart(*child, url, mimetype);
+#else
KParts::ReadOnlyPart *part = createPart( d->m_view->viewport(), child->m_name.ascii(), this, child->m_name.ascii(), mimetype, child->m_serviceName, child->m_services, child->m_params );
+#endif
if ( !part )
{
@@ -2761,7 +2764,9 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
//CRITICAL STUFF
if ( child->m_part )
{
+#ifndef APPLE_CHANGES
partManager()->removePart( (KParts::ReadOnlyPart *)child->m_part );
+#endif
delete (KParts::ReadOnlyPart *)child->m_part;
}
@@ -2769,10 +2774,12 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
if ( child->m_frame )
child->m_frame->setWidget( part->widget() );
+#ifndef APPLE_CHANGES
if ( child->m_type != khtml::ChildFrame::Object )
partManager()->addPart( part, false );
// else
// kdDebug(6005) << "AH! NO FRAME!!!!!" << endl;
+#endif
child->m_part = part;
assert( ((void*) child->m_part) != 0);
@@ -2793,6 +2800,7 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
part, SLOT( slotParentCompleted() ) );
}
+#ifndef APPLE_CHANGES
child->m_extension = KParts::BrowserExtension::childObject( part );
if ( child->m_extension )
@@ -2822,6 +2830,7 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
child->m_extension->setBrowserInterface( d->m_extension->browserInterface() );
}
+#endif
}
checkEmitLoadEvent();
@@ -2877,6 +2886,8 @@ bool KHTMLPart::processObjectRequest( khtml::ChildFrame *child, const KURL &_url
return true;
}
+#ifndef APPLE_CHANGES
+
KParts::ReadOnlyPart *KHTMLPart::createPart( QWidget *parentWidget, const char *widgetName,
QObject *parent, const char *name, const QString &mimetype,
QString &serviceName, QStringList &serviceTypes,
diff --git a/WebCore/khtml/rendering/render_frames.cpp b/WebCore/khtml/rendering/render_frames.cpp
index 4043bc7..6f59fe1 100644
--- a/WebCore/khtml/rendering/render_frames.cpp
+++ b/WebCore/khtml/rendering/render_frames.cpp
@@ -582,15 +582,11 @@ void RenderPart::setWidget( QWidget *widget )
slotViewCleared();
}
-#ifndef APPLE_CHANGES
-
bool RenderPart::partLoadingErrorNotify(khtml::ChildFrame *, const KURL& , const QString& )
{
return false;
}
-#endif // APPLE_CHANGES
-
short RenderPart::intrinsicWidth() const
{
return 300;
@@ -814,8 +810,6 @@ void RenderPartObject::close()
RenderPart::close();
}
-#ifndef APPLE_CHANGES
-
bool RenderPartObject::partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType )
{
KHTMLPart *part = static_cast<KHTMLView *>(m_view)->part();
@@ -900,8 +894,6 @@ void RenderPartObject::slotPartLoadingErrorNotify()
}
}
-#endif // APPLE_CHANGES
-
// duplication of RenderFormElement... FIX THIS!
short RenderPartObject::calcReplacedWidth(bool* ieHack) const
{
diff --git a/WebCore/khtml/rendering/render_frames.h b/WebCore/khtml/rendering/render_frames.h
index 7d48909..77df68b 100644
--- a/WebCore/khtml/rendering/render_frames.h
+++ b/WebCore/khtml/rendering/render_frames.h
@@ -97,7 +97,6 @@ public:
virtual void setWidget( QWidget *widget );
-#ifndef APPLE_CHANGES
/**
* Called by KHTMLPart to notify the frame object that loading the
* part was not successfuly. (called either asyncroniously after a
@@ -110,7 +109,6 @@ public:
* and the url was successfully opened.
*/
virtual bool partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType );
-#endif
virtual short intrinsicWidth() const;
virtual int intrinsicHeight() const;
@@ -153,9 +151,7 @@ public:
virtual short calcReplacedWidth(bool* ieHack=0) const;
virtual int calcReplacedHeight() const;
-#ifndef APPLE_CHANGES
virtual bool partLoadingErrorNotify( khtml::ChildFrame *childFrame, const KURL& url, const QString& serviceType );
-#endif
public slots:
void slotViewCleared();
diff --git a/WebCore/kwq/KWQAssertions.h b/WebCore/kwq/KWQAssertions.h
index 187c55a..61bc643 100644
--- a/WebCore/kwq/KWQAssertions.h
+++ b/WebCore/kwq/KWQAssertions.h
@@ -78,6 +78,10 @@ void KWQLog(const char *file, int line, const char *function, KWQLogChannel *cha
}
#endif
+// CRASH -- gets us into the debugger or the crash reporter -- signals are ignored by the crash reporter so we must do better
+
+#define CRASH() *(int *)0x0badbeef = 0
+
// ASSERT, ASSERT_WITH_MESSAGE, ASSERT_NOT_REACHED
#if ASSERT_DISABLED
@@ -91,18 +95,18 @@ void KWQLog(const char *file, int line, const char *function, KWQLogChannel *cha
#define ASSERT(assertion) do \
if (!(assertion)) { \
KWQReportAssertionFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__, #assertion); \
- raise(SIGQUIT); \
+ CRASH(); \
} \
while (0)
#define ASSERT_WITH_MESSAGE(assertion, formatAndArgs...) do \
if (!(assertion)) { \
KWQReportAssertionFailureWithMessage(__FILE__, __LINE__, __PRETTY_FUNCTION__, #assertion, formatAndArgs); \
- raise(SIGQUIT); \
+ CRASH(); \
} \
while (0)
#define ASSERT_NOT_REACHED() do { \
KWQReportAssertionFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__, 0); \
- raise(SIGQUIT); \
+ CRASH(); \
} while (0)
#endif
@@ -118,7 +122,7 @@ while (0)
#define ASSERT_ARG(argName, assertion) do \
if (!(assertion)) { \
KWQReportArgumentAssertionFailure(__FILE__, __LINE__, __PRETTY_FUNCTION__, #argName, #assertion); \
- raise(SIGQUIT); \
+ CRASH(); \
} \
while (0)
@@ -131,7 +135,7 @@ while (0)
#else
#define FATAL(formatAndArgs...) do { \
KWQReportFatalError(__FILE__, __LINE__, __PRETTY_FUNCTION__, formatAndArgs); \
- raise(SIGQUIT); \
+ CRASH(); \
} while (0)
#endif
diff --git a/WebCore/kwq/KWQKHTMLPart.h b/WebCore/kwq/KWQKHTMLPart.h
index 6f2b4b1..498cd6e 100644
--- a/WebCore/kwq/KWQKHTMLPart.h
+++ b/WebCore/kwq/KWQKHTMLPart.h
@@ -45,6 +45,7 @@ namespace DOM {
}
namespace khtml {
+ class ChildFrame;
class RenderObject;
class RenderPart;
}
@@ -81,8 +82,8 @@ public:
void setStatusBarText(const QString &status);
void urlSelected(const KURL &url, int button, int state, const KParts::URLArgs &args);
- bool requestFrame(khtml::RenderPart *frame, const QString &url, const QString &frameName, const QStringList ¶ms, bool isIFrame);
bool requestObject(khtml::RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args);
+ KParts::ReadOnlyPart *createPart(const khtml::ChildFrame &child, const KURL &url, const QString &mimeType);
void submitForm(const KURL &url, const KParts::URLArgs &);
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 96e6e6c..eef196d 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -49,6 +49,7 @@ using khtml::RenderWidget;
using KIO::Job;
+using KParts::ReadOnlyPart;
using KParts::URLArgs;
void KHTMLPart::onURL(const QString &)
@@ -207,55 +208,22 @@ void KWQKHTMLPartImpl::urlSelected(const KURL &url, int button, int state, const
[targetBridge loadURL:cocoaURL referrer:referrer(args)];
}
-bool KWQKHTMLPartImpl::requestFrame( RenderPart *frame, const QString &url, const QString &frameName,
- const QStringList ¶ms, bool isIFrame )
+ReadOnlyPart *KWQKHTMLPartImpl::createPart(const ChildFrame &child, const KURL &url, const QString &mimeType)
{
- ASSERT([_bridge frameNamed:frameName.getNSString()] == nil);
-
- NSURL *childURL = part->completeURL(url).getNSURL();
+ LOG(Frames, "name %s", child.m_name.ascii());
+
+ NSURL *childURL = url.getNSURL();
if (childURL == nil) {
// FIXME: Do we need to report an error to someone?
- return false;
+ return 0;
}
- LOG(Frames, "name %s", frameName.ascii());
-
- HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(frame->element());
- WebCoreBridge *childBridge = [_bridge createChildFrameNamed:frameName.getNSString() withURL:childURL
- renderPart:frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
- marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
-
- if (!childBridge) {
- return false;
- }
-
- ChildFrame childFrame;
- childFrame.m_name = frameName;
- childFrame.m_type = isIFrame ? khtml::ChildFrame::IFrame : khtml::ChildFrame::Frame;
- childFrame.m_frame = frame;
- childFrame.m_params = params;
- childFrame.m_part = [childBridge part];
- d->m_frames.append(childFrame);
-
-#ifdef _SUPPORT_JAVASCRIPT_URL_
- if ( url.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 && !isIFrame )
- {
- // static cast is safe as of isIFrame being false.
- // but: shouldn't we support this javascript hack for iframes aswell?
- RenderFrame* rf = static_cast<RenderFrame*>(frame);
- assert(rf);
- QVariant res = executeScript( DOM::Node(rf->frameImpl()), url.right( url.length() - 11) );
- if ( res.type() == QVariant::String ) {
- KURL myurl;
- myurl.setProtocol("javascript");
- myurl.setPath(res.asString());
- return processObjectRequest(&(*it), myurl, QString("text/html") );
- }
- return false;
- }
-#endif
-
- return true;
+ HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(child.m_frame->element());
+ WebCoreBridge *childBridge = [_bridge createChildFrameNamed:child.m_name.getNSString()
+ withURL:childURL referrer:referrer(child.m_args)
+ renderPart:child.m_frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
+ marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
+ return [childBridge part];
}
bool KWQKHTMLPartImpl::requestObject(RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args)
diff --git a/WebCore/kwq/KWQKHTMLPartBrowserExtension.h b/WebCore/kwq/KWQKHTMLPartBrowserExtension.h
index 9069422..262b2ef 100644
--- a/WebCore/kwq/KWQKHTMLPartBrowserExtension.h
+++ b/WebCore/kwq/KWQKHTMLPartBrowserExtension.h
@@ -37,6 +37,7 @@ public:
virtual void openURLRequest(const KURL &,
const KParts::URLArgs &args = KParts::URLArgs());
+ virtual void openURLNotify();
virtual void createNewWindow(const KURL &url,
const KParts::URLArgs &urlArgs = KParts::URLArgs());
diff --git a/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm b/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
index e9f0951..dbdfbc6 100644
--- a/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
+++ b/WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
@@ -38,6 +38,10 @@ void KHTMLPartBrowserExtension::openURLRequest(const KURL &url,
m_part->impl->openURLRequest(url, args);
}
+void KHTMLPartBrowserExtension::openURLNotify()
+{
+}
+
void KHTMLPartBrowserExtension::createNewWindow(const KURL &url,
const KParts::URLArgs &urlArgs)
{
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.h b/WebCore/kwq/KWQKHTMLPartImpl.h
index 6f2b4b1..498cd6e 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.h
+++ b/WebCore/kwq/KWQKHTMLPartImpl.h
@@ -45,6 +45,7 @@ namespace DOM {
}
namespace khtml {
+ class ChildFrame;
class RenderObject;
class RenderPart;
}
@@ -81,8 +82,8 @@ public:
void setStatusBarText(const QString &status);
void urlSelected(const KURL &url, int button, int state, const KParts::URLArgs &args);
- bool requestFrame(khtml::RenderPart *frame, const QString &url, const QString &frameName, const QStringList ¶ms, bool isIFrame);
bool requestObject(khtml::RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args);
+ KParts::ReadOnlyPart *createPart(const khtml::ChildFrame &child, const KURL &url, const QString &mimeType);
void submitForm(const KURL &url, const KParts::URLArgs &);
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.mm b/WebCore/kwq/KWQKHTMLPartImpl.mm
index 96e6e6c..eef196d 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.mm
+++ b/WebCore/kwq/KWQKHTMLPartImpl.mm
@@ -49,6 +49,7 @@ using khtml::RenderWidget;
using KIO::Job;
+using KParts::ReadOnlyPart;
using KParts::URLArgs;
void KHTMLPart::onURL(const QString &)
@@ -207,55 +208,22 @@ void KWQKHTMLPartImpl::urlSelected(const KURL &url, int button, int state, const
[targetBridge loadURL:cocoaURL referrer:referrer(args)];
}
-bool KWQKHTMLPartImpl::requestFrame( RenderPart *frame, const QString &url, const QString &frameName,
- const QStringList ¶ms, bool isIFrame )
+ReadOnlyPart *KWQKHTMLPartImpl::createPart(const ChildFrame &child, const KURL &url, const QString &mimeType)
{
- ASSERT([_bridge frameNamed:frameName.getNSString()] == nil);
-
- NSURL *childURL = part->completeURL(url).getNSURL();
+ LOG(Frames, "name %s", child.m_name.ascii());
+
+ NSURL *childURL = url.getNSURL();
if (childURL == nil) {
// FIXME: Do we need to report an error to someone?
- return false;
+ return 0;
}
- LOG(Frames, "name %s", frameName.ascii());
-
- HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(frame->element());
- WebCoreBridge *childBridge = [_bridge createChildFrameNamed:frameName.getNSString() withURL:childURL
- renderPart:frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
- marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
-
- if (!childBridge) {
- return false;
- }
-
- ChildFrame childFrame;
- childFrame.m_name = frameName;
- childFrame.m_type = isIFrame ? khtml::ChildFrame::IFrame : khtml::ChildFrame::Frame;
- childFrame.m_frame = frame;
- childFrame.m_params = params;
- childFrame.m_part = [childBridge part];
- d->m_frames.append(childFrame);
-
-#ifdef _SUPPORT_JAVASCRIPT_URL_
- if ( url.find( QString::fromLatin1( "javascript:" ), 0, false ) == 0 && !isIFrame )
- {
- // static cast is safe as of isIFrame being false.
- // but: shouldn't we support this javascript hack for iframes aswell?
- RenderFrame* rf = static_cast<RenderFrame*>(frame);
- assert(rf);
- QVariant res = executeScript( DOM::Node(rf->frameImpl()), url.right( url.length() - 11) );
- if ( res.type() == QVariant::String ) {
- KURL myurl;
- myurl.setProtocol("javascript");
- myurl.setPath(res.asString());
- return processObjectRequest(&(*it), myurl, QString("text/html") );
- }
- return false;
- }
-#endif
-
- return true;
+ HTMLIFrameElementImpl *o = static_cast<HTMLIFrameElementImpl *>(child.m_frame->element());
+ WebCoreBridge *childBridge = [_bridge createChildFrameNamed:child.m_name.getNSString()
+ withURL:childURL referrer:referrer(child.m_args)
+ renderPart:child.m_frame allowsScrolling:o->scrollingMode() != QScrollView::AlwaysOff
+ marginWidth:o->getMarginWidth() marginHeight:o->getMarginHeight()];
+ return [childBridge part];
}
bool KWQKHTMLPartImpl::requestObject(RenderPart *frame, const QString &url, const QString &serviceType, const QStringList &args)
diff --git a/WebCore/kwq/KWQKPartsBrowserExtension.h b/WebCore/kwq/KWQKPartsBrowserExtension.h
index 23bdaa9..4db7a67 100644
--- a/WebCore/kwq/KWQKPartsBrowserExtension.h
+++ b/WebCore/kwq/KWQKPartsBrowserExtension.h
@@ -56,15 +56,17 @@ struct URLArgs {
bool doPost() const { return m_doPost; }
void setDoPost(bool post) { m_doPost = post; }
- void setLockHistory(bool) { }
+ bool lockHistory() const { return m_lockHistory; }
+ void setLockHistory(bool lock) { m_lockHistory = lock; }
QMap<QString, QString> &metaData() { return m_metadata; }
const QMap<QString, QString> &metaData() const { return m_metadata; }
private:
- QMap<QString, QString> m_metadata;
- bool m_doPost;
QString m_contentType;
+ bool m_doPost;
+ bool m_lockHistory;
+ QMap<QString, QString> m_metadata;
};
@@ -95,6 +97,7 @@ public:
BrowserInterface *browserInterface() const { return 0; }
virtual void openURLRequest(const KURL &, const KParts::URLArgs &args = KParts::URLArgs()) = 0;
+ virtual void openURLNotify() = 0;
virtual void createNewWindow(const KURL &url,
const KParts::URLArgs &urlArgs = KParts::URLArgs()) = 0;
diff --git a/WebCore/kwq/KWQKPartsPart.h b/WebCore/kwq/KWQKPartsPart.h
index b99e44c..c025dac 100644
--- a/WebCore/kwq/KWQKPartsPart.h
+++ b/WebCore/kwq/KWQKPartsPart.h
@@ -72,6 +72,7 @@ public:
QObject *parent() const { return m_parent; }
void setInstance(KInstance *, bool) { }
+ virtual bool openURL(const KURL &) = 0;
virtual bool closeURL() = 0;
private:
diff --git a/WebCore/kwq/KWQMap.h b/WebCore/kwq/KWQMap.h
index 1e79c79..6f91e42 100644
--- a/WebCore/kwq/KWQMap.h
+++ b/WebCore/kwq/KWQMap.h
@@ -224,6 +224,12 @@ public:
return ConstIterator(end());
}
}
+
+ bool contains(const K &key) const
+ {
+ QMapNode<K,V> tmp(key, V());
+ return findInternal(&tmp);
+ }
QMap<K,V>& operator=(const QMap<K,V>&map)
{
diff --git a/WebCore/kwq/KWQTimer.h b/WebCore/kwq/KWQTimer.h
index b106291..fbc4e87 100644
--- a/WebCore/kwq/KWQTimer.h
+++ b/WebCore/kwq/KWQTimer.h
@@ -44,7 +44,9 @@ public:
void start(int msec, bool singleShot = false);
void stop();
void fire();
-
+
+ static void singleShot(int msec, QObject *receiver, const char *member);
+
// This is just a hack used by KWQKHTMLPartImpl. The monitor function
// gets called when the timer starts and when it is stopped before firing,
// but not when the timer fires.
diff --git a/WebCore/kwq/KWQTimer.mm b/WebCore/kwq/KWQTimer.mm
index 408c51a..cf8112a 100644
--- a/WebCore/kwq/KWQTimer.mm
+++ b/WebCore/kwq/KWQTimer.mm
@@ -35,6 +35,14 @@
- (void)timerFired:(id)userInfo;
@end
+ at interface KWQSingleShotTimerTarget : NSObject
+{
+ KWQSlot *slot;
+}
++ (KWQSingleShotTimerTarget *)targetWithQObject:(QObject *)object member:(const char *)member;
+- (void)timerFired:(id)userInfo;
+ at end
+
@implementation KWQTimerTarget
+ (KWQTimerTarget *)targetWithQTimer:(QTimer *)t
@@ -51,6 +59,28 @@
@end
+ at implementation KWQSingleShotTimerTarget
+
++ (KWQSingleShotTimerTarget *)targetWithQObject:(QObject *)object member:(const char *)member
+{
+ KWQSingleShotTimerTarget *target = [[[self alloc] init] autorelease];
+ target->slot = new KWQSlot(object, member);
+ return target;
+}
+
+- (void)dealloc
+{
+ delete slot;
+ [super dealloc];
+}
+
+- (void)timerFired:(id)userInfo
+{
+ slot->call();
+}
+
+ at end
+
QTimer::QTimer()
: m_timer(nil), m_monitorFunction(0), m_timeoutSignal(this, SIGNAL(timeout()))
{
@@ -106,3 +136,13 @@ void QTimer::fire()
m_timer = nil;
}
}
+
+void QTimer::singleShot(int msec, QObject *receiver, const char *member)
+{
+ [NSTimer scheduledTimerWithTimeInterval:(msec / 1000.0)
+ target:[KWQSingleShotTimerTarget targetWithQObject:receiver member:member]
+ selector:@selector(timerFired:)
+ userInfo:nil
+ repeats:NO];
+}
+
diff --git a/WebCore/kwq/KWQValueList.h b/WebCore/kwq/KWQValueList.h
index 97b526b..ebdabfa 100644
--- a/WebCore/kwq/KWQValueList.h
+++ b/WebCore/kwq/KWQValueList.h
@@ -100,8 +100,8 @@ public:
uint count() const { return impl.count(); }
bool isEmpty() const { return impl.isEmpty(); }
- void append(const T &val) { impl.appendNode(new QValueListNode<T>(val)); }
- void prepend(const T &val) { impl.prependNode(new QValueListNode<T>(val)); }
+ Iterator append(const T &val) { return impl.appendNode(new QValueListNode<T>(val)); }
+ Iterator prepend(const T &val) { return impl.prependNode(new QValueListNode<T>(val)); }
void remove(const T &val) { QValueListNode<T> node(val); impl.removeEqualNodes(&node, nodesEqual); }
uint contains(const T &val) const { QValueListNode<T> node(val); return impl.containsEqualNodes(&node, nodesEqual); }
diff --git a/WebCore/kwq/KWQValueListImpl.h b/WebCore/kwq/KWQValueListImpl.h
index 419af11..e0d5315 100644
--- a/WebCore/kwq/KWQValueListImpl.h
+++ b/WebCore/kwq/KWQValueListImpl.h
@@ -68,8 +68,8 @@ public:
uint count() const;
bool isEmpty() const;
- void appendNode(KWQValueListNodeImpl *node);
- void prependNode(KWQValueListNodeImpl *node);
+ KWQValueListIteratorImpl appendNode(KWQValueListNodeImpl *node);
+ KWQValueListIteratorImpl prependNode(KWQValueListNodeImpl *node);
void removeEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *));
uint containsEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const;
diff --git a/WebCore/kwq/KWQValueListImpl.mm b/WebCore/kwq/KWQValueListImpl.mm
index dbefc00..e2e8406 100644
--- a/WebCore/kwq/KWQValueListImpl.mm
+++ b/WebCore/kwq/KWQValueListImpl.mm
@@ -201,7 +201,7 @@ bool KWQValueListImpl::isEmpty() const
return d->count == 0;
}
-void KWQValueListImpl::appendNode(KWQValueListNodeImpl *node)
+KWQValueListIteratorImpl KWQValueListImpl::appendNode(KWQValueListNodeImpl *node)
{
copyOnWrite();
@@ -222,9 +222,11 @@ void KWQValueListImpl::appendNode(KWQValueListNodeImpl *node)
}
d->count++;
+
+ return node;
}
-void KWQValueListImpl::prependNode(KWQValueListNodeImpl *node)
+KWQValueListIteratorImpl KWQValueListImpl::prependNode(KWQValueListNodeImpl *node)
{
copyOnWrite();
@@ -237,6 +239,8 @@ void KWQValueListImpl::prependNode(KWQValueListNodeImpl *node)
}
d->count++;
+
+ return node;
}
void KWQValueListImpl::removeEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *))
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index d47f1f2..30f7923 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -155,7 +155,8 @@ typedef khtml::RenderPart KHTMLRenderPart;
- (void)setIconURL:(NSURL *)URL withType:(NSString *)string;
- (WebCoreBridge *)createChildFrameNamed:(NSString *)frameName
- withURL:(NSURL *)URL renderPart:(KHTMLRenderPart *)renderPart
+ withURL:(NSURL *)URL referrer:(NSString *)referrer
+ renderPart:(KHTMLRenderPart *)renderPart
allowsScrolling:(BOOL)allowsScrolling marginWidth:(int)width marginHeight:(int)height;
- (BOOL)areToolbarsVisible;
diff --git a/WebCore/kwq/khtml/khtml_ext.h b/WebCore/kwq/khtml/khtml_ext.h
index 9069422..262b2ef 100644
--- a/WebCore/kwq/khtml/khtml_ext.h
+++ b/WebCore/kwq/khtml/khtml_ext.h
@@ -37,6 +37,7 @@ public:
virtual void openURLRequest(const KURL &,
const KParts::URLArgs &args = KParts::URLArgs());
+ virtual void openURLNotify();
virtual void createNewWindow(const KURL &url,
const KParts::URLArgs &urlArgs = KParts::URLArgs());
diff --git a/WebCore/kwq/kparts/browserextension.h b/WebCore/kwq/kparts/browserextension.h
index 23bdaa9..4db7a67 100644
--- a/WebCore/kwq/kparts/browserextension.h
+++ b/WebCore/kwq/kparts/browserextension.h
@@ -56,15 +56,17 @@ struct URLArgs {
bool doPost() const { return m_doPost; }
void setDoPost(bool post) { m_doPost = post; }
- void setLockHistory(bool) { }
+ bool lockHistory() const { return m_lockHistory; }
+ void setLockHistory(bool lock) { m_lockHistory = lock; }
QMap<QString, QString> &metaData() { return m_metadata; }
const QMap<QString, QString> &metaData() const { return m_metadata; }
private:
- QMap<QString, QString> m_metadata;
- bool m_doPost;
QString m_contentType;
+ bool m_doPost;
+ bool m_lockHistory;
+ QMap<QString, QString> m_metadata;
};
@@ -95,6 +97,7 @@ public:
BrowserInterface *browserInterface() const { return 0; }
virtual void openURLRequest(const KURL &, const KParts::URLArgs &args = KParts::URLArgs()) = 0;
+ virtual void openURLNotify() = 0;
virtual void createNewWindow(const KURL &url,
const KParts::URLArgs &urlArgs = KParts::URLArgs()) = 0;
diff --git a/WebCore/kwq/kparts/part.h b/WebCore/kwq/kparts/part.h
index b99e44c..c025dac 100644
--- a/WebCore/kwq/kparts/part.h
+++ b/WebCore/kwq/kparts/part.h
@@ -72,6 +72,7 @@ public:
QObject *parent() const { return m_parent; }
void setInstance(KInstance *, bool) { }
+ virtual bool openURL(const KURL &) = 0;
virtual bool closeURL() = 0;
private:
diff --git a/WebCore/kwq/qt/qmap.h b/WebCore/kwq/qt/qmap.h
index 1e79c79..6f91e42 100644
--- a/WebCore/kwq/qt/qmap.h
+++ b/WebCore/kwq/qt/qmap.h
@@ -224,6 +224,12 @@ public:
return ConstIterator(end());
}
}
+
+ bool contains(const K &key) const
+ {
+ QMapNode<K,V> tmp(key, V());
+ return findInternal(&tmp);
+ }
QMap<K,V>& operator=(const QMap<K,V>&map)
{
diff --git a/WebCore/kwq/qt/qtimer.h b/WebCore/kwq/qt/qtimer.h
index b106291..fbc4e87 100644
--- a/WebCore/kwq/qt/qtimer.h
+++ b/WebCore/kwq/qt/qtimer.h
@@ -44,7 +44,9 @@ public:
void start(int msec, bool singleShot = false);
void stop();
void fire();
-
+
+ static void singleShot(int msec, QObject *receiver, const char *member);
+
// This is just a hack used by KWQKHTMLPartImpl. The monitor function
// gets called when the timer starts and when it is stopped before firing,
// but not when the timer fires.
diff --git a/WebCore/kwq/qt/qvaluelist.h b/WebCore/kwq/qt/qvaluelist.h
index 97b526b..ebdabfa 100644
--- a/WebCore/kwq/qt/qvaluelist.h
+++ b/WebCore/kwq/qt/qvaluelist.h
@@ -100,8 +100,8 @@ public:
uint count() const { return impl.count(); }
bool isEmpty() const { return impl.isEmpty(); }
- void append(const T &val) { impl.appendNode(new QValueListNode<T>(val)); }
- void prepend(const T &val) { impl.prependNode(new QValueListNode<T>(val)); }
+ Iterator append(const T &val) { return impl.appendNode(new QValueListNode<T>(val)); }
+ Iterator prepend(const T &val) { return impl.prependNode(new QValueListNode<T>(val)); }
void remove(const T &val) { QValueListNode<T> node(val); impl.removeEqualNodes(&node, nodesEqual); }
uint contains(const T &val) const { QValueListNode<T> node(val); return impl.containsEqualNodes(&node, nodesEqual); }
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 2c79b9b..bd0426a 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,11 +1,53 @@
-2002-09-12 Richard Williamson (Home) <rjw at apple.com>
+2002-09-12 Darin Adler <darin at apple.com>
+
+ Prep work for fixes to the text encoding for subframes.
+
+ * WebCoreSupport.subproj/WebBridge.h: Remove [loadURL:withParent:].
+ * WebCoreSupport.subproj/WebBridge.m:
+ (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
+ Added referrer parameter.
+
+ * WebView.subproj/WebController.h: Add new methods, not implemented yet.
+ * WebView.subproj/WebController.m:
+ (-[WebController supportsTextEncoding]): Here is one.
+ (-[WebController setCustomTextEncoding:]): Another.
+ (-[WebController resetTextEncoding]): Etc.
+ (-[WebController hasCustomTextEncoding]): Etc.
+ (-[WebController customTextEncoding]): Etc.
+
+ * WebView.subproj/WebDataSource.h:
+ * WebView.subproj/WebDataSource.m:
+ (-[WebDataSource startLoading]): Remove the forceRefresh flag.
+ This is now controlled by the WebResourceRequest.
+ * WebView.subproj/WebDataSourcePrivate.h:
+ * WebView.subproj/WebDataSourcePrivate.m:
+ (-[WebDataSource _startLoading]): Same for this private version.
+ * WebView.subproj/WebFrame.h:
+ * WebView.subproj/WebFrame.m:
+ (-[WebFrame startLoading]): Remove the forceRefresh flag.
+ (-[WebFrame reload]): Remove the forceRefresh flag.
+ A reload without a forceRefresh is only used internally, not requested
+ by the caller.
+
+ * WebView.subproj/WebFramePrivate.h:
+ * WebView.subproj/WebFramePrivate.m:
+ (-[WebFrame _transitionToCommitted]): Add handling for the case where we
+ reload, but allow stale data.
+ (-[WebFrame _isLoadComplete]): Ditto.
+ (-[WebFrame _reloadAllowingStaleData]): Placeholder, not implemented yet.
+
+ * WebView.subproj/WebHTMLView.m:
+ (-[WebHTMLView setTextEncoding:]): Update for new API, but this is going away.
+ (-[WebHTMLView setDefaultTextEncoding]): Ditto.
+
+2002-09-12 Richard Williamson <rjw at apple.com>
Don't initiate a drag if an autoscroll happened.
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView mouseDragged:]):
-2002-09-12 Richard Williamson (Local) <rjw at apple.com>
+2002-09-12 Richard Williamson <rjw at apple.com>
Added absolute position column to render node for
render tree view.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 2c79b9b..bd0426a 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,11 +1,53 @@
-2002-09-12 Richard Williamson (Home) <rjw at apple.com>
+2002-09-12 Darin Adler <darin at apple.com>
+
+ Prep work for fixes to the text encoding for subframes.
+
+ * WebCoreSupport.subproj/WebBridge.h: Remove [loadURL:withParent:].
+ * WebCoreSupport.subproj/WebBridge.m:
+ (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
+ Added referrer parameter.
+
+ * WebView.subproj/WebController.h: Add new methods, not implemented yet.
+ * WebView.subproj/WebController.m:
+ (-[WebController supportsTextEncoding]): Here is one.
+ (-[WebController setCustomTextEncoding:]): Another.
+ (-[WebController resetTextEncoding]): Etc.
+ (-[WebController hasCustomTextEncoding]): Etc.
+ (-[WebController customTextEncoding]): Etc.
+
+ * WebView.subproj/WebDataSource.h:
+ * WebView.subproj/WebDataSource.m:
+ (-[WebDataSource startLoading]): Remove the forceRefresh flag.
+ This is now controlled by the WebResourceRequest.
+ * WebView.subproj/WebDataSourcePrivate.h:
+ * WebView.subproj/WebDataSourcePrivate.m:
+ (-[WebDataSource _startLoading]): Same for this private version.
+ * WebView.subproj/WebFrame.h:
+ * WebView.subproj/WebFrame.m:
+ (-[WebFrame startLoading]): Remove the forceRefresh flag.
+ (-[WebFrame reload]): Remove the forceRefresh flag.
+ A reload without a forceRefresh is only used internally, not requested
+ by the caller.
+
+ * WebView.subproj/WebFramePrivate.h:
+ * WebView.subproj/WebFramePrivate.m:
+ (-[WebFrame _transitionToCommitted]): Add handling for the case where we
+ reload, but allow stale data.
+ (-[WebFrame _isLoadComplete]): Ditto.
+ (-[WebFrame _reloadAllowingStaleData]): Placeholder, not implemented yet.
+
+ * WebView.subproj/WebHTMLView.m:
+ (-[WebHTMLView setTextEncoding:]): Update for new API, but this is going away.
+ (-[WebHTMLView setDefaultTextEncoding]): Ditto.
+
+2002-09-12 Richard Williamson <rjw at apple.com>
Don't initiate a drag if an autoscroll happened.
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView mouseDragged:]):
-2002-09-12 Richard Williamson (Local) <rjw at apple.com>
+2002-09-12 Richard Williamson <rjw at apple.com>
Added absolute position column to render node for
render tree view.
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.h b/WebKit/WebCoreSupport.subproj/WebBridge.h
index 7a69c70..9f6b6af 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.h
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.h
@@ -21,7 +21,5 @@
- (void)dataSourceChanged;
- (WebDataSource *)dataSource;
-- (void)loadURL:(NSURL *)URL withParent:(WebDataSource *)parent;
-
@end
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index f18d906..7fc1a85 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -63,30 +63,6 @@
return [[frame frameNamed:name] _bridge];
}
-- (WebCoreBridge *)createChildFrameNamed:(NSString *)frameName
- withURL:(NSURL *)URL renderPart:(KHTMLRenderPart *)childRenderPart
- allowsScrolling:(BOOL)allowsScrolling marginWidth:(int)width marginHeight:(int)height
-{
- ASSERT(frame != nil);
- WebFrame *newFrame = [[frame controller] createFrameNamed:frameName for:nil inParent:[self dataSource] allowsScrolling:allowsScrolling];
- if (newFrame == nil) {
- return nil;
- }
-
- [[newFrame _bridge] setRenderPart:childRenderPart];
-
- [[newFrame webView] _setMarginWidth:width];
- [[newFrame webView] _setMarginHeight:height];
-
- [[newFrame _bridge] loadURL:URL withParent:[self dataSource]];
-
- // Set the load type so this load doesn't end up in the back
- // forward list.
- [newFrame _setLoadType:WebFrameLoadTypeInternal];
-
- return [newFrame _bridge];
-}
-
- (WebCoreBridge *)openNewWindowWithURL:(NSURL *)URL referrer:(NSString *)referrer frameName:(NSString *)name
{
ASSERT(frame != nil);
@@ -282,9 +258,10 @@
[request release];
}
-- (void)loadURL:(NSURL *)URL withParent:(WebDataSource *)parent
+- (void)loadURL:(NSURL *)URL referrer:(NSString *)referrer withParent:(WebDataSource *)parent
{
WebResourceRequest *request = [[WebResourceRequest alloc] initWithURL:URL];
+ [request setReferrer:referrer];
[self loadRequest:request withParent:parent];
[request release];
}
@@ -304,6 +281,31 @@
[request release];
}
+- (WebCoreBridge *)createChildFrameNamed:(NSString *)frameName
+ withURL:(NSURL *)URL referrer:(NSString *)referrer
+ renderPart:(KHTMLRenderPart *)childRenderPart
+ allowsScrolling:(BOOL)allowsScrolling marginWidth:(int)width marginHeight:(int)height
+{
+ ASSERT(frame != nil);
+ WebFrame *newFrame = [[frame controller] createFrameNamed:frameName for:nil inParent:[self dataSource] allowsScrolling:allowsScrolling];
+ if (newFrame == nil) {
+ return nil;
+ }
+
+ [[newFrame _bridge] setRenderPart:childRenderPart];
+
+ [[newFrame webView] _setMarginWidth:width];
+ [[newFrame webView] _setMarginHeight:height];
+
+ [[newFrame _bridge] loadURL:URL referrer:referrer withParent:[self dataSource]];
+
+ // Set the load type so this load doesn't end up in the back
+ // forward list.
+ [newFrame _setLoadType:WebFrameLoadTypeInternal];
+
+ return [newFrame _bridge];
+}
+
- (void)reportBadURL:(NSString *)badURL
{
WebError *badURLError = [[WebError alloc] initWithErrorCode:WebResultBadURLError
diff --git a/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m b/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
index 26ba9fe..197a8c9 100644
--- a/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
+++ b/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
@@ -73,7 +73,7 @@
[request setRequestCachePolicy:[[source request] requestCachePolicy]];
[request setResponseCachePolicy:[[source request] responseCachePolicy]];
[request setReferrer:referrer];
- WebResourceHandle *h = [[[WebResourceHandle alloc] initWithRequest:request client:client] autorelease];
+ WebResourceHandle *h = [[WebResourceHandle alloc] initWithRequest:request client:client];
[request release];
if (h == nil) {
@@ -88,7 +88,7 @@
return nil;
}
- client->handle = [h retain];
+ client->handle = h;
[source _addSubresourceClient:client];
[client didStartLoadingWithURL:[h URL]];
[client receivedProgressWithComplete:NO];
diff --git a/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m b/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
index 26ba9fe..197a8c9 100644
--- a/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
+++ b/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
@@ -73,7 +73,7 @@
[request setRequestCachePolicy:[[source request] requestCachePolicy]];
[request setResponseCachePolicy:[[source request] responseCachePolicy]];
[request setReferrer:referrer];
- WebResourceHandle *h = [[[WebResourceHandle alloc] initWithRequest:request client:client] autorelease];
+ WebResourceHandle *h = [[WebResourceHandle alloc] initWithRequest:request client:client];
[request release];
if (h == nil) {
@@ -88,7 +88,7 @@
return nil;
}
- client->handle = [h retain];
+ client->handle = h;
[source _addSubresourceClient:client];
[client didStartLoadingWithURL:[h URL]];
[client receivedProgressWithComplete:NO];
diff --git a/WebKit/WebView.subproj/WebController.h b/WebKit/WebView.subproj/WebController.h
index c64a70e..28340c7 100644
--- a/WebKit/WebView.subproj/WebController.h
+++ b/WebKit/WebView.subproj/WebController.h
@@ -218,4 +218,19 @@ extern NSString *WebContextMenuElementFrameKey;
// Get the appropriate user-agent string for a particular URL.
- (NSString *)userAgentForURL:(NSURL *)URL;
+// Find out if the current web page supports text encodings.
+- (BOOL)supportsTextEncoding;
+
+// Make the page display with a different text encoding; stops any load in progress.
+// The text encoding passed in overrides the normal text encoding smarts including
+// what's specified in a web page's header or HTTP response.
+// The text encoding automatically goes back to the default when the top level frame
+// changes to a new location.
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding;
+- (void)resetTextEncoding;
+
+// Find out the current state. It's an error to call customTextEncoding if hasCustomTextEncoding is NO.
+- (BOOL)hasCustomTextEncoding;
+- (CFStringEncoding)customTextEncoding;
+
@end
diff --git a/WebKit/WebView.subproj/WebController.m b/WebKit/WebView.subproj/WebController.m
index 3cee138..6147c90 100644
--- a/WebKit/WebView.subproj/WebController.m
+++ b/WebKit/WebView.subproj/WebController.m
@@ -23,7 +23,8 @@
#import <WebKit/WebPluginDatabase.h>
#import <WebKit/WebViewPrivate.h>
-#import <WebFoundation/WebFoundation.h>
+#import <WebFoundation/WebAssertions.h>
+#import <WebFoundation/WebResourceHandle.h>
NSString * WebContextMenuElementLinkURLKey = @"WebContextLinkURL";
NSString * WebContextMenuElementLinkLabelKey = @"WebContextLinkLabel";
@@ -443,4 +444,37 @@ NSString * WebContextMenuElementFrameKey = @"WebContextFrame";
return @"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.0) Gecko/20020715";
}
+- (BOOL)supportsTextEncoding
+{
+ // FIXME: Implement this.
+ return YES;
+}
+
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding
+{
+ // FIXME: Implement this.
+}
+
+- (void)resetTextEncoding
+{
+ // FIXME: Implement this.
+}
+
+- (BOOL)hasCustomTextEncoding
+{
+ // FIXME: Implement this.
+ return NO;
+}
+
+- (CFStringEncoding)customTextEncoding
+{
+ if (![self hasCustomTextEncoding]) {
+ ERROR("must not ask for customTextEncoding is hasCustomTextEncoding is NO");
+ return kCFStringEncodingInvalidId;
+ }
+
+ // FIXME: Implement this.
+ return kCFStringEncodingInvalidId;
+}
+
@end
diff --git a/WebKit/WebView.subproj/WebDataSource.h b/WebKit/WebView.subproj/WebDataSource.h
index 05d4993..f2b2955 100644
--- a/WebKit/WebView.subproj/WebDataSource.h
+++ b/WebKit/WebView.subproj/WebDataSource.h
@@ -100,8 +100,7 @@
// Start actually getting (if initialized with a URL) and parsing data. If the data source
// is still performing a previous load it will be stopped.
-// If forceRefresh is YES the document will load from the net, not the cache.
-- (void)startLoading: (BOOL)forceRefresh;
+- (void)startLoading;
// Cancels any pending loads. A data source is conceptually only ever loading
// one document at a time, although one document may have many related
diff --git a/WebKit/WebView.subproj/WebDataSource.m b/WebKit/WebView.subproj/WebDataSource.m
index 411cd62..48f60a5 100644
--- a/WebKit/WebView.subproj/WebDataSource.m
+++ b/WebKit/WebView.subproj/WebDataSource.m
@@ -187,12 +187,9 @@
}
-// Start actually getting (if initialized with a URL) and parsing data. If the data source
-// is still performing a previous load it will be stopped.
-// If forceRefresh is YES the document will load from the net, not the cache.
-- (void)startLoading: (BOOL)forceRefresh
+- (void)startLoading
{
- [self _startLoading: forceRefresh];
+ [self _startLoading];
}
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.h b/WebKit/WebView.subproj/WebDataSourcePrivate.h
index 4931235..4862ef6 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.h
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.h
@@ -83,26 +83,26 @@
- (void)_setResourceData:(NSData *)data;
- (Class)_representationClass;
-- (void)_setRepresentation: (id<WebDocumentRepresentation>)representation;
-- (void)_setController: (WebController *)controller;
-- (void)_setParent: (WebDataSource *)p;
-- (void)_startLoading: (BOOL)forceRefresh;
+- (void)_setRepresentation:(id<WebDocumentRepresentation>)representation;
+- (void)_setController:(WebController *)controller;
+- (void)_setParent:(WebDataSource *)p;
+- (void)_startLoading;
- (void)_stopLoading;
- (BOOL)_isStopping;
- (void)_recursiveStopLoading;
- (void)_addSubresourceClient:(WebSubresourceClient *)client;
- (void)_removeSubresourceClient:(WebSubresourceClient *)client;
-- (void)_setPrimaryLoadComplete: (BOOL)flag;
+- (void)_setPrimaryLoadComplete:(BOOL)flag;
- (double)_loadingStartedTime;
-- (void)_setTitle: (NSString *)title;
-- (void)_setURL: (NSURL *)URL;
+- (void)_setTitle:(NSString *)title;
+- (void)_setURL:(NSURL *)URL;
- (void)_setContentPolicy:(WebContentPolicy *)policy;
- (void)_setContentType:(NSString *)type;
- (void)_setEncoding:(NSString *)encoding;
- (void)_layoutChildren;
- (void)_clearErrors;
-- (void)_setMainDocumentError: (WebError *)error;
-- (void)_addError: (WebError *)error forResource: (NSString *)resourceDescription;
+- (void)_setMainDocumentError:(WebError *)error;
+- (void)_addError:(WebError *)error forResource:(NSString *)resourceDescription;
+ (NSMutableDictionary *)_repTypes;
+ (BOOL)_canShowMIMEType:(NSString *)MIMEType;
- (void)_loadIcon;
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.m b/WebKit/WebView.subproj/WebDataSourcePrivate.m
index 4e9434a..8f44d0e 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.m
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.m
@@ -161,7 +161,7 @@
}
-- (void)_startLoading: (BOOL)forceRefresh
+- (void)_startLoading
{
ASSERT([self _isStopping] == NO);
@@ -180,7 +180,7 @@
// Fire this guy up.
if (!_private->mainHandle) {
- _private->mainClient = [[WebMainResourceClient alloc] initWithDataSource: self];
+ _private->mainClient = [[WebMainResourceClient alloc] initWithDataSource:self];
_private->mainHandle = [[WebResourceHandle alloc] initWithRequest:_private->request client:_private->mainClient];
}
[_private->mainClient didStartLoadingWithURL:[_private->mainHandle URL]];
diff --git a/WebKit/WebView.subproj/WebFrame.h b/WebKit/WebView.subproj/WebFrame.h
index 67acda0..d9c51c3 100644
--- a/WebKit/WebView.subproj/WebFrame.h
+++ b/WebKit/WebView.subproj/WebFrame.h
@@ -73,7 +73,7 @@
/*
*/
-- (void)reload: (BOOL)forceRefresh;
+- (void)reload;
/*
diff --git a/WebKit/WebView.subproj/WebFrame.m b/WebKit/WebView.subproj/WebFrame.m
index f40e380..8d76858 100644
--- a/WebKit/WebView.subproj/WebFrame.m
+++ b/WebKit/WebView.subproj/WebFrame.m
@@ -174,7 +174,7 @@
if (self == [[self controller] mainFrame])
LOG(DocumentLoad, "loading %s", [[[[self provisionalDataSource] originalURL] absoluteString] cString]);
- [_private->provisionalDataSource startLoading:[self _loadType] == WebFrameLoadTypeRefresh];
+ [_private->provisionalDataSource startLoading];
}
@@ -187,7 +187,7 @@
}
-- (void)reload: (BOOL)forceRefresh
+- (void)reload
{
WebDataSource *dataSource = [self dataSource];
WebResourceRequest *request;
@@ -202,7 +202,7 @@
WebDataSource *newDataSource = [[WebDataSource alloc] initWithRequest:request];
[newDataSource _setParent:[dataSource parent]];
if ([self setProvisionalDataSource:newDataSource]) {
- [self _setLoadType:WebFrameLoadTypeRefresh];
+ [self _setLoadType:WebFrameLoadTypeReload];
[self startLoading];
}
[newDataSource release];
diff --git a/WebKit/WebView.subproj/WebFramePrivate.h b/WebKit/WebView.subproj/WebFramePrivate.h
index 7ae0189..5d3df40 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.h
+++ b/WebKit/WebView.subproj/WebFramePrivate.h
@@ -27,15 +27,15 @@ typedef enum {
} WebFrameState;
typedef enum {
- WebFrameLoadTypeUninitialized = 0,
- WebFrameLoadTypeStandard = 1,
- WebFrameLoadTypeBack = 2,
- WebFrameLoadTypeForward = 3,
- WebFrameLoadTypeIndexedBack = 4,
- WebFrameLoadTypeIndexedForward = 5,
- WebFrameLoadTypeRefresh = 6,
- WebFrameLoadTypeInternal = 7,
- WebFrameLoadTypeIntermediateBack = 8
+ WebFrameLoadTypeStandard,
+ WebFrameLoadTypeBack,
+ WebFrameLoadTypeForward,
+ WebFrameLoadTypeIndexedBack,
+ WebFrameLoadTypeIndexedForward,
+ WebFrameLoadTypeReload,
+ WebFrameLoadTypeReloadAllowingStaleData,
+ WebFrameLoadTypeInternal,
+ WebFrameLoadTypeIntermediateBack
} WebFrameLoadType;
#define WebFrameStateChangedNotification @"WebFrameStateChangedNotification"
@@ -97,4 +97,6 @@ typedef enum {
- (void)_defersCallbacksChanged;
+- (void)_reloadAllowingStaleData;
+
@end
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index 3a59669..6d0d992 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -284,7 +284,7 @@ static const char * const stateNames[] = {
[self _restoreScrollPosition];
break;
- case WebFrameLoadTypeRefresh:
+ case WebFrameLoadTypeReload:
[self _scrollToTop];
break;
@@ -301,11 +301,11 @@ static const char * const stateNames[] = {
case WebFrameLoadTypeInternal:
// Do nothing, this was a frame/iframe non user load.
+ case WebFrameLoadTypeReloadAllowingStaleData:
break;
// FIXME Remove this check when dummy ds is removed. An exception should be thrown
// if we're in the WebFrameLoadTypeUninitialized state.
- case WebFrameLoadTypeUninitialized:
default:
ASSERT_NOT_REACHED();
}
@@ -462,22 +462,18 @@ static const char * const stateNames[] = {
[self _restoreScrollPosition];
break;
- case WebFrameLoadTypeRefresh:
+ case WebFrameLoadTypeReload:
[self _scrollToTop];
break;
case WebFrameLoadTypeStandard:
case WebFrameLoadTypeInternal:
+ case WebFrameLoadTypeReloadAllowingStaleData:
// Do nothing.
break;
- // FIXME Remove this check when dummy ds is removed. An exception should be thrown
- // if we're in the WebFrameLoadTypeUninitialized state.
- case WebFrameLoadTypeUninitialized:
- break;
-
default:
- [[NSException exceptionWithName:NSGenericException reason:@"invalid load type during commit transition" userInfo: nil] raise];
+ ASSERT_NOT_REACHED();
break;
}
}
@@ -704,4 +700,9 @@ static const char * const stateNames[] = {
[[self dataSource] _defersCallbacksChanged];
}
+- (void)_reloadAllowingStaleData
+{
+ // FIXME: Implement.
+}
+
@end
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index e46f08c..944e56e 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -637,14 +637,14 @@
- (void)setTextEncoding:(CFStringEncoding)encoding
{
WebFrame *frame = [self _frame];
- [frame reload:NO];
+ [frame reload];
[[frame provisionalDataSource] _setOverrideEncoding:encoding];
}
- (void)setDefaultTextEncoding
{
WebFrame *frame = [self _frame];
- [frame reload:NO];
+ [frame reload];
[[frame provisionalDataSource] _setOverrideEncoding:kCFStringEncodingInvalidId];
}
diff --git a/WebKit/WebView.subproj/WebView.h b/WebKit/WebView.subproj/WebView.h
index c64a70e..28340c7 100644
--- a/WebKit/WebView.subproj/WebView.h
+++ b/WebKit/WebView.subproj/WebView.h
@@ -218,4 +218,19 @@ extern NSString *WebContextMenuElementFrameKey;
// Get the appropriate user-agent string for a particular URL.
- (NSString *)userAgentForURL:(NSURL *)URL;
+// Find out if the current web page supports text encodings.
+- (BOOL)supportsTextEncoding;
+
+// Make the page display with a different text encoding; stops any load in progress.
+// The text encoding passed in overrides the normal text encoding smarts including
+// what's specified in a web page's header or HTTP response.
+// The text encoding automatically goes back to the default when the top level frame
+// changes to a new location.
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding;
+- (void)resetTextEncoding;
+
+// Find out the current state. It's an error to call customTextEncoding if hasCustomTextEncoding is NO.
+- (BOOL)hasCustomTextEncoding;
+- (CFStringEncoding)customTextEncoding;
+
@end
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index 3cee138..6147c90 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -23,7 +23,8 @@
#import <WebKit/WebPluginDatabase.h>
#import <WebKit/WebViewPrivate.h>
-#import <WebFoundation/WebFoundation.h>
+#import <WebFoundation/WebAssertions.h>
+#import <WebFoundation/WebResourceHandle.h>
NSString * WebContextMenuElementLinkURLKey = @"WebContextLinkURL";
NSString * WebContextMenuElementLinkLabelKey = @"WebContextLinkLabel";
@@ -443,4 +444,37 @@ NSString * WebContextMenuElementFrameKey = @"WebContextFrame";
return @"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.0) Gecko/20020715";
}
+- (BOOL)supportsTextEncoding
+{
+ // FIXME: Implement this.
+ return YES;
+}
+
+- (void)setCustomTextEncoding:(CFStringEncoding)encoding
+{
+ // FIXME: Implement this.
+}
+
+- (void)resetTextEncoding
+{
+ // FIXME: Implement this.
+}
+
+- (BOOL)hasCustomTextEncoding
+{
+ // FIXME: Implement this.
+ return NO;
+}
+
+- (CFStringEncoding)customTextEncoding
+{
+ if (![self hasCustomTextEncoding]) {
+ ERROR("must not ask for customTextEncoding is hasCustomTextEncoding is NO");
+ return kCFStringEncodingInvalidId;
+ }
+
+ // FIXME: Implement this.
+ return kCFStringEncodingInvalidId;
+}
+
@end
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list