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