andersca@apple.com [Thu, 29 Nov 2007 22:15:08 +0000 (22:15 +0000)]
Reviewed by Alexey.
Move Mac-specific tests to platform/mac.
* fast/events/objc-event-api-expected.txt: Removed.
* fast/events/objc-event-api.html: Removed.
* fast/events/objc-keyboard-event-creation-expected.txt: Removed.
* fast/events/objc-keyboard-event-creation.html: Removed.
* platform/mac/fast/events/objc-event-api-expected.txt: Copied from fast/events/objc-event-api-expected.txt.
* platform/mac/fast/events/objc-event-api.html: Copied from fast/events/objc-event-api.html.
* platform/mac/fast/events/objc-keyboard-event-creation-expected.txt: Copied from fast/events/objc-keyboard-event-creation-expected.txt.
* platform/mac/fast/events/objc-keyboard-event-creation.html: Copied from fast/events/objc-keyboard-event-creation.html.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28203
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Thu, 29 Nov 2007 22:10:11 +0000 (22:10 +0000)]
Reviewed by John.
Rename WebKitShrinksStandaloneImagesToFitKey to WebKitShrinksStandaloneImagesToFit.
This is safe to do because the preference is off by default and Safari 3, which is the only client that turns it on,
is using the setter and not messing around with NSUserDefaults.
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.m:
(+[WebPreferences initialize]):
(-[WebPreferences shrinksStandaloneImagesToFit]):
(-[WebPreferences setShrinksStandaloneImagesToFit:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28202
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 29 Nov 2007 21:57:05 +0000 (21:57 +0000)]
Windows build fix
Removed some unreachable code (ironically, the code was some
ASSERT_NOT_REACHED()s).
* pcre/pcre_compile.cpp:
(compile_branch):
* pcre/pcre_exec.cpp:
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28201
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Thu, 29 Nov 2007 21:53:38 +0000 (21:53 +0000)]
Reviewed by Sam.
Don't install event handlers or set the zoom cursor if auto-shrink has been disabled.
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageDocument::imageChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28200
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Thu, 29 Nov 2007 21:51:09 +0000 (21:51 +0000)]
Removing some fixed tests
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28199
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 29 Nov 2007 21:49:52 +0000 (21:49 +0000)]
Build fix that works...?
* WebChromeClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28198
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 29 Nov 2007 21:26:35 +0000 (21:26 +0000)]
- Build fix. Added additional includes for VS Express to the Release
project.
* Drosera/win/Drosera.vcproj/Drosera.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28197
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 29 Nov 2007 21:13:56 +0000 (21:13 +0000)]
Better build fix for Gtk
* WebCoreSupport/ChromeClientGtk.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28196
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 29 Nov 2007 21:09:59 +0000 (21:09 +0000)]
Build fix
* WebChromeClient.cpp:
(WebChromeClient::requestQuotaIncreaseForNewDatabase):
(WebChromeClient::requestQuotaIncreaseForDatabaseOperation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28195
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Thu, 29 Nov 2007 19:53:25 +0000 (19:53 +0000)]
WebKitTools:
Reviewed by Adam.
<rdar://problem/
5132005>
setUserStyleSheetEnabled is not fully implemented in Windows DRT.
* DumpRenderTree/win/DumpRenderTree.vcproj:
Add shlwapi.lib
* DumpRenderTree/win/LayoutTestControllerWin.cpp:
(LayoutTestController::setUserStyleSheetEnabled):
Implement this.
(appendComponentToPath):
New method which wraps the Win32 API PathAppend.
(followShortcuts):
New method which checks if a file points to a shortcut and
follows the shortcut.
(resolveCygwinPath):
New method that takes a cygwin unix-style path and returns the Win32 path.
(cfStringRefToWString):
(LayoutTestController::setUserStyleSheetLocation):
Implement this.
LayoutTests:
Reviewed by Adam.
<rdar://problem/
5132005>
setUserStyleSheetEnabled is not fully implemented in Windows DRT.
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28194
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Thu, 29 Nov 2007 19:38:03 +0000 (19:38 +0000)]
Reviewed by Geoff.
Fix for <rdar://problem/
5620151> Disable JavaScript for SVG as
image for <img> and CSS images
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::dataChanged): When we create the empty clients,
explicitly disable JavaScript in the settings.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28193
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 29 Nov 2007 19:29:51 +0000 (19:29 +0000)]
WebCore:
Reviewed by Anders
Support for <rdar://problem/
5556381> and <rdar://problem/
5556379>
The Database feature in the engine needs to support delegate calls for policy decisions and
also provide notifications when origins and databases change their state.
This patch also polishes off the missing features of the management API
* page/Chrome.cpp: Implement the two UIDelegate methods
(WebCore::Chrome::requestQuotaIncreaseForNewDatabase): Ask for more space to create a new database if it won't fit
(WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation): Ask for more space to complete an in-progress operation
* page/Chrome.h:
* page/ChromeClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
(WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
* storage/Database.cpp:
(WebCore::Database::openDatabase): Check to see if this database can be opened - the quota must be high
enough and if it isn't, the UIDelegate should have a change to bump the quota.
Also update the UI-relevant details (display name and estimated size) upon successful opening of the database
* storage/DatabaseDetails.h: Remove the version parameter as it is a programatic detail of a
site database and is not important to API clients
(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::isValid):
(WebCore::DatabaseDetails::name):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::openTrackerDatabase): Tweaked the schema here - there was a horrible bug with the old schema that would
prevent you from having two databases of the same name from two different origins. Also simplify the origin-management schema
(WebCore::DatabaseTracker::canEstablishDatabase): Added. Does some estimated size vs quota checks, and asks the UI delegate for
more space if necessary
(WebCore::DatabaseTracker::hasEntryForOrigin):
(WebCore::DatabaseTracker::establishEntryForOrigin): Establishes a tracker entry for the given origin with the current default quota
Also notifies the client of the new origin
(WebCore::DatabaseTracker::setDatabaseDetails): Update the display name and estimated size for the given database
(WebCore::DatabaseTracker::fullPathForDatabase): Tweak to add the ability to get the path without creating it - for management purposes
(WebCore::DatabaseTracker::populateOrigins): Populate origins from the Origins table instead of the Databases table
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::detailsForNameAndOrigin): For API management
(WebCore::DatabaseTracker::usageForDatabase):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota): Notify the client
(WebCore::DatabaseTracker::addDatabase): Notify the client
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* storage/DatabaseTracker.h:
WebKit/gtk:
Keep it building with new client method
* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::requestQuotaIncreaseForNewDatabase):
(WebKit::ChromeClient::requestQuotaIncreaseForDatabaseOperation):
* WebCoreSupport/ChromeClientGtk.h:
WebKit/mac:
Reviewed by Anders
Support for <rdar://problem/
5556381> and <rdar://problem/
5556379>
Hook up UI Delegate calls for the database engine feature and other small tweaks
* Storage/WebDatabaseManager.mm:
(-[WebDatabaseManager detailsForDatabase:withOrigin:]): Renamed databaseName parameter to databaseIdentifier for clarity
(-[WebDatabaseManager deleteDatabase:withOrigin:]): Renamed databaseName parameter to databaseIdentifier for clarity
* Storage/WebDatabaseManagerPrivate.h:
* Storage/WebDatabaseTrackerClient.h:
* Storage/WebDatabaseTrackerClient.mm:
(WebDatabaseTrackerClient::dispatchDidModifyDatabase): Renamed databaseName parameter to databaseIdentifier for clarity
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requestQuotaIncreaseForNewDatabase): Call through to the UI Delegate
(WebChromeClient::requestQuotaIncreaseForDatabaseOperation): Ditto
* WebView/WebUIDelegatePrivate.h: Added the two UI Delegate methods
* WebView/WebView.mm:
(CallDelegateReturningUnsignedLongLong):
(CallUIDelegateReturningUnsignedLongLong):
* WebView/WebViewInternal.h:
WebKit/qt:
Keep it building with new client method
* WebCoreSupport/ChromeClientQt.cpp:
(WebCore::ChromeClientQt::requestQuotaIncreaseForNewDatabase):
(WebCore::ChromeClientQt::requestQuotaIncreaseForDatabaseOperation):
* WebCoreSupport/ChromeClientQt.h:
WebKit/win:
Keep it building with new client method
* WebChromeClient.cpp:
(ChromeClient::requestQuotaIncreaseForNewDatabase):
(ChromeClient::requestQuotaIncreaseForDatabaseOperation):
* WebChromeClient.h:
WebKit/wx:
Keep it building with new client method
* WebKitSupport/ChromeClientWx.cpp:
(WebCore::ChromeClient::requestQuotaIncreaseForNewDatabase):
(WebCore::ChromeClient::requestQuotaIncreaseForDatabaseOperation):
* WebKitSupport/ChromeClientWx.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28192
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Thu, 29 Nov 2007 19:21:47 +0000 (19:21 +0000)]
Reviewed by Adam.
Fixed <rdar://
5133828> fast/frames/iframe-window-focus.html output is lowercase
* DumpRenderTree/win/EventSender.cpp:
(keyDownCallback):
uppercase letters were being sent as lowercase letters without the shift key down.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28191
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Thu, 29 Nov 2007 18:48:21 +0000 (18:48 +0000)]
Fix typo
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28190
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 29 Nov 2007 18:46:57 +0000 (18:46 +0000)]
- Windows build fix. VS express needs some love.
* Drosera/win/Drosera.vcproj/Drosera.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28189
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Thu, 29 Nov 2007 18:45:54 +0000 (18:45 +0000)]
WebCore:
Reviewed by Beth Dakin and Darin Adler.
- manual test for <rdar://problem/
5346394> Contextmenu event doesn't fire on body element inside frame
* manual-tests/context-click-unfocused-frame.html: Added.
WebKit/win:
Reviewed by Beth Dakin and Darin Adler.
- fix <rdar://problem/
5346394> Contextmenu event doesn't fire on body element inside frame
* WebView.cpp:
(WebView::handleContextMenuEvent): Send the context menu event to the
frame containing the node that was hit.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28188
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 29 Nov 2007 18:36:57 +0000 (18:36 +0000)]
Reviewed by Sam.
- Added recursive runloop guards.
* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer suspendProcessIfPaused]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28187
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 12:49:31 +0000 (12:49 +0000)]
2007-11-29 Eric Seidel <eric@webkit.org>
Reviewed by Mark Rowe.
Fix for --guard crash of fast/js/regexp-charclass-crash introduced by r28151.
* pcre/pcre_compile.cpp:
(is_anchored):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28186
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 29 Nov 2007 11:57:00 +0000 (11:57 +0000)]
Gtk build fix.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28185
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:44:31 +0000 (11:44 +0000)]
2007-11-29 Eric Seidel <eric@webkit.org>
Reviewed by Mark Rowe.
Attempt to fix non-mac builds after PCRE cleanup.
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCoreSources.bkl:
* pcre/pcre.pri:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28184
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:39:12 +0000 (11:39 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Give consistent naming to the RegExp options/compile flags
* pcre/pcre_compile.cpp:
(compile_branch):
(is_anchored):
(find_firstassertedchar):
(printCompiledRegExp):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28183
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:38:26 +0000 (11:38 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Give consistent naming to the RegExp options/compile flags
* pcre/pcre_compile.cpp:
(compile_branch):
(is_anchored):
(find_firstassertedchar):
(printCompiledRegExp):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28182
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:37:40 +0000 (11:37 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Pull first_byte and req_byte optimizations out into separate static funtions, SunSpider reported this as a win.
* pcre/pcre_exec.cpp:
(tryFirstByteOptimization):
(tryRequiredByteOptimization):
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28181
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:37:08 +0000 (11:37 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
give PCRE_MULTILINE a better name: OptionMatchAcrossMultipleLines
* pcre/pcre_compile.cpp:
(compile_branch):
(is_anchored):
(printCompiledRegExp):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28180
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:35:37 +0000 (11:35 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Oliver.
Deprecate jsRegExpExecute's offset-vector fallback code
* pcre/pcre_exec.cpp:
(jsRegExpExecute):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28179
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:34:33 +0000 (11:34 +0000)]
2007-11-28 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Centralize code for subjectPtr adjustments using inlines, only ever check for a single trailing surrogate (as UTF16
only allows one), possibly fix PCRE bugs involving char classes and garbled UTF16 strings.
* pcre/pcre_exec.cpp:
(match):
(jsRegExpExecute):
* pcre/pcre_internal.h:
(getPreviousChar):
(movePtrToPreviousChar):
(movePtrToNextChar):
(movePtrToStartOfCurrentChar):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28178
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:33:47 +0000 (11:33 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Make cur_is_word and prev_is_word locals, and change OP_ANY to OP_ANY_CHAR for clarity
* pcre/pcre_compile.cpp:
(find_fixedlength):
(compile_branch):
(canApplyFirstCharOptimization):
* pcre/pcre_exec.cpp:
(match):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28177
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:32:46 +0000 (11:32 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Mitz & Maciej.
Change _NC operators to use _IGNORING_CASE for clarity
* pcre/pcre_compile.cpp:
(find_fixedlength):
(compile_branch):
(find_firstassertedchar):
* pcre/pcre_exec.cpp:
(match):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28176
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:32:01 +0000 (11:32 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Mitz.
Remove branch from return
* pcre/pcre_compile.cpp:
(compile_branch):
* pcre/pcre_exec.cpp:
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28175
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:31:24 +0000 (11:31 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Add repeatInformationFromInstructionOffset inline
* pcre/pcre_exec.cpp:
(repeatInformationFromInstructionOffset):
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28174
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:30:52 +0000 (11:30 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Remove no longer used error code JSRegExpErrorMatchLimit
* kjs/regexp.cpp:
(KJS::RegExp::match):
* pcre/pcre.h:
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28173
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:30:20 +0000 (11:30 +0000)]
2007-11-28 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
change getChar* functions to return result and push 'c' into local scopes for clarity
* pcre/pcre_compile.cpp:
(compile_branch):
(calculateCompiledPatternLengthAndFlags):
* pcre/pcre_exec.cpp:
(match):
* pcre/pcre_internal.h:
(getChar):
(getCharAndAdvance):
(getCharAndLength):
(getCharAndAdvanceIfSurrogate):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28172
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:29:46 +0000 (11:29 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Make i locally scoped for better code clarity
* pcre/pcre_exec.cpp:
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28171
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:29:07 +0000 (11:29 +0000)]
2007-11-28 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Comment cleanup
* pcre/pcre_exec.cpp:
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28170
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:28:29 +0000 (11:28 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Give subjectPtr and instructionPtr sane names, reduce size of MatchFrame for a 0.2% speedup.
* pcre/pcre_compile.cpp:
(compile_branch):
(calculateCompiledPatternLengthAndFlags):
* pcre/pcre_exec.cpp:
(match_ref):
(MatchStack::pushNewFrame):
(getUTF8CharAndIncrementLength):
(match):
* pcre/pcre_internal.h:
(getChar):
(getCharAndAdvance):
(getCharAndLength):
(getCharAndAdvanceIfSurrogate):
* pcre/pcre_xclass.cpp:
(getUTF8CharAndAdvancePointer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28169
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:27:47 +0000 (11:27 +0000)]
2007-11-26 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Small speedup (0.7%) by simplifying canUseStackBufferForNextFrame() check
* pcre/pcre_exec.cpp:
(MatchStack::MatchStack):
(MatchStack::popCurrentFrame):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28168
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:27:11 +0000 (11:27 +0000)]
2007-11-25 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Lower MATCH_LIMIT_RECURSION to more sane levels to prevent hangs on run-javascriptcore-tests
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28167
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:26:33 +0000 (11:26 +0000)]
2007-11-25 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Remove match_is_group variable for another 5% speedup
* pcre/pcre_compile.cpp:
* pcre/pcre_exec.cpp:
(startNewGroup):
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28166
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:25:55 +0000 (11:25 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Remove redundant eptrblock struct
* pcre/pcre_exec.cpp:
(MatchStack::pushNewFrame):
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28165
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:25:16 +0000 (11:25 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Remove redundant match_call_count and move recursion check out of super-hot code path
SunSpider says this is at least an 8% speedup for regexp.
* pcre/pcre_exec.cpp:
(MatchStack::MatchStack):
(MatchStack::pushNewFrame):
(MatchStack::popCurrentFrame):
(MatchStack::popAllFrames):
(match):
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28164
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:24:39 +0000 (11:24 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Get rid of GETCHAR* macros, replacing them with better named inlines
* pcre/pcre_compile.cpp:
(compile_branch):
(calculateCompiledPatternLengthAndFlags):
* pcre/pcre_exec.cpp:
(match):
* pcre/pcre_internal.h:
(getCharAndAdvance):
(getCharAndLength):
(getCharAndAdvanceIfSurrogate):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28163
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:24:00 +0000 (11:24 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Further cleanup GET/PUT inlines
* pcre/pcre_internal.h:
(putOpcodeValueAtOffset):
(getOpcodeValueAtOffset):
(putOpcodeValueAtOffsetAndAdvance):
(put2ByteOpcodeValueAtOffset):
(get2ByteOpcodeValueAtOffset):
(put2ByteOpcodeValueAtOffsetAndAdvance):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28162
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:23:11 +0000 (11:23 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Give GET, PUT better names, and add (poor) moveOpcodePtrPastAnyAlternateBranches
* pcre/pcre_compile.cpp:
(firstSignificantOpCodeSkippingAssertions):
(find_fixedlength):
(complete_callout):
(compile_branch):
(compile_regex):
(is_anchored):
(canApplyFirstCharOptimization):
(find_firstassertedchar):
* pcre/pcre_exec.cpp:
(match):
* pcre/pcre_internal.h:
(putOpcodeValueAtOffset):
(getOpcodeValueAtOffset):
(putOpcodeValueAtOffsetAndAdvance):
(put2ByteOpcodeValueAtOffset):
(get2ByteOpcodeValueAtOffset):
(moveOpcodePtrPastAnyAlternateBranches):
* pcre/pcre_ucp_searchfuncs.cpp:
(_pcre_ucp_othercase):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28161
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:22:30 +0000 (11:22 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Add inlines for toLowerCase, isWordChar, isSpaceChar for further regexp speedup
* pcre/pcre_compile.cpp:
(compile_branch):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(match):
(jsRegExpExecute):
* pcre/pcre_internal.h:
(toLowerCase):
(flipCase):
(classBitmapForChar):
(charTypeForChar):
(isWordChar):
(isSpaceChar):
(CompileData::CompileData):
* pcre/pcre_xclass.cpp:
(_pcre_xclass):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28160
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:21:50 +0000 (11:21 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
cleanup _pcre_ucp_othercase
* pcre/pcre_ucp_searchfuncs.cpp:
(_pcre_ucp_othercase):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28159
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:21:07 +0000 (11:21 +0000)]
2007-11-28 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Abstract frame variables into locals and args
* pcre/pcre_compile.cpp:
(compile_branch):
* pcre/pcre_exec.cpp:
(match):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28158
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:20:26 +0000 (11:20 +0000)]
2007-11-28 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Section off MatchData arguments into args struct
* pcre/pcre_exec.cpp:
(MatchStack::pushNewFrame):
(match):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28157
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:19:42 +0000 (11:19 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
split first_significant_code into two simpler functions
* pcre/pcre_compile.cpp:
(firstSignificantOpCode):
(firstSignificantOpCodeSkippingAssertions):
(is_anchored):
(canApplyFirstCharOptimization):
(find_firstassertedchar):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28156
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:18:59 +0000 (11:18 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
split first_significant_code into two simpler functions
* pcre/pcre_compile.cpp:
(firstSignificantOpCode):
(firstSignificantOpCodeSkippingAssertions):
(is_anchored):
(canApplyFirstCharOptimization):
(find_firstassertedchar):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28155
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:18:16 +0000 (11:18 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
clean up is_counted_repeat
* pcre/pcre_compile.cpp:
(is_counted_repeat):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28154
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:17:32 +0000 (11:17 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
clean up check_escape
* pcre/pcre_compile.cpp:
(check_escape):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28153
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:16:48 +0000 (11:16 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Reformat find_fixedlength
* pcre/pcre_compile.cpp:
(find_fixedlength):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28152
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:16:01 +0000 (11:16 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
reformat is_anchored
* pcre/pcre_compile.cpp:
(is_anchored):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28151
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:15:13 +0000 (11:15 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Remove unused function could_be_empty_branch
* pcre/pcre_compile.cpp:
(first_significant_code):
(find_fixedlength):
(compile_branch):
(canApplyFirstCharOptimization):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28150
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:14:21 +0000 (11:14 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Pass around MatchData objects by reference
* pcre/pcre_exec.cpp:
(pchars):
(match_ref):
(match):
(jsRegExpExecute):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28149
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:13:33 +0000 (11:13 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
give PCRE_STARTLINE a better name and rename match_data to MatchData
* pcre/pcre_compile.cpp:
(compile_branch):
(canApplyFirstCharOptimization):
(find_firstassertedchar):
(printCompiledRegExp):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(pchars):
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28148
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:12:11 +0000 (11:12 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Clean up find_firstassertedchar
* pcre/pcre_compile.cpp:
(get_othercase_range):
(find_firstassertedchar):
(calculateCompiledPatternLengthAndFlags):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28147
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:11:23 +0000 (11:11 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Tim Hatcher.
Pass around CompileData& instead of CompileData*
* pcre/pcre_compile.cpp:
(compile_branch):
(jsRegExpCompile):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28146
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:10:33 +0000 (11:10 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Clean up compile_branch, move _pcre_ord2utf8, and rename CompileData
* JavaScriptCore.xcodeproj/project.pbxproj:
* pcre/pcre_compile.cpp:
(_pcre_ord2utf8):
(calculateCompiledPatternLengthAndFlags):
(jsRegExpCompile):
* pcre/pcre_internal.h:
* pcre/pcre_ord2utf8.cpp: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28145
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:09:42 +0000 (11:09 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
removing more macros
* pcre/pcre_compile.cpp:
(could_be_empty_branch):
(compile_branch):
(calculateCompiledPatternLengthAndFlags):
* pcre/pcre_exec.cpp:
(match):
(jsRegExpExecute):
* pcre/pcre_internal.h:
* pcre/pcre_xclass.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28144
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:08:50 +0000 (11:08 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
clean up formating in compile_branch
* pcre/pcre_compile.cpp:
(compile_branch):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28143
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:07:57 +0000 (11:07 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Fix spacing for read_repeat_counts
* pcre/pcre_compile.cpp:
(read_repeat_counts):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28142
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:06:57 +0000 (11:06 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Get rid of PCRE custom char types
* pcre/pcre_compile.cpp:
(check_escape):
(complete_callout):
(compile_branch):
(compile_regex):
(calculateCompiledPatternLengthAndFlags):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(match_ref):
(match):
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28141
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:06:02 +0000 (11:06 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
reformat get_othercase_range
* pcre/pcre_compile.cpp:
(get_othercase_range):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28140
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:05:07 +0000 (11:05 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Remove register keyword and more cleanup
* pcre/pcre_compile.cpp:
(find_fixedlength):
(compile_branch):
(is_anchored):
(is_startline):
(find_firstassertedchar):
(calculateCompiledPatternLengthAndFlags):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(MatchStack::canUseStackBufferForNextFrame):
(MatchStack::allocateNextFrame):
(MatchStack::pushNewFrame):
(MatchStack::frameIsStackAllocated):
(MatchStack::popCurrentFrame):
(MatchStack::unrollAnyHeapAllocatedFrames):
(getUTF8CharAndIncrementLength):
(match):
(jsRegExpExecute):
* pcre/pcre_internal.h:
(PUT2INC):
(isLeadingSurrogate):
(isTrailingSurrogate):
(decodeSurrogatePair):
(getChar):
* pcre/pcre_ord2utf8.cpp:
(_pcre_ord2utf8):
* pcre/pcre_xclass.cpp:
(getUTF8CharAndAdvancePointer):
(_pcre_xclass):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28139
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 29 Nov 2007 11:04:06 +0000 (11:04 +0000)]
2007-11-24 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Clean up jsRegExpExecute
* pcre/pcre_compile.cpp:
(returnError):
(jsRegExpCompile):
* pcre/pcre_exec.cpp:
(jsRegExpExecute):
* pcre/pcre_internal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28138
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 29 Nov 2007 10:16:27 +0000 (10:16 +0000)]
Fix REGRESSION(r27885): Installer hits assertion failure in JavaScriptGlue.
Reviewed by Maciej.
* JSValueWrapper.cpp:
(getThreadGlobalExecState): Set the global object on the Interpreter before using it.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28137
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 29 Nov 2007 09:05:32 +0000 (09:05 +0000)]
Fix an assertion failure seen on the layout tests, and when closing the window after visiting <coudal.com/losalamos/>.
Reviewed by Oliver Hunt.
* Plugins/WebBaseNetscapePluginStream.mm:
(-[WebBaseNetscapePluginStream _destroyStream]): Unlink the file and close the file
descriptor even when the stream is being destroyed without the load completing. This
avoids leaking the path and file descriptor, and leaving the temporary file on disk.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28136
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Thu, 29 Nov 2007 08:46:14 +0000 (08:46 +0000)]
Merging updated system alloc and spinlock code from r38 of TCMalloc.
Reviewed by Geoff
This is needed as a precursor to the merge of TCMalloc proper.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28135
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 29 Nov 2007 06:20:35 +0000 (06:20 +0000)]
Unreviewed layout test fix. Fix typos in the name of four files used by HTTP layout tests.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28134
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Thu, 29 Nov 2007 06:07:20 +0000 (06:07 +0000)]
WebCore:
Reviewed by Geoff.
Fallback content inside media elements should not be rendered.
Test: media/fallback.html
* rendering/RenderMedia.h:
(WebCore::RenderMedia::canHaveChildren):
LayoutTests:
Reviewed by Geoff.
Test that fallback content inside media elements is not be rendered.
* media/fallback-expected.txt: Added.
* media/fallback.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28133
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 29 Nov 2007 06:04:21 +0000 (06:04 +0000)]
Reviewed by Geoff
Add copyKeysToVector utility, mirroring copyValuesToVector
Also change the copyValuesToVector implementation to be a little more attractive
* wtf/HashMap.h:
(WTF::copyKeysToVector):
(WTF::copyValuesToVector):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28132
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 29 Nov 2007 05:33:22 +0000 (05:33 +0000)]
Windows build fix.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28131
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 29 Nov 2007 05:29:56 +0000 (05:29 +0000)]
Gtk build fix.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28130
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Thu, 29 Nov 2007 04:50:24 +0000 (04:50 +0000)]
Reviewed by Oliver.
Make QTMovieView fill color transparent. This behavior matches the specification
(and allows nice alpha blended video).
* platform/graphics/mac/MoviePrivateQTKit.mm:
(WebCore::MoviePrivate::createQTMovieView):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28129
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Thu, 29 Nov 2007 02:25:10 +0000 (02:25 +0000)]
just some more typo fixes
* http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-2-level-expected.txt:
* http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-2-level.html:
* http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-from-javscript-url-expected.txt:
* http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-from-javscript-url.html:
* http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame-2-level-expected.txt:
* http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame-2-level.html:
* http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame-expected.txt:
* http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame.html:
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe.html:
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open.html:
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe.html:
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28128
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Thu, 29 Nov 2007 02:02:11 +0000 (02:02 +0000)]
WebCore:
Reviewed by Darin.
Test: media/video-controls.html
<rdar://problem/
5605668>
Implement controls attribute for video element
- Add RenderMedia and make RenderVideo its subclass. Controls code goes to RenderMedia while
video specific (painting etc) code stays in RenderVideo. For example audio controls can be implemented
later by just instantiating RenderMedia as renderer.
- Make media renderer hierarchy inherit from RenderBlock instead of RenderReplaced so it can
have child nodes (for controls).
- Controls are implemented as a shadow DOM.
- Current look is a placeholder. It is defined purely in CSS.
- Some things like volume controls are not yet implemented.
- Fade-in/out is done manually, CSS animations don't work well in shadow trees.
* WebCore.xcodeproj/project.pbxproj:
* css/html4.css:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::attributeChanged):
(WebCore::HTMLMediaElement::updateMovie):
(WebCore::HTMLMediaElement::defaultEventHandler):
* html/HTMLMediaElement.h:
* rendering/RenderMedia.cpp: Added.
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
(WebCore::MediaControlShadowRootElement::isShadowNode):
(WebCore::MediaControlShadowRootElement::shadowParentNode):
(WebCore::MediaControlInputElement::MediaControlInputElement):
(WebCore::MediaControlInputElement::attachToParent):
(WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
(WebCore::MediaControlPlayButtonElement::inPausedState):
(WebCore::MediaControlPlayButtonElement::defaultEventHandler):
(WebCore::MediaControlPlayButtonElement::update):
(WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::update):
(WebCore::RenderMedia::RenderMedia):
(WebCore::RenderMedia::~RenderMedia):
(WebCore::RenderMedia::mediaElement):
(WebCore::RenderMedia::movie):
(WebCore::RenderMedia::setStyle):
(WebCore::RenderMedia::createControlsShadowRoot):
(WebCore::RenderMedia::createPanel):
(WebCore::RenderMedia::createPlayButton):
(WebCore::RenderMedia::createTimeline):
(WebCore::RenderMedia::createTimeDisplay):
(WebCore::RenderMedia::updateFromElement):
(WebCore::RenderMedia::updateControls):
(WebCore::RenderMedia::timeUpdateTimerFired):
(WebCore::RenderMedia::updateTimeDisplay):
(WebCore::RenderMedia::updateControlVisibility):
(WebCore::RenderMedia::changeOpacity):
(WebCore::RenderMedia::opacityAnimationTimerFired):
(WebCore::RenderMedia::forwardEvent):
* rendering/RenderMedia.h: Added.
(WebCore::RenderMedia::renderName):
(WebCore::RenderMedia::isMedia):
(WebCore::RenderMedia::intrinsicSize):
* rendering/RenderObject.h:
(WebCore::RenderObject::isMedia):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::RenderVideo):
(WebCore::RenderVideo::videoSizeChanged):
(WebCore::RenderVideo::paintObject):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updateFromElement):
(WebCore::RenderVideo::calcAspectRatioWidth):
(WebCore::RenderVideo::calcAspectRatioHeight):
* rendering/RenderVideo.h:
LayoutTests:
Reviewed by Darin.
<rdar://problem/
5605668>
Implement controls attribute for video element
- A new test for the controls attribute.
- Add the controls attibute to all existing video tests. This will give the code
some additional exercise without affecting test results.
* media/progress-event.html:
* media/video-append-source.html:
* media/video-autoplay.html:
* media/video-buffered.html:
* media/video-controls-expected.txt: Added.
* media/video-controls.html: Added.
* media/video-currentTime-set.html:
* media/video-currentTime-set2.html:
* media/video-currentTime.html:
* media/video-dom-autoplay.html:
* media/video-dom-end.html:
* media/video-dom-loopcount.html:
* media/video-dom-loopend.html:
* media/video-dom-loopstart.html:
* media/video-dom-src.html:
* media/video-dom-start.html:
* media/video-end.html:
* media/video-error-abort.html:
* media/video-error-does-not-exist.html:
* media/video-load-networkState.html:
* media/video-load-readyState.html:
* media/video-loopcount.html:
* media/video-loopend.html:
* media/video-loopstart.html:
* media/video-muted.html:
* media/video-no-autoplay.html:
* media/video-pause-empty-events.html:
* media/video-play-empty-events.html:
* media/video-play-pause-events.html:
* media/video-play-pause-exception.html:
* media/video-poster.html:
* media/video-seek-past-end-paused.html:
* media/video-seek-past-end-playing.html:
* media/video-seekable.html:
* media/video-seeking.html:
* media/video-size.html:
* media/video-source-media.html:
* media/video-source-type.html:
* media/video-source.html:
* media/video-src-change.html:
* media/video-src-remove.html:
* media/video-src-set.html:
* media/video-src-source.html:
* media/video-src.html:
* media/video-start.html:
* media/video-volume.html:
* media/video-width-height.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28127
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
justin.garcia@apple.com [Thu, 29 Nov 2007 01:33:52 +0000 (01:33 +0000)]
WebCore:
Reviewed by Darin Adler.
<rdar://problem/
5573879> GMail Beta: Crash in when undoing Remove Formating
In the new beta, Google has added some custom code on top of our RemoveFormat
to work around a bug where fully selected lists aren't removed. This code corrupts
the undo stack and causes crashes. This change fixes two problems with RemoveFormat
so that Google doesn't have to have any custom code. After checking this in I'll
work on bulletproofing the undo stack
* WebCore.xcodeproj/project.pbxproj:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertLineBreak): Added this convenience method.
(WebCore::CompositeEditCommand::inputText): Added code to select all inserted text, not
just the last paragraph. Added code to support an input string with '\n's.
* editing/CompositeEditCommand.h:
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Moved code to its own EditCommand.
* editing/RemoveFormatCommand.cpp: Added. Moved code from removeFormattingAndStyle here.
(WebCore::RemoveFormatCommand::RemoveFormatCommand):
(WebCore::RemoveFormatCommand::doApply): Added code to remove fully selected lists.
* editing/RemoveFormatCommand.h: Added.
(WebCore::RemoveFormatCommand::editingAction):
LayoutTests:
Reviewed by Darin Adler.
<rdar://problem/
5573879> GMail Beta: Crash in when undoing Remove Formating
Added to demonstrate fixes:
* editing/execCommand/
5573879.html: Added.
* platform/mac/editing/execCommand/
5573879-expected.checksum: Added.
* platform/mac/editing/execCommand/
5573879-expected.png: Added.
* platform/mac/editing/execCommand/
5573879-expected.txt: Added.
Fixes (RemoveFormat now preserves the selection correctly):
* platform/mac/editing/execCommand/
4920742-1-expected.checksum:
* platform/mac/editing/execCommand/
4920742-1-expected.png:
* platform/mac/editing/execCommand/
4920742-1-expected.txt:
* platform/mac/editing/execCommand/remove-formatting-2-expected.checksum:
* platform/mac/editing/execCommand/remove-formatting-2-expected.png:
* platform/mac/editing/execCommand/remove-formatting-2-expected.txt:
* platform/mac/editing/execCommand/remove-formatting-expected.checksum:
* platform/mac/editing/execCommand/remove-formatting-expected.png:
* platform/mac/editing/execCommand/remove-formatting-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28126
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Thu, 29 Nov 2007 01:05:47 +0000 (01:05 +0000)]
Make this test not depend on the screen size.
* fast/dom/Window/window-resize-expected.txt:
* fast/dom/Window/window-resize.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28125
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 29 Nov 2007 00:43:14 +0000 (00:43 +0000)]
Reviewed by Adam Roben.
* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController keyDown:withModifiers:]):
Send capital letters through as lowercase letters with the shift key down
rather than sending them as if they were highly unusual "capital letter keys".
* Scripts/update-javascriptcore-test-results: Add a "--force" option for cases
where you need to update results and more tests are failing than before.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28124
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Thu, 29 Nov 2007 00:33:33 +0000 (00:33 +0000)]
WebKitTools:
Reviewed by Darin.
<rdar://problem/
5132001>
contextClick is not implemented in DRT on Windows.
* DumpRenderTree/win/EventSender.cpp:
(contextClickCallback):
Add a callback for contextClick, which sends a WM_RBUTTONDOWN message followed
by a WM_RBUTTONUP message.
* DumpRenderTree/win/UIDelegate.cpp:
(UIDelegate::hasCustomMenuImplementation):
(UIDelegate::trackCustomPopupMenu):
* DumpRenderTree/win/UIDelegate.h:
Add a no-op implementation of trackCustomPopupMenu, to prevent the default popup
menu from being shown (and causing the DRT to hang).
LayoutTests:
Reviewed by Darin.
<rdar://problem/
5132001>
contextClick is not implemented in DRT on Windows.
Remove tests that pass now that we have contextClick.
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28123
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Wed, 28 Nov 2007 23:05:21 +0000 (23:05 +0000)]
Removing some tests tracked by <rdar://
5130762> because they don't fail.
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28122
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Wed, 28 Nov 2007 22:45:10 +0000 (22:45 +0000)]
Removing fixed tests tracked by <rdar://
5128229>
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28121
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Wed, 28 Nov 2007 22:27:48 +0000 (22:27 +0000)]
Rubberstamped by Sam.
Fixing a typo in some filenames
* http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-subframe-expected.txt: Removed.
* http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-subframe.html: Removed.
* http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-window-open-expected.txt: Removed.
* http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-window-open.html: Removed.
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt: Copied from http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-subframe-expected.txt.
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe.html: Copied from http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-subframe.html.
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open-expected.txt: Copied from http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-window-open-expected.txt.
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open.html: Copied from http/tests/security/javascriptURL/xss-DENIED-from-javascipt-url-in-foreign-domain-window-open.html.
* http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-subframe-expected.txt: Removed.
* http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-subframe.html: Removed.
* http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-window-open-expected.txt: Removed.
* http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-window-open.html: Removed.
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt: Copied from http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-subframe-expected.txt.
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe.html: Copied from http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-subframe.html.
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open-expected.txt: Copied from http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-window-open-expected.txt.
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html: Copied from http/tests/security/javascriptURL/xss-DENIED-to-javascipt-url-in-foreign-domain-window-open.html.
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28120
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Wed, 28 Nov 2007 22:24:49 +0000 (22:24 +0000)]
Reviewed by Tim.
- Added guards to the wait loop so execution would not hang and now the
console window can process JavaScript.
* WebScriptDebugServer.cpp:
(WebScriptDebugServer::suspendProcessIfPaused):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28119
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Wed, 28 Nov 2007 22:04:44 +0000 (22:04 +0000)]
WebCore:
Reviewed by Dave Hyatt.
- fix <rdar://problem/
5612459> CrashTracer: [REGRESSION] 61 crashes in Safari at com.apple.WebCore: WebCore::AutoTableLayout::layout + 2046
Test: fast/table/empty-auto-column-zero-divide.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::fullRecalc):
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout): When distributing the remaining
width among columns, skip those whose effective (rather than
specified) width is auto and contain only empty cells.
LayoutTests:
Reviewed by Dave Hyatt.
- test for <rdar://problem/
5612459> CrashTracer: [REGRESSION] 61 crashes in Safari at com.apple.WebCore: WebCore::AutoTableLayout::layout + 2046
* fast/table/empty-auto-column-zero-divide-expected.txt: Added.
* fast/table/empty-auto-column-zero-divide.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28118
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele@apple.com [Wed, 28 Nov 2007 22:03:40 +0000 (22:03 +0000)]
Reviewed by Darin.
Fix for <rdar://problem/
5524216> CrashTracer: [USER] 496 crashes in Safari at com.apple.WebCore: WebCore::Frame::eventHandler const + 6
The CrashTracer shows a variety of crashes in different methods (including keyDown and keyUp). This change adds nil checks for the frame in
WebHTMLView to prevent future problems in other methods as well.
* WebView/WebHTMLView.mm:
(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
(-[WebHTMLView keyDown:]):
(-[WebHTMLView keyUp:]):
(-[WebHTMLView flagsChanged:]):
(-[WebHTMLView _selectionStartFontAttributesAsRTF]):
(-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
(-[WebHTMLView checkSpelling:]):
(-[WebHTMLView showGuessPanel:]):
(-[WebHTMLView indent:]):
(-[WebHTMLView outdent:]):
(-[WebHTMLView paste:]):
(-[WebHTMLView _lookUpInDictionaryFromMenu:]):
(-[WebHTMLView insertText:]):
(-[WebHTMLView selectionTextRects]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28117
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 28 Nov 2007 21:17:59 +0000 (21:17 +0000)]
Reviewed by Adam.
Implement the last bits of the WebDatabaseManager API.
* Interfaces/IWebDatabaseManager.idl:
* WebDatabaseManager.cpp:
(isEqual):
(WebDatabaseManager::sharedWebDatabaseManager):
(WebDatabaseManager::dispatchDidModifyOrigin):
(WebDatabaseManager::dispatchDidModifyDatabase):
* WebDatabaseManager.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28116
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 28 Nov 2007 20:12:17 +0000 (20:12 +0000)]
Get Drosera working again for real.
* COMEnumVariant.h:
(::Next):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28115
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Wed, 28 Nov 2007 19:57:31 +0000 (19:57 +0000)]
2007-11-28 Peter Kasting <zerodpx@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16169
GIF decoder needs to set hasAlpha() correctly on subsequent frames.
This also removes the workaround for this problem in
ImageSourceCairo.cpp.
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::frameHasAlphaAtIndex):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::initFrameBuffer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28114
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jhoneycutt@apple.com [Wed, 28 Nov 2007 19:37:33 +0000 (19:37 +0000)]
2007-11-28 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Dan.
<rdar://problem/
5507360> plugins/return-error-from-new-stream-callback-
in-full-frame-plugin.html is crashing
Alice fixed this in r28046
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28113
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Wed, 28 Nov 2007 17:46:51 +0000 (17:46 +0000)]
Reviewed by Maciej and Adam.
- Added Drosera to the WebKit project.
* WebKit.vcproj/WebKit.sln:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28112
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Wed, 28 Nov 2007 16:47:39 +0000 (16:47 +0000)]
Reviewed by Darin Adler and Adam Roben.
- <rdar://problem/
5057218> Reenable "recent searches" search field menu when menu is fully implemented
* platform/win/SearchPopupMenuWin.cpp:
(WebCore::SearchPopupMenu::enabled): Changed to return true.
(WebCore::autosaveKey): Added. Returns a preferences key for the
autosave name by prefixing it with "com.apple.WebKit.searchField:".
(WebCore::SearchPopupMenu::saveRecentSearches): Implemented.
(WebCore::SearchPopupMenu::loadRecentSearches): Implemented.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28111
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Wed, 28 Nov 2007 13:12:03 +0000 (13:12 +0000)]
Roll out r28106 and r28108. These introduced a frequent assertion failure on page load and broke all non-Mac builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28110
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Wed, 28 Nov 2007 12:47:37 +0000 (12:47 +0000)]
2007-11-28 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15689
[GTK] Background of loading images is always black
frameHasAlphaAtIndex() exists only to allow optimization for cases we
are certain the image can be blitted rather than composited.
Thus we need to be conservative, returning false only when we are
absolutely certain there is no need for composited copying, and true
otherwise.
CG doesn't even bother with this optimization at all and always
returns true.
Patch includes a workaround for
http://bugs.webkit.org/show_bug.cgi?id=16169
GIF ImageDecoder hasAlpha() return value incorrect
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::frameHasAlphaAtIndex):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28109
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Wed, 28 Nov 2007 11:03:10 +0000 (11:03 +0000)]
JavaScriptCore:
Add files missing from previous commit.
* kjs/MarkStack.h: Added.
LayoutTests:
add files missing from previous commit.
* fast/js/gc-breadth-2-expected.txt: Added.
* fast/js/gc-breadth-2.html: Added.
* fast/js/gc-breadth-expected.txt: Added.
* fast/js/gc-breadth.html: Added.
* fast/js/gc-depth-expected.txt: Added.
* fast/js/gc-depth.html: Added.
* fast/js/resources/gc-breadth-2.js: Added.
* fast/js/resources/gc-breadth.js: Added.
* fast/js/resources/gc-depth.js: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28108
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Wed, 28 Nov 2007 10:42:20 +0000 (10:42 +0000)]
2007-11-26 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Mark Rowe.
Set CONFIG option for the window system GTK+ is using
* WebKit.pri:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28107
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Wed, 28 Nov 2007 10:08:09 +0000 (10:08 +0000)]
JavaScriptCore:
Reviewed by Darin and Geoff.
- Fixed "Stack overflow crash in JavaScript garbage collector mark pass"
http://bugs.webkit.org/show_bug.cgi?id=12216
Implement mark stack. This version is not suitable for prime time because it makes a
huge allocation on every collect, and potentially makes marking of detached subtrees
slow. But it is an 0.4% SunSpider speedup even without much tweaking.
The basic approach is to replace mark() methods with
markChildren(MarkStack&) methods. Reachable references are pushed
onto a mark stack (which encapsulates ignoring already-marked
references).
Objects are no longer responsible for actually setting their own
mark bits, the collector does that. This means that for objects on
the number heap we don't have to call markChildren() at all since
we know there aren't any.
The mark phase of collect pushes roots onto the mark stack
and drains it as often as possible.
To make this approach viable requires a constant-size mark stack
and a slow fallback approach for when the stack size is exceeded,
plus optimizations to make the required stack small in common
cases. This should be doable.
* JavaScriptCore.exp: Export new symbols.
* JavaScriptCore.xcodeproj/project.pbxproj: Add new file.
* kjs/collector.cpp:
(KJS::Collector::heapAllocate):
(KJS::drainMarkStack): Helper for all of the below.
(KJS::Collector::markStackObjectsConservatively): Use mark stack.
(KJS::Collector::markCurrentThreadConservatively): ditto
(KJS::Collector::markOtherThreadConservatively): ditto
(KJS::Collector::markProtectedObjects): ditto
(KJS::Collector::markMainThreadOnlyObjects): ditto
(KJS::Collector::collect): ditto
* kjs/collector.h:
(KJS::Collector::cellMayHaveRefs): Helper for MarkStack.
* kjs/MarkStack.h: Added. The actual mark stack implementation.
(KJS::MarkStack::push):
(KJS::MarkStack::pushAtom):
(KJS::MarkStack::pop):
(KJS::MarkStack::isEmpty):
(KJS::MarkStack::reserveCapacity):
Changed mark() methods to markChildren() methods:
* kjs/ExecState.cpp:
(KJS::ExecState::markChildren):
* kjs/ExecState.h:
* kjs/JSWrapperObject.cpp:
(KJS::JSWrapperObject::markChildren):
* kjs/JSWrapperObject.h:
* kjs/array_instance.cpp:
(KJS::ArrayInstance::markChildren):
* kjs/array_instance.h:
* kjs/bool_object.cpp:
(BooleanInstance::markChildren):
* kjs/bool_object.h:
* kjs/error_object.cpp:
* kjs/error_object.h:
* kjs/function.cpp:
(KJS::FunctionImp::markChildren):
(KJS::Arguments::Arguments):
(KJS::Arguments::markChildren):
(KJS::ActivationImp::markChildren):
* kjs/function.h:
* kjs/internal.cpp:
(KJS::GetterSetterImp::markChildren):
* kjs/interpreter.cpp:
(KJS::Interpreter::markRoots):
* kjs/interpreter.h:
* kjs/list.cpp:
(KJS::List::markProtectedListsSlowCase):
* kjs/list.h:
(KJS::List::markProtectedLists):
* kjs/object.cpp:
(KJS::JSObject::markChildren):
* kjs/object.h:
(KJS::ScopeChain::markChildren):
* kjs/property_map.cpp:
(KJS::PropertyMap::markChildren):
* kjs/property_map.h:
* kjs/scope_chain.h:
* kjs/string_object.cpp:
(KJS::StringInstance::markChildren):
* kjs/string_object.h:
JavaScriptGlue:
Reviewed by Darin and Geoff.
Fixups for JavaScriptCore mark stack.
* JSObject.cpp:
(JSUserObject::Mark):
* JSObject.h:
* JSValueWrapper.cpp:
(JSValueWrapper::JSObjectMark):
* JSValueWrapper.h:
* UserObjectImp.cpp:
* UserObjectImp.h:
WebCore:
Reviewed by Darin and Geoff.
Implement mark stack. This version is not suitable for prime time because it makes a
huge allocation on every collect, and potentially makes marking of detached subtrees
slow. But it is a .2% - .4% speedup even without much tweaking.
I replaced mark() methods with markChildren() as usual. One
optimization that is lost is avoiding walking detached DOM
subtrees more than once to mark them; since marking is not
recursive there's no obvious way to bracket operation on the tree
any more.
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::markChildren):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::markChildren):
* bindings/js/JSNodeFilterCondition.cpp:
* bindings/js/JSNodeFilterCondition.h:
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::markChildren):
* bindings/js/JSNodeIteratorCustom.cpp:
(WebCore::JSNodeIterator::markChildren):
* bindings/js/JSTreeWalkerCustom.cpp:
(WebCore::JSTreeWalker::markChildren):
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequest::markChildren):
* bindings/js/JSXMLHttpRequest.h:
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::markDOMNodesForDocument):
* bindings/js/kjs_binding.h:
* bindings/js/kjs_events.cpp:
(WebCore::JSUnprotectedEventListener::markChildren):
* bindings/js/kjs_events.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::markChildren):
* bindings/js/kjs_window.h:
* bindings/scripts/CodeGeneratorJS.pm:
* dom/Node.cpp:
(WebCore::Node::Node):
* dom/Node.h:
* dom/NodeFilter.h:
* dom/NodeFilterCondition.h:
LayoutTests:
Not reviewed.
- Test cases for "Stack overflow crash in JavaScript garbage collector mark pass"
http://bugs.webkit.org/show_bug.cgi?id=12216
I have fixed this with the mark stack work.
* fast/js/gc-breadth-2-expected.txt: Added.
* fast/js/gc-breadth-2.html: Added.
* fast/js/gc-breadth-expected.txt: Added.
* fast/js/gc-breadth.html: Added.
* fast/js/gc-depth-expected.txt: Added.
* fast/js/gc-depth.html: Added.
* fast/js/resources/gc-breadth-2.js: Added.
* fast/js/resources/gc-breadth.js: Added.
* fast/js/resources/gc-depth.js: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28106
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Wed, 28 Nov 2007 09:24:30 +0000 (09:24 +0000)]
Not reviewer for this patch.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28105
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Wed, 28 Nov 2007 09:04:15 +0000 (09:04 +0000)]
Reviewed by Maciej Stachowiak.
- fix <rdar://problem/
5596160> fast/events/objc-event-api.html fails when run alone (or first)
* WebView/WebHTMLView.mm:
(-[WebHTMLView setDataSource:]): This method calls addMouseMovedObserver
because addMouseMovedObserver returns early if the dataSource
is not nil. But if the dataSource is already set (which happens when
a WebHTMLView is being reused) then addMouseMovedObserver must not
be called again.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28104
268f45cc-cd09-0410-ab3c-
d52691b4dbfc