Reviewed by Darin.
[WebKit-https.git] / WebCore / ChangeLog
1 2008-02-13  Alexey Proskuryakov  <ap@webkit.org>
2
3         Reviewed by Darin.
4
5         <rdar://problem/5740042> Database termination issues
6
7         Test: storage/close-during-stress-test.html
8
9         * dom/Document.cpp:
10         (WebCore::Document::databaseThread):
11         * dom/Document.h:
12         Don't re-create the database thread if it has been already terminated.
13
14         * storage/Database.h: (WebCore::Database::document): Changed m_database to a RefPtr to avoid
15         having a hanging reference.
16
17         * storage/DatabaseThread.cpp:
18         (WebCore::DatabaseThread::requestTermination):
19
20         * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::~SQLTransaction): Removed logging.
21         Transactions are deleted during GC, so it's usually not importatnt to know when it happens.
22
23 2008-02-12  Bernhard Rosenkraenzer  <bero@arklinux.org>
24
25         Reviewed by Darin.
26
27         - fix http://bugs.webkit.org/show_bug.cgi?id=17340
28           WebCore/platform/Timer.cpp fails to build with gcc 4.3
29
30         * platform/Timer.cpp: Add include of <limits.h> since this file uses UINT_MAX.
31
32 2008-02-12  Timothy Hatcher  <timothy@apple.com>
33
34         Reviewed by Brady Eidson.
35
36         <rdar://problem/5652560> Can't delete database if the website that
37         uses it has been opened in this session
38
39         Close the Database on the database thread before deleting the file.
40         Tested and works on Windows and Mac.
41
42         * platform/sql/SQLiteDatabase.cpp:
43         (WebCore::SQLiteDatabase::close): Assert we are on the opening thread.
44         * storage/Database.cpp:
45         (WebCore::Database::markAsDeletedAndClose): Unschedule any pending
46         Database tasks, and start and imediate DatabaseCloseTask.
47         (WebCore::Database::close): Close the SQLDatabase.
48         * storage/Database.h: Renamed markAsDeleted to markAsDeletedAndClose.
49         * storage/DatabaseTask.cpp:
50         (WebCore::DatabaseCloseTask::DatabaseCloseTask): New task.
51         (WebCore::DatabaseCloseTask::doPerformTask): Call close on the Database.
52         (WebCore::DatabaseCloseTask::debugTaskName): Return "DatabaseCloseTask".
53         * storage/DatabaseTask.h: Add DatabaseCloseTask.
54         * storage/DatabaseTracker.cpp:
55         (WebCore::DatabaseTracker::deleteDatabaseFile): Call the renamed
56           markAsDeletedAndClose.
57
58 2008-02-12  Oliver Hunt  <oliver@apple.com>
59
60         Reviewed by NOBODY (Build fix).
61
62         Endeavour to fix qt and gtk builds
63
64         * platform/graphics/cairo/GraphicsContextCairo.cpp:
65         * platform/graphics/qt/GraphicsContextQt.cpp:
66
67 2008-02-12  Oliver Hunt  <oliver@apple.com>
68
69         Reviewed by Eric S.
70
71         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
72         Remove ifdef's from canvas paint code
73
74         By making GraphicsContext aware of the crossplatform ImageBuffer
75         type we can migrate the ifdef-ified paint code in HTMLCanvasElement
76         into platform implementations of GraphicsContext.
77
78         * html/HTMLCanvasElement.cpp:
79         (WebCore::HTMLCanvasElement::paint):
80         * platform/graphics/GraphicsContext.h:
81         * platform/graphics/cairo/GraphicsContextCairo.cpp:
82         (WebCore::GraphicsContext::paintBuffer):
83         * platform/graphics/cg/GraphicsContextCG.cpp:
84         (WebCore::GraphicsContext::paintBuffer):
85         * platform/graphics/qt/GraphicsContextQt.cpp:
86         (WebCore::GraphicsContext::paintBuffer):
87
88 2008-02-12  Brady Eidson  <beidson@apple.com>
89
90         Reviewed by Darin Adler
91
92         Fix for <rdar://problem/5737692> - Database API needs to support SuccessCallback
93
94         Layout tests will come shortly with a mess of DRT changes
95
96         * platform/SecurityOrigin.cpp:
97         (WebCore::SecurityOrigin::SecurityOrigin): Standardize on "empty string" instead of null string
98           as different paths of constructing a SecurityOrigin were causing different hashes for the "same"
99           SecurityOrigin
100
101         * storage/Database.cpp:
102         (WebCore::Database::changeVersion): Pass in the successCallback
103         (WebCore::Database::transaction): Ditto
104
105         * storage/SQLTransaction.cpp:
106         (WebCore::SQLTransaction::SQLTransaction):
107         (WebCore::SQLTransaction::debugStepName):
108         (WebCore::SQLTransaction::performNextStep): Update ASSERTs for the new valid steps
109         (WebCore::SQLTransaction::performPendingCallback): Ditto
110         (WebCore::SQLTransaction::postflightAndCommit): Schedule the success callback if it exists - otherwise
111           skip straight to cleanupAfterSuccessCallback()
112         (WebCore::SQLTransaction::deliverSuccessCallback): Deliver success callback on the main thread, then
113           schedule cleanupAfterSuccessCallback()
114         (WebCore::SQLTransaction::cleanupAfterSuccessCallback): Cleanup and end the transaction
115         (WebCore::SQLTransaction::handleTransactionError):
116         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
117         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
118         * storage/SQLTransaction.h:
119
120 2008-02-12  Steve Falkenburg  <sfalken@apple.com>
121
122         Changes to support merged MIDL output.
123         
124         All COM interfaces are now generated to WebKit.h.
125         
126         Reviewed by Sam, Ada.
127
128         * bindings/scripts/CodeGeneratorCOM.pm:
129
130 2008-02-12  Dan Bernstein  <mitz@apple.com>
131
132         Reviewed by Adam Roben.
133
134         - fix http://bugs.webkit.org/show_bug.cgi?id=17041
135           <rdar://problem/5709660> Eastern Asian fonts do not display without specific box in Control Panel
136
137         Revised the system fallback font lookup logic to use MLang font linking
138         again. To avoid reintroducing bug 16548 and <rdar://problem/5280188>,
139         for CJK characters, try linking based on a single code page at a time,
140         starting with the user's default code page (if it is one of the CJK
141         code pages) followed by the other CJK code pages in a prescribed order
142         that matches what Firefox does.
143
144         * platform/graphics/win/FontCacheWin.cpp:
145         (WebCore::getCJKCodePageMasks): Added. Returns the search order for CJK
146         code pages, with the user's default code page first.
147         (WebCore::currentFontContainsCharacter): Factored out of
148         getFontDataForCharacters().
149         (WebCore::createMLangFont): Ditto.
150         (WebCore::FontCache::getFontDataForCharacters):
151
152 2008-02-12  Rodney Dawes  <dobey@wayofthemonkey.com>
153
154         Reviewed by Alp Toker.
155
156         Add -DMAEMO_CHANGES when the hildon CONFIG option is specified
157         Add hildon-1 to PKGCONFIG when hildon CONFIG option is specified
158
159         * WebCore.pro:
160
161 2008-02-12  Dan Bernstein  <mitz@apple.com>
162
163         Reviewed by Timothy Hatcher.
164
165         - <rdar://problem/5738175> Remove workaround for <rdar://problem/5539388> from post-Tiger builds
166
167         * platform/graphics/cg/GraphicsContextCG.cpp:
168         (WebCore::GraphicsContext::setShadow):
169
170 2008-02-12  Brady Eidson  <beidson@apple.com>
171
172         Release build fix
173
174         * storage/DatabaseTask.cpp:
175
176 2008-02-12  Alexey Proskuryakov <ap@webkit.org> and Brady Eidson <beidson@apple.com>
177
178         Reviewed by Brady.
179
180         http://bugs.webkit.org/show_bug.cgi?id=17177
181         <rdar://problem/5729619> Storage tasks are getting lost
182
183         <rdar://problem/5729445> REGRESSION: Cannot schedule more than one transaction at a time
184
185         <rdar://problem/5729446> Major thread safety issue in Database code
186
187         * platform/MessageQueue.h: Added a thread-safe queue abstraction.
188
189         * WebCore.vcproj/WebCore.vcproj:
190         * WebCore.xcodeproj/project.pbxproj:
191         Added MessageQueue.h.
192
193         * dom/Document.cpp:
194         (WebCore::Document::~Document): Fixed a race condition resulting in a hanging reference.
195
196         * storage/Database.idl: Fixed parameter declarations to actually match implementation
197         (which is custom, so it got out of sync).
198
199         * storage/DatabaseTask.h:
200         (WebCore::DatabaseTask::database):
201         (WebCore::DatabaseTransactionTask::transaction):
202         Changed tasks to hold more information internally. Added helpers for better debug logging.
203
204         * storage/DatabaseTask.cpp:
205         (WebCore::DatabaseTask::DatabaseTask):
206         (WebCore::DatabaseTask::performTask):
207         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
208         (WebCore::DatabaseOpenTask::doPerformTask):
209         (WebCore::DatabaseOpenTask::debugTaskName):
210         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
211         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
212         (WebCore::DatabaseTransactionTask::doPerformTask):
213         (WebCore::DatabaseTransactionTask::debugTaskName):
214         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
215         (WebCore::DatabaseTableNamesTask::doPerformTask):
216         (WebCore::DatabaseTableNamesTask::debugTaskName):
217         Implementation for the above.
218
219         (WebCore::DatabaseTask::lockForSynchronousScheduling):
220         (WebCore::DatabaseTask::waitForSynchronousCompletion):
221         Fixed a potential race condition: if the task completed before we entered a wait, we'd never
222         wake up. There was an assertion guarding against this, but no actual guarantee that I could see.
223
224         * storage/DatabaseThread.cpp:
225         (WebCore::DatabaseThread::DatabaseThread):
226         (WebCore::DatabaseThread::requestTermination):
227         (WebCore::DatabaseThread::databaseThread):
228         (WebCore::DatabaseThread::scheduleTask):
229         (WebCore::DatabaseThread::scheduleImmediateTask):
230         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
231         * storage/DatabaseThread.h:
232         Changed to use MessageQueue.
233
234         * storage/Database.cpp:
235         (WebCore::guidMutex):
236         (WebCore::guidToVersionMap):
237         (WebCore::guidToDatabaseMap):
238         (WebCore::Database::openDatabase):
239         (WebCore::Database::Database):
240         (WebCore::Database::~Database):
241         (WebCore::Database::openAndVerifyVersion):
242         (WebCore::guidForOriginAndName):
243         (WebCore::Database::changeVersion):
244         (WebCore::Database::transaction):
245         (WebCore::Database::scheduleTransaction):
246         (WebCore::Database::scheduleTransactionStep):
247         (WebCore::Database::scheduleTransactionCallback):
248         (WebCore::Database::version):
249         (WebCore::Database::deliverPendingCallback):
250         (WebCore::Database::tableNames):
251         * storage/Database.h:
252         Changed m_transactionQueue to a MessageQueue.
253         Got rid of callback tracking - these can take care of themselves.
254         Got rid of a DatabaseThread member, as the Document can be asked for it.
255         Moved private static members and helpers out of the header.
256         Lost CurrentThreadSetter debug helper on the way. We may need to re-add something like that later.
257
258         * storage/SQLTransaction.h:
259         * storage/SQLTransaction.cpp: Added a lot of debug logging.
260         (WebCore::SQLTransaction::scheduleToRunStatements): Removed "m_currentStatement = 0" assignment,
261         as it created a race condition. Everything seems to work better without it, although a real fix
262         would be to get rid of this variable - it's evil shared data that isn't even protected in any way.
263
264         * manual-tests/database-threading-stress-test-2.html: Added.
265         * manual-tests/database-threading-stress-test.html: Added.
266
267 2008-02-12  Adam Roben  <aroben@apple.com>
268
269         Fix Bug 17328: REGRESSION (r30147): Inspector is unstyled on Windows
270
271         <http://bugs.webkit.org/show_bug.cgi?id=17328>
272         <rdar://5737946>
273
274         Reviewed by Mitz.
275
276         Test: fast/loader/local-css-allowed-in-strict-mode.html
277
278         * platform/network/cf/ResourceResponseCFNet.cpp:
279         (WebCore::ResourceResponse::doUpdateResourceResponse): Add a case for
280         .css files.
281
282 2008-02-12  Anders Carlsson  <andersca@apple.com>
283
284         Build fix.
285         
286         * loader/ImageDocument.cpp:
287
288 2008-02-12  Anders Carlsson  <andersca@apple.com>
289
290         Reviewed by Mitz.
291
292         Make the code that sets the image title cross platform.
293
294         * WebCore.xcodeproj/project.pbxproj:
295         Remove ImageDocumentMac.
296         
297         * loader/ImageDocument.cpp:
298         (WebCore::ImageTokenizer::finish):
299
300         * loader/mac/ImageDocumentMac.h: Removed.
301         * loader/mac/ImageDocumentMac.mm: Removed.
302         
303         * page/mac/WebCoreFrameBridge.h:
304         * page/mac/WebCoreViewFactory.h:
305         Move imageTitleForFilename:size from the bridge to
306         the view factory.
307         
308         * platform/LocalizedStrings.h:
309         Add imageTitle.
310         
311         * platform/mac/LocalizedStringsMac.mm:
312         (WebCore::imageTitle):
313         Have imageTitle call the view factory.
314         
315         * platform/qt/Localizations.cpp:
316         (WebCore::imageTitle):
317         * platform/wx/LocalizedStringsWx.cpp:
318         (WebCore::imageTitle):
319         * platform/gtk/LocalizedStringsGtk.cpp:
320         (WebCore::imageTitle):
321         Add stubs.
322         
323 2008-02-12  Oliver Hunt  <oliver@apple.com>
324
325         Reviewed by NOBODY (Build fix).
326
327         more Qt fixes
328
329         * html/HTMLCanvasElement.cpp:
330         (WebCore::HTMLCanvasElement::paint):
331
332 2008-02-12  Oliver Hunt  <oliver@apple.com>
333
334         Reviewed by NOBODY (Build fix).
335
336         And another attempt to fixerate Qt
337
338         * html/HTMLCanvasElement.cpp:
339         (WebCore::HTMLCanvasElement::paint):
340
341 2008-02-12  Oliver Hunt  <oliver@apple.com>
342
343         Reviewed by NOBODY (Build fix).
344
345         Attempt to fix Qt build
346
347         * html/HTMLCanvasElement.h:
348
349 2008-02-11  Oliver Hunt  <oliver@apple.com>
350
351         Reviewed by Alp Toker.
352
353         Make canvas use an ImageBuffer for its backing store
354
355         In order to make the canvas implementation less platform dependent
356         (and thus reduce the current quagmire of ifdefs) we now use an 
357         ImageBuffer to provide the backing buffer, an immediate consequence
358         of this is to remove multiple ifdefs in the construction of the
359         buffer.  This patch allows us to further reduce the platform
360         dependencies in later patches.
361
362
363         * html/CanvasRenderingContext2D.cpp:
364         (WebCore::CanvasRenderingContext2D::drawImage):
365         * html/HTMLCanvasElement.cpp:
366         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
367         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
368         (WebCore::HTMLCanvasElement::reset):
369         (WebCore::HTMLCanvasElement::paint):
370         (WebCore::HTMLCanvasElement::createDrawingContext):
371         (WebCore::HTMLCanvasElement::drawingContext):
372         (WebCore::HTMLCanvasElement::createPlatformImage):
373         * html/HTMLCanvasElement.h:
374
375 2008-02-11  Dan Bernstein  <mitz@apple.com>
376
377         Reviewed by Dave Hyatt.
378
379         - fix http://bugs.webkit.org/show_bug.cgi?id=17320
380           <rdar://problem/5736953> :last-child does not set the "uses sibling rules" flag
381
382         Test: fast/css/last-child-style-sharing.html
383
384         * css/CSSGrammar.y: Changed to call setUsesSiblingRules(true) for all
385         CSS3 selectors that require it.
386
387 2008-02-11  Sam Weinig  <sam@webkit.org>
388
389         Reviewed by Darin Adler.
390
391         Make the cross-domain security model more closely match Firefox by always returning the
392         native built-in functions when accessing functions cross-domain.
393
394         Fixes for:
395         <rdar://problem/5735497> Match Firefox's cross-domain model more accurately by return the built-in version of functions even if they have been overridden
396         <rdar://problem/5735443> Crash when setting the Window objects prototype to a custom Object and then calling a method on it
397
398         Tests: fast/dom/Window/window-custom-prototype-crash.html
399                fast/dom/Window/window-function-frame-getter-precedence.html
400                http/tests/security/cross-frame-access-get-override.html
401                http/tests/security/cross-frame-access-location-get-override.html
402                http/tests/security/cross-frame-access-location-get.html
403                http/tests/security/cross-frame-access-location-put.html
404
405         * bindings/js/JSDOMWindowCustom.cpp:
406         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
407         - Return the native-built in version of an cross-domain allowed function (eg. window.focus) whether or
408           not it has been overridden, instead of undefined.
409         - When doing findEntry lookup, use the the tables directly (JSDOMWindowPrototype::info.propHashTable) 
410           instead of calling the virtual classInfo() method to avoid the unnecessary overhead.
411         - Allow access to the native toString function cross-domain.  It always returns "[object Window]".
412         - Use the new nonCachingStaticFunctionGetter when return allowed functions cross-frame so that
413           the function an overridden function is not inadvertantly returned from the PropertyMap.\
414
415         * bindings/js/JSHistoryCustom.cpp:
416         (WebCore::JSHistory::customGetOwnPropertySlot):
417         - Implement the same model as described above for the History object, always returning the
418           native built-in function cross-domain.
419         - Allow access to the native toString function cross-domain.
420         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
421           access.
422
423         * bindings/js/JSLocation.cpp:
424         (WebCore::JSLocation::getOwnPropertySlot):
425         - Match the generated classes by moving all the custom logic into a separate customGetOwnPropertySlot
426           function.  This will help moving to a generated class in the future.
427         (WebCore::JSLocation::customGetOwnPropertySlot):
428         - Implement the same model as described above for the Location object, always returning the
429           native built-in function cross-domain.
430         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
431           access.
432         (WebCore::JSLocation::put):
433         (WebCore::JSLocation::deleteProperty):
434         (WebCore::JSLocation::getPropertyNames):
435         * bindings/js/JSLocation.h:
436         - Clean up to match the rest of the file a little better.
437
438         * bindings/js/kjs_binding.cpp:
439         (WebCore::allowsAccessFromFrame):
440         (WebCore::printErrorMessageForFrame):
441         (WebCore::nonCachingStaticFunctionGetter):
442         (WebCore::objectToStringFunctionGetter):
443         * bindings/js/kjs_binding.h:
444         - Put common functionality related to cross-domain access here to serve as a central shared point.
445           This includes moving and augmenting the allowsAccessFromFrame method that was in both JSHistoryCustom.cpp
446           and JSLocation.cpp.
447
448         * bindings/js/kjs_dom.cpp:
449         (WebCore::checkNodeSecurity):
450         - Use the new allowsAccessFromFrame method.
451
452         * bindings/js/kjs_window.cpp:
453         (KJS::Window::childFrameGetter): Cleanup.
454         (KJS::Window::namedItemGetter): Cleanup.
455         (KJS::Window::getOwnPropertySlot):
456         - Do the prototype lookup early to match Firefox in having function lookup have a higher precedence
457           than the index or shortcut name getters.
458         - Cleanup function to make it more understandable and slightly more efficient.
459         (KJS::Window::allowsAccessFrom):
460         - Add a new variant of this method that takes a reference to a String, which, on failure, will
461           contain the error message to print out.  The caller can then pass this to printErrorMessage.
462           This allows for code to check allowsAccessFrom and act on the result without printing out the
463           error message. For convenience, a version with out the String parameter has been left which 
464           prints out the message automatically.
465         (KJS::Window::printErrorMessage):
466         * bindings/js/kjs_window.h:
467
468 2008-02-11  Darin Adler  <darin@apple.com>
469
470         Reviewed by Mitz.
471
472         - fix <rdar://problem/5726016> REGRESSION: Xcode News window renders
473           incorrectly due to visibility fix
474
475         Added an Xcode-specific quirk.
476
477         * WebCore.base.exp: Added export for new Settings function.
478         * css/CSSMutableStyleDeclaration.cpp:
479         (WebCore::CSSMutableStyleDeclaration::setProperty): Here's the crazy quirk.
480         If you try to change the visibilty on a node with the class name tab_content,
481         instead it will use display:none.
482         * page/Settings.cpp:
483         (WebCore::Settings::Settings): Initialize m_needsXcodeVisibilityQuirk. Also
484         initialize m_fontRenderingMode! This seems like it was a bug before, but we
485         probably were getting lucky and always getting 0 on Windows, which is the
486         only place the setting matters.
487         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Added.
488         * page/Settings.h:
489         (WebCore::Settings::needsXcodeVisibilityQuirk): Added.
490
491 2008-02-11  Timothy Hatcher  <timothy@apple.com>
492
493         Reviewed by Brady Eidson.
494
495         <rdar://problem/5733069> Many m_quotaMap uses do not hold the m_quotaMapGuard
496
497         * storage/DatabaseTracker.cpp:
498         (WebCore::DatabaseTracker::hasEntryForOrigin): Hold m_quotaMapGuard when using m_quotaMap.
499         (WebCore::DatabaseTracker::origins): Ditto.
500         (WebCore::DatabaseTracker::setQuota): Ditto.
501         (WebCore::DatabaseTracker::deleteAllDatabases): Call origins() and itterate over the
502         origins to call deleteOrigin().
503         (WebCore::DatabaseTracker::deleteOrigin): Hold m_quotaMapGuard when using m_quotaMap.
504
505 2008-02-11  David Hyatt  <hyatt@apple.com>
506
507         Fix for bug 17286, crash accessing a null RenderStyle.  Add a simple null check.
508
509         Reviewed by aroben
510
511         Added fast/css/empty-generated-content.html
512
513         * css/CSSStyleSelector.cpp:
514         (WebCore::CSSStyleSelector::checkOneSelector):
515
516 2008-02-11  Rob Buis  <buis@kde.org>
517
518         Reviewed by David Kilzer.
519
520         http://bugs.webkit.org/show_bug.cgi?id=17201
521         Bug 17201: Use RefPtr in CSSParser::parseFont() to get rid of goto silliness
522
523         Gets rid of goto usage in parseFont.
524
525         * css/CSSParser.cpp:
526         (WebCore::CSSParser::parseFont):
527
528 2008-02-11  David Hyatt  <hyatt@apple.com>
529
530         Fix for bug 17298, Acid3 text should be black and not red.  Make sure stylesheets with the wrong MIME type
531         are not accepted in strict mode.
532
533         Reviewed by darin
534
535         Added http/tests/misc/css-reject-in-strict-mode.html
536
537         * css/CSSImportRule.cpp:
538         (WebCore::CSSImportRule::setCSSStyleSheet):
539         * css/CSSImportRule.h:
540         * dom/Document.cpp:
541         (WebCore::Document::setCSSStyleSheet):
542         * dom/Document.h:
543         * dom/ProcessingInstruction.cpp:
544         (WebCore::ProcessingInstruction::setCSSStyleSheet):
545         * dom/ProcessingInstruction.h:
546         * html/HTMLLinkElement.cpp:
547         (WebCore::HTMLLinkElement::setCSSStyleSheet):
548         * html/HTMLLinkElement.h:
549         * html/HTMLMediaElement.cpp:
550         (WebCore::HTMLMediaElement::pickMedia):
551         * loader/CachedCSSStyleSheet.cpp:
552         (WebCore::CachedCSSStyleSheet::ref):
553         (WebCore::CachedCSSStyleSheet::checkNotify):
554         (WebCore::CachedCSSStyleSheet::canUseSheet):
555         * loader/CachedCSSStyleSheet.h:
556         (WebCore::CachedCSSStyleSheet::sheetText):
557         * loader/CachedResourceClient.h:
558         (WebCore::CachedResourceClient::setCSSStyleSheet):
559         * loader/mac/UserStyleSheetLoader.cpp:
560         (UserStyleSheetLoader::setCSSStyleSheet):
561         * loader/mac/UserStyleSheetLoader.h:
562
563 2008-02-11  Adam Roben  <aroben@apple.com>
564
565         Fix Bug 14316: Inspector's Console truncates long strings
566
567         <http://bugs.webkit.org/show_bug.cgi?id=14316>
568         <rdar://5357695>
569
570         We no longer call Object.describe to format all the output of commands
571         enetered into the Console. The ConsolePanel object now has a set of
572         formatting functions that append a formatted representation of the
573         passed-in object to the passed-in container node.
574
575         Reviewed by Sam.
576
577         * page/inspector/ConsolePanel.js:
578         (WebInspector.ConsolePanel._onEnterPressed): Updated for rename of
579         _outputToNode to _format.
580         (WebInspector.ConsolePanel._format): Renamed from _outputToNode. Use
581         Object.type to get the type of the object, then call the appropriate
582         formatting function.
583         (WebInspector.ConsolePanel._formatvalue): Added.
584         (WebInspector.ConsolePanel._formatstring): Added. This function
585         contains the actual fix for the bug, since it doesn't truncate the
586         string no matter how long it is.
587         (WebInspector.ConsolePanel._formatregexp): Added.
588         (WebInspector.ConsolePanel._formatarray): Added. This is a bit more
589         functional than Object.describe for arrays, since it recursively
590         formats each item in the array. One advantage of this is that Nodes in
591         arrays will be linkified instead of just turning into "[Object
592         HTMLBodyElement]" or similar.
593         (WebInspector.ConsolePanel._formatnode): Added.
594         (WebInspector.ConsolePanel._formatobject): Added.
595         (WebInspector.ConsolePanel.
596         * page/inspector/utilities.js:
597         (Object.type): Added. Code was pulled out of Object.describe and
598         reorganized slightly.
599         (Object.describe): Call Object.type. There should be no change in
600         behavior of this function.
601
602 2008-02-11  Alp Toker  <alp@atoker.com>
603
604         Wx build fix for breakage introduced in r30142. Spotted by Darin.
605
606         * platform/network/curl/ResourceHandleManager.cpp:
607         (WebCore::parseDataUrl):
608
609 2008-02-11  Brent Fulgham  <bfulgham@gmail.com>
610
611         Reviewed and tweaked by Darin
612
613         - http://bugs.webkit.org/show_bug.cgi?id=17299
614           a couple compilation fixes for Cairo/Win32 configuration
615
616         * platform/graphics/cairo/ImageSourceCairo.cpp:
617         (WebCore::createDecoder): Turn off XBMImageDecoder for PLATFORM(WIN) configuration.
618         * rendering/RenderThemeWin.cpp:
619         (WebCore::prepareForDrawing): Added IntRect parameter.
620         (WebCore::doneDrawing): Ditto.
621         (WebCore::RenderThemeWin::paintButton): Ditto.
622         (WebCore::RenderThemeWin::paintTextField): Ditto.
623         (WebCore::RenderThemeWin::paintMenuListButton): Ditto.
624         (WebCore::RenderThemeWin::systemFont): Added.
625
626 2008-02-11  Alp Toker  <alp@atoker.com>
627
628         Reviewed by Alexey.
629
630         Acid3 data URL parsing fix for the GTK+ port.
631
632         Avoid WebCore's base64Decode() when possible since it's not a
633         general-purpose Base64 decoder and fails on newlines.
634
635         * platform/network/curl/ResourceHandleManager.cpp:
636         (WebCore::parseDataUrl):
637
638 2008-02-11  Darin Adler  <darin@apple.com>
639
640         - another Qt build fix
641
642         * platform/qt/PopupMenuQt.cpp:
643         (WebCore::PopupMenu::PopupMenu): Added explicit RefCounted constructor.
644
645 2008-02-10  Darin Adler  <darin@apple.com>
646
647         - another Qt build fix (wish the Qt bot wouldn't stop on the first error)
648
649         * platform/qt/FileChooserQt.cpp:
650         (WebCore::FileChooser::FileChooser): Added explicit RefCounted constructor.
651
652 2008-02-10  Darin Adler  <darin@apple.com>
653
654         - another Qt build fix
655
656         * platform/graphics/qt/IconQt.cpp:
657         (WebCore::Icon::Icon): Added explicit RefCounted constructor.
658
659 2008-02-10  Alp Toker  <alp@atoker.com>
660
661         Another Win build fix for r30133 breakage.
662
663         * plugins/win/PluginPackageWin.cpp:
664         (WebCore::PluginPackage::PluginPackage):
665
666 2008-02-10  Alp Toker  <alp@atoker.com>
667
668         Build fix GTK+ and prospective build fix for Win breakage introduced
669         in r30133.
670
671         * platform/Cursor.h:
672         (WebCore::SharedCursor::SharedCursor):
673         * platform/graphics/gtk/IconGtk.cpp:
674         (WebCore::Icon::Icon):
675         * platform/gtk/FileChooserGtk.cpp:
676         (WebCore::FileChooser::FileChooser):
677         * platform/gtk/PopupMenuGtk.cpp:
678         (WebCore::PopupMenu::PopupMenu):
679
680 2008-02-10  Darin Adler  <darin@apple.com>
681
682         - try to fix Win, Qt, GTK, and WX builds
683
684         * platform/Cursor.h:
685         (WebCore::SharedCursor::SharedCursor): Added explicit RefCounted constructor.
686         * platform/graphics/win/IconWin.cpp:
687         (WebCore::Icon::Icon): Ditto.
688         * platform/win/FileChooserWin.cpp:
689         (WebCore::FileChooser::FileChooser): Ditto.
690         * platform/win/PopupMenuWin.cpp:
691         (WebCore::PopupMenu::PopupMenu): Ditto.
692         * platform/wx/TemporaryLinkStubs.cpp:
693         (FileChooser::FileChooser): Ditto.
694         (PopupMenu::PopupMenu): Ditto.
695         (Icon::Icon): Ditto.
696         * plugins/PluginStream.cpp:
697         (WebCore::PluginStream::PluginStream): Ditto.
698
699 2008-02-10  David Hyatt  <hyatt@apple.com>
700
701         Fix for bug 17082, cssRules should be live.
702
703         Reviewed by olliej
704
705         Added fast/css/live-cssrules.html
706
707         * css/CSSRuleList.cpp:
708         (WebCore::CSSRuleList::CSSRuleList):
709         (WebCore::CSSRuleList::length):
710         (WebCore::CSSRuleList::item):
711         (WebCore::CSSRuleList::deleteRule):
712         (WebCore::CSSRuleList::insertRule):
713         * css/CSSRuleList.h:
714
715 2008-02-10  David Hyatt  <hyatt@apple.com>
716
717         Fix for bug 17253.  <iframe> contents need to be reflected into the DOM as a single text node.
718
719         Reviewed by olliej
720
721         fast/frames/iframe-text-contents.html
722
723         * html/HTMLParser.cpp:
724         (WebCore::HTMLParser::getNode):
725         * html/HTMLTokenizer.cpp:
726         (WebCore::HTMLTokenizer::parseSpecial):
727         (WebCore::HTMLTokenizer::parseComment):
728         (WebCore::HTMLTokenizer::parseTag):
729         * html/HTMLTokenizer.h:
730         (WebCore::HTMLTokenizer::State::inIFrame):
731         (WebCore::HTMLTokenizer::State::setInIFrame):
732         (WebCore::HTMLTokenizer::State::inAnySpecial):
733         (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling):
734         (WebCore::HTMLTokenizer::State::):
735
736 2008-02-10  Andrew Wellington  <proton@wiretapped.net>
737
738         Reviewed and tweaked by Darin.
739         
740         DOMRange.surroundContents throws wrong exception (Acid3 bug)
741         http://bugs.webkit.org/show_bug.cgi?id=16749
742         
743         Throw BAD_BOUNDARYPOINTS_ERR if attempting to split a non-text node that
744         has offsets in characters.
745
746         * dom/Range.cpp:
747         (WebCore::Range::surroundContents):
748
749 2008-02-10  Darin Adler  <darin@apple.com>
750
751         Reviewed by Eric.
752
753         - http://bugs.webkit.org/show_bug.cgi?id=17256
754           Make clients of RefCounted explicitly set the count to 0.
755
756         * bindings/js/JSSVGPODTypeWrapper.h:
757         (WebCore::JSSVGPODTypeWrapper::JSSVGPODTypeWrapper):
758         * css/CSSFontFace.h:
759         (WebCore::CSSFontFace::CSSFontFace):
760         * css/CSSRuleList.cpp:
761         (WebCore::CSSRuleList::CSSRuleList):
762         * css/CSSSegmentedFontFace.cpp:
763         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
764         * css/Counter.h:
765         (WebCore::Counter::Counter):
766         * css/Pair.h:
767         (WebCore::Pair::Pair):
768         * css/Rect.h:
769         (WebCore::Rect::Rect):
770         * css/StyleBase.h:
771         (WebCore::StyleBase::StyleBase):
772         * css/StyleSheetList.cpp:
773         (WebCore::StyleSheetList::StyleSheetList):
774         * dom/Attr.cpp:
775         (WebCore::Attr::Attr):
776         * dom/Attr.h:
777         * dom/Attribute.h:
778         (WebCore::Attribute::Attribute):
779         * dom/Clipboard.cpp:
780         (WebCore::Clipboard::Clipboard):
781         * dom/DOMImplementation.h:
782         (WebCore::DOMImplementation::DOMImplementation):
783         * dom/Event.cpp:
784         (WebCore::Event::Event):
785         * dom/EventListener.h:
786         (WebCore::EventListener::EventListener):
787         * dom/ExceptionBase.cpp:
788         (WebCore::ExceptionBase::ExceptionBase):
789         * dom/NamedAttrMap.h:
790         (WebCore::NamedAttrMap::insertAttribute):
791         * dom/NamedNodeMap.h:
792         (WebCore::NamedNodeMap::NamedNodeMap):
793         * dom/NodeFilter.h:
794         (WebCore::NodeFilter::NodeFilter):
795         * dom/NodeFilterCondition.h:
796         (WebCore::NodeFilterCondition::NodeFilterCondition):
797         * dom/NodeList.h:
798         (WebCore::NodeList::NodeList):
799         * dom/QualifiedName.h:
800         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
801         (WebCore::QualifiedName::ref):
802         * dom/Range.cpp:
803         (WebCore::Range::Range):
804         * dom/RegisteredEventListener.cpp:
805         (WebCore::RegisteredEventListener::RegisteredEventListener):
806         * dom/StyledElement.h:
807         * dom/Traversal.cpp:
808         (WebCore::Traversal::Traversal):
809         * editing/EditCommand.cpp:
810         (WebCore::EditCommand::EditCommand):
811         * history/BackForwardList.cpp:
812         (WebCore::BackForwardList::BackForwardList):
813         * history/CachedPage.cpp:
814         (WebCore::CachedPage::CachedPage):
815         * history/HistoryItem.cpp:
816         (WebCore::HistoryItem::HistoryItem):
817         * html/CanvasGradient.cpp:
818         (WebCore::CanvasGradient::CanvasGradient):
819         * html/CanvasPattern.cpp:
820         (WebCore::CanvasPattern::CanvasPattern):
821         * html/CanvasRenderingContext2D.cpp:
822         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
823         * html/CanvasStyle.cpp:
824         (WebCore::CanvasStyle::CanvasStyle):
825         * html/HTMLCollection.cpp:
826         (WebCore::HTMLCollection::HTMLCollection):
827         * html/MediaError.h:
828         (WebCore::MediaError::MediaError):
829         * html/TimeRanges.cpp:
830         (TimeRanges::TimeRanges):
831         * html/TimeRanges.h:
832         (WebCore::TimeRanges::TimeRanges):
833         * html/VoidCallback.h:
834         (WebCore::VoidCallback::VoidCallback):
835         * loader/DocumentLoader.cpp:
836         (WebCore::DocumentLoader::DocumentLoader):
837         * loader/FormState.cpp:
838         (WebCore::FormState::FormState):
839         * loader/ResourceLoader.cpp:
840         (WebCore::ResourceLoader::ResourceLoader):
841         * loader/TextResourceDecoder.cpp:
842         (WebCore::TextResourceDecoder::TextResourceDecoder):
843         * loader/icon/IconRecord.cpp:
844         (WebCore::IconRecord::IconRecord):
845         * page/BarInfo.cpp:
846         (WebCore::BarInfo::BarInfo):
847         * page/Console.cpp:
848         (WebCore::Console::Console):
849         * page/DOMSelection.cpp:
850         (WebCore::DOMSelection::DOMSelection):
851         * page/DOMWindow.cpp:
852         (WebCore::DOMWindow::DOMWindow):
853         * page/Frame.cpp:
854         (WebCore::Frame::Frame):
855         * page/History.cpp:
856         (WebCore::History::History):
857         * page/InspectorController.cpp:
858         (WebCore::InspectorResource::InspectorResource):
859         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
860         * page/Plugin.h:
861         (WebCore::Plugin::Plugin):
862         * page/Screen.cpp:
863         (WebCore::Screen::Screen):
864         * platform/ArrayImpl.cpp:
865         (WebCore::ArrayImpl::ArrayPrivate::ArrayPrivate):
866         * platform/DeprecatedValueListImpl.cpp:
867         (WebCore::DeprecatedValueListImpl::Private::Private):
868         * platform/ScrollBar.cpp:
869         (WebCore::Scrollbar::Scrollbar):
870         * platform/SharedBuffer.cpp:
871         (WebCore::SharedBuffer::SharedBuffer):
872         * platform/graphics/FontFallbackList.cpp:
873         (WebCore::FontFallbackList::FontFallbackList):
874         * platform/graphics/FontFamily.cpp:
875         (WebCore::FontFamily::FontFamily):
876         * platform/graphics/FontFamily.h:
877         (WebCore::FontFamily::FontFamily):
878         * platform/graphics/FontSelector.h:
879         (WebCore::FontSelector::FontSelector):
880         (WebCore::FontSelector::~FontSelector):
881         * platform/graphics/GlyphPageTreeNode.h:
882         (WebCore::GlyphPage::GlyphPage):
883         * platform/graphics/mac/IconMac.mm:
884         (WebCore::Icon::Icon):
885         * platform/mac/FileChooserMac.mm:
886         (WebCore::FileChooser::FileChooser):
887         * platform/mac/PopupMenuMac.mm:
888         (WebCore::PopupMenu::PopupMenu):
889         * platform/mac/SharedBufferMac.mm:
890         (WebCore::SharedBuffer::SharedBuffer):
891         * platform/network/FormData.cpp:
892         (WebCore::FormData::FormData):
893         * platform/network/FormData.h:
894         (WebCore::FormData::FormData):
895         * platform/network/ResourceHandle.cpp:
896         (WebCore::ResourceHandle::ResourceHandle):
897         * platform/text/CString.h:
898         (WebCore::CStringBuffer::CStringBuffer):
899         * platform/text/RegularExpression.cpp:
900         (WebCore::RegularExpression::Private::Private):
901         * rendering/RenderStyle.cpp:
902         (WebCore::StyleSurroundData::StyleSurroundData):
903         (WebCore::StyleBoxData::StyleBoxData):
904         (WebCore::StyleVisualData::StyleVisualData):
905         (WebCore::StyleBackgroundData::StyleBackgroundData):
906         (WebCore::StyleMarqueeData::StyleMarqueeData):
907         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
908         (WebCore::StyleMultiColData::StyleMultiColData):
909         (WebCore::StyleTransformData::StyleTransformData):
910         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
911         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
912         (WebCore::StyleInheritedData::StyleInheritedData):
913         * rendering/RenderStyle.h:
914         (WebCore::TransformOperation::TransformOperation):
915         (WebCore::CursorList::CursorList):
916         * rendering/SVGCharacterLayoutInfo.h:
917         (WebCore::SVGCharOnPath::SVGCharOnPath):
918         * rendering/SVGRenderStyle.cpp:
919         (WebCore::SVGRenderStyle::SVGRenderStyle):
920         * rendering/SVGRenderStyle.h:
921         (WebCore::SVGRenderStyle::SVGRenderStyle):
922         * rendering/SVGRenderStyleDefs.cpp:
923         (StyleFillData::StyleFillData):
924         (StyleStrokeData::StyleStrokeData):
925         (StyleStopData::StyleStopData):
926         (StyleTextData::StyleTextData):
927         (StyleClipData::StyleClipData):
928         (StyleMaskData::StyleMaskData):
929         (StyleMarkerData::StyleMarkerData):
930         (StyleMiscData::StyleMiscData):
931         * storage/SQLResultSetRowList.h:
932         (WebCore::SQLResultSetRowList::SQLResultSetRowList):
933         * svg/SVGAngle.cpp:
934         (WebCore::SVGAngle::SVGAngle):
935         * svg/SVGAnimatedTemplate.h:
936         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
937         * svg/SVGElementInstanceList.cpp:
938         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
939         * svg/SVGList.h:
940         (WebCore::SVGList::SVGList):
941         (WebCore::SVGPODListItem::SVGPODListItem):
942         * svg/SVGPathSeg.h:
943         (WebCore::SVGPathSeg::SVGPathSeg):
944         * svg/SVGPreserveAspectRatio.cpp:
945         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
946         * svg/SVGRenderingIntent.h:
947         (WebCore::SVGRenderingIntent::SVGRenderingIntent):
948         * svg/SVGUnitTypes.h:
949         (WebCore::SVGUnitTypes::SVGUnitTypes):
950         * svg/graphics/SVGPaintServerGradient.h:
951         (WebCore::SVGPaintServerGradient::SharedStopCache::SharedStopCache):
952         * svg/graphics/SVGResource.cpp:
953         (WebCore::SVGResource::SVGResource):
954         * xml/DOMParser.h:
955         (WebCore::DOMParser::DOMParser):
956         * xml/XMLHttpRequest.cpp:
957         (WebCore::XMLHttpRequest::XMLHttpRequest):
958         * xml/XMLSerializer.h:
959         (WebCore::XMLSerializer::XMLSerializer):
960         * xml/XPathEvaluator.h:
961         (WebCore::XPathEvaluator::XPathEvaluator):
962         * xml/XPathExpression.h:
963         (WebCore::XPathExpression::XPathExpression):
964         * xml/XPathNSResolver.h:
965         (WebCore::XPathNSResolver::XPathNSResolver):
966         * xml/XPathResult.cpp:
967         (WebCore::XPathResult::XPathResult):
968         * xml/XPathValue.h:
969         (WebCore::XPath::ValueData::ValueData):
970         * xml/XSLTProcessor.h:
971         (WebCore::XSLTProcessor::XSLTProcessor):
972
973 2008-02-09  Kevin Ollivier  <kevino@theolliviers.com>
974
975         Reviewed by Eric Seidel.
976
977         Calling select() when all the file descriptors are NULL
978         stops the file download on Windows. As a result, do not
979         call select() when there are no valid descriptors.
980
981         http://bugs.webkit.org/show_bug.cgi?id=17178
982
983         * platform/network/curl/ResourceHandleManager.cpp:
984         (WebCore::ResourceHandleManager::downloadTimerCallback):
985
986 2008-02-09  Dan Bernstein  <mitz@apple.com>
987
988         Reviewed by Sam Weinig.
989
990         - fix http://bugs.webkit.org/show_bug.cgi?id=17259
991           Element::recalcStyle() needlessly null-checks the result of styleForElement()
992
993         * dom/Element.cpp:
994         (WebCore::Element::recalcStyle): Removed unneeded null checks.
995         styleForElement() can never return null.
996
997 2008-02-09  David Hyatt  <hyatt@apple.com>
998
999         Fix for bug 17254, nth-* selectors do not work with negative coefficients.
1000
1001         Reviewed by Mitz.
1002
1003         fast/css/negative-nth-child.html
1004
1005         * css/CSSStyleSelector.cpp:
1006         (WebCore::parseNth):
1007
1008 2008-02-09  David Hyatt  <hyatt@apple.com>
1009
1010         Fix for bug 17203, high CPU usage loading HTML5 spec.  This patch significantly improves the performance
1011         of CSS3 selectors.
1012
1013         (1) Split the notion of being affected by positional rules into "forward" and "backward."  The "forward"
1014         selectors do not need to re-resolve during parsing, since children are appended on the end.  Only the
1015         "backward" selectors like last-child or nth-last-child have to re-resolve when a close tag is encountered.
1016
1017         (2) Extend childrenChanged to specify whether the children were changed by the parser or not.  This allows
1018         Element::childrenChanged to know when the parser is adding children so that it can ignore those adds when
1019         possible.
1020
1021         (3) Make sure all Elements now know whether or not their children are currently parsing.  Backwards selectors
1022         like last-child will always return false when children are still being parsed.  When an Element finishes
1023         parsing its children, finishParsingChildren() gets called and will make sure the children re-resolve properly.
1024
1025         (4) Added a beginParsingChildren method and renamed finishParsing to finishedParsingChildren.
1026
1027         (5) Eliminated one-off hacks that did the same thing in HTMLObjectElement and HTMLAppletElement.
1028
1029         (6) Patched many incorrect implementations of finishedParsingChildren that did not properly call into their
1030         base class (mostly new SVG elements that got added for SVG fonts around the time this became a requirement).
1031
1032         Reviewed by Eric
1033
1034         * css/CSSStyleSelector.cpp:
1035         (WebCore::CSSStyleSelector::checkSelector):
1036         (WebCore::CSSStyleSelector::checkOneSelector):
1037         * dom/Attr.cpp:
1038         (WebCore::Attr::childrenChanged):
1039         * dom/Attr.h:
1040         * dom/ContainerNode.cpp:
1041         (WebCore::ContainerNode::addChild):
1042         * dom/Document.cpp:
1043         (WebCore::Document::childrenChanged):
1044         * dom/Document.h:
1045         * dom/Element.cpp:
1046         (WebCore::Element::Element):
1047         (WebCore::Element::recalcStyle):
1048         (WebCore::checkFirstChildRules):
1049         (WebCore::checkLastChildRules):
1050         (WebCore::checkEmptyRules):
1051         (WebCore::checkStyleRules):
1052         (WebCore::Element::childrenChanged):
1053         (WebCore::Element::finishParsingChildren):
1054         * dom/Element.h:
1055         (WebCore::Element::finishedParsingChildren):
1056         (WebCore::Element::beginParsingChildren):
1057         * dom/Node.cpp:
1058         * dom/Node.h:
1059         (WebCore::Node::finishParsingChildren):
1060         (WebCore::Node::beginParsingChildren):
1061         (WebCore::Node::childrenChanged):
1062         * dom/StyledElement.cpp:
1063         (WebCore::StyledElement::StyledElement):
1064         * dom/StyledElement.h:
1065         * dom/XMLTokenizer.cpp:
1066         (WebCore::XMLTokenizer::startElementNs):
1067         (WebCore::XMLTokenizer::endElementNs):
1068         (WebCore::):
1069         * html/HTMLAppletElement.cpp:
1070         (WebCore::HTMLAppletElement::HTMLAppletElement):
1071         (WebCore::HTMLAppletElement::finishParsingChildren):
1072         * html/HTMLAppletElement.h:
1073         * html/HTMLElementFactory.cpp:
1074         (WebCore::objectConstructor):
1075         * html/HTMLGenericFormElement.cpp:
1076         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
1077         * html/HTMLGenericFormElement.h:
1078         * html/HTMLObjectElement.cpp:
1079         (WebCore::HTMLObjectElement::HTMLObjectElement):
1080         (WebCore::HTMLObjectElement::finishParsingChildren):
1081         (WebCore::HTMLObjectElement::childrenChanged):
1082         * html/HTMLObjectElement.h:
1083         * html/HTMLOptGroupElement.cpp:
1084         (WebCore::HTMLOptGroupElement::childrenChanged):
1085         * html/HTMLOptGroupElement.h:
1086         * html/HTMLOptionElement.cpp:
1087         (WebCore::HTMLOptionElement::childrenChanged):
1088         * html/HTMLOptionElement.h:
1089         * html/HTMLParser.cpp:
1090         (WebCore::HTMLParser::insertNode):
1091         (WebCore::HTMLParser::pushBlock):
1092         (WebCore::HTMLParser::popOneBlockCommon):
1093         * html/HTMLScriptElement.cpp:
1094         (WebCore::HTMLScriptElement::childrenChanged):
1095         (WebCore::HTMLScriptElement::finishParsingChildren):
1096         * html/HTMLScriptElement.h:
1097         * html/HTMLSelectElement.cpp:
1098         (WebCore::HTMLSelectElement::childrenChanged):
1099         * html/HTMLSelectElement.h:
1100         * html/HTMLStyleElement.cpp:
1101         (WebCore::HTMLStyleElement::finishParsingChildren):
1102         (WebCore::HTMLStyleElement::childrenChanged):
1103         * html/HTMLStyleElement.h:
1104         * html/HTMLTextAreaElement.cpp:
1105         (WebCore::HTMLTextAreaElement::childrenChanged):
1106         * html/HTMLTextAreaElement.h:
1107         * html/HTMLTitleElement.cpp:
1108         (WebCore::HTMLTitleElement::childrenChanged):
1109         * html/HTMLTitleElement.h:
1110          * rendering/RenderApplet.cpp:
1111         (WebCore::RenderApplet::createWidgetIfNecessary):
1112         * rendering/RenderPartObject.cpp:
1113         (WebCore::RenderPartObject::updateWidget):
1114         * rendering/RenderStyle.cpp:
1115         (WebCore::RenderStyle::RenderStyle):
1116         * rendering/RenderStyle.h:
1117         (WebCore::RenderStyle::childrenAffectedByForwardPositionalRules):
1118         (WebCore::RenderStyle::setChildrenAffectedByForwardPositionalRules):
1119         (WebCore::RenderStyle::childrenAffectedByBackwardPositionalRules):
1120         (WebCore::RenderStyle::setChildrenAffectedByBackwardPositionalRules):
1121         * svg/SVGAnimationElement.cpp:
1122         (WebCore::SVGAnimationElement::finishParsingChildren):
1123         * svg/SVGAnimationElement.h:
1124         * svg/SVGClipPathElement.cpp:
1125         (WebCore::SVGClipPathElement::childrenChanged):
1126         * svg/SVGClipPathElement.h:
1127         * svg/SVGDefinitionSrcElement.cpp:
1128         (WebCore::SVGDefinitionSrcElement::childrenChanged):
1129         * svg/SVGDefinitionSrcElement.h:
1130         * svg/SVGElement.cpp:
1131         (WebCore::SVGElement::finishParsingChildren):
1132         * svg/SVGElement.h:
1133         * svg/SVGFontFaceElement.cpp:
1134         (WebCore::SVGFontFaceElement::childrenChanged):
1135         * svg/SVGFontFaceElement.h:
1136         * svg/SVGFontFaceFormatElement.cpp:
1137         (WebCore::SVGFontFaceFormatElement::childrenChanged):
1138         * svg/SVGFontFaceFormatElement.h:
1139         * svg/SVGFontFaceSrcElement.cpp:
1140         (WebCore::SVGFontFaceSrcElement::childrenChanged):
1141         * svg/SVGFontFaceSrcElement.h:
1142         * svg/SVGFontFaceUriElement.cpp:
1143         (WebCore::SVGFontFaceUriElement::childrenChanged):
1144         * svg/SVGFontFaceUriElement.h:
1145         * svg/SVGGElement.cpp:
1146         (WebCore::SVGGElement::childrenChanged):
1147         * svg/SVGGElement.h:
1148         * svg/SVGGradientElement.cpp:
1149         (WebCore::SVGGradientElement::childrenChanged):
1150         * svg/SVGGradientElement.h:
1151         * svg/SVGMarkerElement.cpp:
1152         (WebCore::SVGMarkerElement::childrenChanged):
1153         * svg/SVGMarkerElement.h:
1154         * svg/SVGMaskElement.cpp:
1155         (WebCore::SVGMaskElement::childrenChanged):
1156         * svg/SVGMaskElement.h:
1157         * svg/SVGPatternElement.cpp:
1158         (WebCore::SVGPatternElement::childrenChanged):
1159         * svg/SVGPatternElement.h:
1160         * svg/SVGStyleElement.cpp:
1161         (WebCore::SVGStyleElement::finishParsingChildren):
1162         (WebCore::SVGStyleElement::childrenChanged):
1163         * svg/SVGStyleElement.h:
1164         * svg/SVGStyledElement.cpp:
1165         (WebCore::SVGStyledElement::childrenChanged):
1166         * svg/SVGStyledElement.h:
1167         * svg/SVGTitleElement.cpp:
1168         (WebCore::SVGTitleElement::childrenChanged):
1169         * svg/SVGTitleElement.h:
1170         * svg/SVGUseElement.cpp:
1171         (WebCore::SVGUseElement::childrenChanged):
1172         * svg/SVGUseElement.h:
1173         
1174 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1175
1176         Unreviewed build fix
1177
1178         Somehow the removal of adjustSliderThumbSize(RenderObject*) sneaked
1179         into the patch.
1180
1181         * platform/qt/RenderThemeQt.h:
1182
1183 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1184
1185         Reviewed by Adele.
1186
1187         paintResizeControl is dead, remove the code. This painting
1188         is done by the RenderLayer.
1189
1190         * platform/qt/RenderThemeQt.cpp:
1191         * platform/qt/RenderThemeQt.h:
1192         * rendering/RenderThemeMac.h:
1193         * rendering/RenderThemeMac.mm:
1194
1195 2008-02-07  Kevin Ollivier <kevino@theolliviers.com>
1196
1197         Reviewed by Eric Seidel, Adam Roben.
1198
1199         MSVC7 fixes.
1200         http://bugs.webkit.org/show_bug.cgi?id=17211
1201
1202         * platform/Threading.h:
1203         - On MSVC7, when the Interlocked* functions are used, the ref count gets out of sync.
1204           (MSVC8 seems not to have this problem.) Use the old implementation which works correctly.
1205         * platform/win/SharedTimerWin.cpp:
1206         - USER_TIMER_MINIMUM/MAXIMUM aren't defined in winuser.h for the MSVC 2003 Platform SDK
1207           so define them if they are not already defined.
1208
1209 2008-02-08  Brent Fulgham  <bfulgham@gmail.com>
1210
1211         Reviewed by Adam Roben.
1212
1213         Bug 17226: Fix Windows (Cairo) build of image-decoders
1214         http://bugs.webkit.org/show_bug.cgi?id=17226
1215
1216         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1217         * platform/image-decoders/png/PNGImageDecoder.cpp:
1218
1219 2008-02-08  Timothy Hatcher  <timothy@apple.com>
1220
1221         Reviewed by Brady Eidson.
1222
1223         <rdar://problem/5640896> Removing database then trying
1224         to recreate it causes trouble
1225
1226         Added open Database support to DatabaseTracker. So any Database that 
1227         is deleted will be marked as deleted and will fail to open any transaction
1228         or execute any new SQL queries.
1229
1230         * storage/Database.cpp:
1231         (WebCore::Database::Database): Call DatabaseTracker::addOpenDatabase.
1232         (WebCore::Database::~Database): Call DatabaseTracker::removeOpenDatabase.
1233         (WebCore::Database::markAsDeleted): Set the m_deleted flag.
1234         (WebCore::Database::version): Return a null String if m_deleted is true.
1235         * storage/Database.h:
1236         (WebCore::Database::deleted): Return m_deleted.
1237         * storage/DatabaseTracker.cpp:
1238         (WebCore::DatabaseTracker::addOpenDatabase): Add the Database to a map of origins and names.
1239         (WebCore::DatabaseTracker::removeOpenDatabase): Remove the Database from the map.
1240         (WebCore::DatabaseTracker::deleteDatabaseFile): Call markAsDeleted on all the open Databases
1241           matching the origin/name.
1242         * storage/DatabaseTracker.h:
1243         * storage/SQLStatement.cpp:
1244         (WebCore::SQLStatement::setDatabaseDeletedError): Set the error about the user deleting the database.
1245         * storage/SQLStatement.h:
1246         * storage/SQLTransaction.cpp:
1247         (WebCore::SQLTransaction::executeSQL): If the Database is deleted, call setDatabaseDeletedError.
1248         (WebCore::SQLTransaction::openTransactionAndPreflight): Set the error about the user deleting the database
1249           if the Database was marked as deleted.
1250
1251 2008-02-08  Darin Adler  <darin@apple.com>
1252
1253         Reviewed by Eric.
1254
1255         - fix http://bugs.webkit.org/show_bug.cgi?id=15003
1256           Function.prototype.constructor should not be DontDelete/ReadOnly (Acid3 bug)
1257
1258         Test: fast/js/constructor-attributes.html
1259
1260         * bindings/scripts/CodeGeneratorJS.pm: Remove unwanted attributes from "constructor".
1261
1262 2008-02-08  Anders Carlsson  <andersca@apple.com>
1263
1264         Reviewed by Mitz.
1265
1266         <rdar://problem/5650446>
1267         http://bugs.webkit.org/show_bug.cgi?id=16102
1268         Crash in FrameLoader::stopLoadingSubframes() on IMDB page
1269
1270         Store the child frame in a RefPtr to prevent it from being deleted when the
1271         frame tree changes while calling stopAllLoaders().
1272         
1273         * loader/FrameLoader.cpp:
1274         (WebCore::FrameLoader::stopLoadingSubframes):
1275
1276 2008-02-08  Kevin Ollivier  <kevino@theolliviers.com>
1277
1278         wx port build fix. Add time.h to define time_t.
1279
1280         * platform/FileSystem.h:
1281
1282 2008-02-08  Alp Toker  <alp@atoker.com>
1283
1284         Reviewed by Adam Roben.
1285
1286         Avoid null-dereference crasher noticed in the GTK+ port and also
1287         affecting the Win debug build.
1288
1289         Covered by existing tests.
1290
1291         * dom/Document.cpp:
1292         (WebCore::Document::userStyleSheet):
1293
1294 2008-02-08  Anders Carlsson  <andersca@apple.com>
1295
1296         Reviewed by Adam.
1297
1298         <rdar://problem/5724188> 
1299         REGRESSION: PLT 0.7% slower due to 29926 (change Text::createWithLengthLimit to take a UChar pointer)
1300         
1301         Revert r29926 which caused the regression.
1302         
1303         * dom/Text.cpp:
1304         (WebCore::Text::createWithLengthLimit):
1305         * dom/Text.h:
1306         * html/HTMLParser.cpp:
1307         (WebCore::HTMLParser::parseToken):
1308         * loader/TextDocument.cpp:
1309         (WebCore::TextTokenizer::write):
1310
1311 2008-02-08  Sam Weinig  <sam@webkit.org>
1312
1313         Reviewed by Hyatt.
1314
1315         Fix for <rdar://problem/5732491>
1316         http://bugs.webkit.org/show_bug.cgi?id=17213
1317         The querySelectorAll method on an element node does not search only the element's descendants
1318
1319         Test: fast/dom/SelectorAPI/elementRoot.html
1320
1321         * dom/Node.cpp:
1322         (WebCore::Node::querySelector): Make sure to stay within the root node when traversing the tree.
1323         * dom/SelectorNodeList.cpp:
1324         (WebCore::SelectorNodeList::SelectorNodeList): ditto.
1325
1326
1327
1328 2008-02-08  David Hyatt  <hyatt@apple.com>
1329
1330         Fix for bug 16798, button should default to type=submit.
1331
1332         Reviewed by darin
1333
1334         * html/HTMLButtonElement.cpp:
1335         (WebCore::HTMLButtonElement::type):
1336         (WebCore::HTMLButtonElement::parseMappedAttribute):
1337
1338 2008-02-08  Rodney Dawes  <dobey@wayofthemonkey.com>
1339
1340         Reviewed by Jon Honeycutt.
1341
1342         Redefine some platform-specific types as cross-platform types
1343         Add pathGetFileName method to get the filename from a path string
1344         Add unloadModule method to unload a loadable module from the process
1345         Implement new methods for GTK+ and Windows
1346         Implement missing homeDirectoryPath method for GTK+
1347         Add stub methods for new and missing methods for Wx and Qt
1348
1349         * platform/FileSystem.h:
1350         * platform/gtk/FileSystemGtk.cpp:
1351         * platform/qt/FileSystemQt.cpp:
1352         * platform/win/FileSystemWin.cpp:
1353         * platform/wx/FileSystemWx.cpp:
1354
1355 2008-02-08  Adam Roben  <aroben@apple.com>
1356
1357         Windows build fix after r30088
1358
1359         * bindings/scripts/CodeGeneratorCOM.pm: Touch this to force the COM
1360         bindings to rebuild.
1361
1362 2008-02-08  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
1363
1364         Reviewed by Alp Toker.
1365
1366         http://bugs.webkit.org/show_bug.cgi?id=17009
1367         [Gtk] Webkit strips accents from some dead-key combinations
1368
1369         KeyEvents have to go through the gtk input method.
1370
1371         Also implement the isKeypad check and make disambiguateKeyDownEvent
1372         behave more like other ports.
1373
1374         * platform/PlatformKeyboardEvent.h:
1375         * platform/gtk/KeyEventGtk.cpp:
1376         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1377         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
1378         (WebCore::PlatformKeyboardEvent::gdkEventKey):
1379
1380 2008-02-08  Darin Adler  <darin@apple.com>
1381
1382         Reviewed by Eric.
1383
1384         - fix http://bugs.webkit.org/show_bug.cgi?id=3492
1385           TreeWalker implementation needs to be fixed (affects Acid3)
1386         - fix http://bugs.webkit.org/show_bug.cgi?id=4714
1387           NodeIterator does not handle exceptions from the filter function (affects Acid3)
1388         - fix http://bugs.webkit.org/show_bug.cgi?id=4716
1389           NodeIterator will crash if the filter function removes the current node from the document
1390
1391         Test: traversal/exception-forwarding.html
1392
1393         This turned into a near-rewrite of NodeIterator and TreeWalker.
1394
1395         * bindings/js/JSNodeFilterCondition.h:
1396         * bindings/js/JSNodeFilterCondition.cpp:
1397         (WebCore::takeException): Added.
1398         (WebCore::JSNodeFilterCondition::acceptNode): Added an out parameter to return
1399         a JavaScript exception.
1400
1401         * bindings/js/JSNodeFilterCustom.cpp:
1402         (WebCore::JSNodeFilter::acceptNode): Wrote a custom binding for this that raises
1403         a JavaScript exception if the out parameter is set.
1404
1405         * bindings/js/JSNodeIteratorCustom.cpp:
1406         (WebCore::JSNodeIterator::nextNode): Wrote a custom binding for this that raises
1407         a JavaScript exception if the out parameter is set.
1408         (WebCore::JSNodeIterator::previousNode): Ditto.
1409
1410         * bindings/js/JSTreeWalkerCustom.cpp:
1411         (WebCore::JSTreeWalker::parentNode): Wrote a custom binding for this that raises
1412         a JavaScript exception if the out parameter is set.
1413         (WebCore::JSTreeWalker::firstChild): Ditto.
1414         (WebCore::JSTreeWalker::lastChild): Ditto.
1415         (WebCore::JSTreeWalker::nextSibling): Ditto.
1416         (WebCore::JSTreeWalker::previousSibling): Ditto.
1417         (WebCore::JSTreeWalker::previousNode): Ditto.
1418         (WebCore::JSTreeWalker::nextNode): Ditto.
1419
1420         * bindings/objc/DOM.mm:
1421         (WebCore::ObjCNodeFilterCondition::acceptNode): Updated to include new exception
1422         out parameter.
1423         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
1424         Use RefPtr to make object lifetimes clearer.
1425         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
1426         Ditto.
1427
1428         * bindings/scripts/CodeGeneratorJS.pm: Added include of NodeFilter.h for
1429         JSDocument.cpp.
1430
1431         * dom/Document.h:
1432         * dom/Document.cpp:
1433         (WebCore::Document::createNodeIterator): Changed to use PassRefPtr.
1434         (WebCore::Document::createTreeWalker): Ditto.
1435
1436         * dom/NodeFilter.h:
1437         * dom/NodeFilter.cpp:
1438         (WebCore::NodeFilter::NodeFilter): Changed to use PassRefPtr.
1439         (WebCore::NodeFilter::acceptNode): Added an out parameter to return
1440         a JavaScript exception.
1441         * dom/NodeFilter.idl: Custom binding for acceptNode.
1442
1443         * dom/NodeFilterCondition.h:
1444         * dom/NodeFilterCondition.cpp:
1445         (WebCore::NodeFilterCondition::acceptNode): Added an out parameter to return
1446         a JavaScript exception.
1447
1448         * dom/NodeIterator.cpp:
1449         (WebCore::NodeIterator::NodeIterator): Changed to use PassRefPtr more.
1450         Eliminated m_doc, using the root node instead, and unnecessary check for
1451         null -- rootNode must be non-null and all nodes have a non-null document.
1452         (WebCore::NodeIterator::~NodeIterator): Changed to get document from root.
1453         (WebCore::NodeIterator::nextNode): Rewrote to use a RefPtr since the
1454         acceptNode function could do anything, including removing the last
1455         reference to the current node. Also folded findNextNode into this function
1456         since it's the only one that needs to call it.
1457         (WebCore::NodeIterator::previousNode): Same thing, but the other direction.
1458         (WebCore::NodeIterator::detach): Changed to use the root node as the indication
1459         that we're detached rather than a separate boolean.
1460         (WebCore::NodeIterator::notifyBeforeNodeRemoval): Removed some unnneeded
1461         checks. Removed incorrect use of findNextNode/findPreviousNode -- those
1462         functions call acceptNode and the DOM standard is quite clear that these
1463         functions do not take that into account, allowing the current node to become
1464         one that's not accepted.
1465
1466         * dom/NodeIterator.h: Changed constructor to use PassRefPtr more. Changed
1467         nextNode and previousNode to have an out parameter with a JavaScript exception.
1468         Removed helper functions setReferenceNode, setPointerBeforeReferenceNode,
1469         detached, setDetached, document, findNextNode, and findPreviousNode. All were
1470         unnecessary. Removed data member m_doc which was just rootNode()->document().
1471
1472         * dom/NodeIterator.idl: Custom binding for nextNode and previousNode.
1473
1474         * dom/Traversal.cpp:
1475         (WebCore::Traversal::Traversal): Use PassRefPtr more.
1476         (WebCore::Traversal::acceptNode): Added out parameter for JavaScript exception.
1477         Also rearranged the function a little bit for clarity.
1478
1479         * dom/Traversal.h: Changed acceptNode to have an out parameter with a JavaScript
1480         exception and made it protected, since it's only for use by the derived classes.
1481
1482         * dom/TreeWalker.cpp:
1483         (WebCore::TreeWalker::TreeWalker): Updated to use PassRefPtr.
1484         (WebCore::TreeWalker::setCurrentNode): Updated to use PassRefPtr and deleted
1485         the overloaded version since it's not needed.
1486         (WebCore::TreeWalker::parentNode): Rewrote to propagate the exception and also
1487         to implement rules about when to check things like whether we're in the tree.
1488         The previous fix where we called isDescendantOf was not entirely correct, because
1489         the specification allows you to walk outside the tree if you get there somehow.
1490         What it doesn't allow is walking outside the tree from inside. The new
1491         implementation handles this correctly.
1492         (WebCore::TreeWalker::firstChild): Ditto.
1493         (WebCore::TreeWalker::lastChild): Ditto.
1494         (WebCore::TreeWalker::previousSibling): Ditto.
1495         (WebCore::TreeWalker::nextSibling): Ditto.
1496         (WebCore::TreeWalker::previousNode): Ditto. Because of the need to check the
1497         acceptNode function on parents, this can't use traversePreviousNode (more's the
1498         pity, because it's a bit complicated).
1499         (WebCore::TreeWalker::nextNode): Ditto.
1500
1501         * dom/TreeWalker.h: Changed constructor and setCurrentNode to use PassRefPtr
1502         more. Changed the navigation functions to have an out parameter with a JavaScript
1503         exception. Removed helper functions setCurrentNode and ancestorRejected.
1504
1505         * dom/TreeWalker.idl: Custom binding for navigation functions.
1506
1507 2008-02-08  Eric Seidel  <eric@webkit.org>
1508
1509         Reviewed by darin.
1510
1511         Add support for Text.wholeText and Text.replaceWholeText
1512         http://bugs.webkit.org/show_bug.cgi?id=17125
1513
1514         Test EntityReferences to make sure they're always treated as read-only
1515         In doing so I discovered a bug in document.adoptNode(readonlyNode) (and fixed it)
1516
1517         * dom/Document.cpp:
1518         (WebCore::Document::adoptNode): throw NO_MODIFICATION_ALLOWED_ERR when passed a readonly node
1519         * dom/Node.cpp:
1520         * dom/Node.cpp:
1521         (WebCore::Node::textContent):
1522         * dom/Text.cpp:
1523         (WebCore::earliestLogicallyAdjacentTextNode):
1524         (WebCore::latestLogicallyAdjacentTextNode):
1525         (WebCore::Text::wholeText):
1526         (WebCore::Text::replaceWholeText):
1527         * dom/Text.h:
1528         * dom/Text.idl:
1529
1530 2008-02-06  Kimmo Kinnunen  <kimmok@iki.fi>
1531
1532         Reviewed by Tim Hatcher.
1533
1534         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17191
1535         HTML5: Client-side database queries should return values of type number
1536         Test: storage/sql-data-types.html
1537
1538         Make the DB queries return a value as a number if it was inserted
1539         as a number to the database.
1540         * platform/sql/SQLiteStatement.cpp:
1541         (WebCore::SQLiteStatement::getColumnValue): new member function to return SQLValues
1542         * platform/sql/SQLiteStatement.h:
1543         * storage/SQLStatement.cpp:
1544         (WebCore::SQLStatement::execute): use getColumnValue instead of getColumnText
1545
1546 2008-02-07  Ada Chan  <adachan@apple.com>
1547
1548         <rdar://problem/5292433> certificate authentication support broken in Safari 3.0
1549         Added mechanism to communicate client certificate info back to CFNetwork.
1550
1551         Reviewed by Adam.
1552
1553         * platform/network/ResourceHandle.h:
1554         * platform/network/cf/ResourceHandleCFNet.cpp:
1555         (WebCore::clientCerts): Keep a mapping of hosts to client certificates.
1556         (WebCore::makeFinalRequest): If we have a client certificate for the host, pass it
1557         to CFNetwork by setting it in the SSL properties.
1558         (WebCore::ResourceHandle::setClientCertificate): Map client certificate to the host.
1559
1560 2008-02-07  Adam Roben  <aroben@apple.com>
1561
1562         Qt build fix
1563
1564         * platform/SharedBuffer.cpp: Removed a stub implementation of
1565         createWithContentsOfFile, now that each platform has its own stub.
1566
1567 2008-02-07  Adam Roben  <aroben@apple.com>
1568
1569         Fix Bug 17138: REGRESSION: Node highlight not updated properly
1570
1571         <http://bugs.webkit.org/show_bug.cgi?id=17138>
1572         <rdar://problem/5719869>
1573
1574         Reviewed by Darin.
1575
1576         No test possible.
1577
1578         * page/InspectorController.cpp:
1579         (WebCore::InspectorController::drawNodeHighlight): Update the
1580         overlayRect after scrolling to make sure that we translate the context
1581         by the correct amount.
1582
1583 2008-02-07  Adam Roben  <aroben@apple.com>
1584
1585         Qt and GTK+ build fixes
1586
1587         * platform/gtk/FileSystemGtk.cpp: Added a missing #include.
1588         * platform/qt/FileSystemQt.cpp: Ditto.
1589
1590 2008-02-07  Adam Roben  <aroben@apple.com>
1591
1592         Some cleanup of Mac-only user stylesheet code
1593
1594         I moved UserStyleSheetLoader out of Frame.cpp into its own files, and
1595         moved some Mac-only Frame methods to FrameMac.mm.
1596
1597         Reviewed by Darin.
1598
1599         * WebCore.xcodeproj/project.pbxproj: Added new files to project.
1600         * loader/mac/UserStyleSheetLoader.cpp: Added.
1601         (UserStyleSheetLoader::UserStyleSheetLoader):
1602         (UserStyleSheetLoader::~UserStyleSheetLoader):
1603         * loader/mac/UserStyleSheetLoader.h: Added.
1604         * page/Frame.cpp: Removed setUserStyleSheet[Location]
1605         * page/mac/FrameMac.mm:
1606         (WebCore::Frame::setUserStyleSheetLocation): Moved here from
1607         Frame.cpp.
1608         (WebCore::Frame::setUserStyleSheet): Ditto.
1609
1610 2008-02-07  Adam Roben  <aroben@apple.com>
1611
1612         Fix <rdar://5555260> GMail never loads when a user stylesheet is
1613         specified
1614
1615         The fix in r29841 did not guarantee that the user stylesheet would not
1616         still be loading by the time GMail called document.write, and so was
1617         not a complete fix.
1618
1619         This change reworks the user stylesheet loading mechanism on non-Mac
1620         platforms to load the stylesheet synchronously from disk, and then
1621         keeps it in memory. This obsoletes the issue of what our behavior
1622         should be before the user stylesheet has loaded and what should happen
1623         when it finishes loading, as the user stylesheet will always be
1624         available when the Document first asks for it. Note, however, that
1625         this removes the ability to specify a non-file: URL for the user
1626         stylesheet. This change was not made for the Mac platform because it's
1627         possible that WebKit clients are relying on non-file: URLs for user
1628         stylesheets. It would also be nice to move back to an asynchronous
1629         loading model someday, but that is not currently possible since we
1630         don't have an asynchronous loading mechanism that is not tied to a
1631         particular Frame.
1632
1633         The responsibility of loading and storing the user stylesheet has
1634         moved from Frame to Page, since the user stylesheet URL is set on the
1635         Page-level Settings object.
1636
1637         Reviewed by Darin.
1638
1639         * dom/Document.cpp:
1640         (WebCore::Document::Document): Changed to call userStyleSheet().
1641         (WebCore::Document::setUserStyleSheet): Made Mac-only.
1642         (WebCore::Document::userStyleSheet): Changed to call up to Page on
1643         non-Mac platforms.
1644         (WebCore::Document::recalcStyleSelector): Changed to call
1645         userStyleSheet().
1646         * dom/Document.h:
1647             - Made setUserStyleSheet and the m_usersheet member Mac-only
1648             - Changed userStyleSheet to return a String instance instead of a
1649               String reference, since we now might return a new null String.
1650         * loader/FrameLoader.cpp:
1651         (WebCore::FrameLoader::begin): Made the call to
1652         Frame::setUserStyleSheetLocation Mac-only.
1653         * page/Frame.cpp: Made UserStyleSheetLoader and related code Mac-only.
1654         (WebCore::Frame::~Frame): Ditto.
1655         (WebCore::Frame::reapplyStyles): Made the call to
1656         setUserStyleSheet[Location] Mac-only. On non-Mac platforms the
1657         Document will pick up the new stylesheet in Document::reapplyStyles.
1658         (WebCore::FramePrivate::FramePrivate): Made m_userStyleSheetLoader
1659         Mac-only.
1660         * page/Frame.h: Made setUserStyleSheet[Location] Mac-only.
1661         * page/FramePrivate.h: Made m_userStyleSheetLoader Mac-only.
1662         * page/Page.cpp:
1663         (WebCore::Page::Page): Initialize new members.
1664         (WebCore::Page::userStyleSheetLocationChanged): Added. Does nothing on
1665         Mac. On non-Mac, resets all members relating to the user stylesheet so
1666         we'll know to load it again the next time it's asked for.
1667         (WebCore::Page::userStyleSheet): Added. Loads the user stylesheet if
1668         the user stylesheet location has changed since the last time we loaded
1669         it, or if the file has been modified since we last loaded it, then
1670         returns the contents of the user stylesheet as a String.
1671         * page/Page.h: Added new methods/members.
1672         * page/Settings.cpp:
1673         (WebCore::Settings::setUserStyleSheetLocation): Changed to call
1674         Page::userStyleSheetLocationChanged.
1675         * page/Settings.h: Changed userStyleSheetLocation to return the KURL
1676         by reference instead of making a copy.
1677         * platform/FileSystem.h: Added declaration for getFileModificationTime.
1678         * platform/KURL.h: Added declaration for fileSystemPath method.
1679         * platform/cf/KURLCFNet.cpp:
1680         (WebCore::KURL::fileSystemPath): Added.
1681         * platform/posix/FileSystemPOSIX.cpp:
1682         (WebCore::getFileModificationTime): Added.
1683         * platform/qt/KURLQt.cpp:
1684         (WebCore::KURL::fileSystemPath): Stubbed out.
1685         * platform/win/FileSystemWin.cpp:
1686         (WebCore::getFileModificationTime): Added.
1687         * platform/qt/FileSystemQt.cpp: Stubbed out getFileModificationTime.
1688         * platform/gtk/FileSystemGtk.cpp: Ditto.
1689         * platform/wx/FileSystemWx.cpp: Ditto.
1690         * platform/qt/TemporaryLinkStubs.cpp: Stubbed out
1691         SharedBuffer::createWithContentsOfFile.
1692         * platform/gtk/TemporaryLinkStubs.cpp: Ditto, along with
1693         KURL::fileSystemPath.
1694         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
1695
1696 2008-02-07  Adam Roben  <aroben@apple.com>
1697
1698         Clean up FileSystemWin.cpp
1699
1700         This cleanup also makes us call _wstat64 instead of _wstat32i64. The
1701         only difference between these two functions is that _wstat64 gives
1702         64-bit time values, while _wstat32i64 only gives 32-bit time values.
1703
1704         Reviewed by Darin.
1705
1706         All tests pass.
1707
1708         * platform/win/FileSystemWin.cpp:
1709         (WebCore::statFile): New static helper that wraps _wstat64.
1710         (WebCore::getFileSize): Changed to call statFile.
1711         (WebCore::fileExists): Ditto.
1712
1713 2008-02-07  Adam Roben  <aroben@apple.com>
1714
1715         Rename fileSize to getFileSize
1716
1717         Rubberstamped by Darin.
1718
1719         * platform/FileSystem.h:
1720         * platform/gtk/FileSystemGtk.cpp:
1721         * platform/network/cf/FormDataStreamCFNet.cpp:
1722         (WebCore::setHTTPBody):
1723         * platform/network/curl/ResourceHandleManager.cpp:
1724         (WebCore::ResourceHandleManager::setupPOST):
1725         * platform/posix/FileSystemPOSIX.cpp:
1726         * platform/qt/FileSystemQt.cpp:
1727         * platform/win/FileSystemWin.cpp:
1728         * platform/wx/FileSystemWx.cpp:
1729         * storage/Database.cpp:
1730         (WebCore::Database::databaseSize):
1731         * storage/DatabaseTracker.cpp:
1732         (WebCore::DatabaseTracker::usageForDatabase):
1733         * storage/OriginUsageRecord.cpp:
1734         (WebCore::OriginUsageRecord::diskUsage):
1735
1736 2008-02-06  Adam Roben  <aroben@apple.com>
1737
1738         Make KURL::isLocalFile treat the URL's protocol case-insensitively
1739
1740         Reviewed by Darin.
1741
1742         * platform/KURL.cpp:
1743         (WebCore::KURL::isLocalFile): Use equalIgnoringCase instead of ==.
1744
1745 2008-02-07  David Hyatt  <hyatt@apple.com>
1746
1747         Fix for bug 6248, implement the nth-* CSS3 selectors.  Patch based on original KHTML work from Allan Jensen
1748         and improved upon by Nick Shanks.
1749
1750         Reviewed by Eric
1751
1752         * css/CSSGrammar.y:
1753         * css/CSSParser.cpp:
1754         (WebCore::CSSParser::lex):
1755         * css/CSSSelector.cpp:
1756         (WebCore::CSSSelector::extractPseudoType):
1757         * css/CSSSelector.h:
1758         (WebCore::CSSSelector::):
1759         * css/CSSStyleSelector.cpp:
1760         (WebCore::parseNth):
1761         (WebCore::matchNth):
1762         (WebCore::CSSStyleSelector::checkOneSelector):
1763         * css/tokenizer.flex:
1764         * rendering/RenderStyle.cpp:
1765         (WebCore::RenderStyle::RenderStyle):
1766         * rendering/RenderStyle.h:
1767         (WebCore::RenderStyle::childIndex):
1768         (WebCore::RenderStyle::setChildIndex):
1769
1770 2008-02-07  Dan Bernstein  <mitz@apple.com>
1771
1772         Reviewed by Dave Hyatt.
1773
1774         - fix <rdar://problem/5729411> REGRESSION (r29834): Float contained in relative-positioned block is painted twice
1775
1776         Test: fast/block/float/relative-painted-twice.html
1777
1778         * rendering/RenderBlock.cpp:
1779         (WebCore::RenderBlock::addOverhangingFloats): Added another case where
1780         the child should not take over painting the float: when they do not have
1781         the same enclosing layer. In that case, the float is already being
1782         painted by one of its closer ancestors.
1783
1784 2008-02-07  Dan Bernstein  <mitz@apple.com>
1785
1786         Reviewed by Darin Adler.
1787
1788         - fix http://bugs.webkit.org/show_bug.cgi?id=17194
1789           Changing text to bold changes font family
1790
1791         Test: platform/mac/fast/text/family-for-font-matched-by-name.html
1792
1793         * platform/mac/WebFontCache.mm:
1794         (+[WebFontCache internalFontWithFamily:traits:size:]): Changed to use
1795         the family of the font whose name matches the desired family if there
1796         is no exact family match.
1797
1798 2008-02-07  Beth Dakin  <bdakin@apple.com>
1799
1800         Reviewed by Geoff.
1801
1802         Fix for <rdar://problem/5697882> Traffic or Street View button on 
1803         Google Maps is sometimes not positioned correctly (17000)
1804
1805         On the Mac, timers fire in the order that they are registered. 
1806         Geoff and I discovered that this is not necessarily true on 
1807         Windows, and that turned out to be the cause of this intermittent 
1808         layout problem at Google Maps. This patch adds a new member 
1809         variable to Timer to remember the timer's insertion point into the 
1810         heap. Now when comparing timers, if two timers were registered at 
1811         the same time, their insertion orders are compared to determine 
1812         which should fire first. This code actually never runs on Debug 
1813         builds on the Mac; the system clock on the Mac is accurate enough 
1814         that it knows that the two timers were not registered at *exactly* 
1815         the same time. This is not the case on Windows. In theory, if we 
1816         sped up Javascript enough on the Mac, this code would run and would 
1817         prevent misrenderings such as the one found on Google Maps.
1818
1819         * platform/Timer.cpp:
1820         (WebCore::operator<):
1821         (WebCore::TimerBase::setNextFireTime):
1822         * platform/Timer.h:
1823
1824 2008-02-06  Justin Garcia  <justin.garcia@apple.com>
1825
1826         Reviewed by Darin Adler.
1827
1828         <rdar://problem/5195056> Huge plain text pastes are slow
1829         
1830         This was fixed in r27369 and then r29367 and r29667 caused performance to
1831         regress.
1832
1833         * editing/EditCommand.cpp:
1834         (WebCore::EditCommand::apply): Only updateLayout() for high level commands.
1835         (WebCore::EditCommand::unapply): Ditto.
1836         (WebCore::EditCommand::reapply): Ditto.
1837         * editing/Editor.cpp:
1838         (WebCore::Editor::appliedEditing): Added a note about shouldChangeSelection calls 
1839         that shouldn't be made, a bug I filed as <rdar://problem/5729315>.
1840         (WebCore::Editor::unappliedEditing): Ditto.
1841         (WebCore::Editor::reappliedEditing): Ditto.
1842         * editing/SelectionController.cpp:
1843         (WebCore::SelectionController::nodeWillBeRemoved): Don't try to test the selection
1844         base and extent with the expensive isCandidate operation if the node that will
1845         be removed is in a fragment, since such a removal is guaranteed to have no effect
1846         on a selection.  This is to speed up the paste operation, which does many removes from
1847         a fragment.
1848
1849 2008-02-06  Kevin Ollivier  <kevino@theolliviers.com>
1850
1851         Reviewed by Darin Adler.
1852
1853         Rather than directly handing scroll wheel events, use
1854         PlatformWheelEvent to send them to WebCore first, so that
1855         mouse wheel scrolling info can be retrieved via JavaScript.
1856
1857         http://bugs.webkit.org/show_bug.cgi?id=17179
1858
1859         * platform/ScrollView.h:
1860         * platform/wx/MouseWheelEventWx.cpp:
1861         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
1862         * platform/wx/ScrollViewWx.cpp:
1863         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
1864         (WebCore::ScrollView::wheelEvent):
1865         (WebCore::ScrollView::maximumScroll):
1866
1867 2008-02-06  Mark Rowe  <mrowe@apple.com>
1868
1869         Fix Windows builds.
1870
1871         * WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.
1872
1873 2008-02-06  Mark Rowe  <mrowe@apple.com>
1874
1875         Mac build fix.  Track rename that happened in r30056.
1876
1877         * platform/graphics/mac/GraphicsContextMac.mm:
1878
1879 2008-02-06  Brent Fulgham  <bfulgham@gmail.com>
1880
1881         Reviewed by Adam Roben.
1882
1883         http://bugs.webkit.org/show_bug.cgi?id=16979
1884         Conditionalize CoreGraphics vs Cairo support in Windows port.
1885
1886         * WebCore.vcproj/WebCore.vcproj:
1887         * bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
1888         (WebCore::imageFromSelection):
1889         * bridge/win/FrameCairoWin.cpp: Added.
1890         (WebCore::imageFromSelection):
1891         * bridge/win/FrameWin.cpp:
1892         (WebCore::computePageRectsForFrame):
1893         * platform/graphics/SimpleFontData.h:
1894         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1895         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
1896         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
1897         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
1898         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
1899         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
1900         * platform/graphics/cg/GraphicsContextCG.cpp:
1901         (WebCore::GraphicsContext::savePlatformState):
1902         (WebCore::GraphicsContext::restorePlatformState):
1903         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
1904         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
1905         * platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
1906         (WebCore::Font::drawGlyphs):
1907         * platform/graphics/win/FontCairoWin.cpp: Added.
1908         (WebCore::Font::drawGlyphs):
1909         * platform/graphics/win/FontWin.cpp:
1910         * platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
1911         (WebCore::CGContextWithHDC):
1912         (WebCore::GraphicsContext::inTransparencyLayer):
1913         (WebCore::GraphicsContext::getWindowsContext):
1914         (WebCore::GraphicsContext::releaseWindowsContext):
1915         (WebCore::GraphicsContextPlatformPrivate::scale):
1916         (WebCore::GraphicsContextPlatformPrivate::rotate):
1917         (WebCore::GraphicsContextPlatformPrivate::translate):
1918         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
1919         (WebCore::setCGStrokeColor):
1920         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
1921         * platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
1922         (WebCore::GraphicsContext::GraphicsContext):
1923         (WebCore::GraphicsContext::getWindowsContext):
1924         (WebCore::GraphicsContext::inTransparencyLayer):
1925         (WebCore::GraphicsContext::releaseWindowsContext):
1926         (WebCore::GraphicsContext::concatCTM):
1927         * platform/graphics/win/GraphicsContextWin.cpp:
1928         * platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
1929         (WebCore::BitmapImage::getHBITMAPOfSize):
1930         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1931         * platform/graphics/win/ImageCairoWin.cpp: Added.
1932         (WebCore::BitmapImage::getHBITMAPOfSize):
1933         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1934         * platform/graphics/win/ImageWin.cpp:
1935         * platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
1936         (WebCore::scaleEmToUnits):
1937         (WebCore::SimpleFontData::platformInit):
1938         (WebCore::SimpleFontData::platformWidthForGlyph):
1939         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
1940         (WebCore::SimpleFontData::platformInit):
1941         (WebCore::SimpleFontData::platformDestroy):
1942         (WebCore::SimpleFontData::platformWidthForGlyph):
1943         * platform/graphics/win/SimpleFontDataWin.cpp:
1944         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
1945         (WebCore::SimpleFontData::shouldApplyMacAscentHack):
1946         * platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
1947         (WebCore::scaleDragImage):
1948         (WebCore::createDragImageFromImage):
1949         * platform/win/DragImageCairoWin.cpp: Added.
1950         (WebCore::scaleDragImage):
1951         (WebCore::createDragImageFromImage):
1952         * platform/win/DragImageWin.cpp:
1953
1954 2008-02-06  Anders Carlsson  <andersca@apple.com>
1955
1956         Reviewed by Darin.
1957
1958         Change httpBodyFromStream to take the request instead of the stream.
1959         
1960         * platform/network/cf/FormDataStreamCFNet.cpp:
1961         (WebCore::httpBodyFromRequest):
1962         * platform/network/cf/FormDataStreamCFNet.h:
1963         * platform/network/cf/ResourceRequestCFNet.cpp:
1964         (WebCore::ResourceRequest::doUpdateResourceRequest):
1965
1966 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
1967
1968         Reviewed by Darin.
1969
1970         - Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
1971         one URL uses an explicit port number and another doesn't
1972
1973         * manual-tests/Default-port-frame.html: Added.
1974         * manual-tests/resources/Default-port-frame-contents.html: Added.
1975
1976 2008-02-06  Oliver Hunt  <oliver@apple.com>
1977
1978         Reviewed by NOBODY (Build fix).
1979
1980         Fix windows build
1981
1982         * WebCore.vcproj/build-generated-files.sh:
1983
1984 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
1985
1986         Rubberstamped by Darin.
1987
1988         <rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
1989         - Reverted the change that caused the regression.
1990
1991         * dom/Document.cpp:
1992         (WebCore::Document::createElement):
1993         (WebCore::Document::createElementNS):
1994         (WebCore::Document::getElementById):
1995         (WebCore::Document::parseQualifiedName):
1996         (WebCore::Document::createAttributeNS):
1997         * dom/Document.idl:
1998
1999 2008-02-06  Geoffrey Garen  <ggaren@apple.com>
2000
2001         Reviewed by Oliver Hunt.
2002         
2003         Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot
2004
2005         The problem was refCount underflow in NamedAttrMap.
2006         
2007         Neither our regression tests nor the stress test have yet discovered
2008         another instance of this problem.
2009
2010         * dom/NamedAttrMap.cpp:
2011         (WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
2012         for fast and correct refCount management. Also, change a rediculously
2013         slow malloc to a slightly less rediculously slow realloc.
2014
2015         * dom/NamedAttrMap.h:
2016         (WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
2017         for fast and correct refCount management.
2018
2019         * html/HTMLTokenizer.cpp:
2020         (WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
2021         object starts with a refCount of 1.
2022
2023 2008-02-06  Darin Adler  <darin@apple.com>
2024
2025         Reviewed by Tim Hatcher.
2026
2027         - fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
2028           with View Source window as target
2029
2030         * page/InspectorController.cpp:
2031         (WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
2032         JavaScript disabled.
2033         (WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
2034         it returns false.
2035
2036 2008-02-06  David Hyatt  <hyatt@apple.com>
2037
2038         Fix for bug 16799, object elements should return absolute URLs from .data.
2039
2040         Reviewed by Mark Rowe
2041
2042         * dom/Document.cpp:
2043         (WebCore::Document::completeURL):
2044         * html/HTMLAnchorElement.cpp:
2045         (WebCore::HTMLAnchorElement::href):
2046         * html/HTMLObjectElement.cpp:
2047         (WebCore::HTMLObjectElement::data):
2048
2049 2008-02-05  Antti Koivisto  <antti@apple.com>
2050
2051         Reviewed by Darin.
2052
2053         <rdar://problem/5726340>
2054         <video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
2055         
2056         When moving document in and out from the page cache:
2057         - Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
2058         - Restart the load if it was aborted in the middle.
2059
2060         * html/HTMLMediaElement.cpp:
2061         (WebCore::HTMLMediaElement::~HTMLMediaElement):
2062         (WebCore::HTMLMediaElement::load):
2063         (WebCore::HTMLMediaElement::willSaveToCache):
2064         (WebCore::HTMLMediaElement::didRestoreFromCache):
2065         * html/HTMLMediaElement.h:
2066         (WebCore::HTMLMediaElement::player):
2067
2068 2008-02-06  Darin Adler  <darin@apple.com>
2069
2070         Reviewed by Sam.
2071
2072         - replace calls to put to set up properties with calls to putDirect, to
2073           prepare for a future change where put won't take attributes any more,
2074           and for a slight performance boost
2075
2076         * bindings/js/JSAudioConstructor.cpp:
2077         (WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
2078         * bindings/js/JSEventTargetBase.h:
2079         (WebCore::JSEventTargetPrototype::self): Ditto.
2080         * bindings/js/JSHTMLOptionElementConstructor.cpp:
2081         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
2082         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2083         (WebCore::JSSQLResultSetRowList::item): Ditto.
2084
2085 2008-02-06  Dan Bernstein  <mitz@apple.com>
2086
2087         Reviewed by Darin Adler.
2088
2089         - fix http://bugs.webkit.org/show_bug.cgi?17093
2090         'border-color' does not animate to the value of 'color' when unspecified
2091
2092         Test: fast/css/transition-color-unspecified.html
2093
2094         * page/AnimationController.cpp:
2095         (WebCore::ImplicitAnimation::animate): Changed to use the value of the
2096         'color' property in the source or destination style as the source or
2097         destination value of properties whose inital value is defined to be the
2098         computed value of 'color'.
2099
2100 2008-02-06  Dan Bernstein  <mitz@apple.com>
2101
2102         Build fix.
2103
2104         * svg/svgtags.in:
2105
2106 2008-02-05  Oliver Hunt  <oliver@apple.com>
2107
2108         Build fix -- touch generate-bindings to trigger regeneration of bindings
2109
2110         * bindings/scripts/generate-bindings.pl:
2111
2112 2008-02-05  Oliver Hunt  <oliver@apple.com>
2113
2114         RS=Eric.
2115
2116         Re-enable foreignObject by default as it is needed for a number of 
2117         non-fO related SVG tests and none of the old known crashes occur
2118         anymore.
2119
2120         * Configurations/WebCore.xcconfig:
2121         * WebCore.vcproj/WebCore.vcproj:
2122
2123 2008-02-05  Sam Weinig  <sam@webkit.org>
2124
2125         Reviewed by Anders Carlsson.
2126
2127         Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
2128         NodeList (and other DOM lists) items are not enumeratable using for..in
2129
2130         - Match Firefox when enumerating DOM interfaces with indexGetters (support for 
2131           the array bracket, nodeList[0], notation) by including all the items in the
2132           list before the attributes and methods of the interface.
2133
2134         Test: fast/dom/domListEnumeration.html
2135
2136         * ForwardingHeaders/kjs/PropertyNameArray.h: Added.
2137         * bindings/js/JSDOMWindowCustom.cpp:
2138         (WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model. 
2139         * bindings/js/JSHistoryCustom.cpp:
2140         (WebCore::JSHistory::customGetPropertyNames): ditto.
2141         * bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
2142         getProperyNames and implementing the method in the Custom.cpp, move to a the 
2143         model used by generated getOwnPropertySlot() and put() where the custom code
2144         is written in a separate customGetPropertyNames which returns a bool indicating
2145         whether to call up to the base class.  This enables adding the list indexes
2146         to the PropertyNameArray for interfaces with indexGetters automatically.
2147
2148 2008-02-05  Samuel Weinig  <sam@webkit.org>
2149
2150         Reviewed by Darin Adler.
2151
2152         Fix for <rdar://problem/5726604> 
2153         dom-checker: deleting properties of the window object cross-domain should not be allowed
2154
2155         Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).
2156
2157         Test: http/tests/security/cross-frame-access-delete.html
2158
2159         * bindings/js/JSDOMWindowCustom.cpp:
2160         (WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
2161         * bindings/js/JSHistoryCustom.cpp:
2162         (WebCore::JSHistory::deleteProperty): ditto.
2163         * bindings/js/JSLocation.cpp:
2164         (WebCore::JSLocation::deleteProperty): ditto.
2165         * bindings/js/JSLocation.h:
2166
2167         * bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
2168         * page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
2169         * page/History.idl: ditto.
2170
2171 2008-02-05  Alp Toker  <alp@atoker.com>
2172
2173         Rubber-stamped by Mark Rowe.
2174
2175         Fix a "missing sentinel in function call" warning by using NULL
2176         instead of 0.
2177
2178         * platform/gtk/RenderThemeGtk.cpp:
2179         (WebCore::RenderThemeGtk::caretBlinkFrequency):
2180
2181 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
2182
2183         Reviewed by Oliver.
2184
2185         Fix dynamic updates of <circle> element's properties.
2186
2187         Added tests: svg/dynamic-updates/SVGCircleElement*
2188
2189         * svg/SVGCircleElement.cpp:
2190         (WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
2191         * svg/SVGCircleElement.h:
2192
2193 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
2194
2195         Wx build fix.  Add WebCore/plugins to the include path.
2196
2197         * webcore-base.bkl:
2198
2199 2008-02-05  Mark Rowe  <mrowe@apple.com>
2200
2201         Mac build fix.  Update the Xcode project to follow a moved file,
2202         and track a rename in two files that were missed earlier.
2203
2204         * WebCore.xcodeproj/project.pbxproj:
2205         * page/mac/WebCoreFrameBridge.mm:
2206         (-[WebCoreFrameBridge canProvideDocumentSource]):
2207         * platform/mac/PlugInInfoStoreMac.mm:
2208         (WebCore::PluginInfoStore::pluginNameForMIMEType):
2209
2210 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
2211
2212         Reviewed by Holger.
2213
2214         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
2215         Fix dynamic SVG DOM updates of <a> element's href property.
2216
2217         This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
2218         Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
2219         one test per property per class. As a first pass it's sufficient to add testcases for all
2220         SVG*Element classes, and their properties - and only common-used base-class properties.
2221
2222         For SVGAElement - for example - it makes most sense to test scripting its parent
2223         SVGURIReference object ('href' property) and its own property 'target'.
2224
2225         Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
2226         SVGExternalResourcesRequired interface, should really be done in a second pass.
2227
2228         All tests within the new framework are supposed to be created using make-js-tests-wrappers.
2229
2230         Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
2231         Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
2232         Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
2233         Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js
2234
2235         * svg/SVGAElement.cpp:
2236         (WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
2237         (WebCore::SVGAElement::svgAttributeChanged):
2238         (WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
2239         * svg/SVGAElement.h:
2240
2241 2008-02-05  Justin Garcia  <justin.garcia@apple.com>
2242
2243         Reviewed by Alexey Proskuryakov.
2244
2245         <rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)
2246
2247         * editing/CompositeEditCommand.cpp:
2248         (WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
2249         when the editing code actively looked for <br>s of that type in order to handle them
2250         specially.  That is no longer the case.
2251         * editing/InsertParagraphSeparatorCommand.cpp:
2252         (WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
2253         would be inserted when hitting return inside an editable root held open by a placeholder
2254         <br> or '\n'.  Added test cases for the bug and for the special case code that was incorrectly
2255         triggered to cause the bug. 
2256
2257 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
2258
2259         Reviewed by Anders Carlsson.
2260
2261         Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
2262         Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.
2263
2264         Remove the Win suffix on several plugin-related classes that will
2265         soon be refactored to be more portable.
2266
2267         * WebCore.vcproj/WebCore.vcproj:
2268         * bindings/js/kjs_navigator.cpp:
2269         (KJS::PluginBase::cachePluginDataIfNecessary):
2270         * bindings/js/kjs_window.cpp:
2271         * bridge/win/FrameWin.cpp:
2272         (WebCore::Frame::createScriptInstanceForWidget):
2273         * dom/Clipboard.cpp:
2274         * dom/DOMImplementation.cpp:
2275         (WebCore::DOMImplementation::createDocument):
2276         * loader/FrameLoader.cpp:
2277         (WebCore::FrameLoader::shouldUsePlugin):
2278         * page/DragController.cpp:
2279         * platform/PlugInInfoStore.h: Removed.
2280         * platform/gtk/TemporaryLinkStubs.cpp:
2281         (PluginInfoStore::createPluginInfoForPluginAtIndex):
2282         (PluginInfoStore::pluginCount):
2283         (PluginInfoStore::pluginNameForMIMEType):
2284         (WebCore::PluginInfoStore::supportsMIMEType):
2285         * platform/qt/PlugInInfoStoreQt.cpp:
2286         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
2287         (WebCore::PluginInfoStore::pluginCount):
2288         (WebCore::PluginInfoStore::pluginNameForMIMEType):
2289         (WebCore::PluginInfoStore::supportsMIMEType):
2290         * platform/qt/TemporaryLinkStubs.cpp:
2291         * platform/win/SharedTimerWin.cpp:
2292         (WebCore::TimerWindowWndProc):
2293         * platform/wx/TemporaryLinkStubs.cpp:
2294         (PluginInfoStore::createPluginInfoForPluginAtIndex):
2295         (PluginInfoStore::pluginCount):
2296         (WebCore::PluginInfoStore::supportsMIMEType):
2297         (PluginInfoStore::pluginNameForMIMEType):
2298         * plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
2299         * plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
2300         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
2301         (WebCore::PluginInfoStore::pluginCount):
2302         (WebCore::PluginInfoStore::pluginNameForMIMEType):
2303         (WebCore::PluginInfoStore::supportsMIMEType):
2304         (WebCore::refreshPlugins):
2305         * plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
2306         * plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
2307         (WebCore::PluginPackageHash::hash):
2308         (WebCore::PluginPackageHash::equal):
2309         (WTF::):
2310         * plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
2311         (WebCore::PluginView::plugin):
2312         * plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
2313         (pluginViewForInstance):
2314         (NPN_UserAgent):
2315         * plugins/win/PlugInInfoStoreWin.cpp: Removed.
2316         * plugins/win/PluginDatabaseWin.cpp:
2317         (WebCore::PluginDatabase::installedPlugins):
2318         (WebCore::PluginDatabase::addExtraPluginPath):
2319         (WebCore::PluginDatabase::refresh):
2320         (WebCore::PluginDatabase::plugins):
2321         (WebCore::addPluginsFromRegistry):
2322         (WebCore::PluginDatabase::getPluginsInPaths):
2323         (WebCore::PluginDatabase::defaultPluginPaths):
2324         (WebCore::PluginDatabase::isMIMETypeRegistered):
2325         (WebCore::PluginDatabase::pluginForMIMEType):
2326         (WebCore::PluginDatabase::MIMETypeForExtension):
2327         (WebCore::PluginDatabase::findPlugin):
2328         (WebCore::PluginDatabase::createPluginView):
2329         * plugins/win/PluginDatabaseWin.h: Removed.
2330         * plugins/win/PluginPackageWin.cpp:
2331         (WebCore::PluginPackage::~PluginPackage):
2332         (WebCore::PluginPackage::freeLibrarySoon):
2333         (WebCore::PluginPackage::freeLibraryTimerFired):
2334         (WebCore::PluginPackage::PluginPackage):
2335         (WebCore::PluginPackage::compareFileVersion):
2336         (WebCore::PluginPackage::storeFileVersion):
2337         (WebCore::PluginPackage::isPluginBlacklisted):
2338         (WebCore::PluginPackage::fetchInfo):
2339         (WebCore::PluginPackage::load):
2340         (WebCore::PluginPackage::unload):
2341         (WebCore::PluginPackage::unloadWithoutShutdown):
2342         (WebCore::PluginPackage::createPackage):
2343         (WebCore::PluginPackage::hash):
2344         (WebCore::PluginPackage::equal):
2345         * plugins/win/PluginPackageWin.h: Removed.
2346         * plugins/win/PluginViewWin.cpp:
2347         (WebCore::PluginRequest::PluginRequest):
2348         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
2349         (WebCore::registerPluginView):
2350         (WebCore::PluginViewWndProc):
2351         (WebCore::PluginView::popPopupsStateTimerFired):
2352         (WebCore::PluginView::wndProc):
2353         (WebCore::PluginView::updateWindow):
2354         (WebCore::PluginView::windowClipRect):
2355         (WebCore::PluginView::setFrameGeometry):
2356         (WebCore::PluginView::geometryChanged):
2357         (WebCore::PluginView::setFocus):
2358         (WebCore::PluginView::show):
2359         (WebCore::PluginView::hide):
2360         (WebCore::PluginView::paintMissingPluginIcon):
2361         (WebCore::PluginView::dispatchNPEvent):
2362         (WebCore::PluginView::paint):
2363         (WebCore::PluginView::handleKeyboardEvent):
2364         (WebCore::PluginView::handleMouseEvent):
2365         (WebCore::PluginView::handleEvent):
2366         (WebCore::PluginView::setParent):
2367         (WebCore::PluginView::attachToWindow):
2368         (WebCore::PluginView::detachFromWindow):
2369         (WebCore::PluginView::setNPWindowRect):
2370         (WebCore::PluginView::start):
2371         (WebCore::PluginView::stop):
2372         (WebCore::PluginView::setCurrentPluginView):
2373         (WebCore::PluginView::currentPluginView):
2374         (WebCore::PluginView::performRequest):
2375         (WebCore::PluginView::requestTimerFired):
2376         (WebCore::PluginView::scheduleRequest):
2377         (WebCore::PluginView::load):
2378         (WebCore::PluginView::getURLNotify):
2379         (WebCore::PluginView::getURL):
2380         (WebCore::PluginView::handlePost):
2381         (WebCore::PluginView::postURLNotify):
2382         (WebCore::PluginView::postURL):
2383         (WebCore::PluginView::newStream):
2384         (WebCore::PluginView::write):
2385         (WebCore::PluginView::destroyStream):
2386         (WebCore::PluginView::userAgent):
2387         (WebCore::PluginView::status):
2388         (WebCore::PluginView::getValue):
2389         (WebCore::PluginView::setValue):
2390         (WebCore::PluginView::invalidateTimerFired):
2391         (WebCore::PluginView::invalidateRect):
2392         (WebCore::PluginView::invalidateRegion):
2393         (WebCore::PluginView::forceRedraw):
2394         (WebCore::PluginView::pushPopupsEnabledState):
2395         (WebCore::PluginView::popPopupsEnabledState):
2396         (WebCore::PluginView::arePopupsAllowed):
2397         (WebCore::PluginView::bindingInstance):
2398         (WebCore::PluginView::~PluginView):
2399         (WebCore::PluginView::disconnectStream):
2400         (WebCore::PluginView::determineQuirks):
2401         (WebCore::PluginView::setParameters):
2402         (WebCore::PluginView::PluginView):
2403         (WebCore::PluginView::init):
2404         (WebCore::PluginView::didReceiveResponse):
2405         (WebCore::PluginView::didReceiveData):
2406         (WebCore::PluginView::didFinishLoading):
2407         (WebCore::PluginView::didFail):
2408         (WebCore::PluginView::setCallingPlugin):
2409         (WebCore::PluginView::isCallingPlugin):
2410         * plugins/win/PluginViewWin.h: Removed.
2411         * plugins/win/npapi.cpp: Removed.
2412
2413 2008-02-05  Alexey Proskuryakov  <ap@webkit.org>
2414
2415         Reviewed by Darin.
2416
2417         http://bugs.webkit.org/show_bug.cgi?id=17158
2418         Setting innerHTML in a detached XHTML element doesn't use the right namespace
2419
2420         Test: fast/dom/innerHTML-detached-element.xhtml
2421
2422         * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
2423         into account.
2424
2425 2008-02-05  Antti Koivisto  <antti@apple.com>
2426
2427         Reviewed by Geoff.
2428         
2429         Fix <rdar://problem/5698200>
2430         eBay photo uploading hangs and causes slow script warning to pop up
2431         
2432         In a case like this
2433         
2434             var f = window.parent.parentFunction;
2435             document.domain = document.domain; // this makes window.parent inaccessible
2436             f();
2437         
2438         Firefox allows parentFunction to access parents properties. Match this behavior.
2439         
2440         In a domain security check against the dynamic global object fails for the specific reason that one of 
2441         the frames has written to the document.domain property and another has not (but they match otherwise), 
2442         then recheck against the lexical global object.
2443
2444         Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
2445               http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
2446
2447         * bindings/js/kjs_window.cpp:
2448         (KJS::Window::allowsAccessFrom):
2449         (KJS::Window::printErrorMessage):
2450         * bindings/js/kjs_window.h:
2451         * loader/FrameLoader.cpp:
2452         (WebCore::FrameLoader::shouldAllowNavigation):
2453         * platform/SecurityOrigin.cpp:
2454         (WebCore::SecurityOrigin::canAccess):
2455         * platform/SecurityOrigin.h:
2456         (WebCore::SecurityOrigin::):
2457
2458 2008-02-05  Adam Roben  <aroben@apple.com>
2459
2460         Remove an unused member from Document
2461
2462         Reviewed by Mitz.
2463
2464         * dom/Document.cpp:
2465         (WebCore::Document::recalcStyleSelector): There's no need to take
2466         m_printSheet into account anymore as it's never anything but the null
2467         string.
2468         * dom/Document.h: Removed m_printSheet and methods relating to it.
2469
2470 2008-02-05  Dan Bernstein  <mitz@apple.com>
2471
2472         Reviewed by Darin Adler.
2473
2474         - WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts
2475
2476         * WebCore.base.exp: Added Editor::setBaseWritingDirection() and
2477         Frame::baseWritingDirectionForSelectionStart().
2478         * page/mac/WebCoreFrameBridge.h: Removed
2479         -baseWritingDirectionForSelectionStart.
2480         * page/mac/WebCoreFrameBridge.mm: Ditto.
2481
2482 2008-02-05  Mark Rowe  <mrowe@apple.com>
2483
2484         Reviewed by Oliver Hunt.
2485
2486         Update versioning to support the mysterious future.
2487
2488         * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.
2489
2490 2008-02-05  Mark Rowe  <mrowe@apple.com>
2491
2492         Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.
2493
2494         * editing/SmartReplaceICU.cpp:
2495         (WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
2496         (WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.
2497
2498 2008-02-05  Mark Rowe  <mrowe@apple.com>
2499
2500         Rubber-stamped by Oliver Hunt.
2501
2502         30,000!
2503
2504         * ChangeLog: Point out revision 30,000.
2505
2506 2008-02-04  Mark Rowe  <mrowe@apple.com>
2507
2508         Unreviewed Gtk build fix.
2509
2510         wchar_t is only convertible to UChar on Windows.  Use WebCore's String class
2511         to get the UChars out of a C string in a portable fashion.
2512
2513         * editing/SmartReplaceICU.cpp:
2514         (WebCore::getSmartSet):
2515
2516 2008-02-04  Tony Chang  <idealisms@gmail.com>
2517
2518         Reviewed by Darin Adler.
2519
2520         Port the CoreFoundation version of WebCore::isCharacterSmartReplaceExempt
2521         for other platforms by using ICU directly.
2522
2523         * GNUmakefile.am: Add SmartReplaceICU.cpp.
2524         * WebCore.pro: Ditto.
2525         * WebCoreSources.bkl: Ditto.
2526         * editing/SmartReplace.cpp: Don't use this empty implementation when ICU is available.
2527         * editing/SmartReplaceICU.cpp:
2528         (getSmartSet):
2529         (WebCore::isCharacterSmartReplaceExempt):
2530
2531 2008-02-04  Robert Sesek  <rsesek@bluestatic.org>
2532
2533         Reviewed by Darin Adler.
2534
2535         Fix http://bugs.webkit.org/show_bug.cgi?id=17042
2536         forms without action attributes submit to the <base> href instead of the originating page
2537
2538         Test: fast/forms/missing-action.html
2539
2540         * html/HTMLFormElement.cpp:
2541         (WebCore::HTMLFormElement::submit): Submit to origin if there is no action
2542
2543 2008-02-04  Mark Rowe  <mrowe@apple.com>
2544
2545         Reviewed by Tim Hatcher.
2546
2547         Gtk build fix.  Use std::numeric_limits in place of ULLONG_MAX as
2548         some Linux machines do not have ULLONG_MAX.
2549
2550         OriginUsageRecord::unknownDiskUsage becomes a static function to avoid
2551         the global initialiser which would otherwise be generated.
2552
2553         * storage/OriginUsageRecord.cpp:
2554         (WebCore::OriginUsageRecord::unknownDiskUsage):
2555         (WebCore::OriginUsageRecord::addDatabase):
2556         (WebCore::OriginUsageRecord::removeDatabase):
2557         (WebCore::OriginUsageRecord::markDatabase):
2558         (WebCore::OriginUsageRecord::diskUsage):
2559         * storage/OriginUsageRecord.h:
2560
2561 2008-02-04  Mark Rowe  <mrowe@apple.com>
2562
2563         Speculative Gtk build fix.
2564
2565         * storage/OriginUsageRecord.cpp:
2566
2567 2008-02-04  Brady Eidson  <beidson@apple.com>
2568
2569         Attempt to fix build of all non-Mac platforms
2570
2571         * GNUmakefile.am:
2572         * WebCore.pro:
2573         * WebCore.vcproj/WebCore.vcproj:
2574         * WebCoreSources.bkl:
2575
2576 2008-02-04  Brady Eidson  <beidson@apple.com>
2577
2578         Reviewed by Darin
2579
2580         Fix for <rdar://problem/5628468> - Quotas need to be implemented per-origin, and not per-database
2581
2582         To accomplish this, we need to track the sizes of all databases in an origin to constantly keep an up to date
2583         count of the origin's total disk usage.  I've introduced the OriginQuotaManager and OriginUsageRecord classes
2584         to accomplish this.
2585
2586         Whenever a transaction is known to mutate the size of a database (tracked by the DatabaseAuthorizer), it marks
2587         that database as unknown in the OriginQuotaManager.  When a transaction later comes along to ask the 
2588         OriginQuotaManager the usage for that origin, it stat's all of the unknown databases in the origin and returns
2589         the result.
2590
2591         Since the OriginQuotaManager is interesting from both the main thread and a DatabaseThread, all accessors it 
2592         provides require it to be locked first.  ASSERTs help guarantee this is always the case.
2593
2594         Layout test will involve adding functionality to DRT on multiple platforms and will be coming up shortly
2595
2596         * WebCore.xcodeproj/project.pbxproj:
2597
2598         * platform/SecurityOrigin.h: Changed to be ThreadSafeShared instead of RefCounted
2599
2600         * storage/Database.cpp:
2601         (WebCore::Database::databaseSize): Return the current filesize of this database on disk
2602         (WebCore::Database::maximumSize): Added - calculates maximum size of this database based on quota and usage
2603         * storage/Database.h: Add databaseSize() accessor, and get rid of unused declared methods that *were* going 
2604           to be the solution for this bug.
2605
2606         * storage/DatabaseTracker.cpp:
2607         (WebCore::DatabaseTracker::originQuotaManager): Accessor to the OriginQuotaManager which is lazily created
2608         (WebCore::DatabaseTracker::canEstablishDatabase): Fetch the usage for this database slightly earlier, which
2609           will ensure that the OriginQuotaManager is primed to track this origin
2610         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto
2611         (WebCore::DatabaseTracker::populateOrigins): Create the OriginQuotaManager here.
2612         (WebCore::DatabaseTracker::usageForOrigin): Use the OriginQuotaManager instead of looping through each database
2613           in the origin
2614         (WebCore::DatabaseTracker::deleteOrigin): Remove this origin from the OriginQuotaManager as it is no longer 
2615           interesting
2616         (WebCore::DatabaseTracker::deleteDatabase): Remove this database from the OriginQuotaManager as it is no longer
2617           interesting
2618         * storage/DatabaseTracker.h:
2619
2620         * storage/OriginQuotaManager.cpp: Added.
2621         (WebCore::OriginQuotaManager::OriginQuotaManager):
2622         (WebCore::OriginQuotaManager::lock):
2623         (WebCore::OriginQuotaManager::unlock):
2624         (WebCore::OriginQuotaManager::trackOrigin): Add an origin to be tracked.  Useful for when the very first database 
2625           in a new origin is still in the process of being created
2626         (WebCore::OriginQuotaManager::tracksOrigin):
2627         (WebCore::OriginQuotaManager::addDatabase):
2628         (WebCore::OriginQuotaManager::removeDatabase):
2629         (WebCore::OriginQuotaManager::removeOrigin): Removes all records in a certain origin from being tracked
2630         (WebCore::OriginQuotaManager::markDatabase): Mark a specific database as having an unknown size - called when the
2631           DatabaseAuthorizer in a SQLTransaction knows the file size might change.
2632         (WebCore::OriginQuotaManager::diskUsage): Returns the disk usage for the given origin
2633         * storage/OriginQuotaManager.h: Added.
2634
2635         * storage/OriginUsageRecord.cpp: Added.
2636         (WebCore::OriginUsageRecord::OriginUsageRecord):
2637         (WebCore::OriginUsageRecord::addDatabase): Adds an entry for the database in this origin's record
2638         (WebCore::OriginUsageRecord::removeDatabase): Removes that entry
2639         (WebCore::OriginUsageRecord::markDatabase): Marks the database as of unknown size
2640         (WebCore::OriginUsageRecord::diskUsage): Returns the cached disk usage value, or recalculates it if any databases
2641           are marked
2642         * storage/OriginUsageRecord.h: Added.
2643
2644         * storage/SQLTransaction.cpp:
2645         (WebCore::SQLTransaction::openTransactionAndPreflight): Use Database::maximumSize() instead of attributing the
2646           entire quota to each database.
2647         (WebCore::SQLTransaction::runStatements): Use Database::maximumSize() instead of attributing the entire quota
2648           to each database.
2649         (WebCore::SQLTransaction::runCurrentStatement): Mark this databases's size as unknown in the 
2650           OriginQuotaManager if this statement will change the size of the database
2651         * storage/SQLTransaction.h:
2652
2653 2008-02-04   David Harrison  <harrison@apple.com>
2654
2655         Reviewed by Darin Adler.
2656
2657         <rdar://problem/5607381> CrashTracer: [REGRESSION] 1748 crashes in Safari at com.apple.WebCore: WebCore::Image::width const + 24
2658
2659         Use an empty image when the local image file could not be loaded.
2660
2661         No test case because it would require forcing tiff load failure.
2662         
2663         * editing/DeleteButtonController.cpp:
2664         (WebCore::DeleteButtonController::createDeletionUI):
2665         Do not present the deletion UI in the (odd) event that the delete button could not be loaded.
2666         
2667         * platform/graphics/mac/ImageMac.mm:
2668         (WebCore::Image::loadPlatformResource):
2669         Return an empty image instead of 0 if the load fails.
2670
2671 2008-02-04  Darin Adler  <darin@apple.com>
2672
2673         * dom/Document.cpp:
2674         (WebCore::Document::completeURL): Fixed misleading comment.
2675
2676 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
2677
2678         Reviewed by Darin.
2679
2680         Blacklist Silverlight versions older than min required, not newer. 
2681
2682         * plugins/win/PluginPackageWin.cpp:
2683         (WebCore::PluginPackageWin::isPluginBlacklisted):
2684
2685 2008-02-04  David Hyatt  <hyatt@apple.com>
2686
2687         Fix for bug 16751, misparsing of html*.test in CSS.
2688
2689         Reviewed by darin
2690
2691         Added fast/css/simple-selector-chain-parsing.html
2692
2693         * css/CSSGrammar.y:
2694
2695 2008-02-04  Darin Adler  <darin@apple.com>
2696
2697         Suggested by Geoff and Maciej.
2698
2699         * bindings/js/JSCustomSQLTransactionCallback.cpp: Reworded a misleading
2700         comment to be correct.
2701
2702 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
2703
2704         Reviewed by Steve, Anders.
2705
2706         <rdar://problem/5211187> QuickTime and Flash plug-ins draw outside of
2707         content area when inside an iframe or div with overflow when playing a
2708         movie and scrolling the iframe/div area
2709
2710         Clip the update region to the zero rect when scrolling. Don't do this
2711         for Java, because it results in repaint problems. 
2712
2713         * plugins/PluginQuirkSet.h: Added the DontClipToZeroRectWhenScrolling
2714         quirk
2715         (WebCore::):
2716         * plugins/win/PluginViewWin.cpp:
2717         (WebCore::PluginViewWin::updateWindow): Readded the old behavior of
2718         clipping to the zero rect when updating the window during a scroll.
2719         Added plug-in quirk to ignore this behavior for Java. Swapped order of
2720         the SetWindowRgn() and MoveWindow() calls to prevent Java from painting
2721         outside of its container during a scroll.
2722         (WebCore::PluginViewWin::determineQuirks): If this is Java, add the
2723         DontClipToZeroRectWhenScrolling quirk.
2724
2725 2008-02-04  Timothy Hatcher  <timothy@apple.com>
2726
2727         Reviewed by Mark Rowe.
2728
2729         <rdar://problem/5722972> Leopard needs to statically link SQLite
2730
2731         * Configurations/Base.xcconfig: Always have a header search path for WebCoreSQLite3.
2732         * Configurations/DebugRelease.xcconfig: Ditto.
2733         * Configurations/WebCore.xcconfig: Always link against WebCoreSQLite3.
2734
2735 2008-02-04  Adam Roben  <aroben@apple.com>
2736
2737         Windows build fix
2738
2739         * bindings/scripts/CodeGeneratorCOM.pm: Touched to force a rebuild of
2740         the COM bindings.
2741
2742 2008-02-04   David Harrison  <harrison@apple.com>
2743
2744         Reviewed by Tim Hatcher.
2745
2746         - fix <rdar://problem/5715481> REGRESSION (r26499): JavaScript document.lastModified is not supported
2747
2748         Re-add attribute inadvertantly lost by r26499.
2749
2750         Test: fast/js/lastModified.html: Added.
2751
2752         * dom/Document.idl:
2753         Add lastModified.
2754
2755 2008-02-04  Darin Adler  <darin@apple.com>
2756
2757         Reviewed by Geoff.
2758
2759         - fix <rdar://problem/5713621> Threading issue when destroying database transaction callback
2760
2761         Do main-thread-only stuff on the main thread.
2762
2763         Not clear how to make a regression test for this.
2764
2765         * bindings/js/JSCustomSQLTransactionCallback.cpp:
2766         (WebCore::JSCustomSQLTransactionCallback::Data::Data): Added.
2767         (WebCore::JSCustomSQLTransactionCallback::Data::callback): Added.
2768         (WebCore::JSCustomSQLTransactionCallback::Data::frame): Added.
2769         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Put data into a
2770         separate Data object; we'll destroy it on the main thread.
2771         (WebCore::JSCustomSQLTransactionCallback::deleteData): Added.
2772         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback): Call the
2773         deleteData function on the main thread.
2774         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Updated to get at fields through the
2775         m_data object.
2776         * bindings/js/JSCustomSQLTransactionCallback.h: Declare deleteData, Data, and m_data rather
2777         than m_callback and m_frame.
2778
2779 2008-02-04  Adam Roben  <aroben@apple.com>
2780
2781         Fix the search field if the inpsected Document has overridden
2782         Document.evaluate or Document.querySelectorAll
2783
2784         Reviewed by Darin.
2785
2786         * manual-tests/inspector-document-methods-override.html: Added.
2787         * page/InspectorController.cpp:
2788         (WebCore::InspectorController::didCommitLoad): Reworded a comment to
2789         force WebCore.vcproj to build.
2790         * page/inspector/inspector.js: Call
2791         Document.prototype.{evaluate,querySelectorAll}.call instead of calling
2792         the functions directly on the inspected Document. This ensures we are
2793         calling the version of these functions we intended to.
2794
2795 2008-02-04  Darin Adler  <darin@apple.com>
2796
2797         Reviewed by Tim Hatcher.
2798
2799         - possible fix for <rdar://problem/5714030> Crash in Database::deliverAllPendingCallbacks()
2800           reloading a page quickly
2801
2802         I don't fully understand the cause of the crash, but I think this might
2803         be a helpful change.
2804
2805         * platform/sql/SQLiteTransaction.cpp:
2806         (WebCore::SQLiteTransaction::commit): If the commit fails, don't leave this
2807         transaction and database both marked as "still in progress". As far as I can
2808         tell this does no good, and also seems to do harm.
2809         (WebCore::SQLiteTransaction::rollback): Ditto.
2810
2811         * storage/Database.cpp:
2812         (WebCore::Database::performTransactionStep): Add some assertions to
2813         detect databases stuck in the "transaction in progress" state.
2814         * storage/SQLTransaction.cpp:
2815         (WebCore::SQLTransaction::openTransactionAndPreflight): Ditto.
2816         (WebCore::SQLTransaction::postflightAndCommit): Ditto.
2817         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto.
2818
2819 2008-02-04  Darin Adler  <darin@apple.com>
2820
2821         Reviewed by Geoff.
2822
2823         - fix <rdar://problem/5715692> REGRESSION (r28570): JavaScript window.scrollTo()
2824           calls no longer accept 'undefined' values
2825
2826         By default, we should accept non-numeric parameters and non-integral numbers for
2827         parameters that expect integers, without throwing exceptions.
2828
2829         While creating the test for this, I ran into a couple minor bugs with the
2830         functions involved, and this patch fixes those too.
2831
2832         Test: fast/dom/non-numeric-values-numeric-parameters.html
2833
2834         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2835         (WebCore::JSHTMLOptionsCollection::add): Added. This function has unusual behavior
2836         when passed non-integral values for its second parameter, so it needs to be written
2837         by hand. I think that [Custom] is better here than inventing a new keyword.
2838
2839         * bindings/scripts/CodeGeneratorJS.pm: Changed default for "long" and "unsigned long"
2840         to ignore errors rather than failing due to type differences. Also changed a couple
2841         functions to use hashes.
2842
2843         * css/CSSStyleSheet.h:
2844         (WebCore::CSSStyleSheet::removeRule): Remove overload of removeRule without a second
2845         parameters. While we do allow this from JavaScript, it's not a true optional parameter,
2846         but rather just a case of "you can omit parameters and they are treated as undefined"
2847         combined with "undefined turns into 0 when passed to a function that takes an integer".
2848         * css/CSSStyleSheet.idl: Removed [Optional] on the index parameter for removeRule.
2849         This is not truly an optional parameter.
2850
2851         * dom/ProgressEvent.cpp:
2852         (WebCore::ProgressEvent::initProgressEvent): Updated this function to match other
2853         DOM event init functions -- important to do nothing if this is called on the an
2854         already-dispatched event and we need to respect the bubble and cancelable arguments.
2855         Also removed initProgressEventNS. We don't support namespaced events, and if we add
2856         support, it should be across all event classes, not just ProgressEvent.
2857         * dom/ProgressEvent.h: Removed initProgressEventNS.
2858         * dom/ProgressEvent.idl: Ditto.
2859
2860         * dom/Range.cpp:
2861         (WebCore::Range::createContextualFragment): Added a check for 0. This can happen
2862         if the passed-in start container is a node that's not an HTML element and also
2863         does not have a parent.
2864
2865         * html/HTMLOptionsCollection.idl: Added the [Custom] attribute to add, since the
2866         rules for processing its parameters are unusual.
2867
2868         * page/DOMSelection.cpp: Removed the version of setPosition that has only
2869         one parameter. The offset is not really optional.
2870         * page/DOMSelection.h: Ditto.
2871         * page/DOMSelection.idl: Removed the [Optional] keyword for the second parameter of
2872         setPosition. It's not a true optional parameter (see discussion of removeRule above).
2873
2874         * page/DOMWindow.cpp:
2875         (WebCore::DOMWindow::adjustWindowRect): Simplified logic for constraining the X
2876         and Y coordinates, in a way that makes them work even when the window coordinates
2877         are infinite. Also strengthened the assertion.
2878
2879 2008-02-04  Alp Toker  <alp@atoker.com>
2880
2881         Rubber-stamped by Mark Rowe.
2882
2883         Remove all trailing whitespace in the GTK+ port and related
2884         components.
2885
2886         * GNUmakefile.am:
2887         * page/gtk/DragControllerGtk.cpp:
2888         (WebCore::DragController::dragOperation):
2889         (WebCore::DragController::maxDragImageSize):
2890         * page/gtk/EventHandlerGtk.cpp:
2891         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
2892         (WebCore::EventHandler::createDraggingClipboard):
2893         * page/gtk/FrameGtk.cpp:
2894         (WebCore::Frame::dragImageForSelection):
2895         * platform/graphics/cairo/AffineTransformCairo.cpp:
2896         (WebCore::AffineTransform::mapRect):
2897         (WebCore::AffineTransform::isIdentity):
2898         (WebCore::AffineTransform::operator== ):
2899         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2900         (WebCore::GraphicsContext::drawLine):
2901         * platform/graphics/cairo/ImageBufferCairo.cpp:
2902         * platform/graphics/cairo/ImageCairo.cpp:
2903         * platform/graphics/cairo/ImageSourceCairo.cpp:
2904         (WebCore::createDecoder):
2905         * platform/graphics/gtk/FontCacheGtk.cpp:
2906         * platform/graphics/gtk/FontGtk.cpp:
2907         * platform/graphics/gtk/FontPlatformData.h:
2908         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2909         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
2910         * platform/graphics/gtk/IconGtk.cpp:
2911         * platform/graphics/gtk/ImageGtk.cpp:
2912         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
2913         * platform/gtk/ClipboardGtk.h:
2914         * platform/gtk/ContextMenuItemGtk.cpp:
2915         (WebCore::ContextMenuItem::createNativeMenuItem):
2916         * platform/gtk/CursorGtk.cpp:
2917         * platform/gtk/DragDataGtk.cpp:
2918         * platform/gtk/DragImageGtk.cpp:
2919         (WebCore::createDragImageIconForCachedImage):
2920         * platform/gtk/FileChooserGtk.cpp:
2921         (WebCore::stringByAdoptingFileSystemRepresentation):
2922         * platform/gtk/FileSystemGtk.cpp:
2923         (WebCore::fileExists):
2924         (WebCore::deleteFile):
2925         (WebCore::deleteEmptyDirectory):
2926         * platform/gtk/KeyEventGtk.cpp:
2927         * platform/gtk/KeyboardCodes.h:
2928         * platform/gtk/LocalizedStringsGtk.cpp:
2929         (WebCore::inputElementAltText):
2930         (WebCore::resetButtonDefaultLabel):
2931         (WebCore::fileButtonChooseFileLabel):
2932         (WebCore::fileButtonNoFileSelectedLabel):
2933         (WebCore::contextMenuItemTagOpenImageInNewWindow):
2934         * platform/gtk/MIMETypeRegistryGtk.cpp:
2935         (WebCore::):
2936         * platform/gtk/MouseEventGtk.cpp:
2937         * platform/gtk/PasteboardGtk.cpp:
2938         (WebCore::PasteboardSelectionData::markup):
2939         (WebCore::Pasteboard::writeSelection):
2940         * platform/gtk/PasteboardHelper.h:
2941         * platform/gtk/PlatformScreenGtk.cpp:
2942         (WebCore::screenDepth):
2943         (WebCore::screenIsMonochrome):
2944         (WebCore::screenRect):
2945         (WebCore::screenAvailableRect):
2946         * platform/gtk/PlatformScrollBar.h:
2947         * platform/gtk/PlatformScrollBarGtk.cpp:
2948         (PlatformScrollbar::PlatformScrollbar):
2949         (PlatformScrollbar::updateThumbPosition):
2950         * platform/gtk/PopupMenuGtk.cpp:
2951         (WebCore::PopupMenu::updateFromElement):
2952         * platform/gtk/RenderThemeGtk.h:
2953         * platform/gtk/ScrollViewGtk.cpp:
2954         (WebCore::ScrollView::scrollBy):
2955         (WebCore::ScrollView::addChild):
2956         (WebCore::ScrollView::updateScrollbars):
2957         (WebCore::ScrollView::windowToContents):
2958         (WebCore::ScrollView::contentsToWindow):
2959         (WebCore::ScrollView::scrollbarUnderMouse):
2960         * platform/gtk/SearchPopupMenuGtk.cpp:
2961         * platform/gtk/SharedTimerGtk.cpp:
2962         * platform/gtk/SystemTimeLinux.cpp:
2963         (WebCore::currentTime):
2964         * platform/gtk/TemporaryLinkStubs.cpp:
2965         (PlugInInfoStore::pluginNameForMIMEType):
2966         * platform/gtk/ThreadingGtk.cpp:
2967         (WebCore::establishIdentifierForThread):
2968         (WebCore::threadForIdentifier):
2969         (WebCore::clearThreadForIdentifier):
2970         (WebCore::ThreadCondition::ThreadCondition):
2971         * platform/gtk/WheelEventGtk.cpp:
2972         * platform/gtk/WidgetGtk.cpp:
2973         * platform/network/curl/ResourceHandleCurl.cpp:
2974         * platform/network/curl/ResourceHandleManager.cpp:
2975         (WebCore::ResourceHandleManager::setupPOST):
2976         * platform/network/curl/ResourceHandleManager.h:
2977         * platform/network/curl/ResourceRequest.h:
2978         (WebCore::ResourceRequest::ResourceRequest):
2979         * platform/network/curl/ResourceResponse.h:
2980
2981 2008-02-03  Christian Dywan  <christian@imendio.com>
2982
2983         Reviewed by Alp Toker.
2984
2985         http://bugs.webkit.org/show_bug.cgi?id=17046
2986         [GTK] Context menu fixes and customisation suport
2987
2988         Provide standard GTK+ context menu items where appropriate.
2989
2990         Note that this change makes direct use of WebKit from WebCore which is
2991         against WebKit/GTK+ guidelines. The ContextMenu abstraction should be
2992         fixed at some point.
2993
2994         * page/ContextMenuController.cpp:
2995         (WebCore::ContextMenuController::contextMenuItemSelected):
2996         * platform/ContextMenu.cpp:
2997         (WebCore::createAndAppendInputMethodsSubMenu):
2998         (WebCore::):
2999         (WebCore::insertControlCharacter):
3000         (WebCore::createAndAppendUnicodeSubMenu):
3001         (WebCore::ContextMenu::populate):
3002         (ContextMenu::checkOrEnableIfNeeded):
3003         * platform/ContextMenuItem.h:
3004         (WebCore::):
3005         * platform/LocalizedStrings.h:
3006         * platform/gtk/ContextMenuItemGtk.cpp:
3007         (WebCore::gtkStockIDFromContextMenuAction):
3008         * platform/gtk/LocalizedStringsGtk.cpp:
3009         (WebCore::gtkStockLabel):
3010         (WebCore::contextMenuItemTagCopy):
3011         (WebCore::contextMenuItemTagDelete):
3012         (WebCore::contextMenuItemTagSelectAll):
3013         (WebCore::contextMenuItemTagUnicode):
3014         (WebCore::contextMenuItemTagInputMethods):
3015         (WebCore::contextMenuItemTagGoBack):
3016         (WebCore::contextMenuItemTagGoForward):
3017         (WebCore::contextMenuItemTagStop):
3018         (WebCore::contextMenuItemTagCut):
3019         (WebCore::contextMenuItemTagPaste):
3020         (WebCore::contextMenuItemTagBold):
3021         (WebCore::contextMenuItemTagItalic):
3022         (WebCore::contextMenuItemTagUnderline):
3023
3024 2008-02-03  Oliver Hunt  <oliver@apple.com>
3025
3026         Reviewed by Maciej.
3027
3028         Bug 17169: Support transform on Canvas
3029
3030         Nice and simple patch as the cross-platform code to apply
3031         a transform was already there.
3032
3033         Tests: fast/canvas/canvas-transform-identity.html
3034                fast/canvas/canvas-transform-infinity.html
3035                fast/canvas/canvas-transform-multiply.html
3036                fast/canvas/canvas-transform-nan.html
3037                fast/canvas/canvas-transform-skewed.html
3038
3039         * html/CanvasRenderingContext2D.cpp:
3040         (WebCore::CanvasRenderingContext2D::transform):
3041         * html/CanvasRenderingContext2D.h:
3042         * html/CanvasRenderingContext2D.idl:
3043
3044 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
3045
3046         Reviewed by Oliver.
3047
3048         Fix mistake in SVGImageElement, breaking "Dock" example of carto.net
3049         It was comparing against the wrong attribute names in svgAttributeChanged().
3050
3051         Added testcase: svg/custom/js-update-image.svg
3052
3053         * svg/SVGImageElement.cpp:
3054         (WebCore::SVGImageElement::svgAttributeChanged):
3055
3056 2008-02-03  Eric Seidel  <eric@webkit.org>
3057
3058         Reviewed by darin.
3059
3060         Acid3 expects textNode.localName === null
3061         http://bugs.webkit.org/show_bug.cgi?id=17060
3062
3063         Test: fast/dom/Node/initial-values.html
3064
3065         * dom/Comment.cpp: remove localName implementation
3066         * dom/Comment.h:
3067         * dom/Node.cpp: return nullAtom instead of emptyAtom
3068         * dom/Text.cpp: remove localName implementation
3069         * dom/Text.h:
3070
3071 2008-02-03  Eric Seidel  <eric@webkit.org>
3072
3073         Reviewed by darin.
3074
3075         Make createElementNS and createAttributeNS follow the (vague) DOM Core 2 spec
3076         by throwing exceptions for more types of invalid qualified names.
3077         http://bugs.webkit.org/show_bug.cgi?id=16833
3078
3079         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
3080                fast/dom/Document/createElementNS-namespace-err.html
3081
3082         * dom/Document.cpp:
3083         (WebCore::Document::createElement):
3084         (WebCore::hasNamespaceError):
3085         (WebCore::Document::createElementNS):
3086         (WebCore::Document::createAttributeNS):
3087         * dom/Document.idl:
3088
3089 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
3090
3091         Reviewed by Eric.
3092
3093         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15394
3094
3095         Dramatically improve dynamic update performance in DOM / SVG DOM.
3096
3097         The notifyAttributeChange() sledgehammer is gone now. It was implemented on quite a lot of
3098         SVG*Element classes and blindly reacted on any property change caused by DOM / SVG DOM
3099         by rebuilding style/renderer etc. without actually checking what changed. SVG used a hack
3100         for years that attributeChanged() called notifyAttributeChange() - which results in poor
3101         scripting performance and/or dynamic creation/modification of elements using SVG DOM.
3102
3103         Properly implement childrenChanged / attributeChanged in SVG with some derivation from the HTML code.
3104         Our SVG* element classes implement "svgAttributeChanged(const QualifiedName&)" instead of
3105         "attributeChanged(Attribute*...)" to be able to unify DOM / SVG DOM updates. SVG DOM classes
3106         are aware of the attribute name they belong to. So when using "rectElement.transform.baseVal.getItem(0).setRotate(45)"
3107         SVG DOM updates the <rect> element by calling svgAttributeChanged(SVGNames::transformAttr) on the corresponding
3108         SVGRectElement. So we're now able to handle fast dynamic updates in a unified way - leading to less bugs.
3109
3110         HTML dynamic updates vs. SVG dynamic updates:
3111
3112         HTML:
3113             1) setAttribute("foo", "bar") -> attributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
3114             2) someObject.foo = "bar" -> HTML code maps to setAttribute calls, ends up taking the same route as 1)
3115             3) someObject.style.foo = "bar" -> setChanged -> recalcStyle (possible relayout)
3116
3117         SVG:
3118             1) setAttribute("foo", "bar") -> attributeChanged -> svgAttributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
3119             2) same, currently most functions are not yet converted to this new system! (most noticeable in SVGMarkerElement::setOrientToAngle)    
3120             3) same
3121             4) someRectElement.x.baseVal.value = 100 -> svgAttributeChanged -> setChanged/setNeedsLayout (special SVG DOM updating)
3122         
3123         The new SVG DOM updating concept 4) uses the same updating logic as 1) and 2), so we're actually modelling the HTML way.
3124         SVG handles calling setChanged/setNeedsLayout in svgAttributeChanged, unlike HTML which uses parseMappedAttribute for that.
3125
3126         Only updated all elements necessary to let us pass layout tests w/o regressions. Need to crawl through
3127         all SVG*Element classes and implement svgAttributeChanged / childrenChanged anywhere needed in a follow-up patch.
3128
3129         * bindings/js/JSSVGPODTypeWrapper.h:
3130         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
3131         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
3132         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
3133         (WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
3134         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
3135         * bindings/js/JSSVGPathSegListCustom.cpp:
3136         (WebCore::JSSVGPathSegList::clear):
3137         (WebCore::JSSVGPathSegList::initialize):
3138         (WebCore::JSSVGPathSegList::insertItemBefore):
3139         (WebCore::JSSVGPathSegList::replaceItem):
3140         (WebCore::JSSVGPathSegList::removeItem):
3141         (WebCore::JSSVGPathSegList::appendItem):
3142         * bindings/js/JSSVGPointListCustom.cpp:
3143         (WebCore::JSSVGPointList::clear):
3144         (WebCore::JSSVGPointList::initialize):
3145         (WebCore::JSSVGPointList::getItem):
3146         (WebCore::JSSVGPointList::insertItemBefore):
3147         (WebCore::JSSVGPointList::replaceItem):
3148         (WebCore::JSSVGPointList::removeItem):
3149         (WebCore::JSSVGPointList::appendItem):
3150         * bindings/js/JSSVGTransformListCustom.cpp:
3151         (WebCore::JSSVGTransformList::clear):
3152         (WebCore::JSSVGTransformList::initialize):
3153         (WebCore::JSSVGTransformList::getItem):
3154         (WebCore::JSSVGTransformList::insertItemBefore):
3155         (WebCore::JSSVGTransformList::replaceItem):
3156         (WebCore::JSSVGTransformList::removeItem):
3157         (WebCore::JSSVGTransformList::appendItem):
3158         * bindings/scripts/CodeGeneratorJS.pm:
3159         * rendering/RenderSVGGradientStop.cpp:
3160         (WebCore::RenderSVGGradientStop::setStyle):
3161         * rendering/RenderSVGGradientStop.h:
3162         * svg/SVGAElement.cpp:
3163         (WebCore::SVGAElement::defaultEventHandler):
3164         * svg/SVGAElement.h:
3165         * svg/SVGAngle.cpp:
3166         * svg/SVGAngle.h:
3167         (WebCore::SVGAngle::associatedAttributeName):
3168         * svg/SVGAnimatedTemplate.h:
3169         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
3170         (WebCore::SVGAnimatedTemplate::wrapperCache):
3171         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
3172         (WebCore::lookupOrCreateWrapper):
3173         * svg/SVGAnimationElement.cpp:
3174         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
3175         * svg/SVGAnimationElement.h:
3176         * svg/SVGCircleElement.cpp:
3177         (WebCore::SVGCircleElement::svgAttributeChanged):
3178         * svg/SVGCircleElement.h:
3179         * svg/SVGClipPathElement.cpp:
3180         (WebCore::SVGClipPathElement::svgAttributeChanged):
3181         (WebCore::SVGClipPathElement::childrenChanged):
3182         (WebCore::SVGClipPathElement::canvasResource):
3183         * svg/SVGClipPathElement.h:
3184         (WebCore::SVGClipPathElement::isValid):
3185         (WebCore::SVGClipPathElement::rendererIsNeeded):
3186         * svg/SVGComponentTransferFunctionElement.cpp:
3187         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
3188         * svg/SVGComponentTransferFunctionElement.h:
3189         * svg/SVGCursorElement.cpp:
3190         * svg/SVGElement.cpp:
3191         (WebCore::SVGElement::insertedIntoDocument):
3192         (WebCore::SVGElement::attributeChanged):
3193         * svg/SVGElement.h:
3194         (WebCore::SVGElement::svgAttributeChanged):
3195         * svg/SVGEllipseElement.cpp:
3196         (WebCore::SVGEllipseElement::svgAttributeChanged):
3197         * svg/SVGEllipseElement.h:
3198         * svg/SVGExternalResourcesRequired.cpp:
3199         (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
3200         * svg/SVGExternalResourcesRequired.h:
3201         * svg/SVGFEBlendElement.cpp:
3202         * svg/SVGFEColorMatrixElement.cpp:
3203         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
3204         * svg/SVGFEComponentTransferElement.cpp:
3205         * svg/SVGFECompositeElement.cpp:
3206         * svg/SVGFEDiffuseLightingElement.cpp:
3207         * svg/SVGFEDisplacementMapElement.cpp:
3208         * svg/SVGFEFloodElement.cpp:
3209         * svg/SVGFEGaussianBlurElement.cpp:
3210         * svg/SVGFEImageElement.cpp:
3211         * svg/SVGFELightElement.cpp:
3212         * svg/SVGFEMergeNodeElement.cpp:
3213         * svg/SVGFEOffsetElement.cpp:
3214         * svg/SVGFESpecularLightingElement.cpp:
3215         * svg/SVGFETileElement.cpp:
3216         * svg/SVGFETurbulenceElement.cpp:
3217         * svg/SVGFilterElement.cpp:
3218         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3219         * svg/SVGFitToViewBox.cpp:
3220         (WebCore::SVGFitToViewBox::isKnownAttribute):
3221         * svg/SVGFitToViewBox.h:
3222         * svg/SVGForeignObjectElement.cpp:
3223         * svg/SVGGElement.cpp:
3224         (WebCore::SVGGElement::svgAttributeChanged):
3225         (WebCore::SVGGElement::childrenChanged):
3226         * svg/SVGGElement.h:
3227         * svg/SVGGradientElement.cpp:
3228         (WebCore::SVGGradientElement::SVGGradientElement):
3229         (WebCore::SVGGradientElement::svgAttributeChanged):
3230         (WebCore::SVGGradientElement::childrenChanged):
3231         (WebCore::SVGGradientElement::buildStops):
3232         * svg/SVGGradientElement.h:
3233         * svg/SVGImageElement.cpp:
3234         (WebCore::SVGImageElement::parseMappedAttribute):
3235         (WebCore::SVGImageElement::svgAttributeChanged):
3236         * svg/SVGImageElement.h:
3237         * svg/SVGLangSpace.cpp:
3238         (WebCore::SVGLangSpace::isKnownAttribute):
3239         * svg/SVGLangSpace.h:
3240         * svg/SVGLengthList.cpp:
3241         (WebCore::SVGLengthList::SVGLengthList):
3242         * svg/SVGLengthList.h:
3243         * svg/SVGLineElement.cpp:
3244         (WebCore::SVGLineElement::svgAttributeChanged):
3245         * svg/SVGLineElement.h:
3246         * svg/SVGLinearGradientElement.cpp:
3247         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
3248         * svg/SVGLinearGradientElement.h:
3249         * svg/SVGList.h:
3250         (WebCore::SVGList::SVGList):
3251         (WebCore::SVGList::associatedAttributeName):
3252         (WebCore::SVGPODList::SVGPODList):
3253         * svg/SVGMarkerElement.cpp:
3254         (WebCore::SVGMarkerElement::svgAttributeChanged):
3255         (WebCore::SVGMarkerElement::childrenChanged):
3256         * svg/SVGMarkerElement.h:
3257         * svg/SVGMaskElement.cpp:
3258         (WebCore::SVGMaskElement::svgAttributeChanged):
3259         (WebCore::SVGMaskElement::childrenChanged):
3260         * svg/SVGMaskElement.h:
3261         * svg/SVGNumberList.cpp:
3262         (WebCore::SVGNumberList::SVGNumberList):
3263         * svg/SVGNumberList.h:
3264         * svg/SVGPathElement.cpp:
3265         (WebCore::SVGPathElement::svgAttributeChanged):
3266         (WebCore::SVGPathElement::pathSegList):
3267         * svg/SVGPathElement.h:
3268         * svg/SVGPathSeg.h:
3269         (WebCore::SVGPathSeg::associatedAttributeName):
3270         * svg/SVGPathSegList.cpp:
3271         (WebCore::SVGPathSegList::SVGPathSegList):
3272         * svg/SVGPathSegList.h:
3273         * svg/SVGPatternElement.cpp:
3274         (WebCore::SVGPatternElement::SVGPatternElement):
3275         (WebCore::SVGPatternElement::svgAttributeChanged):
3276         (WebCore::SVGPatternElement::childrenChanged):
3277         * svg/SVGPatternElement.h:
3278         * svg/SVGPointList.cpp:
3279         (WebCore::SVGPointList::SVGPointList):
3280         * svg/SVGPointList.h:
3281         * svg/SVGPolyElement.cpp:
3282         (WebCore::SVGPolyElement::SVGPolyElement):
3283         (WebCore::SVGPolyElement::points):
3284         (WebCore::SVGPolyElement::parseMappedAttribute):
3285         (WebCore::SVGPolyElement::svgAttributeChanged):
3286         * svg/SVGPolyElement.h:
3287         * svg/SVGPolygonElement.cpp:
3288         * svg/SVGPolygonElement.h:
3289         * svg/SVGPolylineElement.cpp:
3290         * svg/SVGPolylineElement.h:
3291         * svg/SVGPreserveAspectRatio.cpp:
3292         * svg/SVGPreserveAspectRatio.h:
3293         (WebCore::SVGPreserveAspectRatio::associatedAttributeName):
3294         * svg/SVGRadialGradientElement.cpp:
3295         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
3296         * svg/SVGRadialGradientElement.h:
3297         * svg/SVGRectElement.cpp:
3298         (WebCore::SVGRectElement::svgAttributeChanged):
3299         * svg/SVGRectElement.h:
3300         * svg/SVGSVGElement.cpp:
3301         (WebCore::SVGSVGElement::parseMappedAttribute):
3302         (WebCore::SVGSVGElement::svgAttributeChanged):
3303         * svg/SVGSVGElement.h:
3304         * svg/SVGStopElement.cpp:
3305         (WebCore::SVGStopElement::parseMappedAttribute):
3306         (WebCore::SVGStopElement::createRenderer):
3307         * svg/SVGStopElement.h:
3308         * svg/SVGStringList.cpp:
3309         (WebCore::SVGStringList::SVGStringList):
3310         * svg/SVGStringList.h:
3311         * svg/SVGStylable.cpp:
3312         * svg/SVGStylable.h:
3313         * svg/SVGStyledElement.cpp:
3314         (WebCore::SVGStyledElement::isKnownAttribute):
3315         (WebCore::SVGStyledElement::svgAttributeChanged):
3316         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
3317         (WebCore::SVGStyledElement::childrenChanged):
3318         * svg/SVGStyledElement.h:
3319         * svg/SVGStyledLocatableElement.cpp:
3320         * svg/SVGStyledLocatableElement.h:
3321         * svg/SVGStyledTransformableElement.cpp:
3322         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
3323         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
3324         (WebCore::SVGStyledTransformableElement::isKnownAttribute):
3325         * svg/SVGStyledTransformableElement.h:
3326         * svg/SVGTests.cpp:
3327         (WebCore::SVGTests::requiredFeatures):
3328         (WebCore::SVGTests::requiredExtensions):
3329         (WebCore::SVGTests::systemLanguage):
3330         (WebCore::SVGTests::isKnownAttribute):
3331         * svg/SVGTests.h:
3332         * svg/SVGTextContentElement.cpp:
3333         * svg/SVGTextElement.cpp:
3334         (WebCore::SVGTextElement::SVGTextElement):
3335         * svg/SVGTextElement.h:
3336         * svg/SVGTextPathElement.cpp:
3337         * svg/SVGTextPathElement.h:
3338         * svg/SVGTextPositioningElement.cpp:
3339         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
3340         * svg/SVGTextPositioningElement.h:
3341         * svg/SVGTransformList.cpp:
3342         (SVGTransformList::SVGTransformList):
3343         * svg/SVGTransformList.h:
3344         * svg/SVGTransformable.cpp:
3345         (WebCore::SVGTransformable::isKnownAttribute):
3346         * svg/SVGTransformable.h:
3347         * svg/SVGURIReference.cpp:
3348         (WebCore::SVGURIReference::isKnownAttribute):
3349         * svg/SVGURIReference.h:
3350         * svg/SVGUseElement.cpp:
3351         (WebCore::SVGUseElement::insertedIntoDocument):
3352         (WebCore::SVGUseElement::svgAttributeChanged):
3353         (WebCore::SVGUseElement::childrenChanged):
3354         (WebCore::SVGUseElement::buildPendingResource):
3355         * svg/SVGUseElement.h:
3356         * svg/SVGViewElement.cpp:
3357         (WebCore::SVGViewElement::SVGViewElement):
3358         (WebCore::SVGViewElement::viewTarget):
3359         (WebCore::SVGViewElement::parseMappedAttribute):
3360         * svg/SVGViewElement.h:
3361         * svg/SVGViewSpec.cpp:
3362         (WebCore::SVGViewSpec::SVGViewSpec):
3363         * svg/SVGViewSpec.h:
3364         * svg/SVGZoomAndPan.cpp:
3365         (WebCore::SVGZoomAndPan::isKnownAttribute):
3366         * svg/SVGZoomAndPan.h:
3367         * svg/graphics/SVGResource.cpp:
3368         (WebCore::SVGResource::invalidate):
3369         (WebCore::SVGResource::invalidateClients):
3370         (WebCore::SVGResource::addClient):
3371         * svg/graphics/SVGResource.h:
3372         * svg/graphics/SVGResourceMasker.cpp:
3373         (WebCore::SVGResourceMasker::invalidate):
3374         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
3375         (WebCore::SVGPaintServerGradient::invalidate):
3376         * svg/graphics/filters/SVGFEImage.cpp:
3377         (WebCore::SVGFEImage::imageChanged):
3378
3379 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
3380
3381         Build fix for last wx commit (a couple things were not committed).
3382
3383         * platform/ScrollView.h:
3384         * platform/Widget.h:
3385
3386 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
3387
3388         Clean up overlooked coding guideline issues from last commit.
3389
3390         * platform/wx/ScrollViewWx.cpp:
3391         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
3392         (WebCore::ScrollView::update):
3393         (WebCore::ScrollView::scrollBy):
3394         (WebCore::ScrollView::resizeContents):
3395         (WebCore::ScrollView::adjustScrollbars):
3396         (WebCore::ScrollView::setScrollbarsMode):
3397         (WebCore::ScrollView::setHScrollbarMode):
3398         (WebCore::ScrollView::setVScrollbarMode):
3399         (WebCore::ScrollView::suppressScrollbars):
3400         * platform/wx/WidgetWx.cpp:
3401         (WebCore::Widget::setCursor):
3402
3403 2008-02-03  Kevin Watters  <kevinwatters@gmail.com>
3404
3405         Reviewed by Kevin Ollivier.
3406
3407         * platform/wx/RenderThemeWx.cpp:
3408         (WebCore::RenderThemeWx::paintButton):
3409         * platform/wx/ScrollViewWx.cpp:
3410         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
3411         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
3412         (WebCore::ScrollView::ScrollViewPrivate::OnMouseWheelEvents):
3413         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
3414         (WebCore::ScrollView::ScrollView):
3415         (WebCore::ScrollView::setNativeWindow):
3416         (WebCore::ScrollView::updateContents):
3417         (WebCore::ScrollView::update):
3418         (WebCore::ScrollView::visibleWidth):
3419         (WebCore::ScrollView::visibleHeight):
3420         (WebCore::ScrollView::setContentsPos):
3421         (WebCore::ScrollView::scrollBy):
3422         (WebCore::ScrollView::resizeContents):
3423         (WebCore::ScrollView::contentsX):
3424         (WebCore::ScrollView::contentsY):
3425         (WebCore::ScrollView::contentsWidth):
3426         (WebCore::ScrollView::contentsHeight):
3427         (WebCore::ScrollView::AdjustScrollbars):
3428         (WebCore::ScrollView::setScrollbarsMode):
3429         (WebCore::ScrollView::setHScrollbarMode):
3430         (WebCore::ScrollView::setVScrollbarMode):
3431         (WebCore::ScrollView::suppressScrollbars):
3432         (WebCore::ScrollView::inWindow):
3433         (WebCore::ScrollView::wheelEvent):
3434         (WebCore::ScrollView::addChild):
3435         (WebCore::ScrollView::removeChild):
3436         (WebCore::ScrollView::children):
3437         (WebCore::ScrollView::scrollRectIntoViewRecursively):
3438         (WebCore::ScrollView::scrollbarUnderMouse):
3439         * platform/wx/WidgetWx.cpp:
3440         (WebCore::Widget::Widget):
3441         (WebCore::Widget::~Widget):
3442         (WebCore::Widget::nativeWindow):
3443         (WebCore::Widget::setNativeWindow):
3444
3445 2008-02-02  David Hyatt  <hyatt@apple.com>
3446
3447         Fix for bug 5468, support CSS3 :only-child and :only-of-type selectors.
3448
3449         Reviewed by olliej
3450
3451         Added fast/css/only-child-pseudo-class.html, fast/css/only-of-type-pseudo-class.html
3452
3453         * css/CSSSelector.cpp:
3454         (WebCore::CSSSelector::extractPseudoType):
3455         * css/CSSSelector.h:
3456         (WebCore::CSSSelector::):
3457         * css/CSSStyleSelector.cpp:
3458         (WebCore::CSSStyleSelector::checkOneSelector):
3459
3460 2008-02-02  Darin Adler  <darin@apple.com>
3461
3462         Reviewed by Geoff Garen.
3463
3464         PLT speedup related to <rdar://problem/5659272> REGRESSION: PLT .4%
3465         slower due to r28884 (global variable symbol table optimization)
3466
3467         * history/CachedPage.cpp:
3468         (WebCore::CachedPage::CachedPage): Removed saveSymbolTable call.
3469         (WebCore::CachedPage::restore): Removed restoreSymbolTable call.
3470         (WebCore::CachedPage::clear): Removed clear of m_windowSymbolTable.
3471
3472         * history/CachedPage.h: Removed m_windowSymbolTable, since save/restoreLocalStorage
3473         now takes care of the symbol table. Also removed many unnecessary includes.
3474
3475 2008-02-02  Tony Chang  <idealisms@gmail.com>
3476
3477         Reviewed by eseidel.
3478
3479         Add an include for for <objidl.h> which isn't included
3480         by default with WIN32_LEAN_AND_MEAN.
3481         * platform/graphics/FontCache.h:
3482
3483 2008-02-02  Kevin Watters  <kevin@dotsyntax.com>
3484
3485         Reviewed by Kevin Ollivier.
3486
3487         wxFont is reference counted and meant to be used as as a value
3488         object; when using wxFont*, ref-counting was not happening properly
3489         and the font object would be destroyed while still in use.
3490
3491         Also, fix memory leak in wx's FrameData::clear() method.
3492
3493         * platform/graphics/SimpleFontData.h:
3494         (WebCore::SimpleFontData::getWxFont):
3495         * platform/graphics/wx/FontPlatformData.h:
3496         (WebCore::FontPlatformData::):
3497         (WebCore::FontPlatformData::FontPlatformData):
3498         (WebCore::FontPlatformData::font):
3499         (WebCore::FontPlatformData::hash):
3500         (WebCore::FontPlatformData::operator==):
3501         (WebCore::FontPlatformData::computeHash):
3502         * platform/graphics/wx/FontPlatformDataWx.cpp:
3503         (WebCore::fontFamilyToWxFontFamily):
3504         (WebCore::FontPlatformData::FontPlatformData):
3505         (WebCore::FontPlatformData::~FontPlatformData):
3506         * platform/graphics/wx/FontWx.cpp:
3507         (WebCore::Font::drawGlyphs):
3508         * platform/graphics/wx/SimpleFontDataWx.cpp:
3509         (WebCore::SimpleFontData::platformInit):
3510         (WebCore::SimpleFontData::determinePitch):
3511         (WebCore::SimpleFontData::platformWidthForGlyph):
3512
3513 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
3514
3515         Reviewed by Adam Roben.
3516
3517         On MSW, the wx port internally uses callbacks for wxTimer, so the
3518         wx port suffers from the same crash problem that was fixed
3519         in r28500 for the Windows port. For now, use the SharedTimerWin.cpp
3520         impl. for wx too on MSW, until a version of wx is released that
3521         fixes the issue by reworking wxTimer.
3522
3523         * page/Page.h:
3524         * platform/win/SharedTimerWin.cpp:
3525         (WebCore::TimerWindowWndProc):
3526         * webcore-wx.bkl:
3527
3528 2008-02-02  Mark Rowe  <mrowe@apple.com>
3529
3530         Qt build fix.
3531
3532         * platform/qt/ThreadingQt.cpp: Fix typo.
3533
3534 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
3535
3536         Blind build fix for Qt port. Add Threading.h include.
3537
3538         * platform/qt/ThreadingQt.cpp:
3539
3540 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
3541
3542         wx build fix - add missing include file.
3543
3544         * platform/wx/ThreadingWx.cpp:
3545
3546 2008-02-02  David Hyatt  <hyatt@apple.com>
3547
3548         Fix for bug 4812. Support last-child and last-of-type CSS3 selectors.  Brings Acid3 score up to 68/100.
3549
3550         Reviewed by olliej
3551
3552         Added fast/css/last-child-pseudo-class.html, fast/css/last-of-type-pseudo-class.html