[WK2] Fix for Display error occur in Help Center of FaceBook page
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog-2008-08-10
1 2008-08-10  Dan Bernstein  <mitz@apple.com>
2
3         Reviewed by Eric Seidel.
4
5         - fix https://bugs.webkit.org/show_bug.cgi?id=20339
6           REGRESSION (r35531-r35615): Acid3 crashes on Windows in CachedFont::getSVGFontById
7
8         * dom/make_names.pl: Removed "using namespace WebCore::*Names"
9         from *ElementFactory.cpp files.        
10
11 2008-08-10  Mark Rowe  <mrowe@apple.com>
12
13         Reviewed by Cameron Zwarich.
14
15         Fix crash in Acid3 in Windows and Gtk ports, introduced in r35590.
16
17         * bindings/js/ScriptControllerGtk.cpp: Fix the logic.
18         * bindings/js/ScriptControllerWin.cpp: Ditto.
19         * bindings/js/ScriptControllerQt.cpp: Switch to isPluginView for consistency with Gtk and Windows.
20
21 2008-08-10  Dan Bernstein  <mitz@apple.com>
22
23         Reviewed by Darin Adler.
24
25         - fix <rdar://problem/6074587> REGRESSION (34722): Unable to view AT&T wireless bill - window title contains markup, window is empty
26
27         Test: fast/tokenizer/ampersand-in-special-tag.html
28
29         * html/HTMLTokenizer.cpp:
30         (WebCore::HTMLTokenizer::parseSpecial): Changed to only advance
31         lastDecodedEntityPosition if an entity was found and decoded.
32
33 2008-08-10  Jan Michael Alonzo  <jmalonzo@webkit.org>
34
35         Reviewed (and updated) by Alp Toker.
36
37         https://bugs.webkit.org/show_bug.cgi?id=16620
38         [GTK] Autotools make dist and make check support
39
40         Get make dist working.
41
42         Note that not all possible configurations have been tested yet.
43
44         * GNUmakefile.am:
45
46 2008-08-08  Beth Dakin  <bdakin@apple.com>
47
48         Reviewed by Darin.
49
50         This patch makes the findString and markAllMatchesForText functions 
51         work with disconnected frames that are contained within 
52         overflow:hidden blocks.
53
54         * editing/Editor.cpp:
55         (WebCore::Editor::rangeVisibility):
56         (WebCore::Editor::firstVisibleRange):
57         (WebCore::Editor::lastVisibleRange):
58         * editing/Editor.h:
59         (WebCore::Editor::):
60         * page/Frame.cpp:
61         (WebCore::Frame::findString):
62         (WebCore::Frame::markAllMatchesForText):
63
64 2008-08-08  Maxime Britto  <britto@apple.com>
65
66         Reviewed by Adele.
67
68         Test: fast/events/scroll-to-anchor-in-overflow-hidden.html
69         https://bugs.webkit.org/show_bug.cgi?id=20270
70         Jump to an anchor wasn't working when the overflow:hidden CSS attribute was set on the page.
71
72         * WebCore.base.exp:
73         * dom/Element.cpp:
74         (WebCore::Element::scrollIntoView):
75         (WebCore::Element::scrollIntoViewIfNeeded):
76         * loader/FrameLoader.cpp:
77         (WebCore::FrameLoader::gotoAnchor):
78         * page/EventHandler.cpp:
79         (WebCore::EventHandler::handleMousePressEvent):
80         (WebCore::EventHandler::handleMouseDraggedEvent):
81         * page/Frame.cpp:
82         (WebCore::Frame::revealSelection):
83         (WebCore::Frame::revealCaret):
84         * rendering/RenderLayer.cpp:
85         (WebCore::RenderLayer::scrollRectToVisible): Takes a new parameter "scrollToAnchor" since it's a special case of scroll. It passes this new bool to canBeProgrammaticallyScrolled. 
86         (WebCore::RenderLayer::autoscroll):
87         * rendering/RenderLayer.h:
88         * rendering/RenderListBox.h:
89         (WebCore::RenderListBox::canBeProgramaticallyScrolled):
90         * rendering/RenderObject.cpp:
91         (WebCore::RenderObject::canBeProgramaticallyScrolled): If the call is coming from a scrollToAnchor we don't need scrollBars to accept.
92         * rendering/RenderObject.h:
93         * rendering/RenderTextControl.h:
94         (WebCore::RenderTextControl::canBeProgramaticallyScrolled):
95
96 2008-08-08  Maxime Britto  <britto@apple.com>
97
98         Reviewed by Adele.
99
100         <rdar://problem/6137022>
101         <https://bugs.webkit.org/show_bug.cgi?id=20331>
102         REGRESSION(r35177-r35203): Scrolling slowly over a scrollable field scrolls the page instead of the field (20331)
103
104         * page/EventHandler.cpp:
105         (WebCore::scrollAndAcceptEvent): fixed the wrong cast for the wheel delta which was truncated to 0 on slow wheel scrolls.
106
107 2008-08-08  Dean Jackson  <dino@apple.com>
108
109         Execute CSS Animations using new AnimationController
110         https://bugs.webkit.org/show_bug.cgi?id=20119
111
112         I still need to file some follow-on bugs that EricS noticed.
113
114         Reviewed by Dave Hyatt
115
116         Some new tests:
117         * manual-tests/animate-duration.html: Added.
118         * manual-tests/animate-left.html: Added.
119         * manual-tests/animate-none.html: Added.
120
121         * css/CSSStyleSelector.cpp:
122         * dom/Document.cpp:
123             - don't redo style when page is place into cache
124         * page/AnimationController.cpp:
125         * page/AnimationController.h:
126             - execute the animations
127         * rendering/RenderObject.cpp:
128         * rendering/style/RenderStyle.h:
129             - make border radii const (for blending)
130
131 2008-08-08  Kevin McCullough  <kmccullough@apple.com>
132
133         Reviewed by Tim.
134
135         <rdar://problem/6136326> JSProfiler: Start/stop profiling button in the
136         Web Inspector does not match the menu.
137
138         * page/InspectorController.cpp:
139         (WebCore::InspectorController::toggleRecordButton): Toggle the record
140         button in the webInspector.
141         (WebCore::InspectorController::startUserInitiatedProfiling):
142         (WebCore::InspectorController::stopUserInitiatedProfiling):
143         * page/InspectorController.h: 
144         * page/inspector/ProfilesPanel.js: Move the UI part of the record button
145         into its funtion so that it can be called from the Inspector controller.
146         * page/inspector/inspector.js:
147
148 2008-08-08  Kevin McCullough  <kmccullough@apple.com>
149
150         Reviewed by Tim.
151
152         <rdar://problem/6131187> Profiles don't show up immediately when run
153         with the UI.
154
155         * page/InspectorController.cpp:
156         (WebCore::startProfiling): Added so that the inspector's JS code could
157         call through to the same function used by the Develop menu.  This way
158         both can call didFinishAllExecution() which puts the profile in the
159         Web Inspector.
160         (WebCore::stopProfiling): Ditto
161         (WebCore::InspectorController::windowScriptObjectAvailable):
162         (WebCore::InspectorController::stopUserInitiatedProfiling): Now calls
163         didFinishAllExecution() to put the profile in the Web Inspector.  This
164         should be safe since the UIs shouldn't work if JS is still running.
165         * page/inspector/ProfilesPanel.js: Use the new functions.
166
167 2008-08-08  Dan Bernstein  <mitz@apple.com>
168
169         Reviewed by Darin Adler.
170
171         - fix <rdar://problem/5961260> GDI text: transparent fill color text does not render if it it has a stroke or shadow
172
173         * platform/graphics/win/FontCGWin.cpp:
174         (WebCore::Font::drawGlyphs):
175
176 2008-08-08  Adam Treat  <treat@kde.org>
177
178         Reviewed by Simon.
179
180         Return the canonical file path in Qt's listDirectory as WebCore::PluginDatabase
181         uses this method to retrieve a list of possible plugins.  Many linux systems
182         have nested symbolic links scattered throughout the plugin directories which
183         resulted in the PluginDatabase loading the same plugin N times depending on
184         the number of symbolic links.
185
186         * platform/qt/FileSystemQt.cpp:
187         (WebCore::listDirectory):
188
189 2008-08-07  Anthony Ricaud  <rik24d@gmail.com>
190
191         Change highlight time from 300ms to 500ms and fade effect from 1s to 2s
192
193         https://bugs.webkit.org/show_bug.cgi?id=20055
194
195         Reviewed by Timothy Hatcher.
196
197         * page/inspector/SourceFrame.js:
198
199 2008-08-07  Anthony Ricaud  <rik24d@gmail.com>
200
201         The search is only performed if the field contains more than 3
202         letters or if Enter is pressed.
203
204         Search is now performed through a keyup event.
205
206         Added a WebInspector.lastQuery to remember the last query and not
207         perform it again (eg. the user hits a modifier key).
208
209         https://bugs.webkit.org/show_bug.cgi?id=18548
210
211         Reviewed by Timothy Hatcher.
212
213         * page/inspector/inspector.html: Removed the onsearch and incremental
214         attributes
215         * page/inspector/inspector.js:
216
217 2008-08-07  Steve Falkenburg  <sfalken@apple.com>
218
219         Compile derived sources through an all-in-one cpp file.
220         Fixes Windows release build on non-x64 systems by reducing the size of WebCore.lib from 1.5GB to 1GB.
221         
222         Reviewed by Mark Rowe.
223
224         * DerivedSources.cpp: Added.
225         * WebCore.vcproj/WebCore.vcproj:
226
227 2008-08-07  Kevin McCullough  <kmccullough@apple.com>
228
229         Reviewed by Adam.
230
231         <rdar://problem/5712917> Confusing console error message clear
232         behavior (16791)
233         https://bugs.webkit.org/show_bug.cgi?id=16791
234         <rdar://problem/5831899> The Web Inspector does not correctly clear the
235         console messages
236
237         * page/InspectorController.cpp: Clear the message so they don't show up
238         in the inspector after it has cleared them.
239         (WebCore::clearMessages):
240         (WebCore::InspectorController::clearConsoleMessages):
241         (WebCore::InspectorController::windowScriptObjectAvailable):
242         * page/InspectorController.h:
243         * page/inspector/Console.js: Tell the InspectorController to clear the
244         messages it's holding onto.
245
246 2008-08-07  Simon Fraser  <simon.fraser@apple.com>
247
248         Reviewed by Sam Weinig
249
250         Rename Marquee to RenderMarquee and move to its own file.
251         https://bugs.webkit.org/show_bug.cgi?id=20319
252
253         * GNUmakefile.am:
254         * WebCore.pro:
255         * WebCore.vcproj/WebCore.vcproj:
256         * WebCore.xcodeproj/project.pbxproj:
257         * WebCoreSources.bkl:
258         * html/HTMLMarqueeElement.cpp:
259         * rendering/RenderBlock.cpp:
260         * rendering/RenderLayer.cpp:
261         (WebCore::RenderLayer::styleChanged):
262         * rendering/RenderLayer.h:
263         * rendering/RenderMarquee.cpp: Added.
264         (WebCore::RenderMarquee::RenderMarquee):
265         (WebCore::RenderMarquee::marqueeSpeed):
266         (WebCore::RenderMarquee::direction):
267         (WebCore::RenderMarquee::isHorizontal):
268         (WebCore::RenderMarquee::computePosition):
269         (WebCore::RenderMarquee::start):
270         (WebCore::RenderMarquee::suspend):
271         (WebCore::RenderMarquee::stop):
272         (WebCore::RenderMarquee::updateMarqueePosition):
273         (WebCore::RenderMarquee::updateMarqueeStyle):
274         (WebCore::RenderMarquee::timerFired):
275         * rendering/RenderMarquee.h: Added.
276         (WebCore::RenderMarquee::speed):
277         (WebCore::RenderMarquee::reverseDirection):
278         (WebCore::RenderMarquee::setEnd):
279
280 2008-08-07  Dan Bernstein  <mitz@apple.com>
281
282         Reviewed by Dave Hyatt.
283
284         - fix <rdar://problem/6118816> Initial empty page or bookmarks view window has white strip where vertical scrollbar would be (which vanishes on resize)
285
286         * page/Frame.cpp:
287         (WebCore::Frame::setZoomFactor): If the view has never had a layout with
288         the old zoom factor, then there is no need to explicitly call layout()
289         here.
290
291 2008-08-07  Kevin McCullough  <kmccullough@apple.com>
292
293         Reviewed by Geoff.
294
295         <rdar://problem/6115981> Start the profiler in Heavy view
296
297         * page/inspector/ProfileView.js:
298
299 2008-08-07  Alp Toker  <alp@nuanti.com>
300
301         Reviewed by Eric Seidel.
302
303         https://bugs.webkit.org/show_bug.cgi?id=20313
304         Add null check in String::fromUTF8()
305
306         Make String::fromUTF8() consistent with other constructors by
307         returning a null String when the input is null instead of crashing.
308
309         * platform/text/String.cpp:
310         (WebCore::String::fromUTF8):
311
312 2008-08-06  Kevin Ollivier  <kevino@theolliviers.com>
313
314         wx build fix after Frame -> ScriptController moves.
315
316         * platform/wx/TemporaryLinkStubs.cpp:
317
318 2008-08-06  Kevin McCullough  <kmccullough@apple.com>
319
320         Reviewed by Tim.
321
322         - Make XHR console message clearer.
323
324         * xml/XMLHttpRequest.cpp:
325         (WebCore::XMLHttpRequest::didFinishLoading):
326
327 2008-08-06  Kevin McCullough  <kmccullough@apple.com>
328
329         Reviewed by Tim.
330
331         - Created a new function to create DOM links from text without
332         converting back and forth from HTML and messing with escaping special
333         characters.
334
335         * page/inspector/Console.js:
336         * page/inspector/inspector.js:
337         * page/inspector/utilities.js:
338
339 2008-08-06  Eric Seidel  <eric@webkit.org>
340
341         Reviewed by hyatt.
342
343         Fix a large animation leak found on the buildbot
344         (m_animations and m_transitions were never deleted)
345         Drag RenderStyle (kicking and screaming) into the 21st century
346         of memory management with a little application of OwnPtr.
347
348         * rendering/style/RenderStyle.cpp:
349         (WebCore::FillLayer::cullEmptyLayers):
350         (WebCore::RenderStyle::diff):
351         (WebCore::RenderStyle::contentDataEquivalent):
352         (WebCore::RenderStyle::setContent):
353         (WebCore::BindingURI::BindingURI):
354         (WebCore::RenderStyle::setBoxShadow):
355         (WebCore::ShadowData::ShadowData):
356         (WebCore::RenderStyle::counterDirectives):
357         (WebCore::RenderStyle::accessCounterDirectives):
358         (WebCore::RenderStyle::adjustAnimations):
359         (WebCore::RenderStyle::adjustTransitions):
360         (WebCore::RenderStyle::accessAnimations):
361         (WebCore::RenderStyle::accessTransitions):
362         * rendering/style/RenderStyle.h:
363         (WebCore::RenderStyle::clearAnimations):
364         (WebCore::RenderStyle::clearTransitions):
365
366 2008-08-06  Brady Eidson  <beidson@apple.com>
367
368         Reviewed by MitzPettel
369
370         <rdar://problem/6078543> - Many LocalStorageThreads may be started
371
372         The original decision to key LocalStorage sets to PageGroups was a poor one.
373
374         It seems a much better solution is to key them to the actual path of on-disk storage,
375         which also solves all of the avenues that could lead to a boundless number of threads.
376
377         In this patch, I am not attempting to completely sever the attachment of LocalStorage
378         to PageGroups as that would require a more substantial re-working of the lifetime
379         between pages, groups, and local storage threads.
380
381         * page/PageGroup.cpp:
382         (WebCore::PageGroup::addPage):
383
384         * storage/LocalStorage.cpp:
385         (WebCore::localStorageMap):  Map paths to LocalStorage objects here.
386         (WebCore::LocalStorage::localStorage): Return the shared LocalStorage object for this path,
387           or create a new one if it doesn't yet exist.
388         (WebCore::LocalStorage::LocalStorage):
389         (WebCore::LocalStorage::~LocalStorage):  Add to remove the path->LocalStorage mapping
390         * storage/LocalStorage.h:
391
392 2008-08-06  Beth Dakin  <bdakin@apple.com>
393
394         Reviewed by Adele.
395
396         Fix for <rdar://problem/6130724>
397
398         Disconnected frames should not be allowed to resize the window.
399
400         * page/DOMWindow.cpp:
401         (WebCore::DOMWindow::resizeBy):
402         (WebCore::DOMWindow::resizeTo):
403
404 2008-08-05  David D. Kilzer  <ddkilzer@apple.com>
405
406         Bug 20038: REGRESSION (r35151): Can't post comments on flickr.com
407
408         <https://bugs.webkit.org/show_bug.cgi?id=20038>
409         <rdar://problem/6092270>
410
411         Reviewed by Eric Seidel.
412
413         Test: fast/forms/submit-to-url-fragment.html
414
415         The problem was that isFormSubmission was not being set to true in
416         FrameLoader::loadWithDocumentLoader() when we were actually
417         submitting a form, causing the page to scroll instead of the form to
418         be submitted.
419
420         The isFormSubmission variable wasn't set to true because a FormState
421         object was not being created in
422         FrameLoader::loadFrameRequestWithFormAndValues().
423
424         The FormState object was not being created because
425         HTMLFormElement::submit(Event*, bool activateSubmitButton) would
426         only set FrameLoader::m_formAboutToBeSubmitted to the current form
427         if there was a "text field" element in the form (type = text,
428         password, search or isindex).
429
430         Thus when FrameLoader::submitForm(const FrameLoadRequest&, Event*)
431         called FrameLoader::loadFrameRequestWithFormAndValues(), a null
432         HTMLFormElement pointer would be sent and cause the above failures.
433
434         * html/HTMLFormElement.cpp:
435         (WebCore::HTMLFormElement::submit): Call new
436         FrameLoader::setFormAboutToBeSubmitted() method outside the for
437         loop so we always set FrameLoader::m_formAboutToBeSubmitted exactly
438         once for any form submission.  The FrameLoader::recordFormValue()
439         method is only called with the name/value pair of each text field.
440
441         * loader/FrameLoader.cpp:
442         (WebCore::FrameLoader::setFormAboutToBeSubmitted): Added method that
443         only sets m_formAboutToBeSubmitted.
444         (WebCore::FrameLoader::recordFormValue): Removed
445         PassRefPtr<HTMLFormElement> argument since this method only sets
446         name/value pairs on m_formValuesAboutToBeSubmitted now.
447         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues): Create a
448         FormState object as long as submitForm is not null so that other
449         FrameLoader methods know when a form is being submitted.
450         * loader/FrameLoader.h:
451
452 2008-08-06  David D. Kilzer  <ddkilzer@apple.com>
453
454         BUILD FIX: Add HTMLPlugInImageElement.cpp to all other build systems
455
456         * GNUmakefile.am:
457         * WebCore.pro:
458         * WebCoreSources.bkl:
459
460 2008-08-06  Dan Bernstein  <mitz@apple.com>
461
462         - Windows build fix
463
464         * WebCore.vcproj/WebCore.vcproj: Added PlugInImageElement.*
465
466 2008-08-06  Kevin McCullough  <kmccullough@apple.com>
467
468         Reviewed by Tim and Darin.
469
470         <rdar://problem/6126160> URLs in the console should be clickable.
471         - Implemented and now use linkifyString() to parse console messages for
472         URLs.
473
474         * page/inspector/Console.js:
475         * page/inspector/inspector.js:
476         * page/inspector/utilities.js:
477
478 2008-07-02  David Kilzer  <ddkilzer@apple.com>
479
480         Images using QT plugin do not display correctly
481
482         <https://bugs.webkit.org/show_bug.cgi?id=9214>
483         <rdar://problem/5683413>
484
485         Reviewed by Darin.
486
487         Tests: fast/images/embed-image.html
488                fast/images/object-image.html
489
490         Use RenderImage instead of RenderPartObject for a renderer when
491         the <embed> tag references an image.  Extract common code from
492         HTMLEmbedElement and HTMLObjectElement into HTMLPlugInImageElement.
493
494         * WebCore.xcodeproj/project.pbxproj: Added new source files.
495
496         * html/HTMLEmbedElement.cpp: Cleaned up #include statements.
497         (WebCore::HTMLEmbedElement::HTMLEmbedElement): Extend
498         HTMLPlugInImageElement which extends HTMLPlugInElement.
499         (WebCore::HTMLEmbedElement::parseMappedAttribute): Split codeAttr
500         and srcAttr cases.  Create or clear HTMLImageLoader as needed for
501         srcAttr.
502         (WebCore::HTMLEmbedElement::rendererIsNeeded): Use
503         HTMLPlugInElement::rendererIsNeeded() for images.
504         (WebCore::HTMLEmbedElement::createRenderer): Create a
505         RenderImage instead of a RenderPartObject for images.
506         (WebCore::HTMLEmbedElement::attach): Create HTMLImageLoader,
507         load image and populate RenderImage for images.
508         (WebCore::HTMLEmbedElement::updateWidget): Don't call
509         RenderPartObject::updateWidget() for images.
510         (WebCore::HTMLEmbedElement::imageSourceAttributeName): Added.
511         * html/HTMLEmbedElement.h: Removed unneeded namespace and class
512         declarations.  Extend HTMLPlugInImageElement which extends
513         HTMLPlugInElement.
514         (WebCore::HTMLEmbedElement::imageSourceAttributeName): Added.
515         (WebCore::HTMLEmbedElement::serviceType): Moved to
516         HTMLPlugInImageElement.
517         (WebCore::HTMLEmbedElement::url): Ditto.
518
519         * html/HTMLObjectElement.cpp: Cleaned up #include statements.
520         (WebCore::HTMLObjectElement::attach): Removed local variable.
521         (WebCore::HTMLObjectElement::isImageType): Moved to
522         HTMLPlugInImageElement.
523         * html/HTMLObjectElement.h: Extend HTMLPlugInImageElement which
524         extends HTMLPlugInElement.
525         (WebCore::HTMLObjectElement::isImageType): Moved to
526         HTMLPlugInImageElement.
527         (WebCore::HTMLObjectElement::serviceType): Ditto.
528         (WebCore::HTMLObjectElement::url): Ditto.
529
530         * html/HTMLPlugInImageElement.cpp: Added.
531         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Added.
532         (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement): Added.
533         (WebCore::HTMLPlugInImageElement::isImageType): Moved from
534         HTMLObjectElement.
535         * html/HTMLPlugInImageElement.h: Added.
536         (WebCore::HTMLPlugInImageElement::isImageType): Added from 
537         HTMLObjectElement.
538         (WebCore::HTMLPlugInImageElement::serviceType): Ditto.
539         (WebCore::HTMLPlugInImageElement::url): Ditto.
540
541         * rendering/HitTestResult.cpp:
542         (WebCore::HitTestResult::absoluteImageURL): Return urlString
543         for embed elements with images.
544
545 2008-08-06  Marco Barisione  <marco.barisione@collabora.co.uk>
546
547         Reviewed by Eric Seidel.
548
549         http://bugs.webkit.org/show_bug.cgi?id=20295
550         RegularExpression::match should not crash when a null string is passed
551
552         RegularExpression::match used to pass null subject strings to
553         jsRegExpExecute causing an ASSERT failure and then a crash.
554         There is no need to fix also RegularExpression:search and
555         RegularExpression::searchRev as they just call
556         RegularExpression::match.
557
558         * platform/text/RegularExpression.cpp:
559         (WebCore::RegularExpression::match): Return -1 if the string is null.
560
561 2008-08-06  Jan Michael Alonzo  <jmalonzo@webkit.org>
562
563         Gtk build fix only
564
565         * bindings/js/ScriptControllerGtk.cpp:
566         * plugins/gtk/PluginViewGtk.cpp:
567         (WebCore::PluginView::getValue):
568         (WebCore::PluginView::~PluginView):
569
570 2008-08-06  Ariya Hidayat  <ariya.hidayat@trolltech.com>
571
572         Fix the Qt build due to recent ScriptController refactoring.
573
574         * plugins/qt/PluginViewQt.cpp:
575         (WebCore::PluginView::getValue):
576         (WebCore::PluginView::~PluginView):
577
578 2008-08-06  Eric Seidel  <eric@webkit.org>
579
580         Reviewed by Cameron Zwarich.
581
582         Fix warnings and errors seen on Qt bot.
583         Including one correctness fix for ThreadingQt.
584         According to the Qt 4.4 docs, we were always passing
585         seconds to "wait()" when we should have been passing
586         milliseconds.
587         
588         Lots of float <-> int conversion warnings.
589
590         * css/CSSCursorImageValue.cpp:
591         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
592         * dom/Element.cpp:
593         (WebCore::adjustForLocalZoom):
594         (WebCore::adjustForAbsoluteZoom):
595         (WebCore::Element::setScrollLeft):
596         (WebCore::Element::setScrollTop):
597         * dom/EventTargetNode.cpp:
598         (WebCore::EventTargetNode::dispatchMouseEvent):
599         * loader/CachedImage.cpp:
600         (WebCore::CachedImage::imageRect):
601         * page/DOMWindow.cpp:
602         (WebCore::DOMWindow::innerHeight):
603         (WebCore::DOMWindow::innerWidth):
604         (WebCore::DOMWindow::scrollX):
605         (WebCore::DOMWindow::scrollY):
606         (WebCore::DOMWindow::scrollTo):
607         * page/EventHandler.cpp:
608         (WebCore::scrollAndAcceptEvent):
609         * plugins/npapi.cpp:
610         * plugins/qt/PluginViewQt.cpp:
611         (WebCore::PluginView::getValue):
612         (WebCore::PluginView::~PluginView):
613         * rendering/RenderReplaced.cpp:
614         (WebCore::RenderReplaced::intrinsicSizeChanged):
615
616 2008-08-06  Eric Seidel  <eric@webkit.org>
617
618         Build fix only, no review.
619
620         Attempt to fix the Windows and Qt builds.
621
622         * bindings/js/ScriptControllerWin.cpp: add runtime.h include
623         * bindings/js/ScriptControllerQt.cpp: add QWidget include
624         * page/win/FrameWin.cpp: remove bogus using namespace
625         * plugins/PluginView.cpp:
626         (WebCore::PluginView::bindingInstance): use script()
627         * plugins/win/PluginViewWin.cpp:
628         (WebCore::PluginView::getValue): use script()
629         (WebCore::PluginView::~PluginView): use script()
630
631   2008-08-06  Eric Seidel  <eric@webkit.org>
632
633         Build fix only, no review.
634
635         Attempt to fix the Linux and --no-svg builds.
636
637         * bindings/js/ScriptController.h: wrap RetainPtr include in PLATFORM(MAC)
638         * css/CSSComputedStyleDeclaration.cpp:
639         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): add missing CSSProperties to switch
640
641 2008-08-06  Eric Seidel  <eric@webkit.org>
642
643         Reviewed by Cameron Zwarich.
644
645         Move more methods from Frame into ScriptController
646         https://bugs.webkit.org/show_bug.cgi?id=20294
647         
648         Finally finish more of the work which Darin started long ago
649         Move a few more Frame methods into ScriptController.
650         I also took this opportunity to clean up some of the plugin
651         code as well, and moved some of that into ScriptController.
652
653         I removed Frame::clearScriptController() and ScriptController::clear() is now clearWindowShell()
654
655         No functional changes, thus no test cases.
656
657         * GNUmakefile.am:
658         * WebCore.NPAPI.exp:
659         * WebCore.base.exp:
660         * WebCore.pro:
661         * WebCore.vcproj/WebCore.vcproj:
662         * WebCore.xcodeproj/project.pbxproj:
663         * bindings/js/ScriptController.cpp:
664         (WebCore::ScriptController::ScriptController):
665         (WebCore::ScriptController::~ScriptController):
666         (WebCore::ScriptController::bindingRootObject):
667         (WebCore::ScriptController::createRootObject):
668         (WebCore::ScriptController::windowScriptNPObject):
669         (WebCore::ScriptController::createScriptObjectForPluginElement): New method.
670         (WebCore::ScriptController::clearPlatformScriptObjects):
671         (WebCore::ScriptController::disconnectPlatformScriptObjects):
672         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
673         (WebCore::ScriptController::clearScriptObjects):
674         * bindings/js/ScriptController.h:
675         (WebCore::ScriptController::sourceURL):
676         (WebCore::ScriptController::clearFormerWindow):
677         * bindings/js/ScriptControllerGtk.cpp: Copied from WebCore/page/gtk/FrameGtk.cpp.
678         (WebCore::Frame::createScriptInstanceForWidget):
679         * bindings/js/ScriptControllerMac.mm: Added.
680         (WebCore::ScriptController::createScriptInstanceForWidget):
681         (WebCore::ScriptController::windowScriptObject):
682         (WebCore::ScriptController::clearPlatformScriptObjects):
683         (WebCore::ScriptController::disconnectPlatformScriptObjects):
684         (WebCore::updateRenderingForBindings):
685         (WebCore::ScriptController::initJavaJSBindings):
686         * bindings/js/ScriptControllerQt.cpp: Copied from WebCore/page/gtk/FrameGtk.cpp.
687         (WebCore::ScriptController::createScriptInstanceForWidget):
688         * bindings/js/ScriptControllerWin.cpp: Copied from WebCore/svg/graphics/cg/SVGResourceMaskerCg.cpp.
689         (WebCore::ScriptController::createScriptInstanceForWidget):
690         * bindings/objc/DOM.mm:
691         (-[DOMNode KJS::Bindings::]):
692         * bindings/objc/DOMInternal.mm:
693         (-[WebScriptObject _initializeScriptDOMNodeImp]):
694         * bridge/jni/jni_jsobject.mm:
695         (createRootObject):
696         * html/HTMLAppletElement.cpp:
697         (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
698         * html/HTMLAppletElement.h:
699         * html/HTMLEmbedElement.cpp:
700         (WebCore::findWidgetRenderer):
701         (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
702         * html/HTMLEmbedElement.h:
703         * html/HTMLObjectElement.cpp:
704         (WebCore::HTMLObjectElement::~HTMLObjectElement):
705         (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
706         (WebCore::HTMLObjectElement::detach):
707         * html/HTMLObjectElement.h:
708         * html/HTMLPlugInElement.cpp:
709         (WebCore::HTMLPlugInElement::~HTMLPlugInElement):
710         (WebCore::HTMLPlugInElement::detach):
711         (WebCore::HTMLPlugInElement::getInstance):
712         (WebCore::HTMLPlugInElement::parseMappedAttribute):
713         (WebCore::HTMLPlugInElement::getNPObject):
714         * html/HTMLPlugInElement.h:
715         * loader/FrameLoader.cpp:
716         (WebCore::FrameLoader::clear):
717         * page/Frame.cpp:
718         (WebCore::Frame::Frame):
719         (WebCore::Frame::~Frame):
720         (WebCore::Frame::pageDestroyed):
721         (WebCore::FramePrivate::FramePrivate):
722         * page/Frame.h:
723         * page/FramePrivate.h:
724         * page/gtk/FrameGtk.cpp:
725         * page/mac/FrameMac.mm:
726         * page/qt/FrameQt.cpp:
727         * page/win/FrameWin.cpp:
728         (WebCore::computePageRectsForFrame):
729
730 2008-08-05  Steve Falkenburg  <sfalken@apple.com>
731
732         Fix last timer fix.
733         Add null check, clear timer using InterlockedExchange.
734         
735         Reviewed by Alice Liu.
736
737         * platform/win/SharedTimerWin.cpp:
738         (WebCore::clearTimer):
739         (WebCore::queueTimerProc):
740         (WebCore::stopSharedTimer):
741
742 2008-08-05  Steve Falkenburg  <sfalken@apple.com>
743
744         Fix timer leak, flag.
745         
746         Timers need to be deleted explicitly, even if they fire.
747         Also added WT_EXECUTEONLYONCE flag, since this is not a repeating timer.
748         
749         Reviewed by Ada Chan.
750
751         * platform/win/SharedTimerWin.cpp:
752         (WebCore::queueTimerProc):
753
754 2008-08-05  Anders Carlsson  <andersca@apple.com>
755
756         Reviewed by Darin.
757
758         <rdar://problem/6037398>
759         ER: Deallocate WebKit objects on the main thread, even if released on secondary thread
760         
761         Add calls to WebCoreObjCScheduleDeallocateOnMainThread in dealloc methods of objects we expose.
762         
763         * bindings/objc/DOMRGBColor.mm:
764         (-[DOMRGBColor dealloc]):
765         * bindings/objc/WebScriptObject.mm:
766         (-[WebScriptObject dealloc]):
767         * platform/mac/SharedBufferMac.mm:
768         (-[WebCoreSharedBufferData dealloc]):
769
770 2008-08-05  Anders Carlsson  <andersca@apple.com>
771
772         Reviewed by Darin.
773
774         Move the main thread deallocator here from WebKit.
775         
776         * WebCore.base.exp:
777         * WebCore.xcodeproj/project.pbxproj:
778         * platform/mac/WebCoreObjCExtras.c:
779         (method_getImplementation):
780         (deallocCallback):
781         (WebCoreObjCScheduleDeallocateOnMainThread):
782         * platform/mac/WebCoreObjCExtras.h:
783
784 2008-08-05  Dean Jackson  <dino@apple.com>
785
786         Parse CSS Animations, including the new
787         -webkit-animation properties and the @-webkit-keyframes rule.
788         Adds some new interfaces for the style rules.
789         
790         https://bugs.webkit.org/show_bug.cgi?id=20088
791
792         Reviewed by David Hyatt.
793
794         * GNUmakefile.am:
795         * WebCore.pro:
796         * WebCore.vcproj/WebCore.vcproj:
797         * WebCore.xcodeproj/project.pbxproj:
798         * WebCoreSources.bkl:
799             build config for new files
800         * css/tokenizer.flex:
801         * css/CSSGrammar.y:
802         * css/CSSParser.cpp:
803         * css/CSSParser.h:
804             new @-webkit-keyframes parsing
805         * css/CSSPropertyNames.in:
806             -webkit-animation properties
807         * css/CSSRule.h:
808         * css/CSSStyleSelector.cpp:
809         * css/CSSStyleSelector.h:
810         * css/CSSValueKeywords.in:
811         * css/StyleBase.h:
812         * css/WebKitCSSKeyframeRule.cpp: Added.
813         * css/WebKitCSSKeyframeRule.h: Added.
814         * css/WebKitCSSKeyframesRule.cpp: Added.
815         * css/WebKitCSSKeyframesRule.h: Added.
816
817 2008-08-05  Kevin McCullough  <kmccullough@apple.com>
818
819         Reviewed by Tim.
820
821         - LayoutTests fix.  Log only to the Inspector because other listeners may not want
822         XHR notifications, including DRT and the numerous tests that don't expect them.
823
824         * xml/XMLHttpRequest.cpp:
825         (WebCore::XMLHttpRequest::didFinishLoading):
826
827 2008-08-05  Timothy Hatcher  <timothy@apple.com>
828
829         Makes DOM attribute editing start on double-click to match the styles
830         pane. Links in attributes are now triggered with a single click again.
831
832         https://bugs.webkit.org/show_bug.cgi?id=20281
833
834         Reviewed by Adam Roben.
835
836         * English.lproj/localizedStrings.js: Removed some strings.
837         * page/inspector/ElementsPanel.js:
838         (WebInspector.DOMNodeTreeElement.prototype.onattach): Call
839         _preventFollowingLinksOnDoubleClick.
840         (WebInspector.DOMNodeTreeElement.prototype._preventFollowingLinksOnDoubleClick):
841         Renamed from _makeURLsActivateOnModifiedClick. Simply sets the
842         preventFollowOnDoubleClick property on all links.
843         (WebInspector.DOMNodeTreeElement.prototype.onselect): Removed
844         _selectedByCurrentMouseDown.
845         (WebInspector.DOMNodeTreeElement.prototype.onmousedown): Moved
846         editing code to ondblclick.
847         (WebInspector.DOMNodeTreeElement.prototype.ondblclick): Calls
848         _startEditing. Removed URL check.
849         (WebInspector.DOMNodeTreeElement.prototype._updateTitle): Calls
850         _preventFollowingLinksOnDoubleClick.
851         * page/inspector/inspector.css:
852         (.editing): Removed the text-decoration property.
853         (.editing, .editing *): Added the text-decoration property here
854         so it removes underlines on child elements.
855         * page/inspector/inspector.js:
856         (WebInspector.documentClick): Removed the followOnAltClick code.
857         Added support for preventFollowOnDoubleClick, which sets a timeout
858         on the first click where future clicks will cancel it (double click).
859         If the timeout isn't canceled, the link is followed.
860
861 2008-08-05  Antti Koivisto  <antti@apple.com>
862
863         Reviewed by Sam Weinig.
864
865         <rdar://problem/6112219> Video in standalone media document flashes when navigating away
866
867         When navigating out from a page, MediaPlayer was set invisible and then immediately 
868         made visible again causing flicker in some cases.
869         
870         The document is not yet marked being in page cache when willSaveToCache() is called.
871
872         * html/HTMLMediaElement.cpp:
873         (WebCore::HTMLMediaElement::willSaveToCache):
874         * rendering/RenderVideo.cpp:
875         (WebCore::RenderVideo::updatePlayer):
876
877 2008-08-05  Dan Bernstein  <mitz@apple.com>
878
879         - fix typo
880
881         * page/mac/FrameMac.mm:
882
883 2008-08-05  Dan Bernstein  <mitz@apple.com>
884
885         - try to fix the 64-bit build
886
887         * page/mac/FrameMac.mm:
888
889 2008-08-05  Alp Toker  <alp@nuanti.com>
890
891         Remove leftover mark pragma from r35568 to fix compiler warning spew.
892
893         * rendering/style/RenderStyle.h:
894
895 2008-08-05  Kevin McCullough  <kmccullough@apple.com>
896
897         - Added a test that checks for several edge cases (see description in
898         test.
899
900         * manual-tests/inspector/profiler-test-start-but-dont-stop-profiling.html: Added.
901
902 2008-08-05  Dean Jackson  <dino@apple.com>
903
904         Reviewed by Dave Hyatt
905
906         Add support for CSS Animation properties to RenderStyle
907         https://bugs.webkit.org/show_bug.cgi?id=20068
908
909         (also fix some minor whitespace issues and remove debugging code)
910
911         * css/CSSComputedStyleDeclaration.cpp:
912         * css/CSSStyleSelector.cpp:
913         * page/AnimationController.cpp:
914         * rendering/style/RenderStyle.cpp:
915         * rendering/style/RenderStyle.h:
916
917 2008-08-05  Kevin McCullough  <kmccullough@apple.com>
918
919         - Updated a manual test to be an accurate description of what it is
920         actually testing.
921
922         * manual-tests/inspector/profiler-test-stop-profiling-after-setTimeout.html:
923
924 2008-08-05  Kevin McCullough  <kmccullough@apple.com>
925
926         Reviewed by Tim.
927
928         <rdar://problem/5732836> XMLHttpRequest: Inspector should show network
929         activity/XHR in Console (17233)
930
931         * xml/XMLHttpRequest.cpp:
932         (WebCore::XMLHttpRequest::didFinishLoading):
933
934 2008-08-05  Dean Jackson  <dino@apple.com>
935
936         Fix the ChangeLog that was corrupted by r34545.
937
938 2008-08-04  Timothy Hatcher  <timothy@apple.com>
939
940         Makes the selection surround just the name or value that was
941         double clicked when editing CSS properties. This regressed when
942         the Inspector started using focus/blur events, since a focus on
943         a content editable region changes the selection.
944
945         https://bugs.webkit.org/show_bug.cgi?id=20280
946
947         Reviewed by Adam Roben.
948
949         * page/inspector/StylesSidebarPane.js:
950         (WebInspector.StylePropertyTreeElement.prototype.startEditing):
951         Change the selection after calling WebInspector.startEditing,
952         since WebInspector.startEditing will set an initial selection
953         due to a focus event.
954
955 2008-08-04  Timothy Hatcher  <timothy@apple.com>
956
957         Changes the editing behavior in the Inspector to commit changes
958         when focus is lost, instead of reverting the changes.
959
960         https://bugs.webkit.org/show_bug.cgi?id=20279
961
962         Reviewed by Adam Roben.
963
964         * page/inspector/inspector.js:
965         (WebInspector.startEditing): Call editingCommitted in blurEventListener
966         instead of editingCancelled.
967
968 2008-08-04  Timothy Hatcher  <timothy@apple.com>
969
970         Adds the ability to increment/decrement numbers in editable style
971         properties with the arrow and page keys.
972
973         Reviewed by Adam Roben.
974
975         https://bugs.webkit.org/show_bug.cgi?id=20273
976
977         * page/inspector/StylesSidebarPane.js:
978         (WebInspector.StylePropertyTreeElement.prototype.updateAll):
979         Updates all properties in the current section, or all sections
980         depending in the argument passed.
981         (WebInspector.StylePropertyTreeElement.prototype.toggleEnabled):
982         Call updateAll instead of having duplicate code.
983         (WebInspector.StylePropertyTreeElement.prototype.startEditing):
984         Assign the list element's handleKeyEvent to editingKeyDown.
985         (WebInspector.StylePropertyTreeElement.prototype.editingKeyDown):
986         Handles the Up and Down arrows keys. Finds the word based on the
987         selection and extracts the number, prefix and suffix. Increments
988         or decrements the number based on the key and modifiers. Replaces
989         the original word with the new value and selects it. Also applies
990         the style so the page reflects the changes live.
991         (WebInspector.StylePropertyTreeElement.prototype.editingEnded):
992         Delete the handleKeyEvent and originalCSSText properties.
993         (WebInspector.StylePropertyTreeElement.prototype.editingCancelled):
994         If originalCSSText exists, set the cssText to that value and call
995         updateAll. Otherwise just call updateTitle like before.
996         (WebInspector.StylePropertyTreeElement.prototype.editingCommitted):
997         Factored out the style applying code to applyStyleText.
998         (WebInspector.StylePropertyTreeElement.prototype.applyStyleText):
999         Factored out from editingCommitted. Takes an argument that specifies
1000         if the interface should be updated when the style is applied.
1001         * page/inspector/inspector.js:
1002         (WebInspector.startEditing): Call the original key handler, if one
1003         existed before interrupting key events.
1004         * page/inspector/utilities.js:
1005         (getStyleTextWithShorthands): Helper to return CSS text that preserves
1006         shorthand values, since the cssText property only outputs longhands.
1007
1008 2008-08-04  Timothy Hatcher  <timothy@apple.com>
1009
1010         Factors out the TextPrompt.scanBackwards function into a generic
1011         helper function on the Node prototype, named rangeOfWord.
1012
1013         Reviewed by Adam Roben.
1014
1015         * page/inspector/Console.js:
1016         (WebInspector.Console.prototype.completions): Use rangeOfWord.
1017         * page/inspector/TextPrompt.js:
1018         (WebInspector.TextPrompt.prototype.complete): Ditto.
1019         (WebInspector.TextPrompt.prototype.scanBackwards): Removed.
1020         * page/inspector/utilities.js:
1021         (Node.prototype.rangeOfWord): Added. Copied from TextPrompt.scanBackwards,
1022         and added a direction argument allowing scanning forward, backward or
1023         both directions from the offset.
1024
1025 2008-08-04  Timothy Hatcher  <timothy@apple.com>
1026
1027         Fixes a bug where the property toggle button would not be hidden
1028         during editing.
1029
1030         Reviewed by Adam Roben.
1031
1032         * page/inspector/inspector.css:
1033         (li.editing .swatch, li.editing .enabled-button):
1034         Make the display !important, since a more specific rule for 
1035         .enabledbutton overrides display.
1036
1037 2008-08-05  Dan Bernstein  <mitz@apple.com>
1038
1039         Reviewed by Geoffrey Garen.
1040
1041         - remove redundant #imports from FrameMac.mm
1042
1043         * page/mac/FrameMac.mm:
1044
1045 2008-08-04  Bernhard Kruepl  <kruepl@dbai.tuwien.ac.at>
1046
1047         Reviewed by Dave Hyatt.
1048
1049         Fix for https://bugs.webkit.org/show_bug.cgi?id=19094
1050         Corrected offsetTop for table cells by subtracting borderTopExtra
1051
1052         * rendering/RenderObject.cpp:
1053         (WebCore::RenderObject::offsetTop):
1054
1055 2008-08-04  Dean Jackson  <dino@apple.com>
1056
1057         Reviewed by Dave Hyatt.
1058
1059         Improve AnimationController
1060         https://bugs.webkit.org/show_bug.cgi?id=19938
1061
1062         - Transition class is now called Animation
1063         - new state-based AnimationController that can support CSS Animations
1064         - add support for -webkit-transition-delay
1065         - remove -webkit-transition-repeat-count (since it never existed officially)
1066         - updates the -webkit-transition shorthand to reflect removing repeat count
1067         - updates the Transition class so that properties can be shared with animations
1068         - adds a "now" keyword for -webkit-transition-delay
1069         - adds a new change type for style (changed by animation)
1070         - adds new event names (although they are not dispatched yet)
1071         - makes text stroke and text fill colors returned by RenderStyle const
1072
1073         Tests:
1074         - manual-tests/transition-left.html
1075         - manual-tests/transition-delay.html
1076         - manual-tests/transition-timing-functions.html
1077
1078         * css/CSSComputedStyleDeclaration.cpp:
1079         * css/CSSParser.cpp:
1080         * css/CSSParser.h:
1081         * css/CSSPropertyNames.in:
1082         * css/CSSStyleSelector.cpp:
1083         * css/CSSStyleSelector.h:
1084         * css/CSSTimingFunctionValue.h:
1085         * css/CSSValue.h:
1086         * css/CSSValueKeywords.in:
1087         * css/WebKitCSSTransformValue.cpp:
1088         * dom/Document.cpp:
1089         * dom/Document.h:
1090         * dom/Element.cpp:
1091         * dom/EventNames.h:
1092         * dom/Node.cpp:
1093         * dom/Node.h:
1094         * history/CachedPage.cpp:
1095         * page/AnimationController.cpp:
1096         * page/AnimationController.h:
1097         * page/Frame.cpp:
1098         * rendering/RenderObject.cpp:
1099         * rendering/RenderWidget.cpp:
1100         * rendering/style/RenderStyle.cpp:
1101         * rendering/style/RenderStyle.h:
1102
1103 2008-08-04  Mike Belshe  <mike@belshe.com>
1104
1105         Reviewed by Antti.
1106         
1107         Currently we create two copies of script in the HTMLTokenizer.
1108         One copy gets passed into the javascript engine, the other gets
1109         stored in the DOM.  Modify the HTMLParser so that it does not
1110         chunk the string into it's normal 64K chunks for script code,
1111         and modify the HTMLTokenizer to pass that same string into the
1112         JS engine.  On some sites (e.g. GMail), which have hundreds of
1113         KB of inline JS, this saves more than a MB of RAM to run the page.
1114         (Strings use 16bit strings, so 600KB of JS code == 1.2MB of memory)
1115
1116         * html\HTMLParser.cpp
1117         * html\HTMLTokenizer.cpp
1118
1119 2008-08-04  Sam Weinig  <sam@webkit.org>
1120
1121         Reviewed by Mark Rowe.
1122
1123         Remove extra braces left in from JSLock removal.
1124
1125         * xml/XMLHttpRequest.cpp:
1126         (WebCore::XMLHttpRequest::dropProtection):
1127
1128 2008-08-02  Sam Weinig  <sam@webkit.org>
1129
1130         Reviewed by Dan Bernstein.
1131
1132         Implement the Access-control for Cross Site requests
1133         preflight cache.
1134
1135         Tests: http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-header.html
1136                http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html
1137                http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-timeout.html
1138                http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html
1139
1140         * WebCore.vcproj/WebCore.vcproj:
1141         * WebCore.xcodeproj/project.pbxproj:
1142         * platform/KURL.h:
1143         (WTF::):
1144         * platform/KURLHash.h: Added.
1145         (WebCore::KURLHash::hash):
1146         (WebCore::KURLHash::equal):
1147         (WTF::):
1148         * xml/XMLHttpRequest.cpp:
1149         (WebCore::PreflightResultCacheItem::PreflightResultCacheItem):
1150         (WebCore::preflightResultCache):
1151         (WebCore::appendPreflightResultCacheEntry):
1152         (WebCore::canSkipPrelight):
1153         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
1154         (WebCore::parseAccessControlAllowList):
1155         (WebCore::parseAccessControlMaxAge):
1156         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
1157
1158 2008-08-04  Eric Seidel  <eric@webkit.org>
1159
1160         Reviewed by Adam Roben.
1161
1162         Fix warning seen in MSVC converting ints to floats.
1163
1164         * rendering/Length.h:
1165         (WebCore::Length::calcFloatValue):
1166
1167 2008-08-04  Eric Seidel  <eric@webkit.org>
1168
1169         Reviewed by hyatt.
1170
1171         Clean up Gradient constructors, make sure all members are initialized.
1172
1173         * platform/graphics/Gradient.cpp:
1174         (WebCore::Gradient::Gradient):
1175
1176 2008-08-02  Maxime Britto  <britto@apple.com>
1177
1178         Reviewed by Eric Seidel.
1179
1180         <rdar://problem/6118969>
1181         https://bugs.webkit.org/show_bug.cgi?id=19971 
1182         Modifiy the cursor interactively when on panning mode (middle click auto scroll)
1183         When the panning is in progress the cursor is an arrow representing the direction of the current scroll
1184
1185         * page/EventHandler.cpp:
1186         (WebCore::EventHandler::autoscrollTimerFired): Before each scroll we actualize the cursor to match the current direction
1187         (WebCore::EventHandler::setPanScrollCursor): determines the direction of the upcoming scroll.
1188         (WebCore::EventHandler::handleMouseMoveEvent):
1189         * page/EventHandler.h: 
1190         * platform/Cursor.h: Add propotypes for the new cursor functions
1191         * platform/gtk/CursorGtk.cpp: to avoid build break
1192         (WebCore::middlePanningCursor):
1193         (WebCore::eastPanningCursor):
1194         (WebCore::northPanningCursor):
1195         (WebCore::northEastPanningCursor):
1196         (WebCore::northWestPanningCursor):
1197         (WebCore::southPanningCursor):
1198         (WebCore::southEastPanningCursor):
1199         (WebCore::southWestPanningCursor):
1200         (WebCore::westPanningCursor):
1201         * platform/mac/CursorMac.mm: to avoid build break
1202         (WebCore::middlePanningCursor):
1203         (WebCore::eastPanningCursor):
1204         (WebCore::northPanningCursor):
1205         (WebCore::northEastPanningCursor):
1206         (WebCore::northWestPanningCursor):
1207         (WebCore::southPanningCursor):
1208         (WebCore::southEastPanningCursor):
1209         (WebCore::southWestPanningCursor):
1210         (WebCore::westPanningCursor):
1211         * platform/qt/CursorQt.cpp: to avoid build break
1212         (WebCore::middlePanningCursor):
1213         (WebCore::eastPanningCursor):
1214         (WebCore::northPanningCursor):
1215         (WebCore::northEastPanningCursor):
1216         (WebCore::northWestPanningCursor):
1217         (WebCore::southPanningCursor):
1218         (WebCore::southEastPanningCursor):
1219         (WebCore::southWestPanningCursor):
1220         (WebCore::westPanningCursor):
1221         * platform/win/CursorWin.cpp: Add specific icons for the panning as windows resizing icons are both sides arrows
1222         (WebCore::middlePanningCursor):
1223         (WebCore::eastPanningCursor):
1224         (WebCore::northPanningCursor):
1225         (WebCore::northEastPanningCursor):
1226         (WebCore::northWestPanningCursor):
1227         (WebCore::southPanningCursor):
1228         (WebCore::southEastPanningCursor):
1229         (WebCore::southWestPanningCursor):
1230         (WebCore::westPanningCursor):
1231         * platform/wx/CursorWx.cpp: to avoid build break
1232         (WebCore::middlePanningCursor):
1233         (WebCore::eastPanningCursor):
1234         (WebCore::northPanningCursor):
1235         (WebCore::northEastPanningCursor):
1236         (WebCore::northWestPanningCursor):
1237         (WebCore::southPanningCursor):
1238         (WebCore::southEastPanningCursor):
1239         (WebCore::southWestPanningCursor):
1240         (WebCore::westPanningCursor):
1241
1242 2008-08-02  Kevin Ollivier  <kevino@theolliviers.com>
1243
1244         Move to using constants in accordance with discussions about wx renderer commit.
1245
1246         * platform/wx/RenderThemeWx.cpp:
1247         (WebCore::RenderThemeWx::minimumMenuListSize):
1248         (WebCore::RenderThemeWx::popupInternalPaddingLeft):
1249         (WebCore::RenderThemeWx::popupInternalPaddingRight):
1250         (WebCore::RenderThemeWx::popupInternalPaddingTop):
1251         (WebCore::RenderThemeWx::popupInternalPaddingBottom):
1252
1253 2008-08-02  Wouter Bolsterlee  <wbolster@svn.gnome.org>
1254
1255         Reviewed by Eric Seidel.
1256
1257         * plugins/gtk/gtk2xtbin.h:
1258
1259         https://bugs.webkit.org/show_bug.cgi?id=20034
1260         Fix malformed Vim modeline.
1261
1262 2008-08-01  Dan Bernstein  <mitz@apple.com>
1263
1264         Reviewed by Dave Hyatt.
1265
1266         - tweak a comment
1267
1268         * platform/graphics/cg/ImageCG.cpp:
1269         (WebCore::BitmapImage::draw):
1270
1271 2008-08-01  Jan Michael Alonzo  <jmalonzo@webkit.org>
1272
1273         * ChangeLog: Fix date of previous commit (r35520)
1274
1275 2008-08-01  Marco Barisione  <marco.barisione@collabora.co.uk>
1276
1277         Reviewed by Eric Seidel.
1278
1279         https://bugs.webkit.org/show_bug.cgi?id=19603
1280         [SOUP] segfault when closing a file using gio
1281
1282         Call client->didFinishLoading() only after releasing all the gio
1283         resources.
1284
1285         * platform/network/soup/ResourceHandleSoup.cpp:
1286         (WebCore::closeCallback):
1287         (WebCore::readCallback):
1288
1289 2008-08-01  Anders Carlsson  <andersca@apple.com>
1290
1291         Reviewed by Jon.
1292
1293         <rdar://problem/6120206>
1294         Crash when plug-in queries for NPPVpluginWantsAllNetworkStreams.
1295         
1296         Pass in a pointer to a void* to make sure that plug-ins don't overwrite the stack.
1297         
1298         * plugins/PluginStream.cpp:
1299         (WebCore::PluginStream::wantsAllStreams):
1300
1301 2008-08-01  Robin Dunn  <robin@alldunn.com>
1302
1303         Reviewed by Eric Seidel.
1304
1305         Native rendering implementations for form elements in the wx port.
1306         
1307         https://bugs.webkit.org/show_bug.cgi?id=19069
1308
1309         * platform/wx/RenderThemeWx.cpp:
1310         (WebCore::RenderThemeWx::adjustRepaintRect):
1311         (WebCore::RenderThemeWx::paintButton):
1312         (WebCore::RenderThemeWx::paintTextField):
1313         (WebCore::RenderThemeWx::minimumMenuListSize):
1314         (WebCore::RenderThemeWx::adjustMenuListStyle):
1315         (WebCore::RenderThemeWx::paintMenuList):
1316         (WebCore::RenderThemeWx::adjustMenuListButtonStyle):
1317         (WebCore::RenderThemeWx::paintMenuListButton):
1318         (WebCore::RenderThemeWx::popupInternalPaddingLeft):
1319         (WebCore::RenderThemeWx::popupInternalPaddingRight):
1320         (WebCore::RenderThemeWx::popupInternalPaddingTop):
1321         (WebCore::RenderThemeWx::popupInternalPaddingBottom):
1322
1323 2008-07-30  David Hyatt  <hyatt@apple.com>
1324
1325         Improvements to selection drawing.
1326
1327         Clip out floating and positioned objects when drawing selection so
1328         that there is no "double painting" of selection when the selection spans both the space behind the positioned/floating
1329         object and the positioned/floating object itself.  Improves most Web pages.
1330
1331         Do not paint left/right selection gaps if the object's edge is already outside the boundary (at a negative
1332         position).  Significantly improves the look of selections on digg.com, since it uses giant negative text-indent.
1333
1334         Reviewed by Dan
1335
1336         Covered by existing selection pixel tests.
1337
1338         * rendering/RenderBlock.cpp:
1339         (WebCore::RenderBlock::isSelectionRoot):
1340         (WebCore::RenderBlock::paintSelection):
1341         (WebCore::clipOutPositionedObjects):
1342         (WebCore::RenderBlock::fillSelectionGaps):
1343         (WebCore::RenderBlock::fillLeftSelectionGap):
1344         (WebCore::RenderBlock::fillRightSelectionGap):
1345
1346 2008-08-01  Timothy Hatcher  <timothy@apple.com>
1347
1348         Adds the ability to disable individual properties of a CSS rule.
1349         When hovering over a rule, checkboxes show up to the right of all
1350         properties and toggling a checkbox disables/enables the property.
1351         Behind the scenes the property is removed from the rule when disabled,
1352         but still remains in the list and in the computed style. When disabled
1353         the property has a line through it, and is faded in computed style.
1354
1355         <rdar://problem/5712828> Support disabling individual CSS properties
1356         https://bugs.webkit.org/show_bug.cgi?id=14377
1357
1358         Reviewed by Adam Roben.
1359
1360         * page/inspector/StylesSidebarPane.js:
1361         (WebInspector.StylesSidebarPane.prototype.update): Include the
1362         inline style when it also has disabled properties. Call
1363         deleteDisabledProperty for any property that is in the style,
1364         since it might have been added back by the page. Remember all
1365         disabled properties so they show up in computed style.
1366         (deleteDisabledProperty): Helper function to delete all the
1367         right properties that track disabled properties.
1368         (WebInspector.StylePropertiesSection): Add the computed-style
1369         class when  the section is Computed Style.
1370         (WebInspector.StylePropertiesSection.prototype.onpopulate):
1371         Include disabled properties.
1372         (WebInspector.StylePropertyTreeElement): Added a disabled argument.
1373         (WebInspector.StylePropertyTreeElement.prototype.get/set disabled):
1374         Sets the _disabled property and calls updateState.
1375         (WebInspector.StylePropertyTreeElement.prototype.get priority):
1376         Return the priority of enabled or disabled properties.
1377         (WebInspector.StylePropertyTreeElement.prototype.get value):
1378         Return the value of enabled or disabled properties.
1379         (WebInspector.StylePropertyTreeElement.prototype.updateTitle): Use the
1380         priority and value getter. Append the checkbox for root elements of
1381         an editable section.
1382         (WebInspector.StylePropertyTreeElement.prototype.toggleEnabled):
1383         Add or remove properties from the rule and remember removed ones
1384         by adding three objects to the style: __disabledProperties,
1385         __disabledPropertyValues and __disabledPropertyPriorities.
1386         The __disabledProperties object will include all longhand
1387         properties of a shorthand for use by Computed Style.
1388         (WebInspector.StylePropertyTreeElement.prototype.updateState):
1389         Use the value getter. Update the disabled state.
1390         * page/inspector/inspector.css:
1391         * page/inspector/utilities.js:
1392         (Object.hasProperties): Added. Helper to test if an object
1393         has any properties.
1394
1395 2008-07-31  Anders Carlsson  <andersca@apple.com>
1396
1397         Reviewed by Darin.
1398
1399         <rdar://problem/5949410>
1400         Add the ability to transfer a given application cache to a new database.
1401         
1402         * WebCore.base.exp:
1403         Export ApplicationCacheStorage::storeCopyOfCache.
1404         
1405         * loader/appcache/ApplicationCache.cpp:
1406         (WebCore::ApplicationCache::~ApplicationCache):
1407         Don't call cacheDestroyed for our special "copy" groups.
1408         
1409         * loader/appcache/ApplicationCacheGroup.cpp:
1410         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
1411         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
1412         Add a "copy" flag to the ApplicationCacheGroup constructor. A "copied" group is special
1413         and can only be stored to disk.
1414         
1415         * loader/appcache/ApplicationCacheGroup.h:
1416         (WebCore::ApplicationCacheGroup::isCopy):
1417         New getter.
1418         
1419         * loader/appcache/ApplicationCacheStorage.cpp:
1420         (WebCore::ApplicationCacheStorage::store):
1421         Make sure to set the storageID when storing an application resource.
1422         
1423         (WebCore::ApplicationCacheStorage::storeNewestCache):
1424         Change this to return true/false depending on whether storing the cache succeeded or not.
1425         
1426         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
1427         New method which stores a given cache in a new storage (database file).
1428         
1429         * loader/appcache/ApplicationCacheStorage.h:
1430         Add new methods.
1431
1432 2008-07-31  John Sullivan  <sullivan@apple.com>
1433
1434         WebCore part of <rdar://problem/6116650> Text-only zoom setting should be stored in WebKit prefs
1435
1436         Reviewed by Hyatt
1437
1438         * WebCore.base.exp:
1439         export symbol for WebCoreSettings::setZoomsTextOnly()
1440         
1441         * page/Frame.cpp:
1442         (WebCore::Frame::isZoomFactorTextOnly):
1443         use value from Settings instead of data member
1444         (WebCore::Frame::shouldApplyTextZoom):
1445         call isZoomFactorTextOnly() to get value instead of accessing now-removed data member
1446         (WebCore::Frame::shouldApplyPageZoom):
1447         ditto
1448         (WebCore::Frame::setZoomFactor):
1449         set value into Settings rather than into data member
1450         (WebCore::FramePrivate::FramePrivate):
1451         don't set initial value of now-removed data member; this is managed by Settings now
1452         
1453         * page/FramePrivate.h:
1454         removed m_zoomFactorIsTextOnly
1455         
1456         * page/Settings.cpp:
1457         (WebCore::Settings::setZoomsTextOnly):
1458         new function, sets values and reapplies styles in all frames
1459         
1460         * page/Settings.h:
1461         (WebCore::Settings::zoomsTextOnly):
1462         new function, returns value of new data member
1463
1464 2008-07-31  Simon Fraser  <simon.fraser@apple.com>
1465
1466         Reviewed by Dave Hyatt
1467
1468         Null-check parent clip rects, because they may not have been
1469         set up yet.
1470         https://bugs.webkit.org/show_bug.cgi?id=20243
1471
1472         * rendering/RenderLayer.cpp:
1473         (WebCore::RenderLayer::calculateClipRects):
1474
1475 2008-07-31  Dan Bernstein  <mitz@apple.com>
1476
1477         Reviewed by Dave Hyatt.
1478
1479         - fix <rdar://problem/6058958> REGRESSION (r34210): Seams are visible in border-image
1480
1481         * platform/graphics/cg/ImageCG.cpp:
1482         (WebCore::BitmapImage::draw): To work around a Core Graphics
1483         interpolation issue, reverted to using a temporary subimage for drawing
1484         a portion of the image with scaling and high-quality interpolation in
1485         effect.
1486
1487 2008-07-31  chris fleizach  <cfleizach@apple.com>
1488
1489         Reviewed by Alice Liu
1490
1491         <rdar://problem/3563671> VO doesn't highlight characters when interacting when static text in web areas
1492
1493         Need to expose the AXBoundsForRange parameter which allows an AX client to get the visible bounds
1494         for individual characters on a webpage.
1495
1496         Test: accessibility/bounds-for-range.html
1497
1498         * ChangeLog:
1499         * page/AccessibilityRenderObject.cpp:
1500         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1501         * page/mac/AccessibilityObjectWrapper.mm:
1502         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1503         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1504
1505 2008-07-31  Kevin Ollivier <kevino@theolliviers.com>
1506
1507         Second attempt at Windows/wx build fix. Instead of avoiding inclusion of windows.h,
1508         use defines, etc. to avoid conflicts in each affected file.
1509
1510         * config.h:
1511         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1512         * platform/wx/PopupMenuWx.cpp:
1513
1514 2008-07-31  Erik Bunce  <elbunce@thehive.com>
1515
1516         Reviewed by Simon.
1517
1518         https://bugs.webkit.org/show_bug.cgi?id=20224
1519
1520         Include the Writing Direction sub-menu in the context menu of all
1521         platforms but GTK. This fixes a regression introduced by revision
1522         34426.
1523
1524         * platform/ContextMenu.cpp:
1525         (WebCore::ContextMenu::populate):
1526
1527 2008-07-31  Brady Eidson  <beidson@apple.com>
1528
1529         Reviewed by Adam and Hyatt
1530
1531         Fix for <rdar://problem/6099748>
1532
1533         Adds a "don't enforce CSS mime type in strict mode" quirk for iWeb 2
1534
1535         * WebCore.base.exp:
1536
1537         * html/HTMLLinkElement.cpp:
1538         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1539
1540         * loader/CachedCSSStyleSheet.cpp:
1541         (WebCore::CachedCSSStyleSheet::canUseSheet):
1542         * loader/CachedCSSStyleSheet.h:
1543         (WebCore::CachedCSSStyleSheet::sheetText): 
1544         * page/Settings.cpp:
1545
1546         (WebCore::Settings::Settings):
1547         (WebCore::Settings::setEnforceCSSMIMETypeInStrictMode):
1548         * page/Settings.h:
1549         (WebCore::Settings::enforceCSSMIMETypeInStrictMode):
1550
1551 2008-07-31  Erik Bunce  <elbunce@thehive.com>
1552
1553         Reviewed by Simon.
1554
1555         Added the ability to get SQLite headers and source from the location 
1556         specified via the SQLITE3SRCDIR environtment variable.
1557
1558         * WebCore.pro:
1559
1560 2008-07-31  Alexey Proskuryakov  <ap@webkit.org>
1561
1562         Rubber-stamped by Maciej.
1563
1564         Eliminate JSLock (it was already disabled, removing the stub implementaion and all
1565         call sites now).
1566
1567         * ForwardingHeaders/kjs/JSLock.h: Removed.
1568         * WebCore.vcproj/WebCore.vcproj:
1569         * bindings/js/GCController.cpp:
1570         (WebCore::collect):
1571         (WebCore::GCController::gcTimerFired):
1572         (WebCore::GCController::garbageCollectNow):
1573         * bindings/js/JSCustomSQLStatementCallback.cpp:
1574         (WebCore::JSCustomSQLStatementCallback::handleEvent):
1575         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1576         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
1577         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1578         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
1579         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
1580         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
1581         * bindings/js/JSCustomVoidCallback.cpp:
1582         (WebCore::JSCustomVoidCallback::handleEvent):
1583         * bindings/js/JSCustomXPathNSResolver.cpp:
1584         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1585         * bindings/js/JSDOMWindowBase.cpp:
1586         (WebCore::DOMWindowTimer::~DOMWindowTimer):
1587         (WebCore::JSDOMWindowBase::clear):
1588         (WebCore::JSDOMWindowBase::timerFired):
1589         * bindings/js/JSEventCustom.cpp:
1590         (WebCore::toJS):
1591         * bindings/js/JSEventListener.cpp:
1592         (WebCore::JSAbstractEventListener::handleEvent):
1593         (WebCore::JSLazyEventListener::parseCode):
1594         * bindings/js/JSNSResolver.cpp:
1595         (WebCore::JSNSResolver::lookupNamespaceURI):
1596         * bindings/js/JSNodeFilterCondition.cpp:
1597         (WebCore::JSNodeFilterCondition::acceptNode):
1598         * bindings/js/ScheduledAction.cpp:
1599         (WebCore::ScheduledAction::execute):
1600         * bindings/js/ScriptController.cpp:
1601         (WebCore::ScriptController::evaluate):
1602         (WebCore::ScriptController::clear):
1603         (WebCore::ScriptController::createHTMLEventHandler):
1604         (WebCore::ScriptController::createSVGEventHandler):
1605         (WebCore::ScriptController::initScript):
1606         (WebCore::ScriptController::updateDocument):
1607         * bindings/objc/WebScriptObject.mm:
1608         (_didExecute):
1609         (-[WebScriptObject callWebScriptMethod:withArguments:]):
1610         (-[WebScriptObject evaluateWebScript:]):
1611         (-[WebScriptObject setValue:forKey:]):
1612         (-[WebScriptObject valueForKey:]):
1613         (-[WebScriptObject removeWebScriptKey:]):
1614         (-[WebScriptObject stringRepresentation]):
1615         (-[WebScriptObject webScriptValueAtIndex:]):
1616         (-[WebScriptObject setWebScriptValueAtIndex:value:]):
1617         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
1618         * bridge/NP_jsobject.cpp:
1619         (_NPN_InvokeDefault):
1620         (_NPN_Invoke):
1621         (_NPN_Evaluate):
1622         (_NPN_GetProperty):
1623         (_NPN_SetProperty):
1624         (_NPN_RemoveProperty):
1625         (_NPN_HasProperty):
1626         (_NPN_HasMethod):
1627         (_NPN_Enumerate):
1628         * bridge/c/c_class.cpp:
1629         (KJS::Bindings::CClass::~CClass):
1630         (KJS::Bindings::CClass::methodsNamed):
1631         (KJS::Bindings::CClass::fieldNamed):
1632         * bridge/c/c_instance.cpp:
1633         (KJS::Bindings::CInstance::invokeMethod):
1634         (KJS::Bindings::CInstance::invokeDefaultMethod):
1635         (KJS::Bindings::CInstance::getPropertyNames):
1636         * bridge/c/c_runtime.cpp:
1637         (KJS::Bindings::CField::valueFromInstance):
1638         (KJS::Bindings::CField::setValueToInstance):
1639         * bridge/c/c_utility.cpp:
1640         (KJS::Bindings::convertValueToNPVariant):
1641         (KJS::Bindings::convertNPVariantToValue):
1642         * bridge/jni/jni_class.cpp:
1643         (JavaClass::JavaClass):
1644         (JavaClass::~JavaClass):
1645         * bridge/jni/jni_instance.cpp:
1646         (JavaInstance::stringValue):
1647         * bridge/jni/jni_jsobject.mm:
1648         (JavaJSObject::call):
1649         (JavaJSObject::eval):
1650         (JavaJSObject::getMember):
1651         (JavaJSObject::setMember):
1652         (JavaJSObject::removeMember):
1653         (JavaJSObject::getSlot):
1654         (JavaJSObject::setSlot):
1655         (JavaJSObject::toString):
1656         (JavaJSObject::convertValueToJObject):
1657         (JavaJSObject::convertJObjectToValue):
1658         * bridge/jni/jni_objc.mm:
1659         (KJS::Bindings::dispatchJNICall):
1660         * bridge/jni/jni_runtime.cpp:
1661         (appendClassName):
1662         (JavaMethod::signature):
1663         * bridge/jni/jni_runtime.h:
1664         (KJS::Bindings::JavaString::JavaString):
1665         (KJS::Bindings::JavaString::_commonInit):
1666         (KJS::Bindings::JavaString::~JavaString):
1667         (KJS::Bindings::JavaString::UTF8String):
1668         * bridge/jni/jni_utility.cpp:
1669         (KJS::Bindings::convertValueToJValue):
1670         * bridge/npruntime.cpp:
1671         (_NPN_GetStringIdentifier):
1672         * bridge/objc/objc_instance.mm:
1673         (ObjcInstance::moveGlobalExceptionToExecState):
1674         (ObjcInstance::invokeMethod):
1675         (ObjcInstance::invokeDefaultMethod):
1676         (ObjcInstance::setValueOfUndefinedField):
1677         (ObjcInstance::getValueOfUndefinedField):
1678         * bridge/objc/objc_runtime.mm:
1679         (ObjcField::valueFromInstance):
1680         (ObjcField::setValueToInstance):
1681         * bridge/objc/objc_utility.mm:
1682         (KJS::Bindings::convertValueToObjcValue):
1683         (KJS::Bindings::convertNSStringToString):
1684         (KJS::Bindings::convertObjcValueToValue):
1685         * bridge/qt/qt_instance.cpp:
1686         (KJS::Bindings::QtRuntimeObjectImp::removeFromCache):
1687         (KJS::Bindings::QtInstance::~QtInstance):
1688         (KJS::Bindings::QtInstance::getQtInstance):
1689         (KJS::Bindings::QtInstance::getRuntimeObject):
1690         * bridge/qt/qt_runtime.cpp:
1691         (KJS::Bindings::convertValueToQVariant):
1692         (KJS::Bindings::convertQVariantToValue):
1693         (KJS::Bindings::QtRuntimeMetaMethod::call):
1694         (KJS::Bindings::QtRuntimeConnectionMethod::call):
1695         (KJS::Bindings::QtConnectionObject::QtConnectionObject):
1696         (KJS::Bindings::QtConnectionObject::execute):
1697         * bridge/runtime.cpp:
1698         (KJS::Bindings::Instance::createRuntimeObject):
1699         * bridge/testbindings.cpp:
1700         (main):
1701         * bridge/testbindings.mm:
1702         (main):
1703         * bridge/testqtbindings.cpp:
1704         (main):
1705         * dom/Document.cpp:
1706         (WebCore::Document::~Document):
1707         * dom/Node.cpp:
1708         (WebCore::Node::setDocument):
1709         * history/CachedPage.cpp:
1710         (WebCore::CachedPage::CachedPage):
1711         (WebCore::CachedPage::restore):
1712         (WebCore::CachedPage::clear):
1713         * html/HTMLPlugInElement.cpp:
1714         (WebCore::HTMLPlugInElement::createNPObject):
1715         * loader/FrameLoader.cpp:
1716         (WebCore::getString):
1717         * page/Frame.cpp:
1718         (WebCore::Frame::bindingRootObject):
1719         (WebCore::Frame::windowScriptNPObject):
1720         (WebCore::Frame::clearScriptObjects):
1721         * page/InspectorController.cpp:
1722         (WebCore::jsStringRef):
1723         (WebCore::ConsoleMessage::ConsoleMessage):
1724         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
1725         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
1726         (WebCore::getResourceDocumentNode):
1727         (WebCore::search):
1728         (WebCore::inspectedWindow):
1729         (WebCore::wrapCallback):
1730         (WebCore::currentCallFrame):
1731         (WebCore::profiles):
1732         (WebCore::InspectorController::focusNode):
1733         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
1734         (WebCore::InspectorController::addDatabaseScriptResource):
1735         (WebCore::InspectorController::addScriptProfile):
1736         * page/JavaScriptCallFrame.cpp:
1737         (WebCore::JavaScriptCallFrame::evaluate):
1738         * page/JavaScriptProfileNode.cpp:
1739         (WebCore::getTotalTime):
1740         (WebCore::getSelfTime):
1741         (WebCore::getTotalPercent):
1742         (WebCore::getSelfPercent):
1743         (WebCore::getNumberOfCalls):
1744         (WebCore::getChildren):
1745         (WebCore::getVisible):
1746         * page/Page.cpp:
1747         * page/mac/FrameMac.mm:
1748         (WebCore::Frame::windowScriptObject):
1749         * page/qt/FrameQt.cpp:
1750         * plugins/PluginView.cpp:
1751         (WebCore::PluginView::start):
1752         (WebCore::getString):
1753         (WebCore::PluginView::performRequest):
1754         (WebCore::PluginView::bindingInstance):
1755         * plugins/gtk/PluginViewGtk.cpp:
1756         (WebCore::PluginView::paint):
1757         (WebCore::PluginView::handleKeyboardEvent):
1758         (WebCore::PluginView::handleMouseEvent):
1759         (WebCore::PluginView::setNPWindowRect):
1760         (WebCore::PluginView::stop):
1761         (WebCore::PluginView::init):
1762         * plugins/qt/PluginViewQt.cpp:
1763         (WebCore::PluginView::setNPWindowRect):
1764         (WebCore::PluginView::stop):
1765         (WebCore::PluginView::init):
1766         * plugins/win/PluginViewWin.cpp:
1767         (WebCore::PluginView::dispatchNPEvent):
1768         (WebCore::PluginView::handleKeyboardEvent):
1769         (WebCore::PluginView::handleMouseEvent):
1770         (WebCore::PluginView::setNPWindowRect):
1771         (WebCore::PluginView::stop):
1772         * xml/XMLHttpRequest.cpp:
1773         (WebCore::XMLHttpRequest::clearResponse):
1774         (WebCore::XMLHttpRequest::didFinishLoading):
1775         (WebCore::XMLHttpRequest::didReceiveData):
1776
1777 2008-07-30  Timothy Hatcher  <timothy@apple.com>
1778
1779         Fix various minor bugs with style editing in the Inspector.
1780
1781         - Restores the scroll position to 0,0 when finished editing a
1782         string that was longer than the editing input area.
1783
1784         - Adjusts the margin of the list item to ensure the text does
1785         not shift when entering and exiting editing mode.
1786
1787         - Reliably remembers if a shorthand has children when the
1788         children haven't been populated yet.
1789
1790         - Reliably remembers if a shorthand was expanded, and expands
1791         if needed after editing finishes.
1792
1793         - Hides color swatches when editing.
1794
1795         https://bugs.webkit.org/show_bug.cgi?id=20238
1796
1797         Reviewed by Adam Roben.
1798
1799         * page/inspector/StylesSidebarPane.js:
1800         (WebInspector.StylePropertyTreeElement.prototype.startEditing):
1801         Store the expanded state and children state in wasExpanded and
1802         reallyHasChildren properties.
1803         (WebInspector.StylePropertyTreeElement.prototype.editingEnded):
1804         Removed the wasExpanded argument and use the reallyHasChildren and
1805         wasExpanded properties to restore state. Deletes the state properties.
1806         (WebInspector.StylePropertyTreeElement.prototype.editingCancelled):
1807         Removed the wasExpanded argument.
1808         (WebInspector.StylePropertyTreeElement.prototype.editingCommitted):
1809         Removed the wasExpanded argument.
1810         * page/inspector/inspector.css: Tweak the margin and hides the color
1811         swatches. ALso removes a rule that was not needed.
1812         * page/inspector/inspector.js:
1813         (WebInspector.startEditing): Restore the scrollLeft and scrollTop
1814         to zero when editing finishes.
1815
1816 2008-07-30  Alice Liu  <alice.liu@apple.com>
1817
1818         Implement userIdleTime() for Windows, and place a band-aid over other
1819         platform implementations of userIdleTime().  This will fix the issue
1820         of indefinitely postposing releasing pages from the PageCache
1821         on non-Mac platforms, causing us to hang onto just about everything 
1822         else about a web page.
1823         
1824         Reviewed by Sam Weinig.
1825
1826         * platform/gtk/TemporaryLinkStubs.cpp:
1827         * platform/wx/TemporaryLinkStubs.cpp:
1828         * platform/qt/TemporaryLinkStubs.cpp:
1829         (WebCore::userIdleTime): set to FLT_MAX
1830
1831         * platform/win/SystemTimeWin.cpp:
1832         (WebCore::userIdleTime): implemented
1833
1834 2008-07-30  Beth Dakin  <bdakin@apple.com>
1835
1836         Reviewed by Anders Carlsson.
1837
1838         Fixes <rdar://problem/6041390>
1839
1840         Adds the ability to have a frame that is "disconnected" from the 
1841         main frame from the perspective of top and parent in 
1842         Javascript.
1843
1844         * WebCore.base.exp:
1845         * page/DOMWindow.cpp:
1846         (WebCore::DOMWindow::parent):
1847         (WebCore::DOMWindow::top):
1848         * page/Frame.cpp:
1849         (WebCore::Frame::isDisconnectedFrame):
1850         (WebCore::Frame::setIsDisconnectedFrame):
1851         (WebCore::FramePrivate::FramePrivate):
1852         * page/Frame.h:
1853         * page/FramePrivate.h:
1854         * page/FrameTree.cpp:
1855         (WebCore::FrameTree::parent):
1856         (WebCore::FrameTree::top):
1857         * page/FrameTree.h:
1858
1859 2008-07-25  Eric Seidel  <eric@webkit.org>
1860
1861         Reviewed by Justin.
1862
1863         Crash Safari when dragging images into Google presentations
1864         https://bugs.webkit.org/show_bug.cgi?id=20161
1865
1866         Test: manual-tests/remove-on-drop-crash.html
1867
1868         * editing/ReplaceSelectionCommand.cpp:
1869         (WebCore::ReplaceSelectionCommand::doApply):
1870         * manual-tests/remove-on-drop-crash.html: Added.
1871
1872 2008-07-30  Christian Dywan  <christian@twotoasts.de>
1873
1874         Reviewed by Mark.
1875
1876         Build fix for Cairo < 1.6
1877
1878         * platform/graphics/cairo/PathCairo.cpp:
1879         (WebCore::Path::boundingRect): use cairo_stroke_extends for < 1.6
1880
1881 2008-07-29  Kevin McCullough  <kmccullough@apple.com>
1882
1883         Reviewed by Geoff.
1884
1885         <rdar://problem/6110314> Crash in profiler dereferencing null frame or
1886         page (20214)
1887         - Null check.
1888
1889         * page/Console.cpp:
1890         (WebCore::Console::finishedProfiling):
1891
1892 2008-07-30  David Hyatt  <hyatt@apple.com>
1893
1894         https://bugs.webkit.org/show_bug.cgi?id=18070
1895         
1896         Full page zoom needs to work properly with JS mouse events.  Make sure to adjust the coordinates of the
1897         JS mouse event to account for zoom.
1898
1899         Reviewed by olliej
1900
1901         * dom/EventTargetNode.cpp:
1902         (WebCore::EventTargetNode::dispatchMouseEvent):
1903
1904 2008-07-29  Sam Weinig  <sam@webkit.org>
1905
1906         Reviewed by Darin Adler.
1907
1908         Update Cross-site XMLHttpRequests using Access control to
1909         the latest spec. (Editor's Draft 8 July 2008)
1910
1911         - This leaves us at about the same place as we previously were
1912           still needing preflight caching and better redirect support.
1913
1914         * GNUmakefile.am:
1915         * WebCore.pro:
1916         * WebCore.vcproj/WebCore.vcproj:
1917         * WebCore.xcodeproj/project.pbxproj:
1918         * WebCoreSources.bkl:
1919         * xml/AccessControlList.cpp: Removed.
1920         * xml/AccessControlList.h: Removed.
1921         * xml/AccessItem.cpp: Removed.
1922         * xml/AccessItem.h: Removed.
1923         * xml/AccessItemRule.cpp: Removed.
1924         * xml/AccessItemRule.h: Removed.
1925         * xml/XMLHttpRequest.cpp:
1926         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
1927         (WebCore::XMLHttpRequest::XMLHttpRequest):
1928         (WebCore::XMLHttpRequest::isSimpleCrossSiteAccessRequest):
1929         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequest):
1930         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
1931         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
1932         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
1933         (WebCore::XMLHttpRequest::abort):
1934         (WebCore::XMLHttpRequest::clearRequest):
1935         (WebCore::XMLHttpRequest::didFinishLoading):
1936         (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
1937         (WebCore::XMLHttpRequest::accessControlCheck):
1938         (WebCore::XMLHttpRequest::didReceiveResponse):
1939         (WebCore::parseAccessControlAllowList):
1940         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
1941         * xml/XMLHttpRequest.h:
1942
1943 2008-07-29  Kevin Calhoun  <kcalhoun@apple.com>
1944
1945         Reviewed by Adele.
1946
1947         Fix for <rdar://problem/6060647> Adopt QTMovieOpenForPlaybackAttribute flag
1948
1949         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie):
1950
1951 2008-07-29  Kevin Calhoun  <kcalhoun@apple.com>
1952
1953         Reviewed by Adele.
1954
1955         Fix for <rdar://problem/6031021> Make standalone video render more like the quicktime plugin to improve performance
1956
1957         For standalone video, use QTMovieView to draw.
1958
1959         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1960         (WebCore::MediaPlayerPrivate::createQTMovieView): Moved nil checks to setUpVideoRendering.
1961          Associate the QTMovieView with the WebCoreMovieObserver.
1962          If we're in a media document, allow QTMovieView to render in its default mode; otherwise tell it to draw synchronously. 
1963         (WebCore::MediaPlayerPrivate::detachQTMovieView): Set the WebCoreMovieObserver's view to nil.
1964         (WebCore::MediaPlayerPrivate::createQTVideoRenderer): Nil check is now in setUpVideoRendering, which is the only caller of this.
1965         (WebCore::MediaPlayerPrivate::setUpVideoRendering): Added nil checks.  Call createQTMovieView for media documents.
1966         (WebCore::MediaPlayerPrivate::tearDownVideoRendering): Call detachQTMovieView if a QTMovieView exists.
1967         (WebCore::MediaPlayerPrivate::setRect): Call setFrame on the QTMovieView if necessary.
1968         (-[WebCoreMovieObserver menuForEventDelegate:]): Added. Returns the frame view's menu.
1969         (-[WebCoreMovieObserver setView:]): Added.
1970
1971 2008-07-29  Adele Peterson  <adele@apple.com>
1972
1973         Reviewed by Dan Bernstein.
1974
1975         Fix for <rdar://problem/6073372> Move built-in controls below <video> element for standalone media documents
1976
1977         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added -webkit-full-page-media pseudo class.
1978         * css/CSSSelector.h: (WebCore::CSSSelector::): Added PseudoFullPageMedia.
1979         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Added case to
1980         apply PseudoFullPageMedia for elements in a full page media document.
1981
1982         * css/html4.css: Added rule to shift control panel down for video in standalone media documents.
1983
1984         * rendering/RenderMedia.cpp:
1985         (WebCore::RenderMedia::lowestPosition): Added implementation that takes the controls into account.
1986         This makes sure that scrollbars on the page will account for controls not directly contained in the RenderMedia.
1987         (WebCore::RenderMedia::rightmostPosition): ditto.
1988         (WebCore::RenderMedia::leftmostPosition): ditto.
1989         * rendering/RenderMedia.h:
1990
1991 2008-07-29  Sam Weinig  <sam@webkit.org>
1992
1993         Reviewed by Anders Carlsson.
1994
1995         <rdar://problem/6084585> Investigate upload progress events.
1996
1997         - Add progress notifications for data being sent via a ResourceHandle.
1998         - Add XMLHttpRequestUpload support.
1999
2000         Upload notifications only work on the Mac right now as the CFNetwork API
2001         on windows does not expose enough information.
2002
2003         Tests: http/tests/xmlhttprequest/upload-onload-event.html
2004                http/tests/xmlhttprequest/upload-onloadstart-event.html
2005                http/tests/xmlhttprequest/upload-onprogress-event.html
2006                http/tests/xmlhttprequest/upload-progress-events.html
2007
2008         * DerivedSources.make:
2009         * GNUmakefile.am:
2010         * WebCore.pro:
2011         * WebCore.vcproj/WebCore.vcproj:
2012         * WebCore.xcodeproj/project.pbxproj:
2013         * WebCoreSources.bkl:
2014         * bindings/js/JSEventTargetBase.cpp:
2015         (WebCore::toJS):
2016         * bindings/js/JSXMLHttpRequestCustom.cpp:
2017         (WebCore::JSXMLHttpRequest::mark):
2018         * bindings/js/JSXMLHttpRequestUploadCustom.cpp: Added.
2019         (WebCore::JSXMLHttpRequestUpload::mark):
2020         (WebCore::JSXMLHttpRequestUpload::onabort):
2021         (WebCore::JSXMLHttpRequestUpload::setOnabort):
2022         (WebCore::JSXMLHttpRequestUpload::onerror):
2023         (WebCore::JSXMLHttpRequestUpload::setOnerror):
2024         (WebCore::JSXMLHttpRequestUpload::onload):
2025         (WebCore::JSXMLHttpRequestUpload::setOnload):
2026         (WebCore::JSXMLHttpRequestUpload::onloadstart):
2027         (WebCore::JSXMLHttpRequestUpload::setOnloadstart):
2028         (WebCore::JSXMLHttpRequestUpload::onprogress):
2029         (WebCore::JSXMLHttpRequestUpload::setOnprogress):
2030         (WebCore::JSXMLHttpRequestUpload::addEventListener):
2031         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
2032         (WebCore::JSXMLHttpRequestUpload::dispatchEvent):
2033         * dom/EventTarget.cpp:
2034         (WebCore::EventTarget::toXMLHttpRequestUpload):
2035         * dom/EventTarget.h:
2036         * loader/ResourceLoader.cpp:
2037         (WebCore::ResourceLoader::didSendData):
2038         * loader/ResourceLoader.h:
2039         * loader/SubresourceLoader.cpp:
2040         (WebCore::SubresourceLoader::didSendData):
2041         * loader/SubresourceLoader.h:
2042         * loader/SubresourceLoaderClient.h:
2043         (WebCore::SubresourceLoaderClient::didSendData):
2044         * page/DOMWindow.idl:
2045         * platform/network/FormData.cpp:
2046         (WebCore::FormData::FormData):
2047         * platform/network/FormData.h:
2048         (WebCore::FormData::alwaysStream):
2049         (WebCore::FormData::setAlwaysStream):
2050         * platform/network/ResourceHandleClient.h:
2051         (WebCore::ResourceHandleClient::didSendData):
2052         * platform/network/mac/FormDataStreamMac.h:
2053         * platform/network/mac/FormDataStreamMac.mm:
2054         (WebCore::getStreamFormDataMap):
2055         (WebCore::getStreamResourceHandleMap):
2056         (WebCore::associateStreamWithResourceHandle):
2057         (WebCore::disassociateStreamWithResourceHandle):
2058         (WebCore::DidSendDataCallbackData::DidSendDataCallbackData):
2059         (WebCore::performDidSendDataCallback):
2060         (WebCore::formCreate):
2061         (WebCore::formFinalize):
2062         (WebCore::formRead):
2063         (WebCore::setHTTPBody):
2064         (WebCore::httpBodyFromStream):
2065         * platform/network/mac/ResourceHandleMac.mm:
2066         (WebCore::ResourceHandle::start):
2067         (WebCore::ResourceHandle::cancel):
2068         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
2069         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
2070         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
2071         * xml/XMLHttpRequest.cpp:
2072         (WebCore::XMLHttpRequest::XMLHttpRequest):
2073         (WebCore::XMLHttpRequest::~XMLHttpRequest):
2074         (WebCore::XMLHttpRequest::upload):
2075         (WebCore::XMLHttpRequest::open):
2076         (WebCore::XMLHttpRequest::send):
2077         (WebCore::XMLHttpRequest::createRequest):
2078         (WebCore::XMLHttpRequest::abort):
2079         (WebCore::XMLHttpRequest::networkError):
2080         (WebCore::XMLHttpRequest::abortError):
2081         (WebCore::XMLHttpRequest::didSendData):
2082         * xml/XMLHttpRequest.h:
2083         (WebCore::XMLHttpRequest::optionalUpload):
2084         * xml/XMLHttpRequest.idl:
2085         * xml/XMLHttpRequestUpload.cpp: Added.
2086         (WebCore::XMLHttpRequestUpload::XMLHttpRequestUpload):
2087         (WebCore::XMLHttpRequestUpload::addEventListener):
2088         (WebCore::XMLHttpRequestUpload::removeEventListener):
2089         (WebCore::XMLHttpRequestUpload::dispatchEvent):
2090         (WebCore::XMLHttpRequestUpload::dispatchXMLHttpRequestProgressEvent):
2091         (WebCore::XMLHttpRequestUpload::dispatchAbortEvent):
2092         (WebCore::XMLHttpRequestUpload::dispatchErrorEvent):
2093         (WebCore::XMLHttpRequestUpload::dispatchLoadEvent):
2094         (WebCore::XMLHttpRequestUpload::dispatchLoadStartEvent):
2095         (WebCore::XMLHttpRequestUpload::dispatchProgressEvent):
2096         * xml/XMLHttpRequestUpload.h: Added.
2097         (WebCore::XMLHttpRequestUpload::create):
2098         (WebCore::XMLHttpRequestUpload::toXMLHttpRequestUpload):
2099         (WebCore::XMLHttpRequestUpload::associatedXMLHttpRequest):
2100         (WebCore::XMLHttpRequestUpload::disconnectXMLHttpRequest):
2101         (WebCore::XMLHttpRequestUpload::setOnAbortListener):
2102         (WebCore::XMLHttpRequestUpload::onAbortListener):
2103         (WebCore::XMLHttpRequestUpload::setOnErrorListener):
2104         (WebCore::XMLHttpRequestUpload::onErrorListener):
2105         (WebCore::XMLHttpRequestUpload::setOnLoadListener):
2106         (WebCore::XMLHttpRequestUpload::onLoadListener):
2107         (WebCore::XMLHttpRequestUpload::setOnLoadStartListener):
2108         (WebCore::XMLHttpRequestUpload::onLoadStartListener):
2109         (WebCore::XMLHttpRequestUpload::setOnProgressListener):
2110         (WebCore::XMLHttpRequestUpload::onProgressListener):
2111         (WebCore::XMLHttpRequestUpload::eventListeners):
2112         (WebCore::XMLHttpRequestUpload::refEventTarget):
2113         (WebCore::XMLHttpRequestUpload::derefEventTarget):
2114         * xml/XMLHttpRequestUpload.idl: Added.
2115
2116 2008-07-29  Maxime Britto  <britto@apple.com>
2117
2118         Reviewed by Darin.
2119
2120         <rdar://problem/6095023> "When pan-scrolling, mouse click on hyperlink stop the pan-Scroll but follow the link after that."
2121         With this patch we now stop the pan scroll and swallow the event to prevent any following action.
2122
2123         * page/EventHandler.cpp:
2124         (WebCore::EventHandler::handleMousePressEvent): If we were in pan scrolling mode we no longer just stop the pan scroll and continue with the function, we now stop and return true to attest that we swallowed the event.
2125
2126 2008-07-29  Maxime Britto  <britto@apple.com>
2127
2128         Reviewed by adele.
2129
2130         Test: fast/events/autoscroll-in-textfield.html
2131
2132         * rendering/RenderObject.cpp:
2133         (WebCore::RenderObject::canBeProgramaticallyScrolled): reverted a bad change introduced in r35244
2134         nb:the test case introduced in r35244 is still working.
2135
2136 2008-07-29  Maxime Britto  <britto@apple.com>
2137
2138         Reviewed by adele.
2139         This test verifies that the autoscroll works within textfields.
2140
2141         * fast/events/autoscroll-in-textfield-expected.txt: Added.
2142         * fast/events/autoscroll-in-textfield.html: Added.
2143
2144 2008-07-29  Adele Peterson  <adele@apple.com>
2145
2146         Reviewed by Sammy Weinig.
2147
2148         Fix for <rdar://problem/6103024>
2149         When a QT movie is loaded directly in the browser, I can't pause it by single-clicking on the video
2150
2151         Test: media/video-click-dlbclick-standalone.html
2152
2153         * loader/MediaDocument.cpp: (WebCore::MediaDocument::defaultEventHandler): For standalone media documents,
2154         match the default Quicktime plugin behavior to allow clicking and double-clicking to pause and play the media.
2155         * loader/MediaDocument.h: Added defaultEventHandler.
2156
2157         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::defaultEventHandler): Return early if the event has been handled.
2158         * rendering/MediaControlElements.cpp:
2159         (WebCore::MediaControlMuteButtonElement::defaultEventHandler): Correct what was probably a typo.  Instead of "event->defaultHandled()",
2160          it is supposed to be "event->setDefaultHandled()".
2161         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
2162         (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
2163         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
2164
2165 2008-07-29  Dan Bernstein  <mitz@apple.com>
2166
2167         Reviewed by Dave Hyatt.
2168
2169         - fix <rdar://problem/6059648> Some content not visible when the window is short at courtneyalbright.com
2170
2171         Test: fast/overflow/float-in-relpositioned.html
2172
2173         * rendering/RenderBlock.cpp:
2174         (WebCore::RenderBlock::lowestPosition): Add this block's relative offset
2175         to floats' and positioned objects' lowest position.
2176         (WebCore::RenderBlock::rightmostPosition): Ditto.
2177         (WebCore::RenderBlock::leftmostPosition): Ditto.
2178         * rendering/RenderBox.cpp:
2179         (WebCore::RenderBox::lowestPosition): Removed redundant test.
2180         (WebCore::RenderBox::rightmostPosition): Ditto.
2181         (WebCore::RenderBox::leftmostPosition): Ditto.
2182
2183 2008-07-29  Dan Bernstein  <mitz@apple.com>
2184
2185         Reviewed by Dave Hyatt.
2186
2187         - fix <rdar://problem/6048566> Repaint original element's position, not its offset position
2188
2189         Test: fast/repaint/layout-state-relative.html
2190
2191         * rendering/RenderBox.cpp:
2192         (WebCore::RenderBox::absolutePosition): Changed the LayoutState-enabled
2193         code path to account for the object's relative offset.
2194         (WebCore::RenderBox::computeAbsoluteRepaintRect): Ditto.
2195
2196 2008-07-29  Keishi Hattori  <casey.hattori@gmail.com>
2197
2198         Fixed Bug 19158: Inspector should support console.group/console.groupEnd
2199
2200         <https://bugs.webkit.org/show_bug.cgi?id=19158>
2201
2202         Reviewed by Tim Hatcher and Adam Roben.
2203
2204         * bindings/js/JSConsoleCustom.cpp:
2205         (WebCore::JSConsole::group): Added.
2206         * page/Console.cpp:
2207         (WebCore::Console::group): Added.
2208         (WebCore::Console::groupEnd): Added.
2209         * page/Console.h:
2210         (WebCore::):
2211         * page/Console.idl: Added group/groupEnd.
2212         * page/InspectorController.cpp:
2213         (WebCore::ConsoleMessage::ConsoleMessage):
2214         (WebCore::InspectorController::InspectorController): Added m_groupLevel.
2215         (WebCore::InspectorController::addMessageToConsole): Added groupLevel argument.
2216         (WebCore::InspectorController::startGroup): Increments m_groupLevel by one and calls js function if needed.
2217         (WebCore::InspectorController::endGroup): Decrements m_groupLevel by one and calls js function if needed.
2218         (WebCore::InspectorController::addScriptConsoleMessage): Added groupLevel argument.
2219         (WebCore::InspectorController::didCommitLoad): Resets m_groupLevel.
2220         * page/InspectorController.h:
2221         * page/inspector/Console.js:
2222         (WebInspector.Console): Added groupLevel and currentGroup topGroup.
2223         (WebInspector.Console.addMessage): Calls addMessage method in the currentGroup.
2224         (WebInspector.Console.startGroup): Added.
2225         (WebInspector.Console.endGroup): Added.
2226         (WebInspector.Console.clearMessages): Resets groupLevel and currentGroup.
2227         (WebInspector.ConsoleMessage): Added groupLevel property.
2228         (WebInspector.ConsoleMessage.MessageLevel.GroupTitle): Added.
2229         (WebInspector.ConsoleGroup): Added.
2230         (WebInspector.ConsoleGroup.addMessage): Adds console message to group.
2231         (WebInspector.ConsoleGroup._titleClicked): Adds "collapsed" style class.
2232         * page/inspector/inspector.css:
2233         * page/inspector/inspector.js:
2234         (WebInspector.startGroupInConsole): Calls console.startGroup
2235         (WebInspector.endGroupInConsole): Calls console.endGroup
2236
2237 2008-07-29  Adam Roben  <aroben@apple.com>
2238
2239         Add names for WebCore's threads
2240
2241         Reviewed by Anders Carlsson.
2242
2243         * loader/icon/IconDatabase.cpp:
2244         (WebCore::IconDatabase::open):
2245         * storage/DatabaseThread.cpp:
2246         (WebCore::DatabaseThread::start):
2247         * storage/LocalStorageThread.cpp:
2248         (WebCore::LocalStorageThread::start):
2249         Pass in names to createThread.
2250
2251         * platform/network/cf/ResourceHandleCFNet.cpp:
2252         (WebCore::runLoaderThread):
2253         (WebCore::ResourceHandle::loaderRunLoop):
2254         Changed to use WTF::createThread.
2255
2256 2008-07-28  Anders Carlsson  <andersca@apple.com>
2257
2258         Reviewed by Kevin Decker.
2259
2260         Based on a patch from Dimcho Balev.
2261         
2262         Windows part of 
2263     
2264         https://bugs.webkit.org/show_bug.cgi?id=18676
2265         <rdar://problem/6106578>
2266         Plug-In API Proposal: Enable plugins to receive response body when an HTTP error occurs
2267
2268         * plugins/PluginStream.cpp:
2269         (WebCore::PluginStream::wantsAllStreams):
2270         * plugins/PluginStream.h:
2271
2272 2008-07-28  Brady Eidson  <beidson@apple.com>
2273
2274         Reviewed by Sam Weinig
2275
2276         Test: security/autocomplete-cleared-on-back.html
2277
2278         <rdar://problem/6093281> - autocomplete="off" should work when going back
2279
2280         Taken care of in two ways:
2281         1 - Listening for the page cache notification to clear the form, in cases where the page
2282             is being restored from the page cache
2283         2 - Not saving such form elements when doing the normal "save state" to a history item,
2284             for cases with no page cache
2285
2286         * html/HTMLFormElement.cpp:
2287         (WebCore::HTMLFormElement::~HTMLFormElement):
2288         (WebCore::HTMLFormElement::parseMappedAttribute):
2289         (WebCore::HTMLFormElement::didRestoreFromCache):
2290         (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
2291         (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
2292         * html/HTMLFormElement.h:
2293
2294         * html/HTMLInputElement.cpp:
2295         (WebCore::HTMLInputElement::~HTMLInputElement):
2296         (WebCore::HTMLInputElement::setInputType):
2297         (WebCore::HTMLInputElement::saveState):
2298         (WebCore::HTMLInputElement::parseMappedAttribute):
2299         (WebCore::HTMLInputElement::needsCacheCallback):
2300         (WebCore::HTMLInputElement::registerForCacheCallbackIfNeeded): Only register if the type or attribute
2301           indicate we should.
2302         (WebCore::HTMLInputElement::unregisterForCacheCallbackIfNeeded): Only unregister if both the type
2303           and attribute are clear of needing registration.
2304         (WebCore::HTMLInputElement::didRestoreFromCache):
2305         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
2306         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
2307         * html/HTMLInputElement.h:
2308
2309 2008-07-28  David Hyatt  <hyatt@apple.com>
2310
2311         Add support for CSS variable declaration blocks.
2312
2313         Reviewed by Sam
2314
2315         Added tests in fast/css/variables.
2316
2317         * css/CSSGrammar.y:
2318         * css/CSSMutableStyleDeclaration.h:
2319         (WebCore::CSSMutableStyleDeclaration::isMutableStyleDeclaration):
2320         * css/CSSParser.cpp:
2321         (WebCore::CSSParser::addVariableDeclarationBlock):
2322         * css/CSSParser.h:
2323         * css/CSSProperty.cpp:
2324         (WebCore::CSSProperty::cssText):
2325         * css/CSSPropertyNames.in:
2326         * css/CSSStyleSelector.cpp:
2327         (WebCore::CSSStyleSelector::addMatchedDeclaration):
2328         (WebCore::CSSStyleSelector::resolveVariablesForDeclaration):
2329         * css/CSSStyleSelector.h:
2330         * css/CSSValueList.h:
2331         (WebCore::CSSValueList::isValueList):
2332         * css/CSSVariablesDeclaration.cpp:
2333         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
2334         (WebCore::CSSVariablesDeclaration::getVariableValue):
2335         (WebCore::CSSVariablesDeclaration::removeVariable):
2336         (WebCore::CSSVariablesDeclaration::addParsedVariable):
2337         (WebCore::CSSVariablesDeclaration::getParsedSimpleVariable):
2338         (WebCore::CSSVariablesDeclaration::getParsedComplexVariable):
2339         * css/CSSVariablesDeclaration.h:
2340         (WebCore::CSSVariablesDeclaration::create):
2341         * css/StyleBase.cpp:
2342         (WebCore::StyleBase::cssText):
2343         * css/StyleBase.h:
2344         (WebCore::StyleBase::isValueList):
2345         (WebCore::StyleBase::isMutableStyleDeclaration):
2346
2347 2008-07-28  Anders Carlsson  <andersca@apple.com>
2348
2349         Reviewed by Sam.
2350
2351         <rdar://problem/6098335>
2352         https://bugs.webkit.org/show_bug.cgi?id=20150
2353         
2354         Handle willSendRequest correctly.
2355
2356         * loader/SubresourceLoader.cpp:
2357         (WebCore::SubresourceLoader::willSendRequest):
2358         Make sure to keep the previous URL around so we know when to call willSendRequest.
2359         
2360         * xml/XMLHttpRequest.cpp:
2361         (WebCore::XMLHttpRequest::processSyncLoadResults):
2362         Abort if we don't have access to the response URL.
2363         
2364         (WebCore::XMLHttpRequest::willSendRequest):
2365         Dispatch a network error if we can't access the new URL.
2366
2367 2008-07-28  Geoffrey Garen  <ggaren@apple.com>
2368
2369         Reviewed by Sam Weinig.
2370
2371         Renamed "ConstructTypeNative" => "ConstructTypeHost".
2372         
2373 2008-07-28  Anders Carlsson  <andersca@apple.com>
2374
2375         Reviewed by Kevin Decker.
2376
2377         Based on a patch by Dimcho Balev.
2378
2379         https://bugs.webkit.org/show_bug.cgi?id=18676
2380         <rdar://problem/6106578>
2381         Plug-In API Proposal: Enable plugins to receive response body when an HTTP error occurs
2382         
2383         * bridge/npapi.h:
2384         Add new enum values.
2385         
2386         * loader/NetscapePlugInStreamLoader.cpp:
2387         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
2388         When the plug-in indicates that it wants all streams to be delivered, don't cancel the stream
2389         if an error occurs.
2390         
2391         * loader/NetscapePlugInStreamLoader.h:
2392         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
2393         Add new client method.
2394
2395 2008-07-27  Sam Weinig  <sam@webkit.org>
2396
2397         Reviewed by Oliver Hunt.
2398
2399         Fix for https://bugs.webkit.org/show_bug.cgi?id=20176
2400         querySelectorAll id optimization no longer working
2401
2402         Turn the querySelector/querySelectorAll id optimization back on
2403         for only strict and almost strict mode.  In quirks mode, the optimiztion
2404         won't work as the id match is not case sensitive.
2405
2406         Tests: fast/dom/SelectorAPI/caseID-almost-strict.html
2407                fast/dom/SelectorAPI/caseID-strict.html
2408                fast/dom/SelectorAPI/caseID.html
2409
2410         * dom/Node.cpp:
2411         (WebCore::Node::querySelector):
2412         (WebCore::Node::querySelectorAll):
2413         * dom/SelectorNodeList.cpp:
2414         (WebCore::createSelectorNodeList):
2415         * dom/SelectorNodeList.h:
2416
2417 2008-07-27  Anatoli Papirovski  <apapirovski@mac.com>
2418
2419         Reviewed by Dave Hyatt.
2420
2421         Fix for https://bugs.webkit.org/show_bug.cgi?id=14346
2422         Modified the css parser:
2423         - not to fail when closing braces are not found for 
2424           a declaration at the end of the file
2425         - not to accept "!important fail" as valid
2426         - to keep accepting @import when it comes after invalid @ rules
2427         - not to drop the whole @media block when there's an error before the 
2428           closing brace
2429         + some other minor css parsing revisions.
2430
2431         CSSGrammar.y tweaked by David Kilzer to fix Tiger builds.
2432
2433         * css/CSSGrammar.y:
2434
2435 2008-07-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
2436
2437         Reviewed by Eric Seidel.
2438
2439         Use --outputDir instead of --output when invoking make_names.pl
2440         There's no option named "output" in make_names.pl
2441
2442         * GNUmakefile.am:
2443         * WebCore.pro:
2444         * DerivedSources.make: Remove --output. Not necessary here.
2445         * bindings/scripts/generate-bindings.pl: Rename --outputdir to
2446           --outputDir for consistency with make_names.pl
2447
2448 2008-07-26  Dirk Schulze  <vbs85@gmx.de>
2449
2450         Reviewed by Eric Seidel.
2451
2452         http://bugs.webkit.org/show_bug.cgi?id=18694
2453         [CAIRO] Problem with rotation in a given matrix in SVG
2454
2455         Changed values given to AffineTransform.
2456
2457         * platform/graphics/cairo/AffineTransformCairo.cpp:
2458         (WebCore::AffineTransform::AffineTransform):
2459         (WebCore::AffineTransform::setMatrix):
2460
2461 2008-07-26  Jan Michael Alonzo  <jmalonzo@webkit.org>
2462
2463         Reviewed by Mark Rowe.
2464
2465         Call curl_global_cleanup() to release resources acquired by curl_global_init()
2466
2467         * platform/network/curl/ResourceHandleManager.cpp:
2468         (WebCore::ResourceHandleManager::~ResourceHandleManager):
2469
2470 2008-07-26  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
2471
2472         Reviewed by Simon Hausmann.
2473
2474         Bug 18938: [GTK] Plugins not resized
2475         https://bugs.webkit.org/show_bug.cgi?id=18938
2476
2477         * plugins/PluginView.cpp:
2478         (WebCore::PluginView::setFrameGeometry): When viewing a full-page
2479         plugin in unix, geometry changes have to be passed to the plugin.
2480
2481 2008-07-26  Keishi Hattori  <casey.hattori@gmail.com>
2482
2483         Reviewed by Adam Roben.
2484
2485         Add console.time/timeEnd.
2486         https://bugs.webkit.org/show_bug.cgi?id=19159
2487
2488         * manual-tests/inspector/console-time.html: Added. Test cases for console.time/timeEnd.
2489         * page/Console.cpp:
2490         (WebCore::Console::time): Added.
2491         (WebCore::Console::timeEnd): Added.
2492         * page/Console.h:
2493         * page/Console.idl: Added console.time/timeEnd.
2494         * page/InspectorController.cpp:
2495         (WebCore::InspectorController::startTiming): Added.
2496         (WebCore::InspectorController::stopTiming): Added.
2497         * page/InspectorController.h:
2498
2499 2008-07-26  Dirk Schulze  <vbs85@gmx.de>
2500
2501         Reviewed by Nikolas Zimmermann.
2502
2503         Fixes rendering issues with gradients in SVG/Cairo.
2504
2505         * platform/graphics/cairo/PathCairo.cpp:
2506         (WebCore::Path::boundingRect):
2507         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
2508         (WebCore::applyStrokeStyleToContext):
2509         (WebCore::SVGPaintServerGradient::setup):
2510
2511 2008-07-26  Dirk Schulze  <vbs85@gmx.de>
2512
2513         Reviewed by Nikolas Zimmermann.
2514
2515         Added pattern-support for SVG in Cairo.
2516
2517         * svg/graphics/cairo/SVGPaintServerPatternCairo.cpp:
2518         (WebCore::applyStrokeStyleToContext):
2519         (WebCore::SVGPaintServerPattern::setup):
2520
2521 2008-07-26  Keishi Hattori  <casey.hattori@gmail.com>
2522
2523         Reviewed by Adam Roben.
2524
2525         Fixed bug 18540: console.log('multiple', 'strings') quotes all strings after the first
2526         <https://bugs.webkit.org/show_bug.cgi?id=18540>
2527
2528         * page/inspector/Console.js:
2529         (WebInspector.ConsoleMessage.prototype._format): String arguments are appended without formatting.
2530
2531 2008-07-26  Anthony Ricaud  <rik24d@gmail.com>
2532
2533         Reviewed by Tim Hatcher.
2534
2535         <https://bugs.webkit.org/show_bug.cgi?id=20055> Line highlighting should last longer
2536
2537         Restore the fade out effect after highlighting.
2538
2539         * page/inspector/SourceFrame.js: Add a class for fade-out effects and sets it at the end of highlighting time.
2540
2541 2008-07-26  Michelangelo De Simone  <michelangelo@me.com>
2542
2543         Reviewed by Adele Petersen.
2544
2545         Added the simple willValidate attribute to form controls according to
2546         WebForms 2 spec.
2547
2548         URL: http://www.w3.org/TR/web-forms-2/#willvalidate
2549
2550         Tests: fast/forms/willvalidate-000.html
2551                fast/forms/willvalidate-001.html
2552                fast/forms/willvalidate-002.html
2553                fast/forms/willvalidate-003.html
2554                fast/forms/willvalidate-004.html
2555                fast/forms/willvalidate-005.html
2556                fast/forms/willvalidate-006.html
2557                fast/forms/willvalidate-007.html
2558                fast/forms/willvalidate-008.html
2559                fast/forms/willvalidate-009.html
2560
2561         * html/HTMLButtonElement.h: Added willValidate(), always false.
2562         * html/HTMLButtonElement.idl: willValidate attribute exposed.
2563         * html/HTMLFieldSetElement.h: Added willValidate(), always false.
2564         * html/HTMLFieldSetElement.idl: willValidate attribute exposed.
2565         * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::willValidate):
2566         Added base willValidate() implementation.
2567         * html/HTMLFormControlElement.h: Added willValidate().
2568         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::willValidate):
2569         Added willValidate(), checks for input type.
2570         * html/HTMLInputElement.h: Added willValidate()
2571         * html/HTMLInputElement.idl: willValidate attribute exposed.
2572         * html/HTMLSelectElement.idl: willValidate attribute exposed.
2573         * html/HTMLTextAreaElement.idl: willValidate attribute exposed.
2574
2575 2008-07-26  Mark Rowe  <mrowe@apple.com>
2576
2577         Build fix.
2578
2579         * loader/FrameLoader.cpp:
2580         (WebCore::FrameLoader::load): Use 0 rather than nil as this is a C++ file.
2581
2582 2008-07-26  Mark Rowe  <mrowe@apple.com>
2583
2584         Build fix.
2585
2586         * loader/FrameLoader.h: Use 0 rather than nil as this is a C++ header.
2587
2588 2008-07-26  Daniel Jalkut  <jalkut@red-sweater.com>
2589
2590         Reviewed by Geoff Garen.
2591
2592         Revised the FrameLoader class to clean up a variety of load methods, and hopefully
2593         move things closer to integrating into a smaller set of load methods. To this
2594         end, I renamed many of the overloaded load() methods to have more meaningful and 
2595         easier to search names.  I added comments to the header file to provide clues as 
2596         to how many of the load methods are being used, and how they fit into the loading 
2597         process. I suspect that the renamed methods and comments indicating their present 
2598         usage will facilitate easier cleanup by myself and others as inspiration strikes.
2599
2600         Updated clients of FrameLoader where necessary to adapt to the new method names and signatures.
2601
2602         Combined the 3 canLoad() methods into a single canLoad which expresses the 
2603         intended logic of the 3 with a single method interface.
2604
2605         Removed unnecessary "treatAsLocal" attribute of CachedResource. It was only called from
2606         one place in FrameLoader.cpp, and it derived at initialization time by calling back to FrameLoader.
2607
2608         Removed unused userGesture parameter to one variant of the urlSelected method, and 
2609         moved one of the urlSelected methods so that it lives nearer to its overloaded 
2610         sibling.
2611
2612         * WebCore.base.exp:
2613         * loader/Cache.cpp:
2614         (WebCore::Cache::requestResource):
2615         * loader/CachedResource.cpp:
2616         (WebCore::CachedResource::CachedResource):
2617         * loader/CachedResource.h:
2618         (WebCore::CachedResource::errorOccurred):
2619         * loader/FrameLoader.cpp:
2620         (WebCore::FrameLoader::createWindow):
2621         (WebCore::FrameLoader::urlSelected):
2622         (WebCore::FrameLoader::loadURLIntoChildFrame):
2623         (WebCore::FrameLoader::loadPlugin):
2624         (WebCore::FrameLoader::loadFrameRequestWithFormState):
2625         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues):
2626         (WebCore::FrameLoader::loadURL):
2627         (WebCore::FrameLoader::loadWithNavigationAction):
2628         (WebCore::FrameLoader::load):
2629         (WebCore::FrameLoader::loadWithDocumentLoader):
2630         (WebCore::FrameLoader::canLoad):
2631         (WebCore::FrameLoader::reloadAllowingStaleData):
2632         (WebCore::FrameLoader::reload):
2633         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2634         (WebCore::FrameLoader::submitForm):
2635         (WebCore::FrameLoader::loadPostRequest):
2636         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
2637         (WebCore::FrameLoader::loadItem):
2638         * loader/FrameLoader.h:
2639         * loader/SubresourceLoader.cpp:
2640         (WebCore::SubresourceLoader::create):
2641         * page/ContextMenuController.cpp:
2642         (WebCore::ContextMenuController::contextMenuItemSelected):
2643
2644 2008-07-26  Sam Weinig  <sam@webkit.org>
2645
2646         Reviewed by Dan Bernstein.
2647
2648         Fix https://bugs.webkit.org/show_bug.cgi?id=20122
2649         <rdar://problem/6089522>
2650         REGRESSION (r35075-r35110): Cannot enlarge images at Apple Store product page
2651
2652         Use strict parsing when in AlmostStrict mode.
2653
2654         Tests: fast/dom/SelectorAPI/dumpNodeList-almost-strict.html
2655                fast/dom/SelectorAPI/id-fastpath-almost-strict.html
2656                fast/dom/SelectorAPI/id-fastpath-strict.html
2657
2658         * dom/Node.cpp:
2659         (WebCore::Node::querySelector):
2660         (WebCore::Node::querySelectorAll):
2661
2662 2008-07-25  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2663
2664         Reviewed by Simon.
2665
2666         Switch off QPainter's anti aliasing when painting the widgets using QStyle
2667         because otherwise the widgets will look blurry and not crisp.
2668
2669         * platform/qt/RenderThemeQt.cpp:
2670         (WebCore::StylePainter::StylePainter):
2671         (WebCore::StylePainter::~StylePainter):
2672         * platform/qt/RenderThemeQt.h:
2673
2674 2008-07-25  Dan Bernstein  <mitz@apple.com>
2675
2676         Reviewed by Anders Carlsson.
2677
2678         - fix crash due to re-entering purgeInactiveFontData() now that it is
2679           called by releaseFontData()
2680
2681         Not testable in DumpRenderTree
2682
2683         * platform/graphics/FontCache.cpp:
2684         (WebCore::FontCache::purgeInactiveFontData): Added a reentry guard.
2685
2686 2008-07-25  Brady Eidson  <beidson@apple.com>
2687
2688         Reviewed by Sam
2689
2690         Test: security/set-form-autocomplete-attribute.html
2691
2692         Part of the fix for <rdar://problem/6093281> - Improper handling of autocomplete
2693
2694         The autocomplete attribute works on both <form> and <input> elements, but was not
2695         inherited properly when someone asked an <input> if it should autocomplete.
2696
2697         I fixed this up based on the rules in the current WF2 spec so if the <input> element
2698         has its own autocomplete attribute set, it will follow that but otherwise it will
2699         inherit from its parent <form>
2700
2701         * WebCore.base.exp:
2702
2703         * html/HTMLInputElement.cpp:
2704         (WebCore::HTMLInputElement::init):
2705         (WebCore::HTMLInputElement::autoComplete):
2706         (WebCore::HTMLInputElement::parseMappedAttribute):
2707         * html/HTMLInputElement.h:
2708         (WebCore::HTMLInputElement::):
2709
2710 2008-07-25  Wouter Bolsterlee  <uws+webkit@xs4all.nl>
2711
2712         Reviewed by Holger Freyther.
2713
2714         https://bugs.webkit.org/show_bug.cgi?id=20078
2715         [GTK] Use G_* macros instead of deprecated GTK_* macros in gtk2xtbin.h
2716
2717         * plugins/gtk/gtk2xtbin.h:
2718
2719 2008-07-25  Anders Carlsson  <andersca@apple.com>
2720
2721         Reviewed by Sam.
2722
2723         Add workaround for a Leopard bug which causes webarchive/test-xml-stylesheet.xml to fail.
2724
2725         * platform/network/mac/WebCoreURLResponse.mm:
2726         (-[NSURLResponse _webcore_MIMEType]):
2727
2728 2008-07-25  chris fleizach  <cfleizach@apple.com>
2729
2730         Reviewed by Beth Dakin
2731
2732         <rdar://problem/6084806> AX: REGRESSION: returned line number from TextArea is incorrect
2733
2734         Tests: accessibility/textarea-insertion-point-line-number.html
2735                accessibility/textarea-line-for-index.html
2736
2737         * page/AccessibilityObject.cpp:
2738         (WebCore::AccessibilityObject::lineForPosition):
2739         * page/AccessibilityObject.h:
2740         * page/mac/AccessibilityObjectWrapper.mm:
2741         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2742         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2743
2744 2008-07-25  Jacob Refstrup  <jacob.refstrup@hp.com>
2745
2746         Reviewed by mitz.
2747
2748         - fix https://bugs.webkit.org/show_bug.cgi?id=17906
2749         <rdar://problem/5805741> white-space: pre-wrap or -webkit-line-break: after-white-space text can overlap float at end of line
2750         
2751         Test: fast/block/float/editable-text-overlapping-float.html
2752
2753         * rendering/RenderBlock.h:
2754         * rendering/bidi.cpp:
2755         (WebCore::RenderBlock::skipTrailingWhitespace):
2756         - renamed to reflect usage and removed call to position floats; 
2757           they only get added
2758         (WebCore::RenderBlock::skipLeadingWhitespace):
2759         - renamed to reflect usage
2760         (WebCore::RenderBlock::findNextLineBreak):
2761         - use skipTrailingWhitespace at end of line (as before but with new
2762           name)
2763
2764 2008-07-25  Dan Bernstein  <mitz@apple.com>
2765
2766         Reviewed by Sam Weinig.
2767
2768         - Finish fixing https://bugs.webkit.org/show_bug.cgi?id=17097
2769           <rdar://problem/5715471> CGFontRefs (and HFONTs on Windows) leak because FontCache grows without bound
2770
2771         * platform/graphics/FontCache.cpp:
2772         (WebCore::FontDataCacheKeyTraits): Changed needsDestruction to true because FontPlatformData
2773         instances hold references to the platform resources and release them in the destructor.
2774         (WebCore::cTargetInactiveFontData): Added, replacing cInactiveFontDataPurgeRatio with the
2775         number of inactive FontData instances to leave in the cache when automatically purging.
2776         (WebCore::FontCache::getCachedFontData): Moved the code that checks if there are too many
2777         inactive FontData instances and if so calls purgeInactiveFontData() from here...
2778         (WebCore::FontCache::releaseFontData): ... to here.
2779         (WebCore::FontCache::purgeInactiveFontData): Added code to also purge the platform font data
2780         cache. All FontPlatformData instances that do not have entries in the font data cache are
2781         removed, thus releasing the platform resources (such as HFONTs and NSFonts).
2782
2783 2008-07-24  David Hyatt  <hyatt@apple.com>
2784
2785         Add support for an alternate syntax for CSS variables.  Testers on www-style will be able to try out
2786         both versions of the syntax in WebKit to help us make a decision regarding which one to go with.
2787
2788         Reviewed by Dan
2789
2790         Added fast/css/variables/alternate-syntax/ (duplicated all existing CSS variables tests)
2791
2792         * css/CSSGrammar.y:
2793         * css/CSSParser.cpp:
2794         (WebCore::CSSParser::createVariablesRule):
2795         (WebCore::CSSParser::checkForVariables):
2796         * css/CSSParser.h:
2797         * css/CSSParserValues.cpp:
2798         (WebCore::CSSParserValue::isVariable):
2799         (WebCore::CSSParserValueList::addValue):
2800         (WebCore::CSSParserValueList::deleteValueAt):
2801         (WebCore::CSSParserValue::createCSSValue):
2802         * css/CSSParserValues.h:
2803         * css/CSSPrimitiveValue.cpp:
2804         (WebCore::CSSPrimitiveValue::cleanup):
2805         (WebCore::CSSPrimitiveValue::getStringValue):
2806         (WebCore::CSSPrimitiveValue::cssText):
2807         (WebCore::CSSPrimitiveValue::parserValue):
2808         * css/CSSPrimitiveValue.h:
2809         (WebCore::CSSPrimitiveValue::):
2810         (WebCore::CSSPrimitiveValue::isVariable):
2811         * css/CSSStyleSelector.cpp:
2812         (WebCore::CSSStyleSelector::addMatchedDeclaration):
2813         * css/CSSVariablesRule.cpp:
2814         (WebCore::CSSVariablesRule::CSSVariablesRule):
2815         (WebCore::CSSVariablesRule::cssText):
2816         * css/CSSVariablesRule.h:
2817         (WebCore::CSSVariablesRule::create):
2818         * css/maketokenizer:
2819         * css/tokenizer.flex:
2820
2821 2008-07-25  Maxime Britto  <britto@apple.com>
2822
2823         Reviewed by Anders Carlsson.
2824
2825         <rdar://6102387> "REGRESSION: horizontal scroll with the mouse wheel is inverted on some subframes"
2826
2827         * page/EventHandler.cpp:
2828         (WebCore::EventHandler::handleWheelEvent): Inverted the scroll direction relative to the delta value (positive scrolls left,negative scrolls right)
2829
2830 2008-07-25  Adele Peterson  <adele@apple.com>
2831
2832         Another build fix.
2833
2834         * platform/win/PlatformScrollBarSafari.cpp:
2835         (WebCore::PlatformScrollbar::paint):
2836
2837 2008-07-25  Adele Peterson  <adele@apple.com>
2838
2839         More build fixes.
2840
2841         * platform/win/PlatformScrollBarSafari.cpp:
2842         (WebCore::PlatformScrollbar::paint):
2843
2844 2008-07-25  Adele Peterson  <adele@apple.com>
2845
2846         Build fix.
2847
2848         * platform/win/PlatformScrollBarSafari.cpp:
2849
2850 2008-07-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
2851
2852         Reviewed by Simon
2853
2854         Provide access to the underlying QKeyEvent in PlatformKeyboardEvent.
2855
2856         * platform/PlatformKeyboardEvent.h: add accessor and member.
2857         * platform/qt/PlatformKeyboardEventQt.cpp: copy pointer in ctor.
2858         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2859
2860 2008-07-25  Simon Hausmann  <hausmann@webkit.org>
2861
2862         Fix linking of QtWebKit against the statically built JavaScriptCore
2863         library, under Windows/Mac we may need _d/_debug suffixes.
2864
2865         * WebCore.pro:
2866
2867 2008-07-25  Simon Hausmann  <hausmann@webkit.org>
2868
2869         Rubber-stamped by Lars.
2870
2871         Fix the Qt build by adapting to the latest ArgList API changes and
2872         replacing the inclusion of npapi.h in MainThreadScheduler with a forward
2873         declaration of NPP to avoid an include conflict. npapi.h on X11 includes
2874         X headers, which include wonderful defines such as "#define Status" that
2875         cause conflicts.
2876
2877         * bridge/qt/qt_runtime.cpp:
2878         (KJS::Bindings::findMethodIndex):
2879         (KJS::Bindings::QtRuntimeConnectionMethod::call):
2880         * plugins/PluginMainThreadScheduler.h:
2881
2882 2008-07-25  Simon Hausmann  <hausmann@webkit.org>
2883
2884         Discussed with and rubber-stamped by Lars.
2885
2886         Fix the build system for the Qt port.
2887
2888         Recent JavaScriptCore changes require the addition of JavaScriptCore/API to the
2889         include search path. With a build process that combines JavaScriptCore and
2890         WebCore in one build process/Makefile the existance of
2891         JavaScriptCore/API/Node.h and WebCore/dom/Node.h causes include conflicts.
2892
2893         This commit solves this by introducing a separate build of JavaScriptCore into
2894         a static library.
2895
2896         As a result of the split-up a race-condition due to broken dependencies of
2897         regular source files to header files of generated sources showed up very
2898         frequently when doing parallel builds (which the buildbot does). This commit at
2899         the same time tries to address the dependency problem by making the
2900         addExtraCompiler() function also generate a pseudo extra compiler that
2901         represents the header file output, so that qmake is aware of the creation of
2902         the header file for dependency calculation.
2903
2904         At the same time I removed a lot of cruft from the pro files to ease maintenance.
2905
2906         * WebCore.pro:
2907
2908 2008-07-24  kevino  <kevino@theolliviers.com>
2909
2910         wx build fix on Win for plugins coode.
2911
2912         * plugins/PluginDatabase.cpp:
2913         * plugins/PluginView.cpp:
2914         (WebCore::PluginView::PluginView):
2915         * plugins/PluginView.h:
2916
2917 2008-07-24  Sam Weinig  <sam@webkit.org>
2918
2919         Reviewed by Anders Carlsson.
2920
2921         Make isElementNode() non-virtual for a speedup on many benchmarks
2922         including 20% on http://ejohn.org/apps/fragment/.
2923
2924         - Replace Node::m_attrWasSpecifiedOrElementHasRareData with bits in 
2925           Element and Attr where space was available.  Use the new free bit
2926           to represent if an node is an element or not.
2927
2928         * dom/Attr.cpp:
2929         (WebCore::Attr::Attr):
2930         * dom/Attr.h:
2931         (WebCore::Attr::specified):
2932         (WebCore::Attr::setSpecified):
2933         * dom/ContainerNode.cpp:
2934         (WebCore::ContainerNode::ContainerNode):
2935         * dom/ContainerNode.h:
2936         * dom/Element.cpp:
2937         (WebCore::Element::Element):
2938         * dom/Element.h:
2939         (WebCore::Element::hasRareData):
2940         (WebCore::Element::setHasRareData):
2941         * dom/EventTargetNode.cpp:
2942         (WebCore::EventTargetNode::EventTargetNode):
2943         * dom/EventTargetNode.h:
2944         * dom/Node.cpp:
2945         (WebCore::Node::Node):
2946         * dom/Node.h:
2947         (WebCore::Node::isElementNode):
2948
2949 2008-07-24  Dan Bernstein  <mitz@apple.com>
2950
2951         Reviewed by Dave Hyatt.
2952
2953         - fix <rdar://problem/6082111> REGRESSION (r31876): Root element with percent height does not resize when resizing the window vertically
2954
2955         Not testable in DumpRenderTree
2956
2957         * rendering/RenderView.cpp:
2958         (WebCore::RenderView::layout): Ensured that all children with percentage
2959         heights get laid out again if the height changes.
2960
2961 2008-07-24  kevino  <kevino@theolliviers.com>
2962
2963         Windows build fix for wx. wx doesn't implement pan scrolling yet. 
2964
2965         * page/EventHandler.cpp:
2966         (WebCore::EventHandler::handleAutoscroll):
2967         (WebCore::EventHandler::autoscrollTimerFired):
2968         (WebCore::EventHandler::stopAutoscrollTimer):
2969         (WebCore::EventHandler::handleMousePressEvent):
2970
2971 2008-07-24  David Hyatt  <hyatt@apple.com>
2972
2973         Fix for bug 18673, crash when using full page zoom on generated content.  Don't call
2974         intrinsicSizeChanged when we are first setting our style.
2975
2976         Reviewed by olliej
2977
2978         * ChangeLog:
2979         * rendering/RenderReplaced.cpp:
2980         (WebCore::RenderReplaced::setStyle):
2981
2982 2008-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
2983
2984         Reviewed by Eric.
2985
2986         Bug 20053: .in files should use a custom format instead of XML
2987
2988         - Remove our XML parser perl module (XML::Tiny)
2989
2990         - Add a custom perl parser
2991
2992         - Move XML files to the new format
2993
2994         * bindings/scripts/InFilesParser.pm: Added.
2995         * bindings/scripts/XMLTiny.pm: Removed.
2996         * dom/make_names.pl: Switched to our new
2997         parser.
2998
2999         * html/HTMLAttributeNames.in: Switched to
3000         our custom format.
3001         * html/HTMLTagNames.in: Ditto.
3002         * svg/svgattrs.in: Ditto.
3003         * svg/svgtags.in: Ditto.
3004         * svg/xlinkattrs.in: Ditto.
3005         * xml/xmlattrs.in: Ditto.
3006
3007 2008-07-23  Julien Chaffraix  <jchaffraix@webkit.org>
3008
3009         Reviewed by Eric.
3010
3011         Bug 19588: CRASH doing open() on destroyed window
3012         https://bugs.webkit.org/show_bug.cgi?id=19588
3013
3014         Add frame's page null check as it could have been
3015         detached from the page.
3016
3017         Test: fast/frames/crash-removed-iframe.html
3018
3019         * bindings/js/JSDOMWindowBase.cpp:
3020         (WebCore::windowProtoFuncOpen):
3021         * page/FrameTree.cpp:
3022         (WebCore::FrameTree::find):
3023
3024 2008-07-23  Dan Bernstein  <mitz@apple.com>
3025
3026         Reviewed by Alexey Proskuryakov.
3027
3028         - fix a leak when using hex color values in CSS variables
3029
3030         - fix CSSOM access to hex color values in variables declarations
3031
3032         Test: fast/css/variables/color-hex-test.html
3033
3034         Added a new unit/type, CSS_PARSER_HEXCOLOR, which serves as the unit for
3035         CSSParserValues coming from colors in hex notation. CSSParserValues can
3036         no longer have CSS_RGBCOLOR as their unit. CSS_PARSER_HEXCOLOR is also
3037         used as the type for CSSValues in CSS variables declarations where the
3038         parser value was a hex color. However the type of all other color
3039         CSSValues remains CSS_RGBCOLOR.
3040
3041         * css/CSSGrammar.y: Changed to use the new CSS_PARSER_HEXCOLOR value
3042         for color values in hex notation.
3043         * css/CSSParser.cpp:
3044         (WebCore::CSSParser::parseColorFromValue): Updated for the new unit.
3045         * css/CSSParserValues.cpp:
3046         (WebCore::CSSParserValue::createCSSValue): Ditto.
3047         * css/CSSPrimitiveValue.cpp:
3048         (WebCore::CSSPrimitiveValue::cleanup): Fixed the leak by deref()ing the
3049         string containing the color.
3050         (WebCore::CSSPrimitiveValue::cssText): Added support for
3051         CSS_PARSER_HEXCOLOR for when serializing variable values.
3052         (WebCore::CSSPrimitiveValue::parserValue): Updated for the new unit.
3053         * css/CSSPrimitiveValue.h:
3054         (WebCore::CSSPrimitiveValue::): Added a new unti, CSS_PARSER_HEXCOLOR.
3055
3056 2008-07-23  Beth Dakin  <bdakin@apple.com>
3057
3058         Reviewed by Dan Bernstein.
3059
3060         Fix for <rdar://problem/5997215> display: table-row-group 
3061         for :before content causes a crash
3062  
3063         The actual bug fix here is to ddd the generated content container 
3064         as a child before adding any of the generated content to the 
3065         container. There are two correctness fixes as well that deal with 
3066         style changes and correctly.
3067
3068         This patch also makes Node::diff() a static function.
3069
3070         * dom/Node.cpp:
3071         (WebCore::Node::diff):
3072         * dom/Node.h:
3073         (WebCore::Node::):
3074         (WebCore::Node::recalcStyle):
3075         * rendering/RenderContainer.cpp:
3076         (WebCore::findBeforeAfterParent):
3077         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
3078         * svg/SVGUseElement.cpp:
3079         (WebCore::SVGUseElement::recalcStyle):
3080
3081 2008-07-23  Timothy Hatcher  <timothy@apple.com>
3082
3083         Updates the elements DOM tree when nodes are added or removed from
3084         the inspected document.
3085
3086         https://bugs.webkit.org/show_bug.cgi?id=6590
3087         <rdar://problem/5712921>
3088
3089         Reviewed by Adam Roben.
3090
3091         * loader/FrameLoader.cpp:
3092         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Added a call to
3093         InspectorController::inspectedWindowScriptObjectCleared.
3094         * page/InspectorController.cpp:
3095         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
3096         Calls the WebInspector.inspectedWindowCleared script function.
3097         * page/InspectorController.h:
3098         * page/inspector/ElementsPanel.js:
3099         (WebInspector.ElementsPanel): Create the event listener callback wrappers.
3100         (WebInspector.ElementsPanel.prototype.show): Call _updateModifiedNodes if
3101         there are any recently modified nodes.
3102         (WebInspector.ElementsPanel.prototype.reset): Remove previous mutation event listeners.
3103         Adds a check for InspectorController.isWindowVisible to prevent adding
3104         event listeners when the window isn't visible.
3105         (WebInspector.ElementsPanel.prototype.inspectedWindowCleared): 
3106         (WebInspector.ElementsPanel.prototype._addMutationEventListeners): Add DOMNodeInserted,
3107         DOMNodeRemoved and DOMContentLoaded event listeners to the passed in window or window's document.
3108         (WebInspector.ElementsPanel.prototype._removeMutationEventListeners): Removes the event listeners
3109         added in _addMutationEventListeners.
3110         (WebInspector.ElementsPanel.prototype.updateMutationEventListeners): Call _addMutationEventListeners
3111         again to reinstate the listners if the document changed or window cleared them.
3112         (WebInspector.ElementsPanel.prototype.registerMutationEventListeners): Append the window to
3113         _mutationMonitoredWindows and call _addMutationEventListeners.
3114         (WebInspector.ElementsPanel.prototype.unregisterMutationEventListeners): Remove the window from
3115         _mutationMonitoredWindows and call _removeMutationEventListeners.
3116         (WebInspector.ElementsPanel.prototype.unregisterAllMutationEventListeners): Call
3117         _removeMutationEventListeners for all windows in _mutationMonitoredWindows and
3118         clear _mutationMonitoredWindows.
3119         (WebInspector.ElementsPanel.prototype._contentLoaded): Append the node and parent
3120         to the recentlyModifiedNodes array. Call _updateModifiedNodesSoon if visible.
3121         (WebInspector.ElementsPanel.prototype._nodeInserted): Ditto.
3122         (WebInspector.ElementsPanel.prototype._nodeRemoved): Ditto.
3123         (WebInspector.ElementsPanel.prototype._updateModifiedNodesSoon): Call
3124         _updateModifiedNodes on a zero timeout.
3125         (WebInspector.ElementsPanel.prototype._updateModifiedNodes): Iterate over
3126         the recentlyModifiedNodes array and call updateChildren on all the parent
3127         elements that had changes. Only calls updateChildren once per parent element.
3128         (WebInspector.ElementsPanel.prototype._isAncestorIncludingParentFrames): Return
3129         false if the nodes are the same. Return true if the nodes are the same while
3130         looking at ancestor frame elements. THis use to return false, which was incorrect.
3131         (WebInspector.DOMNodeTreeElement.prototype.onpopulate): Call updateChildren.
3132         (WebInspector.DOMNodeTreeElement.prototype.updateChildren): Copied from
3133         onpopulate and changed to rebuild the children elements by adding new children,
3134         moving existing children and removed old children.
3135         (WebInspector.DOMNodeTreeElement.prototype.onexpand): If the node has a contentDocument
3136         call registerMutationEventListeners to track any mutations.
3137         * page/inspector/inspector.js:
3138         (WebInspector.inspectedWindowCleared): Call ElementsPanel.inspectedWindowCleared.
3139         * page/inspector/treeoutline.js:
3140         (TreeElement.prototype.get hasChildren): Return _hasChildren.
3141         (TreeElement.prototype.set hasChildren): Set _hasChildren and update the className.
3142         (TreeElement.prototype.hasAncestor): Return true if the element has the passed in ancestor.
3143         (TreeElement.prototype.expand): Fix an exception that can happen if expand is
3144         called before _attach.
3145         * WebCore/manual-tests/inspector/dom-mutation.html: Added.
3146         * WebCore/manual-tests/inspector/resources/mutate-frame-2.html: Added.
3147         * WebCore/manual-tests/inspector/resources/mutate-frame.html: Added.
3148
3149 2008-07-22  Timothy Hatcher  <timothy@apple.com>
3150
3151         Fix an exception that occurred when double clicking the closing tag
3152         of an element in the DOM tree.
3153
3154         Reviewed by Anders Carlsson.
3155
3156         * page/inspector/ElementsPanel.js:
3157         (WebInspector.ElementsPanel.prototype._ondblclick): Null check
3158         element.ondblclick.
3159
3160 2008-07-22  Timothy Hatcher  <timothy@apple.com>
3161
3162         Fix a regression where elements in subframes would not be revealed
3163         or selected when inspected from the context menu. This was caused by
3164         JavaScript equality is not being true for JSInspectedObjectWrappers
3165         of the same node wrapped with different global ExecStates. This change
3166         adds a helper function that uses isSameNode to compare wrapped nodes.
3167
3168         https://bugs.webkit.org/show_bug.cgi?id=19377
3169
3170         Reviewed by Adam Roben.
3171
3172         * page/inspector/ElementsPanel.js:
3173         (WebInspector.ElementsPanel.prototype.set rootDOMNode): Use objectsAreSame
3174         to compare nodes.
3175         (WebInspector.ElementsPanel.prototype.set focusedDOMNode): Ditto.
3176         (WebInspector.ElementsPanel.prototype.set hoveredDOMNode): Ditto. 
3177         (WebInspector.ElementsPanel.prototype._updateModifiedNodes): Ditto.
3178         (WebInspector.ElementsPanel.prototype.revealNode): Ditto.
3179         (WebInspector.ElementsPanel.prototype.updateBreadcrumb): Ditto.
3180         (WebInspector.DOMNodeTreeElement.prototype.updateChildren): Ditto.
3181         * page/inspector/treeoutline.js:
3182         (TreeOutline.prototype.findTreeElement): Add an equal argument
3183         to accept a functions to compare two representedObjects. Defaults
3184         to strict equal if not supplied. All current clients pass objectsAreSame.
3185         * page/inspector/utilities.js:
3186         (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Use objectsAreSame
3187         to compare nodes.
3188         (Node.prototype.enclosingNodeOrSelfWithClass): Ditto.
3189         (Element.prototype.query): Use the ownerDocument of the node, not document.
3190         (objectsAreSame): Added. Compares strict equal first, then uses isSameNode if
3191         it exists on both objects.
3192         (isAncestorNode): Use objectsAreSame to compare nodes.
3193         (firstCommonNodeAncestor): Ditto.
3194         (traverseNextNode): Ditto.
3195
3196 2008-07-21  Timothy Hatcher  <timothy@apple.com>
3197
3198         Added InspectorController.isWindowVisible to the JavaScript class
3199         for use in an upcoming change. This will allow the Inspector to not
3200         perform selective actions while the window is hidden.
3201
3202         Reviewed by Adam Roben.
3203
3204         * page/InspectorController.cpp:
3205         (WebCore::isWindowVisible): Call InspectorController::windowVisible.
3206         (WebCore::InspectorController::windowScriptObjectAvailable): Add
3207         the isWindowVisible function to the JavaScript class.
3208
3209 2008-07-21  Timothy Hatcher  <timothy@apple.com>
3210
3211         Added TreeOutline.removeChildAtIndex and TreeElement.removeChildAtIndex
3212         for efficiency of callers that know the index of the child. This
3213         will be used in an upcoming change.
3214
3215         Reviewed by Adam Roben.
3216
3217         * page/inspector/treeoutline.js:
3218         (TreeOutline._removeChildAtIndex): Renamed from _removeChild
3219         and modified to take an index.
3220         (TreeOutline._removeChild): Call _removeChildAtIndex with the
3221         child index found using indexOf.
3222         (TreeOutline.prototype.removeChildAtIndex): Added. Calls
3223         TreeOutline._removeChildAtIndex.
3224         (TreeElement.prototype.removeChildAtIndex): Ditto.
3225
3226 2008-07-21  Timothy Hatcher  <timothy@apple.com>
3227
3228         Fixes a regression where TreeOutline.findTreeElement would
3229         return the parent TreeElement of the representedObject instead
3230         of the TreeElement for the representedObject. Regressed with the
3231         fix for bug 19164.
3232
3233         Reviewed by Adam Roben.
3234
3235         * page/inspector/treeoutline.js:
3236         (TreeOutline.prototype.findTreeElement): When performing a slow search,
3237         do a final search for representedObject instead of returning item, which
3238         is the parent of representedObject.
3239
3240 2008-07-23  Adele Peterson  <adele@apple.com>
3241
3242         Reviewed by Adam.
3243
3244         WebCore part of fix for <rdar://problem/5698672>  Add drawing callback for a WebKit app to draw its own scrollbars
3245
3246         * WebCore.base.exp: Added symbols.
3247         * page/Chrome.cpp:
3248         (WebCore::ChromeClient::paintCustomScrollbar): Added. Calls up to WebKit, which will call a new delegate method.
3249         (WebCore::ChromeClient::paintCustomScrollCorner): ditto.
3250         * page/ChromeClient.h:
3251         * page/Settings.cpp:
3252         (WebCore::Settings::Settings): Added the ability to store whether or not the application has decided to draw its own scrollbars.
3253         (WebCore::Settings::setShouldPaintCustomScrollbars):
3254         * page/Settings.h: (WebCore::Settings::shouldPaintCustomScrollbars):
3255         * platform/ScrollBar.h: Moved ScrollbarControlSize enum to ScrollTypes.h
3256         * platform/ScrollTypes.h: (WebCore::): Moved some existing types, and added new ones to be used in WebCore in WebKit.
3257         * platform/win/PlatformScrollBar.h: Moved ScrollbarPart enum to ScrollTypes.h
3258         * platform/win/PlatformScrollBarSafari.cpp:
3259         (WebCore::ScrollbarPartToScrollBarPiece): Added helper function.
3260         (WebCore::ScrollBarPieceMaskToScrollbarControlPartMask): ditto.
3261         (WebCore::ScrollbarControlStateFromThemeState): ditto.
3262         (WebCore::PlatformScrollbar::paint): Consolidated painting so the logic for the individual pieces is all in one place.
3263          Added new code to paint the custom scrollbars if necessary.
3264         * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::paint): Added code to paint the custom scroll corner if necessary.
3265
3266 2008-07-23  Sam Weinig  <sam@webkit.org>
3267
3268         Reviewed by Anders Carlsson.
3269
3270         Cleanup and pack the member variables in Node.
3271
3272         * bindings/js/JSNodeCustom.cpp:
3273         (WebCore::JSNode::mark):
3274         * dom/Attr.cpp:
3275         (WebCore::Attr::Attr):
3276         * dom/Attr.h:
3277         (WebCore::Attr::specified):
3278         (WebCore::Attr::setSpecified):
3279         * dom/ContainerNode.cpp:
3280         (WebCore::ContainerNode::setFocus):
3281         * dom/Document.cpp:
3282         (WebCore::Document::adoptNode):
3283         * dom/Element.cpp:
3284         (WebCore::Element::~Element):
3285         (WebCore::Element::rareData):
3286         (WebCore::Element::createRareData):
3287         * dom/Element.h:
3288         (WebCore::Element::hasRareData):
3289         (WebCore::Element::setHasRareData):
3290         * dom/Node.h:
3291         (WebCore::Node::setIsLink):
3292         (WebCore::Node::inSubtreeMark):
3293         (WebCore::Node::setInSubtreeMark):
3294         (WebCore::Node::attrWasSpecifiedOrElementHasRareData):
3295         (WebCore::Node::setAttrWasSpecifiedOrElementHasRareData):
3296         * html/HTMLAnchorElement.cpp:
3297         (WebCore::HTMLAnchorElement::supportsFocus):
3298         (WebCore::HTMLAnchorElement::isFocusable):
3299         (WebCore::HTMLAnchorElement::defaultEventHandler):
3300         (WebCore::HTMLAnchorElement::parseMappedAttribute):
3301         (WebCore::HTMLAnchorElement::isLiveLink):
3302         * html/HTMLImageElement.cpp:
3303         (WebCore::HTMLImageElement::parseMappedAttribute):
3304         * html/HTMLInputElement.cpp:
3305         (WebCore::HTMLInputElement::setInputType):
3306         * html/HTMLTableElement.cpp:
3307         (WebCore::HTMLTableElement::attach):
3308         * svg/SVGAElement.cpp:
3309         (WebCore::SVGAElement::svgAttributeChanged):
3310         (WebCore::SVGAElement::defaultEventHandler):
3311
3312 2008-07-23  Kevin Calhoun  <kcalhoun@apple.com>
3313
3314         Reviewed by Adele.
3315
3316         Follow-up fix for <rdar://problem/6031039> don't disable track-types when media is in a standalone document
3317
3318         Associate MovieControllers with Movies to support all of the media types QuickTime is able to play in standalone media documents.
3319
3320         * platform/graphics/win/QTMovieWin.cpp:
3321         (QTMovieWinPrivate::QTMovieWinPrivate):
3322         (QTMovieWinPrivate::~QTMovieWinPrivate):
3323         (QTMovieWinPrivate::task):
3324         (QTMovieWinPrivate::createMovieController):
3325         (QTMovieWinPrivate::createGWorld):
3326         (QTMovieWinPrivate::setSize):
3327         (QTMovieWinPrivate::deleteGWorld):
3328         (QTMovieWin::play):
3329         (QTMovieWin::pause):
3330         (QTMovieWin::setRate):
3331         (QTMovieWin::setCurrentTime):
3332         (QTMovieWin::load):
3333
3334 2008-07-23  Kevin Calhoun  <kcalhoun@apple.com>
3335
3336         Reviewed by Adele.
3337
3338         Added a debug mode for viewing frames per second for videos.  This is controlled by two 
3339         independent compiler flags DRAW_FRAME_RATE in MediaPlayerPrivateQTKit.h and MediaPlayerPrivateQuickTimeWin.h.
3340         Unless either flags is turned on there is no change to the code for video frame drawing.
3341
3342         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3343         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3344         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3345         (WebCore::MediaPlayerPrivate::play):
3346         (WebCore::MediaPlayerPrivate::pause):
3347         (WebCore::MediaPlayerPrivate::didEnd):
3348         (WebCore::MediaPlayerPrivate::repaint):
3349         (WebCore::MediaPlayerPrivate::paint):
3350         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3351         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3352         (WebCore::MediaPlayerPrivate::play):
3353         (WebCore::MediaPlayerPrivate::pause):
3354         (WebCore::MediaPlayerPrivate::didEnd):
3355         (WebCore::MediaPlayerPrivate::paint):
3356         (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
3357         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
3358
3359 2008-07-23  Adele Peterson  <adele@apple.com>
3360
3361         Reviewed by Sam.
3362
3363         Fix for <rdar://problem/6080634> use lower quality CG interpolation in MediaPlayerPrivateQTKit to improve performance
3364
3365         * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImage):
3366         Call setImageInterpolationQuality(InterpolationNone) instead of setUseLowQualityImageInterpolation(true).
3367         * platform/graphics/GraphicsContext.h:
3368         (WebCore::): Added InterpolationQuality enum.
3369         (WebCore::GraphicsContext::setImageInterpolationQuality): Renamed from setUseLowQualityImageInterpolation.
3370         The implementation was always setting the quality to "none", and now we want to distinguish between "none" and "low".
3371         (WebCore::GraphicsContext::imageInterpolationQuality): Renamed from useLowQualityImageInterpolation.
3372         * platform/graphics/cg/GraphicsContextCG.cpp:
3373         (WebCore::GraphicsContext::setImageInterpolationQuality): Added.
3374         (WebCore::GraphicsContext::imageInterpolationQuality): Added.
3375         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::paint):
3376         Calls setImageInterpolationQuality(InterpolationLow) which will improve the painting performance without degrading quality too much.
3377
3378 2008-07-23  Sam Weinig  <sam@webkit.org>
3379
3380         Reviewed by Anders Carlsson.
3381
3382         Remove extraneous allocations by using equalIgnoringCase rather than
3383         String::lower.
3384
3385         * dom/StyledElement.cpp:
3386         (WebCore::StyledElement::addCSSColor):
3387         * html/HTMLCollection.cpp:
3388         (WebCore::HTMLCollection::checkForNameMatch):
3389         * html/HTMLFormCollection.cpp:
3390         (WebCore::HTMLFormCollection::getNamedFormItem):
3391         * html/HTMLLinkElement.cpp:
3392         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
3393         * html/HTMLObjectElement.cpp:
3394         (WebCore::HTMLObjectElement::containsJavaApplet):
3395         * html/PreloadScanner.cpp:
3396         (WebCore::PreloadScanner::emitCSSRule):
3397         * loader/FrameLoader.cpp:
3398         (WebCore::FrameLoader::createJavaAppletWidget):
3399         * page/DOMSelection.cpp:
3400         (WebCore::DOMSelection::modify):
3401         * rendering/RenderPartObject.cpp:
3402         (WebCore::RenderPartObject::updateWidget):
3403
3404 2008-07-23  Maxime Britto  <britto@apple.com>
3405
3406         Reviewed by Adam Roben.
3407
3408         <rdar://6092952> "REGRESSION: Crash beneath EventHandler::stopAutoscrollTimer() when closing Gmail"
3409         Add a check for the m_page member value before asking for page()->mainFrame()
3410
3411         * page/EventHandler.cpp:
3412         (WebCore::EventHandler::stopAutoscrollTimer):
3413
3414 2008-07-23  Kevin Calhoun  <kcalhoun@apple.com>
3415
3416        Reviewed by Adele.
3417
3418        Fix for <rdar://problem/5710065> QT movies should be inactive when opened
3419
3420        Implemented deferral of set-up of video rendering on Mac until the ready state is Loaded and 
3421        until after movie tracks of unsupported types have been disabled, to make sure they never draw.
3422
3423         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3424         (WebCore::MediaPlayerPrivate::load):
3425         (WebCore::MediaPlayerPrivate::updateStates):
3426         (WebCore::MediaPlayerPrivate::setVisible):
3427
3428 2008-07-22  Maxime Britto  <britto@apple.com>
3429
3430         Reviewed by John Sullivan.
3431
3432         <rdar://problem/6083116>
3433         When pan-scrolling, Back then Forward causes pan-scrolling to start again
3434
3435         * page/Frame.cpp:
3436         (WebCore::Frame::clearTimers): Ask to stop the autoscroll timer when we clear the timers from the frame
3437         * loader/FrameLoader.cpp:
3438         (WebCore::FrameLoader::scrollToAnchor): When the link is an anchor we Frame::clearTimers() isn't called since we're only scrolling the page so we need to ask to stop the autoscroll timer here too.
3439
3440 2008-07-22  Geoffrey Garen  <ggaren@apple.com>
3441
3442         Reviewed by Oliver Hunt and Sam Weinig.
3443
3444         Next step toward putting doubles in registers: Prepare the Register class
3445         and its clients for registers that don't contain JSValue*s.
3446         
3447 2008-07-22  Sam Weinig  <sam@webkit.org>
3448
3449         Reviewed by Mark Rowe.
3450
3451         <rdar://problem/5788451> toDataURL not implemented for Windows (need mapping of MIME type to UTI)
3452         Add additional support for JPEG and GIF for toDataURL encoding canvases.
3453
3454         * platform/MIMETypeRegistry.cpp:
3455         (WebCore::initializeSupportedImageMIMETypesForEncoding):
3456         * platform/graphics/cg/ImageBufferCG.cpp:
3457         (WebCore::utiFromMIMEType):
3458
3459 2008-07-22  Chris Fleizach  <cfleizach@apple.com>
3460
3461         Reviewed by Dave Hyatt.
3462
3463         <rdar://problem/6004877> internal anchors on this page are not showing up in the AXLinkedUIElements
3464         Test: accessibility/internal-link-anchors2.html
3465
3466         * page/AccessibilityRenderObject.cpp:
3467         (WebCore::AccessibilityRenderObject::internalLinkElement):
3468
3469 2008-07-22  Anders Carlsson  <andersca@apple.com>
3470
3471         Reviewed by Adam.
3472
3473         Allocate the empty StringImpl from the heap.
3474         
3475         * platform/text/StringImpl.cpp:
3476         (WebCore::StringImpl::empty):
3477
3478 2008-07-21  Kevin McCullough  <kmccullough@apple.com>
3479
3480         Reviewed by Tim.
3481
3482         <rdar://problem/5951532> JSProfiler: Implement heavy (or bottom-up)
3483         view (19228)
3484         - Implement UI for Heavy (Bottom Up) view.
3485
3486         * English.lproj/localizedStrings.js:
3487         * page/JavaScriptProfile.cpp: Expose the ability to get a heavy/tree
3488         profile from a profile to the Web Inspector's JavaScript.
3489         (WebCore::getHeavyProfileCallback):
3490         (WebCore::getTreeProfileCallback):
3491         (WebCore::ProfileClass):
3492         * page/inspector/ProfileView.js: Implement the dropdown for changing
3493         profile views.
3494         * page/inspector/inspector.css:
3495
3496 2008-07-22  Alexey Proskuryakov  <ap@webkit.org>
3497
3498         Reviewed by Adam Roben.
3499
3500         <rdar://problem/5955602> WebKit should support charset name x-windows-949
3501
3502         Test: fast/encoding/char-decoding.html
3503
3504         * platform/text/TextCodecICU.cpp:
3505         (WebCore::TextCodecICU::registerExtendedEncodingNames): Added support for this name for
3506         Firefox compatibility.
3507
3508 2008-07-22  Gavin Barraclough  <barraclough@apple.com>
3509
3510         Reviewed by Alexey Proskuryakov.
3511
3512         New test to check that arrays fail gracefully (throw an out of memory exception)
3513         when the vector grows to large.
3514
3515         * manual-tests/array-out-of-memory.html: Added.
3516
3517 2008-07-21  Alexey Proskuryakov  <ap@webkit.org>
3518
3519         Reviewed by Dan Bernstein.
3520
3521         https://bugs.webkit.org/show_bug.cgi?id=20117
3522         setBaseAndExtent fails to reverse the current selection
3523
3524         Test: editing/selection/setBaseAndExtent-revert-selection.html
3525
3526         * editing/Selection.h: (WebCore::operator==): Compare direction, too.
3527
3528 2008-07-21  Julien Chaffraix  <jchaffraix@webkit.org>
3529
3530         Reviewed by Sam Weinig.
3531
3532         Bug 19919: Add selectors' string parsing in CSSParser
3533         https://bugs.webkit.org/show_bug.cgi?id=19919
3534
3535         No functional change.
3536
3537         * css/CSSGrammar.y: Added entry for parsing only a selector.
3538         * css/CSSParser.cpp:
3539         (WebCore::CSSParser::CSSParser):
3540         (WebCore::CSSParser::parseSelector):
3541         * css/CSSParser.h: Added m_floatingSelector to hold the
3542         Selector parsed in parseSelector.
3543
3544         * css/tokenizer.flex: Added "@-webkit-selector" token.
3545         * dom/Node.cpp:
3546         (WebCore::Node::querySelector):
3547         (WebCore::Node::querySelectorAll): Switched to parseSelector
3548         method.
3549
3550 2008-07-21  Kevin Calhoun  <kcalhoun@apple.com>
3551
3552         Reviewed by Adele.
3553
3554         Fix for <rdar://problem/6081160> REGRESSION: Hang loading many pages if QuickTime isn't installed
3555
3556         * platform/graphics/win/QTMovieWin.cpp:
3557         (initializeSupportedTypes): Do a Quicktime version minimum version check.
3558         (QTMovieWin::initializeQuickTime): Store the Quicktime version globally so in can be used in initializeSupportedTypes as well.
3559
3560 2008-07-21  Kevin Calhoun  <kcalhoun@apple.com>
3561
3562         Reviewed by Adele.
3563
3564         Fix for <rdar://problem/5713336> <video> and <audio> elements that use a autoplay attribute fail to start playing when returning back to page
3565
3566         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::willSaveToCache): Reset the ready state to DATA_UNAVAILABLE when saving to the cache
3567         so that everything starts back up normally when the page is retrieved from the cache.
3568
3569 2008-07-21  Sam Weinig  <sam@webkit.org>
3570
3571         Reviewed by Mark Rowe.
3572
3573         Remove unused interface declaration.
3574
3575         * platform/network/mac/ResourceHandleMac.mm:
3576
3577 2008-07-21  Mark Rowe  <mrowe@apple.com>
3578
3579         Reviewed by Sam Weinig.
3580
3581         <rdar://problem/6091287> Revamp the handling of CFBundleShortVersionString to be fixed at the major component of the version number.
3582
3583         * Configurations/Version.xcconfig:
3584         * Info.plist:
3585
3586 2008-07-21  Kevin Calhoun  <kcalhoun@apple.com>
3587
3588         Reviewed by Adele.
3589
3590         Fix for <rdar://problem/6031039> don't disable track-types when media is in a standalone document
3591
3592         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::inMediaDocument): Added.
3593         * platform/graphics/MediaPlayer.h:
3594         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::updateStates):
3595         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: (WebCore::MediaPlayerPrivate::updateStates):
3596
3597 2008-07-21  Anders Carlsson  <andersca@apple.com>
3598
3599         Reviewed by Jon.
3600
3601         Don't allow requests to be made when the document loader is stopping all loaders.
3602
3603         * plugins/PluginView.cpp:
3604         (WebCore::PluginView::load):
3605
3606 2008-07-20  Maxime Britto  <britto@apple.com>
3607
3608         Reviewed by John Sullivan.
3609
3610         [PFR] <rdar://problem/6080639> New middle click scrolling speed seems much slower than in FF
3611         Accelerate and enhance the smoothness of the pan scrollling.
3612
3613         * page/EventHandler.cpp: Changed the TimerInterval from 0.1 to 0.05. The scrolling is way more fluid like this.
3614         * rendering/RenderLayer.cpp: 
3615         (WebCore::RenderLayer::panScrollFromPoint): Differentiate the speed within a 200 pixel side square, around the original click location to the speed for farther distances. This way we allow easyier handle when we are close to the center and very fast scrolling when we go far from the original point.
3616
3617 2008-07-18  David Hyatt  <hyatt@apple.com>
3618
3619         Change the cached clip rects to not assume they should be infinite when the root layer has been
3620         shifted as the result of a transformation.
3621
3622         Reviewed by Maciej
3623
3624         Added fast/transforms/overflow-with-transform.html
3625
3626         * rendering/RenderLayer.cpp:
3627         (WebCore::RenderLayer::calculateClipRects):
3628
3629 2008-07-21  Rob Buis  <buis@kde.org>
3630
3631         Reviewed by Mitz.
3632
3633         https://bugs.webkit.org/show_bug.cgi?id=19966
3634         CSS variables crash when using hex notation for colors
3635
3636         Support hex colors as values for the css variables.
3637
3638         Test: fast/css/variables/color-hex-test.html
3639
3640         * css/CSSParserValues.cpp:
3641         (WebCore::CSSParserValue::createCSSValue):
3642         * css/CSSPrimitiveValue.cpp:
3643         (WebCore::CSSPrimitiveValue::parserValue):
3644         * css/CSSVariablesRule.cpp:
3645
3646 2008-07-21  Simon Hausmann  <hausmann@webkit.org>
3647
3648         Reviewed by Holger.
3649
3650         Fix drawing of windowless plugins on Windows with the Qt port by
3651         avoiding the reset of the translation of the HDC to 0, 0.
3652
3653         * plugins/win/PluginViewWin.cpp:
3654         (WebCore::PluginView::paint):
3655
3656 2008-07-21  Simon Hausmann  <hausmann@webkit.org>
3657
3658         Reviewed by Holger.
3659
3660         Fix rendering of transparent windowless netscape plugins by passing
3661         the right conversion parameter to QPixmap::fromWinHBITMAP when
3662         converting from HBITMAP to QPixmap.
3663
3664         * platform/graphics/qt/GraphicsContextQt.cpp:
3665         (WebCore::GraphicsContext::releaseWindowsContext):
3666
3667 2008-07-21  Simon Hausmann  <hausmann@webkit.org>
3668
3669         Reviewed by Holger.
3670
3671         In the implementation of getValue for NPNVnetscapeWindow treat
3672         windowHandleForPlatformWidget on the return value of
3673         containingWindow() to receive the correct HWND for the Qt port.
3674
3675         * plugins/win/PluginViewWin.cpp:
3676         (WebCore::PluginView::getValue):
3677
3678 2008-07-21  Simon Hausmann  <hausmann@webkit.org>
3679
3680         Reviewed by Holger.
3681
3682         Fix windowHandleForPlatformWidget to return 0 as HWND if we don't have
3683         a QWidget. This can happen on page/view destruction for example.
3684
3685         * plugins/win/PluginViewWin.cpp:
3686         (windowHandleForPlatformWidget):
3687
3688 2008-07-20  Steve Falkenburg  <sfalken@apple.com>
3689
3690         Touch file to force rebuild for vsprops change.
3691
3692         * WebCorePrefix.h:
3693
3694 2008-07-20  Sam Weinig  <sam@webkit.org>
3695
3696         Remove extra space Oliver Hunt left in.
3697
3698         * page/Console.cpp:
3699         (WebCore::Console::reportException):
3700         (WebCore::Console::reportCurrentException):
3701
3702 2008-07-20  Oliver Hunt  <oliver@apple.com>
3703
3704         Reviewed by Dan Bernstein.
3705
3706         Bug 19757: Crash when an ondragstart handler hides the element
3707         <https://bugs.webkit.org/show_bug.cgi?id=19757>
3708
3709         The solution to this is problem is just to null check the renderer
3710         immediately before launching the system drag, and terminate the
3711         drag if the renderer is gone.
3712
3713         * page/EventHandler.cpp:
3714         (WebCore::EventHandler::handleDrag):
3715
3716 2008-07-20  Nikolas Zimmermann  <zimmermann@kde.org>
3717
3718         Reviewed by Oliver.
3719
3720         Fixes: https://bugs.webkit.org/show_bug.cgi?id=12171
3721
3722         Remove manual SVG property <-> XML attribute synchronization in SVGPolyElement.
3723         Added svg/custom/poly-points-attribute-changes.svg (testcase from Rob)
3724
3725         * svg/SVGPointList.cpp:
3726         (WebCore::SVGPointList::valueAsString):
3727         * svg/SVGPointList.h:
3728         (WebCore::SVGPointList::create):
3729         * svg/SVGPolyElement.cpp:
3730         (WebCore::SVGPolyElement::SVGPolyElement):
3731         (WebCore::SVGPolyElement::svgAttributeChanged):
3732         (WebCore::SVGPolyElement::updateAnimatedSVGAttribute):
3733         * svg/SVGPolyElement.h:
3734
3735 2008-07-20  Nikolas Zimmermann  <zimmermann@kde.org>
3736
3737         Reviewed by Oliver.
3738
3739         Cleanup JSSVGPODTypeWrapper code.
3740
3741         Rename: JSSVGPODTypeWrapperCreatorReadOnly -> JSSVGStaticPODTypeWrapper
3742                 JSSVGPODTypeWrapperReadWrite       -> JSSVGDynamicPODTypeWrapper
3743                 JSSVGPODTypeWrapperCache           -> JSSVGDynamicPODTypeWrapperCacheCache
3744
3745         No functional changes.
3746
3747         * bindings/js/JSSVGMatrixCustom.cpp:
3748         (WebCore::JSSVGMatrix::multiply):
3749         (WebCore::JSSVGMatrix::inverse):
3750         (WebCore::JSSVGMatrix::translate):
3751         (WebCore::JSSVGMatrix::scale):
3752         (WebCore::JSSVGMatrix::scaleNonUniform):
3753         (WebCore::JSSVGMatrix::rotate):
3754         (WebCore::JSSVGMatrix::rotateFromVector):
3755         (WebCore::JSSVGMatrix::flipX):
3756         (WebCore::JSSVGMatrix::flipY):
3757         (WebCore::JSSVGMatrix::skewX):
3758         (WebCore::JSSVGMatrix::skewY):
3759         * bindings/js/JSSVGPODTypeWrapper.h:
3760         (WebCore::JSSVGDynamicPODTypeWrapper::create):
3761         (WebCore::JSSVGDynamicPODTypeWrapper::operator PODType):
3762         (WebCore::JSSVGDynamicPODTypeWrapper::JSSVGDynamicPODTypeWrapper):
3763         (WebCore::JSSVGStaticPODTypeWrapper::create):
3764         (WebCore::JSSVGStaticPODTypeWrapper::operator PODType):
3765         (WebCore::JSSVGStaticPODTypeWrapper::JSSVGStaticPODTypeWrapper):
3766         (WebCore::JSSVGPODTypeWrapperCreatorForList::create):
3767         (WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
3768         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
3769         (WebCore::PODTypeWrapperCacheInfo::PODTypeWrapperCacheInfo):
3770         (WebCore::PODTypeWrapperCacheInfo::operator==):
3771         (WebCore::PODTypeWrapperCacheInfoHash::hash):
3772         (WebCore::PODTypeWrapperCacheInfoHash::equal):
3773         (WebCore::PODTypeWrapperCacheInfoTraits::emptyValue):
3774         (WebCore::PODTypeWrapperCacheInfoTraits::constructDeletedValue):
3775         (WebCore::PODTypeWrapperCacheInfoTraits::isDeletedValue):
3776         (WebCore::JSSVGDynamicPODTypeWrapperCache::dynamicWrapperHashMap):
3777         (WebCore::JSSVGDynamicPODTypeWrapperCache::lookupOrCreateWrapper):
3778         (WebCore::JSSVGDynamicPODTypeWrapperCache::forgetWrapper):
3779         * bindings/js/JSSVGPointListCustom.cpp:
3780         (WebCore::finishGetter):
3781         (WebCore::finishSetter):
3782         (WebCore::finishSetterReadOnlyResult):
3783         (WebCore::JSSVGPointList::initialize):
3784         (WebCore::JSSVGPointList::insertItemBefore):
3785         (WebCore::JSSVGPointList::replaceItem):
3786         (WebCore::JSSVGPointList::appendItem):
3787         * bindings/js/JSSVGTransformListCustom.cpp:
3788         (WebCore::finishGetter):
3789         (WebCore::finishSetter):
3790         (WebCore::finishSetterReadOnlyResult):
3791         (WebCore::JSSVGTransformList::initialize):
3792         (WebCore::JSSVGTransformList::getItem):
3793         (WebCore::JSSVGTransformList::insertItemBefore):
3794         (WebCore::JSSVGTransformList::replaceItem):
3795         (WebCore::JSSVGTransformList::removeItem):
3796         (WebCore::JSSVGTransformList::appendItem):
3797         * bindings/scripts/CodeGeneratorJS.pm:
3798
3799 2008-07-19  Oliver Hunt  <oliver@apple.com>
3800
3801         Reviewed by Mark Rowe.
3802
3803         Bug 15979: Console logs in a database callback lose line number information
3804         <https://bugs.webkit.org/show_bug.cgi?id=15979>
3805
3806         The problem was that there were multiple versions of the logic to
3807         log an exception to the console, many of which were incorrect.  We
3808         resolve this by making one single shared reportException method,
3809         which handles the exceptions correctly.
3810
3811         This improves fidelity of callback errors, and ensures that
3812         exceptions thrown in timer callbacks correctly report line numbers,
3813         etc.
3814
3815         Test: fast/js/exceptions-thrown-in-callbacks.html
3816
3817         * bindings/js/JSCustomSQLStatementCallback.cpp:
3818         (WebCore::JSCustomSQLStatementCallback::handleEvent):
3819         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
3820         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
3821         * bindings/js/JSCustomSQLTransactionCallback.cpp:
3822         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
3823         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
3824         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
3825         * bindings/js/JSCustomVoidCallback.cpp:
3826         (WebCore::JSCustomVoidCallback::handleEvent):
3827         * bindings/js/JSCustomXPathNSResolver.cpp:
3828         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
3829         * bindings/js/JSEventListener.cpp:
3830         (WebCore::JSAbstractEventListener::handleEvent):
3831         * bindings/js/ScheduledAction.cpp:
3832         (WebCore::ScheduledAction::execute):
3833         * bindings/js/ScriptController.cpp:
3834         (WebCore::ScriptController::evaluate):
3835         * bindings/objc/WebScriptObject.mm:
3836         (WebCore::addExceptionToConsole):
3837         * page/Console.cpp:
3838         (WebCore::Console::reportException):
3839         * page/Console.h:
3840
3841 2008-07-20  Nikolas Zimmermann  <zimmermann@kde.org>
3842
3843         Rubber stamped by Oliver.
3844
3845         Another attempt to fix the win build.
3846
3847         * svg/SVGAnimatedProperty.h:
3848
3849 2008-07-20  Alexey Proskuryakov  <ap@webkit.org>
3850
3851         Reviewed by David Kilzer.
3852
3853         Fix high CPU usage on testmyiphone.com.
3854
3855         - Made the logic for determining when to stop looking for meta charset more strainghtforward.
3856         Previously, this happened if a tag that's disallowed in HEAD was seen past the first 512
3857         bytes. Now, the algorithm bails out at the boundary if we are lo longer in HEAD (i.e, an
3858         offending tag was seen at any point before).
3859
3860         - The above change made one of our regression tests fail, because it had its <meta>
3861         declaration past the 512 byte boundary. Fixed it by raising the boundary to 1024 bytes.
3862
3863         - Made the algorithm bail out quickly if a comment that's not in HEAD crosses the boundary.
3864
3865         - Moved a check for XML content type out of the loop.
3866
3867         * loader/TextResourceDecoder.cpp:
3868         (WebCore::TextResourceDecoder::checkForHeadCharset): 
3869
3870 2008-07-20  Oliver Hunt  <oliver@apple.com>
3871
3872         Reviewed by NOBODY (build fix).
3873
3874         Attempt to fix windows build
3875
3876         * svg/SVGAnimatedProperty.h:
3877
3878 2008-07-19  Nikolas Zimmermann  <zimmermann@kde.org>
3879
3880         Reviewed by Oliver & parts by Eric.
3881
3882         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20051
3883
3884         Rewrite animated property concept without heavy macro usage, replace by a templatified solution.
3885         Fewer virtual function calls, no more usage of the tear-off's within internal code (synchronization needed it before.)
3886
3887         * dom/Element.cpp:
3888         (WebCore::Element::attributes):
3889         (WebCore::Element::getAttribute):
3890         (WebCore::Element::hasAttributes):
3891         * dom/Element.h:
3892         (WebCore::Element::updateAnimatedSVGAttribute): Take const String&, not StringImpl*.
3893         * svg/SVGAElement.cpp:
3894         (WebCore::SVGAElement::SVGAElement):
3895         * svg/SVGAElement.h:
3896         * svg/SVGAltGlyphElement.h:
3897         * svg/SVGAnimatedProperty.h: Added.
3898         * svg/SVGAnimatedTemplate.h:
3899         (WebCore::lookupOrCreateWrapper):
3900         * svg/SVGAnimationElement.h:
3901         * svg/SVGCircleElement.cpp:
3902         (WebCore::SVGCircleElement::SVGCircleElement):
3903         * svg/SVGCircleElement.h:
3904         * svg/SVGClipPathElement.cpp:
3905         (WebCore::SVGClipPathElement::SVGClipPathElement):
3906         * svg/SVGClipPathElement.h:
3907         * svg/SVGComponentTransferFunctionElement.cpp:
3908         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
3909         * svg/SVGComponentTransferFunctionElement.h:
3910         * svg/SVGCursorElement.cpp:
3911         (WebCore::SVGCursorElement::SVGCursorElement):
3912         * svg/SVGCursorElement.h:
3913         * svg/SVGDefsElement.h:
3914         (WebCore::SVGDefsElement::contextElement):
3915         * svg/SVGElement.cpp:
3916         (WebCore::SVGElement::updateAnimatedSVGAttribute):
3917         * svg/SVGElement.h:
3918         (WebCore::SVGElement::supplementalTransform):
3919         (WebCore::SVGElement::invokeSVGPropertySynchronizer):
3920         (WebCore::SVGElement::invokeAllSVGPropertySynchronizers):
3921         (WebCore::SVGElement::addSVGPropertySynchronizer):
3922         * svg/SVGEllipseElement.cpp:
3923         (WebCore::SVGEllipseElement::SVGEllipseElement):
3924         * svg/SVGEllipseElement.h:
3925         * svg/SVGExternalResourcesRequired.cpp:
3926         (WebCore::SVGExternalResourcesRequired::SVGExternalResourcesRequired):
3927         * svg/SVGExternalResourcesRequired.h:
3928         * svg/SVGFEBlendElement.cpp:
3929         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
3930         * svg/SVGFEBlendElement.h:
3931         * svg/SVGFEColorMatrixElement.cpp:
3932         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
3933         * svg/SVGFEColorMatrixElement.h:
3934         * svg/SVGFEComponentTransferElement.cpp:
3935         (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
3936         * svg/SVGFEComponentTransferElement.h:
3937         * svg/SVGFECompositeElement.cpp:
3938         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
3939         * svg/SVGFECompositeElement.h:
3940         * svg/SVGFEDiffuseLightingElement.cpp:
3941         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
3942         * svg/SVGFEDiffuseLightingElement.h:
3943         * svg/SVGFEDisplacementMapElement.cpp:
3944         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
3945         * svg/SVGFEDisplacementMapElement.h:
3946         * svg/SVGFEFloodElement.h:
3947         * svg/SVGFEGaussianBlurElement.cpp:
3948         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
3949         * svg/SVGFEGaussianBlurElement.h:
3950         * svg/SVGFEImageElement.cpp:
3951         (WebCore::SVGFEImageElement::SVGFEImageElement):
3952         * svg/SVGFEImageElement.h:
3953         * svg/SVGFELightElement.cpp:
3954         (WebCore::SVGFELightElement::SVGFELightElement):
3955         * svg/SVGFELightElement.h:
3956         (WebCore::SVGFELightElement::contextElement):
3957         * svg/SVGFEMergeElement.h:
3958         * svg/SVGFEMergeNodeElement.cpp:
3959         (WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement):
3960         * svg/SVGFEMergeNodeElement.h:
3961         * svg/SVGFEOffsetElement.cpp:
3962         (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
3963         * svg/SVGFEOffsetElement.h:
3964         * svg/SVGFESpecularLightingElement.cpp:
3965         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
3966         * svg/SVGFESpecularLightingElement.h:
3967         * svg/SVGFETileElement.cpp:
3968         (WebCore::SVGFETileElement::SVGFETileElement):
3969         * svg/SVGFETileElement.h:
3970         * svg/SVGFETurbulenceElement.cpp:
3971         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
3972         * svg/SVGFETurbulenceElement.h:
3973         * svg/SVGFilterElement.cpp:
3974         (WebCore::SVGFilterElement::SVGFilterElement):
3975         * svg/SVGFilterElement.h:
3976         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3977         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
3978         * svg/SVGFilterPrimitiveStandardAttributes.h:
3979         * svg/SVGFitToViewBox.cpp:
3980         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
3981         * svg/SVGFitToViewBox.h:
3982         * svg/SVGFontElement.h:
3983         (WebCore::SVGFontElement::rendererIsNeeded):
3984         (WebCore::SVGFontElement::contextElement):
3985         * svg/SVGForeignObjectElement.cpp:
3986         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
3987         * svg/SVGForeignObjectElement.h:
3988         * svg/SVGGElement.h:
3989         * svg/SVGGradientElement.cpp:
3990         (WebCore::SVGGradientElement::SVGGradientElement):
3991         * svg/SVGGradientElement.h:
3992         (WebCore::SVGGradientElement::contextElement):
3993         * svg/SVGImageElement.cpp:
3994         (WebCore::SVGImageElement::SVGImageElement):
3995         * svg/SVGImageElement.h:
3996         * svg/SVGLineElement.cpp:
3997         (WebCore::SVGLineElement::SVGLineElement):
3998         * svg/SVGLineElement.h:
3999         * svg/SVGLinearGradientElement.cpp:
4000         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
4001         * svg/SVGLinearGradientElement.h:
4002         * svg/SVGMarkerElement.cpp:
4003         (WebCore::SVGMarkerElement::SVGMarkerElement):
4004         (WebCore::SVGMarkerElement::canvasResource):
4005         * svg/SVGMarkerElement.h:
4006         * svg/SVGMaskElement.cpp:
4007         (WebCore::SVGMaskElement::SVGMaskElement):
4008         * svg/SVGMaskElement.h:
4009         * svg/SVGPathElement.cpp:
4010         (WebCore::SVGPathElement::SVGPathElement):
4011         (WebCore::SVGPathElement::parseMappedAttribute):
4012         * svg/SVGPathElement.h:
4013         * svg/SVGPatternElement.cpp:
4014         (WebCore::SVGPatternElement::SVGPatternElement):
4015         * svg/SVGPatternElement.h:
4016         (WebCore::SVGPatternElement::contextElement):
4017         * svg/SVGPolyElement.h:
4018         * svg/SVGPreserveAspectRatio.cpp:
4019         * svg/SVGRadialGradientElement.cpp:
4020         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
4021         * svg/SVGRadialGradientElement.h:
4022         * svg/SVGRectElement.cpp:
4023         (WebCore::SVGRectElement::SVGRectElement):
4024         * svg/SVGRectElement.h:
4025         * svg/SVGSVGElement.cpp:
4026         (WebCore::SVGSVGElement::SVGSVGElement):
4027         * svg/SVGSVGElement.h:
4028         * svg/SVGScriptElement.cpp:
4029         * svg/SVGScriptElement.h:
4030         * svg/SVGStopElement.cpp:
4031         (WebCore::SVGStopElement::SVGStopElement):
4032         * svg/SVGStopElement.h:
4033         * svg/SVGStyledElement.cpp:
4034         (WebCore::SVGStyledElement::SVGStyledElement):
4035         * svg/SVGStyledElement.h:
4036         * svg/SVGStyledTransformableElement.cpp:
4037         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
4038         * svg/SVGStyledTransformableElement.h:
4039         * svg/SVGSwitchElement.h:
4040         * svg/SVGSymbolElement.h:
4041         (WebCore::SVGSymbolElement::contextElement):
4042         * svg/SVGTRefElement.h:
4043         * svg/SVGTSpanElement.h:
4044         * svg/SVGTextContentElement.cpp:
4045         (WebCore::SVGTextContentElement::SVGTextContentElement):
4046         * svg/SVGTextContentElement.h:
4047         (WebCore::SVGTextContentElement::contextElement):
4048         * svg/SVGTextElement.cpp:
4049         (WebCore::SVGTextElement::SVGTextElement):
4050         * svg/SVGTextElement.h:
4051         * svg/SVGTextPathElement.cpp:
4052         (WebCore::SVGTextPathElement::SVGTextPathElement):
4053         * svg/SVGTextPathElement.h:
4054         * svg/SVGTextPositioningElement.cpp:
4055         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
4056         * svg/SVGTextPositioningElement.h:
4057         * svg/SVGTransformable.h:
4058         * svg/SVGURIReference.cpp:
4059         (WebCore::SVGURIReference::SVGURIReference):
4060         * svg/SVGURIReference.h:
4061         * svg/SVGUseElement.cpp:
4062         (WebCore::SVGUseElement::SVGUseElement):
4063         * svg/SVGUseElement.h:
4064         * svg/SVGViewElement.h:
4065         * svg/SVGViewSpec.h:
4066
4067 2008-07-18  Maxime Britto  <britto@apple.com>
4068
4069         Reviewed by Adele.
4070         
4071         Fixed <rdar://problem/6049803>
4072         Prevent the autoscroll to trigger in WebClips when starting or hovering on an editable field.
4073
4074         Test: fast/events/autoscroll-with-non-scrollable-parent.html
4075
4076         * ChangeLog:
4077         * page/EventHandler.cpp: Edited
4078         (WebCore::EventHandler::handleMousePressEvent): changed the name of the funtion called to canBeProgramaticallyScrolled()
4079         (WebCore::EventHandler::handleMouseDraggedEvent): prevent the autoscroll to keep looking for a renderer when it's already triggered
4080         * rendering/RenderLayer.cpp:
4081         (WebCore::RenderLayer::scrollRectToVisible): verifies that the top layer can be programmatically scrolled before asking him to make the rect visible
4082         * rendering/RenderListBox.h:
4083         (WebCore::RenderListBox::canBeProgramaticallyScrolled):
4084         * rendering/RenderObject.cpp:
4085         (WebCore::RenderObject::canBeProgramaticallyScrolled): Edited : For the 3rd case we want document's renderer to have scrollbar as it's the top layer   
4086         (WebCore::RenderObject::hasScrollableView): Verifies that the Object has a view with scrollBars
4087         * rendering/RenderObject.h: Renamed shouldAutosroll() for canBeProgramaticallyScrolled()
4088         * rendering/RenderTextControl.h:
4089         (WebCore::RenderTextControl::canBeProgramaticallyScrolled):
4090
4091 2008-07-18  Sam Weinig  <sam@webkit.org>
4092
4093         Reviewed by Anders Carlsson.
4094
4095         <rdar://problem/6087283> Add support for uploading files via XMLHttpRequest
4096
4097         - Overload XMLHttpRequests send() method to accept File tokens.
4098
4099         * bindings/js/JSXMLHttpRequestCustom.cpp:
4100         (WebCore::JSXMLHttpRequest::send): 
4101         * xml/XMLHttpRequest.cpp:
4102         (WebCore::XMLHttpRequest::send):
4103         * xml/XMLHttpRequest.h:
4104
4105 2008-07-18  Geoffrey Garen  <ggaren@apple.com>
4106
4107         Reviewed by Cameron Zwarich.
4108         
4109         Three renames:
4110         
4111         "CallTypeNative" => "CallTypeHost"
4112         "code" => "byteCode"
4113         "generatedCode" => "generatedByteCode"
4114
4115 2008-07-18  Adele Peterson  <adele@apple.com>
4116
4117         Reviewed by Dan Bernstein.
4118
4119         I recently made a change to avoid fading media controls in and out if a video element actually only contains audio,
4120         which broke the code that did the same thing for audio elements that contain video (but don't actually display that video).
4121         This change will now check both the media element and the player to decide whether or not to make the controls persistent.
4122
4123         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::updateControlVisibility):
4124
4125 2008-07-18  Simon Fraser  <simon.fraser@apple.com>
4126
4127         Reviewed by mitz
4128
4129         Remove braces around single-line conditional.
4130         
4131         * css/CSSComputedStyleDeclaration.cpp:
4132         (WebCore::computedTransform):
4133
4134 2008-07-18  Simon Fraser  <simon.fraser@apple.com>
4135
4136         Reviewed by Dave Hyatt
4137
4138         getComputedStyle() for -webkit-transform should return 
4139         'none' for elements with no renderer, or those with no
4140         transform.
4141
4142         https://bugs.webkit.org/show_bug.cgi?id=20008
4143
4144         Testcase: LayoutTests/fast/css/computed-style-without-renderer
4145                   LayoutTests/fast/css/computed-style-expected.txt
4146
4147         * css/CSSComputedStyleDeclaration.cpp:
4148         (WebCore::computedTransform):
4149
4150 2008-07-18  Simon Fraser  <simon.fraser@apple.com>
4151
4152         Reviewed by Dave Hyatt
4153
4154         Fix assertion about creating Length values with percentage types
4155         when blending transforms.
4156         https://bugs.webkit.org/show_bug.cgi?id=20086
4157
4158         * rendering/style/RenderStyle.cpp:
4159         (WebCore::TranslateTransformOperation::blend):
4160
4161 2008-07-17  Jacob Refstrup  <jacob.refstrup@hp.com>
4162
4163         Reviewed by rwlbuis@gmail.com
4164
4165         https://bugs.webkit.org/show_bug.cgi?id=19965
4166
4167         - Added "@"{ident} rule (below other @-rules) to use flex for longest match
4168           (if an earlier rule - e.g. @media - also matches then flex chooses that one
4169            however, if a longer match - e.g. @mediaall matches flex will choose that)
4170         - Updated grammar to defined ATKEYWORD token and to use that instead of '@'
4171           in the error recovery grammar. 
4172
4173         Test: css2.1/atrule_longest_match.html
4174
4175         * ChangeLog:
4176         * css/CSSGrammar.y:
4177         * css/tokenizer.flex:
4178
4179 2008-07-17  David Hyatt  <hyatt@apple.com>
4180
4181         Make sure the check to see if a frame/iframe is being rendered inside a transparency layer is
4182         recursive (and checks for transparency layers all the way up the ancestor document chain back to
4183         the top-level frame).
4184
4185         Reviewed by Dan
4186
4187         * rendering/RenderView.cpp:
4188         (WebCore::RenderView::paintBoxDecorations):
4189
4190 2008-07-16  Jon Honeycutt  <jhoneycutt@apple.com>
4191
4192         REGRESSION: Can't create windowless plug-in with Flash 9
4193         https://bugs.webkit.org/show_bug.cgi?id=20070
4194
4195         Reviewed by Mark Rowe.
4196
4197         * plugins/win/PluginPackageWin.cpp:
4198         (WebCore::PluginPackage::determineQuirks): Reverse argument order;
4199         PlatformModuleVersion constructor takes leastSig, mostSig.
4200
4201 2008-07-16  Eric Seidel  <eric@webkit.org>
4202
4203         Reviewed by mitz.
4204
4205         Attempt to make initializeATSUStyle human-readable by
4206         splitting it out into better-named static inline functions.
4207
4208         No functional changes, thus no tests.
4209
4210         * platform/graphics/mac/FontMac.mm:
4211         (WebCore::fontHasMirroringInfo):
4212         (WebCore::disableLigatures):
4213         (WebCore::initializeATSUStyle):
4214
4215 2008-07-16  Eric Seidel  <eric@webkit.org>
4216
4217         No review, build fix only.
4218
4219         Attempt to fix Mac build
4220
4221         * WebCore.xcodeproj/project.pbxproj: Make TextRun.h a private header.
4222
4223 2008-07-16  Eric Seidel  <eric@webkit.org>
4224
4225         Reviewed by mitz.
4226
4227         Make ATSULayoutParameters a real C++ class
4228         (Give it a destructor to clean up after itself)
4229         (Also use OwnArrayPtr instead of manual member cleanup)
4230
4231         * platform/graphics/mac/FontMac.mm:
4232         (WebCore::ATSULayoutParameters::ATSULayoutParameters):
4233         (WebCore::ATSULayoutParameters::~ATSULayoutParameters):
4234         (WebCore::overrideLayoutOperation):
4235         (WebCore::ATSULayoutParameters::initialize):
4236         (WebCore::Font::selectionRectForComplexText):
4237         (WebCore::Font::drawComplexText):
4238         (WebCore::Font::floatWidthForComplexText):
4239         (WebCore::Font::offsetForPositionForComplexText):
4240
4241 2008-07-16  Eric Seidel  <eric@webkit.org>
4242
4243         Reviewed by mitz.
4244
4245         Make ownership of copied UChar buffer clearer
4246         (and more leak-proof) by using a OwnArrayPtr.
4247
4248         No functional changes, thus no tests.
4249
4250         * platform/graphics/mac/FontMac.mm:
4251         (WebCore::copyRunForDirectionalOverrideIfNecessary):
4252         (WebCore::Font::selectionRectForComplexText):
4253         (WebCore::Font::drawComplexText):
4254         (WebCore::Font::offsetForPositionForComplexText):
4255
4256 2008-07-16  Eric Seidel  <eric@webkit.org>
4257
4258         Reviewed by Sam.
4259
4260         Split out TextRun into its own header file.
4261         Re-order members to place all bools together
4262         (to allow compilers to better pack the struct)
4263
4264         No functional changes, thus no tests.
4265
4266         * WebCore.vcproj/WebCore.vcproj:
4267         * WebCore.xcodeproj/project.pbxproj:
4268         * platform/graphics/Font.h: Moved TextRun into its own file.
4269         * platform/graphics/TextRun.h: Split out from Font.h
4270
4271 2008-07-16  Simon Fraser  <simon.fraser@apple.com>
4272
4273         Reviewed by Dave Hyatt
4274
4275         AnimationController needs to adjust z-index in the blended
4276         style in case opacity or transform were changed by blending.
4277
4278         https://bugs.webkit.org/show_bug.cgi?id=20047
4279         
4280         Test: transitions/opacity-transition-zindex.html
4281
4282         * page/AnimationController.cpp:
4283         (WebCore::AnimationController::updateImplicitAnimations):
4284
4285 2008-07-16  Nikolas Zimmermann  <zimmermann@kde.org>
4286
4287         Reviewed by Sam.
4288
4289         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20052 
4290         Prepare SVGAnimatedProperty introduction.
4291
4292         Export the tag & attribute names as string literals for SVGNames/XLinkNames and one property in HTMLNames. SVGAnimatedProperty
4293         contains two string literal template parameters, and we're using these exported string literals from {SVG,HTML,XLink}Names as input paramters.
4294         See https://bugs.webkit.org/show_bug.cgi?id=20051 for details.
4295
4296         * dom/make_names.pl: Handle new params "exportString" / "exportStrings".
4297         * html/HTMLAttributeNames.in: Expose just the single "class" attribute, as string.
4298         * svg/svgattrs.in: Export all SVG attributes as strings.
4299         * svg/svgtags.in: Export all SVG tags as strings.
4300         * svg/xlinkattrs.in: Expose all XLink attributes as strings.
4301
4302 2008-07-16  Nikolas Zimmermann  <zimmermann@kde.org>
4303
4304         Reviewed by Eric.
4305
4306         Fixes: https://bugs.webkit.org/show_bug.cgi?id=10745 (SVGLength object needs some weight loss)
4307         Don't store a context pointer in SVGLength, saving memory. Let the caller of the value() & convertToSpecifiedUnits() pass it.
4308
4309         Remove some uneeded contextElement() functions, by moving into approriate shared base classes.
4310
4311         * GNUmakefile.am:
4312         * WebCore.pro:
4313         * WebCore.vcproj/WebCore.vcproj:
4314         * WebCore.xcodeproj/project.pbxproj:
4315         * bindings/js/JSSVGLengthCustom.cpp: Added.
4316         (WebCore::JSSVGLength::value):
4317         (WebCore::JSSVGLength::convertToSpecifiedUnits):
4318         * bindings/scripts/CodeGeneratorObjC.pm:
4319         * css/CSSCursorImageValue.cpp:
4320         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
4321         * rendering/RenderForeignObject.cpp:
4322         (WebCore::RenderForeignObject::translationForAttributes):
4323         * rendering/RenderSVGImage.cpp:
4324         (WebCore::RenderSVGImage::layout):
4325         * rendering/RenderSVGRoot.cpp:
4326         (WebCore::RenderSVGRoot::calcViewport):
4327         * rendering/RenderSVGText.cpp:
4328         (WebCore::RenderSVGText::layout):
4329         * rendering/RenderSVGViewportContainer.cpp:
4330         (WebCore::RenderSVGViewportContainer::calcViewport):
4331         * rendering/SVGCharacterLayoutInfo.cpp:
4332         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
4333         (WebCore::SVGCharacterLayoutInfo::addStackContent):
4334         * rendering/SVGCharacterLayoutInfo.h:
4335         * rendering/SVGRootInlineBox.cpp:
4336         (WebCore::SVGRootInlineBox::buildTextChunks):
4337         * svg/SVGAnimateElement.h:
4338         * svg/SVGAnimateMotionElement.h:
4339         * svg/SVGAnimateTransformElement.h:
4340         * svg/SVGAnimationElement.h:
4341         (WebCore::SVGAnimationElement::contextElement):
4342         * svg/SVGCircleElement.cpp:
4343         (WebCore::SVGCircleElement::SVGCircleElement):
4344         (WebCore::SVGCircleElement::parseMappedAttribute):
4345         (WebCore::SVGCircleElement::toPathData):
4346         * svg/SVGCursorElement.cpp:
4347         (WebCore::SVGCursorElement::SVGCursorElement):
4348         (WebCore::SVGCursorElement::parseMappedAttribute):
4349         * svg/SVGEllipseElement.cpp:
4350         (WebCore::SVGEllipseElement::SVGEllipseElement):
4351         (WebCore::SVGEllipseElement::parseMappedAttribute):
4352         (WebCore::SVGEllipseElement::toPathData):
4353         * svg/SVGFilterElement.cpp:
4354         (WebCore::SVGFilterElement::SVGFilterElement):
4355         (WebCore::SVGFilterElement::parseMappedAttribute):
4356         (WebCore::SVGFilterElement::canvasResource):
4357         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
4358         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
4359         (WebCore::SVGFilterPrimitiveStandardAttributes::parseMappedAttribute):
4360         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
4361         * svg/SVGForeignObjectElement.cpp:
4362         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
4363         (WebCore::SVGForeignObjectElement::parseMappedAttribute):
4364         * svg/SVGImageElement.cpp:
4365         (WebCore::SVGImageElement::SVGImageElement):
4366         (WebCore::SVGImageElement::parseMappedAttribute):
4367         * svg/SVGLength.cpp:
4368         (WebCore::SVGLength::SVGLength):
4369         (WebCore::SVGLength::value):
4370         (WebCore::SVGLength::convertToSpecifiedUnits):
4371         (WebCore::SVGLength::PercentageOfViewport):
4372         * svg/SVGLength.h:
4373         * svg/SVGLength.idl:
4374         * svg/SVGLengthList.cpp:
4375         (WebCore::SVGLengthList::parse):
4376         * svg/SVGLengthList.h:
4377         * svg/SVGLineElement.cpp:
4378         (WebCore::SVGLineElement::SVGLineElement):
4379         (WebCore::SVGLineElement::parseMappedAttribute):
4380         (WebCore::SVGLineElement::toPathData):
4381         * svg/SVGLinearGradientElement.cpp:
4382         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
4383         (WebCore::SVGLinearGradientElement::parseMappedAttribute):
4384         * svg/SVGMarkerElement.cpp:
4385         (WebCore::SVGMarkerElement::SVGMarkerElement):
4386         (WebCore::SVGMarkerElement::parseMappedAttribute):
4387         (WebCore::SVGMarkerElement::canvasResource):
4388         * svg/SVGMaskElement.cpp:
4389         (WebCore::SVGMaskElement::SVGMaskElement):
4390         (WebCore::SVGMaskElement::parseMappedAttribute):
4391         (WebCore::SVGMaskElement::drawMaskerContent):
4392         * svg/SVGPatternElement.cpp:
4393         (WebCore::SVGPatternElement::SVGPatternElement):
4394         (WebCore::SVGPatternElement::parseMappedAttribute):
4395         (WebCore::SVGPatternElement::buildPattern):
4396         * svg/SVGRadialGradientElement.cpp:
4397         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
4398         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
4399         * svg/SVGRectElement.cpp:
4400         (WebCore::SVGRectElement::SVGRectElement):
4401         (WebCore::SVGRectElement::parseMappedAttribute):
4402         (WebCore::SVGRectElement::toPathData):
4403         * svg/SVGSVGElement.cpp:
4404         (WebCore::SVGSVGElement::SVGSVGElement):
4405         (WebCore::SVGSVGElement::viewport):
4406         (WebCore::SVGSVGElement::parseMappedAttribute):
4407         (WebCore::SVGSVGElement::getCTM):
4408         (WebCore::SVGSVGElement::getScreenCTM):
4409         * svg/SVGTextContentElement.cpp:
4410         (WebCore::SVGTextContentElement::SVGTextContentElement):
4411         (WebCore::SVGTextContentElement::parseMappedAttribute):
4412         * svg/SVGTextPathElement.cpp:
4413         (WebCore::SVGTextPathElement::SVGTextPathElement):
4414         (WebCore::SVGTextPathElement::parseMappedAttribute):
4415         * svg/SVGTextPositioningElement.cpp:
4416         (WebCore::SVGTextPositioningElement::parseMappedAttribute):
4417         * svg/SVGUseElement.cpp:
4418         (WebCore::SVGUseElement::SVGUseElement):
4419         (WebCore::SVGUseElement::parseMappedAttribute):
4420         (WebCore::SVGUseElement::buildPendingResource):
4421         (WebCore::SVGUseElement::buildInstanceTree):
4422         (WebCore::SVGUseElement::handleDeepUseReferencing):
4423         (WebCore::SVGUseElement::alterShadowTreeForSVGTag):
4424         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
4425         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
4426         * svg/SVGUseElement.h:
4427         * svg/SynchronizableTypeWrapper.h:
4428         * svg/graphics/SVGImage.cpp:
4429         (WebCore::SVGImage::size):
4430
4431 2008-07-16  Geoffrey Garen  <ggaren@apple.com>
4432
4433         Reviewed by Oliver Hunt.
4434
4435         Support for JavaScriptCore's first step toward putting doubles in
4436         registers: Treat ArgList iterators as Register*'s, not JSValue*'s.
4437
4438         * bindings/js/ScheduledAction.cpp:
4439         (WebCore::ScheduledAction::ScheduledAction):
4440
4441 2008-07-15  Maxime Britto  <britto@apple.com>
4442
4443         Reviewed by Eric.
4444
4445         https://bugs.webkit.org/show_bug.cgi?id=17589
4446         <rdar://problem/5770893>
4447         Retrieve the wheel sensitivity setting from windows system settings for the horizontal and the vertical scrolling.
4448         Allows the page scrolling with the wheel (if activated in windows settings) on both horizontal and vertical ways
4449         For the other platforms, nothing is changed but if someone want to activate this feature 
4450         he/she has to retrieve the settings and fill out the m_lineScrollSensitivity and/or m_charScrollSensitivity in his/her PlatformWheelEvent constructor.
4451
4452         * ChangeLog:
4453         * page/EventHandler.cpp:
4454         (WebCore::scrollAndAcceptEvent): static inline function to avoid copy/paste in the member functions
4455         (WebCore::EventHandler::handleWheelEvent): Call to the above mentionned static inline function with the right parameters 
4456         * platform/PlatformWheelEvent.h:
4457         (WebCore::PlatformWheelEvent::deltaX): Now returns the delta multiplied by the user settings for the number of lines to scroll
4458         (WebCore::PlatformWheelEvent::deltaY): Now returns the delta multiplied by the user settings for the number of chars to scroll
4459         (WebCore::PlatformWheelEvent::isPageXScrollModeEnabled):
4460         (WebCore::PlatformWheelEvent::isPageYScrollModeEnabled):
4461         * platform/gtk/WheelEventGtk.cpp: Add the values to avoid build break but the factors are initialized to 1 not to change the previous behavior
4462         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
4463         * platform/mac/WheelEventMac.mm: Add the values to avoid build break but the factors are initialized to 1 not to change the previous behavior
4464         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
4465         * platform/qt/WheelEventQt.cpp: Add the values to avoid build break but the factors are initialized to 1 not to change the previous behavior
4466         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
4467         * platform/win/ScrollViewWin.cpp: Added the page scroll (horiz/vertical) and reduced the number of pixels to scroll per line to keep the standard behavior with the factor
4468         (WebCore::adjustDeltaForPageScrollMode): static inline function to avoid copy/paste in the member functions
4469         (WebCore::ScrollView::updateScrollbars):
4470         (WebCore::ScrollView::wheelEvent):
4471         * platform/win/WheelEventWin.cpp: Retrieves the new values by using the win32 API.
4472         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
4473         * platform/wx/MouseWheelEventWx.cpp: Add the values to avoid build break but the factors are initialized to 1 not to change the previous behavior
4474         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
4475
4476 2008-07-15  Kevin Ollivier  <kevino@theolliviers.com>
4477
4478         wx build fix - adding AccessibilityImageMapLink.cpp to the wx build.
4479
4480         * WebCoreSources.bkl:
4481
4482 2008-07-15  Kevin McCullough  <kmccullough@apple.com>
4483
4484         Reviewed by Dan.
4485
4486         <rdar://problem/5620273> REGRESSION: Apparent caching between form
4487         submits twice (on Maconomy) (18401)
4488
4489         Frames did not set the createdByParser flag even when they were.
4490
4491         * html/HTMLElementFactory.cpp:
4492         (WebCore::frameConstructor):
4493         (WebCore::iframeConstructor):
4494
4495 2008-07-15  Dan Bernstein  <mitz@apple.com>
4496
4497         Reviewed by Dave Hyatt.
4498
4499         - fix https://bugs.webkit.org/show_bug.cgi?id=19525
4500           <rdar://problem/5961768> -webkit-box-reflect in hyperlink causes webkit to crash
4501
4502         Test: fast/reflections/inline-crash.html
4503
4504         * rendering/RenderInline.cpp:
4505         (WebCore::RenderInline::setStyle): Added setHasReflection(false).
4506         Inline flows never have reflections.
4507
4508 2008-07-14  David Hyatt  <hyatt@apple.com>
4509
4510         Allow <style> and <link> pretty much anywhere.  They will still be moved to the <head> if
4511         no <body> exists yet though.
4512
4513         Reviewed by Sam
4514
4515         Added fast/css/style-parsed-outside-of-head.html
4516
4517         * html/HTMLElement.cpp:
4518         (WebCore::inlineTagList):
4519
4520 2008-07-15  Kevin McCullough  <kmccullough@apple.com>
4521
4522         Reviewed by Geoff.
4523
4524         Rename pageGroupIdentifier to profileGroup to keep mention of a
4525         pageGroup out of JavaScriptCore.
4526
4527         * bindings/js/JSQuarantinedObjectWrapper.cpp:
4528         (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom):
4529         * bindings/js/ScriptController.cpp:
4530         (WebCore::ScriptController::clear):
4531         (WebCore::ScriptController::initScript):
4532         * history/CachedPage.cpp:
4533         (WebCore::CachedPage::restore):
4534
4535 2008-07-15  Adam Roben  <aroben@apple.com>
4536
4537         WebCore part of adding WebKit[Set]ShouldUseFontSmoothing functions
4538
4539         <rdar://6059127>
4540
4541         Reviewed by John Sullivan.
4542
4543         * platform/graphics/win/FontCGWin.cpp:
4544         (WebCore::Font::drawGlyphs): Pass the result of
4545         WebCoreShouldUseFontSmoothing() into wkSetFontSmoothingStyle.
4546         * platform/win/WebCoreTextRenderer.cpp:
4547         (WebCore::WebCoreSetShouldUseFontSmoothing):
4548         (WebCore::WebCoreShouldUseFontSmoothing):
4549         Added.
4550         * platform/win/WebCoreTextRenderer.h:
4551
4552 2008-07-15  Adam Roben  <aroben@apple.com>
4553
4554         Windows build fix
4555
4556         * WebCore.vcproj/WebCore.vcproj: Add AccessibilityImageMapLink.{cpp,h}
4557         to the project.
4558
4559 2008-07-15  Holger Hans Peter Freyther  <zecke@selfish.org>
4560
4561         Build fix for the Gtk+ and Qt platform.
4562
4563         * GNUmakefile.am: Add AccessibilityImageMapLink.cpp to the build
4564         * WebCore.pro: Add AccessibilityImageMapLink.cpp to the build
4565
4566 2008-07-14  Dan Bernstein  <mitz@apple.com>
4567
4568         - Tiger build fix
4569
4570         * platform/mac/WidgetMac.mm:
4571         (WebCore::Widget::paint):
4572
4573 2008-07-14  Dan Bernstein  <mitz@apple.com>
4574
4575         Reviewed by John Sullivan.
4576
4577         - WebCore part of fixing <rdar://problem/6071850> Subviews not drawn correctly when using -cacheDisplayInRect:toBitmapImageRep:
4578
4579         * platform/mac/WidgetMac.mm:
4580         (WebCore::Widget::paint): Changed to account for the case of drawing
4581         into a bitmap context that is not a window's backing store. In that
4582         case, -displayRectIgnoringOpacity:inContext: is used to redirect the
4583         drawing to the correct context, after setting up the right transform
4584         on it. For subframes, additional code ensures that the scroll view will
4585         not paint the background behind a transparent frame.
4586
4587 2008-07-14  chris fleizach  <cfleizach@apple.com>
4588
4589         Reviewed by Beth Dakin
4590
4591         <rdar://problem/6038106> AXChildren returned for this web area is null
4592         Accessibility of image maps needed to be updated
4593
4594         Tests: accessibility/image-map1.html
4595                accessibility/image-map2.html
4596
4597         * WebCore.xcodeproj/project.pbxproj:
4598         * page/AXObjectCache.cpp:
4599         (WebCore::AXObjectCache::get):
4600         * page/AccessibilityImageMapLink.cpp: Added.
4601         (WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
4602         (WebCore::AccessibilityImageMapLink::~AccessibilityImageMapLink):
4603         (WebCore::AccessibilityImageMapLink::create):
4604         (WebCore::AccessibilityImageMapLink::parentObject):
4605         (WebCore::AccessibilityImageMapLink::anchorElement):
4606         (WebCore::AccessibilityImageMapLink::accessibilityDescription):
4607         (WebCore::AccessibilityImageMapLink::title):
4608         (WebCore::AccessibilityImageMapLink::elementRect):
4609         (WebCore::AccessibilityImageMapLink::size):
4610         * page/AccessibilityImageMapLink.h: Added.
4611         (WebCore::AccessibilityImageMapLink::setHTMLAreaElement):
4612         (WebCore::AccessibilityImageMapLink::setHTMLMapElement):
4613         (WebCore::AccessibilityImageMapLink::roleValue):
4614         (WebCore::AccessibilityImageMapLink::accessibilityIsIgnored):
4615         (WebCore::AccessibilityImageMapLink::isLink):
4616         * page/AccessibilityListBoxOption.h:
4617         * page/AccessibilityObject.cpp:
4618         (WebCore::AccessibilityObject::selectedChildren):
4619         (WebCore::AccessibilityObject::visibleChildren):
4620         * page/AccessibilityObject.h:
4621         (WebCore::):
4622         * page/AccessibilityRenderObject.cpp:
4623         (WebCore::AccessibilityRenderObject::parentObject):
4624         (WebCore::AccessibilityRenderObject::isAnchor):
4625         (WebCore::AccessibilityRenderObject::anchorElement):
4626         (WebCore::AccessibilityRenderObject::helpText):
4627         (WebCore::AccessibilityRenderObject::intValue):
4628         (WebCore::AccessibilityRenderObject::stringValue):
4629         (WebCore::AccessibilityRenderObject::title):
4630         (WebCore::AccessibilityRenderObject::accessibilityDescription):
4631         (WebCore::AccessibilityRenderObject::elementRect):
4632         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
4633         (WebCore::AccessibilityRenderObject::roleValue):
4634         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
4635         (WebCore::AccessibilityRenderObject::addChildren):
4636         * page/AccessibilityRenderObject.h:
4637         * page/mac/AccessibilityObjectWrapper.mm:
4638         (convertToNSArray):
4639         (RoleEntry::):
4640
4641 2008-07-14  Sam Weinig  <sam@webkit.org>
4642
4643         Rubber-stamped by David Hyatt.
4644
4645         Remove unused ExceptionCode parameter from compareDocumentPosition.
4646
4647         * dom/Document.cpp:
4648         (WebCore::Document::addStyleSheetCandidateNode):
4649         * dom/Node.cpp:
4650         (WebCore::Node::compareDocumentPosition):
4651         * dom/Node.h:
4652         * dom/Node.idl:
4653
4654 2008-07-14  David Hyatt  <hyatt@apple.com>
4655
4656         Fix for bugzilla bug 5476, link and style elements should be allowed outside the <head>.
4657
4658         Reviewed by Sam
4659
4660         Added fast/css/style-outside-head.html
4661         Added fast/css/link-outside-head.html
4662
4663         * dom/Document.cpp:
4664         (WebCore::Document::addStyleSheetCandidateNode):
4665         (WebCore::Document::removeStyleSheetCandidateNode):
4666         (WebCore::Document::recalcStyleSelector):
4667         * dom/Document.h:
4668         * dom/Node.cpp:
4669         (WebCore::Node::compareDocumentPosition):
4670         * dom/ProcessingInstruction.cpp:
4671         (WebCore::ProcessingInstruction::checkStyleSheet):
4672         (WebCore::ProcessingInstruction::insertedIntoDocument):
4673         (WebCore::ProcessingInstruction::removedFromDocument):
4674         (WebCore::ProcessingInstruction::finishParsingChildren):
4675         * dom/ProcessingInstruction.h:
4676         (WebCore::ProcessingInstruction::setCreatedByParser):
4677         * dom/StyleElement.cpp:
4678         (WebCore::StyleElement::removedFromDocument):
4679         * dom/XMLTokenizer.cpp:
4680         (WebCore::XMLTokenizer::startElementNs):
4681         (WebCore::XMLTokenizer::processingInstruction):
4682         (WebCore::):
4683         * html/HTMLElementFactory.cpp:
4684         (WebCore::linkConstructor):
4685         * html/HTMLLinkElement.cpp:
4686         (WebCore::HTMLLinkElement::HTMLLinkElement):
4687         (WebCore::HTMLLinkElement::insertedIntoDocument):
4688         (WebCore::HTMLLinkElement::removedFromDocument):
4689         (WebCore::HTMLLinkElement::finishParsingChildren):
4690         * html/HTMLLinkElement.h:
4691         (WebCore::HTMLLinkElement::setCreatedByParser):
4692         * html/HTMLStyleElement.cpp:
4693         (WebCore::HTMLStyleElement::insertedIntoDocument):
4694         (WebCore::HTMLStyleElement::removedFromDocument):
4695         * svg/SVGStyleElement.cpp:
4696         (WebCore::SVGStyleElement::insertedIntoDocument):
4697         (WebCore::SVGStyleElement::removedFromDocument):
4698
4699 2008-07-14  Sam Weinig  <sam@webkit.org>
4700
4701         Reviewed by Mark Rowe.
4702
4703         Sort interface extended attributes to appease *the* Mark Rowe.
4704
4705         * page/DOMWindow.idl:
4706
4707 2008-07-14  Anders Carlsson  <andersca@apple.com>
4708
4709         Reviewed by Geoff.
4710
4711         <rdar://problem/6073974>
4712         https://bugs.webkit.org/show_bug.cgi?id=18106
4713         The "onscroll" event bubbles, which is inconsistent with Firefox and IE
4714
4715         Don't bubble the scroll event.
4716         
4717         * rendering/RenderLayer.cpp:
4718         (WebCore::RenderLayer::scrollToOffset):
4719         * rendering/RenderListBox.cpp:
4720         (WebCore::RenderListBox::valueChanged):
4721
4722 2008-07-14  Adele Peterson  <adele@apple.com>
4723
4724         Reviewed by Geoff.
4725
4726         Fix for <rdar://problem/5784890> REGRESSION (Safari 3): Can't edit SpeedStream 4100 DSL modem settings
4727
4728         The web server on this particular piece of hardware doesn't handle "text/xml" in the 
4729         Accept header if the headers are sent in a certain order.  Safari 2 used to send "*/*" in 
4730         the Accept header.  Firefox 2 sent "text/xml" but in an acceptable order for the web 
4731         server.  And Firefox 3 doesn't send "text/xml" at all in the Accept header since it 
4732         is being deprecated in favor of "application/xml".  We decided that the best solution is 
4733         to match Firefox 3 and stop sending "text/xml" in the Accept header.
4734
4735         No test.  There appears to be no way to get the raw headers in the original order in perl/php.
4736
4737         * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest):
4738
4739 2008-07-14  Sam Weinig  <sam@webkit.org>
4740
4741         Reviewed by Adele Peterson.
4742
4743         Fix for <rdar://problem/5769819>
4744
4745         Test: http/tests/security/cross-frame-access-object-prototype.html
4746
4747         * bindings/js/JSDOMWindowCustom.cpp:
4748         (WebCore::JSDOMWindow::getPropertyAttributes): Perform security check.
4749         (WebCore::JSDOMWindow::defineGetter): Ditto.
4750         (WebCore::JSDOMWindow::defineSetter): Ditto.
4751         (WebCore::JSDOMWindow::lookupGetter): Ditto.
4752         (WebCore::JSDOMWindow::lookupSetter): Ditto.
4753         * bindings/scripts/CodeGeneratorJS.pm: Add support for custom versions
4754         of all the core JSObject functionality.
4755         * page/DOMWindow.idl: Override remaining core JSObject functionality,
4756         to inject security checks.
4757
4758 2008-07-14  Adam Roben  <aroben@apple.com>
4759
4760         Windows build fixes
4761
4762         * WebCore.vcproj/WebCore.vcproj: Add include/pthreads to the include
4763         path.
4764         * bindings/scripts/CodeGeneratorCOM.pm: Touched this to force COM
4765         bindings to regenerate.
4766         * loader/FTPDirectoryDocument.cpp:
4767         * loader/FTPDirectoryParser.cpp:
4768         Fixed some duplicate macro definitions now that we're including
4769         pthread.h again.
4770
4771 2008-07-14  Alexey Proskuryakov  <ap@webkit.org>
4772
4773         Reviewed by Kevin McCullough.
4774
4775         Make JSGlobalData refcounted in preparation to adding a way to create contexts that share
4776         global data.
4777
4778         * bindings/js/JSDOMWindowBase.cpp:
4779         (WebCore::JSDOMWindowBase::commonJSGlobalData): Create JSGlobalData with create() method.
4780
4781 2008-07-14  Simon Hausmann  <hausmann@webkit.org>
4782
4783         Reviewed by Holger.
4784
4785         Make listDirectory() in the Qt port work with empty namefilters.
4786         Don't include . and .. to avoid scanning the parent directory.
4787
4788         * platform/qt/FileSystemQt.cpp:
4789         (WebCore::listDirectory):
4790
4791 2008-07-14  Alexey Proskuryakov  <ap@webkit.org>
4792
4793         Reviewed by Geoff Garen.
4794
4795         Eliminate per-thread JavaScript global data instance support and make arbitrary
4796         global data/global object combinations possible.
4797
4798         * bindings/js/JSDOMWindowBase.h:
4799         * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::commonJSGlobalData): Added.
4800         WebCore uses its own instance of JSGlobalData, as JSC no longer provides a per-thread one.
4801
4802         * bindings/js/JSDOMWindowShell.cpp:
4803         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
4804         (WebCore::JSDOMWindowShell::operator new):
4805         * bindings/js/ScriptController.cpp:
4806         (WebCore::ScriptController::clear):
4807         * bindings/scripts/CodeGeneratorJS.pm:
4808         Pass commonJSGlobalData() as an allocator.
4809
4810         * bridge/c/c_utility.cpp:
4811         (KJS::Bindings::identifierFromNPIdentifier):
4812         * bridge/jni/jni_class.cpp:
4813         (JavaClass::JavaClass):
4814         * history/CachedPage.cpp:
4815         (WebCore::CachedPage::restore):
4816         * storage/Database.cpp:
4817         (WebCore::Database::Database):
4818         * bindings/js/GCController.cpp:
4819         (WebCore::collect):
4820         (WebCore::GCController::gcTimerFired):
4821         (WebCore::GCController::garbageCollectNow):
4822         Use JSDOMWindow::commonJSGlobalData().
4823
4824         * ForwardingHeaders/wtf/ThreadSpecific.h: Added (collector.h now includes this header, so
4825         it need to be accesible outside of JSC).
4826
4827         * WebCore.base.exp: Export JSDOMWindowBase::commonJSGlobalData().
4828
4829 2008-07-14  Ariya Hidayat  <ariya.hidayat@trolltech.com>
4830
4831         Reviewed by Simon.
4832
4833         MinGW build fixes
4834
4835         * plugins/win/PluginDatabaseWin.cpp:
4836         * plugins/win/PluginViewWin.cpp:
4837         (WebCore::PluginView::handleKeyboardEvent):
4838         (WebCore::PluginView::handleMouseEvent):
4839         * svg/SynchronizableTypeWrapper.h:
4840         (WebCore::::SynchronizableTypeWrapper):
4841
4842 2008-07-13  Sam Weinig  <sam@webkit.org>
4843
4844         Reviewed by Oliver Hunt and Dan Bernstein.
4845
4846         Fix for <rdar://problem/5888127>
4847         https://bugs.webkit.org/show_bug.cgi?id=18699
4848
4849         - Match Firefox in restricting the size of custom cursor to images to
4850           128x128 px.
4851         - Restrict custom cursor hotspots to values within the bounds of the
4852           cursor image.
4853
4854         * manual-tests/cursor-max-size.html: Added.
4855         * page/EventHandler.cpp:
4856         (WebCore::EventHandler::selectCursor):
4857
4858 2008-07-13  Kevin Ollivier  <kevino@theolliviers.com>
4859
4860         wx build fix.
4861
4862         * platform/graphics/wx/AffineTransformWx.cpp:
4863         (WebCore::AffineTransform::a):
4864         (WebCore::AffineTransform::b):
4865         (WebCore::AffineTransform::c):
4866         (WebCore::AffineTransform::d):
4867         (WebCore::AffineTransform::e):
4868         (WebCore::AffineTransform::f):
4869
4870 2008-07-12  Dan Bernstein  <mitz@apple.com>
4871
4872         Reviewed by Oliver Hunt.
4873
4874         - fix https://bugs.webkit.org/show_bug.cgi?id=18088
4875           <rdar://problem/6036232> white-space:nowrap; float:left; causing the misalignment issue
4876
4877         Test: fast/block/basic/min-pref-width-nowrap-floats.html
4878
4879         * rendering/RenderBlock.cpp:
4880         (WebCore::RenderBlock::calcInlinePrefWidths): Fixed a case where a
4881         float's width was added to the minimum preferred widths instead of just
4882         acting as a lower bound on the minimum preferred width (since the float
4883         can always be pushed down to be the only thing on the line).
4884
4885 2008-07-12  David D. Kilzer  <ddkilzer@webkit.org>
4886
4887         Bug 13067: Manually adding #hash to URL reloads entire page instead of jumping to #hash location in cached page
4888
4889         <https://bugs.webkit.org/show_bug.cgi?id=13067>
4890
4891         Reviewed by Darin.
4892
4893         Test: WebCore/manual-tests/hash-ref.html
4894
4895         * loader/FrameLoader.cpp:
4896         (WebCore::FrameLoader::load(const KURL& newURL, const String& referrer,
4897              FrameLoadType newLoadType, const String& frameName, Event* event,
4898              PassRefPtr<FormState> formState)): Extracted logic into
4899         shouldScrollToAnchor() for determining when to scroll to an anchor.
4900
4901         (WebCore::FrameLoader::load(DocumentLoader* loader, FrameLoadType type,
4902              PassRefPtr<FormState> formState)): Added check for
4903         shouldScrollToAnchor() to catch cases when the user manually added a
4904         hash ref to the URL in the address bar.  This is the bug fix.
4905
4906         (WebCore::FrameLoader::shouldReload): Simplified early return logic.
4907         We only need to check if the destinationURL has a hash ref, not the
4908         currentURL, per the comment in the method.
4909
4910         (WebCore::FrameLoader::shouldScrollToAnchor): Added.  Logic extracted
4911         from the FrameLoader::load(const KURL& newURL, ...) method.  Fixed order
4912         of arguments to shouldReload() since they were backwards, although the
4913         previous logic in the method made this irrelevant.
4914
4915         (WebCore::FrameLoader::loadItem): Removed call to shouldReload().  Since
4916         we're navigating to a HistoryItem, it doesn't make sense to ask whether
4917         we need to reload the page or not.  Additionally, the logic at the end
4918         of shouldReload() is also checked in urlsMatchItem(), so there's no need
4919         to call the method.  This fixed the fast/css/target-fragment-match.html
4920         test from continuously reloading after the other changes.
4921
4922         * loader/FrameLoader.h:
4923         (WebCore::FrameLoader::shouldScrollToAnchor): Added.
4924
4925         * manual-tests/hash-ref.html: Added.
4926         * manual-tests/resources/hash-ref-test.html: Added.
4927
4928 2008-07-11  Stephanie Lewis  <slewis@apple.com>
4929
4930         Reviewed by Darin Adler.
4931
4932         No Functionality Changed.  Change all the leak counting code to use the new WTF leak counter class.
4933
4934         * bindings/js/JSCustomSQLTransactionCallback.cpp:
4935         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
4936         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
4937         * bindings/js/JSEventListener.cpp:
4938         (WebCore::JSEventListener::JSEventListener):
4939         (WebCore::JSEventListener::~JSEventListener):
4940         * dom/Node.cpp:
4941         (WebCore::Node::Node):
4942         (WebCore::Node::~Node):
4943         * dom/Range.cpp:
4944         (WebCore::Range::Range):
4945         (WebCore::Range::~Range):
4946         * history/CachedPage.cpp:
4947         (WebCore::CachedPage::CachedPage):
4948         (WebCore::CachedPage::~CachedPage):
4949         * loader/SubresourceLoader.cpp:
4950         (WebCore::SubresourceLoader::SubresourceLoader):
4951         (WebCore::SubresourceLoader::~SubresourceLoader):
4952         * page/Frame.cpp:
4953         (WebCore::Frame::Frame):
4954         (WebCore::Frame::~Frame):
4955         * page/Page.cpp:
4956         (WebCore::Page::Page):
4957         (WebCore::Page::~Page):
4958         * rendering/RenderObject.cpp:
4959         (WebCore::RenderObject::RenderObject):
4960         (WebCore::RenderObject::~RenderObject):
4961         * rendering/bidi.cpp:
4962         (WebCore::throw):
4963         (WebCore::BidiRun::operator delete):
4964
4965 2008-07-11  Sam Weinig  <sam@webkit.org>
4966
4967         Reviewed by Mark Rowe.
4968
4969         Update getSubStringLength and selectSubString methods exception throwing conditions
4970         based on SVG working group errata.
4971
4972         Test: svg/custom/selectSubString.html
4973
4974         * svg/SVGTextContentElement.cpp:
4975         (WebCore::SVGTextContentElement::getSubStringLength):
4976         (WebCore::SVGTextContentElement::selectSubString):
4977
4978 2008-07-11  Sam Weinig  <sam@webkit.org>
4979
4980         Reviewed by Mark Rowe.
4981
4982         We can only use the Id fast path for querySelector and querySelectorAll
4983         if the selector is purely an Id selector.
4984
4985         Test: fast/dom/SelectorAPI/id-fastpath.html
4986
4987         * dom/Node.cpp:
4988         (WebCore::Node::querySelector):
4989         * dom/SelectorNodeList.cpp:
4990         (WebCore::createSelectorNodeList):
4991
4992 2008-07-11  David Hyatt  <hyatt@apple.com>
4993
4994         Implement the DOM level 3 compareDocumentPosition method on Node.
4995
4996         Reviewed by Darin
4997
4998         * dom/Node.cpp:
4999         (WebCore::Node::compareDocumentPosition):
5000         * dom/Node.h:
5001         * dom/Node.idl:
5002
5003 2008-07-11  Brady Eidson  <beidson@apple.com>
5004
5005         Rubberstamped by Sam
5006
5007         Removed unneeded export
5008
5009         * WebCore.base.exp:
5010
5011 2008-07-11  Kevin McCullough  <kmccullough@apple.com>
5012
5013         Reviewed by Geoff.
5014
5015         <rdar://problem/6067178> REGRESSION: Start profile button in profiler
5016         now profiles inspector rather than actual page (19833)
5017         - The JSQuarantinedObjectWrapper should use the wrapped exec state
5018         so that calls to it execute in its quarantined world.
5019
5020         * bindings/js/JSQuarantinedObjectWrapper.cpp:
5021         (WebCore::JSQuarantinedObjectWrapper::construct):
5022         (WebCore::JSQuarantinedObjectWrapper::call):
5023
5024 2008-07-11  Simon Fraser  <simon.fraser@apple.com>
5025
5026         Reviewed by Dave Hyatt
5027
5028         StyleRareNonInheritedData needs to initialize and compare
5029         m_maskBoxImage.
5030         <https://bugs.webkit.org/show_bug.cgi?id=20005>
5031
5032         * rendering/style/RenderStyle.cpp:
5033         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
5034         (WebCore::StyleRareNonInheritedData::operator==):
5035
5036 2008-07-11  Simon Fraser  <simon.fraser@apple.com>
5037
5038         Reviewed by Dave Hyatt
5039
5040         Bug 18885: RenderLayer::enclosingPositionedAncestor() should
5041         look for transforms, since transforms create containing
5042         blocks.
5043         <https://bugs.webkit.org/show_bug.cgi?id=18885>
5044
5045         Test: fast/transforms/transform-positioned-ancestor.html
5046
5047         * rendering/RenderLayer.cpp:
5048         (WebCore::RenderLayer::stackingContext):
5049         (WebCore::RenderLayer::enclosingPositionedAncestor):
5050         (WebCore::RenderLayer::enclosingTransformedAncestor):
5051
5052 2008-07-11  Jacob Refstrup  <jacob.refstrup@hp.com>
5053
5054         Reviewed by Darin Adler
5055
5056         http://bugs.webkit.org/show_bug.cgi?id=19978
5057         GTK port always ends up with # at the end of resource URLs (and hence can't load files)
5058
5059         - Optimized KURL::removeRef() and used it rather than setRef("")
5060           which after r35040 does the wrong thing.
5061
5062         * platform/KURL.cpp:
5063         (WebCore::KURL::removeRef):
5064         * platform/network/curl/ResourceHandleManager.cpp:
5065         (WebCore::ResourceHandleManager::initializeHandle):
5066
5067 2008-07-11  Simon Hausmann  <hausmann@webkit.org>
5068
5069         Fix the Qt/Windows build, include windows.h for HWND directly
5070         instead of implicit inclusion through Timer.h.
5071
5072         * plugins/win/PluginMessageThrottlerWin.h:
5073
5074 2008-07-11  Dan Bernstein  <mitz@apple.com>
5075
5076         Reviewed by Darin Adler.
5077
5078         - fix popularity tracking for cached resources, which regressed in r23923
5079
5080         * loader/Cache.cpp:
5081         (WebCore::Cache::requestResource): Changed to increase the access count
5082         whenever this function returns a CachedResource and the cache is
5083         enabled, instead of only when creating a new CachedResources. The
5084         incorrect behavior resulted in all resources in the cache having an
5085         access count of exactly 1 at all times.
5086         (WebCore::Cache::requestUserCSSStyleSheet): Ditto.
5087
5088 2008-07-11  Ariya Hidayat  <ariya.hidayat@trolltech.com>
5089
5090         Reviewed by Simon.
5091
5092         Enable Netscape plugins for the Qt/Windows build.
5093
5094         This required various smaller fixes across a wider set of
5095         files described below.
5096
5097         * WebCore.pro: Add various windows specific files to the build.
5098         * page/Page.h: Extend the #ifdeffery for windows types to include the
5099         Qt/Windows build.
5100         * platform/graphics/GraphicsContext.h: Added inTransparencyLayer() for
5101         the Qt port, as PluginViewWin.cpp uses it.
5102         * platform/graphics/qt/GraphicsContextQt.cpp:
5103         (WebCore::GraphicsContext::inTransparencyLayer): Implemented function.
5104         * platform/qt/TemporaryLinkStubs.cpp: Mask out some stubs as they
5105         are now implemented through *Win.cpp files.
5106         * plugins/PluginDatabase.cpp: Change PLATFORM(WIN) to WIN_OS.
5107         * plugins/PluginView.cpp: Change PLATFORM(WIN) to WIN_OS.
5108         (WebCore::PluginView::setFrameGeometry): Ditto.
5109         (WebCore::PluginView::PluginView): Ditto.
5110         * plugins/PluginView.h: Introduce the PlatformPluginWidget typedef,
5111         which expands to HWND directly for the Qt/Windows build and
5112         PlatformWidget for the remaining platforms. That is because
5113         PlatformWidget is QWidget* for the Qt build but for the plugin
5114         window we need a native window, aka HWND.
5115         * plugins/win/PluginPackageWin.cpp: Fix compilation, include shlwapi.h
5116         after config.h.
5117         * plugins/win/PluginViewWin.cpp:
5118         (windowHandleForPlatformWidget): Added a little helper function to
5119         determine the HWND from a PlatformWidget.
5120         (WebCore::registerPluginView): For the Qt port we need to set the
5121         global application instance handle here in the library, as the
5122         browser doesn't do it.
5123         (WebCore::PluginView::handleMouseEvent): Mask out
5124         ignoreNextSetCursor/lastSetCursor for the Qt port, it's not used.
5125         (WebCore::PluginView::invalidateRect): Convert from IntRect to RECT
5126         manually just here to avoid compiling in IntRectWin.cpp.
5127         (WebCore::PluginView::invalidateRegion): Ditto.
5128         (WebCore::PluginView::forceRedraw): Call windowHandleForPlatformWidget
5129         on containingWindow() to get the correct HWND for the Qt port.
5130         (WebCore::PluginView::init): Determine the parent HWND for m_window
5131         using windowHandleForPlatformWidget.
5132
5133 2008-07-11  Simon Hausmann  <hausmann@webkit.org>
5134
5135         Rubber-stamped by Holger.
5136
5137         Enable Database and Icondatabase functionality for the Qt/Windows
5138         build when building inside Qt, as we can use the builtin copy of
5139         sqlite then.
5140
5141         * WebCore.pro:
5142
5143 2008-07-11  Ariya Hidayat  <ariya.hidayat@trolltech.com>
5144
5145         Reviewed by Adam Roben.
5146
5147         Fix compile with MinGW since it does not like friend static function.
5148
5149         * plugins/PluginView.h:
5150         * plugins/win/PluginViewWin.cpp:
5151
5152 2008-07-11  Ariya Hidayat  <ariya.hidayat@trolltech.com>
5153
5154         Reviewed by Simon.
5155
5156         Fix Qt/Win32 build.
5157
5158         * platform/graphics/qt/GraphicsContextQt.cpp:
5159
5160 2008-07-10  Sam Weinig  <sam@webkit.org>
5161
5162         Reviewed by Oliver Hunt.
5163
5164         Add support for NSResolver to resolve namespaces for querySelector 
5165         and querySelectorAll.
5166
5167         - Namespace resolution is done after parsing by iterating over all the
5168           parts of the CSSSelector.
5169
5170         Tests: fast/dom/SelectorAPI/NSResolver-basic.xhtml
5171                fast/dom/SelectorAPI/NSResolver-exceptions.xhtml
5172
5173         * GNUmakefile.am: Updated with new files.
5174         * WebCore.pro: Ditto.
5175         * WebCore.vcproj/WebCore.vcproj: Ditto.
5176         * WebCore.xcodeproj/project.pbxproj: Ditto.
5177         * WebCoreSources.bkl: Ditto.
5178
5179         * bindings/js/JSDOMBinding.cpp:
5180         (WebCore::execStateFromNode):
5181         * bindings/js/JSDOMBinding.h:
5182         Move execStateFromNode here from NodeFilter.
5183
5184         * bindings/js/JSDocumentCustom.cpp:
5185         (WebCore::JSDocument::querySelector): Don't throw a NOT_SUPPORTED_ERR for NSResolver
5186         and instead create one if the argument is not undefined or null.
5187         (WebCore::JSDocument::querySelectorAll): Ditto.
5188         * bindings/js/JSDocumentFragmentCustom.cpp:
5189         (WebCore::JSDocumentFragment::querySelector): Ditto.
5190         (WebCore::JSDocumentFragment::querySelectorAll): Ditto.
5191         * bindings/js/JSElementCustom.cpp:
5192         (WebCore::JSElement::querySelector): Ditto.
5193         (WebCore::JSElement::querySelectorAll): Ditto.
5194
5195         * bindings/js/JSNSResolver.cpp: Added.
5196         (WebCore::JSNSResolver::JSNSResolver):
5197         (WebCore::JSNSResolver::mark):
5198         (WebCore::JSNSResolver::lookupNamespaceURI): Try and get the function
5199         from the passed in argument, either the value itself, or the result of
5200         getting the lookupNamespaceURI property, and call it.
5201         (WebCore::toNSResolver):
5202         * bindings/js/JSNSResolver.h: Added.
5203         (WebCore::JSNSResolver::create):
5204
5205         * dom/Document.idl: Update with NSResolver parameter.
5206         * dom/DocumentFragment.idl: Ditto.
5207         * dom/Element.idl: Ditto.
5208
5209         * dom/NSResolver.h: Added.
5210         (WebCore::NSResolver::~NSResolver):
5211         (WebCore::NSResolver::mark):
5212         Abstract base class.
5213
5214         * dom/NSResolver.idl: Added.
5215
5216         * dom/Node.cpp:
5217         (WebCore::forEachTagSelector):
5218         (WebCore::forEachSelector):
5219         Functions to iterate over all parts of the selector.
5220
5221         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
5222         Functor to be passed to forEachSelector to determine if a selector
5223         needs namespace resolution, for the case when no NSResolver is passed
5224         and we need to determine whether to throw a NAMESPACE_ERR.
5225
5226         (WebCore::ResolveNamespaceFunctor::ResolveNamespaceFunctor):
5227         (WebCore::ResolveNamespaceFunctor::operator()):
5228         Functor to resolve namespaces for the selector.
5229
5230         (WebCore::selectorNeedsNamespaceResolution):
5231         (WebCore::resolveNamespacesForSelector):
5232         (WebCore::Node::querySelector): Resolve namepspaces, including the defaultNamespace
5233         if a NSResolver is passed in.
5234         (WebCore::Node::querySelectorAll): Ditto.
5235         * dom/Node.h:
5236
5237         * dom/NodeFilter.cpp:
5238         * dom/NodeFilter.h:
5239         * dom/NodeIterator.h:
5240         (WebCore::NodeIterator::nextNode):
5241         (WebCore::NodeIterator::previousNode):
5242         * dom/TreeWalker.h:
5243         (WebCore::TreeWalker::parentNode):
5244         (WebCore::TreeWalker::firstChild):
5245         (WebCore::TreeWalker::lastChild):
5246         (WebCore::TreeWalker::previousSibling):
5247         (WebCore::TreeWalker::nextSibling):
5248         (WebCore::TreeWalker::previousNode):
5249         (WebCore::TreeWalker::nextNode):
5250         Use the version of execStateFromNode in JSDOMBinding.
5251
5252 2008-07-10  Mark Rowe  <mrowe@apple.com>
5253
5254         Reviewed by Sam Weinig.
5255
5256         Define WEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST when building WebKit to ensure that no symbols end up with the weak_import attribute.
5257
5258         * Configurations/WebCore.xcconfig:
5259
5260 2008-07-10  Dean Jackson  <dino@apple.com>
5261
5262         Reviewed by hyatt.
5263
5264         Calculate computed style for -webkit-transform property
5265         https://bugs.webkit.org/show_bug.cgi?id=19864
5266
5267         Test: css3/transform-computed-style-001.html
5268
5269         * css/CSSComputedStyleDeclaration.cpp:
5270         (WebCore::computedTransform):
5271         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
5272             handles -webkit-transform property now
5273         * manual-tests/computed-transform-value.html: Added.
5274
5275 2008-07-10  Dan Bernstein  <mitz@apple.com>
5276
5277         Reviewed by Adam Roben.
5278
5279         - fix a parse error in inspector.js
5280
5281         * page/inspector/inspector.js: Added missing brace.
5282
5283 2008-07-10  Adam Roben  <aroben@apple.com>
5284
5285         Build fix
5286
5287         * WebCore.vcproj/QTMovieWin.vcproj: Add
5288         OSXCompatibilityHeaders[/GNUCompatibility] to the include path.
5289
5290 2008-07-10  Chris Fleizach  <cfleizach@apple.com>
5291
5292         Reviewed by Dan Bernstein
5293
5294         <rdar://problem/6067408> AX: internal anchors broken
5295
5296         * page/AccessibilityRenderObject.cpp:
5297         (WebCore::AccessibilityRenderObject::internalLinkElement):
5298         * platform/KURL.cpp:
5299         (WebCore::KURL::removeRef):
5300         * platform/KURL.h:
5301
5302 2008-07-10  Mark Rowe  <mrowe@apple.com>
5303
5304         Build fix.
5305
5306         * bridge/npapi.h: Remove extra comma.
5307
5308 2008-07-10  Sam Weinig  <sam@webkit.org>
5309
5310         Reviewed by Mark Rowe.
5311
5312         Remove no-op debug method.
5313
5314         * css/CSSSelector.cpp:
5315         * css/CSSSelector.h:
5316
5317 2008-07-10  Sam Weinig  <sam@webkit.org>
5318
5319         Reviewed by Dave Hyatt and Darin Adler.
5320
5321         Add support for calling querySelector and querySelectorAll on DocumentFragments
5322
5323         - Fixes bug where nodes not in the document tree would not match based on ID due
5324           to over optimization.
5325
5326         Test: fast/dom/SelectorAPI/detached-element.html
5327
5328         * GNUmakefile.am:
5329         * WebCore.pro:
5330         * WebCore.vcproj/WebCore.vcproj:
5331         * WebCore.xcodeproj/project.pbxproj:
5332         * WebCoreSources.bkl:
5333         * bindings/js/JSDocumentFragmentCustom.cpp: Added.
5334         (WebCore::JSDocumentFragment::querySelector): Add custom code matching JSElement
5335         and JSDocument that checks for a 2nd arguments and throws an exception indicating
5336         we do not currently support the optional NSResolver part of the Selectors API spec.
5337         (WebCore::JSDocumentFragment::querySelectorAll): Ditto.
5338         * dom/DocumentFragment.idl: Add querySelector and querySelectorAll declarations.
5339
5340         * dom/Node.cpp:
5341         (WebCore::Node::querySelector): Make the CSS parser parse the selector
5342         according to the strictness of the document so that mixed case ID selectors
5343         match in quirks mode.  Also, don't use the fast ID path if the root is not
5344         in the DOM tree, as it won't work.
5345         (WebCore::Node::querySelectorAll): Ditto.
5346         * dom/SelectorNodeList.cpp:
5347         (WebCore::createSelectorNodeList): Don't use the fast ID path if the root is not
5348         in the DOM tree, as it won't work.
5349
5350 2008-07-10  Anthony Ricaud  <rik24d@gmail.com>
5351
5352         Bug 19389: querySelectorAll exception while searching invalid CSS selector
5353         <https://bugs.webkit.org/show_bug.cgi?id=19389>
5354
5355         Reviewed by Tim Hatcher.
5356
5357         * page/inspector/inspector.js: Added a try/catch block.
5358
5359 2008-07-10  Brent Fulgham  <bfulgham@gmail.com>
5360
5361         Correct a build regression due to an uninitialized variable.
5362
5363         <https://bugs.webkit.org/show_bug.cgi?id=19976>
5364
5365         Reviewed by Darin.
5366
5367         * platform/graphics/cairo/FontCairo.cpp:
5368         (WebCore::Font::drawGlyphs):
5369
5370 2008-07-10  Adam Roben  <aroben@apple.com>
5371
5372         Fix Bug 19580: REGRESSION (r34432): PGO-only crash in
5373         HTMLCollection::resetCollectionInfo (codegen issue?)
5374
5375         <https://bugs.webkit.org/show_bug.cgi?id=19580>
5376         <rdar://6029794>
5377
5378         Reviewed by Cameron Zwarich.
5379
5380         * WebCore.vcproj/WebCore.vcproj: Disable LTCG for HTMLFormElement.cpp,
5381         which was causing some bad codegen in HTMLFormElement::elements.
5382         * html/HTMLFormElement.cpp: Touched this file to force it to rebuild.
5383
5384 2008-07-10  Anders Carlsson  <andersca@apple.com>
5385
5386         Reviewed by Jon.
5387
5388         <rdar://problem/6067135>
5389         WebKit should respond true to a query for NPNVSupportsWindowless.
5390         
5391         Handle NPNVSupportsWindowless and return true.
5392         
5393         * bridge/npapi.h:
5394         * plugins/win/PluginViewWin.cpp:
5395         (WebCore::PluginView::getValue):
5396
5397 2008-07-10  Kevin McCullough  <kmccullough@apple.com>
5398
5399         Reviewed by Darin.
5400
5401         -Minor cleanup. Renamed callTree() to head() and no longer use m_head
5402         directly but instead keep it private and access via a method().
5403
5404         * page/JavaScriptProfile.cpp:
5405         (WebCore::getHeadCallback):
5406
5407 2008-07-10  Simon Fraser  <simon.fraser@apple.com>
5408
5409         When a mask image changes, ensure that elements
5410         that use that mask image are repainted correctly.
5411         
5412         <https://bugs.webkit.org/show_bug.cgi?id=19954>
5413         
5414         Reviewed by Dave Hyatt
5415
5416         * manual-tests/canvas-mask-redraw.html
5417           Manual testcase
5418         * rendering/RenderBox.cpp:
5419         (WebCore::RenderBox::imageChanged):
5420         (WebCore::RenderBox::repaintLayerRectsForImage):
5421         * rendering/RenderBox.h:
5422         Loop through background layers and mask layers, and
5423         if this image is used in a layer, compute a repaint
5424         rect and repaint.
5425         * rendering/RenderImage.cpp:
5426         (WebCore::RenderImage::imageChanged):
5427         If this image has a mask, call the base class method.
5428         * rendering/RenderObject.cpp:
5429         Remove a bogus 'return'.
5430
5431 2008-07-10  Simon Fraser  <simon.fraser@apple.com>
5432
5433         Transforms create a containing block, so
5434         RenderLayer::shouldBeOverflowOnly() needs to look for transforms.
5435         <https://bugs.webkit.org/show_bug.cgi?id=18886>
5436         
5437         Reviewed by Dave Hyatt
5438
5439         Test: fast/transforms/transform-overflow.html
5440
5441         * rendering/RenderLayer.cpp:
5442         (WebCore::RenderLayer::shouldBeOverflowOnly):
5443
5444 2008-07-09  Alex Mathews  <possessedpenguinbob@gmail.com>
5445
5446         Reviewed by Oliver Hunt.
5447
5448         bug 19835: WebKit needs cross-platform filter system
5449         <https://bugs.webkit.org/show_bug.cgi?id=19835>
5450
5451         More class refactoring in preparation for cross-platform filter 
5452         implementation.
5453
5454         * WebCore.xcodeproj/project.pbxproj:
5455         * rendering/SVGRenderTreeAsText.h:
5456         (WebCore::operator<<):
5457         * svg/FilterEffect.cpp:
5458         (WebCore::FilterEffect::externalRepresentation):
5459         * svg/FilterEffect.h:
5460         * svg/SVGFEBlendElement.cpp:
5461         (WebCore::SVGFEBlendElement::build):
5462         * svg/SVGFEBlendElement.h:
5463         * svg/SVGFEColorMatrixElement.cpp:
5464         (WebCore::SVGFEColorMatrixElement::build):
5465         * svg/SVGFEColorMatrixElement.h:
5466         * svg/SVGFEComponentTransferElement.cpp:
5467         (WebCore::SVGFEComponentTransferElement::build):
5468         * svg/SVGFEComponentTransferElement.h:
5469         * svg/SVGFECompositeElement.cpp:
5470         (WebCore::SVGFECompositeElement::build):
5471         * svg/SVGFECompositeElement.h:
5472         * svg/SVGFEDiffuseLightingElement.cpp:
5473         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
5474         (WebCore::SVGFEDiffuseLightingElement::build):
5475         (WebCore::SVGFEDiffuseLightingElement::findLights):
5476         * svg/SVGFEDiffuseLightingElement.h:
5477         * svg/SVGFEDisplacementMapElement.cpp:
5478         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
5479         (WebCore::SVGFEDisplacementMapElement::stringToChannel):
5480         (WebCore::SVGFEDisplacementMapElement::filterEffect):
5481         (WebCore::SVGFEDisplacementMapElement::build):
5482         * svg/SVGFEDisplacementMapElement.h:
5483         * svg/SVGFEFloodElement.cpp:
5484         (WebCore::SVGFEFloodElement::filterEffect):
5485         (WebCore::SVGFEFloodElement::build):
5486         * svg/SVGFEFloodElement.h:
5487         (WebCore::SVGFEFloodElement::contextElement):
5488         * svg/SVGFEGaussianBlurElement.cpp:
5489         (WebCore::SVGFEGaussianBlurElement::filterEffect):
5490         (WebCore::SVGFEGaussianBlurElement::build):
5491         * svg/SVGFEGaussianBlurElement.h:
5492         * svg/SVGFEImageElement.cpp:
5493         (WebCore::SVGFEImageElement::filterEffect):
5494         (WebCore::SVGFEImageElement::build):
5495         * svg/SVGFEImageElement.h:
5496         * svg/SVGFEMergeElement.cpp:
5497         (WebCore::SVGFEMergeElement::filterEffect):
5498         (WebCore::SVGFEMergeElement::build):
5499         * svg/SVGFEMergeElement.h:
5500         (WebCore::SVGFEMergeElement::contextElement):
5501         * svg/SVGFEOffsetElement.cpp:
5502         (WebCore::SVGFEOffsetElement::filterEffect):
5503         (WebCore::SVGFEOffsetElement::build):
5504         * svg/SVGFEOffsetElement.h:
5505         * svg/SVGFESpecularLightingElement.cpp:
5506         (WebCore::SVGFESpecularLightingElement::filterEffect):
5507         (WebCore::SVGFESpecularLightingElement::findLights):
5508         (WebCore::SVGFESpecularLightingElement::build):
5509         * svg/SVGFESpecularLightingElement.h:
5510         * svg/SVGFETileElement.cpp:
5511         (WebCore::SVGFETileElement::filterEffect):
5512         (WebCore::SVGFETileElement::build):
5513         * svg/SVGFETileElement.h:
5514         * svg/SVGFETurbulenceElement.cpp:
5515         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
5516         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
5517         (WebCore::SVGFETurbulenceElement::filterEffect):
5518         (WebCore::SVGFETurbulenceElement::build):
5519         * svg/SVGFETurbulenceElement.h:
5520         * svg/SVGFilterPrimitiveStandardAttributes.h:
5521         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
5522         (WebCore::FEConvolveMatrix::FEConvolveMatrix):
5523         (WebCore::FEConvolveMatrix::create):
5524         (WebCore::FEConvolveMatrix::kernelSize):
5525         (WebCore::FEConvolveMatrix::setKernelSize):
5526         (WebCore::FEConvolveMatrix::kernel):
5527         (WebCore::FEConvolveMatrix::setKernel):
5528         (WebCore::FEConvolveMatrix::divisor):
5529         (WebCore::FEConvolveMatrix::setDivisor):
5530         (WebCore::FEConvolveMatrix::bias):
5531         (WebCore::FEConvolveMatrix::setBias):
5532         (WebCore::FEConvolveMatrix::targetOffset):
5533         (WebCore::FEConvolveMatrix::setTargetOffset):
5534         (WebCore::FEConvolveMatrix::edgeMode):
5535         (WebCore::FEConvolveMatrix::setEdgeMode):
5536         (WebCore::FEConvolveMatrix::kernelUnitLength):
5537         (WebCore::FEConvolveMatrix::setKernelUnitLength):
5538         (WebCore::FEConvolveMatrix::preserveAlpha):
5539         (WebCore::FEConvolveMatrix::setPreserveAlpha):
5540         (WebCore::FEConvolveMatrix::apply):
5541         (WebCore::FEConvolveMatrix::dump):
5542         (WebCore::operator<<):
5543         (WebCore::FEConvolveMatrix::externalRepresentation):
5544         * svg/graphics/filters/SVGFEConvolveMatrix.h:
5545         (WebCore::):
5546         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
5547         (WebCore::FEDiffuseLighting::FEDiffuseLighting):
5548         (WebCore::FEDiffuseLighting::create):
5549         (WebCore::FEDiffuseLighting::~FEDiffuseLighting):
5550         (WebCore::FEDiffuseLighting::lightingColor):
5551         (WebCore::FEDiffuseLighting::setLightingColor):
5552         (WebCore::FEDiffuseLighting::surfaceScale):
5553         (WebCore::FEDiffuseLighting::setSurfaceScale):
5554         (WebCore::FEDiffuseLighting::diffuseConstant):
5555         (WebCore::FEDiffuseLighting::setDiffuseConstant):
5556         (WebCore::FEDiffuseLighting::kernelUnitLengthX):
5557         (WebCore::FEDiffuseLighting::setKernelUnitLengthX):
5558         (WebCore::FEDiffuseLighting::kernelUnitLengthY):
5559         (WebCore::FEDiffuseLighting::setKernelUnitLengthY):
5560         (WebCore::FEDiffuseLighting::lightSource):
5561         (WebCore::FEDiffuseLighting::setLightSource):
5562         (WebCore::FEDiffuseLighting::apply):
5563         (WebCore::FEDiffuseLighting::dump):
5564         (WebCore::FEDiffuseLighting::externalRepresentation):
5565         * svg/graphics/filters/SVGFEDiffuseLighting.h:
5566         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
5567         (WebCore::FEDisplacementMap::FEDisplacementMap):
5568         (WebCore::FEDisplacementMap::create):
5569         (WebCore::FEDisplacementMap::xChannelSelector):
5570         (WebCore::FEDisplacementMap::setXChannelSelector):
5571         (WebCore::FEDisplacementMap::yChannelSelector):
5572         (WebCore::FEDisplacementMap::setYChannelSelector):
5573         (WebCore::FEDisplacementMap::scale):
5574         (WebCore::FEDisplacementMap::setScale):
5575         (WebCore::FEDisplacementMap::apply):
5576         (WebCore::FEDisplacementMap::dump):
5577         (WebCore::operator<<):
5578         (WebCore::FEDisplacementMap::externalRepresentation):
5579         * svg/graphics/filters/SVGFEDisplacementMap.h:
5580         (WebCore::):
5581         * svg/graphics/filters/SVGFEFlood.cpp:
5582         (WebCore::FEFlood::FEFlood):
5583         (WebCore::FEFlood::create):
5584         (WebCore::FEFlood::floodColor):
5585         (WebCore::FEFlood::setFloodColor):
5586         (WebCore::FEFlood::floodOpacity):
5587         (WebCore::FEFlood::setFloodOpacity):
5588         (WebCore::FEFlood::apply):
5589         (WebCore::FEFlood::dump):
5590         (WebCore::FEFlood::externalRepresentation):
5591         * svg/graphics/filters/SVGFEFlood.h:
5592         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
5593         (WebCore::FEGaussianBlur::FEGaussianBlur):
5594         (WebCore::FEGaussianBlur::create):
5595         (WebCore::FEGaussianBlur::stdDeviationX):
5596         (WebCore::FEGaussianBlur::setStdDeviationX):
5597         (WebCore::FEGaussianBlur::stdDeviationY):
5598         (WebCore::FEGaussianBlur::setStdDeviationY):
5599         (WebCore::FEGaussianBlur::apply):
5600         (WebCore::FEGaussianBlur::dump):
5601         (WebCore::FEGaussianBlur::externalRepresentation):
5602         * svg/graphics/filters/SVGFEGaussianBlur.h:
5603         * svg/graphics/filters/SVGFEImage.cpp:
5604         (WebCore::FEImage::FEImage):
5605         (WebCore::FEImage::create):
5606         (WebCore::FEImage::~FEImage):
5607         (WebCore::FEImage::cachedImage):
5608         (WebCore::FEImage::apply):
5609         (WebCore::FEImage::dump):
5610         (WebCore::FEImage::externalRepresentation):
5611         * svg/graphics/filters/SVGFEImage.h:
5612         * svg/graphics/filters/SVGFEMerge.cpp:
5613         (WebCore::FEMerge::FEMerge):
5614         (WebCore::FEMerge::create):
5615         (WebCore::FEMerge::mergeInputs):
5616         (WebCore::FEMerge::setMergeInputs):
5617         (WebCore::FEMerge::apply):
5618         (WebCore::FEMerge::dump):
5619         (WebCore::FEMerge::externalRepresentation):
5620         * svg/graphics/filters/SVGFEMerge.h:
5621         * svg/graphics/filters/SVGFEMorphology.cpp:
5622         (WebCore::FEMorphology::FEMorphology):
5623         (WebCore::FEMorphology::create):
5624         (WebCore::FEMorphology::morphologyOperator):
5625         (WebCore::FEMorphology::setMorphologyOperator):
5626         (WebCore::FEMorphology::radiusX):
5627         (WebCore::FEMorphology::setRadiusX):
5628         (WebCore::FEMorphology::radiusY):
5629         (WebCore::FEMorphology::setRadiusY):
5630         (WebCore::FEMorphology::apply):
5631         (WebCore::FEMorphology::dump):
5632         (WebCore::operator<<):
5633         (WebCore::FEMorphology::externalRepresentation):
5634         * svg/graphics/filters/SVGFEMorphology.h:
5635         (WebCore::):
5636         * svg/graphics/filters/SVGFEOffset.cpp:
5637         (WebCore::FEOffset::FEOffset):
5638         (WebCore::FEOffset::create):
5639         (WebCore::FEOffset::dx):
5640         (WebCore::FEOffset::setDx):
5641         (WebCore::FEOffset::dy):
5642         (WebCore::FEOffset::setDy):
5643         (WebCore::FEOffset::apply):
5644         (WebCore::FEOffset::dump):
5645         (WebCore::FEOffset::externalRepresentation):
5646         * svg/graphics/filters/SVGFEOffset.h:
5647         * svg/graphics/filters/SVGFESpecularLighting.cpp:
5648         (WebCore::FESpecularLighting::FESpecularLighting):
5649         (WebCore::FESpecularLighting::create):
5650         (WebCore::FESpecularLighting::~FESpecularLighting):
5651         (WebCore::FESpecularLighting::lightingColor):
5652         (WebCore::FESpecularLighting::setLightingColor):
5653         (WebCore::FESpecularLighting::surfaceScale):
5654         (WebCore::FESpecularLighting::setSurfaceScale):
5655         (WebCore::FESpecularLighting::specularConstant):
5656         (WebCore::FESpecularLighting::setSpecularConstant):
5657         (WebCore::FESpecularLighting::specularExponent):
5658         (WebCore::FESpecularLighting::setSpecularExponent):
5659         (WebCore::FESpecularLighting::kernelUnitLengthX):
5660         (WebCore::FESpecularLighting::setKernelUnitLengthX):
5661         (WebCore::FESpecularLighting::kernelUnitLengthY):
5662         (WebCore::FESpecularLighting::setKernelUnitLengthY):
5663         (WebCore::FESpecularLighting::lightSource):
5664         (WebCore::FESpecularLighting::setLightSource):
5665         (WebCore::FESpecularLighting::apply):
5666         (WebCore::FESpecularLighting::dump):
5667         (WebCore::FESpecularLighting::externalRepresentation):
5668         * svg/graphics/filters/SVGFESpecularLighting.h:
5669         * svg/graphics/filters/SVGFETile.cpp:
5670         (WebCore::FETile::FETile):
5671         (WebCore::FETile::create):
5672         (WebCore::FETile::apply):
5673         (WebCore::FETile::dump):
5674         (WebCore::FETile::externalRepresentation):
5675         * svg/graphics/filters/SVGFETile.h:
5676         * svg/graphics/filters/SVGFETurbulence.cpp:
5677         (WebCore::FETurbulence::FETurbulence):
5678         (WebCore::FETurbulence::create):
5679         (WebCore::FETurbulence::type):
5680         (WebCore::FETurbulence::setType):
5681         (WebCore::FETurbulence::baseFrequencyY):
5682         (WebCore::FETurbulence::setBaseFrequencyY):
5683         (WebCore::FETurbulence::baseFrequencyX):
5684         (WebCore::FETurbulence::setBaseFrequencyX):
5685         (WebCore::FETurbulence::seed):
5686         (WebCore::FETurbulence::setSeed):
5687         (WebCore::FETurbulence::numOctaves):
5688         (WebCore::FETurbulence::setNumOctaves):
5689         (WebCore::FETurbulence::stitchTiles):
5690         (WebCore::FETurbulence::setStitchTiles):
5691         (WebCore::FETurbulence::apply):
5692         (WebCore::FETurbulence::dump):
5693         (WebCore::operator<<):
5694         (WebCore::FETurbulence::externalRepresentation):
5695         * svg/graphics/filters/SVGFETurbulence.h:
5696         (WebCore::):
5697         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
5698         * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
5699         * svg/graphics/filters/cg/SVGFEFloodCg.mm:
5700         * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
5701         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
5702         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
5703         (WebCore::getVectorForChannel):
5704         * svg/graphics/filters/cg/SVGFEImageCg.mm:
5705         * svg/graphics/filters/cg/SVGFEMergeCg.mm:
5706         * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
5707         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
5708         * svg/graphics/filters/cg/SVGFETileCg.mm:
5709
5710 2008-07-09  Mark Rowe  <mrowe@apple.com>
5711
5712         Reviewed by Geoff Garen.
5713
5714         Don't warn about deprecated functions in production builds.
5715
5716         * Configurations/Base.xcconfig:
5717         * Configurations/DebugRelease.xcconfig:
5718
5719 2008-07-09  Brady Eidson  <beidson@apple.com>
5720
5721         Reviewed by Darin
5722
5723         <rdar://problem/5823684> - Crash manipulating frame tree of a new frame before the new frame
5724         has been installed in a frame tree.
5725
5726         The root of this problem was that calling init() on a new frame could end up calling arbitrary
5727         javascript that might end up removing the frame from the tree.  This opened up a small can of worms
5728         such as the frame not having yet been installed in its frame tree, and other assumed behavior while
5729         destroying the frame.
5730
5731         Test: fast/loader/frame-creation-removal.html
5732
5733         * loader/FrameLoader.cpp:
5734         (WebCore::FrameLoader::endIfNotLoadingMainResource):  If the frame doesn't have a page, don't close up
5735           the document and parser because they don't exist, and this frame is on its way out.
5736         (WebCore::FrameLoader::finishedParsing):  We can't rely on the refCount check to discover "am I being deleted?"
5737           because we no longer store refCounts of 0.  The new check is "do I have a FrameView?" while will always be
5738           false if the Frame is being destroyed.
5739
5740 2008-07-09  Dean Jackson  <dino@apple.com>
5741
5742         Changed to use the correct license in header comment (via Darin)
5743
5744         * css/WebKitCSSTransformValue.idl:
5745
5746 2008-07-09  Dean Jackson  <dino@apple.com>
5747
5748         Add DOM interface for WebKitCSSTransformValue.
5749         https://bugs.webkit.org/show_bug.cgi?id=19863
5750
5751         Reviewed by Hyatt.
5752
5753         * bindings/objc/DOMInternal.h:
5754         * css/WebKitCSSTransformValue.idl: Added.
5755
5756         * bindings/scripts/CodeGeneratorObjC.pm:
5757             make sure new class inherits from CSSValue not Node
5758
5759         * DerivedSources.make:
5760         * GNUmakefile.am:
5761         * WebCore.pro:
5762         * WebCore.vcproj/WebCore.vcproj:
5763         * WebCore.xcodeproj/project.pbxproj:
5764         * WebCoreSources.bkl:
5765             Adding new generated files
5766
5767 2008-07-09  Maxime Britto  <britto@apple.com>
5768
5769         Reviewed by Adele.
5770
5771         http://bugs.webkit.org/show_bug.cgi?id=14227
5772         Add the middle click panning feature to the windows release.
5773         Details on almost each method below.
5774         Manual test is included in the patch.
5775
5776         * ChangeLog:
5777         * WebCore.vcproj/WebCore.vcproj:
5778         * manual-tests/panScroll.html: Added.
5779         * manual-tests/resources/big-page.html: Added.
5780         * page/EventHandler.cpp: Added the panScroll start/stop handlers and adapted the autoscroll for both to share some functions.
5781         (WebCore::EventHandler::EventHandler): Initialize the new class members for the panScroll
5782         (WebCore::EventHandler::handleMouseDraggedEvent): Prevent the autoscroll to trigger if the panScroll is in progress
5783         (WebCore::EventHandler::handleMouseReleaseEvent): Prevent the autoscroll to stop the panScroll on mouse release
5784         (WebCore::EventHandler::handleAutoscroll): Added the specific calls for the panScroll (save mouse position, draw the panScroll icon) to the shared code
5785         (WebCore::EventHandler::autoscrollTimerFired): Specify the calls to perform for each function (autoscroll and panScroll)
5786         (WebCore::EventHandler::stopAutoscrollTimer): Specify the calls to perform for each function (autoscroll and panScroll)
5787         (WebCore::EventHandler::handleMousePressEvent): Trigger for the panScroll. Test is the button is the middle button and try to find a renderer where the panScroll is possible. If it finds one, it calls the handleAutoscroll method.
5788         * page/EventHandler.h:
5789         (WebCore::EventHandler::panScrollInProgress): Getter used by the sub frames's EventHandler to notice the main frame EventHandler
5790         (WebCore::EventHandler::setPanScrollInProgress): Setter used by the sub frames's EventHandler to notice the main frame EventHandler
5791         * platform/ScrollView.h: Added a method used by the RenderObject to test if the view can be scrolled. Added the print/remove panScroll icon methods between the windows platform flags
5792         * platform/gtk/ScrollViewGtk.cpp:
5793         (WebCore::ScrollView::isScrollable): Not implemented : returns true
5794         * platform/mac/ScrollViewMac.mm: Implemented because it was useful for the autoscroll feature.
5795         (WebCore::ScrollView::isScrollable):
5796         * platform/qt/ScrollViewQt.cpp:
5797         (WebCore::ScrollView::isScrollable): Not implemented : returns true
5798         * platform/win/ScrollViewWin.cpp:
5799         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate): Added a boolean and an IntPoint to draw the icon.
5800         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore): If the icon must be drawn, define the rect to invalidate to erase the previous icon and to display the new one.
5801         (WebCore::ScrollView::updateContents): I split this method to be able to invalidate a rect with window coordinates instead of contents coordinates. This function now converts the contents coord in window coord and calls the new updateWindowRect() method  
5802         (WebCore::ScrollView::updateWindowRect): New method which performs the work that was doing the end of the old updateContents : invalidate a rect with window coordinates
5803         (WebCore::ScrollView::isScrollable): checks is the view has scrollbars
5804         (WebCore::ScrollView::printPanScrollIcon): sets the boolean and the IntPoint for the icon. Invalidate his rect and ask for repaint.
5805         (WebCore::ScrollView::removePanScrollIcon): sets the boolean to false. Invalidate his rect and ask for repaint.
5806         (WebCore::ScrollView::paint): Modified to draw the icon if needed.
5807         * platform/wx/ScrollViewWx.cpp:
5808         (WebCore::ScrollView::isScrollable): Not implemented : returns true
5809         * rendering/RenderLayer.cpp:
5810         (WebCore::RenderLayer::panScrollFromPoint): Receives the Middle click location and retrieves the currentMouse position from the EventHandler. With these informations it computes the direction to scroll to and the speed then calls for the final scroll.
5811         * rendering/RenderLayer.h:
5812         * rendering/RenderListBox.cpp: Adapt the panScroll to the ListBox object to scroll by lines instead of pixels
5813         (WebCore::RenderListBox::panScroll):
5814         (WebCore::RenderListBox::scrollToward):
5815         (WebCore::RenderListBox::autoscroll):
5816         * rendering/RenderListBox.h:
5817         (WebCore::RenderListBox::shouldPanScroll):
5818         * rendering/RenderObject.cpp: 
5819         (WebCore::RenderObject::shouldAutoscroll): Improved the verification to avoid triggering the autoscroll/panScroll when the root object can't scroll
5820         (WebCore::RenderObject::panScroll): Calls the RenderLayer's panScrollFromPoint() method
5821         * rendering/RenderObject.h:
5822         (WebCore::RenderObject::stopPanScroll): 
5823
5824 2008-07-09  Dean Jackson  <dino@apple.com>
5825
5826         Rename CSSTransformValue to WebKitCSSTransformValue as it is non-standard for
5827         the moment. Also, WebKitCSSTransformValue is a CSSValueList (comma sep)
5828         https://bugs.webkit.org/show_bug.cgi?id=19861
5829
5830         Reviewed by Hyatt
5831
5832         * css/CSSParser.cpp:
5833         * css/CSSStyleSelector.cpp:
5834         * css/CSSTransformValue.cpp: Removed.
5835         * css/CSSTransformValue.h: Removed.
5836         * css/CSSValueList.h:
5837         * css/WebKitCSSTransformValue.cpp: Added.
5838         * css/WebKitCSSTransformValue.h: Added.
5839
5840         * GNUmakefile.am:
5841         * WebCore.order:
5842         * WebCore.pro:
5843         * WebCore.vcproj/WebCore.vcproj:
5844         * WebCore.xcodeproj/project.pbxproj:
5845         * WebCoreSources.bkl:
5846             updated for new file names
5847         
5848
5849 2008-07-09  David Hyatt  <hyatt@apple.com>
5850
5851         Switch transitions back to a "destination" model as far as choosing which transitions should apply on a style
5852         change.  Preserve the behavior of allowing stale transitions (in the absence of property changes) to run to
5853         completion.
5854
5855         Reviewed by Dean
5856
5857         * manual-tests/transitions.html:
5858         * manual-tests/transitions2.html:
5859         * page/AnimationController.cpp:
5860         (WebCore::ImplicitAnimation::reset):
5861         (WebCore::CompositeImplicitAnimation::animate):
5862         (WebCore::AnimationControllerPrivate::get):
5863         (WebCore::AnimationController::updateImplicitAnimations):
5864
5865 2008-07-09  Michelangelo De Simone  <m.des@mac.com>
5866
5867         Reviewed by Adele.
5868
5869         Added the virtual function Node::isTextControl() in order to simplify text field and textarea checks.
5870
5871         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
5872         Clean up in PseudoReadOnly and PseudoReadWrite cases removing unnecessary checks and casts in favor of the sole isTextControl() check.
5873         * dom/Node.h: Added base isTextControl().
5874         * html/HTMLInputElement.h: Added isTextControl() which wraps HTMLInputElement::isTextField().
5875         * html/HTMLTextAreaElement.h: Added isTextControl().
5876
5877 2008-07-09  Rob Buis  <buis@kde.org>
5878
5879         Reviewed by Eric.
5880
5881         https://bugs.webkit.org/show_bug.cgi?id=15431
5882         SVGRenderStyle should store pre-modified resource URIs
5883
5884         Store pre-modified resource URIs to decrease string
5885         operations during layout/rendering.
5886
5887         * css/SVGCSSStyleSelector.cpp:
5888         (WebCore::CSSStyleSelector::applySVGProperty):
5889         * rendering/RenderPath.cpp:
5890         (WebCore::RenderPath::absoluteClippedOverflowRect):
5891         (WebCore::RenderPath::drawMarkersIfNeeded):
5892         * rendering/RenderSVGContainer.cpp:
5893         (WebCore::RenderSVGContainer::selfWillPaint):
5894         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
5895         * rendering/RenderSVGImage.cpp:
5896         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
5897         * rendering/RenderSVGRoot.cpp:
5898         (WebCore::RenderSVGRoot::paint):
5899         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
5900         * rendering/RenderSVGText.cpp:
5901         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
5902         * rendering/SVGRenderSupport.cpp:
5903         (WebCore::prepareToRenderSVGContent):
5904
5905 2008-07-09  Anders Carlsson  <andersca@apple.com>
5906
5907         Reviewed by Mitz.
5908
5909         Remove an unused instance variable.
5910
5911         * loader/DocumentLoader.h:
5912
5913 2008-07-09  Dan Bernstein  <mitz@apple.com>
5914
5915         Reviewed by Anders Carlsson.
5916
5917         - remove unused #includes
5918
5919         * dom/XMLTokenizer.cpp:
5920         * html/PreloadScanner.cpp:
5921         * loader/CachedCSSStyleSheet.cpp:
5922         * loader/CachedScript.cpp:
5923         * loader/CachedXBLDocument.cpp:
5924         * loader/CachedXSLStyleSheet.cpp:
5925         * page/mac/FrameMac.mm:
5926         * xml/XSLTProcessor.cpp:
5927
5928 2008-07-08  Geoffrey Garen  <ggaren@apple.com>
5929
5930         Reviewed by Oliver Hunt.
5931         
5932         Only artificially mark JS DOM wrappers if they have custom properties.
5933         
5934         21X speedup on http://nerget.com/jstests/dom-mandelbrot.html.
5935         
5936         No, that is not a typo.
5937
5938         * bindings/js/JSDOMBinding.cpp:
5939         (WebCore::ScriptInterpreter::markDOMNodesForDocument):
5940
5941 2008-07-08  Kevin Watters  <kevinwatters@gmail.com>
5942
5943         Reviewed by Kevin Ollivier.
5944
5945         Fix to previous patch for handling mouse up events.
5946         
5947         https://bugs.webkit.org/show_bug.cgi?id=18464
5948
5949         * platform/wx/MouseEventWx.cpp:
5950         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
5951
5952 2008-07-08  Dan Bernstein  <mitz@apple.com>
5953
5954         Reviewed by Brady Eidson.
5955
5956         - initialize the Archives log channel's state
5957
5958         * platform/mac/LoggingMac.mm:
5959         (WebCore::InitializeLoggingChannelsIfNecessary):
5960
5961 2008-07-08  Kevin McCullough  <kmccullough@apple.com>
5962
5963         Added manual test for the new heavy view.
5964
5965         * manual-tests/inspector/profiler-test-heavy-view.html: Added.
5966
5967 2008-07-08  Darin Adler  <darin@apple.com>
5968
5969         Reviewed by Mitz.
5970
5971         - fix <rdar://problem/6043731> REGRESSION (3-4): RedEnvelope.com
5972           looks wrong due to OpenCube QuickMenu appVersion check
5973
5974         * page/Navigator.cpp:
5975         (WebCore::shouldHideFourDot): Add dqm_loader.js as another filename.
5976
5977 2008-07-08  Dan Bernstein  <mitz@apple.com>
5978
5979         Reviewed by John Sullivan.
5980
5981         - WebCore part of <rdar://problem/6008409> Need a way to disable updates in offscreen views
5982
5983         Added a setting, updatesWhenOffscreen(), which controls whether an
5984         offscreen web view gets marked as needing update when its contents
5985         change (the existing behavior) or not (a new behavior), in which case it
5986         will be marked as needing update just before it goes on screen. The
5987         existing behavior (updating while offscreen) remains the default.
5988
5989         * WebCore.base.exp: Added Settings::setUpdatesWhenOffscreen().
5990         * page/FrameView.cpp:
5991         (WebCore::FrameView::shouldUpdateWhenOffscreen): Added. Returns the
5992         value from settings.
5993         * page/FrameView.h:
5994         * page/Settings.cpp:
5995         (WebCore::Settings::setUpdatesWhenOffscreen): Added.
5996         * page/Settings.h:
5997         (WebCore::Settings::updatesWhenOffscreen): Added.
5998         * platform/ScrollView.h:
5999         * platform/mac/ScrollViewMac.mm:
6000         (WebCore::ScrollView::updateContents): Added code to return early and
6001         not call -setNeedsDisplayInRect: if the view is not in a visible window
6002         and the setting is not to update when offscreen.
6003
6004 2008-07-08  Simon Hausmann  <hausmann@webkit.org>
6005
6006         Fix the build with enabled SVG filters.
6007
6008         * svg/SVGFESpecularLightingElement.cpp: The last argument to
6009         ANIMATED_PROPERTY_DEFINITIONS has to be full class name, including
6010         the attr suffix.
6011
6012 2008-07-07  Sam Weinig  <sam@webkit.org>
6013
6014         Reviewed by Anders Carlsson.
6015
6016         Remove extraneous null check.
6017
6018         * dom/Node.cpp:
6019         (WebCore::Node::querySelector):
6020         (WebCore::Node::querySelectorAll):
6021
6022 2008-07-07  Sam Weinig  <sam@webkit.org>
6023
6024         Reviewed by Anders Carlsson.
6025
6026         Fix for https://bugs.webkit.org/show_bug.cgi?id=19928
6027         Use of CSS3 Namespaces syntax in Selectors API should throw an exception
6028
6029         - Throw an NAMESPACE_ERR exception if a non-null or "*" namespace is
6030           used in a selector passed to querySelector or querySelectorAll.
6031
6032         Test: fast/dom/SelectorAPI/not-supported-namespace-in-selector.html
6033
6034         * dom/Node.cpp:
6035         (WebCore::selectorNeedsNamespaceResolution):
6036         (WebCore::Node::querySelector):
6037         (WebCore::Node::querySelectorAll):
6038
6039 2008-07-07  Simon Fraser  <simon.fraser@apple.com>
6040
6041         Reviewed by Darin.
6042
6043         Fix for https://bugs.webkit.org/show_bug.cgi?id=19933
6044         nodeIterator with filter fails on documents not in a frame
6045
6046         Tests: traversal/node-iterator-009.html
6047                traversal/tree-walker-006.html
6048
6049         * bindings/js/JSNodeFilterCondition.cpp:
6050         * bindings/js/JSNodeFilterCondition.h:
6051         * bindings/js/JSNodeFilterCustom.cpp:
6052         * bindings/js/JSNodeIteratorCustom.cpp:
6053         * bindings/js/JSTreeWalkerCustom.cpp:
6054         * bindings/objc/DOM.mm:
6055         * dom/NodeFilter.cpp:
6056         * dom/NodeFilter.h:
6057         * dom/NodeFilterCondition.cpp:
6058         * dom/NodeFilterCondition.h:
6059         * dom/NodeIterator.cpp:
6060         * dom/NodeIterator.h:
6061         * dom/Traversal.cpp:
6062         * dom/Traversal.h:
6063         * dom/TreeWalker.cpp:
6064         * dom/TreeWalker.h:
6065
6066 2008-07-07  Adele Peterson  <adele@apple.com>
6067
6068         Reviewed by Dan Bernstein.
6069
6070         Fix for https://bugs.webkit.org/show_bug.cgi?id=19924
6071         <rdar://problem/6057160> Disabled file input element updates its displayed file info when a file is dropped from the Finder.
6072
6073         * page/DragController.cpp: (WebCore::DragController::concludeDrag):
6074         Check that the file control is enabled before taking dropped files.
6075
6076 2008-07-07  Adele Peterson  <adele@apple.com>
6077
6078         Reviewed by Beth.
6079
6080         Fix for <rdar://problem/5860507> <AUDIO> playback noticeably more quiet than QuickTime
6081
6082         Change default volume setting to 1.0.
6083
6084         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement):
6085         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::MediaPlayer):
6086
6087 2008-07-07  Darin Adler  <darin@apple.com>
6088
6089         Reviewed by Mark Rowe.
6090
6091         - fix <rdar://problem/6020441> REGRESSION: Layers on NWA.com render ugly
6092
6093         The old version of the OpenCube QuickMenu library used on this site still has code
6094         that detects Netscape 4 by checking appVersion to see if it has the substring "4."
6095         in it. We decided to special-case the filename of the script and tweak the appVersion
6096         for files with that name.
6097
6098         * bindings/js/ScriptController.cpp:
6099         (WebCore::ScriptController::ScriptController): Replace m_processingInlineCode with
6100         m_sourceURL. Use false instead of 0 to initialize a boolean.
6101         (WebCore::ScriptController::evaluate): Call argument sourceURL, not filename.
6102         Store current sourceURL in m_sourceURL. This fixes a mistake in the code that
6103         maintained the value of m_processingInlineCode, since the old code set it to
6104         false rather than restoring it. Renamed a local variable named sourceURL to
6105         exceptionSourceURL for clarity.
6106         (WebCore::ScriptController::processingUserGesture): Code that formerly used
6107         m_processingInlineCode to detect that it was evaluating code with no URL now
6108         uses m_sourceURL to do the same check.
6109
6110         * bindings/js/ScriptController.h: Renamed filename argument to sourceURL; it has always
6111         been a URL, not a file path. Added a public sourceURL function and m_sourceURL and
6112         removed m_processingInlineCode.
6113
6114         * page/Navigator.cpp:
6115         (WebCore::shouldHideFourDot): Added. Returns true if the currently running script has
6116         a source URL ending in "/dqm_script.js" and if the settings say we should do
6117         site-specific quirks (really JavaScript-library-specific in this case).
6118         (WebCore::Navigator::appVersion): Replace "4." with "4_" if shouldHideFourDot is true.
6119
6120 2008-07-07  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
6121
6122         Reviewed by Geoff.
6123
6124         Bug 19907: REGRESSION(r34824-r34941): Reproducible crash trying to log in to MediaTemple.net Account Center
6125         <https://bugs.webkit.org/show_bug.cgi?id=19907>
6126
6127         Clear exceptions set on ExecStates before returning from NPAPI
6128         callbacks, in order to avoid causing problems for the next script that
6129         executes.
6130
6131         While fixing this bug, the question was raised of whether we are
6132         correctly propagating exception information back to the caller:
6133
6134         Bug 19936: Correctly propagate exception information from NPAPI callbacks
6135         <https://bugs.webkit.org/show_bug.cgi?id=19936>
6136
6137         * bridge/NP_jsobject.cpp:
6138         (_NPN_InvokeDefault):
6139         (_NPN_Invoke):
6140         (_NPN_Evaluate):
6141         (_NPN_GetProperty):
6142         (_NPN_SetProperty):
6143         (_NPN_RemoveProperty):
6144         (_NPN_HasProperty):
6145         (_NPN_HasMethod):
6146         (_NPN_Enumerate):
6147
6148 2008-07-07  Dan Bernstein  <mitz@apple.com>
6149
6150         Reviewed by Darin Adler.
6151
6152         - fix <rdar://problem/6057650> REGRESSION (r35025): Crash beneath FontCache::invalidate() when activating Safari with no windows open
6153
6154         * css/CSSFontFaceSource.cpp:
6155         (WebCore::CSSFontFaceSource::getFontData): Added a null check because
6156         docLoader() can return 0 now.
6157         * css/CSSFontSelector.cpp:
6158         (WebCore::CSSFontSelector::docLoader): Added a null check of m_document.
6159         (WebCore::CSSFontSelector::addFontFaceRule): Ditto.
6160         (WebCore::CSSFontSelector::fontLoaded): Ditto.
6161         (WebCore::CSSFontSelector::fontCacheInvalidated): Ditto.
6162         (WebCore::fontDataForGenericFamily): Added a null check of document.
6163         * css/CSSFontSelector.h:
6164         (WebCore::CSSFontSelector::clearDocument): Added.
6165         * css/CSSStyleSelector.cpp:
6166         (WebCore::CSSStyleSelector::~CSSStyleSelector): Added a call to
6167         CSSFontSelector::clearDocument(). When the style selector is destroyed,
6168         there is no guarantee that the document will continue to exist.
6169
6170 2008-07-07  Julien Chaffraix  <jchaffraix@webkit.org>
6171
6172         Not reviewed.
6173
6174         No svg build fix.
6175
6176         * DerivedSources.make: Add JSSVGElementWrapperFactory.cpp target.
6177         * svg/animation/SMILTimeContainer.cpp: Add ENABLE(SVG) guard.
6178
6179 2008-07-07  Michelangelo De Simone  <m.des@mac.com>
6180
6181         Reviewed by Adele.
6182
6183         Support for CSS3 :read-only and :read-write pseudoclasses for readonly text controls.
6184
6185         URL: http://www.w3.org/TR/web-forms-2/#relation
6186
6187         Tests: fast/css/readonly-pseudoclass-opera-001.html
6188                fast/css/readonly-pseudoclass-opera-002.html
6189                fast/css/readonly-pseudoclass-opera-003.html
6190                fast/css/readonly-pseudoclass-opera-004.html
6191                fast/css/readonly-pseudoclass-opera-005.html
6192
6193         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
6194         Added "read-only" and "read-write" values for PseudoType extraction.
6195         * css/CSSSelector.h: (WebCore::CSSSelector::):
6196         Added PseudoReadOnly and PseudoReadWrite entries in PseudoType enum.
6197         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
6198         Checks to determine whether to match :read-only and :read-write pseudoclasses on
6199         text controls.
6200
6201 2008-07-07  Sam Weinig  <sam@webkit.org>
6202
6203         Reviewed by Geoffrey Garen.
6204
6205         Fix for https://bugs.webkit.org/show_bug.cgi?id=19928
6206         querySelectorAll should throw an exception if a NSResolver is passed in.
6207
6208         - Throw an NOT_SUPPORTED_ERR if a non-null or undefined parameter is passed
6209           as the second argument to querySelector or querySelectorAll.
6210
6211         Test: fast/dom/SelectorAPI/not-supported-NSResolver.html
6212
6213         * bindings/js/JSDocumentCustom.cpp:
6214         (WebCore::JSDocument::querySelector):
6215         (WebCore::JSDocument::querySelectorAll):
6216         * bindings/js/JSElementCustom.cpp:
6217         (WebCore::JSElement::querySelector):
6218         (WebCore::JSElement::querySelectorAll):
6219         * dom/Document.idl:
6220         * dom/Element.idl:
6221
6222 2008-07-07  Brady Eidson  <beidson@apple.com>
6223
6224         Reviewed by Mitz and Geoff
6225
6226         Test: fast/loader/empty-ref-versus-no-ref.html
6227
6228         Fix for https://bugs.webkit.org/show_bug.cgi?id=18951 and <rdar://problem/5921760>
6229         "all DOM operations stop working when location.hash set to '#'"
6230
6231         The underlying problem is that KURL didn't really know the difference between "empty ref"
6232         and "no ref at all" when changing the ref.  So changing to the empty ref in JS ended up 
6233         affecting removal of the ref, which ended up causing an infinite load load, also killing
6234         javascript.
6235
6236         * platform/KURL.cpp:
6237         (WebCore::KURL::setRef):  Changed "isEmpty()" to "isNull()", since NULL has the special 
6238           meaning of "no ref at all" while empty means "empty ref"
6239
6240 2008-07-07  Kevin McCullough  <kmccullough@apple.com>
6241
6242         Reviewed by Darin.
6243
6244         Because profiler.h no longer #includes profile.h we need to explicitly
6245         include it in console.cpp.
6246
6247         * page/Console.cpp:
6248
6249 2008-07-07  Nikolas Zimmermann  <zimmermann@kde.org>
6250
6251         Not reviewed. Build fix.
6252
6253         Fix --svg-filters build (affects Qt build, mac/win don't have it on by default)
6254
6255         * svg/SVGFEColorMatrixElement.cpp:
6256         * svg/SVGFEDiffuseLightingElement.cpp:
6257         * svg/SVGFEImageElement.cpp:
6258         * svg/SVGFELightElement.cpp:
6259         * svg/SVGFESpecularLightingElement.cpp:
6260
6261 2008-07-07  Nikolas Zimmermann  <zimmermann@kde.org>
6262
6263         Reviewed by Antti.
6264
6265         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
6266
6267         Revised version of the patch, not using pointer-to-member function callbacks anymore - after discussion with Adam Roben.
6268         Remove unneccessary parameters of all macros.
6269
6270         SVG Errata states: "All SVG DOM objects that directly correspond to an
6271         attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
6272         means that any changes made to the attribute are immediately reflected in the
6273         corresponding SVG DOM object." (see linked URL on bug report)
6274
6275         Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
6276         element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).
6277
6278         Add a new synchronization layer to handle SVG DOM -> XML changes.
6279
6280         Added test: svg/custom/svg-xml-dom-sync.html
6281         Fixed test: svg/hixie/dynamic/005-broken.xml (renamed to 005.xml)
6282
6283         * dom/Element.cpp:
6284         (WebCore::Element::Element): Initialize the two new bits.
6285         (WebCore::Element::attributes): Add hooks to call into SVG attribute synchronization code, wrapped in ENABLE(SVG) blocks.
6286         (WebCore::Element::getAttribute): Ditto.
6287         (WebCore::Element::hasAttributes): Ditto.
6288         * dom/Element.h: Add two bits: m_areSVGAttributesValid/m_synchronizingSVGAttributes, to track synchronization status.
6289         (WebCore::Element::updateAnimatedSVGAttribute): New virtual function, handling the synronication, similar to updateStyleAttribute.
6290         * dom/NamedAttrMap.h: Make addAttribute/removeAttribute protected, from use within the ANIMATED_* macros.
6291         * svg/SVGAElement.cpp:
6292         * svg/SVGAElement.h:
6293         * svg/SVGAnimatedTemplate.h:
6294         (WebCore::lookupOrCreateWrapper): Take new AnimatedPropertySynchronizer callback as parameter, and associate it with the wrappers.
6295         * svg/SVGCircleElement.cpp:
6296         (WebCore::SVGCircleElement::SVGCircleElement):
6297         * svg/SVGCircleElement.h:
6298         * svg/SVGClipPathElement.cpp:
6299         * svg/SVGClipPathElement.h:
6300         * svg/SVGComponentTransferFunctionElement.cpp:
6301         * svg/SVGComponentTransferFunctionElement.h:
6302         * svg/SVGCursorElement.cpp:
6303         (WebCore::SVGCursorElement::SVGCursorElement):
6304         * svg/SVGCursorElement.h:
6305         * svg/SVGElement.cpp:
6306         (WebCore::SVGElement::updateAnimatedSVGAttribute): Override virtual function from Element, to handle SVG<->XML DOM synchronization.
6307         (WebCore::SVGElement::setSynchronizedSVGAttributes):
6308         * svg/SVGElement.h:
6309         (WebCore::SVGElement::invokeSVGPropertySynchronizer):
6310         (WebCore::SVGElement::invokeAllSVGPropertySynchronizers):
6311         (WebCore::SVGElement::addSVGPropertySynchronizer):
6312         * svg/SVGEllipseElement.cpp:
6313         * svg/SVGEllipseElement.h:
6314         * svg/SVGExternalResourcesRequired.cpp:
6315         * svg/SVGExternalResourcesRequired.h:
6316         * svg/SVGFEBlendElement.cpp:
6317         * svg/SVGFEBlendElement.h:
6318         * svg/SVGFEColorMatrixElement.cpp:
6319         * svg/SVGFEColorMatrixElement.h:
6320         * svg/SVGFEComponentTransferElement.cpp:
6321         * svg/SVGFEComponentTransferElement.h:
6322         * svg/SVGFECompositeElement.cpp:
6323         * svg/SVGFECompositeElement.h:
6324         * svg/SVGFEDiffuseLightingElement.cpp:
6325         * svg/SVGFEDiffuseLightingElement.h:
6326         * svg/SVGFEDisplacementMapElement.cpp:
6327         * svg/SVGFEDisplacementMapElement.h:
6328         * svg/SVGFEGaussianBlurElement.cpp:
6329         * svg/SVGFEGaussianBlurElement.h:
6330         * svg/SVGFEImageElement.cpp:
6331         * svg/SVGFEImageElement.h:
6332         * svg/SVGFELightElement.cpp:
6333         * svg/SVGFELightElement.h:
6334         * svg/SVGFEMergeNodeElement.cpp:
6335         * svg/SVGFEMergeNodeElement.h:
6336         * svg/SVGFEOffsetElement.cpp:
6337         * svg/SVGFEOffsetElement.h:
6338         * svg/SVGFESpecularLightingElement.cpp:
6339         * svg/SVGFESpecularLightingElement.h:
6340         * svg/SVGFETileElement.cpp:
6341         * svg/SVGFETileElement.h:
6342         * svg/SVGFETurbulenceElement.cpp:
6343         * svg/SVGFETurbulenceElement.h:
6344         * svg/SVGFilterElement.cpp:
6345         * svg/SVGFilterElement.h:
6346         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
6347         * svg/SVGFilterPrimitiveStandardAttributes.h:
6348         * svg/SVGFitToViewBox.cpp:
6349         * svg/SVGFitToViewBox.h:
6350         * svg/SVGForeignObjectElement.cpp:
6351         * svg/SVGForeignObjectElement.h:
6352         * svg/SVGGradientElement.cpp:
6353         * svg/SVGGradientElement.h:
6354         * svg/SVGImageElement.cpp:
6355         * svg/SVGImageElement.h:
6356         * svg/SVGLineElement.cpp:
6357         * svg/SVGLineElement.h:
6358         * svg/SVGLinearGradientElement.cpp:
6359         * svg/SVGLinearGradientElement.h:
6360         * svg/SVGMarkerElement.cpp:
6361         * svg/SVGMarkerElement.h:
6362         * svg/SVGMaskElement.cpp:
6363         * svg/SVGMaskElement.h:
6364         * svg/SVGPathElement.cpp:
6365         * svg/SVGPathElement.h:
6366         * svg/SVGPatternElement.cpp:
6367         * svg/SVGPatternElement.h:
6368         * svg/SVGRadialGradientElement.cpp:
6369         * svg/SVGRadialGradientElement.h:
6370         * svg/SVGRectElement.cpp:
6371         * svg/SVGRectElement.h:
6372         * svg/SVGSVGElement.cpp:
6373         * svg/SVGSVGElement.h:
6374         * svg/SVGScriptElement.h:
6375         * svg/SVGStopElement.cpp:
6376         * svg/SVGStopElement.h:
6377         * svg/SVGStyledElement.cpp:
6378         * svg/SVGStyledElement.h:
6379         * svg/SVGStyledTransformableElement.cpp:
6380         * svg/SVGStyledTransformableElement.h:
6381         * svg/SVGSymbolElement.h:
6382         * svg/SVGTextContentElement.cpp:
6383         * svg/SVGTextContentElement.h:
6384         * svg/SVGTextElement.cpp:
6385         * svg/SVGTextElement.h:
6386         * svg/SVGTextPathElement.cpp:
6387         * svg/SVGTextPathElement.h:
6388         * svg/SVGTextPositioningElement.cpp:
6389         * svg/SVGTextPositioningElement.h:
6390         * svg/SVGURIReference.cpp:
6391         * svg/SVGURIReference.h:
6392         * svg/SVGUseElement.cpp:
6393         * svg/SVGUseElement.h:
6394         * svg/SVGViewElement.h:
6395         * svg/SynchronizableTypeWrapper.h: Added.
6396
6397 2008-07-07  Nikolas Zimmermann  <zimmermann@kde.org>
6398
6399         Reviewed by Oliver.
6400
6401         Working on: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
6402
6403         Splitting up large patch in small chunk: Land valueAsString() implementation on it's own.
6404
6405         Added valueAsString() conversion for all SVG primitive types, needed by the SVG<->XML synchronization layer.
6406         Unify "null value for a SVG animated type" concept, which was implemented in SVGDocumentExtensions before,
6407         in SVGAnimatedTemplate.
6408
6409         * svg/SVGAnimatedTemplate.h:
6410         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
6411         (WebCore::lookupOrCreateWrapper):
6412         (WebCore::SVGAnimatedTypeValue::null):
6413         (WebCore::SVGAnimatedTypeValue::toString):
6414         (WebCore::):
6415         * svg/SVGDocumentExtensions.h:
6416         (WebCore::SVGDocumentExtensions::baseValue):
6417         * svg/SVGLengthList.cpp:
6418         (WebCore::SVGLengthList::valueAsString):
6419         * svg/SVGLengthList.h:
6420         * svg/SVGNumberList.cpp:
6421         (WebCore::SVGNumberList::valueAsString):
6422         * svg/SVGNumberList.h:
6423         * svg/SVGPreserveAspectRatio.cpp:
6424         (WebCore::SVGPreserveAspectRatio::valueAsString):
6425         * svg/SVGPreserveAspectRatio.h:
6426         * svg/SVGTransformList.cpp:
6427         (SVGTransformList::valueAsString):
6428         * svg/SVGTransformList.h:
6429
6430 2008-07-06  Sam Weinig  <sam@webkit.org>
6431
6432         Reviewed by Dan Bernstein.
6433
6434         Rename "Access-Contol-Origin" to "Origin" to match the latest
6435         Access Control for Cross-Site Request draft. (Editor's Draft 25 May 2008)
6436
6437         * xml/XMLHttpRequest.cpp:
6438         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
6439         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
6440         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
6441
6442 2008-07-06  Dan Bernstein  <mitz@apple.com>
6443
6444         - try to fix the Windows build
6445
6446         * WebCore.vcproj/WebCore.vcproj:
6447
6448 2008-07-06  Dan Bernstein  <mitz@apple.com>
6449
6450         - add missing brace
6451
6452         * platform/graphics/qt/FontCacheQt.cpp:
6453
6454 2008-07-06  Dan Bernstein  <mitz@apple.com>
6455
6456         - try to fix the Qt build
6457
6458         * platform/graphics/qt/FontCacheQt.cpp:
6459         (WebCore::FontCache::addClient):
6460         (WebCore::FontCache::removeClient):
6461
6462 2008-07-06  Sam Weinig  <sam@webkit.org>
6463
6464         Reviewed by Cameron Zwarich.
6465
6466         Add #include for kjs/protect.h.
6467
6468         * xml/XMLHttpRequest.cpp:
6469         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
6470
6471 2008-07-06  David Kilzer  <ddkilzer@apple.com>
6472
6473         Save a few more bits in RenderStyle
6474
6475         Reviewed by Darin.
6476
6477         No test cases added since there is no change in behavior.
6478
6479         This changes WebCore::StyleMarqueeData from using 6 bits to 5 bits,
6480         WebCore::RenderStyle::inherited_flags from using 36 bits to 35 bits,
6481         and WebCore::RenderStyle::noninherited_flags from using 49 bits to
6482         47 bits.
6483
6484         * rendering/style/RenderStyle.h:
6485         (WebCore::StyleMarqueeData::behavior): Reduce from 3 bits to 2 bits
6486         since EMarqueeBehavior has 4 items.
6487         (WebCore::RenderStyle::inherited_flags._text_align): Reduce from
6488         4 bits to 3 bits since ETextAlign has 8 items.
6489         (WebCore::RenderStyle::noninherited_flags._overflowX): Reduce from
6490         4 bits to 3 bits since EOverflow has 6 items.
6491         (WebCore::RenderStyle::noninherited_flags._overflowY): Ditto.
6492
6493 2008-07-06  Dan Bernstein  <mitz@apple.com>
6494
6495         Reviewed by Darin Adler.
6496
6497         - fix <rdar://problem/5735163> WebCore caching makes text look wrong after font changes; need to respond appropriately instead
6498
6499         * css/CSSFontSelector.cpp:
6500         (WebCore::CSSFontSelector::CSSFontSelector): Added a call to
6501         FontCache::addClient().
6502         (WebCore::CSSFontSelector::~CSSFontSelector): Added a call to
6503         FontCache::removeClient().
6504         (WebCore::CSSFontSelector::fontCacheInvalidated): Added. Called by the
6505         font cache when it is invalidated, and ensures that the document is
6506         updated.
6507
6508         * css/CSSFontSelector.h:
6509
6510         * platform/graphics/Font.cpp:
6511         (WebCore::Font::operator==): Added code to compare the font fallback
6512         lists' font cache generations.
6513
6514         * platform/graphics/FontCache.cpp:
6515         (WebCore::FontCache::addClient): Added.
6516         (WebCore::FontCache::removeClient): Added.
6517         (WebCore::FontCache::generation): Added.
6518         (WebCore::FontCache::invalidate): Added. Deletes the platform data
6519         cache, increments the generation counter, and notifies all clients.
6520
6521         * platform/graphics/FontCache.h:
6522
6523         * platform/graphics/FontFallbackList.cpp:
6524         (WebCore::FontFallbackList::FontFallbackList): Added initialization of
6525         m_generation.
6526         (WebCore::FontFallbackList::invalidate): Added code to reset
6527         m_generation.
6528         (WebCore::FontFallbackList::fontDataAt): Added an assertion.
6529         (WebCore::FontFallbackList::fontDataForCharacters): Ditto.
6530         (WebCore::FontFallbackList::setPlatformFont): Ditto.
6531
6532         * platform/graphics/FontFallbackList.h:
6533         (WebCore::FontFallbackList::generation): Added. Returns the font cache
6534         generation used to populate the list.
6535
6536         * platform/graphics/FontSelector.h:
6537         (WebCore::FontSelector::fontCacheInvalidated): Added.
6538
6539         * platform/graphics/mac/FontCacheMac.mm:
6540         (WebCore::fontCacheATSNotificationCallback): Added. Calls
6541         FontCache::invalidate().
6542         (WebCore::FontCache::platformInit): Added code to register for ATS
6543         notifications.
6544
6545         * svg/SVGFontFaceElement.cpp: Removed unneeded #inlcudes.
6546
6547 2008-07-05  Sam Weinig  <sam@webkit.org>
6548
6549         Rubber-stamped by Cameron Zwarich.
6550
6551         Rename list.h/cpp to ArgList.h/cpp.
6552
6553         * ForwardingHeaders/kjs/ArgList.h: Copied from WebCore/ForwardingHeaders/kjs/list.h.
6554         * ForwardingHeaders/kjs/list.h: Removed.
6555         * WebCore.vcproj/WebCore.vcproj:
6556         * bridge/qt/qt_instance.cpp:
6557         * page/Console.cpp:
6558
6559 2008-07-05  Sam Weinig  <sam@webkit.org>
6560
6561         Rubber-stamped by Cameron Zwarich.
6562
6563         Split Arguments, IndexToNameMap, PrototypeFunction, GlobalEvalFunction and 
6564         the functions on the global object out of JSFunction.h/cpp.
6565
6566         * ForwardingHeaders/kjs/PrototypeFunction.h: Added.
6567         * bindings/js/JSDOMBinding.cpp:
6568
6569 2008-07-05  Dan Bernstein  <mitz@apple.com>
6570
6571         Rubber-stamped by Sam Weinig.
6572
6573         - rename BidiIterator and BidiState
6574
6575         Renamed BidiIterator to InlineIterator and BidiState
6576         to InlineBidiResolver. Renamed variables of type InlineBidiResolver{*,&}
6577         to "resolver".
6578
6579         * rendering/RenderBlock.h:
6580         * rendering/RootInlineBox.h:
6581         * rendering/bidi.cpp:
6582         (WebCore::InlineIterator::InlineIterator):
6583         (WebCore::operator==):
6584         (WebCore::operator!=):
6585         (WebCore::bidiNext):
6586         (WebCore::bidiFirst):
6587         (WebCore::InlineIterator::increment):
6588         (WebCore::InlineBidiResolver::increment):
6589         (WebCore::InlineIterator::atEnd):
6590         (WebCore::InlineIterator::current):
6591         (WebCore::InlineIterator::direction):
6592         (WebCore::chopMidpointsAt):
6593         (WebCore::checkMidpoints):
6594         (WebCore::addMidpoint):
6595         (WebCore::appendRunsForObject):
6596         (WebCore::InlineBidiResolver::appendRun):
6597         (WebCore::RenderBlock::bidiReorderLine):
6598         (WebCore::buildCompactRuns):
6599         (WebCore::RenderBlock::layoutInlineChildren):
6600         (WebCore::RenderBlock::determineStartPosition):
6601         (WebCore::RenderBlock::determineEndPosition):
6602         (WebCore::RenderBlock::matchedEndLine):
6603         (WebCore::skipNonBreakingSpace):
6604         (WebCore::requiresLineBox):
6605         (WebCore::RenderBlock::generatesLineBoxesForInlineChild):
6606         (WebCore::RenderBlock::skipWhitespace):
6607         (WebCore::shouldSkipWhitespaceAfterStartObject):
6608         (WebCore::RenderBlock::findNextLineBreak):
6609
6610 2008-07-05  Jan Michael Alonzo  <jmalonzo@webkit.org>
6611
6612         Rubber-stamped by Oliver Hunt
6613
6614         Coding style fix
6615
6616         * html/CanvasRenderingContext2D.cpp: Indentation fix
6617
6618 2008-07-04  Oliver Hunt  <oliver@apple.com>
6619
6620         Fix windows build
6621
6622         * WebCore.vcproj/WebCore.vcproj:
6623
6624 2008-07-04  Sam Weinig  <sam@webkit.org>
6625
6626         Fix Qt build.
6627
6628         * bridge/qt/qt_instance.cpp:
6629
6630 2008-07-04  Sam Weinig  <sam@webkit.org>
6631
6632         Rubber-stamped by Dan Bernstein.
6633
6634         Split Error and GetterSetter out of JSObject.h.
6635
6636         * ForwardingHeaders/kjs/Error.h: Added.
6637         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
6638         * bindings/js/JSClipboardCustom.cpp:
6639         * bindings/js/JSDOMWindowBase.cpp:
6640         * bindings/js/JSEventTargetBase.cpp:
6641         * bindings/js/JSHTMLDocumentCustom.cpp:
6642         * bindings/js/JSXMLHttpRequestCustom.cpp:
6643         * bindings/scripts/CodeGeneratorJS.pm:
6644         * bridge/NP_jsobject.cpp:
6645         * bridge/jni/jni_instance.cpp:
6646         * bridge/jni/jni_runtime.cpp:
6647         * bridge/objc/objc_instance.mm:
6648         * bridge/objc/objc_runtime.mm:
6649         * bridge/objc/objc_utility.h:
6650         * bridge/runtime_array.cpp:
6651         * bridge/runtime_method.cpp:
6652         * bridge/runtime_object.cpp:
6653
6654 2008-07-04  David D. Kilzer  <ddkilzer@webkit.org>
6655
6656         Bug 15290: REGRESSION (r14184-r14216): Duplicate DOCTYPE definitions when saving files as webarchives
6657
6658         <https://bugs.webkit.org/show_bug.cgi?id=15290>
6659         <rdar://problem/5509173>
6660
6661         Reviewed by Dan Bernstein.
6662
6663         Tests: webarchive/archive-empty-frame-dom.html
6664                webarchive/doctype.html
6665
6666         * editing/markup.cpp:
6667         (WebCore::createFullMarkup): If the Node is a Document or a
6668         DocumentType, don't prepend the <!DOCTYPE> tag since that will
6669         cause it to be duplicated.
6670         * loader/archive/cf/LegacyWebArchive.cpp:
6671         (WebCore::LegacyWebArchive::create): Ditto.
6672
6673 2008-07-04  Jan Michael Alonzo  <jmalonzo@webkit.org>
6674
6675         Gtk build fix
6676
6677         * GNUmakefile.am:
6678
6679 2008-07-04  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
6680
6681         Reviewed by Eric Seidel.
6682
6683         Bring our implementation of the Netscape plugin API closer to current
6684         code style guidelines.
6685
6686         * bridge/NP_jsobject.cpp:
6687         (getListFromVariantArgs):
6688         (jsAllocate):
6689         (jsDeallocate):
6690         (_NPN_CreateScriptObject):
6691         (_NPN_CreateNoScriptObject):
6692         (_NPN_InvokeDefault):
6693         (_NPN_Invoke):
6694         (_NPN_Evaluate):
6695         (_NPN_GetProperty):
6696         (_NPN_SetProperty):
6697         (_NPN_RemoveProperty):
6698         (_NPN_HasProperty):
6699         (_NPN_HasMethod):
6700         (_NPN_Enumerate):
6701         * bridge/npruntime_impl.h:
6702
6703 2008-07-04  Simon Hausmann  <hausmann@webkit.org>
6704
6705         Fix the Qt/Windows build.
6706
6707         * WebCore.pro: Moved PluginMainThreadScheduler.cpp to the main
6708         sources, so that it is always compiled.
6709         * platform/qt/CursorQt.cpp: #undef CopyCursor, as it's defined by some
6710         Windows header.
6711         * platform/qt/KeyboardCodes.h: Don't re-define some of the keycodes
6712         that are defined by Windows already.
6713         * platform/qt/TemporaryLinkStubs.cpp: Removed the PluginDatabase stubs
6714         that are now platform-independent in plugin/PluginDatabase.cpp.
6715
6716 2008-07-04  Simon Hausmann  <hausmann@webkit.org>
6717
6718         Fix the Mac build for real, don't define listDirectory() twice.
6719
6720         * platform/mac/FileSystemMac.mm:
6721
6722 2008-07-04  Simon Hausmann  <hausmann@webkit.org>
6723
6724         Prospective Mac build fix.
6725
6726         * platform/mac/FileSystemMac.mm: Include NotImplemented.h.
6727         * platform/posix/FileSystemPOSIX.cpp: Ditto.
6728
6729 2008-07-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
6730
6731         Reviewed by Simon.
6732
6733         Move duplicated code from each PluginDatabaseXX-implementation
6734         to PluginDabase.cpp -- ifdefed based on the XP_PLATFORM we are
6735         compiling plugins for.
6736
6737         This make the code cleaner and we can share common patterns.
6738         The only implementation left which is specific is the Win
6739         implementation (also used by QtWebKit/Win), but we might
6740         want to move that too.
6741
6742         * GNUmakefile.am: Removed PluginDatabaseGtk.cpp from the build.
6743         * WebCore.pro: Removed PluginDatabaseQt.cpp from the build.
6744         * plugins/PluginDatabase.cpp:
6745         (WebCore::PluginDatabase::defaultPluginDirectories):
6746         (WebCore::PluginDatabase::isPreferredPluginDirectory):
6747         (WebCore::PluginDatabase::getPluginPathsInDirectories):
6748         * plugins/gtk/PluginDatabaseGtk.cpp: Removed.
6749         * plugins/qt/PluginDatabaseQt.cpp: Removed.
6750         * plugins/wx/PluginDatabaseWx.cpp: Removed.
6751         * webcore-wx.bkl: Removed PluginDatabaseWx.cpp from the build.
6752
6753 2008-07-04  Simon Hausmann  <hausmann@webkit.org>
6754
6755         Fix the Wx build.
6756
6757         * WebCoreSources.bkl: Add plugins/PluginMainThreadScheduler.cpp to the
6758         build.
6759         * page/FocusController.cpp:
6760         (WebCore::FocusController::setActive): Extend MAC #ifdef to WX as
6761         layoutIfNeededRecursive does not exist for the Wx port.
6762
6763 2008-07-04  Simon Hausmann  <hausmann@webkit.org>
6764
6765         Fix the Gtk build, adapt to renamed files.
6766
6767         * GNUmakefile.am:
6768
6769 2008-07-04  Simon Hausmann  <hausmann@webkit.org>
6770
6771         Fix the Qt build, adapt to renamed files.
6772
6773         * WebCore.pro:
6774
6775 2008-07-03  Oliver Hunt  <oliver@apple.com>
6776
6777         Reviewed by Eric Seidel.
6778
6779         Move filter implementations to platform directory.
6780
6781         * WebCore.vcproj/WebCore.vcproj
6782         * WebCore.xcodeproj/project.pbxproj:
6783         * svg/SVGComponentTransferFunctionElement.h:
6784         * svg/SVGFEBlendElement.h:
6785         * svg/SVGFEColorMatrixElement.h:
6786         * svg/SVGFEComponentTransferElement.h:
6787         * svg/SVGFECompositeElement.h:
6788         * platform/graphics/filters/FEBlend.cpp: Renamed from WebCore/svg/graphics/filters/SVGFEBlend.cpp.
6789         * platform/graphics/filters/FEBlend.h: Renamed from WebCore/svg/graphics/filters/SVGFEBlend.h.
6790         * platform/graphics/filters/FEColorMatrix.cpp: Renamed from WebCore/svg/graphics/filters/SVGFEColorMatrix.cpp.
6791         * platform/graphics/filters/FEColorMatrix.h: Renamed from WebCore/svg/graphics/filters/SVGFEColorMatrix.h.
6792         * platform/graphics/filters/FEComponentTransfer.cpp: Renamed from WebCore/svg/graphics/filters/SVGFEComponentTransfer.cpp.
6793         * platform/graphics/filters/FEComponentTransfer.h: Renamed from WebCore/svg/graphics/filters/SVGFEComponentTransfer.h.
6794         * platform/graphics/filters/FEComposite.cpp: Renamed from WebCore/svg/graphics/filters/SVGFEComposite.cpp.
6795         * platform/graphics/filters/FEComposite.h: Renamed from WebCore/svg/graphics/filters/SVGFEComposite.h.
6796
6797 2008-07-03  Alex Mathews  <possessedpenguinbob@gmail.com>
6798
6799         Reviewed by Oliver Hunt.
6800
6801         Bug 19835: WebKit needs cross-platform filter system
6802         <https://bugs.webkit.org/show_bug.cgi?id=19835>
6803
6804         More class refactoring in preparation for cross-platform filter
6805         implementation.
6806
6807         * WebCore.xcodeproj/project.pbxproj:
6808         * svg/FilterEffect.h:
6809         * svg/SVGComponentTransferFunctionElement.cpp:
6810         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
6811         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
6812         (WebCore::SVGComponentTransferFunctionElement::transferFunction):
6813         * svg/SVGComponentTransferFunctionElement.h:
6814         * svg/SVGFEColorMatrixElement.cpp:
6815         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
6816         (WebCore::SVGFEColorMatrixElement::parseMappedAttribute):
6817         (WebCore::SVGFEColorMatrixElement::filterEffect):
6818         (WebCore::SVGFEColorMatrixElement::build):
6819         * svg/SVGFEColorMatrixElement.h:
6820         * svg/SVGFEComponentTransferElement.cpp:
6821         (WebCore::SVGFEComponentTransferElement::filterEffect):
6822         (WebCore::SVGFEComponentTransferElement::build):
6823         * svg/SVGFEComponentTransferElement.h:
6824         * svg/SVGFECompositeElement.cpp:
6825         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
6826         (WebCore::SVGFECompositeElement::parseMappedAttribute):
6827         (WebCore::SVGFECompositeElement::filterEffect):
6828         (WebCore::SVGFECompositeElement::build):
6829         * svg/SVGFECompositeElement.h:
6830         * svg/graphics/filters/SVGFEBlend.cpp:
6831         * svg/graphics/filters/SVGFEBlend.h:
6832         * svg/graphics/filters/SVGFEColorMatrix.cpp:
6833         (WebCore::FEColorMatrix::FEColorMatrix):
6834         (WebCore::FEColorMatrix::create):
6835         (WebCore::FEColorMatrix::type):
6836         (WebCore::FEColorMatrix::setType):
6837         (WebCore::FEColorMatrix::values):
6838         (WebCore::FEColorMatrix::setValues):
6839         (WebCore::FEColorMatrix::apply):
6840         (WebCore::FEColorMatrix::dump):
6841         * svg/graphics/filters/SVGFEColorMatrix.h:
6842         (WebCore::):
6843         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
6844         (WebCore::FEComponentTransfer::FEComponentTransfer):
6845         (WebCore::FEComponentTransfer::create):
6846         (WebCore::FEComponentTransfer::redFunction):
6847         (WebCore::FEComponentTransfer::setRedFunction):
6848         (WebCore::FEComponentTransfer::greenFunction):
6849         (WebCore::FEComponentTransfer::setGreenFunction):
6850         (WebCore::FEComponentTransfer::blueFunction):
6851         (WebCore::FEComponentTransfer::setBlueFunction):
6852         (WebCore::FEComponentTransfer::alphaFunction):
6853         (WebCore::FEComponentTransfer::setAlphaFunction):
6854         (WebCore::FEComponentTransfer::apply):
6855         (WebCore::FEComponentTransfer::dump):
6856         * svg/graphics/filters/SVGFEComponentTransfer.h:
6857         (WebCore::):
6858         (WebCore::ComponentTransferFunction::ComponentTransferFunction):
6859         * svg/graphics/filters/SVGFEComposite.cpp:
6860         (WebCore::FEComposite::FEComposite):
6861         (WebCore::FEComposite::create):
6862         (WebCore::FEComposite::operation):
6863         (WebCore::FEComposite::setOperation):
6864         (WebCore::FEComposite::k1):
6865         (WebCore::FEComposite::setK1):
6866         (WebCore::FEComposite::k2):
6867         (WebCore::FEComposite::setK2):
6868         (WebCore::FEComposite::k3):
6869         (WebCore::FEComposite::setK3):
6870         (WebCore::FEComposite::k4):
6871         (WebCore::FEComposite::setK4):
6872         (WebCore::FEComposite::apply):
6873         (WebCore::FEComposite::dump):
6874         * svg/graphics/filters/SVGFEComposite.h:
6875         (WebCore::):
6876         * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm: Removed.
6877         * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm: Removed.
6878         * svg/graphics/filters/cg/SVGFECompositeCg.mm: Removed.
6879
6880 2008-07-03  Dan Bernstein  <mitz@apple.com>
6881
6882         Reviewed by John Sullivan.
6883
6884         - fix <rdar://problem/6020930> Bidi Problem When Resizing Window
6885
6886         Test: fast/text/international/bidi-AN-after-empty-run.html
6887
6888         * platform/text/BidiResolver.h:
6889         (WebCore::::appendRun): Changed to reset the current direction and
6890         "end of run" direction even in the empty run case.
6891         * rendering/bidi.cpp:
6892         (WebCore::BidiState::appendRun): Ditto.
6893
6894 2008-07-02  Jon Honeycutt  <jhoneycutt@apple.com>
6895
6896         <rdar://5983747> Safari crashes trying to load the SilverLight plugin
6897
6898         If a plug-in returned an error code from NPP_NewStream, we would call
6899         NPP_DestroyStream while cleaning up the request. We now only call
6900         NPP_DestroyStream if NPP_NewStream was successful, matching Firefox.
6901
6902         Reviewed by Anders.
6903
6904         * plugins/PluginStream.cpp:
6905         (WebCore::PluginStream::startStream): If NPP_NewStream returns an error,
6906         don't set m_streamState to StreamStarted, and return after calling
6907         cancelAndDestroyStream.
6908         (WebCore::PluginStream::destroyStream): Don't call NPP_DestroyStream if
6909         the stream didn't start successfully.
6910
6911 2008-07-03  David Hyatt  <hyatt@apple.com>
6912
6913         Revise Dan's fix for an assert on Windows, since layoutIfNeededRecursive doesn't exist on the
6914         Mac.  Revert updateControlTints and add the layout call outside of it in the already-existing
6915         !PLATFORM(MAC) ifdef in FocusController's setActive method.
6916
6917         Reviewed by ggaren, weinig
6918
6919         * page/FocusController.cpp:
6920         (WebCore::FocusController::setActive):
6921         * page/FrameView.cpp:
6922         (WebCore::FrameView::updateControlTints):
6923
6924 2008-07-03  Alexey Proskuryakov  <ap@webkit.org>
6925
6926         Reviewed by Darin.
6927
6928         https://bugs.webkit.org/show_bug.cgi?id=19884
6929         Locating a store at www.366.ru doesn't work
6930
6931         Test: fast/forms/submit-with-base.html
6932
6933         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::submit): Treat empty action the same
6934         as missing one - ignore base URL.
6935
6936 2008-07-03  Dan Bernstein  <mitz@apple.com>
6937
6938         Reviewed by John Sullivan.
6939
6940         - fix <rdar://problem/6048904> Assert in WebCore::Frame::paint in Windows
6941
6942         * page/FrameView.cpp:
6943         (WebCore::FrameView::updateControlTints): Changed to update layout
6944         recursively and not just for the top-level frame.
6945
6946 2008-07-03  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
6947
6948         Reviewed by Geoff.
6949
6950         Bug 19853: REGRESSION (r34838): Crash when visiting http://www.thewebsiteisdown.com/salesguy.html
6951         https://bugs.webkit.org/show_bug.cgi?id=19853
6952
6953         Remove the body of _NPN_SetException(), because it was simply calling
6954         throwError(), which sets an exception on an ExecState but does not
6955         actually handle it. The presence of an exception on the global ExecState
6956         causes assertions that there is no exception set on that ExecState to
6957         fail, as well as causing Machine::execute() to mistakingly return 0 in
6958         some cases, as it assumes the presence of an exception implies that it
6959         has run out of memory.
6960
6961         * bridge/NP_jsobject.cpp:
6962         (_NPN_SetException):
6963
6964 2008-07-03  Maciej Katafiasz  <mathrick@gmail.com>
6965
6966         Gtk build fix with SVG filters enabled
6967
6968         * GNUmakefile.am: Include missing SVG filter sources
6969
6970 2008-07-03  Simon Hausmann  <hausmann@webkit.org>
6971
6972         Fix the Qt build, added FilterEffect to the build.
6973
6974         * WebCore.pro:
6975
6976 2008-07-02  Brady Eidson  <beidson@apple.com>
6977
6978         Reviewed by Mitz Pettel and John Sullivan
6979
6980         Fix for <rdar://problem/5549871> - Crash when calling [WebView stopLoading:] or [WebFrame stopLoading] 
6981         inside of the frame load delegate method -webView:didStartProvisionalLoadForFrame:.
6982
6983         Test: fast/loader/stop-provisional-loads.html
6984
6985         * loader/FrameLoader.cpp:
6986         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Since the provisionalDocumentLoader may have been cleared
6987           by the prepareForLoadStart() call, null check it again.
6988
6989 2008-07-01  Alex Mathews  <possessedpenguinbob@gmail.com>
6990
6991         Reviewed by Oliver Hunt.
6992
6993         Renaming of class SVGFEBlend to FEBlend as well as removing
6994         a little bit of antiquated code. This includes the removal of
6995         SVGFEBlendCg.mm; the feBlend element will now no longer
6996         render. 
6997
6998         * WebCore.xcodeproj/project.pbxproj:
6999         * svg/FilterBuilder.h:
7000         (WebCore::FilterBuilder::add):
7001         (WebCore::FilterBuilder::getEffectById):
7002         * svg/SVGFEBlendElement.cpp:
7003         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
7004         (WebCore::SVGFEBlendElement::parseMappedAttribute):
7005         (WebCore::SVGFEBlendElement::filterEffect):
7006         (WebCore::SVGFEBlendElement::build):
7007         * svg/SVGFEBlendElement.h:
7008         * svg/SVGFilterPrimitiveStandardAttributes.h:
7009         * svg/graphics/filters/SVGFEBlend.cpp:
7010         (WebCore::FEBlend::FEBlend):
7011         (WebCore::FEBlend::create):
7012         (WebCore::FEBlend::in2):
7013         (WebCore::FEBlend::setIn2):
7014         (WebCore::FEBlend::blendMode):
7015         (WebCore::FEBlend::setBlendMode):
7016         (WebCore::FEBlend::apply):
7017         (WebCore::FEBlend::dump):
7018         * svg/graphics/filters/SVGFEBlend.h:
7019         (WebCore::):
7020         * svg/graphics/filters/cg/SVGFEBlendCg.mm: Removed.
7021
7022 2008-07-02  Beth Dakin  <bdakin@apple.com>
7023
7024         Reviewed by Darin.
7025
7026         Fix for <rdar://problem/6015523> Implement ARIA ranges/sliders
7027         and
7028         <rdar://problem/5934355> Need to implement ARIA role="spinbutton"
7029
7030         * page/AccessibilityObject.h:
7031         (WebCore::AccessibilityObject::isSlider):
7032         * page/AccessibilityRenderObject.cpp:
7033         (WebCore::AccessibilityRenderObject::isSlider):
7034         (WebCore::AccessibilityRenderObject::valueForRange):
7035         (WebCore::AccessibilityRenderObject::maxValueForRange):
7036         (WebCore::AccessibilityRenderObject::minValueForRange):
7037         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): We 
7038         were addressing the generic has-an-ARIA-role case too early here.
7039         (WebCore::AccessibilityRenderObject::focusedUIElement): This is a 
7040         bug I ran into while testing role='spinbutton', spinbutton is a 
7041         role that can have an active descendant. But we were always trying 
7042         to forward focus to the active descendant, even if one was not 
7043         specified. 
7044         (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant): 
7045         'spinbutton' maps to ProgressIndicatorRole.
7046         (WebCore::RoleEntry::):
7047         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
7048         * page/AccessibilityRenderObject.h:
7049         * page/mac/AccessibilityObjectWrapper.mm:
7050         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
7051         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
7052
7053 2008-07-02  Dan Bernstein  <mitz@apple.com>
7054
7055         Reviewed by Adam Roben.
7056
7057         - Windows build fix
7058
7059         Renamed the ERROR token in the XPath grammar to XPATH_ERROR, because
7060         the ERROR macro is defined in <wingdi.h>.
7061
7062         * xml/XPathGrammar.y:
7063         * xml/XPathParser.cpp:
7064         (WebCore::XPath::Parser::lexString):
7065         (WebCore::XPath::Parser::nextTokenInternal):
7066
7067 2008-07-02  Alexey Proskuryakov  <ap@webkit.org>
7068
7069         Inspired and reviewed by Mark Rowe.
7070
7071         Change non-API includes from JavaScriptCore/ to kjs/ and wtf/ to match prevalent style.
7072
7073         * bindings/objc/ExceptionHandlers.h:
7074         * bindings/objc/WebScriptObject.mm:
7075         * dom/Document.cpp:
7076         * dom/Node.cpp:
7077         * page/Frame.cpp:
7078         * page/InspectorController.cpp:
7079         * page/JavaScriptProfileNode.cpp:
7080         * page/mac/FrameMac.mm:
7081         * platform/mac/ThreadCheck.mm:
7082         * xml/XMLHttpRequest.cpp:
7083
7084 2008-07-02  Simon Hausmann  <hausmann@webkit.org>
7085
7086         Fix the Gtk build.
7087
7088         * plugins/gtk/PluginViewGtk.cpp: Adapt to JSLock API changes.
7089         (WebCore::PluginView::paint):
7090         (WebCore::PluginView::handleKeyboardEvent):
7091         (WebCore::PluginView::handleMouseEvent):
7092         (WebCore::PluginView::setNPWindowRect):
7093         (WebCore::PluginView::stop):
7094         (WebCore::PluginView::init):
7095
7096 2008-07-02  Simon Hausmann  <hausmann@webkit.org>
7097
7098         Build fixes.
7099
7100         * WebCore.pro: Added plugins/PluginMainThreadScheduler.cpp to the
7101         build.
7102         * bridge/qt/qt_instance.cpp: Adjust to JSLock API change.
7103         * bridge/qt/qt_runtime.cpp: Ditto.
7104         (KJS::Bindings::convertValueToQVariant):
7105         (KJS::Bindings::convertQVariantToValue):
7106         (KJS::Bindings::QtRuntimeMetaMethod::call):
7107         (KJS::Bindings::QtRuntimeConnectionMethod::call):
7108         (KJS::Bindings::QtConnectionObject::execute):
7109         * page/JavaScriptProfileNode.cpp: Inlude kjs/JSValue.h instead of
7110         JavaScriptCore/JSValue.h.
7111         * plugins/qt/PluginViewQt.cpp: Adjust to JSLock API changes.
7112         (WebCore::PluginView::setNPWindowRect): Ditto.
7113         (WebCore::PluginView::stop): Ditto.
7114         (WebCore::PluginView::init): Ditto.
7115
7116 2008-07-02  Alexey Proskuryakov  <ap@webkit.org>
7117
7118         Build fix.
7119
7120         * plugins/PluginView.cpp:
7121         (WebCore::PluginView::start):
7122         (WebCore::getString):
7123         (WebCore::PluginView::performRequest):
7124         (WebCore::PluginView::bindingInstance):
7125         * plugins/win/PluginViewWin.cpp:
7126         (WebCore::PluginView::dispatchNPEvent):
7127         (WebCore::PluginView::setNPWindowRect):
7128         (WebCore::PluginView::stop):
7129         Pass false to JSLock and JSLock::DropAllLocks constructors.
7130
7131 2008-07-01  Oliver Hunt  <oliver@apple.com>
7132
7133         Reviewed by Geoff Garen.
7134
7135         <rdar://problem/5974306> CanvasRenderingContext2D becomes invalid when source canvas element is collected
7136
7137         In order to fix this we now make the rendering context and the canvas element
7138         share the same reference count, ensuring that references to the rendering
7139         context will force the canvas element to remain live as well.
7140
7141         Test: fast/canvas/canvas-longlived-context.html
7142
7143         * html/CanvasRenderingContext2D.cpp:
7144         (WebCore::CanvasRenderingContext2D::clearPathForDashboardBackwardCompatibilityMode):
7145         (WebCore::CanvasRenderingContext2D::createImageData):
7146         (WebCore::CanvasRenderingContext2D::getImageData):
7147         (WebCore::CanvasRenderingContext2D::putImageData):
7148         * html/CanvasRenderingContext2D.h:
7149         (WebCore::CanvasRenderingContext2D::create):
7150         * html/HTMLCanvasElement.cpp:
7151         (WebCore::HTMLCanvasElement::getContext):
7152         * html/HTMLCanvasElement.h:
7153
7154 2008-07-01  Alexey Proskuryakov  <ap@webkit.org>
7155
7156         Reviewed by Darin.
7157
7158         Disable JSLock for per-thread contexts.
7159
7160         * bridge/runtime_root.cpp:
7161         (KJS::Bindings::RootObject::invalidate):
7162         (KJS::Bindings::RootObject::gcProtect):
7163         (KJS::Bindings::RootObject::gcUnprotect):
7164         Don't lock while calling gcProtect/gcUnprotect, which now has its own implicit lock.
7165
7166         * storage/Database.cpp: (WebCore::Database::Database): Call Heap::setGCProtectNeedsLocking
7167         to indicate that protected value list can be concurrently accessed from multiple threads now.
7168
7169         * xml/XMLHttpRequest.cpp:
7170         (WebCore::XMLHttpRequest::loadRequestSynchronously): There is no need to drop the locks here,
7171         as fake locks cannot deadlock, and there is no danger that someone will try to take a real
7172         JSLock on the main thread while we are waiting for response.
7173         (WebCore::XMLHttpRequest::loadRequestAsynchronously): There is no need to explicitly lock
7174         around gcProtect/gcUnprotect now.
7175         (WebCore::XMLHttpRequest::dropProtection): Access heap directly, rather than via
7176         JSGlobalData::threadInstance().
7177
7178         * bindings/js/GCController.cpp:
7179         (WebCore::collect):
7180         (WebCore::GCController::gcTimerFired):
7181         (WebCore::GCController::garbageCollectNow):
7182         (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):
7183         * bindings/js/JSCustomSQLStatementCallback.cpp:
7184         (WebCore::JSCustomSQLStatementCallback::handleEvent):
7185         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
7186         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
7187         * bindings/js/JSCustomSQLTransactionCallback.cpp:
7188         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
7189         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
7190         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
7191         * bindings/js/JSCustomVoidCallback.cpp:
7192         (WebCore::JSCustomVoidCallback::handleEvent):
7193         * bindings/js/JSCustomXPathNSResolver.cpp:
7194         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
7195         * bindings/js/JSDOMWindowBase.cpp:
7196         (WebCore::DOMWindowTimer::~DOMWindowTimer):
7197         (WebCore::JSDOMWindowBase::clear):
7198         (WebCore::JSDOMWindowBase::timerFired):
7199         * bindings/js/JSEventCustom.cpp:
7200         (WebCore::toJS):
7201         * bindings/js/JSEventListener.cpp:
7202         (WebCore::JSAbstractEventListener::handleEvent):
7203         (WebCore::JSLazyEventListener::parseCode):
7204         * bindings/js/JSNodeFilterCondition.cpp:
7205         (WebCore::JSNodeFilterCondition::acceptNode):
7206         * bindings/js/ScheduledAction.cpp:
7207         (WebCore::ScheduledAction::execute):
7208         * bindings/js/ScriptController.cpp:
7209         (WebCore::ScriptController::evaluate):
7210         (WebCore::ScriptController::clear):
7211         (WebCore::ScriptController::createHTMLEventHandler):
7212         (WebCore::ScriptController::createSVGEventHandler):
7213         (WebCore::ScriptController::initScript):
7214         (WebCore::ScriptController::updateDocument):
7215         * bindings/objc/WebScriptObject.mm:
7216         (-[WebScriptObject callWebScriptMethod:withArguments:]):
7217         (-[WebScriptObject evaluateWebScript:]):
7218         (-[WebScriptObject setValue:forKey:]):
7219         (-[WebScriptObject valueForKey:]):
7220         (-[WebScriptObject removeWebScriptKey:]):
7221         (-[WebScriptObject stringRepresentation]):
7222         (-[WebScriptObject webScriptValueAtIndex:]):
7223         (-[WebScriptObject setWebScriptValueAtIndex:value:]):
7224         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
7225         * bridge/NP_jsobject.cpp:
7226         (_NPN_InvokeDefault):
7227         (_NPN_Invoke):
7228         (_NPN_Evaluate):
7229         (_NPN_GetProperty):
7230         (_NPN_SetProperty):
7231         (_NPN_RemoveProperty):
7232         (_NPN_HasProperty):
7233         (_NPN_HasMethod):
7234         (_NPN_SetException):
7235         (_NPN_Enumerate):
7236         * bridge/c/c_class.cpp:
7237         (KJS::Bindings::CClass::~CClass):
7238         (KJS::Bindings::CClass::methodsNamed):
7239         (KJS::Bindings::CClass::fieldNamed):
7240         * bridge/c/c_instance.cpp:
7241         (KJS::Bindings::CInstance::invokeMethod):
7242         (KJS::Bindings::CInstance::invokeDefaultMethod):
7243         (KJS::Bindings::CInstance::getPropertyNames):
7244         * bridge/c/c_runtime.cpp:
7245         (KJS::Bindings::CField::valueFromInstance):
7246         (KJS::Bindings::CField::setValueToInstance):
7247         * bridge/c/c_utility.cpp:
7248         (KJS::Bindings::convertValueToNPVariant):
7249         (KJS::Bindings::convertNPVariantToValue):
7250         * bridge/jni/jni_class.cpp:
7251         (JavaClass::JavaClass):
7252         (JavaClass::~JavaClass):
7253         * bridge/jni/jni_instance.cpp:
7254         (JavaInstance::stringValue):
7255         * bridge/jni/jni_jsobject.mm:
7256         (JavaJSObject::call):
7257         (JavaJSObject::eval):
7258         (JavaJSObject::getMember):
7259         (JavaJSObject::setMember):
7260         (JavaJSObject::removeMember):
7261         (JavaJSObject::getSlot):
7262         (JavaJSObject::setSlot):
7263         (JavaJSObject::toString):
7264         (JavaJSObject::convertValueToJObject):
7265         (JavaJSObject::convertJObjectToValue):
7266         * bridge/jni/jni_objc.mm:
7267         (KJS::Bindings::dispatchJNICall):
7268         * bridge/jni/jni_runtime.cpp:
7269         (JavaMethod::signature):
7270         * bridge/jni/jni_runtime.h:
7271         (KJS::Bindings::JavaString::JavaString):
7272         (KJS::Bindings::JavaString::_commonInit):
7273         (KJS::Bindings::JavaString::~JavaString):
7274         (KJS::Bindings::JavaString::UTF8String):
7275         * bridge/jni/jni_utility.cpp:
7276         (KJS::Bindings::convertArrayInstanceToJavaArray):
7277         (KJS::Bindings::convertValueToJValue):
7278         * bridge/npruntime.cpp:
7279         (_NPN_GetStringIdentifier):
7280         * bridge/objc/objc_instance.mm:
7281         (ObjcInstance::moveGlobalExceptionToExecState):
7282         (ObjcInstance::invokeMethod):
7283         (ObjcInstance::invokeDefaultMethod):
7284         (ObjcInstance::setValueOfUndefinedField):
7285         (ObjcInstance::getValueOfUndefinedField):
7286         * bridge/objc/objc_runtime.mm:
7287         (ObjcField::valueFromInstance):
7288         (ObjcField::setValueToInstance):
7289         * bridge/objc/objc_utility.mm:
7290         (KJS::Bindings::convertValueToObjcValue):
7291         (KJS::Bindings::convertNSStringToString):
7292         (KJS::Bindings::convertObjcValueToValue):
7293         * bridge/runtime.cpp:
7294         (KJS::Bindings::Instance::createRuntimeObject):
7295         * dom/Document.cpp:
7296         (WebCore::Document::~Document):
7297         * dom/Node.cpp:
7298         (WebCore::Node::setDocument):
7299         * history/CachedPage.cpp:
7300         (WebCore::CachedPage::CachedPage):
7301         (WebCore::CachedPage::restore):
7302         (WebCore::CachedPage::clear):
7303         * html/HTMLPlugInElement.cpp:
7304         (WebCore::HTMLPlugInElement::createNPObject):
7305         * loader/FrameLoader.cpp:
7306         (WebCore::getString):
7307         * page/Frame.cpp:
7308         (WebCore::Frame::bindingRootObject):
7309         (WebCore::Frame::windowScriptNPObject):
7310         (WebCore::Frame::clearScriptObjects):
7311         * page/InspectorController.cpp:
7312         (WebCore::jsStringRef):
7313         (WebCore::ConsoleMessage::ConsoleMessage):
7314         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
7315         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
7316         (WebCore::getResourceDocumentNode):
7317         (WebCore::search):
7318         (WebCore::inspectedWindow):
7319         (WebCore::wrapCallback):
7320         (WebCore::currentCallFrame):
7321         (WebCore::profiles):
7322         (WebCore::InspectorController::focusNode):
7323         (WebCore::InspectorController::addDatabaseScriptResource):
7324         (WebCore::InspectorController::addScriptProfile):
7325         * page/JavaScriptCallFrame.cpp:
7326         (WebCore::JavaScriptCallFrame::evaluate):
7327         * page/JavaScriptProfileNode.cpp:
7328         (WebCore::getTotalTime):
7329         (WebCore::getSelfTime):
7330         (WebCore::getTotalPercent):
7331         (WebCore::getSelfPercent):
7332         (WebCore::getNumberOfCalls):
7333         (WebCore::getChildren):
7334         (WebCore::getVisible):
7335         * page/mac/FrameMac.mm:
7336         (WebCore::Frame::windowScriptObject):
7337         Pass a parameter (always false) to JSLock and JSLock::DropAllLocks to indicate that WebCore
7338         doesn't need locking. In the future, it may be possible to remove some of these if we
7339         establish that this won't make JSC assertions fail (and that we don't want to add such
7340         assertions either).
7341         Added includes that are now needed.
7342
7343 2008-07-01  Dan Bernstein  <mitz@apple.com>
7344
7345         Reviewed by Oliver Hunt.
7346
7347         - fix a CSSParserValueList leak seen on the build bot
7348
7349         * css/CSSParser.cpp:
7350         (WebCore::BorderImageParseContext::commitBorderImage):
7351
7352 2008-07-01  Alex Mathews  <possessedpenguinbob@gmail.com>
7353
7354         Reviewed by Oliver Hunt.
7355
7356         Prep for more Filter class name changes. Added the first few files for
7357         the new Filter architecture to come.
7358
7359         * WebCore.xcodeproj/project.pbxproj:
7360         * svg/Filter.cpp: Added.
7361         (WebCore::Filter::Filter):
7362         (WebCore::Filter::create):
7363         * svg/Filter.h: Added.
7364         * svg/FilterBuilder.h: Added.
7365         (WebCore::FilterBuilder::add):
7366         (WebCore::FilterBuilder::getEffectById):
7367         (WebCore::FilterBuilder::filter):
7368         * svg/FilterEffect.cpp: Added.
7369         (WebCore::FilterEffect::FilterEffect):
7370         (WebCore::FilterEffect::~FilterEffect):
7371         * svg/FilterEffect.h: Added.
7372
7373 2008-07-01  Christian Dywan  <christian@twotoasts.de>
7374
7375         Gtk+ build fix.
7376
7377         * GNUmakefile.am: add WebCore/plugins/PluginMainThreadScheduler.cpp
7378
7379 2008-07-01  Anders Carlsson  <andersca@apple.com>
7380
7381         Reviewed by Darin.
7382
7383         Add PluginMainThreadScheduler.{cpp|h} to build.
7384         
7385         * WebCore.base.exp:
7386         * WebCore.xcodeproj/project.pbxproj:
7387         * plugins/PluginMainThreadScheduler.cpp:
7388
7389 2008-07-01  Dan Bernstein  <mitz@apple.com>
7390
7391         Reviewed by Darin Adler.
7392
7393         - move the method to set the base writing direction from Frame to Editor
7394
7395         * WebCore.base.exp: Updated.
7396         * editing/Editor.cpp:
7397         (WebCore::Editor::setBaseWritingDirection): Changed the parameter to a
7398         WritingDirection enum value and added the special behavior when the
7399         focused node is a text field or a text area.
7400         * editing/Editor.h:
7401         * page/ContextMenuController.cpp:
7402         (WebCore::ContextMenuController::contextMenuItemSelected): Changed back
7403         to call the Editor method.
7404         * page/Frame.cpp: Removed setSelectionBaseWritingDirection().
7405         * page/Frame.h:
7406
7407 2008-07-01  Darin Adler  <darin@apple.com>
7408
7409         Reviewed by Oliver.
7410
7411         - slight tweak of the setHash fix
7412
7413         * bindings/js/JSLocationCustom.cpp:
7414         (WebCore::JSLocation::setHash): Use oldRef instead of recomputing url.ref().
7415
7416 2008-07-01  Dan Bernstein  <mitz@apple.com>
7417
7418         Reviewed by Anders Carlsson.
7419
7420         - Mac release build fix
7421
7422         * page/Console.cpp:
7423
7424 2008-07-01  Dan Bernstein  <mitz@apple.com>
7425
7426         Reviewed by Anders Carlsson.
7427
7428         - fix <rdar://problem/6045896> REGRESSION: Leak in WebCore::StringImpl::create
7429
7430         * css/CSSPrimitiveValue.cpp:
7431         (WebCore::CSSPrimitiveValue::cleanup):
7432
7433 2008-07-01  Anders Carlsson  <andersca@apple.com>
7434
7435         Reviewed by Jon.
7436
7437         Don't add the Mozilla user agent quirk for Flash 10.
7438         
7439         * plugins/win/PluginPackageWin.cpp:
7440         (WebCore::PluginPackage::isPluginBlacklisted):
7441         (WebCore::PluginPackage::determineQuirks):
7442
7443 2008-07-01  David Kilzer  <ddkilzer@apple.com>
7444
7445         Move data: URL parsing code in HTMLObjectElement to KURL
7446
7447         Reviewed by Ada and Darin.
7448
7449         No test cases added since there is no change in behavior.
7450
7451         * html/HTMLObjectElement.cpp:
7452         (WebCore::HTMLObjectElement::isImageType): Extracted data: URL
7453         parsing code into WebCore::mimeTypeFromDataURL() in KURL.cpp.
7454         * platform/KURL.cpp:
7455         (WebCore::mimeTypeFromDataURL): Added.
7456         * platform/KURL.h:
7457         (WebCore::mimeTypeFromDataURL): Added.
7458
7459 2008-07-01  Dan Bernstein  <mitz@apple.com>
7460
7461         Reviewed by Dave Hyatt.
7462
7463         - fix <rdar://problem/6045890> REGRESSION: Leak in WebCore::CSSParser::createFloatingValueList()
7464
7465         * css/CSSParser.cpp:
7466         (WebCore::CSSParser::addUnresolvedProperty):
7467
7468 2008-07-01  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
7469
7470         Reviewed by Brady Eidson.
7471
7472         Bug 19822: REGRESSION (r30243): setting location.hash to "#" causes a reload
7473         <https://bugs.webkit.org/show_bug.cgi?id=19822>
7474
7475         Change JSLocation::setHash() to not schedule navigation in the case
7476         where the old fragment is the null String and the new fragment is an
7477         empty String.
7478
7479         * bindings/js/JSLocationCustom.cpp:
7480         (WebCore::JSLocation::setHash):
7481
7482 2008-06-30  Anders Carlsson  <andersca@apple.com>
7483
7484         Reviewed by Adam.
7485
7486         Add PluginMainThreadScheduler, a singleton which is responsible for scheduling plug-in 
7487         callbacks on the main thread. Use this to implement NPN_PluginThreadAsyncCall on Windows.
7488         
7489         * WebCore.vcproj/WebCore.vcproj:
7490         Add PluginMainThreadScheduler.{cpp|h}
7491         
7492         * plugins/PluginMainThreadScheduler.cpp: Added.
7493         * plugins/PluginMainThreadScheduler.h: Added.
7494
7495         * plugins/PluginView.cpp:
7496         (WebCore::PluginView::start):
7497         Register with the thread scheduler.
7498         
7499         * plugins/npapi.cpp:
7500         (NPN_PluginThreadAsyncCall):
7501         Call the thread scheduler.
7502         
7503         * plugins/win/PluginPackageWin.cpp:
7504         (WebCore::PluginPackage::load):
7505         Initialize the NPN_PluginThreadAsyncCall callback.
7506         
7507         * plugins/win/PluginViewWin.cpp:
7508         (WebCore::PluginView::stop):
7509         Unregister with the scheduler. This makes sure that we won't try to deliver callbacks
7510         after the plug-in has been destroyed.
7511
7512 2008-07-01  Adam Roben  <aroben@apple.com>
7513
7514         Roll out r34913, as it broke the Windows build due to bad casting
7515
7516         r34913 introduced code that assigned pointers-to-member from a derived
7517         class into a base class pointer-to-member type (e.g., assigned a void
7518         (SVGUseElement::*)() into a void (SVGElement::*)()). This is bad
7519         because it could allow us to call SVGUseElement member functions on a
7520         different SVGElement-derived class. MSVC rightly flagged this as an
7521         error.
7522
7523         Rubberstamped by Anders Carlsson.
7524
7525 2008-07-01  Darin Adler  <darin@apple.com>
7526
7527         - fix build
7528
7529         * bindings/scripts/CodeGeneratorJS.pm: Fix warnings that indicate this was
7530         not working propertly.
7531
7532 2008-07-01  Dan Bernstein  <mitz@apple.com>
7533
7534         Reviewed by Darin Adler.
7535
7536         - fix <rdar://problem/6045893> REGRESSION: Leak in WebCore::HTMLCanvasElement::createPlatformImage() const
7537
7538         * html/CanvasRenderingContext2D.cpp:
7539         (WebCore::CanvasRenderingContext2D::createPattern):
7540
7541 2008-07-01  Sam Weinig  <sam@webkit.org>
7542
7543         Reviewed by Darin Adler.
7544
7545         Split JSCell and JSNumberCell class declarations out of JSValue.h
7546
7547         * ForwardingHeaders/kjs/JSNumberCell.h: Added.
7548         * bindings/scripts/CodeGeneratorJS.pm:
7549         * bridge/c/c_instance.cpp:
7550
7551 2008-07-01  chris fleizach  <cfleizach@apple.com>
7552
7553         Reviewed by Beth Dakin
7554
7555         <rdar://problem/6041580> REGRESSION: AX: AXSize of radio buttons is 0,0
7556
7557         Test: accessibility/radio-button-checkbox-size.html
7558
7559         * page/AccessibilityRenderObject.cpp:
7560         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
7561
7562 2008-07-01  Dan Bernstein  <mitz@apple.com>
7563
7564         Reviewed by Antti Koivisto.
7565
7566         - fix SVG pointer-events layout test failures
7567
7568         * css/SVGCSSParser.cpp:
7569         (WebCore::CSSParser::parseSVGValue):
7570
7571 2008-07-01  Nikolas Zimmermann  <zimmermann@kde.org>
7572
7573         Reviewed by Antti.
7574
7575         Fixes: https://bugs.webkit.org/show_bug.cgi?id=19841
7576         Fix two small problems in the gradient & pattern code.
7577
7578         Added 12 new layout tests: svg/dynamic-updates/SVGLinearGradientElement*.html
7579
7580         * svg/SVGLinearGradientElement.cpp:
7581         (WebCore::SVGLinearGradientElement::collectGradientProperties): Compare against already computed bounding box information, instead of querying attributes.
7582         * svg/SVGPatternElement.cpp:
7583         (WebCore::SVGPatternElement::collectPatternProperties): Ditto.
7584         * svg/SVGRadialGradientElement.cpp:
7585         (WebCore::SVGRadialGradientElement::collectGradientProperties): Ditto.
7586         (WebCore::SVGRadialGradientElement::svgAttributeChanged): 'fxAttr' updating wasn't handled. Copy'n'paste error.
7587
7588 2008-07-01  Simon Hausmann  <hausmann@webkit.org>
7589
7590         Fix the build, include SVGTransformList.h instead of
7591         SVGTransformlist.h
7592
7593         * svg/SVGGradientElement.h:
7594
7595 2008-07-01  Alexey Proskuryakov  <ap@webkit.org>
7596
7597         Reviewed by Antti.
7598
7599         <rdar://problem/6033080> REGRESSION: Some CH characters display as garbage on webpage for
7600         the first time.
7601
7602         Test: fast/encoding/preload-encoding.html
7603
7604         * html/PreloadScanner.cpp:
7605         (WebCore::PreloadScanner::tokenize): Reset charset when entering a tag, not just when
7606         starting a load.
7607
7608 2008-07-01  Nikolas Zimmermann  <zimmermann@kde.org>
7609
7610         Reviewed by Antti & Eric.
7611
7612         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
7613
7614         SVG Errata states: "All SVG DOM objects that directly correspond to an
7615         attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
7616         means that any changes made to the attribute are immediately reflected in the
7617         corresponding SVG DOM object." (see linked URL on bug report)
7618
7619         Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
7620         element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).
7621
7622         Add a new synchronization layer to handle SVG DOM -> XML changes.
7623
7624         Global macro change #1: ANIMATED_PROPERTY_FORWARD_DECLARATIONS contains the class name where it's defined as first parameter.
7625         Global macro change #2: Add ANIMATED_PROPERTY_START_DECLARATIONS to all direct base-classes.
7626         Global macro change #3: Rename ANIMATED_PROPERTY_DEFINITIONS to ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED for refcounted types (ie. SVGTransformList*).
7627
7628         Added test: svg/custom/svg-xml-dom-sync.html
7629         Fixed test: svg/hixie/dynamic/005-broken.xml (renamed to 005.xml)
7630
7631         * dom/Element.cpp:
7632         (WebCore::Element::Element): Initialize the two new bits.
7633         (WebCore::Element::attributes): Add hooks to call into SVG attribute synchronization code, wrapped in ENABLE(SVG) blocks.
7634         (WebCore::Element::getAttribute): Ditto.
7635         (WebCore::Element::hasAttributes): Ditto.
7636         * dom/Element.h: Add two bits: m_synchronizedSVGAttributes/m_synchronizingSVGAttribute, to track synchronization status.
7637         (WebCore::Element::updateAnimatedSVGAttribute): New virtual function, handling the synronication, similar to updateStyleAttribute.
7638         * dom/NamedAttrMap.h: Make addAttribute/removeAttribute protected, from use within the ANIMATED_* macros.
7639         * svg/SVGAElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7640         (WebCore::SVGAElement::contextElement): Return non-const value.
7641         * svg/SVGAltGlyphElement.h:
7642         (WebCore::SVGAltGlyphElement::contextElement): Ditto.
7643         * svg/SVGAnimateElement.h:
7644         (WebCore::SVGAnimateElement::contextElement): Ditto.
7645         * svg/SVGAnimateMotionElement.h:
7646         (WebCore::SVGAnimateMotionElement::contextElement): Ditto.
7647         * svg/SVGAnimateTransformElement.h:
7648         (WebCore::SVGAnimateTransformElement::contextElement): Ditto.
7649         * svg/SVGAnimatedTemplate.h: Add toString() conversion to all SVGAnimated* classes
7650         (WebCore::SVGAnimatedTemplate::toString):
7651         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
7652         (WebCore::lookupOrCreateWrapper):
7653         (WebCore::SVGAnimatedAngle::SVGAnimatedAngle): 
7654         (WebCore::SVGAnimatedAngle::toString):
7655         (WebCore::SVGAnimatedBoolean::SVGAnimatedBoolean):
7656         (WebCore::SVGAnimatedBoolean::toString):
7657         (WebCore::SVGAnimatedEnumeration::SVGAnimatedEnumeration):
7658         (WebCore::SVGAnimatedEnumeration::toString):
7659         (WebCore::SVGAnimatedInteger::SVGAnimatedInteger):
7660         (WebCore::SVGAnimatedInteger::toString):
7661         (WebCore::SVGAnimatedLength::SVGAnimatedLength):
7662         (WebCore::SVGAnimatedLength::toString):
7663         (WebCore::SVGAnimatedLengthList::SVGAnimatedLengthList):
7664         (WebCore::SVGAnimatedLengthList::toString):
7665         (WebCore::SVGAnimatedNumber::SVGAnimatedNumber):
7666         (WebCore::SVGAnimatedNumber::toString):
7667         (WebCore::SVGAnimatedNumberList::SVGAnimatedNumberList):
7668         (WebCore::SVGAnimatedNumberList::toString):
7669         (WebCore::SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio):
7670         (WebCore::SVGAnimatedPreserveAspectRatio::toString):
7671         (WebCore::SVGAnimatedRect::SVGAnimatedRect):
7672         (WebCore::SVGAnimatedRect::toString):
7673         (WebCore::SVGAnimatedString::SVGAnimatedString):
7674         (WebCore::SVGAnimatedString::toString):
7675         (WebCore::SVGAnimatedTransformList::SVGAnimatedTransformList):
7676         (WebCore::SVGAnimatedTransformList::toString):
7677         (WebCore::SVGAnimatedType::SVGAnimatedType):
7678         * svg/SVGAnimationElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7679         * svg/SVGCircleElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7680         (WebCore::SVGCircleElement::contextElement): Return non-const value.
7681         * svg/SVGClipPathElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7682         (WebCore::SVGClipPathElement::contextElement): Return non-const value.
7683         * svg/SVGComponentTransferFunctionElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7684         * svg/SVGComponentTransferFunctionElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this class is a base class.
7685         * svg/SVGCursorElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7686         (WebCore::SVGCursorElement::SVGCursorElement):
7687         * svg/SVGCursorElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS. Add ANIMATED_PROPERTY_START_DECLARATIONS.
7688         (WebCore::SVGCursorElement::contextElement): Return non-const value.
7689         * svg/SVGDefsElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7690         (WebCore::SVGDefsElement::contextElement): Return non-const value.
7691         * svg/SVGElement.cpp:
7692         (WebCore::SVGElement::updateAnimatedSVGAttribute): Override virtual function from Element, to handle SVG<->XML DOM synchronization.
7693         (WebCore::SVGElement::setSynchronizedSVGAttributes):
7694         * svg/SVGElement.h: Add helper class "StoredTypeWithDirtyFlag".
7695         (StoredTypeWithDirtyFlag::StoredTypeWithDirtyFlag): Tracks a type and a flag indicating that SVG<->XML DOM synchronization has to be done.
7696         (StoredTypeWithDirtyFlag::operator=):
7697         (StoredTypeWithDirtyFlag::operator==):
7698         (StoredTypeWithDirtyFlag::operator!=):
7699         (StoredTypeWithDirtyFlag::operator StoredType):
7700         (WebCore::SVGElement::invokeSVGPropertySynchronizer): New set of functions taking care of invoking the update handlers.
7701         (WebCore::SVGElement::invokeAllSVGPropertySynchronizers): Ditto.
7702         (WebCore::SVGElement::addSVGPropertySynchronizer): Ditto.
7703         * svg/SVGEllipseElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7704         (WebCore::SVGEllipseElement::SVGEllipseElement):
7705         * svg/SVGEllipseElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7706         (WebCore::SVGEllipseElement::contextElement): Return non-const value.
7707         * svg/SVGExternalResourcesRequired.h: Change contextElement() to return a non-const value.
7708         * svg/SVGFEBlendElement.h:
7709         (WebCore::SVGFEBlendElement::contextElement): Return non-const value.
7710         * svg/SVGFEColorMatrixElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7711         * svg/SVGFEColorMatrixElement.h:
7712         (WebCore::SVGFEColorMatrixElement::contextElement): Return non-const value.
7713         * svg/SVGFEComponentTransferElement.h:
7714         (WebCore::SVGFEComponentTransferElement::contextElement): Return non-const value.
7715         * svg/SVGFECompositeElement.h:
7716         (WebCore::SVGFECompositeElement::contextElement): Return non-const value.
7717         * svg/SVGFEDiffuseLightingElement.h:
7718         (WebCore::SVGFEDiffuseLightingElement::contextElement): Return non-const value.
7719         * svg/SVGFEDisplacementMapElement.h:
7720         (WebCore::SVGFEDisplacementMapElement::contextElement): Return non-const value.
7721         * svg/SVGFEFloodElement.h:
7722         (WebCore::SVGFEFloodElement::contextElement): Return non-const value.
7723         * svg/SVGFEGaussianBlurElement.h:
7724         (WebCore::SVGFEGaussianBlurElement::contextElement): Return non-const value.
7725         * svg/SVGFEImageElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7726         * svg/SVGFEImageElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7727         (WebCore::SVGFEImageElement::contextElement): Return non-const value.
7728         * svg/SVGFELightElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this is a base class.
7729         * svg/SVGFEMergeElement.h:
7730         (WebCore::SVGFEMergeElement::contextElement): Return non-const value.
7731         * svg/SVGFEMergeNodeElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this is a base class.
7732         (WebCore::SVGFEMergeNodeElement::contextElement): Return non-const value.
7733         * svg/SVGFEOffsetElement.h:
7734         (WebCore::SVGFEOffsetElement::contextElement): Return non-const value.
7735         * svg/SVGFESpecularLightingElement.h:
7736         (WebCore::SVGFESpecularLightingElement::contextElement): Return non-const value.
7737         * svg/SVGFETileElement.h:
7738         (WebCore::SVGFETileElement::contextElement): Return non-const value.
7739         * svg/SVGFETurbulenceElement.h:
7740         (WebCore::SVGFETurbulenceElement::contextElement): Return non-const value.
7741         * svg/SVGFilterElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7742         (WebCore::SVGFilterElement::SVGFilterElement):
7743         * svg/SVGFilterElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7744         (WebCore::SVGFilterElement::contextElement): Return non-const value.
7745         * svg/SVGFilterPrimitiveStandardAttributes.cpp: Wrap SVGLength objects in SVGLength() statements.
7746         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
7747         * svg/SVGFilterPrimitiveStandardAttributes.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7748         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement): Return non-const value.
7749         * svg/SVGFitToViewBox.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7750         * svg/SVGFitToViewBox.h: Change contextElement() to return a non-const value.
7751         * svg/SVGFontElement.h:
7752         (WebCore::SVGFontElement::contextElement): Return non-const value.
7753         * svg/SVGForeignObjectElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7754         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
7755         * svg/SVGForeignObjectElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7756         (WebCore::SVGForeignObjectElement::contextElement): Return non-const value.
7757         * svg/SVGGElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7758         (WebCore::SVGGElement::contextElement): Return non-const value.
7759         * svg/SVGGradientElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7760         * svg/SVGGradientElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7761         * svg/SVGImageElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change. Wrap SVGLength objects in SVGLength() statements.
7762         (WebCore::SVGImageElement::SVGImageElement):
7763         * svg/SVGImageElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7764         (WebCore::SVGImageElement::contextElement): Return non-const value.
7765         * svg/SVGLengthList.cpp:
7766         (WebCore::SVGLengthList::valueAsString): Add new function converting SVG values to strings.
7767         * svg/SVGLengthList.h:
7768         * svg/SVGLineElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7769         (WebCore::SVGLineElement::SVGLineElement):
7770         * svg/SVGLineElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7771         (WebCore::SVGLineElement::contextElement): Return non-const value.
7772         * svg/SVGLinearGradientElement.cpp:
7773         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement): Wrap SVGLength objects in SVGLength() statements.
7774         (WebCore::SVGLinearGradientElement::collectGradientProperties):
7775         * svg/SVGLinearGradientElement.h:
7776         (WebCore::SVGLinearGradientElement::contextElement): Return non-const value.
7777         * svg/SVGMPathElement.h:
7778         (WebCore::SVGMPathElement::contextElement): Return non-const value.
7779         * svg/SVGMarkerElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change. Wrap SVGLength objects in SVGLength() statements.
7780         (WebCore::SVGMarkerElement::SVGMarkerElement):
7781         * svg/SVGMarkerElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7782         (WebCore::SVGMarkerElement::contextElement): Return non-const value.
7783         * svg/SVGMaskElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7784         (WebCore::SVGMaskElement::SVGMaskElement):
7785         * svg/SVGMaskElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7786         (WebCore::SVGMaskElement::contextElement): Return non-const value.
7787         * svg/SVGNumberList.cpp:
7788         (WebCore::SVGNumberList::valueAsString): Add new function converting SVG values to strings.
7789         * svg/SVGNumberList.h:
7790         * svg/SVGPathElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7791         (WebCore::SVGPathElement::contextElement): Return non-const value.
7792         * svg/SVGPatternElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change. Wrap SVGLength objects in SVGLength() statements.
7793         (WebCore::SVGPatternElement::SVGPatternElement):
7794         (WebCore::SVGPatternElement::collectPatternProperties):
7795         * svg/SVGPatternElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7796         (WebCore::SVGPatternElement::contextElement): Return non-const value.
7797         * svg/SVGPolyElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7798         (WebCore::SVGPolyElement::contextElement): Return non-const value.
7799         * svg/SVGPreserveAspectRatio.cpp:
7800         (WebCore::SVGPreserveAspectRatio::valueAsString): Add new function converting SVG values to strings.
7801         * svg/SVGPreserveAspectRatio.h:
7802         * svg/SVGRadialGradientElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7803         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
7804         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
7805         (WebCore::SVGRadialGradientElement::collectGradientProperties):
7806         * svg/SVGRadialGradientElement.h:
7807         (WebCore::SVGRadialGradientElement::contextElement): Return non-const value.
7808         * svg/SVGRectElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7809         (WebCore::SVGRectElement::SVGRectElement):
7810         * svg/SVGRectElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7811         (WebCore::SVGRectElement::contextElement): Return non-const value.
7812         * svg/SVGSVGElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7813         (WebCore::SVGSVGElement::SVGSVGElement):
7814         (WebCore::SVGSVGElement::currentView): Pass non-const SVGSVGElement* object to SVGViewSpec.
7815         * svg/SVGSVGElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7816         (WebCore::SVGSVGElement::contextElement): Return non-const value.
7817         * svg/SVGScriptElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7818         (WebCore::SVGScriptElement::contextElement): Return non-const value.
7819         * svg/SVGStyledElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this is a base class.
7820         * svg/SVGStyledTransformableElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7821         * svg/SVGStyledTransformableElement.h:
7822         * svg/SVGSwitchElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7823         (WebCore::SVGSwitchElement::contextElement): Return non-const value.
7824         * svg/SVGSymbolElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7825         (WebCore::SVGSymbolElement::contextElement): Return non-const value.
7826         * svg/SVGTRefElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7827         (WebCore::SVGTRefElement::contextElement): Return non-const value.
7828         * svg/SVGTSpanElement.h:
7829         (WebCore::SVGTSpanElement::contextElement): Return non-const value.
7830         * svg/SVGTextContentElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7831         (WebCore::SVGTextContentElement::SVGTextContentElement):
7832         * svg/SVGTextContentElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7833         * svg/SVGTextElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7834         * svg/SVGTextElement.h:
7835         (WebCore::SVGTextElement::contextElement): Return non-const value.
7836         * svg/SVGTextPathElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7837         (WebCore::SVGTextPathElement::SVGTextPathElement):
7838         * svg/SVGTextPathElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7839         (WebCore::SVGTextPathElement::contextElement): Return non-const value.
7840         * svg/SVGTextPositioningElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
7841         * svg/SVGTextPositioningElement.h:
7842         * svg/SVGTransformList.cpp:
7843         (SVGTransformList::valueAsString): Add new function converting SVG values to strings.
7844         * svg/SVGTransformList.h:
7845         * svg/SVGURIReference.h: Change contextElement() to return a non-const value.
7846         * svg/SVGUseElement.cpp: Wrap SVGLength objects in SVGLength() statements.
7847         (WebCore::SVGUseElement::SVGUseElement):
7848         * svg/SVGUseElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7849         (WebCore::SVGUseElement::contextElement): Return non-const value.
7850         * svg/SVGViewElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
7851         (WebCore::SVGViewElement::contextElement): Return non-const value.
7852         * svg/SVGViewSpec.cpp:
7853         (WebCore::SVGViewSpec::SVGViewSpec): Pass non-const context element in constructor.
7854         (WebCore::SVGViewSpec::contextElement): Return non-const value.
7855         * svg/SVGViewSpec.h:
7856
7857 2008-07-01  Alex Mathews  <possessedpenguinbob@gmail.com>
7858
7859         Reviewed by Nikolas Zimmermann.
7860
7861         Class name changes for SVG Light Effect files. The class names that changed :
7862
7863         SVGLightSource -> LightSource
7864         SVGDistantLightSource -> DistantLightSource
7865         SVGPointLightSource -> PointLightSource
7866         SVGSpotLightSource -> SpotLightSource
7867
7868         Every other file that is changed is just propagating the class name changes to
7869         dependent files.
7870
7871         * svg/SVGFEDiffuseLightingElement.cpp:
7872         (WebCore::SVGFEDiffuseLightingElement::updateLights):
7873         * svg/SVGFEDistantLightElement.cpp:
7874         (WebCore::SVGFEDistantLightElement::lightSource):
7875         * svg/SVGFEDistantLightElement.h:
7876         * svg/SVGFELightElement.h:
7877         * svg/SVGFEPointLightElement.cpp:
7878         (WebCore::SVGFEPointLightElement::lightSource):
7879         * svg/SVGFEPointLightElement.h:
7880         * svg/SVGFESpecularLightingElement.cpp:
7881         (WebCore::SVGFESpecularLightingElement::updateLights):
7882         * svg/SVGFESpotLightElement.cpp:
7883         (WebCore::SVGFESpotLightElement::lightSource):
7884         * svg/SVGFESpotLightElement.h:
7885         * svg/graphics/filters/SVGDistantLightSource.h:
7886         (WebCore::DistantLightSource::DistantLightSource):
7887         (WebCore::DistantLightSource::azimuth):
7888         (WebCore::DistantLightSource::elevation):
7889         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
7890         (WebCore::SVGFEDiffuseLighting::lightSource):
7891         (WebCore::SVGFEDiffuseLighting::setLightSource):
7892         * svg/graphics/filters/SVGFEDiffuseLighting.h:
7893         * svg/graphics/filters/SVGFESpecularLighting.cpp:
7894         (WebCore::SVGFESpecularLighting::lightSource):
7895         (WebCore::SVGFESpecularLighting::setLightSource):
7896         * svg/graphics/filters/SVGFESpecularLighting.h:
7897         * svg/graphics/filters/SVGLightSource.cpp:
7898         (WebCore::PointLightSource::externalRepresentation):
7899         (WebCore::SpotLightSource::externalRepresentation):
7900         (WebCore::DistantLightSource::externalRepresentation):
7901         * svg/graphics/filters/SVGLightSource.h:
7902         (WebCore::):
7903         (WebCore::LightSource::LightSource):
7904         (WebCore::LightSource::~LightSource):
7905         (WebCore::LightSource::type):
7906         * svg/graphics/filters/SVGPointLightSource.h:
7907         (WebCore::PointLightSource::PointLightSource):
7908         (WebCore::PointLightSource::position):
7909         * svg/graphics/filters/SVGSpotLightSource.h:
7910         (WebCore::SpotLightSource::SpotLightSource):
7911         (WebCore::SpotLightSource::position):
7912         (WebCore::SpotLightSource::direction):
7913         (WebCore::SpotLightSource::specularExponent):
7914         (WebCore::SpotLightSource::limitingConeAngle):
7915         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
7916         (WebCore::SVGFEDiffuseLighting::getCIFilter):
7917         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
7918         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
7919         (WebCore::getLightVectors):
7920         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
7921         (WebCore::SVGFESpecularLighting::getCIFilter):
7922
7923 2008-07-01  Alp Toker  <alp@nuanti.com>
7924
7925         Rubber-stamped by Holger.
7926
7927         autotools cleanup: move some GTK+-specific sources from libwebcore to
7928         libwebcoregtk.
7929
7930         * GNUmakefile.am:
7931
7932 2008-07-01  Dan Bernstein  <mitz@apple.com>
7933
7934         Reviewed by Oliver Hunt.
7935
7936         - fix the non-SVG build
7937
7938         * css/CSSValueKeywords.in: Added 'all'.
7939         * css/SVGCSSValueKeywords.in: Removed 'all'.
7940
7941 2008-07-01  Simon Hausmann  <hausmann@webkit.org>
7942
7943         Build fix, include DateInstance.h.
7944
7945         * bridge/qt/qt_runtime.cpp:
7946
7947 2008-06-30  Adele Peterson  <adele@apple.com>
7948
7949         Reviewed by Oliver.
7950
7951         Fix for <rdar://problem/5882050> clicking in hidden close box area of empty searchfield causes mousedown to stop firing
7952
7953         Test: fast/forms/search-hidden-cancel-button.html
7954
7955         * html/HTMLTextFieldInnerElement.cpp: (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
7956           Don't start capturing mouse events if the cancel button isn't visible.  This was causing the button to start but never stop capturing mouse events.
7957
7958 2008-06-30  Sam Weinig  <sam@webkit.org>
7959
7960         Rubber-stamped by Darin Adler.
7961
7962         Split InternalFunction into its own header file.
7963
7964         * ForwardingHeaders/kjs/InternalFunction.h: Added.
7965         * bridge/runtime_method.h:
7966
7967 2008-06-30  Adele Peterson  <adele@apple.com>
7968
7969         Reviewed by Anders.
7970
7971         Fix for <rdar://problem/5301322> REGRESSION: Select All selects the whole page when used in readonly textareas
7972
7973         Test: editing/selection/select-all-textarea.html
7974
7975         * dom/Node.cpp:
7976         (WebCore::Node::shadowAncestorNode): Break out code to find the root of the shadow tree into a new helper function.
7977         (WebCore::Node::shadowTreeRootNode): Added helper function.
7978         * dom/Node.h:
7979         * dom/Range.cpp: (WebCore::Range::shadowTreeRootNode): Added helper function.
7980         * dom/Range.h:
7981         * editing/Selection.cpp: (WebCore::Selection::shadowTreeRootNode): ditto.
7982         * editing/Selection.h:
7983         * editing/SelectionController.h: (WebCore::SelectionController::shadowTreeRootNode): ditto.
7984         * editing/SelectionController.cpp: (WebCore::SelectionController::selectAll):
7985         If the selection is in a shadow tree, only select the contents of that shadow tree, not the whole document.
7986         * page/Frame.cpp:
7987         (WebCore::Frame::findString): Use the new shadowTreeRootNode helper functions.
7988         (WebCore::Frame::markAllMatchesForText): ditto.
7989
7990 2008-06-30  chris fleizach  <cfleizach@apple.com>
7991
7992         Reviewed by Beth Dakin
7993
7994         <rdar://problem/4180780> Add attribute to get all the radio buttons in a set
7995
7996         * page/AccessibilityObject.cpp:
7997         (WebCore::AccessibilityObject::linkedUIElements):
7998         * page/AccessibilityObject.h:
7999         * page/AccessibilityRenderObject.cpp:
8000         (WebCore::AccessibilityRenderObject::internalLinkElement):
8001         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
8002         (WebCore::AccessibilityRenderObject::linkedUIElements):
8003         * page/AccessibilityRenderObject.h:
8004         * page/mac/AccessibilityObjectWrapper.mm:
8005         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
8006
8007 2008-06-30  Dan Bernstein  <mitz@apple.com>
8008
8009         Reviewed by Adele Peterson.
8010
8011         - WebCore part of <rdar://problem/3881497> Writing direction context menu item has no effect on text typed in Safari
8012
8013         * WebCore.base.exp: Removed Editor::setBaseWritingDirection() and added
8014         Frame::setSelectionBaseWritingDirection().
8015         * page/ContextMenuController.cpp:
8016         (WebCore::ContextMenuController::contextMenuItemSelected): Changed to
8017         call Frame::setSelectionBaseWritingDirection().
8018         * page/Frame.cpp:
8019         (WebCore::Frame::setSelectionBaseWritingDirection): Added. If the
8020         focused node is a text field or text area, changes its 'dir' attribute.
8021         This is what IE does when the user changes the writing direction in a
8022         text control. Otherwise, calls down to Editor::setBaseWritingDirection().
8023         * page/Frame.h:
8024
8025 2008-06-30  David Kilzer  <ddkilzer@apple.com>
8026
8027         Improve HTMLObjectElement data encapsulation
8028
8029         Reviewed by Dave Hyatt.
8030
8031         HTMLObjectElement has some public member variables that should be
8032         private with accessor methods.
8033
8034         No test cases added since there is no change in behavior.
8035
8036         * html/HTMLObjectElement.cpp:
8037         (WebCore::HTMLObjectElement::HTMLObjectElement): Reorder
8038         initialization of member variables to match defined order in header.
8039         * html/HTMLObjectElement.h:
8040         (WebCore::HTMLObjectElement::classId): Added.
8041         (WebCore::HTMLObjectElement::url): Added.
8042         (WebCore::HTMLObjectElement::serviceType): Added.
8043         * rendering/RenderPartObject.cpp:
8044         (WebCore::RenderPartObject::updateWidget): Use new accessor methods
8045         in HTMLObjectElement now that its member variables are private.
8046
8047 2008-06-30  Dan Bernstein  <mitz@apple.com>
8048
8049         Reviewed by Anders Carlsson.
8050
8051         - remove unused member variable
8052
8053         * page/Page.h: Removed Page::m_focusedNode.
8054
8055 2008-06-30  Anders Carlsson  <andersca@apple.com>
8056
8057         Reviewed by Adam.
8058
8059         <rdar://problem/6014209>
8060         Crash when loading manifest from application cache fails
8061         
8062         There is no need to set any handles to 0 after calling cacheUpdateFailed(), since
8063         that is done inside the function. Furthermore, after calling cacheUpdateFailed() the cache
8064         group could be deleted causing us to access freed memory and then crashing.
8065         
8066         * loader/appcache/ApplicationCacheGroup.cpp:
8067         (WebCore::ApplicationCacheGroup::didReceiveResponse):
8068         (WebCore::ApplicationCacheGroup::didFail):
8069         (WebCore::ApplicationCacheGroup::didFailToLoadManifest):
8070
8071 2008-06-30  Adam Roben  <aroben@apple.com>
8072
8073         Fix <rdar://5954749> Assertion failure due to HashTable's use of
8074         operator&
8075
8076         Reviewed by Ada Chan.
8077
8078         * bindings/js/JSSVGPODTypeWrapper.h:
8079         * dom/Document.h:
8080         * dom/StyledElement.cpp:
8081         * platform/graphics/FontCache.cpp:
8082         * platform/graphics/IntSizeHash.h:
8083         (WTF::):
8084         * platform/text/StringHash.h:
8085         * platform/win/COMPtr.h:
8086         * svg/SVGAnimatedTemplate.h:
8087         Updated all custom HashTraits for HashTable changes.
8088
8089 2008-06-30  Simon Hausmann  <hausmann@webkit.org>
8090
8091         Fix the Qt build.
8092
8093         Added missing includes and changed getItem array calls to use get()
8094         instead.
8095
8096         * bridge/qt/qt_runtime.cpp:
8097         (KJS::Bindings::convertValueToQVariant):
8098
8099 2008-06-29  David Smith  <catfish.man@gmail.com>
8100
8101         Rubberstamped by Sam Weinig.
8102
8103         Change a redundant node->isElement() check to an ASSERT for a 1.3% speedup on getElementsByTagName.
8104
8105         * dom/TagNodeList.cpp:
8106         (WebCore::TagNodeList::nodeMatches):
8107
8108 2008-06-29  Dan Bernstein  <mitz@apple.com>
8109
8110         Reviewed by Darin Adler.
8111
8112         - fix SVG layout test regressions
8113
8114         * css/CSSFontSelector.cpp:
8115         (WebCore::CSSFontSelector::addFontFaceRule): Made this function work
8116         again with primitive values, because the @font-face rules SVG fonts
8117         create still use a single primitive value rather than a value list.
8118
8119 2008-06-29  Dan Bernstein  <mitz@apple.com>
8120
8121         Reviewed by Sam Weinig.
8122
8123         - fix <rdar://problem/5734440> Specifying a font-weight for @font-face not working
8124
8125         Tests: fast/css/font-face-descriptor-multiple-values-parsing.html
8126                fast/css/font-face-descriptor-multiple-values.html
8127
8128         * css/CSSFontSelector.cpp:
8129         (WebCore::CSSFontSelector::addFontFaceRule): Changed to work with value
8130         lists for the descriptor properties.
8131
8132         * css/CSSParser.cpp:
8133         (WebCore::CSSParser::CSSParser): Initialize m_hasFontFaceOnlyValues.
8134         (WebCore::CSSParser::parseValue): Added a call to
8135         deleteFontFaceOnlyValues() if necessary.
8136         (WebCore::CSSParser::parseDeclaration): Ditto.
8137         (WebCore::CSSParser::clearProperties): Added code to reset
8138         m_hasFontFaceOnlyValues to false.
8139         (WebCore::CSSParser::parseFontStyle): Added. If there is a single
8140         valid identifier other than 'all', creates a CSSPrimitiveValue and
8141         assigns it to the property. If 'all' is the only value, or if there are
8142         multiple valid identifiers that are not 'all', creates a CSSValueList
8143         and assigns it to the property, and sets m_hasFontFaceOnlyValues to
8144         true.
8145         (WebCore::CSSParser::parseFontVariant): Ditto.
8146         (WebCore::CSSParser::parseFontWeight): Ditto.
8147         (WebCore::CSSParser::createStyleRule): Added a call to
8148         deleteFontFaceOnlyValues().
8149         (WebCore::CSSParser::createFontFaceRule): Added code to change
8150         font descriptor properties that had only one value, and therefore were
8151         assigned a CSSPrimitiveValue, into CSSValueLists containing that value.
8152         (WebCore::CSSParser::deleteFontFaceOnlyValues): Added. Retroactively
8153         invalidates font descriptor properties that had values that are only
8154         allowed in @font-face. Those are identified by having CSSValueLists
8155         rather than CSSPrimitiveValues as their values.
8156         * css/CSSParser.h: Added m_hasFontFaceOnlyValues, a flag that says that
8157         font descriptor property values that are only valid in @font-face were
8158         encountered. This is used when the style declaration is created (and we
8159         finally know if it is @font-face or not) to delete invalid properties
8160         if needed.
8161
8162 2008-06-28  Darin Adler  <darin@apple.com>
8163
8164         Reviewed by Sam and Cameron.
8165
8166         - fix https://bugs.webkit.org/show_bug.cgi?id=19805
8167           Array.concat turns missing array elements into "undefined"
8168
8169         * bridge/jni/jni_utility.cpp:
8170         (KJS::Bindings::convertArrayInstanceToJavaArray):
8171         Use get instead of getItem, since we always want to consider values from the
8172         prototypes when looking at JavaScript arrays.
8173
8174 2008-06-28  Dan Bernstein  <mitz@apple.com>
8175
8176         Reviewed by Darin Adler.
8177
8178         - allow document markers to touch or overlap if they are not of the same type
8179
8180         Cannot be tested in DumpRenderTree
8181
8182         * dom/Document.cpp:
8183         (WebCore::Document::addMarker):
8184         * rendering/InlineTextBox.cpp:
8185         (WebCore::InlineTextBox::paintDocumentMarkers):
8186
8187 2008-06-28  Sam Weinig  <sam@webkit.org>
8188
8189         Rubber-stamped by Darin Adler.
8190
8191         Update includes after remaming string_object.h to StringObject.h and
8192         splitting out StringObjectThatMasqueradesAsUndefined, StringConstructor
8193         and StringPrototype.
8194
8195         * ForwardingHeaders/kjs/StringObject.h: Copied from WebCore/ForwardingHeaders/kjs/string_object.h.
8196         * ForwardingHeaders/kjs/StringObjectThatMasqueradesAsUndefined.h: Added.
8197         * ForwardingHeaders/kjs/StringPrototype.h: Added.
8198         * ForwardingHeaders/kjs/string_object.h: Removed.
8199         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
8200
8201 2008-06-28  Sam Weinig  <sam@webkit.org>
8202
8203         Rubber-stamped by Oliver Hunt.
8204
8205         Update includes after remaming object_object.h to ObjectPrototype.h and
8206         splitting FunctionConstructor out of FunctionPrototype.h
8207
8208         * ForwardingHeaders/kjs/FunctionConstructor.h: Added.
8209         * ForwardingHeaders/kjs/ObjectPrototype.h: Copied from WebCore/ForwardingHeaders/kjs/object_object.h.
8210         * ForwardingHeaders/kjs/object_object.h: Removed.
8211         * bindings/js/JSEventListener.cpp:
8212         * bindings/scripts/CodeGeneratorJS.pm:
8213         * bridge/qt/qt_instance.cpp:
8214
8215 2008-06-28  Dan Bernstein  <mitz@apple.com>
8216
8217         Reviewed by Darin Adler.
8218
8219         - fix <rdar://problem/5994621> REGRESSION (r31090-r31114): Weather widget shows missing image icons briefly when (re)loaded
8220
8221         * html/HTMLImageLoader.cpp:
8222         (WebCore::HTMLImageLoader::updateFromElement): Changed to not load an
8223         image if the 'src' attribute is the empty string and the document's base
8224         URI is a file: URL.
8225
8226 2008-06-27  Sam Weinig  <sam@webkit.org>
8227
8228         Reviewed by Dan Bernstein.
8229
8230         <rdar://problem/6025499> Make Cross-site XHR match the final specification
8231
8232         Update the implemented subset of Access-Control for XMLHttpRequest to the 
8233         latest version. (Editor's Draft 25 May 2008)
8234
8235         - Now differentiates between simple and non-simple cross-site requests, the later
8236           requiring a preflight.
8237         - Now sends request headers cross-site, limited by a blacklist.
8238         - Now allows access to cross-site response headers, limited by a whitelist.
8239         - Now sends request entity body for non-get cross-site requests after preflight.
8240
8241         Tests: http/tests/xmlhttprequest/access-control-basic-blacklist-request-headers.html
8242                http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple.html
8243                http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html
8244
8245         * xml/XMLHttpRequest.cpp:
8246         (WebCore::isOnAccessControllRequestHeaderBlackList):
8247         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
8248         (WebCore::isOnAccessControlResponseHeaderWhitelist):
8249         (WebCore::XMLHttpRequest::XMLHttpRequest):
8250         (WebCore::XMLHttpRequest::createRequest):
8251         (WebCore::XMLHttpRequest::makeSameOriginRequest):
8252         (WebCore::XMLHttpRequest::isSimpleCrossSiteAccessRequest):
8253         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequest):
8254         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
8255         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
8256         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
8257         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
8258         (WebCore::XMLHttpRequest::abort):
8259         (WebCore::XMLHttpRequest::clearRequest):
8260         (WebCore::XMLHttpRequest::setRequestHeader):
8261         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
8262         (WebCore::XMLHttpRequest::getAllResponseHeaders):
8263         (WebCore::XMLHttpRequest::getResponseHeader):
8264         (WebCore::XMLHttpRequest::didFinishLoading):
8265         (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
8266         (WebCore::XMLHttpRequest::didReceiveResponse):
8267         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
8268         (WebCore::XMLHttpRequest::didReceiveData):
8269         * xml/XMLHttpRequest.h:
8270
8271 2008-06-27  Sam Weinig  <sam@webkit.org>
8272
8273         Rubber-stamped by Mark Rowe.
8274
8275         Clean up sorting in WebCore.xcodeproj.
8276
8277         * WebCore.xcodeproj/project.pbxproj:
8278
8279 2008-06-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
8280
8281         Reviewed by Darin Adler.
8282
8283         Remove unnecessary options to make_names.pl command line
8284         http://bugs.webkit.org/show_bug.cgi?id=19777
8285
8286         * DerivedSources.make:
8287         * GNUmakefile.am:
8288
8289 2008-06-27  Adam Barth  <abarth@webkit.org>
8290
8291         Reviewed by Darin Adler.
8292
8293         https://bugs.webkit.org/show_bug.cgi?id=19784
8294
8295         Properly handle untermianted <!-- comments in <textarea>s.
8296
8297         Tests: fast/parser/open-comment-in-script-tricky.html
8298                fast/parser/open-comment-in-style.html
8299                fast/parser/open-comment-in-textarea.html
8300
8301         * html/HTMLTokenizer.cpp:
8302         (WebCore::HTMLTokenizer::finish):
8303
8304 2008-06-27  Adam Barth  <abarth@webkit.org>
8305
8306         Reviewed by Darin Alder.
8307
8308         Fix <https://bugs.webkit.org/show_bug.cgi?id=19784>:
8309           Text areas in Wikipedia edit pages are empty, following content is missing
8310
8311         Don't treat entities as comment starters in parseSpecial.
8312
8313         Tests: fast/parser/comment-in-iframe.html
8314                fast/parser/entity-comment-in-iframe.html
8315                fast/parser/entity-comment-in-script-tricky.html
8316                fast/parser/entity-comment-in-style.html
8317                fast/parser/entity-comment-in-textarea.html
8318                fast/parser/entity-comment-in-title.html
8319
8320         * html/HTMLTokenizer.cpp:
8321         (WebCore::HTMLTokenizer::parseSpecial):
8322
8323 2008-06-27  Antti Koivisto  <antti@apple.com>
8324
8325         Reviewed by Oliver.
8326         
8327         <rdar://problem/6030720> 
8328         REGRESSION: Discrete animation between incompatible paths does not work
8329
8330         Fall back to discrete path animation if paths are not suitable for morphing.
8331         
8332         Test: svg/custom/animate-path-discrete.svg
8333         
8334         * svg/SVGAnimateElement.cpp:
8335         (WebCore::SVGAnimateElement::calculateAnimatedValue):
8336
8337 2008-06-26  David Smith  <catfish.man@gmail.com>
8338
8339         Reviewed by Sam Weinig.
8340         
8341         https://bugs.webkit.org/show_bug.cgi?id=19002
8342         
8343         Optimize simple id selectors in querySelector/querySelectorAll. 
8344         ~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
8345
8346         * dom/Document.h:
8347         (WebCore::Document::containsMultipleElementsWithId): Added to allow optimizing the common case of no duplicates
8348         * dom/Node.cpp:
8349         (WebCore::Node::querySelector): Uses getElementById instead of DOM traversal where possible now
8350         * dom/SelectorNodeList.cpp:
8351         (WebCore::createSelectorNodeList): Uses getElementById instead of DOM traversal where possible now
8352
8353 2008-06-26  Dan Bernstein  <mitz@apple.com>
8354
8355         Reviewed by Darin Adler.
8356
8357         - fix <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
8358           http://bugs.webkit.org/show_bug.cgi?id=7023
8359
8360         Test: editing/selection/find-in-text-control.html
8361
8362         * WebCore.base.exp: Updated the TextIterator constructor signature.
8363
8364         * editing/TextIterator.cpp:
8365         (WebCore::TextIterator::TextIterator): Added an enterTextControls
8366         boolean parameter that determines whether the iterator should visit text
8367         inside text areas and text fields. Added code to initialize the
8368         m_inShadowContent member variable based on whether the range is in
8369         shadow content.
8370         (WebCore::TextIterator::advance): Added code to step out of shadow
8371         content.
8372         (WebCore::TextIterator::handleReplacedElement): Added code to enter
8373         text controls if desired.
8374         (WebCore::CharacterIterator::CharacterIterator): Added an
8375         enterTextControls boolean parameter that determines whether the iterator
8376         should visit text inside text areas and text fields. This is passed to
8377         the TextIterator constructor.
8378         (WebCore::findPlainText): Changed to use a CharacterIterator that
8379         visits text controls.
8380
8381         * editing/TextIterator.h: Added member variables to track whether the
8382         current node is in a shadow tree and whether the iterator should visit
8383         text controls.
8384
8385         * page/Frame.cpp:
8386         (WebCore::Frame::findString): Changed to find inside text controls.
8387         (WebCore::Frame::markAllMatchesForText): Ditto.
8388
8389         * rendering/RenderTextControl.cpp:
8390         (WebCore::RenderTextControl::innerTextElement): Added.
8391         * rendering/RenderTextControl.h: Added innerTextElement(), a private
8392         accessor method that is accessible to TextIterator through class
8393         friendship.
8394
8395 2008-06-26  Darin Adler  <darin@apple.com>
8396
8397         Reviewed by Geoff.
8398
8399         * bridge/runtime.h: Added include of JSString.h since jsString will soon
8400         change to return a JSString*.
8401
8402 2008-06-26  Adele Peterson  <adele@apple.com>
8403
8404         Fix suggested by Eric Carlson, added by me, reviewed by Adam.
8405
8406         Fix for <rdar://problem/5733006> <video> and <audio> element should not prompt user for missing files
8407
8408         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie):
8409         Set object with key QTMovieAskUnresolvedDataRefsAttribute to NO in the attributes dictionary passed to -[QTMovie initWithAttributes:]
8410
8411 2008-06-26  Sam Weinig  <sam@webkit.org>
8412
8413         Reviewed by John Sullivan.
8414
8415         <rdar://problem/6031969> Crash in SecurityOrigin code going Forward to a page in the back/forward cache
8416
8417         * loader/FrameLoader.cpp:
8418         (WebCore::FrameLoader::open): Make sure to update the SecurityOrigin and URL of the 
8419         DOMWindow when opening a CachedPage.
8420
8421 2008-06-26  Eric Seidel  <eric@webkit.org>
8422
8423         Reviewed by Beth Dakin.
8424
8425         CSS @import statements can cause DocLoader to use
8426         a dead Frame pointer.
8427         https://bugs.webkit.org/show_bug.cgi?id=19618
8428         
8429         The fix is to get rid of the Frame pointer on DocLoader.
8430         
8431         I also took this opportunity to clean up Document::detach
8432         a little to make it clear why we clear the m_frame pointer
8433         there, and to note that in the future we should stop
8434         using Node::detach to mean "tear down the whole rendering
8435         tree and detach from the frame".
8436
8437         Test: I don't know how to make a good test for this, the test
8438         we have is network timing dependent and does not make a good
8439         layout test.
8440
8441         * dom/Document.cpp:
8442         (WebCore::Document::Document):
8443         (WebCore::Document::detach):
8444         (WebCore::Document::clearFramePointer):
8445         * dom/Document.h:
8446         * loader/DocLoader.cpp:
8447         (WebCore::DocLoader::frame):
8448         * loader/DocLoader.h:
8449
8450 2008-06-26  Anders Carlsson  <andersca@apple.com>
8451
8452         Reviewed by Brady.
8453
8454         Don't enumerate document.applets trying to determine if a page contains applets.
8455         Instead, set m_containsPlugIns to true when an applet has been created.
8456         
8457         * loader/FrameLoader.cpp:
8458         (WebCore::FrameLoader::canCachePage):
8459         (WebCore::FrameLoader::createJavaAppletWidget):
8460
8461 2008-06-26  Alexey Proskuryakov  <ap@webkit.org>
8462
8463         Reviewed by Maciej.
8464
8465         Make JSGlobalData per-thread.
8466
8467         * bindings/js/JSDOMBinding.h:
8468         (WebCore::DOMObject::DOMObject):
8469         * bindings/js/JSDOMWindowBase.cpp:
8470         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
8471         * bridge/runtime_object.cpp:
8472         (RuntimeObjectImp::RuntimeObjectImp):
8473         Removed collectOnMainThreadOnly() calls. WebCore objects live in their own heap now, so
8474         there is no danger for them to be collected on a wrong thread.
8475
8476 2008-06-26  Holger Hans Peter Freyther  <zecke@selfish.org>
8477
8478         Reviewed by Simon.
8479
8480         [svg] Disable plugins for SVG images
8481         The Qt platform allows to have a plugin factory per Page. Now SVG Images
8482         are using a Page and dummy/empty clients for Chrome. The only way to get
8483         the kit from the WebCore::Page is to go through the ChromeClient but this
8484         is not possible when the ChromeClient is an empty client. This leads to a
8485         crash in PluginDataQt.cpp. One way to avoid this would have been the
8486         addition of a rtti like field to ChromeClient to see if it is an empty
8487         client. The other possibility is to not enable plugins for images.
8488
8489         The SVGImage relies on the fact that the document is a SVGDocument and
8490         that the rootElement is a SVGSVGElement. If plugins are used we could
8491         end up with a PluginDocument and crash badly. Do not try to use plugins
8492         if plugins are disabled for the WebCore::Page.
8493
8494         * dom/DOMImplementation.cpp:
8495         (WebCore::DOMImplementation::createDocument):
8496         * svg/graphics/SVGImage.cpp:
8497         (WebCore::SVGImage::dataChanged):
8498
8499 2008-06-25  Holger Hans Peter Freyther  <zecke@selfish.org>
8500
8501         Reviewed by Simon.
8502
8503         CodingStyle fixes
8504
8505         * platform/graphics/qt/SimpleFontDataQt.cpp:
8506         (WebCore::SimpleFontData::SimpleFontData):
8507
8508 2008-06-25  Holger Hans Peter Freyther  <zecke@selfish.org>
8509
8510         Reviewed by Simon.
8511
8512         [svg] Make QtWebKit build more of the SVG support
8513         Add the proper defines and files, update SVGResourceFilterQt.cpp
8514         to be enabled by the filter option and not by experimental svg support
8515
8516         * WebCore.pro:
8517         * svg/graphics/qt/SVGResourceFilterQt.cpp:
8518         (WebCore::SVGResourceFilter::createPlatformData):
8519         (WebCore::SVGResourceFilter::prepareFilter):
8520
8521 2008-06-25  Sam Weinig  <sam@webkit.org>
8522
8523         Reviewed by Brady Eidson.
8524
8525         Move XMLHttpRequestState enum into XMLHttpRequest and rename to State.
8526
8527         * xml/XMLHttpRequest.cpp:
8528         (WebCore::XMLHttpRequest::readyState):
8529         (WebCore::XMLHttpRequest::changeState):
8530         (WebCore::XMLHttpRequest::open):
8531         * xml/XMLHttpRequest.h:
8532         (WebCore::XMLHttpRequest::create):
8533         (WebCore::XMLHttpRequest::):
8534
8535 2008-06-25  Justin Garcia  <justin.garcia@apple.com>
8536
8537         Reviewed by John.
8538
8539         <rdar://problem/5994480> Line break lost on some pastes
8540         
8541         Merging the the first paragraph of inserted content with the content that came
8542         before the selection that was pasted into would also move content after 
8543         the selection that was pasted into if:
8544         
8545         1) Only one paragraph was being pasted, and it was not wrapped in a block
8546         2) The selection that was pasted into ended at the end of a block
8547         3) The next paragraph didn't start at the start of a block.
8548         
8549         Insert a line break just after the inserted content to separate it from what 
8550         comes after and prevent that from happening.
8551         
8552         Doing this exposed a bug in deletion where it would insert an unnecessary placeholder
8553         when deleting a paragraph that started or ended with an input element.  This was
8554         because its m_startBlock and m_endBlock were still computed with the old deprecated
8555         enclosingBlockFlowOrTableElement().
8556         
8557         * editing/DeleteSelectionCommand.cpp:
8558         (WebCore::DeleteSelectionCommand::initializePositionData): Use the new method for
8559         getting an enclosing block.
8560         (WebCore::DeleteSelectionCommand::doApply): The new method for getting an enclosing
8561         block will return 0 if it reaches the root editable element before finding a block,
8562         so if we're deleting inside an inline editable root, m_start/endBlock will
8563         be 0.  Removed an early return for this case (we already have test coverage for it).
8564         * editing/ReplaceSelectionCommand.cpp:
8565         (WebCore::ReplaceSelectionCommand::doApply): Insert a line break just after the inserted 
8566         content to separate it from what comes after.
8567         * dom/Node.h: Removed enclosingBlockFlowOrTableElement().
8568         * dom/Node.cpp: Ditto.
8569
8570 2008-06-25  Anders Carlsson  <andersca@apple.com>
8571
8572         Reviewed by Dave Hyatt.
8573
8574         Fix refcount leak in CSSVariablesRule.
8575
8576         * css/CSSParser.cpp:
8577         (WebCore::CSSParser::createVariablesRule):
8578         * css/CSSVariablesRule.h:
8579         (WebCore::CSSVariablesRule::create):
8580         (WebCore::CSSVariablesRule::setDeclaration):
8581
8582 2008-06-25  Anders Carlsson  <andersca@apple.com>
8583
8584         Reviewed by Mitz.
8585
8586         <rdar://problem/6007111> 
8587         https://bugs.webkit.org/show_bug.cgi?id=19516
8588         DOM modification causes Access Violation (NULL pointer?)
8589         
8590         Null check the document element.
8591         
8592         * html/HTMLParser.cpp:
8593         (WebCore::HTMLParser::handleError):
8594
8595 2008-06-25  Dan Bernstein  <mitz@apple.com>
8596
8597         Reviewed by Dave Hyatt.
8598
8599         - fix <rdar://problem/5873639> REGRESSION (r31620): css2.1/t1506-c525-font-wt-00-b fails on Windows
8600
8601         - fix https://bugs.webkit.org/show_bug.cgi?id=18863
8602           <rdar://problem/5908890> weight mappings with @font-face aren't consistent
8603
8604         Tests: fast/css/font-face-locally-installed.html
8605                fast/css/font-face-multiple-faces.html
8606
8607         * WebCore.vcproj/WebCore.vcproj: Added FontTraitsMask.h.
8608
8609         * WebCore.xcodeproj/project.pbxproj: Ditto.
8610
8611         * css/CSSFontFace.h:
8612         Made CSSFontFace store descriptors from the @font-face rule, as follows:
8613         (WebCore::CSSFontFace::create): Added a FontTraitsMask argument.
8614         (WebCore::CSSFontFace::traitsMask): Added this accessor.
8615         (WebCore::CSSFontFace::addRange): Added.
8616         (WebCore::CSSFontFace::ranges): Added.
8617         (WebCore::CSSFontFace::UnicodeRange::UnicodeRange):
8618         (WebCore::CSSFontFace::UnicodeRange::from):
8619         (WebCore::CSSFontFace::UnicodeRange::to):
8620         (WebCore::CSSFontFace::CSSFontFace): Added a FontTraitsMask and a vector
8621         of UnicodeRanges as member variables.
8622
8623         * css/CSSFontFaceSource.cpp:
8624         Changed the hash key from the font size alone to the font size and
8625         the synthetic style bits, needed if the same source supplies different
8626         synthesized versions.
8627         (WebCore::CSSFontFaceSource::pruneTable):
8628         (WebCore::CSSFontFaceSource::getFontData):
8629
8630         * css/CSSFontFaceSource.h:
8631
8632         * css/CSSFontSelector.cpp:
8633         (WebCore::CSSFontSelector::~CSSFontSelector): Added code to delete
8634         the contents of the font face, locally-installed font face and segmented
8635         font tables.
8636         (WebCore::CSSFontSelector::addFontFaceRule): Changed this function to
8637         not create segmented font faces, but instead just collect font faces
8638         and annotate them with descriptors (traits and unicode ranges).
8639         (WebCore::compareFontFaces): Added. Used in getFontData() to sort the
8640         font faces by proximity to the desired traits.
8641         (WebCore::CSSFontSelector::getFontData): Changed to create the segmented
8642         font face here and cache it.
8643
8644         * css/CSSFontSelector.h:
8645
8646         * css/CSSSegmentedFontFace.cpp:
8647         Changed to keep a vector of font faces instead of font face ranges, as
8648         font faces now know their Unicode ranges.
8649         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
8650         (WebCore::CSSSegmentedFontFace::isLoaded):
8651         (WebCore::CSSSegmentedFontFace::isValid):
8652         (WebCore::CSSSegmentedFontFace::appendFontFace):
8653         (WebCore::CSSSegmentedFontFace::getFontData): Removed the synthetic
8654         traits parameters, and instead changed to set them on each FontData
8655         separately based on the difference between the desired traits and
8656         the font face's traits.
8657
8658         * css/CSSSegmentedFontFace.h:
8659
8660         * platform/graphics/FontCache.h:
8661         Removed fontExists() and added getTraitsInFamily().
8662
8663         * platform/graphics/FontDescription.cpp:
8664         (WebCore::FontDescription::traitsMask): Added.
8665
8666         * platform/graphics/FontDescription.h:
8667
8668         * platform/graphics/FontTraitsMask.h: Added.
8669
8670         * platform/graphics/GlyphPageTreeNode.cpp:
8671         (WebCore::GlyphPageTreeNode::initializePage): Changed to fill in with
8672         glyphs from all fonts in the segmented font, using each font in turn to
8673         fill in characters not covered by earlier fonts.
8674
8675         * platform/graphics/gtk/FontCacheGtk.cpp:
8676         (WebCore::FontCache::getTraitsInFamily): Added a stub.
8677
8678         * platform/graphics/mac/FontCacheMac.mm:
8679         (WebCore::FontCache::getTraitsInFamily): Added.
8680
8681         * platform/graphics/qt/FontCacheQt.cpp:
8682         (WebCore::FontCache::getTraitsInFamily): Added a stub.
8683
8684         * platform/graphics/win/FontCacheWin.cpp:
8685         (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Added.
8686         (WebCore::traitsInFamilyEnumProc): Added.
8687         (WebCore::FontCache::getTraitsInFamily): Added.
8688
8689         * platform/graphics/wx/FontCacheWx.cpp:
8690         (WebCore::FontCache::getTraitsInFamily): Added a stub.
8691
8692         * platform/mac/WebFontCache.h:
8693         * platform/mac/WebFontCache.mm:
8694         (toTraitsMask): Added.
8695         (+[WebFontCache getTraits:inFamily:]): Added.
8696
8697 2008-06-24  Anonymous
8698
8699         Reviewed by Darin Adler.  Committed by Adam Barth.
8700
8701         https://bugs.webkit.org/show_bug.cgi?id=19470
8702
8703         Check for a null documentElement() to fix four crashes.
8704
8705         * WebCore/dom/Document.cpp:
8706         * WebCore/dom/Node.cpp:
8707
8708 2008-06-24  Adam Barth  <abarth@webkit.org>
8709
8710         Reviewed by Darin Adler.
8711
8712         Fix <https://bugs.webkit.org/show_bug.cgi?id=19597>
8713
8714         Correctly parse <!-- </textarea> --> inside a <textarea>, matching
8715         Internet Explorer, Firefox, Opera, and HTML 5.
8716
8717         Tests: fast/parser/comment-in-script-tricky.html
8718                fast/parser/comment-in-style.html
8719                fast/parser/comment-in-textarea.html
8720                fast/parser/comment-in-title.html
8721
8722         * html/HTMLTokenizer.cpp:
8723         (WebCore::HTMLTokenizer::parseSpecial):
8724
8725 2008-06-24  Justin Garcia  <justin.garcia@apple.com>
8726
8727         Reviewed by John.
8728
8729         <rdar://problem/6026335> REGRESSION: Caret disappears after deleting a particular selection involving a ToDo
8730         
8731         * editing/CompositeEditCommand.cpp:
8732         (WebCore::CompositeEditCommand::moveParagraphs): If asked to preserveStyle, we
8733         apply styles from the moved paragraph to the destination with applyStyle, which
8734         does selection preservation when it needs to apply block styles.  Selection preservation 
8735         uses relatively untested code in TextIterator to count VisiblePositions which fails in 
8736         this particular test case because it doesn't handle changes in editability properly.  
8737         We can avoid this bug by not applying block styles from moved paragraphs.  This is 
8738         something that should be done anyway, since the moved paragraph should assume the 
8739         block styles of the destination.
8740         * editing/EditCommand.cpp:
8741         (WebCore::EditCommand::styleAtPosition): Added a FIXME about how it is misleading for
8742         this function to also include the typing style.
8743         * editing/TextIterator.h: Added a FIXME about how the code path used for selection preservation
8744         is buggy and should be phased out when we rewrite moveParagraphs.
8745
8746 2008-06-24  Kevin McCullough  <kmccullough@apple.com>
8747
8748         -Added a manual test for the profiler.
8749
8750         * manual-tests/inspector/profiler-test-compare-multiple-profiles.html: Added.
8751
8752 2008-06-24  Sam Weinig  <sam@webkit.org>
8753
8754         Reviewed by Anders Carlsson.
8755
8756         Add support for loadstart, abort and error events for XMLHttpRequests.
8757
8758         Tests: http/tests/xmlhttprequest/onabort-event.html
8759                http/tests/xmlhttprequest/onerror-event.html
8760                http/tests/xmlhttprequest/onloadstart-event.html
8761
8762         * bindings/js/JSXMLHttpRequestCustom.cpp:
8763         (WebCore::JSXMLHttpRequest::mark):
8764         (WebCore::JSXMLHttpRequest::onreadystatechange):
8765         (WebCore::JSXMLHttpRequest::onabort):
8766         (WebCore::JSXMLHttpRequest::setOnabort):
8767         (WebCore::JSXMLHttpRequest::onerror):
8768         (WebCore::JSXMLHttpRequest::setOnerror):
8769         (WebCore::JSXMLHttpRequest::onload):
8770         (WebCore::JSXMLHttpRequest::onloadstart):
8771         (WebCore::JSXMLHttpRequest::setOnloadstart):
8772         (WebCore::JSXMLHttpRequest::onprogress):
8773         * dom/EventNames.h:
8774         * xml/XMLHttpRequest.cpp:
8775         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
8776         (WebCore::XMLHttpRequest::createRequest):
8777         (WebCore::XMLHttpRequest::abort):
8778         (WebCore::XMLHttpRequest::networkError):
8779         (WebCore::XMLHttpRequest::abortError):
8780         (WebCore::XMLHttpRequest::didFail):
8781         (WebCore::XMLHttpRequest::updateAndDispatchOnProgress):
8782         (WebCore::XMLHttpRequest::dispatchReadyStateChangeEvent):
8783         (WebCore::XMLHttpRequest::dispatchXMLHttpRequestProgressEvent):
8784         (WebCore::XMLHttpRequest::dispatchAbortEvent):
8785         (WebCore::XMLHttpRequest::dispatchErrorEvent):
8786         (WebCore::XMLHttpRequest::dispatchLoadEvent):
8787         (WebCore::XMLHttpRequest::dispatchLoadStartEvent):
8788         (WebCore::XMLHttpRequest::dispatchProgressEvent):
8789         * xml/XMLHttpRequest.h:
8790         (WebCore::XMLHttpRequest::setOnAbortListener):
8791         (WebCore::XMLHttpRequest::onAbortListener):
8792         (WebCore::XMLHttpRequest::setOnErrorListener):
8793         (WebCore::XMLHttpRequest::onErrorListener):
8794         (WebCore::XMLHttpRequest::setOnLoadStartListener):
8795         (WebCore::XMLHttpRequest::onLoadStartListener):
8796         * xml/XMLHttpRequest.idl:
8797
8798 2008-06-24  Anders Carlsson  <andersca@apple.com>
8799
8800         Reviewed by Mitz.
8801
8802         <rdar://problem/5957606>
8803         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::DocumentLoader::cancelPendingSubstituteLoad + 23
8804
8805         Remove the loader from the document loader after calling didFail, so that the loader will be deferred corectly
8806         in case the call do didFail starts a new run loop.
8807         
8808         * loader/NetscapePlugInStreamLoader.cpp:
8809         (WebCore::NetscapePlugInStreamLoader::didCancel):
8810
8811 2008-06-24  Alexey Proskuryakov  <ap@webkit.org>
8812
8813         Release build fix.
8814
8815         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
8816         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
8817         * bindings/js/JSCustomSQLTransactionCallback.cpp:
8818         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
8819         Initialize callbackCallType, as the compiler is not smart enough to figure out data flow.
8820
8821 2008-06-24  Alexey Proskuryakov  <ap@webkit.org>
8822
8823         Reviewed by Darin.
8824
8825         https://bugs.webkit.org/show_bug.cgi?id=19723
8826         REGRESSION(r34648): Some SVG tests crash when running under --threaded
8827
8828         * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::destroy): Do not attempt
8829         to paint during document destruction, because rendering structures are not kept in a
8830         consistent state then.
8831
8832 2008-06-24  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
8833
8834         Reviewed by Darin.
8835
8836         https://bugs.webkit.org/show_bug.cgi?id=19727
8837
8838         Return bool from GraphicsContext::getShadow() so the tests aren't duplicated so
8839         many times in Cairo and Qt ports.
8840
8841         * platform/graphics/GraphicsContext.h:
8842         * platform/graphics/GraphicsContext.cpp:
8843         (WebCore::GraphicsContext::getShadow): return a boolean from getShadow()
8844         which indicates whether there is a visible shadow to draw or not.  Ports
8845         without a platform shadow implementation can use this flag to determine
8846         whether a shadow needs to be drawn manually
8847         * platform/graphics/cairo/FontCairo.cpp:
8848         (WebCore::Font::drawGlyphs):
8849         * platform/graphics/qt/FontQt.cpp:
8850         (WebCore::Font::drawText):
8851         * platform/graphics/qt/GraphicsContextQt.cpp:
8852         (WebCore::GraphicsContext::drawLine): use return from getShadow() to
8853         determine whether to draw the shadow
8854
8855 2008-06-24  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
8856
8857         Reviewed by Simon.
8858
8859         https://bugs.webkit.org/show_bug.cgi?id=18459
8860
8861         Clean up and remove unused platform shadow code.
8862
8863         Minor edits by Simon, removed unused TextShadow struct.
8864
8865         * platform/graphics/qt/GraphicsContextQt.cpp:
8866         (WebCore::GraphicsContext::setPlatformShadow):
8867         (WebCore::GraphicsContext::clearPlatformShadow): Qt doesn't support a
8868         platform shadow, so just make these functions empty.  The shadows are
8869         drawn manually in function like drawLine(), etc.
8870
8871 2008-06-24  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
8872
8873         Reviewed by Simon.
8874
8875         https://bugs.webkit.org/show_bug.cgi?id=18459
8876
8877         Implemented basic text-shadow support for the Qt port.
8878
8879         * platform/graphics/qt/FontQt.cpp:
8880         (WebCore::Font::drawText): implement text-shadow support in the Qt port
8881         * platform/graphics/qt/GraphicsContextQt.cpp:
8882         (WebCore::GraphicsContext::drawLine): also draw shadows for text
8883         decorations such as unerlines
8884
8885 2008-06-24  Simon Hausmann  <hausmann@webkit.org>
8886
8887         Fix the Qt build, adapt to various JSCore API changes.
8888
8889         * bridge/qt/qt_instance.cpp:
8890         (KJS::Bindings::QtRuntimeObjectImp::construct):
8891         (KJS::Bindings::QtInstance::getRuntimeObject):
8892         (KJS::Bindings::QtInstance::invokeDefaultMethod):
8893         * bridge/qt/qt_runtime.cpp:
8894         (KJS::Bindings::convertQVariantToValue):
8895         (KJS::Bindings::QtRuntimeMetaMethod::getCallData):
8896         (KJS::Bindings::QtRuntimeConnectionMethod::call):
8897         (KJS::Bindings::QtRuntimeConnectionMethod::getCallData):
8898         (KJS::Bindings::QtConnectionObject::execute):
8899         * bridge/qt/qt_runtime.h:
8900         (KJS::Bindings::QtRuntimeConnectionMethod::d_func):
8901
8902 2008-06-24  Alexey Proskuryakov  <ap@webkit.org>
8903
8904         Remove XMLHttpRequestProgressEvent.cpp from more project files.
8905
8906         * GNUmakefile.am:
8907         * WebCore.pro:
8908
8909 2008-06-24  Ariya Hidayat  <ariya.hidayat@trolltech.com>
8910
8911         Reviewed by Simon.
8912
8913         For the Qt port, fix linking with MinGW.
8914
8915         * WebCore.pro:
8916
8917 2008-06-23  Darin Adler  <darin@apple.com>
8918
8919         Reviewed by Geoff.
8920
8921         Update for JavaScript changes.
8922
8923         - Use CallData and ConstructData instead of the obsolete implementsCall,
8924           callAsFunction, and construct functions.
8925
8926         - Updated native function arguments, specifically to allow a JSValue
8927           rather than a JSObject for the this argument, and to call toThisObject
8928           as needed when treating it as an object.
8929
8930         - Made some more class members private and protected, including virtual
8931           function overrides.
8932
8933         - Eliminated the use of getCallData in the JavaScript bridging code as
8934           a way to check if an instance supports invokeDefaultMethod.
8935
8936         - Eliminated unnecessary polymorphism in the NodeIterator and TreeWalker
8937           classes. They were using virtual functions simply to share an instance
8938           of the RefCounted template, which was not helpful.
8939
8940         * bindings/js/JSAudioConstructor.cpp:
8941         (WebCore::constructAudio):
8942         (WebCore::JSAudioConstructor::getConstructData):
8943         * bindings/js/JSAudioConstructor.h:
8944         (WebCore::JSAudioConstructor::document):
8945         (WebCore::JSAudioConstructor::classInfo):
8946         * bindings/js/JSClipboardCustom.cpp:
8947         (WebCore::JSClipboard::types):
8948         * bindings/js/JSCustomSQLStatementCallback.cpp:
8949         (WebCore::JSCustomSQLStatementCallback::handleEvent):
8950         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
8951         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
8952         * bindings/js/JSCustomSQLTransactionCallback.cpp:
8953         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
8954         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
8955         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
8956         * bindings/js/JSCustomVoidCallback.cpp:
8957         (WebCore::JSCustomVoidCallback::handleEvent):
8958         * bindings/js/JSCustomXPathNSResolver.cpp:
8959         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
8960         * bindings/js/JSDOMBinding.h:
8961         (WebCore::DOMObject::DOMObject):
8962         * bindings/js/JSDOMWindowBase.cpp:
8963         (WebCore::windowProtoFuncAToB):
8964         (WebCore::windowProtoFuncBToA):
8965         (WebCore::windowProtoFuncOpen):
8966         (WebCore::windowProtoFuncSetTimeout):
8967         (WebCore::windowProtoFuncClearTimeout):
8968         (WebCore::windowProtoFuncSetInterval):
8969         (WebCore::windowProtoFuncAddEventListener):
8970         (WebCore::windowProtoFuncRemoveEventListener):
8971         (WebCore::windowProtoFuncShowModalDialog):
8972         (WebCore::windowProtoFuncNotImplemented):
8973         (WebCore::toJSDOMWindow):
8974         * bindings/js/JSDOMWindowBase.h:
8975         * bindings/js/JSDOMWindowShell.h:
8976         (WebCore::JSDOMWindowShell::classInfo):
8977         * bindings/js/JSEventListener.cpp:
8978         (WebCore::JSAbstractEventListener::handleEvent):
8979         (WebCore::JSLazyEventListener::parseCode):
8980         * bindings/js/JSEventTargetBase.cpp:
8981         (WebCore::retrieveEventTargetAndCorrespondingNode):
8982         (WebCore::jsEventTargetAddEventListener):
8983         (WebCore::jsEventTargetRemoveEventListener):
8984         (WebCore::jsEventTargetDispatchEvent):
8985         * bindings/js/JSEventTargetBase.h:
8986         * bindings/js/JSHTMLAppletElementCustom.cpp:
8987         (WebCore::JSHTMLAppletElement::customGetOwnPropertySlot):
8988         (WebCore::JSHTMLAppletElement::customPut):
8989         (WebCore::JSHTMLAppletElement::getCallData):
8990         * bindings/js/JSHTMLCollectionCustom.cpp:
8991         (WebCore::callHTMLCollection):
8992         (WebCore::JSHTMLCollection::getCallData):
8993         * bindings/js/JSHTMLDocumentCustom.cpp:
8994         (WebCore::JSHTMLDocument::open):
8995         * bindings/js/JSHTMLEmbedElementCustom.cpp:
8996         (WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot):
8997         (WebCore::JSHTMLEmbedElement::customPut):
8998         (WebCore::JSHTMLEmbedElement::getCallData):
8999         * bindings/js/JSHTMLInputElementBase.cpp:
9000         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
9001         * bindings/js/JSHTMLInputElementBase.h:
9002         * bindings/js/JSHTMLObjectElementCustom.cpp:
9003         (WebCore::JSHTMLObjectElement::customGetOwnPropertySlot):
9004         (WebCore::JSHTMLObjectElement::customPut):
9005         (WebCore::JSHTMLObjectElement::getCallData):
9006         * bindings/js/JSHTMLOptionElementConstructor.cpp:
9007         (WebCore::constructHTMLOptionElement):
9008         (WebCore::JSHTMLOptionElementConstructor::getConstructData):
9009         * bindings/js/JSHTMLOptionElementConstructor.h:
9010         (WebCore::JSHTMLOptionElementConstructor::document):
9011         (WebCore::JSHTMLOptionElementConstructor::classInfo):
9012         * bindings/js/JSImageConstructor.cpp:
9013         (WebCore::constructImage):
9014         (WebCore::JSImageConstructor::getConstructData):
9015         * bindings/js/JSImageConstructor.h:
9016         (WebCore::JSImageConstructor::document):
9017         (WebCore::JSImageConstructor::classInfo):
9018         * bindings/js/JSInspectedObjectWrapper.h:
9019         (WebCore::JSInspectedObjectWrapper::classInfo):
9020         * bindings/js/JSInspectorCallbackWrapper.cpp:
9021         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
9022         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
9023         (WebCore::JSJavaScriptCallFrame::scopeChain):
9024         * bindings/js/JSNodeFilterCondition.cpp:
9025         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
9026         (WebCore::JSNodeFilterCondition::mark):
9027         (WebCore::JSNodeFilterCondition::acceptNode):
9028         * bindings/js/JSNodeFilterCondition.h:
9029         (WebCore::JSNodeFilterCondition::create):
9030         * bindings/js/JSNodeFilterCustom.cpp:
9031         (WebCore::toNodeFilter):
9032         * bindings/js/JSNodeListCustom.cpp:
9033         (WebCore::callNodeList):
9034         (WebCore::JSNodeList::getCallData):
9035         (WebCore::JSNodeList::canGetItemsForName):
9036         (WebCore::JSNodeList::nameGetter):
9037         * bindings/js/JSPluginElementFunctions.cpp:
9038         (WebCore::runtimeObjectGetter):
9039         (WebCore::runtimeObjectPropertyGetter):
9040         (WebCore::runtimeObjectCustomGetOwnPropertySlot):
9041         (WebCore::runtimeObjectCustomPut):
9042         (WebCore::runtimeObjectGetCallData):
9043         (WebCore::pluginInstance):
9044         (WebCore::getRuntimeObject):
9045         (WebCore::callPlugin):
9046         * bindings/js/JSPluginElementFunctions.h:
9047         * bindings/js/JSQuarantinedObjectWrapper.cpp:
9048         (WebCore::JSQuarantinedObjectWrapper::put):
9049         (WebCore::JSQuarantinedObjectWrapper::construct):
9050         (WebCore::JSQuarantinedObjectWrapper::getConstructData):
9051         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
9052         (WebCore::JSQuarantinedObjectWrapper::call):
9053         (WebCore::JSQuarantinedObjectWrapper::getCallData):
9054         * bindings/js/JSQuarantinedObjectWrapper.h:
9055         (WebCore::JSQuarantinedObjectWrapper::className):
9056         * bindings/js/JSRGBColor.cpp:
9057         * bindings/js/JSXMLHttpRequestConstructor.cpp:
9058         (WebCore::constructXMLHttpRequest):
9059         (WebCore::JSXMLHttpRequestConstructor::getConstructData):
9060         * bindings/js/JSXMLHttpRequestConstructor.h:
9061         (WebCore::JSXMLHttpRequestConstructor::document):
9062         (WebCore::JSXMLHttpRequestConstructor::classInfo):
9063         * bindings/js/JSXSLTProcessorConstructor.cpp:
9064         (WebCore::constructXSLTProcessor):
9065         (WebCore::JSXSLTProcessorConstructor::getConstructData):
9066         * bindings/js/JSXSLTProcessorConstructor.h:
9067         (WebCore::JSXSLTProcessorConstructor::classInfo):
9068         * bindings/js/ScheduledAction.cpp:
9069         (WebCore::ScheduledAction::ScheduledAction):
9070         (WebCore::ScheduledAction::execute):
9071         * bindings/js/ScheduledAction.h:
9072         * bindings/objc/WebScriptObject.mm:
9073         (-[WebScriptObject callWebScriptMethod:withArguments:]):
9074         * bindings/scripts/CodeGeneratorJS.pm:
9075         * bridge/NP_jsobject.cpp:
9076         (_NPN_InvokeDefault):
9077         (_NPN_Invoke):
9078         * bridge/c/c_instance.cpp:
9079         (KJS::Bindings::CInstance::supportsInvokeDefaultMethod):
9080         * bridge/c/c_instance.h:
9081         * bridge/jni/jni_jsobject.mm:
9082         (JavaJSObject::call):
9083         * bridge/objc/objc_instance.h:
9084         * bridge/objc/objc_instance.mm:
9085         (ObjcInstance::supportsInvokeDefaultMethod):
9086         * bridge/objc/objc_runtime.h:
9087         (KJS::Bindings::ObjcFallbackObjectImp::propertyName):
9088         (KJS::Bindings::ObjcFallbackObjectImp::classInfo):
9089         * bridge/objc/objc_runtime.mm:
9090         (Bindings::webScriptObjectClass):
9091         (Bindings::webUndefinedClass):
9092         (ObjcFallbackObjectImp::ObjcFallbackObjectImp):
9093         (callObjCFallbackObject):
9094         (ObjcFallbackObjectImp::getCallData):
9095         * bridge/qt/qt_instance.h:
9096         * bridge/runtime.cpp:
9097         (KJS::Bindings::Instance::createRuntimeObject):
9098         (KJS::Bindings::Instance::getInstance):
9099         * bridge/runtime.h:
9100         (KJS::Bindings::Field::~Field):
9101         (KJS::Bindings::Method::~Method):
9102         (KJS::Bindings::Class::~Class):
9103         (KJS::Bindings::Instance::supportsInvokeDefaultMethod):
9104         * bridge/runtime_method.cpp:
9105         (KJS::callRuntimeMethod):
9106         (KJS::RuntimeMethod::getCallData):
9107         * bridge/runtime_method.h:
9108         (KJS::RuntimeMethod::methods):
9109         * bridge/runtime_object.cpp:
9110         (RuntimeObjectImp::defaultValue):
9111         (callRuntimeObject):
9112         (RuntimeObjectImp::getCallData):
9113         * bridge/runtime_object.h:
9114         (KJS::RuntimeObjectImp::getInternalInstance):
9115         (KJS::RuntimeObjectImp::classInfo):
9116         * dom/NodeIterator.h:
9117         * dom/Traversal.cpp:
9118         * dom/Traversal.h:
9119         * dom/TreeWalker.h:
9120
9121 2008-06-23  Adam Barth  <abarth@webkit.org>
9122
9123         Reviewed by Darin Adler.
9124
9125         https://bugs.webkit.org/show_bug.cgi?id=16756
9126
9127         Move isAllowedToLoadLocalResources into SecurityOrigin.
9128
9129         * dom/Document.cpp:
9130         (WebCore::Document::Document):
9131         (WebCore::Document::setURL):
9132         (WebCore::Document::initSecurityContext):
9133         * dom/Document.h:
9134         * loader/FrameLoader.cpp:
9135         (WebCore::FrameLoader::canLoad):
9136         * platform/SecurityOrigin.cpp:
9137         (WebCore::SecurityOrigin::SecurityOrigin):
9138         (WebCore::SecurityOrigin::isLocal):
9139         * platform/SecurityOrigin.h:
9140         (WebCore::SecurityOrigin::protocol):
9141         (WebCore::SecurityOrigin::host):
9142         (WebCore::SecurityOrigin::domain):
9143         (WebCore::SecurityOrigin::port):
9144         (WebCore::SecurityOrigin::canLoadLocalResources):
9145         (WebCore::SecurityOrigin::grantLoadLocalResources):
9146         * xml/XMLHttpRequest.cpp:
9147         (WebCore::XMLHttpRequest::setRequestHeader):
9148
9149 2008-06-23  Mark Rowe  <mrowe@apple.com>
9150
9151         Fix the Windows build.
9152
9153         * WebCore.vcproj/WebCore.vcproj: Add generated files related to CSS variables to the Windows project file.
9154
9155 2008-06-23  Steve Falkenburg  <sfalken@apple.com>
9156
9157         Fix a math error in my last change.
9158         
9159         Reviewed by Ada Chan.
9160
9161         * platform/win/FileSystemWin.cpp:
9162         (WebCore::openTemporaryFile):
9163
9164 2008-06-23  Kevin McCullough  <kmccullough@apple.com>
9165
9166         -Build fix.
9167
9168         * WebCore.vcproj/WebCore.vcproj:
9169
9170 2008-06-23  chris fleizach  <cfleizach@apple.com>
9171
9172         Reviewed by Darin Adler.
9173
9174         <rdar://problem/6024267> VO unable to read massive emails because AccessibilityObject::lengthForVisiblePositionRange makes the string
9175
9176         * page/AccessibilityObject.cpp:
9177         (WebCore::replacedNodeNeedsCharacter):
9178         (WebCore::AccessibilityObject::stringForVisiblePositionRange):
9179         (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
9180
9181 2008-06-23  Steve Falkenburg  <sfalken@apple.com>
9182
9183         Added our own mechanism for generating temporary file names.
9184         
9185         Reviewed by Ada Chan, Darin Adler.
9186
9187         * platform/win/FileSystemWin.cpp:
9188         (WebCore::openTemporaryFile):
9189
9190 2008-06-23  Sam Weinig  <sam@webkit.org>
9191
9192         Remove XMLHttpRequestProgressEvent.cpp from project files.
9193
9194         * WebCore.vcproj/WebCore.vcproj:
9195         * WebCore.xcodeproj/project.pbxproj:
9196         * WebCoreSources.bkl:
9197
9198 2008-06-23  Sam Weinig  <sam@webkit.org>
9199
9200         Reviewed by Dave Hyatt.
9201
9202         Remove empty file.
9203
9204         * xml/XMLHttpRequestProgressEvent.cpp: Removed.
9205
9206 2008-06-23  Sam Weinig  <sam@webkit.org>
9207
9208         Rubber-stamped by Tim Hatcher.
9209
9210         Rename XMLHttpRequest::sameOriginRequest to XMLHttpRequest::makeSameOriginRequest
9211         and XMLHttpRequest::crossSiteAccessRequest to XMLHttpRequest::makeCrossSiteAccessRequest.
9212
9213         * xml/XMLHttpRequest.cpp:
9214         (WebCore::XMLHttpRequest::createRequest):
9215         (WebCore::XMLHttpRequest::makeSameOriginRequest):
9216         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequest):
9217         * xml/XMLHttpRequest.h:
9218
9219 2008-06-23  Sam Weinig  <sam@webkit.org>
9220
9221         Reviewed by Alexey Proskuryakov.
9222
9223         Some XMLHttpRequest re-organization to aid further enhancements coming soon.
9224
9225         * bindings/js/JSXMLHttpRequestCustom.cpp:
9226         (WebCore::JSXMLHttpRequest::send): Explicitly call overloaded versions of send,
9227         instead of always calling though send(DOMString).
9228         * dom/Document.idl: Adds native converter.
9229
9230         * xml/XMLHttpRequest.cpp:
9231         (WebCore::XMLHttpRequest::open):
9232         (WebCore::XMLHttpRequest::initSend):
9233         (WebCore::XMLHttpRequest::send):
9234         (WebCore::XMLHttpRequest::createRequest):
9235         (WebCore::XMLHttpRequest::sameOriginRequest):
9236         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
9237         (WebCore::XMLHttpRequest::abort):
9238         (WebCore::XMLHttpRequest::clearResponse):
9239         (WebCore::XMLHttpRequest::clearRequest):
9240         (WebCore::XMLHttpRequest::genericError):
9241         (WebCore::XMLHttpRequest::dispatchProgressEvent):
9242         * xml/XMLHttpRequest.h:
9243         (WebCore::XMLHttpRequest::setOnReadyStateChangeListener): Inline.
9244         (WebCore::XMLHttpRequest::onReadyStateChangeListener): Ditto.
9245         (WebCore::XMLHttpRequest::setOnLoadListener): Ditto.
9246         (WebCore::XMLHttpRequest::onLoadListener): Ditto.
9247         (WebCore::XMLHttpRequest::setOnProgressListener): Ditto.
9248         (WebCore::XMLHttpRequest::onProgressListener): Ditto.
9249         Makes the request entity body a member variable so that the send method
9250         can be more easily broken up.
9251
9252 2008-06-23  Timothy Hatcher  <timothy@apple.com>
9253
9254         Make profiles of the same name in the Inspector group in the
9255         sidebar under a collapsable item that contains all the runs.
9256
9257         https://bugs.webkit.org/show_bug.cgi?id=19713
9258
9259         Reviewed by Darin Adler.
9260
9261         * English.lproj/localizedStrings.js: New strings.
9262         * page/inspector/Images/profileGroupIcon.png: Added.
9263         * page/inspector/Images/profileSmallIcon.png: Added.
9264         * page/inspector/ProfilesPanel.js:
9265         (WebInspector.ProfilesPanel.prototype.reset): Clear _profileGroups.
9266         Remove the "some-expandable" class from the sidebarTree.
9267         (WebInspector.ProfilesPanel.prototype.addProfile): Append new profiles
9268         that have the same name as a previous profile into a group. When a
9269         group has 2 profiles a ProfileGroupSidebarTreeElement is made and the
9270         ProfileSidebarTreeElements are appended to the group's element. 
9271         (WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle):
9272         Return _mainTitle is it is set.
9273         (WebInspector.ProfileSidebarTreeElement.prototype.set mainTitle):
9274         Set _mainTitle which is an override title.
9275         (WebInspector.ProfileGroupSidebarTreeElement): Inherit SidebarTreeElement.
9276         (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
9277         Show the last profile in the group when selected.
9278         * page/inspector/SidebarTreeElement.js:
9279         (WebInspector.SidebarTreeElement.prototype.get small): Return _small.
9280         (WebInspector.SidebarTreeElement.prototype.set small): Set _small and
9281         update the style to match.
9282         (WebInspector.SidebarTreeElement.prototype.onattach): Set the small
9283         class if the small property is true.
9284         * page/inspector/inspector.css: New styles for profiles groups
9285         and for the small profiles.
9286
9287 2008-06-23  Anders Carlsson  <andersca@apple.com>
9288
9289         Reviewed by Geoff.
9290
9291         Make changedDocuments a HashSet.
9292
9293         * dom/Document.cpp:
9294         (WebCore::Document::setDocumentChanged):
9295         (WebCore::Document::updateDocumentsRendering):
9296
9297 2008-06-23  Alexey Proskuryakov  <ap@webkit.org>
9298
9299         Reviewed by Mark Rowe.
9300
9301         Restore a collectOnMainThreadOnly call that was accidentally removed in r34659. It will not
9302         be needed when heaps are actually per-thread, but this isn't the case yet, and collecting
9303         on a different thread causes crashes.
9304
9305         * bindings/js/JSDOMBinding.h:
9306         (WebCore::DOMObject::DOMObject):
9307
9308 2008-06-22  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
9309
9310         Reviewed by Darin Adler.
9311
9312         Fix https://bugs.webkit.org/show_bug.cgi?id=19465
9313         Bug 19465: Cursor sometimes gets 'stuck' in textareas when trying to navigate with arrow keys
9314
9315         Test: editing/input/textarea-arrow-navigation.html
9316
9317         * rendering/RenderText.cpp:
9318         (WebCore::RenderText::positionForCoordinates): In the case when the next position is to the right
9319         of the last text box but the text offset is 0, set the affinity to DOWNSTREAM instead of UPSTREAM so
9320         that the cursor doesn't remain on the previous line.
9321
9322 2008-06-22  Robert Blaut  <webkit@blaut.biz>
9323
9324         Reviewed by Darin Adler.
9325
9326         Fix for https://bugs.webkit.org/show_bug.cgi?id=17421
9327         Bug 17421: Lack of end tag for SELECT element causes the rest of page to not be rendered
9328
9329         Test: fast/parser/input-textarea-inside-select-element.html
9330
9331         * html/HTMLParser.cpp:
9332         (WebCore::HTMLParser::handleError):
9333
9334 2008-06-22  David Krause  <david.krause@gmail.com>
9335
9336         Reviewed by Darin Adler.
9337
9338         Fix https://bugs.webkit.org/show_bug.cgi?id=19426
9339         Bug 19426: LOW_BANDWIDTH_DISPLAY build broken
9340
9341         Change ref to addClient and deref to removeClient in code wrapped
9342         by USE(LOW_BANDWIDTH_DISPLAY) to match changes in r31834.
9343
9344         * loader/FrameLoader.cpp:
9345         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
9346         (WebCore::FrameLoader::removeAllLowBandwidthDisplayRequests):
9347         (WebCore::FrameLoader::notifyFinished):
9348
9349 2008-06-22  Robert Blaut  <webkit@blaut.biz>
9350
9351         Reviewed by Darin Adler.
9352
9353         Fix https://bugs.webkit.org/show_bug.cgi?id=19520
9354         Bug 19520: WebKit incorrectly accepts hidden as the value of outline-style
9355
9356         Test: fast/css/outline-hidden-illegal-value.html
9357
9358         * css/CSSParser.cpp:
9359         (WebCore::CSSParser::parseValue):
9360         * rendering/RenderFlow.cpp:
9361         (WebCore::RenderFlow::paintOutline):
9362         * rendering/RenderObject.cpp:
9363         (WebCore::RenderObject::paintOutline):
9364         * rendering/style/RenderStyle.h:
9365         (WebCore::RenderStyle::outlineWidth):
9366         (WebCore::RenderStyle::outlineOffset):
9367
9368 2008-06-22  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
9369
9370         Reviewed by Dan Bernstein.
9371
9372         Fix https://bugs.webkit.org/show_bug.cgi?id=19675
9373         Bug 19675: [GTK] negative text-shadows are not rendered
9374
9375         * platform/graphics/cairo/FontCairo.cpp:
9376         (WebCore::Font::drawGlyphs): The IntSize::isEmpty() call checks that the
9377         sizes are > 0, while we need to check for != 0.
9378
9379 2008-06-22  kuchhal  <kuchhal@yahoo.com>
9380
9381         Reviewed by Darin Adler.
9382
9383         Fix https://bugs.webkit.org/show_bug.cgi?id=19696
9384         Bug 19696: Memory leak in WebCore/editing/DeleteButtonController.cpp
9385
9386         * editing/DeleteButtonController.cpp:
9387         (WebCore::DeleteButtonController::createDeletionUI): Delete the Image instance
9388         if the platform resource could not be loaded.
9389
9390 2008-06-22  kuchhal  <kuchhal@yahoo.com>
9391
9392         Reviewed by Darin Adler.
9393
9394         Fix https://bugs.webkit.org/show_bug.cgi?id=19697
9395         Bug 19697: Redundant releaseRef causing memory leak
9396
9397         * platform/win/ClipboardUtilitiesWin.cpp:
9398         (WebCore::fragmentFromCF_HTML):
9399
9400 2008-06-21  Sam Weinig  <sam@webkit.org>
9401
9402         Fix Windows build.
9403
9404         * bindings/scripts/CodeGeneratorCOM.pm:
9405         * html/HTMLInputElement.idl:
9406
9407 2008-06-21  Timothy Hatcher  <timothy@apple.com>
9408
9409         Fix a typo "new" in the keywords list for hte JavaScript
9410         syntax highlighter. And adds "get" and "set" to the keyword list.
9411
9412         Reviewed by Sam Weinig.
9413
9414         * page/inspector/SourceFrame.js:
9415         (WebInspector.SourceFrame.prototype._syntaxHighlightJavascriptLine):
9416         Fixes the "new" typo and adds "get" and "set".
9417
9418 2008-06-21  David Kilzer  <ddkilzer@apple.com>
9419
9420         Bug 7931: Escaped elements within a textarea block can cause the textarea box to be closed prematurely
9421
9422         <https://bugs.webkit.org/show_bug.cgi?id=7931>
9423
9424         Reviewed by Darin.
9425
9426         Tests: fast/parser/entity-end-iframe-tag.html
9427                fast/parser/entity-end-script-tag.html
9428                fast/parser/entity-end-style-tag.html
9429                fast/parser/entity-end-textarea-tag.html
9430                fast/parser/entity-end-title-tag.html
9431                fast/parser/entity-end-xmp-tag.html
9432
9433         Previously the parser accepted end tags for textarea, title and
9434         iframe elements that contained entity-escaped characters such as
9435         '&lt;'.  The fix is to save the position of the last entity-escaped
9436         character converted and to use that to make sure the end tag does
9437         not contain an escaped character.
9438
9439         Note that this was not an issue for script, style and xmp elements
9440         since they already ignored entity-escaped characters.
9441
9442         * html/HTMLTokenizer.cpp:
9443         (WebCore::HTMLTokenizer::parseSpecial): When looking for a closing
9444         tag, ignore any text with entity-escaped characters by making sure
9445         lastDecodedEntityPosition is less than the first character of the
9446         end tag.
9447
9448 2008-06-21  Sam Weinig  <sam@webkit.org>
9449
9450         Reviewed by Dan Bernstein.
9451
9452         Fix for https://bugs.webkit.org/show_bug.cgi?id=19647
9453         REGRESSION: Problem with extjs (insertAdjacentHTML)
9454
9455         Test: fast/dynamic/insertAdjacentHTML-allowed-parents.html
9456
9457         * html/HTMLElement.cpp:
9458         (WebCore::HTMLElement::insertAdjacentHTML): Don't use innerHTML logic for creating
9459         the DocumentFragment from the html string.
9460
9461 2008-06-21  Adam Barth  <abarth@webkit.org>
9462
9463         Reviewed by Sam Weinig.
9464
9465         Log error messages to the console when we deny a request for a URL.
9466         These error messages do not appear in LayoutTests, but they do
9467         appear in the WebInspector.
9468
9469         * dom/XMLTokenizer.cpp:
9470         (WebCore::shouldAllowExternalLoad):
9471         * loader/DocLoader.cpp:
9472         (WebCore::DocLoader::requestResource):
9473         (WebCore::DocLoader::printAccessDeniedMessage):
9474         * loader/DocLoader.h:
9475         * xml/XSLTProcessor.cpp:
9476         (WebCore::docLoaderFunc):
9477
9478 2008-06-21  Adam Barth  <abarth@webkit.org>
9479
9480         Reviewed by Sam Weinig.
9481
9482         Fix <https://bugs.webkit.org/show_bug.cgi?id=19649>:
9483           XSL style sheets allowed across origins
9484
9485         Block cross-orgin loads of XSL style sheets, matching Internet
9486         Explorer, Firefox, and Opera.  Also, we now block loading of XBL
9487         across origins, matching Firefox.  The XBL behavior does not appear
9488         testable because XBL seems to not be enabled.
9489
9490         Test: http/tests/security/cross-origin-xsl-BLOCKED.html
9491
9492         * loader/DocLoader.cpp:
9493         (WebCore::DocLoader::requestResource):
9494
9495 2008-06-21  Brett Wilson  <brettw@chromium.org>
9496
9497         Reviewed by Dave Hyatt.
9498
9499         - fix https://bugs.webkit.org/show_bug.cgi?id=19542
9500           <rdar://problem/6007976> Crash in Font::glyphDataForCharacter when getting small caps data
9501
9502         Adds a NULL check for getting the small caps page of glyph data. The
9503         page() function can explicitly return null in some cases, and every
9504         other usage in this function does the check.
9505
9506         * platform/graphics/Font.cpp:
9507         (WebCore::Font::glyphDataForCharacter):
9508
9509 2008-06-21  Alex Taylor  <darwin@milliamp.org>
9510
9511         Reviewed by Dan Bernstein.
9512
9513         Fixes <https://bugs.webkit.org/show_bug.cgi?id=12425>
9514
9515         Adds support for border-radius on legend elements.
9516         Fieldsets with a legend and rounded borders now have a clipping region set
9517         around the legend.
9518         
9519         Test: fast/borders/fieldsetBorderRadius.html
9520
9521         * rendering/RenderFieldset.cpp:
9522         (WebCore::RenderFieldset::paintBoxDecorations):
9523         (WebCore::RenderFieldset::paintBorderMinusLegend): Removed a FIXME.
9524
9525 2008-06-21  Kevin Ollivier  <kevino@theolliviers.com>
9526
9527         wx build fix. Adding CSSVariable* API sources to the Bakefiles.
9528
9529         * WebCoreSources.bkl:
9530
9531 2008-06-20  Sam Weinig  <sam@webkit.org>
9532
9533         Fix Windows build.
9534
9535         * bindings/scripts/CodeGeneratorCOM.pm:
9536
9537 2008-06-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
9538
9539         Gtk build fix: Add files missing in the previous fix (r34705)
9540
9541         * GNUmakefile.am:
9542
9543 2008-06-20  Dan Bernstein  <mitz@apple.com>
9544
9545         Reviewed by Sam Weinig.
9546
9547         - fix leak of mask images
9548
9549         * rendering/RenderObject.cpp:
9550         (WebCore::RenderObject::arenaDelete): Added a call to removeClient() on
9551         the mask box image.
9552
9553 2008-06-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
9554
9555         Gtk build fix for r34702, r34700 and r34693
9556         Qt build fix for r34700 and r34693
9557
9558         * GNUmakefile.am:
9559         * WebCore.pro:
9560         * platform/gtk/RenderThemeGtk.cpp:
9561         * platform/gtk/RenderThemeGtk.h:
9562         * platform/qt/RenderThemeQt.cpp:
9563         * platform/qt/RenderThemeQt.h:
9564
9565 2008-06-20  Sam Weinig  <sam@webkit.org>
9566
9567         Reviewed by Adele Peterson.
9568
9569         Add 'files' property to the HTMLInputElement, which returns a FileList object 
9570         (when type=file, null otherwise) containing a list of all the files selected.
9571         It currently always contains only 0 or 1 files as multifile input is not supported 
9572         yet.  The list contains File objects which contains the name and size of the file. 
9573         The inspiration for these interfaces is from:
9574             - http://developer.mozilla.org/en/docs/nsIDOMFileList
9575             - http://developer.mozilla.org/en/docs/nsIDOMFile
9576
9577         Also fixes <rdar://problem/6022802>
9578
9579         * DerivedSources.make:
9580         * GNUmakefile.am:
9581         * WebCore.pro:
9582         * WebCore.vcproj/WebCore.vcproj:
9583         * WebCore.xcodeproj/project.pbxproj:
9584         * WebCoreSources.bkl:
9585         * bindings/objc/DOMInternal.h:
9586         * bindings/scripts/CodeGenerator.pm:
9587         * bindings/scripts/IDLStructure.pm:
9588         * html/File.cpp: Added.
9589         (WebCore::File::File):
9590         (WebCore::File::fileSize):
9591         * html/File.h: Added.
9592         (WebCore::File::create):
9593         (WebCore::File::fileName):
9594         (WebCore::File::path):
9595         * html/File.idl: Added.
9596         * html/FileList.cpp: Added.
9597         (WebCore::FileList::FileList):
9598         (WebCore::FileList::item):
9599         * html/FileList.h: Added.
9600         (WebCore::FileList::create):
9601         (WebCore::FileList::length):
9602         (WebCore::FileList::isEmpty):
9603         (WebCore::FileList::clear):
9604         (WebCore::FileList::append):
9605         * html/FileList.idl: Added.
9606         * html/HTMLInputElement.cpp:
9607         (WebCore::HTMLInputElement::setInputType):
9608         (WebCore::HTMLInputElement::appendFormData):
9609         (WebCore::HTMLInputElement::value):
9610         (WebCore::HTMLInputElement::setValue):
9611         (WebCore::HTMLInputElement::setValueFromRenderer):
9612         (WebCore::HTMLInputElement::files):
9613         * html/HTMLInputElement.h:
9614         * html/HTMLInputElement.idl:
9615         * page/DOMWindow.idl:
9616
9617 2008-06-20  David Hyatt  <hyatt@apple.com>
9618
9619         Make sure CSS variables work inside the inline style attribute.
9620
9621         Reviewed by Beth
9622
9623         Added fast/css/variables/inline-style-test.html
9624
9625         * css/CSSMutableStyleDeclaration.cpp:
9626         (WebCore::CSSMutableStyleDeclaration::removeProperty):
9627         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
9628
9629 2008-06-20  David Hyatt  <hyatt@apple.com>
9630
9631         Add support for the CSSVariablesRule and CSSVariablesDeclaration DOM APIs.  These allow querying of
9632         variables names and values, as well as iteration, setting and removal.
9633
9634         Reviewed by Sam
9635
9636         Added multiple new tests to fast/css/variables/
9637
9638         * DerivedSources.make:
9639         * WebCore.xcodeproj/project.pbxproj:
9640         * bindings/js/JSCSSRuleCustom.cpp:
9641         (WebCore::toJS):
9642         * bindings/objc/DOMInternal.h:
9643         * bindings/scripts/CodeGeneratorJS.pm:
9644         * css/CSSPrimitiveValue.cpp:
9645         (WebCore::CSSPrimitiveValue::parserValue):
9646         * css/CSSVariablesDeclaration.cpp:
9647         (WebCore::CSSVariablesDeclaration::removeVariable):
9648         (WebCore::CSSVariablesDeclaration::setVariable):
9649         (WebCore::CSSVariablesDeclaration::setCssText):
9650         (WebCore::CSSVariablesDeclaration::setChanged):
9651         * css/CSSVariablesDeclaration.h:
9652         * css/CSSVariablesDeclaration.idl: Added.
9653         * css/CSSVariablesRule.h:
9654         * css/CSSVariablesRule.idl: Added.
9655
9656 2008-06-20  Kevin McCullough  <kmccullough@apple.com>
9657
9658         Rubber stamped by Adele. 
9659
9660         * manual-tests/inspector/profiler-test-stop-profiling-after-setTimeout.html: Added.
9661
9662 2008-06-20  Kevin McCullough  <kmccullough@apple.com>
9663
9664         Reviewed by Tim.
9665
9666         <rdar://problem/5958770> JSProfiler: Time incorrectly given to (idle)
9667         if profiling is started and finished within the same function. (19230)
9668         - Now we profile one more stack frame up from the last frame to allocate
9669         the time spent in it, if it exists.
9670
9671         * page/Console.cpp:
9672         * manual-tests/inspector/profiler-test-start-and-stop-profiling-in-the-same-function.html: Added.
9673         (WebCore::Console::profile): When stating the profiler give a client for
9674         the callback of when the profile actually finishes.
9675         (WebCore::Console::profileEnd): No longer needs to handle the return of
9676         the profile object since it will be retruned in the client's callback.
9677         (WebCore::Console::finishedProfiling): Implemenet the ProfileClient
9678         callback method.
9679         * page/Console.h: Inherit from the ProfileClient.
9680         * page/InspectorController.cpp:
9681         (WebCore::InspectorController::startUserInitiatedProfiling): Use the
9682         client callback.
9683         (WebCore::InspectorController::stopUserInitiatedProfiling): Does not
9684         need to handle the profile being returned as it is now handled by the
9685         client callback.
9686         (WebCore::InspectorController::finishedProfiling): Implement the
9687         ProfileClient callback method.
9688         * page/InspectorController.h: Inherit from the ProfileClient.
9689
9690 2008-06-20  Timothy Hatcher  <timothy@apple.com>
9691
9692         Makes the JavaScript syntax highlighter process lines in chunks
9693         so the user interface isn't blocked for large script files.
9694
9695         https://bugs.webkit.org/show_bug.cgi?id=19677
9696
9697         Reviewed by Adam Roben.
9698
9699         * page/inspector/SourceFrame.js:
9700         (WebInspector.SourceFrame.prototype._addMessageToSource): Use the cells
9701         property on the row instead of getElementsByTagName.
9702         (WebInspector.SourceFrame.prototype.syntaxHighlightJavascript): Use the
9703         cells property on the row instead of getElementsByTagName. Added
9704         a nested processChunk function that highlights 10 lines at a time
9705         This processChunk function is called at an interval of 25ms. The
9706         code is still highlighted quickly, and the user can't tell it wasn't
9707         highlighted all at once.
9708
9709 2008-06-20  Timothy Hatcher  <timothy@apple.com>
9710
9711         Fixes a bug where the source view in the Resources panel had a
9712         couple of extra pixels at the bottom when fully scrolled.
9713
9714         Reviewed by Adam Roben.
9715
9716         * page/inspector/SourceFrame.js:
9717         (WebInspector.SourceFrame.prototype.set autoSizesToFitContentHeight):
9718         Call removeStyleClass instead of addStyleClass for "webkit-height-sized-to-fit"
9719         when sizing to fit is being disabled.
9720         * page/inspector/inspector.css:
9721         (.resource-view.headers-visible .source-view-frame): Added the
9722         vertical-align: top property to prevent line alignment from adding extra
9723         pixels on the bottom.
9724
9725 2008-06-20  Timothy Hatcher  <timothy@apple.com>
9726
9727         Changed all lineHeight, baselinePosition and verticalPositionHint
9728         calls to return int instead of short. The short was overflowing
9729         when a value greater than 32,767 was encountered.
9730
9731         Fixes: iframes with a height of 32,768px or greater do not layout correctly
9732         https://bugs.webkit.org/show_bug.cgi?id=19679
9733
9734         Reviewed by Dave Hyatt.
9735
9736         Test: fast/css/line-height-overflow.html
9737
9738         * rendering/RenderBR.cpp:
9739         (WebCore::RenderBR::baselinePosition):
9740         * rendering/RenderBR.h:
9741         * rendering/RenderBlock.cpp:
9742         (WebCore::RenderBlock::lineHeight):
9743         * rendering/RenderBlock.h:
9744         * rendering/RenderFlow.cpp:
9745         * rendering/RenderFlow.h:
9746         * rendering/RenderListBox.cpp:
9747         * rendering/RenderListBox.h:
9748         * rendering/RenderListMarker.cpp:
9749         (WebCore::RenderListMarker::lineHeight):
9750         * rendering/RenderListMarker.h:
9751         * rendering/RenderObject.cpp:
9752         (WebCore::RenderObject::verticalPositionHint):
9753         * rendering/RenderObject.h:
9754         (WebCore::):
9755         * rendering/RenderPath.cpp:
9756         (WebCore::RenderPath::lineHeight):
9757         * rendering/RenderPath.h:
9758         * rendering/RenderReplaced.cpp:
9759         (WebCore::RenderReplaced::lineHeight):
9760         * rendering/RenderReplaced.h:
9761         * rendering/RenderSVGContainer.cpp:
9762         (WebCore::RenderSVGContainer::lineHeight):
9763         * rendering/RenderSVGContainer.h:
9764         * rendering/RenderSVGHiddenContainer.cpp:
9765         (WebCore::RenderSVGHiddenContainer::lineHeight):
9766         * rendering/RenderSVGHiddenContainer.h:
9767         * rendering/RenderSVGRoot.cpp:
9768         (WebCore::RenderSVGRoot::lineHeight):
9769         * rendering/RenderSVGRoot.h:
9770         * rendering/RenderSlider.cpp:
9771         * rendering/RenderSlider.h:
9772         * rendering/RenderTableCell.cpp:
9773         * rendering/RenderTableCell.h:
9774         * rendering/RenderTableCol.h:
9775         * rendering/RenderTableRow.h:
9776         * rendering/RenderTableSection.h:
9777         * rendering/RenderText.cpp:
9778         * rendering/RenderText.h:
9779         * rendering/RenderTextControl.cpp:
9780         * rendering/RenderTextControl.h:
9781         * rendering/RenderTheme.cpp:
9782         * rendering/RenderTheme.h:
9783         * rendering/RenderThemeMac.h:
9784         * rendering/RenderThemeMac.mm:
9785         * rendering/RenderThemeSafari.cpp:
9786         * rendering/RenderThemeSafari.h:
9787
9788 2008-06-20  Dan Bernstein  <mitz@apple.com>
9789
9790         Reviewed by Darin Adler.
9791
9792         - fix https://bugs.webkit.org/show_bug.cgi?id=19519
9793           <rdar://problem/6007345> DOM modification causes stack exhaustion (BUTTON OBJECT COLGROUP)
9794
9795         Test: fast/table/prepend-in-anonymous-table.html
9796
9797         * rendering/RenderBlock.cpp:
9798         (WebCore::RenderBlock::addChildToFlow): Added code to handle the case
9799         of inserting before a child that has been wrapped by an anonymous table,
9800         in which case if the new child is the type that needs to be in a table,
9801         it is inserted into the table, and otherwise it is inserted before the
9802         table.
9803         * rendering/RenderTable.cpp:
9804         (WebCore::RenderTable::addChild): Added table-column-group alongside
9805         table-caption as content that can exist inside an anonymous table
9806         without being wrapped in a table section.
9807
9808 2008-06-20  David Hyatt  <hyatt@apple.com>
9809
9810         Allow CSS variables to support arbitrary expressions as values instead of just a single term.
9811
9812         Reviewed by Sam
9813
9814         Removed fast/css/variables/single-term-test.html and replaced with multiple-term-test.html
9815
9816         * css/CSSGrammar.y:
9817         * css/CSSParser.cpp:
9818         (WebCore::CSSParser::addVariable):
9819         * css/CSSParser.h:
9820         * css/CSSStyleSelector.cpp:
9821         (WebCore::CSSStyleSelector::addMatchedDeclaration):
9822         * css/CSSVariablesDeclaration.cpp:
9823         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
9824         (WebCore::CSSVariablesDeclaration::getVariableValue):
9825         (WebCore::CSSVariablesDeclaration::addParsedVariable):
9826         (WebCore::CSSVariablesDeclaration::getParsedVariable):
9827         * css/CSSVariablesDeclaration.h:
9828         (WebCore::CSSVariablesDeclaration::create):
9829
9830 2008-06-19  Dan Bernstein  <mitz@apple.com>
9831
9832         Reviewed by John Sullivan.
9833
9834         - fix a bug where anonymous tables were inserted in the wrong place
9835
9836         Tests: tables/mozilla/bugs/bug2479-2.html
9837                tables/mozilla/bugs/bug278266.html
9838                tables/mozilla/bugs/bug8411.xml
9839
9840         * rendering/RenderContainer.cpp:
9841         (WebCore::RenderContainer::addChild): Changed to create an anonymous
9842         table and insert it before beforeChild unless the insertion point is
9843         right after an existing anonymous table, in which case the existing
9844         table is used.
9845
9846 2008-06-19  Justin Garcia  <justin.garcia@apple.com>
9847
9848         Reviewed by Oliver.
9849
9850         <https://bugs.webkit.org/show_bug.cgi?id=16049>
9851         execCommand('backColor') fails on collapsed selections
9852
9853         * editing/EditorCommand.cpp:
9854         (WebCore::CommandEntry::): Enable BackColor for caret selections, and
9855         disable ForeColor in plaintext-only regions.
9856
9857 2008-06-19  Justin Garcia  <justin.garcia@apple.com>
9858
9859         Reviewed by John.
9860
9861         <https://bugs.webkit.org/show_bug.cgi?id=19653>
9862         Typing style lost when creating list from, indenting or outdenting an empty paragraph
9863         
9864         There were two problems.  First, moveParagraphs didn't preserve the style of empty paragraphs.
9865         Second, indent, outdent and list creation returned false from preservesTypingStyle.
9866         The second problem couldn't be fixed by just adding preservesTypingStyle() { return true; }
9867         to those commands, though, because of other bugs.
9868         
9869         Cleaned up the implementation of typing style enough to remove FIXMEs for:
9870         
9871         <rdar://problem/3769899> Implementation of typing style needs improvement 
9872         
9873         which has actually been closed for some time now anyway.
9874         
9875         * dom/Document.cpp: Removed an unused header.
9876         * editing/CompositeEditCommand.cpp:
9877         (WebCore::CompositeEditCommand::moveParagraphs): Preserve the style of an empty paragraph, too.
9878         * editing/DeleteSelectionCommand.cpp:
9879         (WebCore::DeleteSelectionCommand::saveTypingStyleState): Removed FIXME.
9880         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): 
9881         Removed FIXME.  
9882         If there is a typing style to apply after a delete, apply it to any line break that acts as a paragraph
9883         placeholder, not only one that was inserted by deletion.  This fixes a bug where deleting
9884         <div><b>Bold</b><br></div>, changing the selection and then coming back and typing wouldn't 
9885         produce bold text.  
9886         Don't set the EditCommand's typingStyle, it has been removed (more on that later).
9887         (WebCore::DeleteSelectionCommand::doApply): We don't need to pass calculateTypingStyleAfterDelete
9888         the inserted placeholder because it will find it.
9889         (WebCore::DeleteSelectionCommand::preservesTypingStyle): Normally deletion doesn't preserve the 
9890         typing style that was present before it.  For example, type a character, Bold, then delete the 
9891         character and start typing.  The Bold typing style shouldn't stick around.  We got this right before 
9892         purely by chance. Deletion should preserve a typing style that *it* sets, however.
9893         * editing/DeleteSelectionCommand.h: No longer need to pass calculateTypingStyleAfterDelete
9894         the inserted placeholder.
9895         * editing/EditCommand.cpp:
9896         (WebCore::EditCommand::apply): 
9897         Clearing or not clearing a removed anchor should not be determined by whether or not a command 
9898         preservesTypingStyle().  For example, the deletion that removed an anchor (and stored it), may 
9899         not preserve the typing style, but that doesn't mean that it should then go and clear the removed 
9900         anchor.  All high level commands, and all commands that a TypingCommand spawns, except for
9901         text insertions, which should restore a removed anchor, should clear it.
9902         There is no longer a typing style on EditCommand, removed code that cleared it.  Code that clears the 
9903         *actual* typing style is now in Editor::appliedEditing, just like before.
9904         There is no longer a typing style on EditCommand, removed code to set one.
9905         (WebCore::EditCommand::styleAtPosition): Removed FIXME.
9906         * editing/EditCommand.h: 
9907         Removed code assosiated with m_typingStyle.
9908         Made preservesTypingStyle() public, so that we can call it from Editor::appliedEditing().
9909         * editing/Editor.cpp:
9910         (WebCore::Editor::appliedEditing):
9911         Removed code to preserve the removedAnchor during the call to setSelection, because we no longer
9912         request to clear the typing style with that call.  Also removed the FIXME about this.
9913         Before, a command would set the Frame's typing style by setting its own typingStyle, and then 
9914         letting code here, in appliedEditing pick that up and set it on the Frame.  Now, the command 
9915         itself sets the Frame's typing style.  Deletion is the only command that does this right now.
9916         * editing/IndentOutdentCommand.h:
9917         (WebCore::IndentOutdentCommand::preservesTypingStyle): Added, returns true.
9918         * editing/InsertLineBreakCommand.cpp:
9919         (WebCore::InsertLineBreakCommand::doApply): Removed FIXME.
9920         * editing/InsertListCommand.h:
9921         (WebCore::InsertListCommand::preservesTypingStyle): Added.
9922         * editing/InsertParagraphSeparatorCommand.cpp:
9923         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Removed FIXME.
9924         * editing/InsertTextCommand.cpp:
9925         (WebCore::InsertTextCommand::input): Removed FIXME.
9926         * editing/ReplaceSelectionCommand.cpp:
9927         (WebCore::ReplaceSelectionCommand::doApply): Removed FIXME and also added one about clearing
9928         the typing style here.  It seems like it's something that could wait until after the command
9929         has been performed, since there is no code between this point and the end of the operation
9930         that queries or uses the typing style.
9931
9932 2008-06-19  Dan Bernstein  <mitz@apple.com>
9933
9934         Reviewed by Alexey Proskuryakov.
9935
9936         - fix crash in CSSStyleDeclaration::copyPropertiesInSet()
9937
9938         Covered by many editing tests
9939
9940         * css/CSSStyleDeclaration.cpp:
9941         (WebCore::CSSStyleDeclaration::copyPropertiesInSet): Re-ordered to avoid
9942         null pointer deref.
9943
9944 2008-06-19  David Hyatt  <hyatt@apple.com>
9945
9946         Fix out of bounds bug in CSSVariablesDeclaration's item() method.
9947
9948         Reviewed by Sam, Darin
9949
9950         * css/CSSVariablesDeclaration.cpp:
9951         (WebCore::CSSVariablesDeclaration::item):
9952         * css/CSSVariablesDeclaration.h:
9953
9954 2008-06-19  John Sullivan  <sullivan@apple.com>
9955
9956         Reviewed by Darin
9957         
9958         Tweak to previous checkin
9959
9960         * page/FrameView.cpp:
9961         (WebCore::FrameView::performPostLayoutTasks):
9962         clear m_firstLayoutCallbackPending before performing callback, to avoid recursion
9963
9964 2008-06-19  John Sullivan  <sullivan@apple.com>
9965
9966         Reviewed by Darin
9967         
9968         - fixed <rdar://problem/6021353> Assertion failure (!root->needsLayout()) after certain steps
9969         
9970         The didFirstLayout callback was called in a place where trouble would ensue if the client
9971         did any work that would cause the layout to be dirtied. Fixed by delaying the callback
9972         until performPostLayoutTasks.
9973
9974         * page/FrameView.cpp:
9975         new m_firstLayoutCallbackPending instance member variable in FrameViewPrivate
9976         (WebCore::FrameViewPrivate::reset):
9977         set m_firstLayoutCallbackPending to false
9978         (WebCore::FrameView::layout):
9979         set m_firstLayoutCallbackPending instead of a local variable; don't do didFirstLayout callback here
9980         (WebCore::FrameView::performPostLayoutTasks):
9981         if m_firstLayoutCallbackPending is set, do didFirstLayout callback here, then clear m_firstLayoutCallbackPending
9982
9983 2008-06-19  David Hyatt  <hyatt@apple.com>
9984
9985         Implement some cleanup of CSS variables based off Darin's review comments.
9986
9987         Reviewed by darin
9988
9989         * css/CSSParser.cpp:
9990         (WebCore::CSSParser::parseVariable):
9991         (WebCore::CSSParser::checkForVariables):
9992         (WebCore::CSSParser::addUnresolvedProperty):
9993         * css/CSSStyleSelector.cpp:
9994         (WebCore::CSSStyleSelector::addMatchedDeclaration):
9995         * css/CSSVariableDependentValue.h:
9996         * css/CSSVariablesRule.cpp:
9997         (WebCore::CSSVariablesRule::CSSVariablesRule):
9998
9999 2008-06-19  John Sullivan  <sullivan@apple.com>
10000
10001         Rubber-stamped by Dan
10002         
10003         Prepended all FrameViewPrivate instance member variables with "m_" (in preparation
10004         for adding a new one in a future patch)
10005
10006         * page/FrameView.cpp:
10007         (WebCore::FrameViewPrivate::FrameViewPrivate):
10008         (WebCore::FrameViewPrivate::reset):
10009         (WebCore::FrameView::~FrameView):
10010         (WebCore::FrameView::resetScrollbars):
10011         (WebCore::FrameView::didFirstLayout):
10012         (WebCore::FrameView::initScrollbars):
10013         (WebCore::FrameView::layoutCount):
10014         (WebCore::FrameView::needsFullRepaint):
10015         (WebCore::FrameView::layoutRoot):
10016         (WebCore::FrameView::layout):
10017         (WebCore::FrameView::scrollTo):
10018         (WebCore::FrameView::useSlowRepaints):
10019         (WebCore::FrameView::setUseSlowRepaints):
10020         (WebCore::FrameView::removeSlowRepaintObject):
10021         (WebCore::FrameView::setScrollbarsMode):
10022         (WebCore::FrameView::setVScrollbarMode):
10023         (WebCore::FrameView::setHScrollbarMode):
10024         (WebCore::FrameView::scheduleRelayout):
10025         (WebCore::FrameView::scheduleRelayoutOfSubtree):
10026         (WebCore::FrameView::layoutPending):
10027         (WebCore::FrameView::needsLayout):
10028         (WebCore::FrameView::unscheduleRelayout):
10029         (WebCore::FrameView::isTransparent):
10030         (WebCore::FrameView::setTransparent):
10031         (WebCore::FrameView::baseBackgroundColor):
10032         (WebCore::FrameView::setBaseBackgroundColor):
10033         (WebCore::FrameView::performPostLayoutTasks):
10034         (WebCore::FrameView::updateOverflowStatus):
10035
10036 2008-06-19  David Hyatt  <hyatt@apple.com>
10037
10038         Add initial support for CSS variables.  Non-dynamic cases should (hopefully) all work.  Things will get
10039         confused if you use the CSS OM to remove variables/inject variables, etc.  In addition no DOM APIs are
10040         exposed yet for the new variable interfaces.
10041
10042         Reviewed by Beth
10043
10044         Added many tests to fast/css/variables/
10045
10046         * WebCore.xcodeproj/project.pbxproj:
10047         * css/CSSFunctionValue.cpp: Added.
10048         (WebCore::CSSFunctionValue::CSSFunctionValue):
10049         (WebCore::CSSFunctionValue::~CSSFunctionValue):
10050         (WebCore::CSSFunctionValue::cssText):
10051         (WebCore::CSSFunctionValue::parserValue):
10052         * css/CSSFunctionValue.h: Added.
10053         (WebCore::CSSFunctionValue::create):
10054         * css/CSSGrammar.y:
10055         * css/CSSMutableStyleDeclaration.cpp:
10056         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
10057         (WebCore::CSSMutableStyleDeclaration::copy):
10058         * css/CSSMutableStyleDeclaration.h:
10059         (WebCore::CSSMutableStyleDeclaration::create):
10060         (WebCore::CSSMutableStyleDeclaration::hasVariableDependentValue):
10061         * css/CSSParser.cpp:
10062         (WebCore::equal):
10063         (WebCore::equalIgnoringCase):
10064         (WebCore::CSSParser::~CSSParser):
10065         (WebCore::CSSParserString::lower):
10066         (WebCore::CSSParser::document):
10067         (WebCore::CSSParser::validUnit):
10068         (WebCore::unitFromString):
10069         (WebCore::CSSParser::checkForOrphanedUnits):
10070         (WebCore::CSSParser::parseValue):
10071         (WebCore::CSSParser::parseFillShorthand):
10072         (WebCore::CSSParser::parseTransitionShorthand):
10073         (WebCore::CSSParser::parseContent):
10074         (WebCore::CSSParser::parseFillImage):
10075         (WebCore::CSSParser::parseFillPosition):
10076         (WebCore::CSSParser::parseFillSize):
10077         (WebCore::CSSParser::parseFillProperty):
10078         (WebCore::CSSParser::parseTransitionDuration):
10079         (WebCore::CSSParser::parseTransitionRepeatCount):
10080         (WebCore::CSSParser::parseTimingFunctionValue):
10081         (WebCore::CSSParser::parseTransitionTimingFunction):
10082         (WebCore::CSSParser::parseTransitionProperty):
10083         (WebCore::skipCommaInDashboardRegion):
10084         (WebCore::CSSParser::parseDashboardRegions):
10085         (WebCore::CSSParser::parseCounterContent):
10086         (WebCore::CSSParser::parseShape):
10087         (WebCore::CSSParser::parseFont):
10088         (WebCore::CSSParser::parseFontFamily):
10089         (WebCore::CSSParser::parseFontFaceSrc):
10090         (WebCore::CSSParser::parseFontFaceUnicodeRange):
10091         (WebCore::CSSParser::parseColorParameters):
10092         (WebCore::CSSParser::parseHSLParameters):
10093         (WebCore::CSSParser::parseColor):
10094         (WebCore::CSSParser::parseColorFromValue):
10095         (WebCore::ShadowParseContext::commitLength):
10096         (WebCore::CSSParser::parseShadow):
10097         (WebCore::CSSParser::parseReflect):
10098         (WebCore::BorderImageParseContext::commitNumber):
10099         (WebCore::BorderImageParseContext::commitWidth):
10100         (WebCore::BorderImageParseContext::commitBorderImage):
10101         (WebCore::CSSParser::parseBorderImage):
10102         (WebCore::CSSParser::parseCounter):
10103         (WebCore::parseGradientPoint):
10104         (WebCore::parseGradientColorStop):
10105         (WebCore::CSSParser::parseGradient):
10106         (WebCore::CSSParser::parseCanvas):
10107         (WebCore::TransformOperationInfo::TransformOperationInfo):
10108         (WebCore::CSSParser::parseTransform):
10109         (WebCore::CSSParser::lex):
10110         (WebCore::CSSParser::text):
10111         (WebCore::CSSParser::createFloatingValueList):
10112         (WebCore::CSSParser::sinkFloatingValueList):
10113         (WebCore::CSSParser::createFloatingFunction):
10114         (WebCore::CSSParser::sinkFloatingFunction):
10115         (WebCore::CSSParser::sinkFloatingValue):
10116         (WebCore::CSSParser::createFloatingMediaQueryExp):
10117         (WebCore::CSSParser::createCharsetRule):
10118         (WebCore::CSSParser::createImportRule):
10119         (WebCore::CSSParser::createVariablesRule):
10120         (WebCore::CSSParser::addVariable):
10121         (WebCore::CSSParser::clearVariables):
10122         (WebCore::CSSParser::parseVariable):
10123         (WebCore::CSSParser::parsePropertyWithResolvedVariables):
10124         (WebCore::CSSParser::checkForVariables):
10125         (WebCore::CSSParser::addUnresolvedProperty):
10126         (WebCore::cssPropertyID):
10127         (WebCore::cssValueKeywordID):
10128         * css/CSSParser.h:
10129         * css/CSSParserValues.cpp: Added.
10130         (WebCore::CSSParserValueList::~CSSParserValueList):
10131         (WebCore::CSSParserValueList::addValue):
10132         (WebCore::CSSParserValueList::deleteValueAt):
10133         (WebCore::CSSParserValue::createCSSValue):
10134         * css/CSSParserValues.h: Added.
10135         (WebCore::CSSParserString::operator String):
10136         (WebCore::CSSParserString::operator AtomicString):
10137         (WebCore::CSSParserValue::):
10138         (WebCore::CSSParserValueList::CSSParserValueList):
10139         (WebCore::CSSParserValueList::size):
10140         (WebCore::CSSParserValueList::current):
10141         (WebCore::CSSParserValueList::next):
10142         (WebCore::CSSParserValueList::valueAt):
10143         (WebCore::CSSParserValueList::clear):
10144         (WebCore::CSSParserValueList::containsVariables):
10145         (WebCore::CSSParserFunction::~CSSParserFunction):
10146         * css/CSSPrimitiveValue.cpp:
10147         (WebCore::CSSPrimitiveValue::getStringValue):
10148         (WebCore::CSSPrimitiveValue::cssText):
10149         (WebCore::CSSPrimitiveValue::parserValue):
10150         * css/CSSPrimitiveValue.h:
10151         (WebCore::CSSPrimitiveValue::):
10152         (WebCore::CSSPrimitiveValue::setPrimitiveType):
10153         * css/CSSRule.h:
10154         (WebCore::CSSRule::):
10155         * css/CSSRule.idl:
10156         * css/CSSStyleDeclaration.cpp:
10157         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
10158         * css/CSSStyleSelector.cpp:
10159         (WebCore::CSSStyleSelector::addMatchedDeclaration):
10160         (WebCore::CSSStyleSelector::addVariables):
10161         (WebCore::CSSStyleSelector::resolveVariableDependentValue):
10162         (WebCore::CSSRuleSet::addRulesFromSheet):
10163         (WebCore::CSSStyleSelector::applyDeclarations):
10164         * css/CSSStyleSelector.h:
10165         * css/CSSValue.h:
10166         (WebCore::CSSValue::isVariableDependentValue):
10167         (WebCore::CSSValue::parserValue):
10168         * css/CSSValueList.cpp:
10169         (WebCore::CSSValueList::CSSValueList):
10170         (WebCore::CSSValueList::createParserValueList):
10171         * css/CSSValueList.h:
10172         (WebCore::CSSValueList::createFromParserValueList):
10173         * css/CSSVariableDependentValue.cpp: Added.
10174         (WebCore::CSSVariableDependentValue::CSSVariableDependentValue):
10175         (WebCore::CSSVariableDependentValue::~CSSVariableDependentValue):
10176         (WebCore::CSSVariableDependentValue::cssText):
10177         * css/CSSVariableDependentValue.h: Added.
10178         (WebCore::CSSVariableDependentValue::create):
10179         (WebCore::CSSVariableDependentValue::isVariableDependentValue):
10180         (WebCore::CSSVariableDependentValue::valueList):
10181         * css/CSSVariablesDeclaration.cpp: Added.
10182         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
10183         (WebCore::CSSVariablesDeclaration::~CSSVariablesDeclaration):
10184         (WebCore::CSSVariablesDeclaration::getVariableValue):
10185         (WebCore::CSSVariablesDeclaration::removeVariable):
10186         (WebCore::CSSVariablesDeclaration::setVariable):
10187         (WebCore::CSSVariablesDeclaration::addParsedVariable):
10188         (WebCore::CSSVariablesDeclaration::getParsedVariable):
10189         (WebCore::CSSVariablesDeclaration::length):
10190         (WebCore::CSSVariablesDeclaration::item):
10191         (WebCore::CSSVariablesDeclaration::parentRule):
10192         (WebCore::CSSVariablesDeclaration::cssText):
10193         * css/CSSVariablesDeclaration.h: Added.
10194         (WebCore::CSSVariablesDeclaration::create):
10195         * css/CSSVariablesRule.cpp: Added.
10196         (WebCore::CSSVariablesRule::CSSVariablesRule):
10197         (WebCore::CSSVariablesRule::~CSSVariablesRule):
10198         (WebCore::CSSVariablesRule::cssText):
10199         * css/CSSVariablesRule.h: Added.
10200         (WebCore::CSSVariablesRule::media):
10201         (WebCore::CSSVariablesRule::variables):
10202         (WebCore::CSSVariablesRule::type):
10203         (WebCore::CSSVariablesRule::isVariablesRule):
10204         (WebCore::CSSVariablesRule::setDeclaration):
10205         * css/MediaQueryExp.cpp:
10206         (WebCore::MediaQueryExp::MediaQueryExp):
10207         * css/MediaQueryExp.h:
10208         * css/SVGCSSParser.cpp:
10209         (WebCore::CSSParser::parseSVGValue):
10210         (WebCore::CSSParser::parseSVGStrokeDasharray):
10211         * css/StyleBase.h:
10212         (WebCore::StyleBase::isVariablesRule):
10213         * css/tokenizer.flex:
10214
10215 2008-06-19  Julien Chaffraix  <jchaffraix@webkit.org>
10216
10217         Reviewed by Darin.
10218
10219         Bug 19529 : Empty clients need to be refactored
10220         https://bugs.webkit.org/show_bug.cgi?id=19529
10221
10222         - SVGImageEmptyClients' refactoring in order to be able to use them for other
10223         elements.
10224
10225         - Trimmed empty spaces that were pointed out by git.
10226
10227         * WebCore.xcodeproj/project.pbxproj:
10228         * loader/EmptyClients.h: Copied from WebCore/svg/graphics/SVGImageEmptyClients.h.
10229
10230         (WebCore::EmptyChromeClient::~EmptyChromeClient):
10231         (WebCore::EmptyFrameLoaderClient::~EmptyFrameLoaderClient):
10232         (WebCore::EmptyEditorClient::~EmptyEditorClient):
10233         (WebCore::EmptyEditorClient::smartInsertDeleteEnabled):
10234         (WebCore::EmptyContextMenuClient::~EmptyContextMenuClient):
10235         (WebCore::EmptyDragClient::~EmptyDragClient):
10236         (WebCore::EmptyDragClient::createDragImageForLink):
10237         (WebCore::EmptyInspectorClient::~EmptyInspectorClient):
10238         Renamed SVGImageEmpty*Client classes to Empty*Client.
10239
10240         * svg/graphics/SVGImage.cpp:
10241         (WebCore::SVGImage::dataChanged):
10242         * svg/graphics/SVGImageEmptyClients.h: Removed.
10243
10244 2008-06-19  Dan Bernstein  <mitz@apple.com>
10245
10246         Reviewed by Darin Adler.
10247
10248         - fix <rdar://problem/6008098> REGRESSION: Crash at FontFallbackList::fontDataAt()
10249
10250         Test: fast/css/font-face-multiple-families.html
10251
10252         Made changes to reflect the fact that the relationship between
10253         CSSFontFace and CSSSegmentedFontFace is in fact many-to-many.
10254
10255         * css/CSSFontFace.cpp:
10256         (WebCore::CSSFontFace::addedToSegmentedFontFace): Added.
10257         (WebCore::CSSFontFace::removedFromSegmentedFontFace): Added.
10258         (WebCore::CSSFontFace::fontLoaded): Changed to notify all segmented font
10259         faces that include this font face.
10260         (WebCore::CSSFontFace::getFontData): Updated to get the font selector
10261         from one of the segmented font faces.
10262         * css/CSSFontFace.h:
10263         (WebCore::CSSFontFace::CSSFontFace):
10264         * css/CSSFontSelector.cpp:
10265         (WebCore::CSSFontSelector::addFontFaceRule): Fixed the direct cause of
10266         the crash, namely releasing the font face when adding it to the first
10267         family that uses it, making it impossible to add it to the second and
10268         onwards families.
10269         * css/CSSSegmentedFontFace.cpp:
10270         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace): Added code to
10271         call CSSFontFace::removedFromSegmentedFontFace().
10272         (WebCore::CSSSegmentedFontFace::overlayRange): Added code to call
10273         CSSFontFace::{addedTo, removedFrom}SegmentedFontFace().
10274
10275 2008-06-19  Alexey Proskuryakov  <ap@webkit.org>
10276
10277         Qt build fix.
10278
10279         * bridge/qt/qt_runtime.h: Include completion.h.
10280
10281 2008-06-17  Alexey Proskuryakov  <ap@webkit.org>
10282
10283         Reviewed by Darin.
10284
10285         Prepare JavaScript heap for being per-thread.
10286
10287         * ForwardingHeaders/kjs/JSGlobalData.h: Added.
10288         * bindings/js/GCController.cpp:
10289         (WebCore::collect):
10290         (WebCore::GCController::gcTimerFired):
10291         (WebCore::GCController::garbageCollectNow):
10292         * bindings/js/JSAudioConstructor.cpp:
10293         (WebCore::JSAudioConstructor::JSAudioConstructor):
10294         * bindings/js/JSCSSRuleCustom.cpp:
10295         (WebCore::toJS):
10296         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
10297         (WebCore::JSCSSStyleDeclaration::nameGetter):
10298         * bindings/js/JSCSSValueCustom.cpp:
10299         (WebCore::toJS):
10300         * bindings/js/JSCanvasPixelArrayCustom.cpp:
10301         (WebCore::JSCanvasPixelArray::indexGetter):
10302         (WebCore::toJS):
10303         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
10304         (WebCore::toJS):
10305         * bindings/js/JSClipboardCustom.cpp:
10306         (WebCore::JSClipboard::types):
10307         (WebCore::JSClipboard::getData):
10308         * bindings/js/JSCustomXPathNSResolver.cpp:
10309         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
10310         * bindings/js/JSDOMApplicationCacheCustom.cpp:
10311         (WebCore::JSDOMApplicationCache::addEventListener):
10312         (WebCore::JSDOMApplicationCache::removeEventListener):
10313         (WebCore::JSDOMApplicationCache::setOnchecking):
10314         (WebCore::JSDOMApplicationCache::setOnerror):
10315         (WebCore::JSDOMApplicationCache::setOnnoupdate):
10316         (WebCore::JSDOMApplicationCache::setOndownloading):
10317         (WebCore::JSDOMApplicationCache::setOnprogress):
10318         (WebCore::JSDOMApplicationCache::setOnupdateready):
10319         (WebCore::JSDOMApplicationCache::setOncached):
10320         * bindings/js/JSDOMBinding.cpp:
10321         (WebCore::jsStringOrNull):
10322         (WebCore::jsOwnedStringOrNull):
10323         (WebCore::jsStringOrUndefined):
10324         (WebCore::jsStringOrFalse):
10325         (WebCore::nonCachingStaticFunctionGetter):
10326         (WebCore::objectToStringFunctionGetter):
10327         * bindings/js/JSDOMBinding.h:
10328         (WebCore::DOMObject::DOMObject):
10329         (WebCore::cacheDOMObject):
10330         (WebCore::cacheSVGDOMObject):
10331         * bindings/js/JSDOMWindowBase.cpp:
10332         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
10333         (WebCore::JSDOMWindowBase::getValueProperty):
10334         (WebCore::JSDOMWindowBase::setListener):
10335         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
10336         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
10337         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
10338         (WebCore::windowProtoFuncAToB):
10339         (WebCore::windowProtoFuncBToA):
10340         (WebCore::windowProtoFuncSetTimeout):
10341         (WebCore::windowProtoFuncSetInterval):
10342         (WebCore::windowProtoFuncAddEventListener):
10343         * bindings/js/JSDOMWindowBase.h:
10344         * bindings/js/JSDOMWindowShell.cpp:
10345         (WebCore::JSDOMWindowShell::operator new):
10346         * bindings/js/JSDOMWindowShell.h:
10347         * bindings/js/JSDocumentCustom.cpp:
10348         (WebCore::toJS):
10349         * bindings/js/JSElementCustom.cpp:
10350         (WebCore::toJSNewlyCreated):
10351         * bindings/js/JSEventCustom.cpp:
10352         (WebCore::toJS):
10353         * bindings/js/JSEventListener.cpp:
10354         (WebCore::JSLazyEventListener::eventParameterName):
10355         (WebCore::JSLazyEventListener::parseCode):
10356         * bindings/js/JSEventTargetBase.cpp:
10357         (WebCore::jsEventTargetAddEventListener):
10358         * bindings/js/JSEventTargetBase.h:
10359         (WebCore::JSEventTargetPrototype::self):
10360         * bindings/js/JSEventTargetNode.cpp:
10361         (WebCore::JSEventTargetNode::setListener):
10362         * bindings/js/JSHTMLCollectionCustom.cpp:
10363         (WebCore::getNamedItems):
10364         (WebCore::toJS):
10365         * bindings/js/JSHTMLFormElementCustom.cpp:
10366         (WebCore::JSHTMLFormElement::nameGetter):
10367         * bindings/js/JSHTMLInputElementBase.cpp:
10368         (WebCore::JSHTMLInputElementBase::getValueProperty):
10369         * bindings/js/JSHTMLOptionElementConstructor.cpp:
10370         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
10371         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
10372         (WebCore::JSHTMLOptionsCollection::length):
10373         * bindings/js/JSInspectedObjectWrapper.cpp:
10374         (WebCore::JSInspectedObjectWrapper::wrap):
10375         * bindings/js/JSInspectorCallbackWrapper.cpp:
10376         (WebCore::JSInspectorCallbackWrapper::wrap):
10377         * bindings/js/JSLocationCustom.cpp:
10378         (WebCore::JSLocation::toString):
10379         * bindings/js/JSNamedNodesCollection.cpp:
10380         (WebCore::JSNamedNodesCollection::lengthGetter):
10381         * bindings/js/JSNavigatorCustom.cpp:
10382         (WebCore::JSNavigator::appVersion):
10383         * bindings/js/JSNodeCustom.cpp:
10384         (WebCore::createWrapper):
10385         * bindings/js/JSNodeFilterCustom.cpp:
10386         (WebCore::JSNodeFilter::acceptNode):
10387         * bindings/js/JSPluginElementFunctions.cpp:
10388         (WebCore::getRuntimeObject):
10389         * bindings/js/JSRGBColor.cpp:
10390         (WebCore::getJSRGBColor):
10391         * bindings/js/JSSQLResultSetRowListCustom.cpp:
10392         (WebCore::JSSQLResultSetRowList::item):
10393         * bindings/js/JSSVGLazyEventListener.cpp:
10394         (WebCore::JSSVGLazyEventListener::eventParameterName):
10395         * bindings/js/JSStorageCustom.cpp:
10396         (WebCore::JSStorage::nameGetter):
10397         * bindings/js/JSStyleSheetCustom.cpp:
10398         (WebCore::toJS):
10399         * bindings/js/JSTextCustom.cpp:
10400         (WebCore::toJSNewlyCreated):
10401         * bindings/js/JSXMLHttpRequestConstructor.cpp:
10402         (WebCore::JSXMLHttpRequestConstructor::construct):
10403         * bindings/js/JSXMLHttpRequestCustom.cpp:
10404         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
10405         (WebCore::JSXMLHttpRequest::setOnload):
10406         (WebCore::JSXMLHttpRequest::setOnprogress):
10407         (WebCore::JSXMLHttpRequest::getResponseHeader):
10408         (WebCore::JSXMLHttpRequest::addEventListener):
10409         (WebCore::JSXMLHttpRequest::removeEventListener):
10410         * bindings/js/JSXSLTProcessorConstructor.cpp:
10411         (WebCore::JSXSLTProcessorConstructor::construct):
10412         * bindings/js/JSXSLTProcessorCustom.cpp:
10413         (WebCore::JSXSLTProcessor::getParameter):
10414         * bindings/scripts/CodeGeneratorJS.pm:
10415         * bridge/c/c_instance.cpp:
10416         (KJS::Bindings::CInstance::defaultValue):
10417         (KJS::Bindings::CInstance::stringValue):
10418         (KJS::Bindings::CInstance::numberValue):
10419         (KJS::Bindings::CInstance::valueOf):
10420         * bridge/c/c_instance.h:
10421         * bridge/c/c_utility.cpp:
10422         (KJS::Bindings::convertNPVariantToValue):
10423         * bridge/jni/jni_instance.cpp:
10424         (JavaInstance::stringValue):
10425         (JavaInstance::numberValue):
10426         (JavaInstance::invokeMethod):
10427         (JavaInstance::defaultValue):
10428         (JavaInstance::valueOf):
10429         * bridge/jni/jni_instance.h:
10430         * bridge/jni/jni_jsobject.h:
10431         * bridge/jni/jni_jsobject.mm:
10432         (JavaJSObject::call):
10433         (JavaJSObject::setMember):
10434         (JavaJSObject::setSlot):
10435         (JavaJSObject::convertJObjectToValue):
10436         (JavaJSObject::getListFromJArray):
10437         * bridge/jni/jni_objc.mm:
10438         (KJS::Bindings::dispatchJNICall):
10439         * bridge/jni/jni_runtime.cpp:
10440         (JavaArray::convertJObjectToArray):
10441         (JavaField::dispatchValueFromInstance):
10442         (JavaField::valueFromInstance):
10443         (JavaField::dispatchSetValueToInstance):
10444         (JavaArray::valueAt):
10445         * bridge/jni/jni_utility.h:
10446         * bridge/objc/objc_class.mm:
10447         (KJS::Bindings::ObjcClass::fallbackObject):
10448         * bridge/objc/objc_instance.h:
10449         * bridge/objc/objc_instance.mm:
10450         (ObjcInstance::defaultValue):
10451         (ObjcInstance::stringValue):
10452         (ObjcInstance::numberValue):
10453         (ObjcInstance::valueOf):
10454         * bridge/objc/objc_utility.h:
10455         * bridge/objc/objc_utility.mm:
10456         (KJS::Bindings::convertNSStringToString):
10457         (KJS::Bindings::convertObjcValueToValue):
10458         * bridge/runtime.cpp:
10459         (KJS::Bindings::Instance::createRuntimeObject):
10460         * bridge/runtime.h:
10461         (KJS::Bindings::Instance::valueOf):
10462         * bridge/runtime_array.cpp:
10463         (RuntimeArray::lengthGetter):
10464         * bridge/runtime_method.cpp:
10465         (RuntimeMethod::lengthGetter):
10466         * bridge/runtime_object.cpp:
10467         (RuntimeObjectImp::RuntimeObjectImp):
10468         (RuntimeObjectImp::methodGetter):
10469         (RuntimeObjectImp::defaultValue):
10470         * dom/make_names.pl:
10471         * xml/XMLHttpRequest.cpp:
10472         (WebCore::XMLHttpRequest::dropProtection):
10473         * bridge/qt/qt_class.cpp:
10474         (KJS::Bindings::QtClass::fallbackObject):
10475         * bridge/qt/qt_instance.cpp:
10476         (KJS::Bindings::QtRuntimeObjectImp::construct):
10477         (KJS::Bindings::QtInstance::getRuntimeObject):
10478         (KJS::Bindings::QtInstance::invokeDefaultMethod):
10479         (KJS::Bindings::QtInstance::defaultValue):
10480         (KJS::Bindings::QtInstance::stringValue):
10481         (KJS::Bindings::QtInstance::numberValue):
10482         (KJS::Bindings::QtInstance::valueOf):
10483         * bridge/qt/qt_instance.h:
10484         * bridge/qt/qt_runtime.cpp:
10485         (KJS::Bindings::convertValueToQVariant):
10486         (KJS::Bindings::convertQVariantToValue):
10487         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
10488         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
10489         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
10490         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
10491         (KJS::Bindings::QtConnectionObject::execute):
10492         Pass ExecState* where now required.
10493
10494 2008-06-19  Timothy Hatcher  <timothy@apple.com>
10495
10496         Update the JavaScript syntax highlight colors to match Xcode.
10497         This matches the other Xcode colors we are using for HTML.
10498
10499         Reviewed by Dan Bernstein.
10500
10501         * page/inspector/SourceFrame.js:
10502
10503 2008-06-19  Keishi Hattori  <casey.hattori@gmail.com>
10504
10505         Added JavaScript syntax highlighting to the Web Inspector.
10506
10507         https://bugs.webkit.org/show_bug.cgi?id=14360
10508
10509         Reviewed by Tim Hatcher and Adam Roben.
10510
10511         * page/inspector/ScriptView.js: Added a call to syntaxHighlightJavascript.
10512         * page/inspector/SourceFrame.js:
10513         (WebInspector.SourceFrame.prototype._syntaxHighlightJavascriptLine): Added.
10514         Modifies a line content element.
10515         (WebInspector.SourceFrame.prototype.syntaxHighlightJavascript): Added.
10516         Syntax highlights the entire script.
10517         * page/inspector/SourceView.js: Added a call to syntaxHighlightJavascript.
10518
10519 2008-06-19  Alex Mathews  <possessedpenguinbob@gmail.com>
10520
10521         Reviewed by Oliver.
10522
10523         Starting to clean up the SVG Filter code. Mostly adding 'create' wrapper
10524         functions and changing raw pointer fields to RefPtrs.
10525
10526         * Configurations/WebCore.xcconfig:
10527         * WebCore.xcodeproj/project.pbxproj:
10528         * svg/SVGFEBlendElement.cpp:
10529         (WebCore::SVGFEBlendElement::~SVGFEBlendElement):
10530         (WebCore::SVGFEBlendElement::filterEffect):
10531         * svg/SVGFEBlendElement.h:
10532         * svg/SVGFEColorMatrixElement.cpp:
10533         (WebCore::SVGFEColorMatrixElement::~SVGFEColorMatrixElement):
10534         (WebCore::SVGFEColorMatrixElement::filterEffect):
10535         * svg/SVGFEColorMatrixElement.h:
10536         * svg/SVGFEComponentTransferElement.cpp:
10537         (WebCore::SVGFEComponentTransferElement::~SVGFEComponentTransferElement):
10538         (WebCore::SVGFEComponentTransferElement::filterEffect):
10539         * svg/SVGFEComponentTransferElement.h:
10540         * svg/SVGFECompositeElement.cpp:
10541         (WebCore::SVGFECompositeElement::~SVGFECompositeElement):
10542         (WebCore::SVGFECompositeElement::filterEffect):
10543         * svg/SVGFECompositeElement.h:
10544         * svg/SVGFEDiffuseLightingElement.cpp:
10545         (WebCore::SVGFEDiffuseLightingElement::~SVGFEDiffuseLightingElement):
10546         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
10547         * svg/SVGFEDiffuseLightingElement.h:
10548         * svg/SVGFEDisplacementMapElement.cpp:
10549         (WebCore::SVGFEDisplacementMapElement::~SVGFEDisplacementMapElement):
10550         (WebCore::SVGFEDisplacementMapElement::filterEffect):
10551         * svg/SVGFEDisplacementMapElement.h:
10552         * svg/SVGFEFloodElement.cpp:
10553         (WebCore::SVGFEFloodElement::~SVGFEFloodElement):
10554         (WebCore::SVGFEFloodElement::filterEffect):
10555         * svg/SVGFEFloodElement.h:
10556         * svg/SVGFEGaussianBlurElement.cpp:
10557         (WebCore::SVGFEGaussianBlurElement::~SVGFEGaussianBlurElement):
10558         (WebCore::SVGFEGaussianBlurElement::filterEffect):
10559         * svg/SVGFEGaussianBlurElement.h:
10560         * svg/SVGFEImageElement.cpp:
10561         (WebCore::SVGFEImageElement::~SVGFEImageElement):
10562         (WebCore::SVGFEImageElement::filterEffect):
10563         * svg/SVGFEImageElement.h:
10564         * svg/SVGFEMergeElement.cpp:
10565         (WebCore::SVGFEMergeElement::~SVGFEMergeElement):
10566         (WebCore::SVGFEMergeElement::filterEffect):
10567         * svg/SVGFEMergeElement.h:
10568         * svg/SVGFEOffsetElement.cpp:
10569         (WebCore::SVGFEOffsetElement::~SVGFEOffsetElement):
10570         (WebCore::SVGFEOffsetElement::filterEffect):
10571         * svg/SVGFEOffsetElement.h:
10572         * svg/SVGFESpecularLightingElement.cpp:
10573         (WebCore::SVGFESpecularLightingElement::~SVGFESpecularLightingElement):
10574         (WebCore::SVGFESpecularLightingElement::filterEffect):
10575         * svg/SVGFESpecularLightingElement.h:
10576         * svg/SVGFETileElement.cpp:
10577         (WebCore::SVGFETileElement::~SVGFETileElement):
10578         (WebCore::SVGFETileElement::filterEffect):
10579         * svg/SVGFETileElement.h:
10580         * svg/SVGFETurbulenceElement.cpp:
10581         (WebCore::SVGFETurbulenceElement::~SVGFETurbulenceElement):
10582         (WebCore::SVGFETurbulenceElement::filterEffect):
10583         * svg/SVGFETurbulenceElement.h:
10584         * svg/graphics/SVGResourceFilter.cpp:
10585         (WebCore::SVGResourceFilter::addFilterEffect):
10586         * svg/graphics/SVGResourceFilter.h:
10587         * svg/graphics/filters/SVGFEBlend.cpp:
10588         (WebCore::SVGFEBlend::create):
10589         * svg/graphics/filters/SVGFEBlend.h:
10590         * svg/graphics/filters/SVGFEColorMatrix.cpp:
10591         (WebCore::SVGFEColorMatrix::create):
10592         * svg/graphics/filters/SVGFEColorMatrix.h:
10593         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
10594         (WebCore::SVGFEComponentTransfer::create):
10595         * svg/graphics/filters/SVGFEComponentTransfer.h:
10596         * svg/graphics/filters/SVGFEComposite.cpp:
10597         (WebCore::SVGFEComposite::create):
10598         * svg/graphics/filters/SVGFEComposite.h:
10599         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
10600         (WebCore::SVGFEConvolveMatrix::create):
10601         * svg/graphics/filters/SVGFEConvolveMatrix.h:
10602         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
10603         (WebCore::SVGFEDiffuseLighting::create):
10604         (WebCore::SVGFEDiffuseLighting::~SVGFEDiffuseLighting):
10605         (WebCore::SVGFEDiffuseLighting::lightSource):
10606         (WebCore::SVGFEDiffuseLighting::setLightSource):
10607         * svg/graphics/filters/SVGFEDiffuseLighting.h:
10608         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
10609         (WebCore::SVGFEDisplacementMap::create):
10610         * svg/graphics/filters/SVGFEDisplacementMap.h:
10611         * svg/graphics/filters/SVGFEFlood.cpp:
10612         (WebCore::SVGFEFlood::create):
10613         * svg/graphics/filters/SVGFEFlood.h:
10614         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
10615         (WebCore::SVGFEGaussianBlur::create):
10616         * svg/graphics/filters/SVGFEGaussianBlur.h:
10617         * svg/graphics/filters/SVGFEImage.cpp:
10618         (WebCore::SVGFEImage::create):
10619         * svg/graphics/filters/SVGFEImage.h:
10620         * svg/graphics/filters/SVGFEMerge.cpp:
10621         (WebCore::SVGFEMerge::SVGFEMerge):
10622         (WebCore::SVGFEMerge::create):
10623         * svg/graphics/filters/SVGFEMerge.h:
10624         * svg/graphics/filters/SVGFEOffset.cpp:
10625         (WebCore::SVGFEOffset::create):
10626         * svg/graphics/filters/SVGFEOffset.h:
10627         * svg/graphics/filters/SVGFESpecularLighting.cpp:
10628         (WebCore::SVGFESpecularLighting::create):
10629         (WebCore::SVGFESpecularLighting::~SVGFESpecularLighting):
10630         (WebCore::SVGFESpecularLighting::lightSource):
10631         (WebCore::SVGFESpecularLighting::setLightSource):
10632         * svg/graphics/filters/SVGFESpecularLighting.h:
10633         * svg/graphics/filters/SVGFETile.cpp: Added.
10634         (WebCore::SVGFETile::SVGFETile):
10635         (WebCore::SVGFETile::create):
10636         * svg/graphics/filters/SVGFETile.h:
10637         * svg/graphics/filters/SVGFETurbulence.cpp:
10638         (WebCore::SVGFETurbulence::create):
10639         * svg/graphics/filters/SVGFETurbulence.h:
10640         * svg/graphics/filters/SVGFilterEffect.h:
10641         * svg/graphics/filters/SVGLightSource.h:
10642
10643 2008-06-18  Adele Peterson  <adele@apple.com>
10644
10645         Reviewed by Dan Bernstein.
10646
10647         Fix assertion in fast/dom/ImageDocument-image-deletion.html caused by new media document creation.
10648
10649         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
10650           Create the media document after we're done processing pdfs and images.
10651
10652 192008-06-17  Dan Bernstein  <mitz@apple.com>
10653
10654         Reviewed by Darin Adler.
10655
10656         - fix https://bugs.webkit.org/show_bug.cgi?id=19598
10657           Crash in WebCore::RenderBlock::determineStartPosition
10658
10659         Test: fast/dynamic/floating-to-positioned-2.html
10660
10661         * rendering/RenderObject.cpp:
10662         (WebCore::RenderObject::setStyle): Changed to also remove relatively
10663         positioned floats from object lists when they become positioned, because
10664         then they cease to be floating.
10665
10666 2008-06-18  Darin Adler  <darin@apple.com>
10667
10668         Reviewed by Mark Rowe.
10669
10670         - fix storage leak
10671
10672         * css/CSSMutableStyleDeclaration.cpp:
10673         (WebCore::CSSMutableStyleDeclaration::copy): Added an adoptRef that
10674         I missed when changing these objects to start with a refcount of 1.
10675
10676 2008-06-18  Timothy Hatcher  <timothy@apple.com>
10677
10678         Add a script build phase to remove the WebKit.qrc file from
10679         WebCore's resources. This file is used for the Qt port, but we
10680         copy the whole inspector folder for connivence and get this file.
10681
10682         Reviewed by Adam Roben.
10683
10684         * WebCore.xcodeproj/project.pbxproj: New script phase.
10685
10686 2008-06-18  Timothy Hatcher  <timothy@apple.com>
10687
10688         Combine the Web Inspector's JavaScript resources into one large
10689         script file to speed up loading of the Inspector. This is only
10690         done for Release and Production builds.
10691
10692         Reviewed by Adam Roben.
10693
10694         * WebCore.xcodeproj/project.pbxproj: Added a Streamline Inspector Source
10695         script build phase that calls combine-javascript-resources and
10696         moves files around in the build directory.
10697         * combine-javascript-resources: Added.
10698
10699 2008-06-18  Rob Buis  <buis@kde.org>
10700
10701         Reviewed by Darin.
10702
10703         https://bugs.webkit.org/show_bug.cgi?id=18786
10704         Once rendered, SVG text elements removed from DOM continue to be displayed
10705
10706         Repaint the text visual rect before removing it.
10707
10708         * rendering/RenderSVGInlineText.cpp:
10709         (WebCore::RenderSVGInlineText::destroy):
10710         * rendering/RenderSVGInlineText.h:
10711
10712 2008-06-18  Christian Dywan  <christian@twotoasts.de>
10713
10714         Gtk build fix, brought up by Dirk Schulze.
10715
10716         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
10717
10718 2008-06-17  Beth Dakin  <bdakin@apple.com>
10719
10720         Reviewed by Tim.
10721
10722         This patch removes all instances of the phrase "TextMarker" from 
10723         function names in the C++ accessibility code. TextMarkers only 
10724         exists in the Objective-C code.
10725
10726         * page/AccessibilityObject.cpp:
10727         (WebCore::AccessibilityObject::visiblePositionRangeForLine):
10728         (WebCore::AccessibilityObject::visiblePositionRangeForUnorderedPositions):
10729         (WebCore::AccessibilityObject::positionOfLeftWord):
10730         (WebCore::AccessibilityObject::positionOfRightWord):
10731         (WebCore::AccessibilityObject::leftLineVisiblePositionRange):
10732         (WebCore::AccessibilityObject::rightLineVisiblePositionRange):
10733         (WebCore::AccessibilityObject::sentenceForPosition):
10734         (WebCore::AccessibilityObject::paragraphForPosition):
10735         (WebCore::AccessibilityObject::styleRangeForPosition):
10736         (WebCore::AccessibilityObject::visiblePositionRangeForRange):
10737         (WebCore::AccessibilityObject::stringForVisiblePositionRange):
10738         (WebCore::AccessibilityObject::boundsForVisiblePositionRange):
10739         (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
10740         (WebCore::AccessibilityObject::setSelectedVisiblePositionRange):
10741         (WebCore::AccessibilityObject::visiblePositionForPoint):
10742         (WebCore::AccessibilityObject::nextVisiblePosition):
10743         (WebCore::AccessibilityObject::previousVisiblePosition):
10744         (WebCore::AccessibilityObject::nextWordEnd):
10745         (WebCore::AccessibilityObject::previousWordStart):
10746         (WebCore::AccessibilityObject::nextLineEndPosition):
10747         (WebCore::AccessibilityObject::previousLineStartPosition):
10748         (WebCore::AccessibilityObject::nextSentenceEndPosition):
10749         (WebCore::AccessibilityObject::previousSentenceStartPosition):
10750         (WebCore::AccessibilityObject::nextParagraphEndPosition):
10751         (WebCore::AccessibilityObject::previousParagraphStartPosition):
10752         (WebCore::AccessibilityObject::visiblePositionForIndex):
10753         (WebCore::AccessibilityObject::accessibilityObjectForPosition):
10754         (WebCore::AccessibilityObject::lineForPosition):
10755         (WebCore::AccessibilityObject::plainTextRangeForVisiblePositionRange):
10756         (WebCore::AccessibilityObject::index):
10757         (WebCore::AccessibilityObject::doAXRangeForPosition):
10758         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
10759         (WebCore::AccessibilityObject::doAXLineForIndex):
10760         * page/AccessibilityObject.h:
10761         * page/AccessibilityRenderObject.cpp:
10762         (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
10763         (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
10764         (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
10765         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
10766         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
10767         (WebCore::AccessibilityRenderObject::index):
10768         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
10769         * page/AccessibilityRenderObject.h:
10770         * page/mac/AccessibilityObjectWrapper.mm:
10771         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
10772         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
10773         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
10774         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
10775
10776 2008-06-17  Mark Rowe  <mrowe@apple.com>
10777
10778         Reviewed by Darin Adler.
10779
10780         <rdar://problem/5775802> WebCore should not force use of GCC 4.0.
10781
10782         * WebCore.xcodeproj/project.pbxproj:
10783
10784 2008-06-17  Darin Adler  <darin@apple.com>
10785
10786         Reviewed by Sam.
10787
10788         - eliminate the last RefCounted client that needs the "start at 0" behavior, NodeFilter
10789
10790         - move handling of non-Attr arguments from the code generation script to the DOM
10791           itself (as with every other type of argument)
10792
10793         * bindings/js/JSNodeFilterCustom.cpp:
10794         (WebCore::toNodeFilter): Changed return type to PassRefPtr. Use create instead of new.
10795
10796         * bindings/objc/DOM.mm:
10797         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
10798         Use create instead of new.
10799         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
10800         Ditto.
10801
10802         * bindings/scripts/CodeGeneratorJS.pm: Use PassRefPtr and RefPtr for toNodeFilter and
10803         the local variable for NodeFilter arguments. Remove the TypeCanFailConversion mechanism:
10804         It's no longer needed for Attr, was not having any effect for VoidCallback, and was
10805         returning false for all other types.
10806
10807         * dom/Element.cpp:
10808         (WebCore::Element::setAttributeNode): Added code to return TYPE_MISMATCH_ERR when
10809         the attr is 0 -- this matches what the autogenerated bindings did before.
10810         (WebCore::Element::setAttributeNodeNS): Ditto.
10811         (WebCore::Element::removeAttributeNode): Ditto.
10812
10813         * dom/NodeFilter.h: Added create, made constructor private, and got rid of code to
10814         initialize the refcount to 0.
10815
10816         * html/CanvasPattern.h: Made CachedResourceClient base class private in a
10817         more-explicit way.
10818
10819 2008-06-17  Adam Roben  <aroben@apple.com>
10820
10821         Fix <rdar://6016755> Assertion failure when WebView is child of
10822         message-only window
10823
10824         Reviewed by Ada Chan.
10825
10826         No test possible.
10827
10828         * platform/win/WindowMessageBroadcaster.cpp:
10829         (WebCore::WindowMessageBroadcaster::addListener): Only subclass the
10830         window when we're adding our first listener. Removed an assertion that
10831         an old WNDPROC was returned -- this will be 0 in the case of a
10832         message-only window. Added an assertion to help catch cases where we
10833         try to subclass the window twice.
10834         (WebCore::WindowMessageBroadcaster::unsubclassWindow): Removed an
10835         assertion that is not correct in the message-only window case.
10836
10837 2008-06-17  Adele Peterson  <adele@apple.com>
10838
10839         Attempt to fix builds by wrapping new code in #if ENABLE(VIDEO)
10840
10841         * loader/MediaDocument.cpp:
10842         * loader/MediaDocument.h:
10843
10844 2008-06-17  Adele Peterson  <adele@apple.com>
10845
10846         Attempt to fix builds by wrapping new code in #if ENABLE(VIDEO)
10847
10848         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
10849
10850 2008-06-17  Adele Peterson  <adele@apple.com>
10851
10852         Reviewed by Brady.
10853
10854         Fix for <rdar://problem/5605768> Render full-page video/audio with <video>/<audio> instead of QuickTime plug-in
10855
10856         * WebCore.xcodeproj/project.pbxproj: Added MediaDocument class.
10857         * GNUmakefile.am: ditto.
10858         * WebCore.pro: ditto.
10859         * WebCore.vcproj/WebCore.vcproj: ditto.
10860         * WebCoreSources.bkl: ditto.
10861
10862         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
10863           Check to see if the type can be played by our MediaPlayer, if so create a MediaDocument
10864         * dom/Document.h: (WebCore::Document::isMediaDocument): Added.
10865
10866         * loader/MediaDocument.cpp: Added.
10867         (WebCore::MediaTokenizer::MediaTokenizer):
10868         (WebCore::MediaTokenizer::wantsRawData):
10869         (WebCore::MediaTokenizer::write):
10870         (WebCore::MediaTokenizer::createDocumentStructure):
10871         (WebCore::MediaTokenizer::writeRawData):
10872         (WebCore::MediaTokenizer::stopParsing):
10873         (WebCore::MediaTokenizer::finish):
10874         (WebCore::MediaTokenizer::isWaitingForScripts):
10875         (WebCore::MediaDocument::MediaDocument):
10876         (WebCore::MediaDocument::createTokenizer):
10877         * loader/MediaDocument.h: Added.
10878         (WebCore::MediaDocument::create):
10879         (WebCore::MediaDocument::isMediaDocument):
10880
10881         * page/InspectorController.cpp: (WebCore::getResourceDocumentNode):
10882           Added MediaDocument case so it is handled the same as a PluginDocument or ImageDocument.
10883         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::supportsType): Added.
10884         * platform/graphics/MediaPlayer.h:
10885         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::updateControlVisibility):
10886           Instead of checking the html element to decide if the media is audio, check the player.
10887           This means that if a video element actually only contains audio, then we will still avoid fading the controls in and out.
10888
10889 2008-06-17  Timothy Hatcher  <timothy@apple.com>
10890
10891         Adds the file name and line number for call frames next to
10892         the function name in the Call Stack pane.
10893
10894         https://bugs.webkit.org/show_bug.cgi?id=19586
10895
10896         Reviewed by Adam Roben.
10897
10898         * English.lproj/localizedStrings.js: Updated strings.
10899         * page/inspector/CallStackSidebarPane.js:
10900         (WebInspector.CallStackSidebarPane.prototype.update): Create a subtitle
10901         based on the URL and line number.
10902
10903 2008-06-17  Timothy Hatcher  <timothy@apple.com>
10904
10905         Use accurate call frame title's based on the call frame type.
10906
10907         https://bugs.webkit.org/show_bug.cgi?id=19585
10908
10909         Reviewed by Geoff Garen.
10910
10911         * English.lproj/localizedStrings.js: Updated strings.
10912         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
10913         (WebCore::JSJavaScriptCallFrame::evaluate): Removed the isValid()
10914         check since the evaluate() functiondoes the check already.
10915         (WebCore::JSJavaScriptCallFrame::thisObject): Removed the isValid()
10916         check, since thisObject() does the check and returns null if invalid.
10917         (WebCore::JSJavaScriptCallFrame::type): Return a string
10918         based on the enum value of the type.
10919         (WebCore::JSJavaScriptCallFrame::scopeChain): Removed the isValid()
10920         check, since scopeChain() does the check and returns null if invalid.
10921         So just null check scopeChain().
10922         * page/JavaScriptCallFrame.cpp:
10923         (WebCore::JavaScriptCallFrame::type): Return the DebuggerCallFrame::Type.
10924         Return DebuggerCallFrame::UnknownType if the call frame is invalid.
10925         * page/JavaScriptCallFrame.h:
10926         * page/JavaScriptCallFrame.idl: Add the type property.
10927         * page/inspector/CallStackSidebarPane.js:
10928         (WebInspector.CallStackSidebarPane.prototype.update): Check the type
10929         of the call frame to create the correct title.
10930         * page/inspector/ScriptsPanel.js:
10931         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use the
10932         "(program)" title for the file menu to match the call frames.
10933
10934 2008-06-17  Timothy Hatcher  <timothy@apple.com>
10935
10936         Remember the expanded state of objects in the Scope Variables pane when stepping.
10937         https://bugs.webkit.org/show_bug.cgi?id=19584
10938
10939         Reviewed by Adam Roben.
10940
10941         * page/inspector/ObjectPropertiesSection.js:
10942         (WebInspector.ObjectPropertiesSection): Add an optional argument
10943         that is the treeElementConstructor to use when making TreeElements.
10944         (WebInspector.ObjectPropertiesSection.prototype.onpopulate): Use
10945         the treeElementConstructor to create TreeElements.
10946         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate): Use
10947         the treeElementConstructor to create TreeElements.
10948         * page/inspector/ScopeChainSidebarPane.js:
10949         (WebInspector.ScopeChainSidebarPane.prototype.update): Create an
10950         _expandedProperties object on the callframe if one doesn't exist yet.
10951         Pass WebInspector.ScopeVariableTreeElement to the ObjectPropertiesSection
10952         as the TreeElement constructor we want to use.
10953         (WebInspector.ScopeVariableTreeElement): Added.
10954         (WebInspector.ScopeVariableTreeElement.prototype.onattach): Expand if the
10955         propertyIdentifier is in the pane's _expandedProperties.
10956         (WebInspector.ScopeVariableTreeElement.prototype.onexpand): Add the
10957         propertyIdentifier to the pane's _expandedProperties.
10958         (WebInspector.ScopeVariableTreeElement.prototype.oncollapse): Remove the
10959         propertyIdentifier from the pane's _expandedProperties.
10960         (WebInspector.ScopeVariableTreeElement.prototype.get propertyIdentifier):
10961         Return an identifier that has the section title, subtile and propertyPath concatenated.
10962         (WebInspector.ScopeVariableTreeElement.prototype.get propertyPath): Return a string
10963         that has the propertyNames up to the root ancestor concatenated with a period.
10964
10965 2008-06-17  Timothy Hatcher  <timothy@apple.com>
10966
10967         Focus the mainPanelsElement in a timeout so it happens after the
10968         initial focus, so it doesn't get reset to the first toolbar button.
10969         This initial focus happens on Mac when the window is made key and
10970         the WebHTMLView becomes the first responder.
10971
10972         https://bugs.webkit.org/show_bug.cgi?id=19587
10973
10974         Reviewed by Adele Peterson.
10975
10976         * page/inspector/inspector.js:
10977         (WebInspector.loaded): Focus the mainPanelsElement in a timeout.
10978
10979 2008-06-17  Timothy Hatcher  <timothy@apple.com>
10980
10981         Use tabIndex in the Web Inspector for focusable areas.
10982         https://bugs.webkit.org/show_bug.cgi?id=19583
10983
10984         Reviewed by Adam Roben.
10985
10986         * page/inspector/Console.js:
10987         (WebInspector.Console): No longer make the messagesElement
10988         focusable since the engine handles the case for us. The promptElement
10989         now handles the key events.
10990         (WebInspector.Console.prototype.show): Set the current focus element
10991         to the prompt element.
10992         (WebInspector.Console.prototype.hide): Set the current focus element
10993         to WebInspector.previousFocusElement.
10994         (WebInspector.Console.prototype._messagesFocused): Removed.
10995         * page/inspector/DataGrid.js:
10996         (WebInspector.DataGrid): Remove the focusable class.
10997         * page/inspector/DatabaseQueryView.js:
10998         (WebInspector.DatabaseQueryView): Remove the focusable class. Set
10999         tabIndex to 0. The promptElement now handles the key events.
11000         (WebInspector.DatabaseQueryView.prototype._focused): Removed.
11001         * page/inspector/inspector.css: Updated selectors to use :focus
11002         instead of .focused and .blurred.
11003         * page/inspector/inspector.html: Removed focusable, focused and blurred
11004         classes and added tabindex attributes.
11005         * page/inspector/inspector.js:
11006         (WebInspector.get previousFocusElement): Added. Returns _previousFocusElement.
11007         (WebInspector.set currentFocusElement): Simplified. Stores the previous element
11008         in _previousFocusElement for clients that need it. Calls focus on the passed
11009         in element or blur on the previous element.
11010         (WebInspector.loaded): Removed the event listener for mousedown. Renamed
11011         changeFocus to focusChanged.
11012         (WebInspector.focusChanged): Renamed from changeFocus. Just sets the
11013         currentFocusElement to the event target.
11014         (WebInspector.startEditing): Changed to use tabIndex and blur events.
11015         Add a more robust check for restoring focus to the previous element
11016         when editing finishes that catches focused descendants.
11017
11018 2008-06-17  Timothy Hatcher  <timothy@apple.com>
11019
11020         Removed redundant if statements and early returns from
11021         AccessibilityRenderObject::ariaRoleAttribute.
11022
11023         Reviewed by Sam Wenig.
11024
11025         * page/AccessibilityRenderObject.cpp:
11026         (AccessibilityRenderObject::ariaRoleAttribute): Removed redundant if
11027         statements and early returns.
11028
11029 2008-06-17  Timothy Hatcher  <timothy@apple.com>
11030
11031         Removed duplicate implementations of setTabIndex. They all matched
11032         the HTMLElement::setTabIndex implementation.
11033
11034         Reviewed by Sam Wenig.
11035
11036         * html/HTMLAnchorElement.cpp: Removed setTabIndex.
11037         * html/HTMLAreaElement.cpp: Ditto.
11038         * html/HTMLFormControlElement.cpp: Ditto.
11039         * html/HTMLFormControlElement.h: Ditto.
11040         * html/HTMLObjectElement.cpp: Ditto.
11041         * html/HTMLObjectElement.h: Ditto.
11042
11043 2008-06-17  Darin Adler  <darin@apple.com>
11044
11045         Reviewed by Sam.
11046
11047         - more of https://bugs.webkit.org/show_bug.cgi?id=17257
11048           start ref counts at 1 instead of 0 for speed
11049
11050         Change StyleBase and all classes derived from it.
11051
11052         * bindings/js/JSRGBColor.cpp:
11053         (WebCore::JSRGBColor::getValueProperty):
11054         * bindings/objc/DOMRGBColor.mm:
11055         (-[DOMRGBColor red]):
11056         (-[DOMRGBColor green]):
11057         (-[DOMRGBColor blue]):
11058         (-[DOMRGBColor alpha]):
11059         * css/CSSBorderImageValue.cpp:
11060         (WebCore::CSSBorderImageValue::cssText):
11061         * css/CSSBorderImageValue.h:
11062         (WebCore::CSSBorderImageValue::create):
11063         * css/CSSCanvasValue.h:
11064         (WebCore::CSSCanvasValue::create):
11065         (WebCore::CSSCanvasValue::setName):
11066         (WebCore::CSSCanvasValue::CSSCanvasValue):
11067         * css/CSSCharsetRule.cpp:
11068         (WebCore::CSSCharsetRule::CSSCharsetRule):
11069         * css/CSSCharsetRule.h:
11070         (WebCore::CSSCharsetRule::create):
11071         (WebCore::CSSCharsetRule::encoding):
11072         (WebCore::CSSCharsetRule::isCharsetRule):
11073         (WebCore::CSSCharsetRule::type):
11074         * css/CSSComputedStyleDeclaration.cpp:
11075         (WebCore::valueForShadow):
11076         (WebCore::valueForNinePieceImage):
11077         (WebCore::valueForReflection):
11078         (WebCore::getPositionOffsetValue):
11079         (WebCore::currentColorOrValidColor):
11080         (WebCore::getBorderRadiusCornerValue):
11081         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
11082         * css/CSSComputedStyleDeclaration.h:
11083         (WebCore::computedStyle):
11084         * css/CSSCursorImageValue.h:
11085         (WebCore::CSSCursorImageValue::create):
11086         * css/CSSFontFaceRule.cpp:
11087         (WebCore::CSSFontFaceRule::CSSFontFaceRule):
11088         * css/CSSFontFaceRule.h:
11089         (WebCore::CSSFontFaceRule::create):
11090         (WebCore::CSSFontFaceRule::isFontFaceRule):
11091         (WebCore::CSSFontFaceRule::type):
11092         * css/CSSFontFaceSrcValue.h:
11093         (WebCore::CSSFontFaceSrcValue::create):
11094         (WebCore::CSSFontFaceSrcValue::createLocal):
11095         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
11096         (WebCore::CSSFontFaceSrcValue::CSSFontFaceSrcValue):
11097         * css/CSSGradientValue.h:
11098         (WebCore::CSSGradientColorStop::CSSGradientColorStop):
11099         (WebCore::CSSGradientValue::create):
11100         (WebCore::CSSGradientValue::CSSGradientValue):
11101         * css/CSSImageGeneratorValue.h:
11102         (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
11103         * css/CSSImageValue.h:
11104         (WebCore::CSSImageValue::create):
11105         * css/CSSImportRule.cpp:
11106         (WebCore::CSSImportRule::CSSImportRule):
11107         (WebCore::CSSImportRule::setCSSStyleSheet):
11108         * css/CSSImportRule.h:
11109         (WebCore::CSSImportRule::create):
11110         (WebCore::CSSImportRule::isImportRule):
11111         (WebCore::CSSImportRule::type):
11112         * css/CSSInheritedValue.h:
11113         (WebCore::CSSInheritedValue::create):
11114         (WebCore::CSSInheritedValue::CSSInheritedValue):
11115         * css/CSSInitialValue.h:
11116         (WebCore::CSSInitialValue::createExplicit):
11117         (WebCore::CSSInitialValue::createImplicit):
11118         (WebCore::CSSInitialValue::CSSInitialValue):
11119         * css/CSSMediaRule.cpp:
11120         (WebCore::CSSMediaRule::CSSMediaRule):
11121         * css/CSSMediaRule.h:
11122         (WebCore::CSSMediaRule::create):
11123         (WebCore::CSSMediaRule::isMediaRule):
11124         (WebCore::CSSMediaRule::type):
11125         * css/CSSMutableStyleDeclaration.cpp:
11126         (WebCore::CSSMutableStyleDeclaration::setProperty):
11127         (WebCore::CSSMutableStyleDeclaration::setStringProperty):
11128         * css/CSSMutableStyleDeclaration.h:
11129         (WebCore::CSSMutableStyleDeclaration::create):
11130         * css/CSSPageRule.cpp:
11131         (WebCore::CSSPageRule::CSSPageRule):
11132         * css/CSSPageRule.h:
11133         (WebCore::CSSPageRule::create):
11134         * css/CSSParser.cpp:
11135         (WebCore::CSSParser::parseColor):
11136         (WebCore::CSSParser::parseValue):
11137         (WebCore::CSSParser::addFillValue):
11138         (WebCore::CSSParser::parseFillShorthand):
11139         (WebCore::CSSParser::addTransitionValue):
11140         (WebCore::CSSParser::parseTransitionShorthand):
11141         (WebCore::CSSParser::parseShorthand):
11142         (WebCore::CSSParser::parseContent):
11143         (WebCore::CSSParser::parseBackgroundColor):
11144         (WebCore::CSSParser::parseFillPositionXY):
11145         (WebCore::CSSParser::parseFillPosition):
11146         (WebCore::CSSParser::parseFillSize):
11147         (WebCore::CSSParser::parseFillProperty):
11148         (WebCore::CSSParser::parseTransitionDuration):
11149         (WebCore::CSSParser::parseTransitionRepeatCount):
11150         (WebCore::CSSParser::parseTransitionTimingFunction):
11151         (WebCore::CSSParser::parseTransitionProperty):
11152         (WebCore::CSSParser::parseDashboardRegions):
11153         (WebCore::CSSParser::parseCounterContent):
11154         (WebCore::CSSParser::parseShape):
11155         (WebCore::CSSParser::parseFont):
11156         (WebCore::CSSParser::parseFontFamily):
11157         (WebCore::CSSParser::parseFontFaceSrc):
11158         (WebCore::CSSParser::parseFontFaceUnicodeRange):
11159         (WebCore::ShadowParseContext::commitValue):
11160         (WebCore::ShadowParseContext::commitLength):
11161         (WebCore::CSSParser::parseShadow):
11162         (WebCore::CSSParser::parseReflect):
11163         (WebCore::BorderImageParseContext::commitNumber):
11164         (WebCore::BorderImageParseContext::commitBorderImage):
11165         (WebCore::CSSParser::parseBorderImage):
11166         (WebCore::CSSParser::parseCounter):
11167         (WebCore::parseGradientPoint):
11168         (WebCore::parseGradientColorStop):
11169         (WebCore::CSSParser::parseGradient):
11170         (WebCore::CSSParser::parseCanvas):
11171         (WebCore::CSSParser::parseTransform):
11172         (WebCore::CSSParser::createMediaList):
11173         (WebCore::CSSParser::createCharsetRule):
11174         (WebCore::CSSParser::createImportRule):
11175         (WebCore::CSSParser::createMediaRule):
11176         (WebCore::CSSParser::createStyleRule):
11177         (WebCore::CSSParser::createFontFaceRule):
11178         * css/CSSPrimitiveValue.h:
11179         (WebCore::CSSPrimitiveValue::):
11180         (WebCore::CSSPrimitiveValue::createIdentifier):
11181         (WebCore::CSSPrimitiveValue::createColor):
11182         (WebCore::CSSPrimitiveValue::create):
11183         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
11184         (WebCore::CSSPrimitiveValue::isPrimitiveValue):
11185         * css/CSSQuirkPrimitiveValue.h:
11186         (WebCore::CSSQuirkPrimitiveValue::create):
11187         * css/CSSReflectValue.h:
11188         (WebCore::CSSReflectValue::create):
11189         * css/CSSRule.cpp:
11190         (WebCore::CSSRule::parentRule):
11191         (WebCore::CSSRule::setCssText):
11192         * css/CSSRule.h:
11193         (WebCore::CSSRule::CSSRule):
11194         (WebCore::CSSRule::isRule):
11195         * css/CSSStyleDeclaration.cpp:
11196         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
11197         * css/CSSStyleDeclaration.h:
11198         * css/CSSStyleRule.cpp:
11199         (WebCore::CSSStyleRule::CSSStyleRule):
11200         * css/CSSStyleRule.h:
11201         (WebCore::CSSStyleRule::create):
11202         (WebCore::CSSStyleRule::isStyleRule):
11203         (WebCore::CSSStyleRule::type):
11204         * css/CSSStyleSelector.cpp:
11205         (WebCore::CSSStyleSelector::CSSStyleSelector):
11206         (WebCore::parseUASheet):
11207         (WebCore::CSSRuleSet::addRulesFromSheet):
11208         (WebCore::CSSStyleSelector::applyProperty):
11209         * css/CSSStyleSheet.cpp:
11210         (WebCore::CSSStyleSheet::checkLoaded):
11211         * css/CSSStyleSheet.h:
11212         (WebCore::CSSStyleSheet::create):
11213         (WebCore::CSSStyleSheet::isCSSStyleSheet):
11214         (WebCore::CSSStyleSheet::type):
11215         * css/CSSTimingFunctionValue.h:
11216         (WebCore::CSSTimingFunctionValue::create):
11217         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
11218         (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
11219         * css/CSSTransformValue.cpp:
11220         (WebCore::CSSTransformValue::CSSTransformValue):
11221         (WebCore::CSSTransformValue::~CSSTransformValue):
11222         (WebCore::CSSTransformValue::addValue):
11223         (WebCore::CSSTransformValue::cssText):
11224         * css/CSSTransformValue.h:
11225         (WebCore::CSSTransformValue::create):
11226         * css/CSSUnicodeRangeValue.h:
11227         (WebCore::CSSUnicodeRangeValue::create):
11228         (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
11229         * css/CSSUnknownRule.h:
11230         * css/CSSValue.h:
11231         (WebCore::CSSValue::isImageGeneratorValue):
11232         (WebCore::CSSValue::isImageValue):
11233         (WebCore::CSSValue::isPrimitiveValue):
11234         (WebCore::CSSValue::isValueList):
11235         (WebCore::CSSValue::isSVGColor):
11236         (WebCore::CSSValue::isSVGPaint):
11237         (WebCore::CSSValue::CSSValue):
11238         * css/CSSValueList.h:
11239         (WebCore::CSSValueList::createCommaSeparated):
11240         (WebCore::CSSValueList::createSpaceSeparated):
11241         (WebCore::CSSValueList::isValueList):
11242         * css/FontFamilyValue.h:
11243         (WebCore::FontFamilyValue::create):
11244         * css/FontValue.h:
11245         (WebCore::FontValue::create):
11246         (WebCore::FontValue::FontValue):
11247         (WebCore::FontValue::isFontValue):
11248         * css/MediaList.cpp:
11249         (WebCore::MediaList::MediaList):
11250         (WebCore::MediaList::deleteMedium):
11251         (WebCore::MediaList::setMediaText):
11252         * css/MediaList.h:
11253         (WebCore::MediaList::create):
11254         (WebCore::MediaList::createAllowingDescriptionSyntax):
11255         (WebCore::MediaList::length):
11256         (WebCore::MediaList::mediaQueries):
11257         * css/MediaQueryEvaluator.cpp:
11258         (WebCore::MediaQueryEvaluator::eval):
11259         * css/MediaQueryExp.cpp:
11260         (WebCore::MediaQueryExp::MediaQueryExp):
11261         * css/SVGCSSComputedStyleDeclaration.cpp:
11262         (WebCore::glyphOrientationToCSSPrimitiveValue):
11263         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
11264         * css/SVGCSSParser.cpp:
11265         (WebCore::CSSParser::parseSVGValue):
11266         (WebCore::CSSParser::parseSVGStrokeDasharray):
11267         (WebCore::CSSParser::parseSVGPaint):
11268         (WebCore::CSSParser::parseSVGColor):
11269         * css/ShadowValue.h:
11270         (WebCore::ShadowValue::create):
11271         * css/StyleBase.h:
11272         (WebCore::StyleBase::isCSSStyleSheet):
11273         (WebCore::StyleBase::isFontFaceRule):
11274         (WebCore::StyleBase::isRule):
11275         (WebCore::StyleBase::isStyleRule):
11276         (WebCore::StyleBase::isStyleSheet):
11277         (WebCore::StyleBase::isXSLStyleSheet):
11278         (WebCore::StyleBase::StyleBase):
11279         * css/StyleList.cpp:
11280         * css/StyleList.h:
11281         (WebCore::StyleList::StyleList):
11282         * css/StyleSheet.h:
11283         (WebCore::StyleSheet::styleSheetChanged):
11284         (WebCore::StyleSheet::isStyleSheet):
11285         * dom/CSSMappedAttributeDeclaration.h:
11286         (WebCore::CSSMappedAttributeDeclaration::create):
11287         (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):
11288         * dom/DOMImplementation.cpp:
11289         (WebCore::DOMImplementation::createCSSStyleSheet):
11290         * dom/Document.cpp:
11291         (WebCore::Document::createCSSStyleDeclaration):
11292         (WebCore::Document::setCSSStyleSheet):
11293         (WebCore::Document::elementSheet):
11294         (WebCore::Document::mappedElementSheet):
11295         (WebCore::Document::recalcStyleSelector):
11296         * dom/Node.cpp:
11297         (WebCore::Node::querySelector):
11298         (WebCore::Node::querySelectorAll):
11299         * dom/Position.cpp:
11300         (WebCore::Position::computedStyle):
11301         * dom/ProcessingInstruction.cpp:
11302         (WebCore::ProcessingInstruction::checkStyleSheet):
11303         (WebCore::ProcessingInstruction::setCSSStyleSheet):
11304         (WebCore::ProcessingInstruction::setXSLStyleSheet):
11305         * dom/ProcessingInstruction.h:
11306         * dom/StyleElement.cpp:
11307         (WebCore::StyleElement::createSheet):
11308         * dom/StyledElement.cpp:
11309         (WebCore::StyledElement::createInlineStyleDecl):
11310         (WebCore::StyledElement::createMappedDecl):
11311         * editing/ApplyStyleCommand.cpp:
11312         (WebCore::ApplyStyleCommand::ApplyStyleCommand):
11313         (WebCore::hasTextDecorationProperty):
11314         (WebCore::ApplyStyleCommand::extractAndNegateTextDecorationStyle):
11315         * editing/CompositeEditCommand.cpp:
11316         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
11317         * editing/DeleteSelectionCommand.cpp:
11318         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
11319         * editing/Editor.cpp:
11320         (WebCore::Editor::selectionHasStyle):
11321         (WebCore::Editor::setBaseWritingDirection):
11322         * editing/EditorCommand.cpp:
11323         (WebCore::executeApplyStyle):
11324         (WebCore::executeToggleStyle):
11325         (WebCore::executeApplyParagraphStyle):
11326         (WebCore::stateStyle):
11327         * editing/InsertParagraphSeparatorCommand.cpp:
11328         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion):
11329         * editing/RemoveFormatCommand.cpp:
11330         (WebCore::RemoveFormatCommand::doApply):
11331         * editing/ReplaceSelectionCommand.cpp:
11332         (WebCore::ReplacementFragment::insertFragmentForTestRendering):
11333         * editing/markup.cpp:
11334         (WebCore::styleFromMatchedRulesForElement):
11335         (WebCore::appendStartMarkup):
11336         * html/HTMLBodyElement.cpp:
11337         (WebCore::HTMLBodyElement::createLinkDecl):
11338         * html/HTMLLinkElement.cpp:
11339         (WebCore::HTMLLinkElement::process):
11340         (WebCore::HTMLLinkElement::setCSSStyleSheet):
11341         * html/HTMLMediaElement.cpp:
11342         (WebCore::HTMLMediaElement::pickMedia):
11343         * html/HTMLTableElement.cpp:
11344         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
11345         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
11346         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
11347         (WebCore::HTMLTableElement::addSharedGroupDecls):
11348         * page/DOMWindow.cpp:
11349         (WebCore::DOMWindow::getComputedStyle):
11350         * page/Frame.cpp:
11351         (WebCore::Frame::computeAndSetTypingStyle):
11352         (WebCore::Frame::selectionComputedStyle):
11353         * page/Frame.h:
11354         * rendering/style/RenderStyle.cpp:
11355         (WebCore::StyleCachedImage::cssValue):
11356         * rendering/style/RenderStyle.h:
11357         * svg/SVGColor.h:
11358         (WebCore::SVGColor::create):
11359         (WebCore::SVGColor::isSVGColor):
11360         * svg/SVGFontFaceElement.cpp:
11361         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
11362         (WebCore::SVGFontFaceElement::rebuildFontFace):
11363         * svg/SVGFontFaceNameElement.cpp:
11364         (WebCore::SVGFontFaceNameElement::srcValue):
11365         * svg/SVGFontFaceSrcElement.cpp:
11366         (WebCore::SVGFontFaceSrcElement::srcValue):
11367         * svg/SVGFontFaceUriElement.cpp:
11368         (WebCore::SVGFontFaceUriElement::srcValue):
11369         * svg/SVGPaint.cpp:
11370         (WebCore::SVGPaint::SVGPaint):
11371         * svg/SVGPaint.h:
11372         (WebCore::SVGPaint::create):
11373         (WebCore::SVGPaint::isSVGPaint):
11374         * svg/animation/SMILTimeContainer.cpp:
11375         (WebCore::SMILTimeContainer::baseValueFor):
11376         * xml/XSLImportRule.cpp:
11377         (WebCore::XSLImportRule::XSLImportRule):
11378         (WebCore::XSLImportRule::setXSLStyleSheet):
11379         * xml/XSLImportRule.h:
11380         (WebCore::XSLImportRule::create):
11381         (WebCore::XSLImportRule::href):
11382         (WebCore::XSLImportRule::isImportRule):
11383         * xml/XSLStyleSheet.cpp:
11384         (WebCore::XSLStyleSheet::checkLoaded):
11385         (WebCore::XSLStyleSheet::loadChildSheet):
11386         * xml/XSLStyleSheet.h:
11387         (WebCore::XSLStyleSheet::create):
11388         (WebCore::XSLStyleSheet::createEmbedded):
11389         * xml/XSLTProcessor.cpp:
11390         (WebCore::xsltStylesheetPointer):
11391
11392 2008-06-17  Michelangelo De Simone  <m.des@mac.com>
11393
11394         Reviewed by Adele.
11395         
11396         Fix for https://bugs.webkit.org/show_bug.cgi?id=18887
11397         Added support for autofocus controls.
11398
11399         When authors specify the "autofocus" attribute on form controls these 
11400         acquire focus automatically as the document is rendered.
11401
11402         Tests: fast/forms/autofocus-attribute.html
11403                fast/forms/autofocus-opera-001.html
11404                fast/forms/autofocus-opera-002.html
11405                fast/forms/autofocus-opera-003.html
11406                fast/forms/autofocus-opera-004.html
11407                fast/forms/autofocus-opera-005.html
11408                fast/forms/autofocus-opera-006.html
11409                fast/forms/autofocus-opera-007.html
11410                fast/forms/autofocus-opera-008.html
11411
11412         * dom/Document.cpp: (WebCore::Document::Document): Initialize the flag to ignore autofocus.
11413         * dom/Document.h:
11414         * html/HTMLAttributeNames.in:
11415         * html/HTMLButtonElement.idl:
11416         * html/HTMLFormControlElement.cpp:
11417         (WebCore::HTMLFormControlElement::attach): Sets focus onto the appropriate "autofocus" control
11418         (WebCore::HTMLFormControlElement::autofocus): Autofocus attribute getter
11419         (WebCore::HTMLFormControlElement::setAutofocus): Autofocus attribute setter
11420         * html/HTMLFormControlElement.h:
11421         * html/HTMLInputElement.idl:
11422         * html/HTMLSelectElement.idl:
11423         * html/HTMLTextAreaElement.idl:
11424         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setUserEdited):
11425           Sets the "ignore autofocus" flag on document if the user edited the control.
11426         * rendering/RenderTextControl.h:
11427
11428 2008-06-17  Alp Toker  <alp@nuanti.com>
11429
11430         Reviewed by Dave Hyatt and Mark Rowe.
11431
11432         https://bugs.webkit.org/show_bug.cgi?id=19190
11433         [CAIRO] Canvas rendered as black
11434
11435         Make sure the frame alpha transparency flag is set to true unless
11436         we're certain the image data is solid and can be blitted, since the
11437         Cairo backend implements a fast-path for blittable BitmapImages.
11438
11439         Thanks to Dirk Schulze for helping to track down this problem.
11440
11441         * platform/graphics/BitmapImage.cpp:
11442         (WebCore::BitmapImage::frameHasAlphaAtIndex):
11443         * platform/graphics/cairo/ImageCairo.cpp:
11444         (WebCore::BitmapImage::BitmapImage):
11445         * platform/graphics/cg/ImageCG.cpp:
11446         (WebCore::BitmapImage::BitmapImage):
11447
11448 2008-06-17  Ariya Hidayat  <ariya.hidayat@trolltech.com>
11449
11450         Reviewed by Simon.
11451
11452         Fix the Qt port by adding ExecState when necessary.
11453
11454         * bridge/qt/qt_instance.cpp:
11455         (KJS::Bindings::QtInstance::getPropertyNames):
11456         (KJS::Bindings::QtInstance::invokeDefaultMethod):
11457         * bridge/qt/qt_runtime.cpp:
11458         (KJS::Bindings::convertValueToQVariant):
11459         (KJS::Bindings::convertQVariantToValue):
11460         (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
11461         (KJS::Bindings::QtConnectionObject::execute):
11462
11463 2008-06-17  David Hyatt  <hyatt@apple.com>
11464
11465         Fix for slow performance on CSS selector tests at:
11466
11467         http://jpsykes.com/153/more-css-performance-testing-pt-2
11468
11469         Fix <style> element processing so that we don't reparse the entire stylesheet as chunks come in from
11470         the network (since this is O(n^2)).   Wait for the parser to deliver all of the data before we
11471         process the sheet for the first time.
11472
11473         Reviewed by olliej
11474
11475         * html/HTMLStyleElement.cpp:
11476         (WebCore::HTMLStyleElement::finishParsingChildren):
11477         (WebCore::HTMLStyleElement::childrenChanged):
11478
11479 2008-06-16  Dan Bernstein  <mitz@apple.com>
11480
11481         Reviewed by Justin Garcia.
11482
11483         - fix <rdar://problem/5973313> REGRESSION (r32508): Down arrow doesn't change caret with non-user entered newlines in textareas
11484
11485         Test: editing/selection/after-line-break.html
11486
11487         * dom/Position.cpp:
11488         (WebCore::Position::getInlineBoxAndOffset): Changed to not include the
11489         position after a line break in its line box, because that position is
11490         actually on the next line.
11491
11492 2008-06-16  Alexey Proskuryakov  <ap@webkit.org>
11493
11494         Reviewed by Geoff Garen.
11495
11496         Make Identifier construction use an explicitly passed IdentifierTable.
11497
11498         * platform/text/AtomicString.cpp:
11499         * platform/text/AtomicString.h:
11500         * platform/text/PlatformString.h:
11501         * platform/text/String.cpp:
11502         Removed "operator KJS::Identifier".
11503
11504         * bindings/js/JSCustomSQLStatementCallback.cpp:
11505         (WebCore::JSCustomSQLStatementCallback::handleEvent):
11506         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
11507         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
11508         * bindings/js/JSCustomSQLTransactionCallback.cpp:
11509         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
11510         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
11511         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
11512         * bindings/js/JSCustomVoidCallback.cpp:
11513         (WebCore::JSCustomVoidCallback::handleEvent):
11514         * bindings/js/JSCustomXPathNSResolver.cpp:
11515         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
11516         * bindings/js/JSDOMWindowBase.cpp:
11517         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
11518         (WebCore::JSDOMWindowBase::updateDocument):
11519         (WebCore::createWindow):
11520         (WebCore::showModalDialog):
11521         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
11522         (WebCore::JSDOMWindowBase::put):
11523         (WebCore::JSDOMWindowBase::clear):
11524         * bindings/js/JSDOMWindowCustom.cpp:
11525         (WebCore::JSDOMWindow::setLocation):
11526         * bindings/js/JSDOMWindowCustom.h:
11527         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
11528         * bindings/js/JSEventListener.cpp:
11529         (WebCore::JSAbstractEventListener::handleEvent):
11530         (WebCore::JSLazyEventListener::parseCode):
11531         * bindings/js/JSEventTargetBase.h:
11532         (WebCore::JSEventTargetPrototype::self):
11533         * bindings/js/JSHTMLCollectionCustom.cpp:
11534         (WebCore::JSHTMLCollection::callAsFunction):
11535         (WebCore::JSHTMLCollection::item):
11536         (WebCore::JSHTMLCollection::namedItem):
11537         * bindings/js/JSHTMLDocumentCustom.cpp:
11538         (WebCore::JSHTMLDocument::all):
11539         (WebCore::JSHTMLDocument::setAll):
11540         (WebCore::JSHTMLDocument::open):
11541         * bindings/js/JSHTMLInputElementBase.cpp:
11542         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
11543         * bindings/js/JSHistoryCustom.cpp:
11544         (WebCore::JSHistory::customGetOwnPropertySlot):
11545         * bindings/js/JSLocationCustom.cpp:
11546         (WebCore::JSLocation::customGetOwnPropertySlot):
11547         (WebCore::JSLocation::customPut):
11548         * bindings/js/JSNavigatorCustom.cpp:
11549         (WebCore::needsYouTubeQuirk):
11550         * bindings/js/JSSQLResultSetRowListCustom.cpp:
11551         (WebCore::JSSQLResultSetRowList::item):
11552         * bindings/js/JSStorageCustom.cpp:
11553         (WebCore::JSStorage::customGetPropertyNames):
11554         * bindings/js/ScheduledAction.cpp:
11555         (WebCore::ScheduledAction::execute):
11556         * bindings/js/ScriptController.cpp:
11557         (WebCore::ScriptController::evaluate):
11558         * bindings/objc/WebScriptObject.mm:
11559         (WebCore::addExceptionToConsole):
11560         (-[WebScriptObject callWebScriptMethod:withArguments:]):
11561         (-[WebScriptObject setValue:forKey:]):
11562         (-[WebScriptObject valueForKey:]):
11563         (-[WebScriptObject removeWebScriptKey:]):
11564         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
11565         * bindings/scripts/CodeGeneratorJS.pm:
11566         * bridge/NP_jsobject.cpp:
11567         (_NPN_Enumerate):
11568         * bridge/c/c_instance.cpp:
11569         (KJS::Bindings::CInstance::getPropertyNames):
11570         * bridge/c/c_utility.cpp:
11571         (KJS::Bindings::identifierFromNPIdentifier):
11572         * bridge/jni/jni_class.cpp:
11573         (JavaClass::JavaClass):
11574         * bridge/jni/jni_jsobject.mm:
11575         (JavaJSObject::call):
11576         (JavaJSObject::getMember):
11577         (JavaJSObject::setMember):
11578         (JavaJSObject::removeMember):
11579         * bridge/runtime_method.cpp:
11580         (RuntimeMethod::callAsFunction):
11581         Adapted to JavaScriptCore changes by explicitly constructing Identifiers, and always passing
11582         an ExecState or JSGlobalData pointer. Since WebCore is not a legacy client, this can use
11583         JSGlobalData::threadInstance(), as performance permits.
11584
11585 2008-06-16  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
11586
11587         Reviewed by Dan Bernstein.
11588
11589         - fix https://bugs.webkit.org/show_bug.cgi?id=19592
11590           Mismatched GraphicsContext::save()/restore() pairs in shadow painting code
11591
11592         * rendering/InlineFlowBox.cpp:
11593         (WebCore::InlineFlowBox::paintTextDecorations): remove an extra context->save()
11594         from the shadow painting code.
11595
11596 2008-06-16  Adriaan de Groot  <groot@kde.org>
11597
11598         Reviewed by Simon.
11599
11600         Fix compilation on Sun Studio 12
11601
11602         make_pair is a function template with two template arguments. This is to force
11603         it to have the correct type according to the pair<> structure.
11604
11605         * editing/TextIterator.cpp:
11606         (WebCore::plainTextToMallocAllocatedBuffer):
11607         * page/Chrome.cpp:
11608         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
11609
11610 2008-06-10  Tor Arne Vestbø  <tavestbo@trolltech.com>
11611
11612         Reviewed by Simon
11613
11614         https://bugs.webkit.org/show_bug.cgi?id=19462
11615
11616         Fill the background of scrollbars to the window color before
11617         letting the QStyle paint its primitive elements.
11618
11619         * platform/qt/PlatformScrollBarQt.cpp:
11620         (WebCore::PlatformScrollbar::paint):
11621
11622 2008-06-15  Darin Adler  <darin@apple.com>
11623
11624         Rubber stamped by Sam.
11625
11626         - renamed kjs_html.h/cpp to JSPluginElementFunctions.h/cpp
11627         - renamed kjs_events.h/cpp to JSEventListener.h/cpp
11628
11629         * GNUmakefile.am:
11630         * WebCore.pro:
11631         * WebCore.vcproj/WebCore.vcproj:
11632         * WebCore.xcodeproj/project.pbxproj:
11633         * WebCoreSources.bkl:
11634         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
11635         * bindings/js/JSDOMApplicationCacheCustom.cpp:
11636         * bindings/js/JSDOMWindowBase.cpp:
11637         * bindings/js/JSEventCustom.cpp:
11638         * bindings/js/JSEventListener.cpp: Copied from WebCore/bindings/js/kjs_events.cpp.
11639         * bindings/js/JSEventListener.h: Copied from WebCore/bindings/js/kjs_events.h.
11640         * bindings/js/JSEventTargetBase.h:
11641         * bindings/js/JSHTMLAppletElementCustom.cpp:
11642         * bindings/js/JSHTMLCollectionCustom.cpp:
11643         * bindings/js/JSHTMLDocumentCustom.cpp:
11644         * bindings/js/JSHTMLEmbedElementCustom.cpp:
11645         * bindings/js/JSHTMLInputElementBase.h:
11646         * bindings/js/JSHTMLObjectElementCustom.cpp:
11647         * bindings/js/JSHTMLSelectElementCustom.cpp:
11648         * bindings/js/JSPluginElementFunctions.cpp: Copied from WebCore/bindings/js/kjs_html.cpp.
11649         * bindings/js/JSPluginElementFunctions.h: Copied from WebCore/bindings/js/kjs_html.h.
11650         * bindings/js/JSSVGLazyEventListener.h:
11651         * bindings/js/JSXMLHttpRequestCustom.cpp:
11652         * bindings/js/ScriptController.cpp:
11653         * bindings/js/kjs_events.cpp: Removed.
11654         * bindings/js/kjs_events.h: Removed.
11655         * bindings/js/kjs_html.cpp: Removed.
11656         * bindings/js/kjs_html.h: Removed.
11657
11658 2008-06-15  Darin Adler  <darin@apple.com>
11659
11660         - give Frame object functions shorter names: scriptProxy() -> script(),
11661           selectionController() -> selection(), animationController() -> animation()
11662
11663         * WebCore.base.exp:
11664         * bindings/js/JSCustomSQLStatementCallback.cpp:
11665         (WebCore::JSCustomSQLStatementCallback::handleEvent):
11666         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
11667         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
11668         * bindings/js/JSCustomSQLTransactionCallback.cpp:
11669         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
11670         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
11671         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
11672         * bindings/js/JSCustomVoidCallback.cpp:
11673         (WebCore::JSCustomVoidCallback::handleEvent):
11674         * bindings/js/JSCustomXPathNSResolver.cpp:
11675         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
11676         * bindings/js/JSDOMWindowBase.cpp:
11677         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
11678         (WebCore::allowPopUp):
11679         (WebCore::createWindow):
11680         (WebCore::windowProtoFuncOpen):
11681         (WebCore::toJS):
11682         (WebCore::toJSDOMWindow):
11683         * bindings/js/JSDOMWindowCustom.cpp:
11684         (WebCore::JSDOMWindow::setLocation):
11685         * bindings/js/JSDOMWindowShell.cpp:
11686         (WebCore::toJS):
11687         (WebCore::toJSDOMWindowShell):
11688         * bindings/js/JSDocumentCustom.cpp:
11689         (WebCore::JSDocument::setLocation):
11690         * bindings/js/JSLocationCustom.cpp:
11691         (WebCore::navigateIfAllowed):
11692         (WebCore::JSLocation::reload):
11693         * bindings/js/JSNodeFilterCondition.cpp:
11694         (WebCore::JSNodeFilterCondition::acceptNode):
11695         * bindings/js/ScheduledAction.cpp:
11696         (WebCore::ScheduledAction::execute):
11697         * bindings/js/kjs_events.cpp:
11698         (WebCore::JSAbstractEventListener::handleEvent):
11699         (WebCore::JSLazyEventListener::parseCode):
11700         * bindings/js/kjs_html.cpp:
11701         (WebCore::runtimeObjectImplementsCall):
11702         * bindings/objc/DOMInternal.mm:
11703         (-[WebScriptObject _initializeScriptDOMNodeImp]):
11704         * bridge/jni/jni_jsobject.mm:
11705         (createRootObject):
11706         * css/CSSStyleSelector.cpp:
11707         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
11708         * dom/Document.cpp:
11709         (WebCore::Document::nodeWillBeRemoved):
11710         (WebCore::Document::createHTMLEventListener):
11711         * dom/Element.cpp:
11712         (WebCore::Element::updateFocusAppearance):
11713         * dom/EventTarget.cpp:
11714         (WebCore::EventTarget::dispatchGenericEvent):
11715         * dom/XMLTokenizer.cpp:
11716         (WebCore::XMLTokenizer::startElementNs):
11717         * editing/DeleteButtonController.cpp:
11718         (WebCore::DeleteButtonController::respondToChangedSelection):
11719         (WebCore::DeleteButtonController::enable):
11720         (WebCore::DeleteButtonController::deleteTarget):
11721         * editing/EditCommand.cpp:
11722         (WebCore::EditCommand::EditCommand):
11723         * editing/Editor.cpp:
11724         (WebCore::Editor::selectionForCommand):
11725         (WebCore::Editor::canEdit):
11726         (WebCore::Editor::canEditRichly):
11727         (WebCore::Editor::canDHTMLCut):
11728         (WebCore::Editor::canDHTMLCopy):
11729         (WebCore::Editor::canCopy):
11730         (WebCore::Editor::canDelete):
11731         (WebCore::Editor::deleteWithDirection):
11732         (WebCore::Editor::deleteSelectionWithSmartDelete):
11733         (WebCore::Editor::replaceSelectionWithFragment):
11734         (WebCore::Editor::selectedRange):
11735         (WebCore::Editor::tryDHTMLCopy):
11736         (WebCore::Editor::tryDHTMLCut):
11737         (WebCore::Editor::fontForSelection):
11738         (WebCore::Editor::selectionUnorderedListState):
11739         (WebCore::Editor::selectionOrderedListState):
11740         (WebCore::Editor::increaseSelectionListLevel):
11741         (WebCore::Editor::increaseSelectionListLevelOrdered):
11742         (WebCore::Editor::increaseSelectionListLevelUnordered):
11743         (WebCore::Editor::decreaseSelectionListLevel):
11744         (WebCore::Editor::dispatchCPPEvent):
11745         (WebCore::Editor::applyStyle):
11746         (WebCore::Editor::applyParagraphStyle):
11747         (WebCore::Editor::applyStyleToSelection):
11748         (WebCore::Editor::applyParagraphStyleToSelection):
11749         (WebCore::Editor::selectionHasStyle):
11750         (WebCore::Editor::appliedEditing):
11751         (WebCore::Editor::unappliedEditing):
11752         (WebCore::Editor::reappliedEditing):
11753         (WebCore::Editor::insertLineBreak):
11754         (WebCore::Editor::insertParagraphSeparator):
11755         (WebCore::Editor::paste):
11756         (WebCore::Editor::selectComposition):
11757         (WebCore::Editor::confirmComposition):
11758         (WebCore::Editor::setComposition):
11759         (WebCore::Editor::advanceToNextMisspelling):
11760         (WebCore::Editor::isSelectionUngrammatical):
11761         (WebCore::Editor::guessesForUngrammaticalSelection):
11762         (WebCore::Editor::getCompositionSelection):
11763         (WebCore::Editor::transpose):
11764         * editing/EditorCommand.cpp:
11765         (WebCore::expandSelectionToGranularity):
11766         (WebCore::executeDeleteToMark):
11767         (WebCore::executeMoveBackward):
11768         (WebCore::executeMoveBackwardAndModifySelection):
11769         (WebCore::executeMoveDown):
11770         (WebCore::executeMoveDownAndModifySelection):
11771         (WebCore::executeMoveForward):
11772         (WebCore::executeMoveForwardAndModifySelection):
11773         (WebCore::executeMoveLeft):
11774         (WebCore::executeMoveLeftAndModifySelection):
11775         (WebCore::executeMovePageDown):
11776         (WebCore::executeMovePageDownAndModifySelection):
11777         (WebCore::executeMovePageUp):
11778         (WebCore::executeMovePageUpAndModifySelection):
11779         (WebCore::executeMoveRight):
11780         (WebCore::executeMoveRightAndModifySelection):
11781         (WebCore::executeMoveToBeginningOfDocument):
11782         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
11783         (WebCore::executeMoveToBeginningOfLine):
11784         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
11785         (WebCore::executeMoveToBeginningOfParagraph):
11786         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
11787         (WebCore::executeMoveToBeginningOfSentence):
11788         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
11789         (WebCore::executeMoveToEndOfDocument):
11790         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
11791         (WebCore::executeMoveToEndOfSentence):
11792         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
11793         (WebCore::executeMoveToEndOfLine):
11794         (WebCore::executeMoveToEndOfLineAndModifySelection):
11795         (WebCore::executeMoveToEndOfParagraph):
11796         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
11797         (WebCore::executeMoveParagraphBackwardAndModifySelection):
11798         (WebCore::executeMoveParagraphForwardAndModifySelection):
11799         (WebCore::executeMoveUp):
11800         (WebCore::executeMoveUpAndModifySelection):
11801         (WebCore::executeMoveWordBackward):
11802         (WebCore::executeMoveWordBackwardAndModifySelection):
11803         (WebCore::executeMoveWordForward):
11804         (WebCore::executeMoveWordForwardAndModifySelection):
11805         (WebCore::executeMoveWordLeft):
11806         (WebCore::executeMoveWordLeftAndModifySelection):
11807         (WebCore::executeMoveWordRight):
11808         (WebCore::executeMoveWordRightAndModifySelection):
11809         (WebCore::executeSelectAll):
11810         (WebCore::executeSelectToMark):
11811         (WebCore::executeSetMark):
11812         (WebCore::executeSwapWithMark):
11813         (WebCore::executeUnselect):
11814         (WebCore::enabledAnySelection):
11815         (WebCore::enabledAnySelectionAndMark):
11816         (WebCore::enabledInRichlyEditableText):
11817         (WebCore::enabledRangeInEditableText):
11818         (WebCore::enabledRangeInRichlyEditableText):
11819         * editing/ModifySelectionListLevel.cpp:
11820         (WebCore::IncreaseSelectionListLevelCommand::canIncreaseSelectionListLevel):
11821         (WebCore::DecreaseSelectionListLevelCommand::canDecreaseSelectionListLevel):
11822         * editing/RemoveFormatCommand.cpp:
11823         (WebCore::RemoveFormatCommand::doApply):
11824         * editing/SelectionController.cpp:
11825         (WebCore::SelectionController::setSelection):
11826         (WebCore::SelectionController::selectFrameElementInParentIfFullySelected):
11827         * editing/TypingCommand.cpp:
11828         (WebCore::TypingCommand::deleteSelection):
11829         (WebCore::TypingCommand::insertText):
11830         (WebCore::TypingCommand::deleteKeyPressed):
11831         (WebCore::TypingCommand::forwardDeleteKeyPressed):
11832         * history/CachedPage.cpp:
11833         (WebCore::CachedPage::CachedPage):
11834         (WebCore::CachedPage::restore):
11835         * html/HTMLAnchorElement.cpp:
11836         (WebCore::HTMLAnchorElement::defaultEventHandler):
11837         (WebCore::HTMLAnchorElement::setActive):
11838         * html/HTMLInputElement.cpp:
11839         (WebCore::HTMLInputElement::defaultEventHandler):
11840         * html/HTMLPlugInElement.cpp:
11841         (WebCore::HTMLPlugInElement::createNPObject):
11842         * html/HTMLScriptElement.cpp:
11843         (WebCore::HTMLScriptElement::evaluateScript):
11844         * html/HTMLTokenizer.cpp:
11845         (WebCore::HTMLTokenizer::parseTag):
11846         (WebCore::HTMLTokenizer::processToken):
11847         * loader/FrameLoader.cpp:
11848         (WebCore::FrameLoader::executeScript):
11849         (WebCore::FrameLoader::clear):
11850         (WebCore::FrameLoader::userGestureHint):
11851         (WebCore::FrameLoader::open):
11852         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
11853         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
11854         * loader/archive/cf/LegacyWebArchive.cpp:
11855         (WebCore::LegacyWebArchive::createFromSelection):
11856         * page/AccessibilityRenderObject.cpp:
11857         (WebCore::AccessibilityRenderObject::selection):
11858         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
11859         (WebCore::AccessibilityRenderObject::isFocused):
11860         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
11861         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
11862         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
11863         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
11864         * page/ContextMenuController.cpp:
11865         (WebCore::ContextMenuController::contextMenuItemSelected):
11866         * page/DOMSelection.cpp:
11867         (WebCore::DOMSelection::anchorNode):
11868         (WebCore::DOMSelection::baseNode):
11869         (WebCore::DOMSelection::anchorOffset):
11870         (WebCore::DOMSelection::baseOffset):
11871         (WebCore::DOMSelection::focusNode):
11872         (WebCore::DOMSelection::extentNode):
11873         (WebCore::DOMSelection::focusOffset):
11874         (WebCore::DOMSelection::extentOffset):
11875         (WebCore::DOMSelection::isCollapsed):
11876         (WebCore::DOMSelection::type):
11877         (WebCore::DOMSelection::rangeCount):
11878         (WebCore::DOMSelection::collapse):
11879         (WebCore::DOMSelection::collapseToEnd):
11880         (WebCore::DOMSelection::collapseToStart):
11881         (WebCore::DOMSelection::empty):
11882         (WebCore::DOMSelection::setBaseAndExtent):
11883         (WebCore::DOMSelection::setPosition):
11884         (WebCore::DOMSelection::modify):
11885         (WebCore::DOMSelection::extend):
11886         (WebCore::DOMSelection::getRangeAt):
11887         (WebCore::DOMSelection::removeAllRanges):
11888         (WebCore::DOMSelection::addRange):
11889         (WebCore::DOMSelection::deleteFromDocument):
11890         (WebCore::DOMSelection::containsNode):
11891         (WebCore::DOMSelection::toString):
11892         * page/DragController.cpp:
11893         (WebCore::DragController::dragIsMove):
11894         (WebCore::DragController::tryDocumentDrag):
11895         (WebCore::setSelectionToDragCaret):
11896         (WebCore::DragController::concludeDrag):
11897         (WebCore::prepareClipboardForImageDrag):
11898         (WebCore::DragController::startDrag):
11899         * page/EventHandler.cpp:
11900         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
11901         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
11902         (WebCore::EventHandler::handleMousePressEventDoubleClick):
11903         (WebCore::EventHandler::handleMousePressEventTripleClick):
11904         (WebCore::EventHandler::handleMousePressEventSingleClick):
11905         (WebCore::EventHandler::handleMousePressEvent):
11906         (WebCore::EventHandler::updateSelectionForMouseDrag):
11907         (WebCore::EventHandler::handleMouseReleaseEvent):
11908         (WebCore::nodeIsNotBeingEdited):
11909         (WebCore::EventHandler::selectCursor):
11910         (WebCore::EventHandler::dispatchMouseEvent):
11911         (WebCore::EventHandler::sendContextMenuEvent):
11912         (WebCore::EventHandler::handleKeyboardSelectionMovement):
11913         (WebCore::EventHandler::handleDrag):
11914         * page/FocusController.cpp:
11915         (WebCore::FocusController::setFocusedFrame):
11916         (WebCore::clearSelectionIfNeeded):
11917         (WebCore::FocusController::setActive):
11918         * page/Frame.cpp:
11919         (WebCore::Frame::~Frame):
11920         (WebCore::Frame::script):
11921         (WebCore::Frame::setDocument):
11922         (WebCore::Frame::selectedText):
11923         (WebCore::Frame::selection):
11924         (WebCore::Frame::animation):
11925         (WebCore::Frame::notifyRendererOfSelectionChange):
11926         (WebCore::Frame::invalidateSelection):
11927         (WebCore::Frame::clearCaretRectIfNeeded):
11928         (WebCore::Frame::setFocusedNodeIfNeeded):
11929         (WebCore::Frame::selectionLayoutChanged):
11930         (WebCore::Frame::caretBlinkTimerFired):
11931         (WebCore::Frame::paintCaret):
11932         (WebCore::Frame::shouldChangeSelection):
11933         (WebCore::Frame::updateSecureKeyboardEntryIfActive):
11934         (WebCore::Frame::computeAndSetTypingStyle):
11935         (WebCore::Frame::selectionComputedStyle):
11936         (WebCore::Frame::bindingRootObject):
11937         (WebCore::Frame::windowScriptNPObject):
11938         (WebCore::Frame::clearScriptController):
11939         (WebCore::Frame::selectionTextRects):
11940         (WebCore::Frame::currentForm):
11941         (WebCore::Frame::revealSelection):
11942         (WebCore::Frame::revealCaret):
11943         (WebCore::Frame::clearTimers):
11944         (WebCore::Frame::styleForSelectionStart):
11945         (WebCore::Frame::setSelectionFromNone):
11946         (WebCore::Frame::findString):
11947         (WebCore::Frame::pageDestroyed):
11948         (WebCore::Frame::respondToChangedSelection):
11949         (WebCore::FramePrivate::FramePrivate):
11950         * page/Frame.h:
11951         * page/FramePrivate.h:
11952         * page/InspectorController.cpp:
11953         (WebCore::canPassNodeToJavaScript):
11954         (WebCore::InspectorController::windowScriptObjectAvailable):
11955         * page/JavaScriptDebugServer.cpp:
11956         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
11957         * page/Page.cpp:
11958         (WebCore::Page::findString):
11959         (WebCore::Page::selection):
11960         (WebCore::Page::setDebugger):
11961         * page/mac/FrameMac.mm:
11962         (WebCore::Frame::baseWritingDirectionForSelectionStart):
11963         (WebCore::Frame::dragImageForSelection):
11964         (WebCore::Frame::createScriptInstanceForWidget):
11965         (WebCore::Frame::windowScriptObject):
11966         * page/win/FrameWin.cpp:
11967         (WebCore::Frame::dragImageForSelection):
11968         * platform/ContextMenu.cpp:
11969         (WebCore::selectionContainsPossibleWord):
11970         (WebCore::ContextMenu::populate):
11971         (WebCore::ContextMenu::checkOrEnableIfNeeded):
11972         * plugins/PluginView.cpp:
11973         (WebCore::PluginView::performRequest):
11974         (WebCore::PluginView::bindingInstance):
11975         * rendering/HitTestResult.cpp:
11976         (WebCore::HitTestResult::isSelected):
11977         * rendering/RenderBlock.cpp:
11978         (WebCore::RenderBlock::paintCaret):
11979         * rendering/RenderListBox.cpp:
11980         (WebCore::RenderListBox::paintItemForeground):
11981         (WebCore::RenderListBox::paintItemBackground):
11982         * rendering/RenderObject.cpp:
11983         (WebCore::RenderObject::selectionBackgroundColor):
11984         (WebCore::RenderObject::selectionForegroundColor):
11985         (WebCore::RenderObject::setAnimatableStyle):
11986         (WebCore::RenderObject::destroy):
11987         (WebCore::RenderObject::animation):
11988         * rendering/RenderObject.h:
11989         * rendering/RenderTextControl.cpp:
11990         (WebCore::RenderTextControl::selectionStart):
11991         (WebCore::RenderTextControl::selectionEnd):
11992         (WebCore::RenderTextControl::setSelectionRange):
11993         (WebCore::RenderTextControl::selectionChanged):
11994         (WebCore::RenderTextControl::capsLockStateMayHaveChanged):
11995         * rendering/RenderTheme.cpp:
11996         (WebCore::RenderTheme::isFocused):
11997         * rendering/RenderTreeAsText.cpp:
11998         (WebCore::writeSelection):
11999         * rendering/RenderWidget.cpp:
12000         (WebCore::RenderWidget::destroy):
12001         * svg/SVGDocumentExtensions.cpp:
12002         (WebCore::SVGDocumentExtensions::createSVGEventListener):
12003         * svg/SVGSVGElement.cpp:
12004         (WebCore::SVGSVGElement::deselectAll):
12005         * svg/SVGTextContentElement.cpp:
12006         (WebCore::SVGTextContentElement::selectSubString):
12007
12008 2008-06-15  Sam Weinig  <sam@webkit.org>
12009
12010         Reviewed by Darin Adler.
12011
12012         Remove outdated comment.
12013
12014         * bindings/js/ScriptController.h:
12015
12016 2008-06-15  Darin Adler  <darin@apple.com>
12017
12018         - try to fix Qt build
12019
12020         * dom/XMLTokenizer.cpp: Use create instead of new.
12021
12022         - rename KJS::List to KJS::ArgList
12023
12024         * bindings/js/JSAudioConstructor.cpp:
12025         (WebCore::JSAudioConstructor::construct):
12026         * bindings/js/JSAudioConstructor.h:
12027         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
12028         (WebCore::JSCanvasRenderingContext2D::setFillColor):
12029         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
12030         (WebCore::JSCanvasRenderingContext2D::strokeRect):
12031         (WebCore::JSCanvasRenderingContext2D::drawImage):
12032         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
12033         (WebCore::JSCanvasRenderingContext2D::setShadow):
12034         (WebCore::JSCanvasRenderingContext2D::createPattern):
12035         (WebCore::JSCanvasRenderingContext2D::putImageData):
12036         * bindings/js/JSClipboardCustom.cpp:
12037         (WebCore::JSClipboard::types):
12038         (WebCore::JSClipboard::clearData):
12039         (WebCore::JSClipboard::getData):
12040         (WebCore::JSClipboard::setData):
12041         (WebCore::JSClipboard::setDragImage):
12042         * bindings/js/JSConsoleCustom.cpp:
12043         (WebCore::JSConsole::debug):
12044         (WebCore::JSConsole::error):
12045         (WebCore::JSConsole::info):
12046         (WebCore::JSConsole::log):
12047         (WebCore::JSConsole::warn):
12048         (WebCore::JSConsole::assertCondition):
12049         (WebCore::JSConsole::profile):
12050         (WebCore::JSConsole::profileEnd):
12051         * bindings/js/JSCustomSQLStatementCallback.cpp:
12052         (WebCore::JSCustomSQLStatementCallback::handleEvent):
12053         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
12054         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
12055         * bindings/js/JSCustomSQLTransactionCallback.cpp:
12056         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
12057         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
12058         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
12059         * bindings/js/JSCustomVoidCallback.cpp:
12060         (WebCore::JSCustomVoidCallback::handleEvent):
12061         * bindings/js/JSCustomXPathNSResolver.cpp:
12062         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
12063         * bindings/js/JSDOMApplicationCacheCustom.cpp:
12064         (WebCore::JSDOMApplicationCache::add):
12065         (WebCore::JSDOMApplicationCache::remove):
12066         (WebCore::JSDOMApplicationCache::addEventListener):
12067         (WebCore::JSDOMApplicationCache::removeEventListener):
12068         (WebCore::JSDOMApplicationCache::dispatchEvent):
12069         * bindings/js/JSDOMWindowBase.cpp:
12070         (WebCore::windowProtoFuncAToB):
12071         (WebCore::windowProtoFuncBToA):
12072         (WebCore::windowProtoFuncOpen):
12073         (WebCore::windowProtoFuncSetTimeout):
12074         (WebCore::windowProtoFuncClearTimeout):
12075         (WebCore::windowProtoFuncSetInterval):
12076         (WebCore::windowProtoFuncAddEventListener):
12077         (WebCore::windowProtoFuncRemoveEventListener):
12078         (WebCore::windowProtoFuncShowModalDialog):
12079         (WebCore::windowProtoFuncNotImplemented):
12080         (WebCore::JSDOMWindowBase::installTimeout):
12081         * bindings/js/JSDOMWindowBase.h:
12082         * bindings/js/JSDOMWindowCustom.cpp:
12083         (WebCore::JSDOMWindow::postMessage):
12084         * bindings/js/JSDatabaseCustom.cpp:
12085         (WebCore::JSDatabase::changeVersion):
12086         (WebCore::JSDatabase::transaction):
12087         * bindings/js/JSElementCustom.cpp:
12088         (WebCore::JSElement::setAttribute):
12089         (WebCore::JSElement::setAttributeNode):
12090         (WebCore::JSElement::setAttributeNS):
12091         (WebCore::JSElement::setAttributeNodeNS):
12092         * bindings/js/JSEventTargetBase.cpp:
12093         (WebCore::jsEventTargetAddEventListener):
12094         (WebCore::jsEventTargetRemoveEventListener):
12095         (WebCore::jsEventTargetDispatchEvent):
12096         * bindings/js/JSEventTargetBase.h:
12097         * bindings/js/JSHTMLAppletElementCustom.cpp:
12098         (WebCore::JSHTMLAppletElement::callAsFunction):
12099         * bindings/js/JSHTMLCollectionCustom.cpp:
12100         (WebCore::JSHTMLCollection::callAsFunction):
12101         (WebCore::JSHTMLCollection::item):
12102         (WebCore::JSHTMLCollection::namedItem):
12103         * bindings/js/JSHTMLDocumentCustom.cpp:
12104         (WebCore::JSHTMLDocument::open):
12105         (WebCore::writeHelper):
12106         (WebCore::JSHTMLDocument::write):
12107         (WebCore::JSHTMLDocument::writeln):
12108         * bindings/js/JSHTMLEmbedElementCustom.cpp:
12109         (WebCore::JSHTMLEmbedElement::callAsFunction):
12110         * bindings/js/JSHTMLInputElementBase.cpp:
12111         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
12112         * bindings/js/JSHTMLInputElementBase.h:
12113         * bindings/js/JSHTMLObjectElementCustom.cpp:
12114         (WebCore::JSHTMLObjectElement::callAsFunction):
12115         * bindings/js/JSHTMLOptionElementConstructor.cpp:
12116         (WebCore::JSHTMLOptionElementConstructor::construct):
12117         * bindings/js/JSHTMLOptionElementConstructor.h:
12118         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
12119         (WebCore::JSHTMLOptionsCollection::add):
12120         (WebCore::JSHTMLOptionsCollection::remove):
12121         * bindings/js/JSHTMLSelectElementCustom.cpp:
12122         (WebCore::JSHTMLSelectElement::remove):
12123         * bindings/js/JSImageConstructor.cpp:
12124         (WebCore::JSImageConstructor::construct):
12125         * bindings/js/JSImageConstructor.h:
12126         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
12127         (WebCore::JSJavaScriptCallFrame::evaluate):
12128         (WebCore::JSJavaScriptCallFrame::scopeChain):
12129         * bindings/js/JSLocationCustom.cpp:
12130         (WebCore::JSLocation::replace):
12131         (WebCore::JSLocation::reload):
12132         (WebCore::JSLocation::assign):
12133         (WebCore::JSLocation::toString):
12134         * bindings/js/JSNodeCustom.cpp:
12135         (WebCore::JSNode::insertBefore):
12136         (WebCore::JSNode::replaceChild):
12137         (WebCore::JSNode::removeChild):
12138         (WebCore::JSNode::appendChild):
12139         * bindings/js/JSNodeFilterCondition.cpp:
12140         (WebCore::JSNodeFilterCondition::acceptNode):
12141         * bindings/js/JSNodeFilterCustom.cpp:
12142         (WebCore::JSNodeFilter::acceptNode):
12143         * bindings/js/JSNodeIteratorCustom.cpp:
12144         (WebCore::JSNodeIterator::nextNode):
12145         (WebCore::JSNodeIterator::previousNode):
12146         * bindings/js/JSNodeListCustom.cpp:
12147         (WebCore::JSNodeList::callAsFunction):
12148         * bindings/js/JSQuarantinedObjectWrapper.cpp:
12149         (WebCore::JSQuarantinedObjectWrapper::construct):
12150         (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
12151         * bindings/js/JSQuarantinedObjectWrapper.h:
12152         * bindings/js/JSSQLResultSetRowListCustom.cpp:
12153         (WebCore::JSSQLResultSetRowList::item):
12154         * bindings/js/JSSQLTransactionCustom.cpp:
12155         (WebCore::JSSQLTransaction::executeSql):
12156         * bindings/js/JSSVGMatrixCustom.cpp:
12157         (WebCore::JSSVGMatrix::multiply):
12158         (WebCore::JSSVGMatrix::inverse):
12159         (WebCore::JSSVGMatrix::translate):
12160         (WebCore::JSSVGMatrix::scale):
12161         (WebCore::JSSVGMatrix::scaleNonUniform):
12162         (WebCore::JSSVGMatrix::rotate):
12163         (WebCore::JSSVGMatrix::rotateFromVector):
12164         (WebCore::JSSVGMatrix::flipX):
12165         (WebCore::JSSVGMatrix::flipY):
12166         (WebCore::JSSVGMatrix::skewX):
12167         (WebCore::JSSVGMatrix::skewY):
12168         * bindings/js/JSSVGPathSegListCustom.cpp:
12169         (WebCore::JSSVGPathSegList::clear):
12170         (WebCore::JSSVGPathSegList::initialize):
12171         (WebCore::JSSVGPathSegList::getItem):
12172         (WebCore::JSSVGPathSegList::insertItemBefore):
12173         (WebCore::JSSVGPathSegList::replaceItem):
12174         (WebCore::JSSVGPathSegList::removeItem):
12175         (WebCore::JSSVGPathSegList::appendItem):
12176         * bindings/js/JSSVGPointListCustom.cpp:
12177         (WebCore::JSSVGPointList::clear):
12178         (WebCore::JSSVGPointList::initialize):
12179         (WebCore::JSSVGPointList::getItem):
12180         (WebCore::JSSVGPointList::insertItemBefore):
12181         (WebCore::JSSVGPointList::replaceItem):
12182         (WebCore::JSSVGPointList::removeItem):
12183         (WebCore::JSSVGPointList::appendItem):
12184         * bindings/js/JSSVGTransformListCustom.cpp:
12185         (WebCore::JSSVGTransformList::clear):
12186         (WebCore::JSSVGTransformList::initialize):
12187         (WebCore::JSSVGTransformList::getItem):
12188         (WebCore::JSSVGTransformList::insertItemBefore):
12189         (WebCore::JSSVGTransformList::replaceItem):
12190         (WebCore::JSSVGTransformList::removeItem):
12191         (WebCore::JSSVGTransformList::appendItem):
12192         * bindings/js/JSTreeWalkerCustom.cpp:
12193         (WebCore::JSTreeWalker::parentNode):
12194         (WebCore::JSTreeWalker::firstChild):
12195         (WebCore::JSTreeWalker::lastChild):
12196         (WebCore::JSTreeWalker::nextSibling):
12197         (WebCore::JSTreeWalker::previousSibling):
12198         (WebCore::JSTreeWalker::previousNode):
12199         (WebCore::JSTreeWalker::nextNode):
12200         * bindings/js/JSXMLHttpRequestConstructor.cpp:
12201         (WebCore::JSXMLHttpRequestConstructor::construct):
12202         * bindings/js/JSXMLHttpRequestConstructor.h:
12203         * bindings/js/JSXMLHttpRequestCustom.cpp:
12204         (WebCore::JSXMLHttpRequest::open):
12205         (WebCore::JSXMLHttpRequest::setRequestHeader):
12206         (WebCore::JSXMLHttpRequest::send):
12207         (WebCore::JSXMLHttpRequest::getResponseHeader):
12208         (WebCore::JSXMLHttpRequest::overrideMimeType):
12209         (WebCore::JSXMLHttpRequest::addEventListener):
12210         (WebCore::JSXMLHttpRequest::removeEventListener):
12211         (WebCore::JSXMLHttpRequest::dispatchEvent):
12212         * bindings/js/JSXSLTProcessorConstructor.cpp:
12213         (WebCore::JSXSLTProcessorConstructor::construct):
12214         * bindings/js/JSXSLTProcessorConstructor.h:
12215         * bindings/js/JSXSLTProcessorCustom.cpp:
12216         (WebCore::JSXSLTProcessor::importStylesheet):
12217         (WebCore::JSXSLTProcessor::transformToFragment):
12218         (WebCore::JSXSLTProcessor::transformToDocument):
12219         (WebCore::JSXSLTProcessor::setParameter):
12220         (WebCore::JSXSLTProcessor::getParameter):
12221         (WebCore::JSXSLTProcessor::removeParameter):
12222         * bindings/js/ScheduledAction.cpp:
12223         (WebCore::ScheduledAction::ScheduledAction):
12224         (WebCore::ScheduledAction::execute):
12225         * bindings/js/ScheduledAction.h:
12226         * bindings/js/kjs_events.cpp:
12227         (WebCore::JSAbstractEventListener::handleEvent):
12228         (WebCore::JSLazyEventListener::parseCode):
12229         * bindings/js/kjs_html.cpp:
12230         (WebCore::runtimeObjectCallAsFunction):
12231         * bindings/js/kjs_html.h:
12232         * bindings/objc/WebScriptObject.mm:
12233         (getListFromNSArray):
12234         (-[WebScriptObject callWebScriptMethod:withArguments:]):
12235         * bindings/scripts/CodeGeneratorJS.pm:
12236         * bridge/NP_jsobject.cpp:
12237         (getListFromVariantArgs):
12238         (_NPN_InvokeDefault):
12239         (_NPN_Invoke):
12240         * bridge/c/c_instance.cpp:
12241         (KJS::Bindings::CInstance::invokeMethod):
12242         (KJS::Bindings::CInstance::invokeDefaultMethod):
12243         * bridge/c/c_instance.h:
12244         * bridge/jni/jni_instance.cpp:
12245         (JavaInstance::invokeMethod):
12246         * bridge/jni/jni_instance.h:
12247         * bridge/jni/jni_jsobject.h:
12248         * bridge/jni/jni_jsobject.mm:
12249         (JavaJSObject::call):
12250         (JavaJSObject::getListFromJArray):
12251         * bridge/objc/objc_instance.h:
12252         * bridge/objc/objc_instance.mm:
12253         (ObjcInstance::invokeMethod):
12254         (ObjcInstance::invokeDefaultMethod):
12255         * bridge/objc/objc_runtime.h:
12256         * bridge/objc/objc_runtime.mm:
12257         (ObjcFallbackObjectImp::callAsFunction):
12258         * bridge/qt/qt_instance.cpp:
12259         (KJS::Bindings::QtRuntimeObjectImp::construct):
12260         (KJS::Bindings::QtInstance::invokeMethod):
12261         (KJS::Bindings::QtInstance::invokeDefaultMethod):
12262         * bridge/qt/qt_instance.h:
12263         * bridge/qt/qt_runtime.cpp:
12264         (KJS::Bindings::convertQVariantToValue):
12265         (KJS::Bindings::findMethodIndex):
12266         (KJS::Bindings::QtRuntimeMetaMethod::callAsFunction):
12267         (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
12268         (KJS::Bindings::QtConnectionObject::execute):
12269         * bridge/qt/qt_runtime.h:
12270         * bridge/runtime.h:
12271         (KJS::Bindings::Instance::invokeDefaultMethod):
12272         * bridge/runtime_method.cpp:
12273         (RuntimeMethod::callAsFunction):
12274         * bridge/runtime_method.h:
12275         * bridge/runtime_object.cpp:
12276         (RuntimeObjectImp::callAsFunction):
12277         * bridge/runtime_object.h:
12278         * page/Console.cpp:
12279         (WebCore::printToStandardOut):
12280         (WebCore::Console::debug):
12281         (WebCore::Console::error):
12282         (WebCore::Console::info):
12283         (WebCore::Console::log):
12284         (WebCore::Console::assertCondition):
12285         (WebCore::Console::profile):
12286         (WebCore::Console::profileEnd):
12287         (WebCore::Console::warn):
12288         * page/Console.h:
12289         * page/InspectorController.cpp:
12290         (WebCore::ConsoleMessage::ConsoleMessage):
12291         (WebCore::InspectorController::addMessageToConsole):
12292         * page/InspectorController.h:
12293
12294 2008-06-15  Darin Adler  <darin@apple.com>
12295
12296         * platform/graphics/gtk/VideoSinkGStreamer.h: Undo a bogus rename done by the script.
12297
12298 2008-06-15  Adam Barth  <abarth@webkit.org>
12299
12300         Reviewed by Sam Weinig.
12301
12302         Fix our implementation of Document.documentURI (DOM Core Level 3).
12303
12304         Tests: fast/dom/documenturi-affects-relative-paths.html
12305                fast/dom/documenturi-assigned-junk-implies-baseuri-null.html
12306                fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html
12307                fast/dom/documenturi-can-hold-arbitrary-string.html
12308                fast/dom/documenturi-loses-to-base-tag.html
12309                fast/dom/documenturi-not-affected-by-base-tag.html
12310
12311         * dom/Document.cpp:
12312         (WebCore::Document::setDocumentURI):
12313         (WebCore::Document::setURL):
12314         (WebCore::Document::updateBaseURL):
12315         * dom/Document.h:
12316         * page/AccessibilityRenderObject.cpp:
12317         (WebCore::AccessibilityRenderObject::url):
12318
12319 2008-06-15  Adam Barth  <abarth@webkit.org>
12320
12321         Reviewed by Sam Weinig.
12322
12323         Refactor our handling of Document::m_baseURL in preparation for
12324         correcting our implementation of Document.documentURI.
12325
12326         * dom/Document.cpp:
12327         (WebCore::Document::documentURI):
12328         (WebCore::Document::open):
12329         (WebCore::Document::setURL):
12330         (WebCore::Document::setBaseElementURL):
12331         (WebCore::Document::updateBaseURL):
12332         (WebCore::Document::elementSheet):
12333         (WebCore::Document::mappedElementSheet):
12334         (WebCore::Document::completeURL):
12335         * dom/Document.h:
12336         (WebCore::Document::url):
12337         (WebCore::Document::baseURL):
12338         * html/HTMLBaseElement.cpp:
12339         (WebCore::HTMLBaseElement::removedFromDocument):
12340         (WebCore::HTMLBaseElement::process):
12341         * loader/FrameLoader.cpp:
12342         (WebCore::FrameLoader::begin):
12343         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
12344         * xml/XSLTProcessor.cpp:
12345         (WebCore::XSLTProcessor::createDocumentFromSource):
12346
12347 2008-06-15  Darin Adler  <darin@apple.com>
12348
12349         - new names for more JavaScriptCore files
12350
12351         * ForwardingHeaders/kjs/ArrayPrototype.h: Copied from WebCore/ForwardingHeaders/kjs/array_object.h.
12352         * ForwardingHeaders/kjs/BooleanObject.h: Copied from WebCore/ForwardingHeaders/kjs/bool_object.h.
12353         * ForwardingHeaders/kjs/FunctionPrototype.h: Copied from WebCore/ForwardingHeaders/kjs/function_object.h.
12354         * ForwardingHeaders/kjs/JSArray.h: Copied from WebCore/ForwardingHeaders/kjs/array_instance.h.
12355         * ForwardingHeaders/kjs/PropertyMap.h: Copied from WebCore/ForwardingHeaders/kjs/property_map.h.
12356         * ForwardingHeaders/kjs/array_instance.h: Removed.
12357         * ForwardingHeaders/kjs/array_object.h: Removed.
12358         * ForwardingHeaders/kjs/bool_object.h: Removed.
12359         * ForwardingHeaders/kjs/function_object.h: Removed.
12360         * ForwardingHeaders/kjs/property_map.h: Removed.
12361         * WebCore.vcproj/WebCore.vcproj:
12362         * bindings/js/JSClipboardCustom.cpp:
12363         * bindings/js/JSDatabaseCustom.cpp:
12364         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
12365         * bindings/js/kjs_events.cpp:
12366         * bridge/jni/jni_utility.cpp:
12367         * bridge/qt/qt_runtime.cpp:
12368         * bridge/runtime_array.cpp:
12369
12370 2008-06-15  Darin Adler  <darin@apple.com>
12371
12372         - new names for a few key JavaScriptCore files
12373
12374         * ForwardingHeaders/kjs/JSFunction.h: Copied from WebCore/ForwardingHeaders/kjs/function.h.
12375         * ForwardingHeaders/kjs/JSObject.h: Copied from WebCore/ForwardingHeaders/kjs/object.h.
12376         * ForwardingHeaders/kjs/JSString.h: Copied from WebCore/ForwardingHeaders/kjs/internal.h.
12377         * ForwardingHeaders/kjs/JSValue.h: Copied from WebCore/ForwardingHeaders/kjs/value.h.
12378         * ForwardingHeaders/kjs/function.h: Removed.
12379         * ForwardingHeaders/kjs/internal.h: Removed.
12380         * ForwardingHeaders/kjs/object.h: Removed.
12381         * ForwardingHeaders/kjs/value.h: Removed.
12382         * WebCore.vcproj/WebCore.vcproj:
12383         * bindings/js/JSCustomSQLStatementCallback.h:
12384         * bindings/js/JSCustomSQLStatementErrorCallback.h:
12385         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
12386         * bindings/js/JSCustomVoidCallback.h:
12387         * bindings/js/JSDOMBinding.h:
12388         * bindings/js/JSDOMWindowCustom.cpp:
12389         * bindings/js/JSDOMWindowShell.cpp:
12390         * bindings/js/JSQuarantinedObjectWrapper.h:
12391         * bridge/objc/objc_runtime.h:
12392         * bridge/objc/objc_utility.h:
12393         * bridge/qt/qt_runtime.cpp:
12394         * bridge/runtime.h:
12395         * bridge/runtime_array.h:
12396         * bridge/runtime_method.h:
12397         * bridge/runtime_object.h:
12398         * bridge/testbindings.cpp:
12399         * bridge/testbindings.mm:
12400         * bridge/testqtbindings.cpp:
12401         * loader/FrameLoader.cpp:
12402         * page/JavaScriptCallFrame.cpp:
12403         * page/JavaScriptProfile.cpp:
12404         * page/JavaScriptProfileNode.cpp:
12405         * platform/graphics/gtk/VideoSinkGStreamer.h:
12406         * plugins/PluginView.cpp:
12407         * plugins/gtk/PluginViewGtk.cpp:
12408         * plugins/qt/PluginViewQt.cpp:
12409         * plugins/win/PluginViewWin.cpp:
12410
12411 2008-06-15  Darin Adler  <darin@apple.com>
12412
12413         Rubber stamped by Sam.
12414
12415         - cut down on confusing uses of "Object" and "Imp" in
12416           JavaScriptCore class names
12417
12418         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
12419         (WebCore::JSCSSStyleDeclaration::nameGetter):
12420         * bridge/qt/qt_runtime.cpp:
12421         (KJS::Bindings::valueRealType):
12422         (KJS::Bindings::convertValueToQVariant):
12423         (KJS::Bindings::convertQVariantToValue):
12424         (KJS::Bindings::QtRuntimeMethod::QtRuntimeMethod):
12425         * bridge/qt/qt_runtime.h:
12426         * bridge/runtime_method.cpp:
12427         (RuntimeMethod::RuntimeMethod):
12428         (RuntimeMethod::getOwnPropertySlot):
12429         * bridge/runtime_method.h:
12430
12431 2008-06-15  Dan Bernstein  <mitz@apple.com>
12432
12433         Reviewed by Darin Adler.
12434
12435         - fix <rdar://problem/5825683> Three slash URLs are modified by WebKit
12436
12437         Test: fast/loader/url-parse-1.html
12438
12439         URIs in which the scheme is followed by "://" are ambiguous, because
12440         "//" can be either the beginning of a net_path or the beginning of an
12441         abs_path whose first path segment is empty. In the case of ":///", the
12442         net_path interpretation is invalid, because the authority (the part
12443         between the second and third slashes) cannot be empty. However, for
12444         historical reasons, this is allowed in http:, https: and file: URLs,
12445         in which an empty authority means the local host.
12446
12447         * platform/KURL.cpp:
12448         (WebCore::KURL::parse): Changed to interpret URLs in which the scheme
12449         is followed by ":///" as abs_path-only URLs, unless the scheme is http,
12450         https or file.
12451
12452 2008-06-15  Darin Adler  <darin@apple.com>
12453
12454         Rubber stamped by Sam.
12455
12456         - use JS prefix and simpler names for basic JavaScriptCore types,
12457           to complement JSValue and JSObject
12458
12459         * bindings/js/JSNavigatorCustom.cpp:
12460         (WebCore::needsYouTubeQuirk):
12461         * bindings/js/kjs_events.cpp:
12462         (WebCore::JSLazyEventListener::parseCode):
12463         * bridge/jni/jni_utility.cpp:
12464         (KJS::Bindings::convertArrayInstanceToJavaArray):
12465         (KJS::Bindings::convertValueToJValue):
12466         * bridge/qt/qt_runtime.cpp:
12467         (KJS::Bindings::valueRealType):
12468         (KJS::Bindings::convertValueToQVariant):
12469         (KJS::Bindings::QtConnectionObject::execute):
12470         * bridge/runtime_array.cpp:
12471
12472 2008-06-15  Darin Adler  <darin@apple.com>
12473
12474         Reviewed by Mitz.
12475
12476         - fix https://bugs.webkit.org/show_bug.cgi?id=19556
12477           REGRESSION (r34544): Crash while visiting bigglook.com
12478
12479         This fix eliminates the crash, but the logic remaining seems a little strange.
12480         We create an IconRecord and then immediately destroy it. Worth taking another
12481         look at this later.
12482
12483         * loader/icon/IconDatabase.cpp:
12484         (WebCore::IconDatabase::setIconDataForIconURL): Added code to remove the icon
12485         just as in the other cases where we might be holding the single reference to it.
12486         (WebCore::IconDatabase::setIconURLForPageURL): Fixed comment typo.
12487         (WebCore::IconDatabase::writeToDatabase): Removed unused local variable.
12488
12489 2008-06-15  Darin Adler  <darin@apple.com>
12490
12491         Reviewed and tweaked by Sam Weinig.
12492
12493         Fix for <rdar://problem/5908591>
12494         https://bugs.webkit.org/show_bug.cgi?id=18743
12495
12496         Makes DOMImplementation per-document.
12497
12498         Test: http/tests/security/cross-frame-access-DOMImplementation.html
12499
12500         * bindings/objc/DOMImplementationFront.cpp:
12501         (WebCore::DOMImplementationFront::getInterface):
12502         * bindings/objc/DOMImplementationFront.h:
12503         * dom/DOMImplementation.cpp:
12504         (WebCore::DOMImplementation::hasFeature):
12505         (WebCore::DOMImplementation::createDocumentType):
12506         (WebCore::DOMImplementation::getInterface):
12507         (WebCore::DOMImplementation::createDocument):
12508         (WebCore::DOMImplementation::createHTMLDocument):
12509         * dom/DOMImplementation.h:
12510         (WebCore::DOMImplementation::create):
12511         * dom/Document.cpp:
12512         (WebCore::Document::Document):
12513         (WebCore::Document::implementation):
12514         * dom/Document.h:
12515         (WebCore::Document::create):
12516         (WebCore::Document::createXHTML):
12517         * dom/DocumentType.cpp:
12518         * dom/DocumentType.h:
12519         (WebCore::DocumentType::create):
12520         (WebCore::DocumentType::entities):
12521         (WebCore::DocumentType::notations):
12522         (WebCore::DocumentType::name):
12523         (WebCore::DocumentType::publicId):
12524         (WebCore::DocumentType::systemId):
12525         (WebCore::DocumentType::internalSubset):
12526         * dom/Node.cpp:
12527         (WebCore::Node::isSupported):
12528         * dom/XMLTokenizer.cpp:
12529         (WebCore::XMLTokenizer::internalSubset):
12530         * html/HTMLDocument.cpp:
12531         (WebCore::HTMLDocument::HTMLDocument):
12532         * html/HTMLDocument.h:
12533         (WebCore::HTMLDocument::create):
12534         (WebCore::HTMLDocument::isHTMLDocument):
12535         * html/HTMLParser.cpp:
12536         (WebCore::HTMLParser::parseDoctypeToken):
12537         * html/HTMLViewSourceDocument.cpp:
12538         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
12539         (WebCore::HTMLViewSourceDocument::createTokenizer):
12540         * html/HTMLViewSourceDocument.h:
12541         (WebCore::HTMLViewSourceDocument::create):
12542         * loader/CachedFont.cpp:
12543         (WebCore::CachedFont::ensureSVGFontData):
12544         * loader/FTPDirectoryDocument.cpp:
12545         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
12546         * loader/FTPDirectoryDocument.h:
12547         (WebCore::FTPDirectoryDocument::create):
12548         * loader/FrameLoader.cpp:
12549         (WebCore::FrameLoader::begin):
12550         * loader/ImageDocument.cpp:
12551         (WebCore::ImageDocument::ImageDocument):
12552         * loader/ImageDocument.h:
12553         (WebCore::ImageDocument::create):
12554         (WebCore::ImageDocument::isImageDocument):
12555         * loader/PluginDocument.cpp:
12556         (WebCore::PluginDocument::PluginDocument):
12557         * loader/PluginDocument.h:
12558         (WebCore::PluginDocument::create):
12559         (WebCore::PluginDocument::isPluginDocument):
12560         * loader/TextDocument.cpp:
12561         (WebCore::TextTokenizer::checkBuffer):
12562         (WebCore::TextDocument::TextDocument):
12563         (WebCore::createTextTokenizer):
12564         * loader/TextDocument.h:
12565         (WebCore::TextDocument::create):
12566         * svg/SVGDocument.cpp:
12567         (WebCore::SVGDocument::SVGDocument):
12568         * svg/SVGDocument.h:
12569         (WebCore::SVGDocument::create):
12570         * svg/SVGElement.cpp:
12571         (WebCore::SVGElement::isSupported):
12572         * svg/SVGTests.cpp:
12573         (WebCore::SVGTests::isValid):
12574         * xml/DOMParser.cpp:
12575         (WebCore::DOMParser::parseFromString):
12576
12577 2008-06-15  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
12578
12579         Reviewed by Maciej.
12580
12581         Mac build fix.
12582
12583         * WebCore.base.exp:
12584         * WebCore.order:
12585
12586 2008-06-14  Darin Adler  <darin@apple.com>
12587
12588         Rubber stamped by Sam.
12589
12590         - new names for kjs_binding.h and kjs_proxy.h
12591
12592         * GNUmakefile.am:
12593         * WebCore.pro:
12594         * WebCore.vcproj/WebCore.vcproj:
12595         * WebCore.xcodeproj/project.pbxproj:
12596         * WebCoreSources.bkl:
12597         * bindings/js/JSAudioConstructor.h:
12598         * bindings/js/JSCustomSQLStatementCallback.cpp:
12599         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
12600         * bindings/js/JSCustomSQLTransactionCallback.cpp:
12601         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
12602         * bindings/js/JSCustomVoidCallback.cpp:
12603         * bindings/js/JSCustomXPathNSResolver.cpp:
12604         * bindings/js/JSDOMBinding.cpp: Copied from WebCore/bindings/js/kjs_binding.cpp.
12605         * bindings/js/JSDOMBinding.h: Copied from WebCore/bindings/js/kjs_binding.h.
12606         * bindings/js/JSDOMWindowBase.cpp:
12607         * bindings/js/JSDOMWindowBase.h:
12608         * bindings/js/JSDOMWindowCustom.cpp:
12609         * bindings/js/JSDOMWindowShell.cpp:
12610         * bindings/js/JSDOMWindowShell.h:
12611         * bindings/js/JSDocumentCustom.cpp:
12612         * bindings/js/JSHTMLCollectionCustom.cpp:
12613         * bindings/js/JSHTMLFrameElementCustom.cpp:
12614         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
12615         * bindings/js/JSHTMLIFrameElementCustom.cpp:
12616         * bindings/js/JSHTMLInputElementBase.h:
12617         * bindings/js/JSHTMLOptionElementConstructor.h:
12618         * bindings/js/JSImageConstructor.h:
12619         * bindings/js/JSLocationCustom.cpp:
12620         * bindings/js/JSNamedNodeMapCustom.cpp:
12621         * bindings/js/JSNamedNodesCollection.h:
12622         * bindings/js/JSNodeFilterCondition.cpp:
12623         * bindings/js/JSNodeFilterCustom.cpp:
12624         * bindings/js/JSRGBColor.h:
12625         * bindings/js/JSSVGPathSegCustom.cpp:
12626         * bindings/js/JSXMLHttpRequestConstructor.h:
12627         * bindings/js/JSXSLTProcessorConstructor.h:
12628         * bindings/js/JSXSLTProcessorCustom.cpp:
12629         * bindings/js/ScheduledAction.cpp:
12630         (WebCore::ScheduledAction::execute):
12631         * bindings/js/ScriptController.cpp: Copied from WebCore/bindings/js/kjs_proxy.cpp.
12632         * bindings/js/ScriptController.h: Copied from WebCore/bindings/js/kjs_proxy.h.
12633         * bindings/js/kjs_binding.cpp: Removed.
12634         * bindings/js/kjs_binding.h: Removed.
12635         * bindings/js/kjs_events.cpp:
12636         (WebCore::JSAbstractEventListener::handleEvent):
12637         * bindings/js/kjs_html.cpp:
12638         * bindings/js/kjs_html.h:
12639         * bindings/js/kjs_proxy.cpp: Removed.
12640         * bindings/js/kjs_proxy.h: Removed.
12641         * bindings/objc/DOMInternal.mm:
12642         * bindings/scripts/CodeGeneratorJS.pm:
12643         * bridge/jni/jni_jsobject.mm:
12644         * dom/Document.cpp:
12645         * dom/EventTarget.cpp:
12646         * dom/Node.cpp:
12647         * dom/XMLTokenizer.cpp:
12648         (WebCore::XMLTokenizer::startElementNs):
12649         * history/CachedPage.cpp:
12650         (WebCore::CachedPage::CachedPage):
12651         (WebCore::CachedPage::restore):
12652         * html/HTMLPlugInElement.cpp:
12653         * html/HTMLScriptElement.cpp:
12654         * html/HTMLTokenizer.cpp:
12655         (WebCore::HTMLTokenizer::processToken):
12656         * loader/FrameLoader.cpp:
12657         (WebCore::FrameLoader::executeScript):
12658         * page/Frame.cpp:
12659         (WebCore::Frame::scriptProxy):
12660         * page/Frame.h:
12661         * page/FramePrivate.h:
12662         * page/InspectorController.cpp:
12663         * page/JavaScriptDebugServer.cpp:
12664         * page/JavaScriptProfileNode.cpp:
12665         * page/Page.cpp:
12666         * page/gtk/FrameGtk.cpp:
12667         * page/mac/FrameMac.mm:
12668         * page/qt/FrameQt.cpp:
12669         * page/win/FrameWin.cpp:
12670         * plugins/PluginView.cpp:
12671         (WebCore::getString):
12672         * plugins/gtk/PluginViewGtk.cpp:
12673         * plugins/qt/PluginViewQt.cpp:
12674         * plugins/win/PluginViewWin.cpp:
12675         * svg/SVGDocumentExtensions.cpp:
12676         * xml/XMLHttpRequest.cpp:
12677
12678 2008-06-14  Darin Adler  <darin@apple.com>
12679
12680         Rubber stamped by Sam.
12681
12682         - renamed HTMLGenericFormElement to HTMLFormControlElement
12683
12684         * GNUmakefile.am:
12685         * WebCore.pro:
12686         * WebCore.vcproj/WebCore.vcproj:
12687         * WebCore.xcodeproj/project.pbxproj:
12688         * WebCoreSources.bkl:
12689         * html/HTMLButtonElement.cpp:
12690         (WebCore::HTMLButtonElement::HTMLButtonElement):
12691         (WebCore::HTMLButtonElement::parseMappedAttribute):
12692         (WebCore::HTMLButtonElement::defaultEventHandler):
12693         * html/HTMLButtonElement.h:
12694         * html/HTMLFieldSetElement.cpp:
12695         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
12696         * html/HTMLFieldSetElement.h:
12697         * html/HTMLFormCollection.cpp:
12698         (WebCore::HTMLFormCollection::item):
12699         (WebCore::HTMLFormCollection::getNamedFormItem):
12700         (WebCore::HTMLFormCollection::updateNameCache):
12701         * html/HTMLFormControlElement.cpp: Copied from WebCore/html/HTMLGenericFormElement.cpp.
12702         * html/HTMLFormControlElement.h: Copied from WebCore/html/HTMLGenericFormElement.h.
12703         * html/HTMLFormElement.cpp:
12704         (WebCore::HTMLFormElement::formData):
12705         (WebCore::HTMLFormElement::submit):
12706         (WebCore::HTMLFormElement::formElementIndex):
12707         (WebCore::HTMLFormElement::registerFormElement):
12708         (WebCore::HTMLFormElement::removeFormElement):
12709         (WebCore::HTMLFormElement::elementForAlias):
12710         (WebCore::HTMLFormElement::addElementAlias):
12711         (WebCore::HTMLFormElement::getNamedElements):
12712         (WebCore::HTMLFormElement::CheckedRadioButtons::addButton):
12713         (WebCore::HTMLFormElement::CheckedRadioButtons::removeButton):
12714         * html/HTMLFormElement.h:
12715         * html/HTMLGenericFormElement.cpp: Removed.
12716         * html/HTMLGenericFormElement.h: Removed.
12717         * html/HTMLInputElement.h:
12718         * html/HTMLIsIndexElement.cpp:
12719         (WebCore::HTMLIsIndexElement::parseMappedAttribute):
12720         * html/HTMLKeygenElement.cpp:
12721         (WebCore::HTMLKeygenElement::parseMappedAttribute):
12722         * html/HTMLLegendElement.cpp:
12723         (WebCore::HTMLLegendElement::HTMLLegendElement):
12724         * html/HTMLLegendElement.h:
12725         * html/HTMLOptGroupElement.cpp:
12726         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
12727         (WebCore::HTMLOptGroupElement::insertBefore):
12728         (WebCore::HTMLOptGroupElement::replaceChild):
12729         (WebCore::HTMLOptGroupElement::removeChild):
12730         (WebCore::HTMLOptGroupElement::appendChild):
12731         (WebCore::HTMLOptGroupElement::removeChildren):
12732         (WebCore::HTMLOptGroupElement::childrenChanged):
12733         (WebCore::HTMLOptGroupElement::parseMappedAttribute):
12734         (WebCore::HTMLOptGroupElement::attach):
12735         (WebCore::HTMLOptGroupElement::detach):
12736         * html/HTMLOptGroupElement.h:
12737         * html/HTMLOptionElement.cpp:
12738         (WebCore::HTMLOptionElement::HTMLOptionElement):
12739         (WebCore::HTMLOptionElement::attach):
12740         (WebCore::HTMLOptionElement::detach):
12741         (WebCore::HTMLOptionElement::parseMappedAttribute):
12742         (WebCore::HTMLOptionElement::childrenChanged):
12743         (WebCore::HTMLOptionElement::disabled):
12744         (WebCore::HTMLOptionElement::insertedIntoDocument):
12745         * html/HTMLOptionElement.h:
12746         * html/HTMLSelectElement.h:
12747         * html/HTMLTextAreaElement.h:
12748         * page/Frame.cpp:
12749         (WebCore::scanForForm):
12750         (WebCore::Frame::currentForm):
12751         * page/mac/FrameMac.mm:
12752         * rendering/RenderFieldset.cpp:
12753         (WebCore::RenderFieldset::RenderFieldset):
12754         * rendering/RenderFieldset.h:
12755         * rendering/RenderLegend.cpp:
12756         (WebCore::RenderLegend::RenderLegend):
12757         * rendering/RenderLegend.h:
12758         * rendering/RenderTextControl.cpp:
12759         (WebCore::RenderTextControl::createInnerTextStyle):
12760         (WebCore::RenderTextControl::updateFromElement):
12761         (WebCore::RenderTextControl::subtreeHasChanged):
12762         (WebCore::RenderTextControl::selectionChanged):
12763
12764 2008-06-14  Sam Weinig  <sam@webkit.org>
12765
12766         Windows build fix.
12767
12768         * bindings/scripts/CodeGeneratorCOM.pm:
12769
12770 2008-06-14  Darin Adler  <darin@apple.com>
12771
12772         - more build fixing
12773
12774         * platform/gtk/DragDataGtk.cpp: Added missing header.
12775         * platform/wx/DragDataWx.cpp: Ditto.
12776
12777 2008-06-14  Darin Adler  <darin@apple.com>
12778
12779         Reviewed by Sam.
12780
12781         - fix https://bugs.webkit.org/show_bug.cgi?id=19544
12782           DashboardRegion pieces are leaking
12783
12784         My recent change introduced a leak of objects owned by each DashboardRegion,
12785         because I made ~Rect non-virtual. By using a separate RefCounted class for
12786         each of Rect and DashboardRegion, the leak is gone. It's not clear if the
12787         DashboardRegion class should really exist -- it doesn't have a DOM binding,
12788         so it could conceivably be removed some day.
12789
12790         * css/DashboardRegion.h: Derive from RectBase instead of from Rect.
12791         * css/Rect.h: Added RectBase. Changed Rect to derive from RectBase.
12792
12793 2008-06-14  Darin Adler  <darin@apple.com>
12794
12795         Reviewed by Sam.
12796
12797         - https://bugs.webkit.org/show_bug.cgi?id=19545
12798           use PassRefPtr, not RefPtr, for return values
12799
12800         * css/CSSParser.cpp:
12801         (WebCore::CSSParser::parseGradient): Call release() when assigning result to avoid
12802         a little bit of refcount churn.
12803
12804         * css/CSSStyleSelector.cpp:
12805         (WebCore::CSSStyleSelector::styleRulesForElement): Changed return value to PassRefPtr.
12806         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): Ditto.
12807         * css/CSSStyleSelector.h: Ditto.
12808
12809         * svg/SVGElementInstanceList.cpp:
12810         (WebCore::SVGElementInstanceList::length): Tweaked formatting.
12811         (WebCore::SVGElementInstanceList::item): Changed return value to raw pointer.
12812         * svg/SVGElementInstanceList.h: Ditto.
12813
12814         * xml/XSLTProcessor.cpp:
12815         (WebCore::XSLTProcessor::createDocumentFromSource): Changed return value to PassRefPtr.
12816         (WebCore::XSLTProcessor::transformToDocument): Ditto.
12817         (WebCore::XSLTProcessor::transformToFragment): Ditto.
12818         * xml/XSLTProcessor.h: Ditto.
12819
12820 2008-06-14  Darin Adler  <darin@apple.com>
12821
12822         - try to fix the gtk build
12823
12824         * platform/gtk/DragDataGtk.cpp:
12825         (WebCore::DragData::createClipboard): Changed return type to PassRefPtr.
12826
12827 2008-06-14  Darin Adler  <darin@apple.com>
12828
12829         - another try at fixing the wx build
12830
12831         * platform/wx/DragDataWx.cpp:
12832         (WebCore::DragData::createClipboard): Changed return type to PassRefPtr.
12833
12834 2008-06-14  Darin Adler  <darin@apple.com>
12835
12836         - try to fix Windows build
12837
12838         * svg/graphics/SVGImageEmptyClients.h: Added missing include.
12839
12840 2008-06-14  Darin Adler  <darin@apple.com>
12841
12842         - fix wx build
12843
12844         * platform/wx/TemporaryLinkStubs.cpp: Removed unneeded Icon constructor.
12845
12846 2008-06-14  Darin Adler  <darin@apple.com>
12847
12848         Reviewed by Sam.
12849
12850         - more work on https://bugs.webkit.org/show_bug.cgi?id=17257
12851           start ref counts at 1 instead of 0 for speed
12852
12853         * WebCore.base.exp: Added some new exports needed for functions that are now
12854         non-virtual.
12855
12856         * WebCore.xcodeproj/project.pbxproj: Moved the "icon" group to the correct
12857         location in the project. Before it was inside "appcache"!
12858
12859         * css/CSSStyleSelector.cpp:
12860         (WebCore::CSSStyleSelector::applyProperty):
12861         * dom/Clipboard.cpp:
12862         (WebCore::Clipboard::Clipboard):
12863         * editing/mac/EditorMac.mm:
12864         (WebCore::Editor::newGeneralClipboard):
12865         * editing/qt/EditorQt.cpp:
12866         (WebCore::Editor::newGeneralClipboard):
12867         * editing/wx/EditorWx.cpp:
12868         (WebCore::Editor::newGeneralClipboard):
12869         * loader/DocumentLoader.cpp:
12870         (WebCore::DocumentLoader::DocumentLoader):
12871         * loader/DocumentLoader.h:
12872         (WebCore::DocumentLoader::create):
12873         * loader/icon/IconDatabase.cpp:
12874         (WebCore::IconDatabase::defaultIcon):
12875         (WebCore::IconDatabase::setIconDataForIconURL):
12876         (WebCore::IconDatabase::setIconURLForPageURL):
12877         (WebCore::IconDatabase::getOrCreateIconRecord):
12878         (WebCore::IconDatabase::performURLImport):
12879         * loader/icon/IconDatabase.h:
12880         * loader/icon/IconRecord.cpp:
12881         (WebCore::IconRecord::IconRecord):
12882         * loader/icon/IconRecord.h:
12883         (WebCore::IconRecord::create):
12884         * page/EventHandler.h:
12885         * page/Frame.cpp:
12886         (WebCore::Frame::Frame):
12887         * page/Frame.h:
12888         (WebCore::Frame::create):
12889         * page/gtk/EventHandlerGtk.cpp:
12890         (WebCore::EventHandler::createDraggingClipboard):
12891         * page/mac/EventHandlerMac.mm:
12892         (WebCore::EventHandler::createDraggingClipboard):
12893         * page/qt/EventHandlerQt.cpp:
12894         (WebCore::EventHandler::createDraggingClipboard):
12895         * page/win/EventHandlerWin.cpp:
12896         (WebCore::EventHandler::createDraggingClipboard):
12897         * page/wx/EventHandlerWx.cpp:
12898         (WebCore::EventHandler::createDraggingClipboard):
12899         * platform/Cursor.h:
12900         (WebCore::SharedCursor::create):
12901         (WebCore::SharedCursor::~SharedCursor):
12902         (WebCore::SharedCursor::SharedCursor):
12903         * platform/DragData.h:
12904         * platform/PopupMenu.h:
12905         (WebCore::PopupMenu::create):
12906         (WebCore::PopupMenu::isActive):
12907         * platform/ScrollBar.cpp:
12908         (WebCore::Scrollbar::Scrollbar):
12909         * platform/SearchPopupMenu.h:
12910         (WebCore::SearchPopupMenu::create):
12911         * platform/graphics/FontFamily.cpp:
12912         (WebCore::FontFamily::FontFamily):
12913         (WebCore::operator==):
12914         * platform/graphics/FontFamily.h:
12915         (WebCore::FontFamily::FontFamily):
12916         (WebCore::SharedFontFamily::create):
12917         (WebCore::SharedFontFamily::SharedFontFamily):
12918         (WebCore::operator!=):
12919         (WebCore::FontFamily::next):
12920         (WebCore::FontFamily::appendFamily):
12921         (WebCore::FontFamily::releaseNext):
12922         * platform/graphics/Icon.h:
12923         * platform/graphics/gtk/IconGtk.cpp:
12924         (WebCore::Icon::Icon):
12925         (WebCore::Icon::~Icon):
12926         (WebCore::Icon::newIconForFile):
12927         * platform/graphics/mac/IconMac.mm:
12928         (WebCore::Icon::Icon):
12929         (WebCore::Icon::newIconForFile):
12930         * platform/graphics/qt/IconQt.cpp:
12931         (WebCore::Icon::Icon):
12932         (WebCore::Icon::newIconForFile):
12933         * platform/graphics/win/IconWin.cpp:
12934         (WebCore::Icon::Icon):
12935         (WebCore::Icon::~Icon):
12936         (WebCore::Icon::newIconForFile):
12937         * platform/gtk/ClipboardGtk.cpp:
12938         (WebCore::Editor::newGeneralClipboard):
12939         * platform/gtk/ClipboardGtk.h:
12940         (WebCore::ClipboardGtk::create):
12941         * platform/gtk/PlatformScrollBar.h:
12942         (WebCore::PlatformScrollbar::create):
12943         * platform/gtk/PopupMenuGtk.cpp:
12944         (WebCore::PopupMenu::PopupMenu):
12945         * platform/gtk/ScrollViewGtk.cpp:
12946         (WebCore::ScrollViewScrollbar::create):
12947         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
12948         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
12949         * platform/mac/ClipboardMac.h:
12950         (WebCore::ClipboardMac::create):
12951         * platform/mac/DragDataMac.mm:
12952         (WebCore::DragData::createClipboard):
12953         (WebCore::DragData::containsCompatibleContent):
12954         * platform/mac/PlatformScrollBar.h:
12955         (WebCore::PlatformScrollbar::create):
12956         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
12957         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
12958         * platform/mac/PopupMenuMac.mm:
12959         (WebCore::PopupMenu::PopupMenu):
12960         * platform/qt/ClipboardQt.h:
12961         (WebCore::ClipboardQt::create):
12962         * platform/qt/DragDataQt.cpp:
12963         (WebCore::DragData::createClipboard):
12964         * platform/qt/PlatformScrollBar.h:
12965         (WebCore::PlatformScrollbar::create):
12966         * platform/qt/PopupMenuQt.cpp:
12967         (WebCore::PopupMenu::PopupMenu):
12968         * platform/qt/ScrollViewQt.cpp:
12969         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
12970         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
12971         * platform/win/ClipboardWin.h:
12972         (WebCore::ClipboardWin::create):
12973         * platform/win/CursorWin.cpp:
12974         (WebCore::Cursor::Cursor):
12975         (WebCore::loadSharedCursor):
12976         * platform/win/DragDataWin.cpp:
12977         (WebCore::DragData::createClipboard):
12978         * platform/win/EditorWin.cpp:
12979         (WebCore::Editor::newGeneralClipboard):
12980         * platform/win/PlatformScrollBar.h:
12981         (WebCore::PlatformScrollbar::create):
12982         * platform/win/PopupMenuWin.cpp:
12983         (WebCore::PopupMenu::PopupMenu):
12984         (WebCore::PopupMenu::show):
12985         * platform/win/ScrollViewWin.cpp:
12986         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
12987         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
12988         * platform/wx/ClipboardWx.h:
12989         (WebCore::ClipboardWx::create):
12990         * platform/wx/PlatformScrollBar.h:
12991         (WebCore::PlatformScrollbar::create):
12992         * platform/wx/PopupMenuWx.cpp:
12993         (WebCore::PopupMenu::PopupMenu):
12994         * platform/wx/TemporaryLinkStubs.cpp:
12995         (Icon::Icon):
12996         (Icon::newIconForFile):
12997         * rendering/RenderLayer.cpp:
12998         (WebCore::RenderLayer::createScrollbar):
12999         * rendering/RenderListBox.cpp:
13000         (WebCore::RenderListBox::updateFromElement):
13001         * svg/graphics/SVGImage.cpp:
13002         (WebCore::SVGImage::dataChanged):
13003         * svg/graphics/SVGImageEmptyClients.h:
13004         (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
13005
13006 2008-06-14  Sam Weinig  <sam@webkit.org>
13007
13008         Reviewed by Dan Bernstein.
13009
13010         Fix for <rdar://problem/5775192>
13011         insertAdjacentHTML and insertAdjacentText are not implemented although insertAdjacentElement is.
13012
13013         - Implements insertAdjacentHTML and insertAdjacentText for HTMLElement.
13014         - Moves the insertAdjacentElement implementation from Element to HTMLElement.
13015
13016         Tests: fast/dynamic/insertAdjacentHTML.html
13017                fast/dynamic/insertAdjacentText.html
13018
13019         * dom/Element.cpp:
13020         * dom/Element.h:
13021         * dom/Element.idl:
13022         * html/HTMLElement.cpp:
13023         (WebCore::HTMLElement::insertAdjacent):
13024         (WebCore::HTMLElement::insertAdjacentElement):
13025         (WebCore::HTMLElement::insertAdjacentHTML):
13026         (WebCore::HTMLElement::insertAdjacentText):
13027         * html/HTMLElement.h:
13028         * html/HTMLElement.idl:
13029
13030 2008-06-14  Darin Adler  <darin@apple.com>
13031
13032         Reviewed by Maciej.
13033
13034         - fix https://bugs.webkit.org/show_bug.cgi?id=19538
13035           <rdar://problem/5957595> Reading transition property from the style JS gives the wrong value
13036
13037         Test: fast/dom/CSSStyleDeclaration/transition-property-names.html
13038
13039         * css/CSSPrimitiveValue.cpp:
13040         (WebCore::valueOrPropertyName): Added.
13041         (WebCore::CSSPrimitiveValue::getStringValue): Use valueOrPropertyName since the ident can either
13042         be a value or property ID.
13043         (WebCore::CSSPrimitiveValue::cssText): Ditto.
13044
13045         * css/makeprop.pl: Assign property IDs starting at 1001 instead of 1 so they can be stored along
13046         with value IDs with no ambiguity.
13047
13048 2008-06-14  Adam Barth  <abarth@webkit.org>
13049
13050         Reviewed by David Kilzer.
13051
13052         Fix typo.
13053
13054         * dom/XMLTokenizer.cpp:
13055         (WebCore::shouldAllowExternalLoad):
13056
13057 2008-06-14  Darin Adler  <darin@apple.com>
13058
13059         - fix build
13060
13061         * plugins/PluginStream.h: Move functions back into public section.
13062
13063 2008-06-14  Darin Adler  <darin@apple.com>
13064
13065         Reviewed by Sam.
13066
13067         - more work on https://bugs.webkit.org/show_bug.cgi?id=17257
13068           start ref counts at 1 instead of 0 for speed
13069
13070         * WebCore.base.exp:
13071         * bindings/js/JSSVGMatrixCustom.cpp:
13072         (WebCore::JSSVGMatrix::multiply):
13073         (WebCore::JSSVGMatrix::inverse):
13074         (WebCore::JSSVGMatrix::translate):
13075         (WebCore::JSSVGMatrix::scale):
13076         (WebCore::JSSVGMatrix::scaleNonUniform):
13077         (WebCore::JSSVGMatrix::rotate):
13078         (WebCore::JSSVGMatrix::rotateFromVector):
13079         (WebCore::JSSVGMatrix::flipX):
13080         (WebCore::JSSVGMatrix::flipY):
13081         (WebCore::JSSVGMatrix::skewX):
13082         (WebCore::JSSVGMatrix::skewY):
13083         * bindings/js/JSSVGPODTypeWrapper.h:
13084         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::create):
13085         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
13086         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::create):
13087         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
13088         (WebCore::JSSVGPODTypeWrapperCreatorForList::create):
13089         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
13090         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
13091         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
13092         * bindings/js/JSSVGPointListCustom.cpp:
13093         (WebCore::finishGetter):
13094         (WebCore::finishSetter):
13095         (WebCore::finishSetterReadOnlyResult):
13096         (WebCore::JSSVGPointList::clear):
13097         (WebCore::JSSVGPointList::initialize):
13098         (WebCore::JSSVGPointList::getItem):
13099         (WebCore::JSSVGPointList::insertItemBefore):
13100         (WebCore::JSSVGPointList::replaceItem):
13101         (WebCore::JSSVGPointList::removeItem):
13102         (WebCore::JSSVGPointList::appendItem):
13103         * bindings/js/JSSVGTransformListCustom.cpp:
13104         (WebCore::finishGetter):
13105         (WebCore::finishSetter):
13106         (WebCore::finishSetterReadOnlyResult):
13107         (WebCore::JSSVGTransformList::clear):
13108         (WebCore::JSSVGTransformList::initialize):
13109         (WebCore::JSSVGTransformList::getItem):
13110         (WebCore::JSSVGTransformList::insertItemBefore):
13111         (WebCore::JSSVGTransformList::replaceItem):
13112         (WebCore::JSSVGTransformList::removeItem):
13113         (WebCore::JSSVGTransformList::appendItem):
13114         * bindings/scripts/CodeGeneratorJS.pm:
13115         * css/CSSFontSelector.cpp:
13116         (WebCore::CSSFontSelector::CSSFontSelector):
13117         (WebCore::CSSFontSelector::~CSSFontSelector):
13118         * css/CSSFontSelector.h:
13119         (WebCore::CSSFontSelector::create):
13120         * css/CSSStyleSelector.cpp:
13121         (WebCore::CSSStyleSelector::CSSStyleSelector):
13122         (WebCore::CSSStyleSelector::applyProperty):
13123         * dom/Attribute.cpp:
13124         (WebCore::Attribute::clone):
13125         * dom/Attribute.h:
13126         (WebCore::Attribute::create):
13127         (WebCore::Attribute::Attribute):
13128         * dom/BeforeTextInsertedEvent.h:
13129         (WebCore::BeforeTextInsertedEvent::create):
13130         * dom/BeforeUnloadEvent.h:
13131         (WebCore::BeforeUnloadEvent::create):
13132         * dom/CharacterData.cpp:
13133         (WebCore::CharacterData::dispatchModifiedEvent):
13134         * dom/ClipboardEvent.cpp:
13135         (WebCore::ClipboardEvent::ClipboardEvent):
13136         * dom/ClipboardEvent.h:
13137         (WebCore::ClipboardEvent::create):
13138         * dom/ContainerNode.cpp:
13139         (WebCore::ContainerNode::removeChild):
13140         (WebCore::dispatchChildInsertionEvents):
13141         (WebCore::dispatchChildRemovalEvents):
13142         * dom/Document.cpp:
13143         (WebCore::Document::createTextNode):
13144         (WebCore::Document::createComment):
13145         (WebCore::Document::createCDATASection):
13146         (WebCore::Document::createProcessingInstruction):
13147         (WebCore::Document::createEntityReference):
13148         (WebCore::Document::createEditingTextNode):
13149         (WebCore::Document::createEvent):
13150         (WebCore::Document::createAttributeNS):
13151         (WebCore::Document::finishedParsing):
13152         * dom/Document.h:
13153         * dom/Element.cpp:
13154         (WebCore::Element::createAttribute):
13155         * dom/Element.h:
13156         * dom/Event.cpp:
13157         (WebCore::Event::Event):
13158         * dom/Event.h:
13159         (WebCore::Event::create):
13160         * dom/EventTargetNode.cpp:
13161         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
13162         (WebCore::EventTargetNode::dispatchWindowEvent):
13163         (WebCore::EventTargetNode::dispatchUIEvent):
13164         (WebCore::EventTargetNode::dispatchKeyEvent):
13165         (WebCore::EventTargetNode::dispatchMouseEvent):
13166         (WebCore::EventTargetNode::dispatchWheelEvent):
13167         (WebCore::EventTargetNode::dispatchHTMLEvent):
13168         (WebCore::EventTargetNode::dispatchProgressEvent):
13169         (WebCore::EventTargetNode::dispatchStorageEvent):
13170         * dom/KeyboardEvent.h:
13171         (WebCore::KeyboardEvent::create):
13172         * dom/MappedAttribute.cpp:
13173         (WebCore::MappedAttribute::clone):
13174         * dom/MappedAttribute.h:
13175         (WebCore::MappedAttribute::create):
13176         (WebCore::MappedAttribute::setDecl):
13177         (WebCore::MappedAttribute::MappedAttribute):
13178         * dom/MessageEvent.cpp:
13179         (WebCore::MessageEvent::MessageEvent):
13180         * dom/MessageEvent.h:
13181         (WebCore::MessageEvent::create):
13182         * dom/MouseEvent.cpp:
13183         (WebCore::MouseEvent::MouseEvent):
13184         (WebCore::MouseEvent::initMouseEvent):
13185         * dom/MouseEvent.h:
13186         (WebCore::MouseEvent::create):
13187         * dom/MouseRelatedEvent.cpp:
13188         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
13189         * dom/MouseRelatedEvent.h:
13190         * dom/MutationEvent.cpp:
13191         (WebCore::MutationEvent::MutationEvent):
13192         (WebCore::MutationEvent::initMutationEvent):
13193         * dom/MutationEvent.h:
13194         (WebCore::MutationEvent::create):
13195         * dom/OverflowEvent.h:
13196         (WebCore::OverflowEvent::create):
13197         * dom/ProgressEvent.h:
13198         (WebCore::ProgressEvent::create):
13199         * dom/StyledElement.cpp:
13200         (WebCore::StyledElement::getMappedAttributeDecl):
13201         (WebCore::StyledElement::setMappedAttributeDecl):
13202         (WebCore::StyledElement::removeMappedAttributeDecl):
13203         (WebCore::StyledElement::createAttribute):
13204         * dom/StyledElement.h:
13205         * dom/TextEvent.cpp:
13206         (WebCore::TextEvent::TextEvent):
13207         (WebCore::TextEvent::initTextEvent):
13208         * dom/TextEvent.h:
13209         (WebCore::TextEvent::create):
13210         * dom/UIEvent.cpp:
13211         (WebCore::UIEvent::UIEvent):
13212         (WebCore::UIEvent::initUIEvent):
13213         * dom/UIEvent.h:
13214         (WebCore::UIEvent::create):
13215         * dom/UIEventWithKeyState.h:
13216         (WebCore::UIEventWithKeyState::ctrlKey):
13217         (WebCore::UIEventWithKeyState::shiftKey):
13218         (WebCore::UIEventWithKeyState::altKey):
13219         (WebCore::UIEventWithKeyState::metaKey):
13220         (WebCore::UIEventWithKeyState::UIEventWithKeyState):
13221         * dom/WheelEvent.cpp:
13222         (WebCore::WheelEvent::WheelEvent):
13223         (WebCore::WheelEvent::initWheelEvent):
13224         * dom/WheelEvent.h:
13225         (WebCore::WheelEvent::create):
13226         * editing/AppendNodeCommand.cpp:
13227         (WebCore::AppendNodeCommand::AppendNodeCommand):
13228         * editing/AppendNodeCommand.h:
13229         (WebCore::AppendNodeCommand::create):
13230         * editing/ApplyStyleCommand.cpp:
13231         (WebCore::ApplyStyleCommand::applyBlockStyle):
13232         * editing/ApplyStyleCommand.h:
13233         (WebCore::ApplyStyleCommand::create):
13234         * editing/BreakBlockquoteCommand.h:
13235         (WebCore::BreakBlockquoteCommand::create):
13236         * editing/CompositeEditCommand.cpp:
13237         (WebCore::CompositeEditCommand::applyStyle):
13238         (WebCore::CompositeEditCommand::applyStyledElement):
13239         (WebCore::CompositeEditCommand::removeStyledElement):
13240         (WebCore::CompositeEditCommand::insertParagraphSeparator):
13241         (WebCore::CompositeEditCommand::insertLineBreak):
13242         (WebCore::CompositeEditCommand::insertNodeBefore):
13243         (WebCore::CompositeEditCommand::appendNode):
13244         (WebCore::CompositeEditCommand::removeNode):
13245         (WebCore::CompositeEditCommand::removeNodePreservingChildren):
13246         (WebCore::CompositeEditCommand::splitTextNode):
13247         (WebCore::CompositeEditCommand::splitElement):
13248         (WebCore::CompositeEditCommand::mergeIdenticalElements):
13249         (WebCore::CompositeEditCommand::wrapContentsInDummySpan):
13250         (WebCore::CompositeEditCommand::splitTextNodeContainingElement):
13251         (WebCore::CompositeEditCommand::joinTextNodes):
13252         (WebCore::CompositeEditCommand::inputText):
13253         (WebCore::CompositeEditCommand::insertTextIntoNode):
13254         (WebCore::CompositeEditCommand::deleteTextFromNode):
13255         (WebCore::CompositeEditCommand::replaceTextInNode):
13256         (WebCore::CompositeEditCommand::deleteSelection):
13257         (WebCore::CompositeEditCommand::removeCSSProperty):
13258         (WebCore::CompositeEditCommand::removeNodeAttribute):
13259         (WebCore::CompositeEditCommand::setNodeAttribute):
13260         (WebCore::CompositeEditCommand::appendBlockPlaceholder):
13261         (WebCore::CompositeEditCommand::insertBlockPlaceholder):
13262         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
13263         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
13264         (WebCore::CompositeEditCommand::moveParagraphs):
13265         (WebCore::CompositeEditCommand::splitTreeToNode):
13266         * editing/CompositeEditCommand.h:
13267         (WebCore::CompositeEditCommand::isFirstCommand):
13268         * editing/CreateLinkCommand.h:
13269         (WebCore::CreateLinkCommand::create):
13270         * editing/DeleteButtonController.cpp:
13271         (WebCore::DeleteButtonController::deleteTarget):
13272         * editing/DeleteFromTextNodeCommand.cpp:
13273         (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand):
13274         * editing/DeleteFromTextNodeCommand.h:
13275         (WebCore::DeleteFromTextNodeCommand::create):
13276         * editing/DeleteSelectionCommand.h:
13277         (WebCore::DeleteSelectionCommand::create):
13278         * editing/EditCommand.h:
13279         (WebCore::SimpleEditCommand::SimpleEditCommand):
13280         * editing/Editor.cpp:
13281         (WebCore::Editor::deleteSelectionWithSmartDelete):
13282         (WebCore::Editor::replaceSelectionWithFragment):
13283         (WebCore::Editor::removeFormattingAndStyle):
13284         (WebCore::Editor::clearLastEditCommand):
13285         (WebCore::Editor::dispatchCPPEvent):
13286         (WebCore::Editor::applyStyle):
13287         (WebCore::Editor::applyParagraphStyle):
13288         (WebCore::Editor::indent):
13289         (WebCore::Editor::outdent):
13290         (WebCore::dispatchEditableContentChangedEvents):
13291         * editing/Editor.h:
13292         * editing/EditorCommand.cpp:
13293         (WebCore::executeInsertFragment):
13294         (WebCore::executeCreateLink):
13295         (WebCore::executeFormatBlock):
13296         (WebCore::executeIndent):
13297         (WebCore::executeInsertOrderedList):
13298         (WebCore::executeInsertUnorderedList):
13299         (WebCore::executeOutdent):
13300         (WebCore::executeUnlink):
13301         * editing/FormatBlockCommand.h:
13302         (WebCore::FormatBlockCommand::create):
13303         * editing/IndentOutdentCommand.cpp:
13304         (WebCore::IndentOutdentCommand::indentRegion):
13305         (WebCore::IndentOutdentCommand::outdentParagraph):
13306         * editing/IndentOutdentCommand.h:
13307         (WebCore::IndentOutdentCommand::create):
13308         * editing/InsertIntoTextNodeCommand.cpp:
13309         (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
13310         * editing/InsertIntoTextNodeCommand.h:
13311         (WebCore::InsertIntoTextNodeCommand::create):
13312         * editing/InsertLineBreakCommand.h:
13313         (WebCore::InsertLineBreakCommand::create):
13314         * editing/InsertListCommand.cpp:
13315         (WebCore::InsertListCommand::doApply):
13316         * editing/InsertListCommand.h:
13317         (WebCore::InsertListCommand::create):
13318         * editing/InsertNodeBeforeCommand.cpp:
13319         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand):
13320         * editing/InsertNodeBeforeCommand.h:
13321         (WebCore::InsertNodeBeforeCommand::create):
13322         * editing/InsertParagraphSeparatorCommand.cpp:
13323         (WebCore::InsertParagraphSeparatorCommand::doApply):
13324         * editing/InsertParagraphSeparatorCommand.h:
13325         (WebCore::InsertParagraphSeparatorCommand::create):
13326         * editing/InsertTextCommand.h:
13327         (WebCore::InsertTextCommand::create):
13328         * editing/JoinTextNodesCommand.cpp:
13329         (WebCore::JoinTextNodesCommand::JoinTextNodesCommand):
13330         * editing/JoinTextNodesCommand.h:
13331         (WebCore::JoinTextNodesCommand::create):
13332         * editing/MergeIdenticalElementsCommand.cpp:
13333         (WebCore::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand):
13334         * editing/MergeIdenticalElementsCommand.h:
13335         (WebCore::MergeIdenticalElementsCommand::create):
13336         * editing/ModifySelectionListLevel.cpp:
13337         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
13338         * editing/MoveSelectionCommand.cpp:
13339         (WebCore::MoveSelectionCommand::doApply):
13340         * editing/MoveSelectionCommand.h:
13341         (WebCore::MoveSelectionCommand::create):
13342         * editing/RemoveCSSPropertyCommand.cpp:
13343         (WebCore::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand):
13344         * editing/RemoveCSSPropertyCommand.h:
13345         (WebCore::RemoveCSSPropertyCommand::create):
13346         * editing/RemoveFormatCommand.h:
13347         (WebCore::RemoveFormatCommand::create):
13348         * editing/RemoveNodeAttributeCommand.cpp:
13349         (WebCore::RemoveNodeAttributeCommand::RemoveNodeAttributeCommand):
13350         * editing/RemoveNodeAttributeCommand.h:
13351         (WebCore::RemoveNodeAttributeCommand::create):
13352         * editing/RemoveNodeCommand.cpp:
13353         (WebCore::RemoveNodeCommand::RemoveNodeCommand):
13354         * editing/RemoveNodeCommand.h:
13355         (WebCore::RemoveNodeCommand::create):
13356         * editing/RemoveNodePreservingChildrenCommand.cpp:
13357         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
13358         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
13359         * editing/RemoveNodePreservingChildrenCommand.h:
13360         (WebCore::RemoveNodePreservingChildrenCommand::create):
13361         * editing/ReplaceSelectionCommand.cpp:
13362         (WebCore::ReplacementFragment::hasInterchangeNewlineAtStart):
13363         (WebCore::ReplacementFragment::hasInterchangeNewlineAtEnd):
13364         (WebCore::ReplacementFragment::ReplacementFragment):
13365         * editing/ReplaceSelectionCommand.h:
13366         (WebCore::ReplaceSelectionCommand::create):
13367         * editing/SetNodeAttributeCommand.cpp:
13368         (WebCore::SetNodeAttributeCommand::SetNodeAttributeCommand):
13369         * editing/SetNodeAttributeCommand.h:
13370         (WebCore::SetNodeAttributeCommand::create):
13371         * editing/SplitElementCommand.cpp:
13372         (WebCore::SplitElementCommand::SplitElementCommand):
13373         * editing/SplitElementCommand.h:
13374         (WebCore::SplitElementCommand::create):
13375         * editing/SplitTextNodeCommand.cpp:
13376         (WebCore::SplitTextNodeCommand::SplitTextNodeCommand):
13377         * editing/SplitTextNodeCommand.h:
13378         (WebCore::SplitTextNodeCommand::create):
13379         * editing/SplitTextNodeContainingElementCommand.cpp:
13380         (WebCore::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand):
13381         * editing/SplitTextNodeContainingElementCommand.h:
13382         (WebCore::SplitTextNodeContainingElementCommand::create):
13383         * editing/TypingCommand.cpp:
13384         (WebCore::TypingCommand::deleteSelection):
13385         (WebCore::TypingCommand::deleteKeyPressed):
13386         (WebCore::TypingCommand::forwardDeleteKeyPressed):
13387         (WebCore::TypingCommand::insertText):
13388         (WebCore::TypingCommand::insertLineBreak):
13389         (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
13390         (WebCore::TypingCommand::insertParagraphSeparator):
13391         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
13392         * editing/TypingCommand.h:
13393         (WebCore::TypingCommand::create):
13394         (WebCore::TypingCommand::smartDelete):
13395         * editing/UnlinkCommand.h:
13396         (WebCore::UnlinkCommand::create):
13397         * editing/WrapContentsInDummySpanCommand.cpp:
13398         (WebCore::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
13399         * editing/WrapContentsInDummySpanCommand.h:
13400         (WebCore::WrapContentsInDummySpanCommand::create):
13401         * html/HTMLTableElement.cpp:
13402         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
13403         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
13404         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
13405         (WebCore::HTMLTableElement::addSharedGroupDecls):
13406         * html/HTMLTokenizer.cpp:
13407         (WebCore::Token::addAttribute):
13408         * html/HTMLViewSourceDocument.cpp:
13409         (WebCore::HTMLViewSourceDocument::createContainingTable):
13410         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
13411         (WebCore::HTMLViewSourceDocument::addLine):
13412         (WebCore::HTMLViewSourceDocument::addLink):
13413         * loader/FrameLoader.cpp:
13414         (WebCore::FrameLoader::didOpenURL):
13415         * loader/appcache/DOMApplicationCache.cpp:
13416         (WebCore::DOMApplicationCache::callListener):
13417         * page/ContextMenuController.cpp:
13418         (WebCore::ContextMenuController::contextMenuItemSelected):
13419         * page/DOMWindow.cpp:
13420         (WebCore::PostMessageTimer::PostMessageTimer):
13421         (WebCore::PostMessageTimer::fired):
13422         (WebCore::DOMWindow::postMessage):
13423         * page/DragController.cpp:
13424         (WebCore::DragController::concludeDrag):
13425         * page/EventHandler.cpp:
13426         (WebCore::EventHandler::dispatchDragEvent):
13427         (WebCore::EventHandler::keyEvent):
13428         (WebCore::EventHandler::handleTextInputEvent):
13429         * page/Frame.cpp:
13430         (WebCore::Frame::computeAndSetTypingStyle):
13431         (WebCore::Frame::shouldClose):
13432         * page/FrameView.cpp:
13433         (WebCore::FrameView::updateOverflowStatus):
13434         * page/mac/EventHandlerMac.mm:
13435         (WebCore::EventHandler::currentKeyboardEvent):
13436         * page/mac/FrameMac.mm:
13437         * platform/DeprecatedValueListImpl.cpp:
13438         (WebCore::DeprecatedValueListImpl::Private::Private):
13439         (WebCore::DeprecatedValueListImpl::DeprecatedValueListImpl):
13440         (WebCore::DeprecatedValueListImpl::copyOnWrite):
13441         * platform/graphics/FontSelector.h:
13442         * platform/graphics/GlyphPageTreeNode.cpp:
13443         (WebCore::GlyphPageTreeNode::initializePage):
13444         * platform/graphics/GlyphPageTreeNode.h:
13445         (WebCore::GlyphPage::create):
13446         (WebCore::GlyphPage::GlyphPage):
13447         * rendering/RenderLayer.cpp:
13448         (WebCore::RenderLayer::scrollToOffset):
13449         (WebCore::RenderLayer::updateOverflowStatus):
13450         (WebCore::RenderLayer::updateReflectionStyle):
13451         * rendering/style/RenderStyle.h:
13452         (WebCore::TransformOperation::~TransformOperation):
13453         (WebCore::ScaleTransformOperation::create):
13454         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
13455         (WebCore::RotateTransformOperation::create):
13456         (WebCore::RotateTransformOperation::RotateTransformOperation):
13457         (WebCore::SkewTransformOperation::create):
13458         (WebCore::SkewTransformOperation::operator==):
13459         (WebCore::SkewTransformOperation::SkewTransformOperation):
13460         (WebCore::TranslateTransformOperation::create):
13461         (WebCore::TranslateTransformOperation::operator==):
13462         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
13463         (WebCore::MatrixTransformOperation::create):
13464         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
13465         (WebCore::StyleReflection::create):
13466         (WebCore::StyleReflection::StyleReflection):
13467         * storage/StorageEvent.cpp:
13468         (WebCore::StorageEvent::StorageEvent):
13469         (WebCore::StorageEvent::initStorageEvent):
13470         * storage/StorageEvent.h:
13471         (WebCore::StorageEvent::create):
13472         (WebCore::StorageEvent::StorageEvent):
13473         * svg/SVGAngle.cpp:
13474         (WebCore::SVGAngle::SVGAngle):
13475         * svg/SVGAngle.h:
13476         (WebCore::SVGAngle::create):
13477         * svg/SVGAnimatedTemplate.h:
13478         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
13479         (WebCore::lookupOrCreateWrapper):
13480         * svg/SVGElement.cpp:
13481         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
13482         * svg/SVGElement.h:
13483         * svg/SVGMarkerElement.cpp:
13484         (WebCore::SVGMarkerElement::SVGMarkerElement):
13485         (WebCore::SVGMarkerElement::parseMappedAttribute):
13486         (WebCore::SVGMarkerElement::setOrientToAngle):
13487         * svg/SVGMarkerElement.h:
13488         * svg/SVGSVGElement.cpp:
13489         (WebCore::SVGSVGElement::createSVGAngle):
13490         * svg/SVGSVGElement.h:
13491         * svg/SVGZoomEvent.h:
13492         (WebCore::SVGZoomEvent::create):
13493         * svg/graphics/SVGImage.cpp:
13494         * xml/XMLHttpRequest.cpp:
13495         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
13496         (WebCore::XMLHttpRequest::dispatchProgressEvent):
13497         * xml/XMLHttpRequestProgressEvent.cpp:
13498         * xml/XMLHttpRequestProgressEvent.h:
13499         (WebCore::XMLHttpRequestProgressEvent::create):
13500         (WebCore::XMLHttpRequestProgressEvent::position):
13501         (WebCore::XMLHttpRequestProgressEvent::totalSize):
13502         (WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent):
13503
13504 2008-06-13  Adam Barth  <abarth@webkit.org>
13505
13506         Reviewed by Eric Seidel.
13507
13508         https://bugs.webkit.org/show_bug.cgi?id=19199
13509
13510         Prevent external entities from loading across origins.
13511
13512         Test: http/tests/security/xss-DENIED-xsl-external-entity.xml
13513
13514         * dom/XMLTokenizer.cpp:
13515         (WebCore::shouldAllowExternalLoad):
13516         (WebCore::openFunc):
13517
13518 2008-06-13  Adam Barth  <abarth@webkit.org>
13519
13520         Reviewed by Darin Adler.
13521
13522         https://bugs.webkit.org/show_bug.cgi?id=19450
13523
13524         Allow loads of same-origin documents only.
13525
13526         Test: http/tests/security/xss-DENIED-xsl-document.xml
13527
13528         * xml/XSLTProcessor.cpp:
13529         (WebCore::docLoaderFunc):
13530
13531 2008-06-13  Adam Barth  <abarth@webkit.org>
13532
13533         Reviewed by Darin Adler.
13534
13535         Fixes <https://bugs.webkit.org/show_bug.cgi?id=15100>:
13536           XMLHttpRequest::urlMatchesDocumentDomain raises error if port
13537           information does not match exactly
13538
13539         Refactor our security check for XMLHttpRequest into SecurityOrigin so
13540         we can reuse it in other places.  This leverages our default port
13541         technology in SecurityOrigin.
13542
13543         I wasn't sure how to write a test for this because the LayoutTests run
13544         on non-default ports.
13545
13546         * platform/SecurityOrigin.cpp:
13547         (WebCore::SecurityOrigin::canRequest):
13548         * platform/SecurityOrigin.h:
13549         * xml/XMLHttpRequest.cpp:
13550         (WebCore::XMLHttpRequest::send):
13551         (WebCore::XMLHttpRequest::willSendRequest):
13552         * xml/XMLHttpRequest.h:
13553
13554 2008-06-13  Adam Barth  <abarth@webkit.org>
13555
13556         Reviewed by Eric Seidel.
13557
13558         Removed unnecessary dependencies.
13559
13560         * platform/SecurityOrigin.cpp:
13561         * platform/SecurityOrigin.h:
13562
13563 2008-06-13  Darin Adler  <darin@apple.com>
13564
13565         Reviewed by John Sullivan.
13566
13567         - added FormState argument to action policy functions
13568
13569         * loader/FrameLoader.cpp:
13570         (WebCore::FrameLoader::checkNewWindowPolicy):
13571         (WebCore::FrameLoader::checkNavigationPolicy):
13572         * loader/FrameLoaderClient.h:
13573         * svg/graphics/SVGImageEmptyClients.h:
13574         (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
13575         (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
13576
13577 2008-06-13  Justin Garcia  <justin.garcia@apple.com>
13578
13579         Reviewed by Jess.
13580
13581         <rdar://problem/5702248> Crash on Copy Image from the contextual menu on a broken image in Mail
13582
13583         * platform/mac/PasteboardMac.mm:
13584         (WebCore::Pasteboard::writeImage): Check to see the image loaded successfully
13585         before trying to put data for it on the Pasteboard.  Mail shouldn't really
13586         include the Copy Image menu item, but if it does and the user selects it,
13587         we shouldn't crash.
13588
13589 2008-06-11  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
13590         With help from Siraj Razick  <siraj.razick@collabora.co.uk>
13591
13592         Reviewed by Simon.
13593
13594         https://bugs.webkit.org/show_bug.cgi?id=19367
13595         [Qt] Plugins are drawn over the scrollbars
13596
13597         * plugins/qt/PluginViewQt.cpp:
13598         (WebCore::PluginView::updateWindow): Call setMask on the
13599         QX11EmbedContainer to set the plugin clipping.
13600
13601 2008-06-12  Darin Adler  <darin@apple.com>
13602
13603         - try to fix no-SVG build
13604
13605         * css/CSSComputedStyleDeclaration.cpp:
13606         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added a case for
13607         CSSPropertyWebkitMask.
13608
13609 2008-06-12  Darin Adler  <darin@apple.com>
13610
13611         - try to fix Windows build
13612
13613         * dom/Element.idl: Turn off ElementTraversal functions when generating COM.
13614         Not sure why they're failing, but turning them off for now seems OK.
13615
13616 2008-06-12  Adam Barth  <abarth@webkit.org>
13617
13618         Rubberstamped by Maciej.
13619
13620         Roll 34504 back in.
13621
13622         Test: http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-data-url.html
13623
13624         * platform/SecurityOrigin.cpp:
13625         (WebCore::SecurityOrigin::toString):
13626
13627 2008-06-11  Dan Bernstein  <mitz@apple.com>
13628
13629         Reviewed by Dave Hyatt.
13630
13631         - fix <rdar://problem/5876370> Safari 3.1.1 bad rendering of pages from http://www.legifrance.gouv.fr/
13632
13633         Tests: fast/parser/p-in-scope-strict.html
13634                fast/parser/p-in-scope.html
13635
13636         * html/HTMLParagraphElement.h:
13637         (WebCore::HTMLParagraphElement::endTagRequirement): Changed to require
13638         an end tag. The explicit closing of one P element by another is now
13639         done in error checking, and therefore takes scope into account, allowing
13640         for <p><button><p>, for example.
13641
13642         * html/HTMLParser.cpp:
13643         (WebCore::HTMLParser::HTMLParser): Initialize m_hasPElementInScope.
13644         (WebCore::isScopingTag): Added. Returns whether the given tag represents
13645         a scoping element as defined in HTML 5 section 8.2.3.2.
13646         (WebCore::HTMLParser::formCreateErrorCheck): Added a call to
13647         pCloserCreateErrorCheck().
13648         (WebCore::HTMLParser::ddCreateErrorCheck): Ditto.
13649         (WebCore::HTMLParser::dtCreateErrorCheck): Ditto.
13650         (WebCore::HTMLParser::nestedPCloserCreateErrorCheck): Added for use with
13651         <li>, which both closes P elements in scope and any previous LI.
13652         (WebCore::HTMLParser::pCloserCreateErrorCheck): Added. If there is a P
13653         element in scope, acts as if a </p> tag was seen.
13654         (WebCore::HTMLParser::pCloserStrictCreateErrorCheck): Ditto, but only
13655         in strict mode. Used for <table>.
13656         (WebCore::HTMLParser::getNode): Added entries for tags that close a P
13657         element in scope.
13658         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Added
13659         code to reset m_hasPElementInScope.
13660         (WebCore::HTMLParser::pushBlock): Added code to update
13661         m_hasPElementInScope.
13662         (WebCore::HTMLParser::popOneBlockCommon): Ditto.
13663         (WebCore::HTMLParser::checkIfHasPElementInScope): Added. Updates
13664         m_hasPElementInScope.
13665
13666         * html/HTMLParser.h:
13667         (WebCore::HTMLParser::hasPElementInScope): Added. Calls
13668         checkIfHasPElementInScope() if needed and returns whether there
13669         is a P element in scope.
13670
13671 2008-06-11  Adam Barth  <abarth@webkit.org>
13672
13673         Reviewed by Sam Weinig.
13674
13675         https://bugs.webkit.org/show_bug.cgi?id=19460
13676
13677         Update the security context of a document after calling document.open
13678         or document.write.  Basically, when a script open()s a document, the
13679         document gains the security context of the script.  Our implementation
13680         now matches Firefox 3 on all these tests.
13681
13682         Tests: http/tests/security/aboutBlank/security-context-alias.html
13683                http/tests/security/aboutBlank/security-context-grandchildren-alias.html
13684                http/tests/security/aboutBlank/security-context-grandchildren.html
13685                http/tests/security/aboutBlank/security-context-window-open.html
13686                http/tests/security/aboutBlank/security-context-with-base-tag.html
13687                http/tests/security/aboutBlank/security-context-write.html
13688                http/tests/security/aboutBlank/security-context-writeln.html
13689                http/tests/security/aboutBlank/security-context.html
13690                http/tests/security/cookies/document-open.html
13691
13692         * bindings/js/JSDOMWindowBase.cpp:
13693         (WebCore::createWindow):
13694         * bindings/js/JSHTMLDocumentCustom.cpp:
13695         (WebCore::JSHTMLDocument::open):
13696         (WebCore::JSHTMLDocument::write):
13697         (WebCore::JSHTMLDocument::writeln):
13698         * dom/Document.cpp:
13699         (WebCore::Document::open):
13700         (WebCore::Document::write):
13701         (WebCore::Document::writeln):
13702         * dom/Document.h:
13703
13704 2008-06-11  Adam Barth  <abarth@webkit.org>
13705
13706         Reviewed by Sam Weinig.
13707
13708         https://bugs.webkit.org/show_bug.cgi?id=19460
13709
13710         Compute the cookie context at the same time as the SecurityOrigin.
13711
13712         Tests: http/tests/security/cookies/create-document.html
13713                http/tests/security/cookies/xmlhttprequest.html
13714
13715         * dom/Document.cpp:
13716         (WebCore::Document::cookie):
13717         (WebCore::Document::initSecurityOrigin):
13718         * dom/Document.h:
13719         * platform/SecurityOrigin.cpp:
13720         * platform/SecurityOrigin.h:
13721
13722 2008-06-11  Adam Barth  <abarth@webkit.org>
13723
13724         Reviewed and tweaked by Sam Weinig.
13725
13726         Fix for https://bugs.webkit.org/show_bug.cgi?id=19242
13727         Data URLs should set an Access-Control-Origin of "null"
13728
13729         Correctly generate "null" as the value of the Access-Control-Origin
13730         header for cross-site XMLHttpRequests for data URLs.
13731
13732         Test: http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-data-url.html
13733
13734         * platform/SecurityOrigin.cpp:
13735         (WebCore::SecurityOrigin::toString):
13736         * xml/XMLHttpRequest.cpp:
13737         (WebCore::XMLHttpRequest::accessControlOrigin):
13738         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
13739         (WebCore::XMLHttpRequest::handleAsynchronousMethodCheckResult):
13740         * xml/XMLHttpRequest.h:
13741
13742 2008-06-11  Sam Weinig  <sam@webkit.org>
13743
13744         Reviewed by Adam Roben.
13745
13746         Add support for "*" wildcarding for Access-Control.
13747
13748         Test: http/tests/xmlhttprequest/access-control-basic-allow-star.html
13749
13750         * xml/AccessItem.cpp:
13751         (WebCore::AccessItem::AccessItem):
13752         (WebCore::AccessItem::parseAccessItem):
13753         (WebCore::AccessItem::matches):
13754
13755 2008-06-11  Justin Garcia  <justin.garcia@apple.com>
13756
13757         Reviewed by Eric.
13758
13759         <https://bugs.webkit.org/show_bug.cgi?id=19455>
13760         Crash at RenderObject::childAt during JustifyCenter
13761
13762         * editing/ApplyStyleCommand.cpp:
13763         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added a FIXME.
13764         * editing/CompositeEditCommand.cpp:
13765         (WebCore::CompositeEditCommand::moveParagraphs): If we're removing a line
13766         break that consists of a single '\n' in a text node by itself, remove
13767         the whole text node instead of just emptying it out.
13768         * editing/Selection.cpp:
13769         (WebCore::Selection::validate): Added a FIXME about canonicalizing
13770         to positions that aren't candidates.
13771         * editing/SelectionController.cpp:
13772         (WebCore::SelectionController::nodeWillBeRemoved): When the base and/or
13773         extent are about to be removed but the start and end aren't, change the 
13774         base and extent to the start and end, but don't re-validate the selection, 
13775         since doing so could move the start and end into the node that is about 
13776         to be removed.
13777
13778 2008-06-11  Gregory Hughes  <ghughes@apple.com>
13779
13780         Reviewed by David Harrison.
13781
13782         <rdar://problem/5990049> AXTextMarker bytes getting messed up when getting AXTextMarkerRangeForUnorderedTextMarkersParameterizedAttribute
13783
13784         * page/mac/AccessibilityObjectWrapper.mm:
13785         (textMarkerForVisiblePosition):
13786
13787 2008-06-11  Adriaan de Groot  <groot@kde.org>
13788
13789         Reviewed by Simon.
13790
13791         Fix compilation with Sun Studio 12
13792
13793         It seems like the compiler instantiates a different template version. I.e.,
13794         instead of parseUASheet<char [nnnn]>, it's probably instantiating
13795         parseUASheet<char *>, which then passes 4 or 8 as the size value.
13796
13797         * css/CSSStyleSelector.cpp:
13798         (WebCore::loadDefaultStyle):
13799         (WebCore::CSSStyleSelector::styleForElement):
13800
13801 2008-06-11  Benjamin Meyer  <bmeyer@trolltech.com>
13802
13803         Reviewed by Simon.
13804
13805         Fixed a crash when a slot connect to QWebPage::unsupportedContent would show a
13806         modal dialog with an event loop.
13807
13808         We have a queued connection to various signals in the QNetworkReply, for which
13809         it can happen that after releasing the QNetworkReply and disconnecting from it
13810         a slot connected to one of the signals may still be called due to a posted
13811         MetaCall event due to the queued connections. This patch removes the posted
13812         events explicitly, fixes the coding style a bit and makes sure the same happens
13813         when abort() is called.
13814
13815         * platform/network/qt/QNetworkReplyHandler.cpp:
13816         (WebCore::QNetworkReplyHandler::abort):
13817         (WebCore::QNetworkReplyHandler::release):
13818         * platform/network/qt/QNetworkReplyHandler.h:
13819
13820 2008-06-10  Kevin Ollivier  <kevino@theolliviers.com>
13821
13822         wx build fix. Reorder include dirs so that WebCore/html/HTMLElementFactory.h
13823         appears before WebCore/DerivedSources/HTMLElementFactory.h. (See note in commit
13824         for more details. This is probably not the right fix, but this will get us building
13825         until the right fix is in place.)
13826
13827         * webcore-base.bkl:
13828
13829 2008-06-10  Eric Seidel  <eric@webkit.org>
13830
13831         Reviewed by mjs.
13832
13833         Fix disconnected event listener crasher
13834         m_disconnectedNodesWithEventListeners not updated when nodes adopted
13835         https://bugs.webkit.org/show_bug.cgi?id=19451
13836
13837         I failed to find a way to make this crash DRT, I can crash Debug Safari consistently.
13838
13839         * dom/EventTarget.cpp:
13840         (WebCore::EventTarget::willMoveToNewOwnerDocument):
13841         (WebCore::EventTarget::didMoveToNewOwnerDocument):
13842         * dom/EventTarget.h:
13843         * dom/EventTargetNode.cpp:
13844         (WebCore::EventTargetNode::willMoveToNewOwnerDocument):
13845         (WebCore::EventTargetNode::didMoveToNewOwnerDocument):
13846         * dom/EventTargetNode.h:
13847
13848 2008-06-10  Julien Chaffraix  <jchaffraix@webkit.org>
13849
13850         Reviewed by Eric.
13851
13852         Part of bug 19200: *.in files should embed more information
13853         https://bugs.webkit.org/show_bug.cgi?id=19200
13854
13855         Move more parameters to the XML files.
13856
13857         * dom/make_names.pl:
13858         * html/HTMLAttributeNames.in:
13859         * html/HTMLTagNames.in:
13860         * svg/svgattrs.in:
13861         * svg/svgtags.in:
13862
13863 2008-06-09  Dan Bernstein  <mitz@apple.com>
13864
13865         Reviewed by Justin Garcia.
13866
13867         - fix https://bugs.webkit.org/show_bug.cgi?id=19443
13868           <rdar://problem/5994544> REGRESSION (r32531-r32652): Moving the insertion point past a newline inserted in a text area skips the next character
13869
13870         Tests added to editing/selection/move-left-right.html
13871
13872         * editing/VisiblePosition.cpp:
13873         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): When falling
13874         back from visual to logical movement, restart at the original position
13875         rather than an intermediate position.
13876         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): Ditto.
13877
13878 2008-06-07  Brent Fulgham  <bfulgham@gmail.com>
13879
13880         Reviewed by Maciej.
13881
13882         Windows build fix.
13883
13884         * platform/graphics/win/QTMovieWin.cpp:
13885         (initializeSupportedTypes):
13886
13887 2008-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
13888
13889         Reviewed by Darin Adler.
13890
13891         Part of bug 19200: *.in files should embed more information
13892         https://bugs.webkit.org/show_bug.cgi?id=19200
13893
13894         - Added a parameters hash that will hold the parameters we used to give in the
13895         command line.
13896
13897         - Added "tags" / "attrs" XML tag parsing to fill the parameters hash.
13898
13899         - Moved namespace, namespaceURI, namespacePrefix and cppNamespace in the *.in
13900         files.
13901
13902         * dom/make_names.pl:
13903         * html/HTMLAttributeNames.in:
13904         * html/HTMLTagNames.in:
13905         * svg/svgattrs.in:
13906         * svg/svgtags.in:
13907         * svg/xlinkattrs.in:
13908         * xml/xmlattrs.in:
13909
13910 2008-06-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
13911
13912         Reviewed by Simon
13913
13914         Use the text color from QStyle when styling form elements.
13915
13916         * platform/qt/RenderThemeQt.cpp:
13917         (WebCore::RenderThemeQt::adjustButtonStyle):
13918         (WebCore::RenderThemeQt::adjustTextFieldStyle):
13919         (WebCore::RenderThemeQt::adjustMenuListStyle):
13920         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
13921
13922 2008-06-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
13923
13924         Reviewed by Darin.
13925
13926         Incorporated Darin's comments to bug 18965.
13927
13928         * rendering/RenderTheme.cpp:
13929
13930 2008-06-08  Adam Barth  <abarth@webkit.org>
13931
13932         Reviewed by Darin Adler.
13933
13934         Inherit document.URL from parent's document.URL, not document.baseURI.
13935
13936         https://bugs.webkit.org/show_bug.cgi?id=19257
13937
13938         Tests: http/tests/security/cookies/assign-document-url.html
13939                http/tests/security/cookies/base-about-blank.html
13940                http/tests/security/cookies/base-tag.html
13941                http/tests/security/cookies/basic.html
13942
13943         * dom/Document.cpp:
13944         (WebCore::Document::open):
13945
13946 2008-06-08  Kevin Ollivier  <kevino@theolliviers.com>
13947
13948         Reviewed by Darin Adler.
13949
13950         Fix font asserts in wx port. Our computeHash function should generate the same hash
13951         for two identical fonts which are different objects, which it wasn't doing before.
13952         
13953         https://bugs.webkit.org/show_bug.cgi?id=19310
13954
13955         * platform/graphics/wx/FontPlatformData.h:
13956         (WebCore::FontPlatformData::computeHash):
13957
13958 2008-06-08  Dan Bernstein  <mitz@apple.com>
13959
13960         Reviewed by Darin Adler.
13961
13962         - fix <rdar://problem/5961977> Crash in RenderBlock::layoutColumns()
13963
13964         Test: fast/multicol/content-height-zero-crash.html
13965
13966         * rendering/RenderBlock.cpp:
13967         (WebCore::RenderBlock::layoutColumns): Changed to not keep creating
13968         overflow columns that have zero height, because they do not help with
13969         fitting content in.
13970
13971 2008-06-08  Adam Roben  <aroben@apple.com>
13972
13973         Fix Bug 18837: Database panel fails to display tables if any value is
13974         NULL
13975
13976         <https://bugs.webkit.org/show_bug.cgi?id=18837>
13977
13978         Reviewed by Darin Adler.
13979
13980         Test: manual-tests/inspector/display-sql-null.html
13981
13982         * manual-tests/inspector/display-sql-null.html: Added.
13983         * page/inspector/DatabasesPanel.js:
13984         (WebInspector.DatabasesPanel.prototype.dataGridForResult): Convert all
13985         objects to strings before operating on them.
13986
13987 2008-06-08  Adam Roben  <aroben@apple.com>
13988
13989         Fix Bug 19438: Transaction errors are never displayed in database
13990         query view
13991
13992         <https://bugs.webkit.org/show_bug.cgi?id=19438>
13993
13994         Reviewed by Darin Adler.
13995
13996         Test: manual-tests/inspector/display-sql-transaction-error.html
13997
13998         * manual-tests/inspector/display-sql-transaction-error.html: Added.
13999         * page/inspector/DatabaseQueryView.js:
14000         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed): Use
14001         _executeSqlError as the error callback for executeSql.
14002         (WebInspector.DatabaseQueryView.prototype._queryError): Changed to
14003         only take two parameters. This matches what we'll be passed if
14004         db.transaction fails.
14005         (WebInspector.DatabaseQueryView.prototype._executeSqlError): Added.
14006         Calls through to _queryError.
14007
14008 2008-06-08  Dirk Schulze  <vbs85@gmx.de>
14009
14010         Reviewed by Eric Seidel.
14011
14012         https://bugs.webkit.org/show_bug.cgi?id=18840
14013         [CAIRO] Clipping-support for SVG
14014
14015         Support for clipping in SVG/Cairo and fixes transformation of paths.
14016
14017         * platform/graphics/cairo/PathCairo.cpp:
14018         (WebCore::Path::transform):
14019         * svg/graphics/cairo/SVGResourceClipperCairo.cpp:
14020         (WebCore::SVGResourceClipper::applyClip):
14021
14022 2008-06-08  Dirk Schulze  <vbs85@gmx.de>
14023
14024         Reviewed by Eric Seidel.
14025
14026         https://bugs.webkit.org/show_bug.cgi?id=18663
14027         Add text-stroke support to Cairo.
14028
14029         * platform/graphics/cairo/FontCairo.cpp:
14030         (WebCore::Font::drawGlyphs):
14031
14032 2008-06-08  Vincent Ricard  <magic@magicninja.org>
14033
14034         Reviewed by Darin.
14035
14036         https://bugs.webkit.org/show_bug.cgi?id=16489
14037         WebKit does not support ElementTraversal specification
14038
14039         Tests: fast/dom/Element/element-traversal.html
14040
14041         * dom/Element.cpp:
14042         (WebCore::Element::firstElementChild):
14043         (WebCore::Element::lastElementChild):
14044         (WebCore::Element::previousElementSibling):
14045         (WebCore::Element::nextElementSibling):
14046         (WebCore::Element::childElementCount):
14047         * dom/Element.h:
14048         * dom/Element.idl:
14049
14050 2008-06-08  Bradley Meck  <genisis329@gmail.com>
14051
14052         Reviewed by Darin.
14053
14054         - fix https://bugs.webkit.org/show_bug.cgi?id=17051
14055           safari should treat "url()" as a valid CSS value
14056
14057         Test: fast/css/invalid-cursor-property-crash.html
14058
14059         Changed check for empty url() to be a check for null since url() is valid
14060         CSS even if it is empty.
14061
14062         * css/CSSParser.cpp:
14063         (WebCore::CSSParser::parseValue):
14064         (WebCore::CSSParser::parseFillImage):
14065         (WebCore::CSSParser::parseBorderImage):
14066
14067 2008-06-08  Vincent Ricard  <magic@magicninja.org>
14068
14069         Reviewed by Darin.
14070
14071         Bug 18041: DOMNodeRemoved events are sent twice
14072
14073         Test: fast/dom/Node/DOMNodeRemovedEvent.html
14074
14075         * dom/ContainerNode.cpp:
14076         (WebCore::ContainerNode::removeChild):
14077
14078 2008-06-08  Tony Chang  <idealisms@gmail.com>
14079
14080         Reviewed by Eric Seidel.
14081
14082         - fix https://bugs.webkit.org/show_bug.cgi?id=18167
14083           there should be no text-drag delay on any platform except for Mac
14084
14085         Move the drag text delay value into the platform specific files.
14086
14087         Test: editing/selection/drag-text-delay.html
14088
14089         * page/EventHandler.cpp:
14090         * page/EventHandler.h:
14091         * page/gtk/EventHandlerGtk.cpp:
14092         * page/mac/EventHandlerMac.mm:
14093         * page/qt/EventHandlerQt.cpp:
14094         * page/win/EventHandlerWin.cpp:
14095         * page/wx/EventHandlerWx.cpp:
14096
14097 2008-06-08  Rob Buis  <buis@kde.org>
14098
14099         Reviewed by Darin.
14100
14101         - fix https://bugs.webkit.org/show_bug.cgi?id=18512
14102           getPresentationAttribute returns a shared object
14103
14104         Test: svg/custom/getPresentationAttribute-modify.svg
14105
14106         * svg/SVGStyledElement.cpp:
14107         (WebCore::SVGStyledElement::getPresentationAttribute): Unshare the mapped style
14108         declaration if it is shared before returning the presentation attribute.
14109
14110 2008-06-08  Alp Toker  <alp@nuanti.com>
14111
14112         autotools/GTK+ build system cleanup. Don't include WebKit API in the
14113         WebCore build as it's no longer needed since r34426.
14114
14115         * GNUmakefile.am:
14116
14117 2008-06-08  Jonathan Haas <myrdred@gmail.com>
14118
14119         Reviewed by Eric Seidel.
14120         Tweaked by Darin while landing to make it compile.
14121
14122         - fix http://bugs.webkit.org/show_bug.cgi?id=19128
14123           SVG fonts don't work with medial Arabic characters
14124
14125         Haven't figured out a way to make an automated test for this.
14126
14127         * svg/SVGGlyphElement.h: Made arabicForm unsigned so it fits into
14128         its 3-bit field. Did the same for orientation's 2-bit field.
14129
14130         * svg/SVGFont.cpp: Did a bit of minor tweaking.
14131         (WebCore::isCompatibleArabicForm): Added a cast to avoid a warning
14132         since the type is now different.
14133
14134 2008-06-08  Eric Carlson  <eric.carlson@apple.com>
14135
14136         Reviewed by Antti.
14137
14138         - fix https://bugs.webkit.org/show_bug.cgi?id=19299
14139           <rdar://problem/5969392>
14140
14141         Generate the media MIME type list dynamically.
14142
14143         * platform/graphics/win/QTMovieWin.cpp:
14144         (initializeSupportedTypes):
14145
14146 2008-06-08  Christian Persch  <chpe@gnome.org>
14147
14148         Reviewed by Darin.
14149
14150         - https://bugs.webkit.org/show_bug.cgi?id=19309
14151           uninitialised variable in PluginView
14152
14153         * plugins/PluginView.cpp:
14154         (WebCore::PluginView::PluginView): Initialise the NPP's pdata member to 0.
14155
14156 2008-06-08  Darin Adler  <darin@apple.com>
14157
14158         Reviewed by Mitz.
14159
14160         - https://bugs.webkit.org/show_bug.cgi?id=19435
14161           fix warning in PluginDebug.h
14162
14163         * plugins/PluginDebug.h: Don't compile the errorStrings array if LOG_DISABLED is set.
14164
14165 2008-06-07  Dan Bernstein  <mitz@apple.com>
14166
14167         Reviewed by Dave Hyatt.
14168
14169         - fix https://bugs.webkit.org/show_bug.cgi?id=19431
14170           <rdar://problem/5994060> REGRESSION (r32406): tabs retain hover color after mouse out
14171
14172         Covered by fast/css/remove-shorthand.html
14173
14174         * css/CSSMutableStyleDeclaration.cpp:
14175         (WebCore::initShorthandMap): Fixed a typo which mapped the background
14176         shorthand to the mask properties.
14177
14178 2008-06-07  Brent Fulgham  <bfulgham@gmail.com>
14179
14180         Cairo build fix for r34432
14181
14182         * html/CanvasPattern.cpp:
14183         (WebCore::CanvasPattern::CanvasPattern):
14184
14185 2008-06-07  Darin Adler  <darin@apple.com>
14186
14187         Reviewed by Mitz.
14188
14189         - work on https://bugs.webkit.org/show_bug.cgi?id=17257
14190           start ref counts at 1 instead of 0 for speed
14191
14192         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
14193         (WebCore::toHTMLCanvasStyle):
14194         * bindings/js/JSDOMWindowBase.cpp:
14195         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
14196         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
14197         * bindings/js/JSNodeFilterCondition.h:
14198         (WebCore::JSNodeFilterCondition::create):
14199         * bindings/js/JSNodeFilterCustom.cpp:
14200         (WebCore::toNodeFilter):
14201         * bindings/js/JSSVGLazyEventListener.h:
14202         (WebCore::JSSVGLazyEventListener::create):
14203         * bindings/js/JSSVGMatrixCustom.cpp:
14204         (WebCore::JSSVGMatrix::multiply):
14205         (WebCore::JSSVGMatrix::inverse):
14206         (WebCore::JSSVGMatrix::translate):
14207         (WebCore::JSSVGMatrix::scale):
14208         (WebCore::JSSVGMatrix::scaleNonUniform):
14209         (WebCore::JSSVGMatrix::rotate):
14210         (WebCore::JSSVGMatrix::rotateFromVector):
14211         (WebCore::JSSVGMatrix::flipX):
14212         (WebCore::JSSVGMatrix::flipY):
14213         (WebCore::JSSVGMatrix::skewX):
14214         (WebCore::JSSVGMatrix::skewY):
14215         * bindings/js/JSSVGPODTypeWrapper.h:
14216         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::create):
14217         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
14218         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::create):
14219         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
14220         (WebCore::JSSVGPODTypeWrapperCreatorForList::create):
14221         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
14222         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
14223         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
14224         * bindings/js/JSSVGPointListCustom.cpp:
14225         (WebCore::commonExit):
14226         (WebCore::commonExitReadOnly):
14227         (WebCore::JSSVGPointList::initialize):
14228         (WebCore::JSSVGPointList::getItem):
14229         (WebCore::JSSVGPointList::insertItemBefore):
14230         (WebCore::JSSVGPointList::replaceItem):
14231         (WebCore::JSSVGPointList::removeItem):
14232         (WebCore::JSSVGPointList::appendItem):
14233         * bindings/js/JSSVGTransformListCustom.cpp:
14234         (WebCore::JSSVGTransformList::initialize):
14235         (WebCore::JSSVGTransformList::getItem):
14236         (WebCore::JSSVGTransformList::insertItemBefore):
14237         (WebCore::JSSVGTransformList::replaceItem):
14238         (WebCore::JSSVGTransformList::removeItem):
14239         (WebCore::JSSVGTransformList::appendItem):
14240         * bindings/js/kjs_binding.cpp:
14241         (WebCore::setDOMException):
14242         * bindings/js/kjs_events.h:
14243         (WebCore::JSUnprotectedEventListener::create):
14244         (WebCore::JSEventListener::create):
14245         (WebCore::JSLazyEventListener::create):
14246         * bindings/js/kjs_proxy.cpp:
14247         (WebCore::KJSProxy::createHTMLEventHandler):
14248         (WebCore::KJSProxy::createSVGEventHandler):
14249         * bindings/objc/DOM.mm:
14250         (WebCore::ObjCNodeFilterCondition::create):
14251         (WebCore::ObjCNodeFilterCondition::ObjCNodeFilterCondition):
14252         (WebCore::ObjCNodeFilterCondition::acceptNode):
14253         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
14254         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
14255         * bindings/scripts/CodeGeneratorJS.pm:
14256         * css/CSSComputedStyleDeclaration.cpp:
14257         (WebCore::valueForNinePieceImage):
14258         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14259         * css/CSSFontFace.h:
14260         (WebCore::CSSFontFace::create):
14261         (WebCore::CSSFontFace::CSSFontFace):
14262         * css/CSSFontSelector.cpp:
14263         (WebCore::CSSFontSelector::addFontFaceRule):
14264         * css/CSSParser.cpp:
14265         (WebCore::CSSParser::parseDashboardRegions):
14266         (WebCore::CSSParser::parseCounterContent):
14267         (WebCore::CSSParser::parseShape):
14268         (WebCore::BorderImageParseContext::commitBorderImage):
14269         * css/CSSSegmentedFontFace.cpp:
14270         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
14271         * css/CSSSegmentedFontFace.h:
14272         (WebCore::CSSSegmentedFontFace::create):
14273         * css/Counter.h:
14274         (WebCore::Counter::create):
14275         (WebCore::Counter::Counter):
14276         * css/DashboardRegion.h:
14277         (WebCore::DashboardRegion::create):
14278         (WebCore::DashboardRegion::DashboardRegion):
14279         * css/Rect.h:
14280         (WebCore::Rect::create):
14281         (WebCore::Rect::Rect):
14282         * dom/ChildNodeList.h:
14283         (WebCore::ChildNodeList::create):
14284         * dom/ClassNodeList.h:
14285         (WebCore::ClassNodeList::create):
14286         * dom/Clipboard.h:
14287         * dom/DOMCoreException.h:
14288         (WebCore::DOMCoreException::create):
14289         * dom/DOMImplementation.cpp:
14290         (WebCore::DOMImplementation::instance):
14291         * dom/DOMImplementation.h:
14292         (WebCore::DOMImplementation::DOMImplementation):
14293         * dom/Document.cpp:
14294         (WebCore::Document::addWindowEventListener):
14295         (WebCore::Document::removeWindowEventListener):
14296         (WebCore::Document::setDecoder):
14297         (WebCore::Document::images):
14298         (WebCore::Document::applets):
14299         (WebCore::Document::embeds):
14300         (WebCore::Document::plugins):
14301         (WebCore::Document::objects):
14302         (WebCore::Document::scripts):
14303         (WebCore::Document::links):
14304         (WebCore::Document::forms):
14305         (WebCore::Document::anchors):
14306         (WebCore::Document::all):
14307         (WebCore::Document::windowNamedItems):
14308         (WebCore::Document::documentNamedItems):
14309         * dom/Document.h:
14310         * dom/DynamicNodeList.h:
14311         * dom/EventException.h:
14312         (WebCore::EventException::create):
14313         (WebCore::EventException::EventException):
14314         * dom/EventListener.h:
14315         * dom/EventTarget.cpp:
14316         (WebCore::EventTarget::addEventListener):
14317         (WebCore::EventTarget::removeEventListener):
14318         * dom/ExceptionBase.cpp:
14319         (WebCore::ExceptionBase::ExceptionBase):
14320         * dom/ExceptionBase.h:
14321         * dom/NameNodeList.h:
14322         (WebCore::NameNodeList::create):
14323         * dom/Node.cpp:
14324         (WebCore::Node::childNodes):
14325         (WebCore::Node::getElementsByTagNameNS):
14326         (WebCore::Node::getElementsByName):
14327         (WebCore::Node::getElementsByClassName):
14328         (WebCore::Node::querySelectorAll):
14329         * dom/NodeFilterCondition.h:
14330         * dom/NodeList.h:
14331         * dom/RangeException.h:
14332         (WebCore::RangeException::create):
14333         (WebCore::RangeException::RangeException):
14334         * dom/RegisteredEventListener.h:
14335         (WebCore::RegisteredEventListener::create):
14336         * dom/SelectorNodeList.cpp:
14337         (WebCore::createSelectorNodeList):
14338         * dom/SelectorNodeList.h:
14339         * dom/StaticNodeList.cpp:
14340         (WebCore::StaticNodeList::StaticNodeList):
14341         * dom/StaticNodeList.h:
14342         (WebCore::StaticNodeList::adopt):
14343         * dom/TagNodeList.h:
14344         (WebCore::TagNodeList::create):
14345         * history/HistoryItem.cpp:
14346         (WebCore::defaultNotifyHistoryItemChanged):
14347         (WebCore::HistoryItem::HistoryItem):
14348         (WebCore::HistoryItem::copy):
14349         * history/HistoryItem.h:
14350         (WebCore::HistoryItem::create):
14351         * html/CanvasGradient.h:
14352         * html/CanvasPattern.cpp:
14353         (WebCore::CanvasPattern::CanvasPattern):
14354         * html/CanvasPattern.h:
14355         (WebCore::CanvasPattern::create):
14356         * html/CanvasRenderingContext2D.cpp:
14357         (WebCore::CanvasRenderingContext2D::State::State):
14358         (WebCore::CanvasRenderingContext2D::setStrokeColor):
14359         (WebCore::CanvasRenderingContext2D::setFillColor):
14360         (WebCore::CanvasRenderingContext2D::createPattern):
14361         * html/CanvasStyle.cpp:
14362         (WebCore::CanvasStyle::CanvasStyle):
14363         * html/CanvasStyle.h:
14364         (WebCore::CanvasStyle::create):
14365         * html/HTMLCollection.cpp:
14366         (WebCore::HTMLCollection::HTMLCollection):
14367         (WebCore::HTMLCollection::create):
14368         * html/HTMLCollection.h:
14369         * html/HTMLElement.cpp:
14370         (WebCore::HTMLElement::children):
14371         * html/HTMLFormCollection.cpp:
14372         (WebCore::HTMLFormCollection::create):
14373         * html/HTMLFormCollection.h:
14374         * html/HTMLFormElement.cpp:
14375         (WebCore::HTMLFormElement::elements):
14376         * html/HTMLMapElement.cpp:
14377         (WebCore::HTMLMapElement::areas):
14378         * html/HTMLMediaElement.cpp:
14379         (WebCore::HTMLMediaElement::load):
14380         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
14381         (WebCore::HTMLMediaElement::willSaveToCache):
14382         * html/HTMLNameCollection.h:
14383         (WebCore::HTMLNameCollection::create):
14384         * html/HTMLOptionsCollection.cpp:
14385         (WebCore::HTMLOptionsCollection::create):
14386         * html/HTMLOptionsCollection.h:
14387         * html/HTMLSelectElement.cpp:
14388         (WebCore::HTMLSelectElement::options):
14389         * html/HTMLTableElement.cpp:
14390         (WebCore::HTMLTableElement::rows):
14391         (WebCore::HTMLTableElement::tBodies):
14392         * html/HTMLTableRowElement.cpp:
14393         (WebCore::HTMLTableRowElement::cells):
14394         * html/HTMLTableRowsCollection.cpp:
14395         (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
14396         (WebCore::HTMLTableRowsCollection::create):
14397         * html/HTMLTableRowsCollection.h:
14398         * html/HTMLTableSectionElement.cpp:
14399         (WebCore::HTMLTableSectionElement::rows):
14400         * html/MediaError.h:
14401         (WebCore::MediaError::create):
14402         (WebCore::MediaError::MediaError):
14403         * loader/CachedCSSStyleSheet.cpp:
14404         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
14405         * loader/CachedFont.cpp:
14406         (WebCore::CachedFont::ensureSVGFontData):
14407         * loader/CachedXSLStyleSheet.cpp:
14408         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
14409         * loader/FrameLoader.cpp:
14410         (WebCore::FrameLoader::write):
14411         (WebCore::FrameLoader::createHistoryItem):
14412         * loader/ImageDocument.cpp:
14413         (WebCore::ImageEventListener::create):
14414         (WebCore::ImageEventListener::ImageEventListener):
14415         (WebCore::ImageDocument::createDocumentStructure):
14416         * loader/TextResourceDecoder.h:
14417         (WebCore::TextResourceDecoder::create):
14418         * page/Page.cpp:
14419         (WebCore::Page::userStyleSheet):
14420         * svg/SVGException.h:
14421         (WebCore::SVGException::create):
14422         (WebCore::SVGException::SVGException):
14423         * svg/animation/SVGSMILElement.cpp:
14424         (WebCore::ConditionEventListener::create):
14425         (WebCore::ConditionEventListener::ConditionEventListener):
14426         (WebCore::SVGSMILElement::connectConditions):
14427         * xml/XMLHttpRequest.cpp:
14428         (WebCore::XMLHttpRequest::didReceiveData):
14429         * xml/XMLHttpRequestException.h:
14430         (WebCore::XMLHttpRequestException::create):
14431         (WebCore::XMLHttpRequestException::XMLHttpRequestException):
14432         * xml/XPathException.h:
14433         (WebCore::XPathException::create):
14434         (WebCore::XPathException::XPathException):
14435         * xml/XPathResult.cpp:
14436         (WebCore::InvalidatingEventListener::create):
14437         (WebCore::InvalidatingEventListener::InvalidatingEventListener):
14438         (WebCore::XPathResult::XPathResult):
14439         * xml/XSLTProcessor.cpp:
14440         (WebCore::XSLTProcessor::createDocumentFromSource):
14441
14442 2008-06-07  Christian Dywan  <christian@twotoasts.de>
14443
14444         Reviewed by Alp Toker.
14445
14446         https://bugs.webkit.org/show_bug.cgi?id=17324
14447         Remove PLATFORM ifdefs from ContextMenu.cpp
14448
14449         * platform/ContextMenu.cpp:
14450         (WebCore::ContextMenu::populate):
14451
14452 2008-06-07  Eric Seidel  <eric@webkit.org>
14453
14454         Reviewed by ap.
14455
14456         Still more CSSParser cleanup
14457         - use c++ style member initializers in CSSParser()
14458         - change m_styleElement to m_styleSheet and make it a CSSStyleSheet
14459         - finally add my copyright to the files I've been cleaning
14460
14461         * css/CSSGrammar.y:
14462         * css/CSSParser.cpp:
14463         (WebCore::CSSParser::CSSParser):
14464         (WebCore::CSSParser::setupParser):
14465         (WebCore::CSSParser::parseValue):
14466         (WebCore::CSSParser::parseColor):
14467         (WebCore::CSSParser::parseDeclaration):
14468         (WebCore::CSSParser::parseContent):
14469         (WebCore::CSSParser::parseFillImage):
14470         (WebCore::CSSParser::parseFontFaceSrc):
14471         (WebCore::CSSParser::parseBorderImage):
14472         (WebCore::CSSParser::createCharsetRule):
14473         (WebCore::CSSParser::createImportRule):
14474         (WebCore::CSSParser::createMediaRule):
14475         (WebCore::CSSParser::createStyleRule):
14476         * css/CSSParser.h:
14477         * css/SVGCSSParser.cpp:
14478
14479 2008-06-07  Eric Seidel  <eric@webkit.org>
14480
14481         Reviewed by ap.
14482
14483         More CSSParser cleanup
14484         - rename CSSParser::id to m_id
14485         - rename CSSParser::data to m_data
14486         - fix a few whitespace and argument name issues
14487
14488         * css/CSSGrammar.y:
14489         * css/CSSParser.cpp:
14490         (WebCore::CSSParser::CSSParser):
14491         (WebCore::CSSParser::~CSSParser):
14492         (WebCore::CSSParser::setupParser):
14493         (WebCore::CSSParser::parseValue):
14494         * css/CSSParser.h:
14495
14496 2008-06-07  Eric Seidel  <eric@webkit.org>
14497
14498         Reviewed by ap.
14499
14500         Rename CSSParser::strict to m_strict
14501
14502         * css/CSSGrammar.y:
14503         * css/CSSParser.cpp:
14504         (WebCore::CSSParser::CSSParser):
14505         (WebCore::CSSParser::parseColor):
14506         (WebCore::CSSParser::parseValue):
14507         (WebCore::CSSParser::parseBackgroundColor):
14508         (WebCore::CSSParser::parseFillPositionXY):
14509         (WebCore::CSSParser::parseFillSize):
14510         (WebCore::CSSParser::parseTransitionDuration):
14511         (WebCore::CSSParser::parseTransitionRepeatCount):
14512         (WebCore::CSSParser::parseTimingFunctionValue):
14513         (WebCore::CSSParser::parseDashboardRegions):
14514         (WebCore::CSSParser::parseShape):
14515         (WebCore::CSSParser::parseFont):
14516         (WebCore::CSSParser::parseColorFromValue):
14517         (WebCore::CSSParser::parseShadow):
14518         (WebCore::CSSParser::parseReflect):
14519         (WebCore::CSSParser::parseBorderImage):
14520         * css/CSSParser.h:
14521
14522 2008-06-07  Eric Seidel  <eric@webkit.org>
14523
14524         Reviewed by ap.
14525
14526         Rename CSSParser::defaultNamespace to m_defaultNamespace
14527
14528         * css/CSSGrammar.y:
14529         * css/CSSParser.cpp:
14530         (WebCore::CSSParser::CSSParser):
14531         (WebCore::CSSParser::parseSheet):
14532         * css/CSSParser.h:
14533         * css/CSSStyleSheet.cpp:
14534         (WebCore::CSSStyleSheet::addNamespace):
14535
14536 2008-06-07  Eric Seidel  <eric@webkit.org>
14537
14538         Reviewed by ap.
14539
14540         Rename CSSParser::important to m_important
14541
14542         * css/CSSGrammar.y:
14543         * css/CSSParser.cpp:
14544         (WebCore::CSSParser::CSSParser):
14545         (WebCore::CSSParser::parseValue):
14546         (WebCore::CSSParser::parseFontFaceSrc):
14547         (WebCore::CSSParser::parseFontFaceUnicodeRange):
14548         * css/CSSParser.h:
14549
14550 2008-06-07  Eric Seidel  <eric@webkit.org>
14551
14552         Reviewed by ap.
14553
14554         Rename CSSParser::rule to m_rule
14555
14556         * css/CSSGrammar.y:
14557         * css/CSSParser.cpp:
14558         (WebCore::CSSParser::parseSheet):
14559         (WebCore::CSSParser::parseRule):
14560         (WebCore::CSSParser::parseValue):
14561         (WebCore::CSSParser::parseColor):
14562         (WebCore::CSSParser::parseDeclaration):
14563         * css/CSSParser.h:
14564
14565 2008-06-07  Eric Seidel  <eric@webkit.org>
14566
14567         Reviewed by ap.
14568
14569         Yet another cleanup patch for CSSParser
14570         Rename CSSParser::valueList to m_valueList
14571
14572         * css/CSSGrammar.y:
14573         * css/CSSParser.cpp:
14574         (WebCore::CSSParser::CSSParser):
14575         (WebCore::CSSParser::~CSSParser):
14576         (WebCore::CSSParser::checkForOrphanedUnits):
14577         (WebCore::CSSParser::parseValue):
14578         (WebCore::CSSParser::parseFillShorthand):
14579         (WebCore::CSSParser::parseTransitionShorthand):
14580         (WebCore::CSSParser::parseShorthand):
14581         (WebCore::CSSParser::parse4Values):
14582         (WebCore::CSSParser::parseContent):
14583         (WebCore::CSSParser::parseFillImage):
14584         (WebCore::CSSParser::parseFillPositionXY):
14585         (WebCore::CSSParser::parseFillPosition):
14586         (WebCore::CSSParser::parseFillSize):
14587         (WebCore::CSSParser::parseFillProperty):
14588         (WebCore::CSSParser::parseTransitionProperty):
14589         (WebCore::CSSParser::parseDashboardRegions):
14590         (WebCore::CSSParser::parseShape):
14591         (WebCore::CSSParser::parseFont):
14592         (WebCore::CSSParser::parseFontFamily):
14593         (WebCore::CSSParser::parseFontFaceSrc):
14594         (WebCore::CSSParser::parseFontFaceUnicodeRange):
14595         (WebCore::CSSParser::parseColor):
14596         (WebCore::CSSParser::parseShadow):
14597         (WebCore::CSSParser::parseReflect):
14598         (WebCore::BorderImageParseContext::commitBorderImage):
14599         (WebCore::CSSParser::parseBorderImage):
14600         (WebCore::CSSParser::parseCounter):
14601         (WebCore::CSSParser::parseGradient):
14602         (WebCore::CSSParser::parseCanvas):
14603         (WebCore::CSSParser::parseTransform):
14604         (WebCore::CSSParser::parseTransformOrigin):
14605         * css/CSSParser.h:
14606         * css/SVGCSSParser.cpp:
14607         (WebCore::CSSParser::parseSVGValue):
14608         (WebCore::CSSParser::parseSVGStrokeDasharray):
14609         (WebCore::CSSParser::parseSVGPaint):
14610         (WebCore::CSSParser::parseSVGColor):
14611
14612 2008-06-07  Eric Seidel  <eric@webkit.org>
14613
14614         Reviewed by ap.
14615
14616         More cleanup to CSSParser, rename mediaQuery to m_mediaQuery
14617         Remove CSSParser::current and CSSParser::currentParser and use
14618         the magic of YYLEX_PARAM instead.
14619
14620         * css/CSSParser.cpp:
14621         (WebCore::enterGeneratedParser):
14622         (WebCore::CSSParser::parseSheet):
14623         (WebCore::CSSParser::parseRule):
14624         (WebCore::CSSParser::parseValue):
14625         (WebCore::CSSParser::parseColor):
14626         (WebCore::CSSParser::parseDeclaration):
14627         (WebCore::CSSParser::parseMediaQuery):
14628         * css/CSSParser.h:
14629
14630 2008-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
14631
14632         Reviewed by Eric.
14633
14634         Part of bug 19200: *.in files should embed more information
14635         https://bugs.webkit.org/show_bug.cgi?id=19200
14636
14637         - Added XML attributes' parsing.
14638
14639         - Moved (most) capitalization and audio hacks in the *.in files.
14640
14641         * dom/make_names.pl:
14642         * html/HTMLTagNames.in:
14643         * svg/svgtags.in:
14644
14645 2008-06-07  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
14646
14647         With the help of Jonathon Jongsma.
14648
14649         Reviewed by Dan Bernstein.
14650
14651         Fix for https://bugs.webkit.org/show_bug.cgi?id=19279
14652         REGRESSION (r32660): Text not redrawn correctly when selection changes
14653
14654         * rendering/InlineTextBox.cpp:
14655         (WebCore::InlineTextBox::paint):
14656         Add a condition for when ePos <= sPos 
14657
14658 2008-06-06  Julien Chaffraix  <jchaffraix@webkit.org>
14659
14660         Reviewed by Eric.
14661
14662         Part of bug 19200: *.in files should embed more information
14663         https://bugs.webkit.org/show_bug.cgi?id=19200
14664
14665         - Switched *.in files to XML format.
14666
14667         - Added (simple) parsing facilities in make_names.pl using the XML::Tiny Perl parser.
14668
14669         - Updated the build systems to include bindings/scripts when executing make_names.pl
14670         (for XMLTiny dependency).
14671
14672         - Cleaned-up make_names.pl a little.
14673
14674         * DerivedSources.make:
14675         * GNUmakefile.am:
14676         * WebCore.pro:
14677         * bindings/scripts/XMLTiny.pm: Added.
14678         * dom/make_names.pl:
14679         * html/HTMLAttributeNames.in:
14680         * html/HTMLTagNames.in:
14681         * svg/svgattrs.in:
14682         * svg/svgtags.in:
14683         * svg/xlinkattrs.in:
14684         * xml/xmlattrs.in:
14685
14686 2008-06-06  Robert Blaut  <webkit@blaut.biz>
14687
14688         Reviewed by Darin Adler.
14689
14690         Fix for https://bugs.webkit.org/show_bug.cgi?id=19407 
14691         CSS3 Selector Test: *= ~= ^= $= should all accept the empty string, but match nothing
14692
14693         Test: fast/css/begin-end-contain-selector-empty-value.html
14694
14695         * css/CSSStyleSelector.cpp:
14696         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
14697
14698 2008-06-06  Eric Seidel  <eric@webkit.org>
14699
14700         Reviewed by mitz.
14701
14702         More cleanup of CSSParser.
14703         Rename CSSParser::numParsedProperties and maxNumParsedProperites to m_*
14704
14705         * css/CSSGrammar.y:
14706         * css/CSSParser.cpp:
14707         (WebCore::CSSParser::CSSParser):
14708         (WebCore::CSSParser::parseValue):
14709         (WebCore::CSSParser::parseColor):
14710         (WebCore::CSSParser::parseDeclaration):
14711         (WebCore::CSSParser::addProperty):
14712         (WebCore::CSSParser::rollbackLastProperties):
14713         (WebCore::CSSParser::clearProperties):
14714         (WebCore::CSSParser::parse4Values):
14715         (WebCore::CSSParser::createStyleRule):
14716         (WebCore::CSSParser::createFontFaceRule):
14717         * css/CSSParser.h:
14718         * css/SVGCSSParser.cpp:
14719         (WebCore::CSSParser::parseSVGValue):
14720
14721 2008-06-06  Eric Seidel  <eric@webkit.org>
14722
14723         Reviewed by mitz.
14724
14725         More cleanup of CSSParser.
14726         Rename CSSParser::parsedProperties to m_parsedProperties.
14727
14728         * css/CSSParser.cpp:
14729         (WebCore::CSSParser::CSSParser):
14730         (WebCore::CSSParser::~CSSParser):
14731         (WebCore::CSSParser::parseValue):
14732         (WebCore::CSSParser::parseColor):
14733         (WebCore::CSSParser::parseDeclaration):
14734         (WebCore::CSSParser::addProperty):
14735         (WebCore::CSSParser::rollbackLastProperties):
14736         (WebCore::CSSParser::clearProperties):
14737         (WebCore::CSSParser::parse4Values):
14738         (WebCore::CSSParser::createStyleRule):
14739         (WebCore::CSSParser::createFontFaceRule):
14740         * css/CSSParser.h:
14741         * css/SVGCSSParser.cpp:
14742         (WebCore::CSSParser::parseSVGValue):
14743
14744 2008-06-06  Eric Seidel  <eric@webkit.org>
14745
14746         Reviewed by mitz.
14747
14748         Start the cleanup of CSSParser.
14749         Rename CSSParser::styleElement to CSSParser::m_styleElement
14750
14751         * css/CSSGrammar.y:
14752         * css/CSSParser.cpp:
14753         (WebCore::CSSParser::document):
14754         (WebCore::CSSParser::parseValue):
14755         (WebCore::CSSParser::parseContent):
14756         (WebCore::CSSParser::parseFillImage):
14757         (WebCore::CSSParser::parseFontFaceSrc):
14758         (WebCore::CSSParser::parseBorderImage):
14759         (WebCore::CSSParser::createCharsetRule):
14760         (WebCore::CSSParser::createImportRule):
14761         (WebCore::CSSParser::createMediaRule):
14762         (WebCore::CSSParser::createStyleRule):
14763         * css/CSSParser.h:
14764
14765 2008-06-06  Anthony Ricaud  <rik24d@gmail.com>
14766
14767         Reviewed by adele.  Landed by eseidel.
14768
14769         https://bugs.webkit.org/show_bug.cgi?id=18337
14770         
14771         Calls listBoxOnChange() in typeAheadFind() when the <select> tag is a listBox.
14772         
14773         * html/HTMLSelectElement.cpp:
14774         (WebCore::HTMLSelectElement::typeAheadFind):
14775
14776 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
14777
14778         Reviewed by John.
14779
14780         <rdar://problem/5890684> REGRESSION(r23969): Deleting a line break changes the style of text after the break
14781         
14782         Serialization of font-family:-webkit-monospace when it came from a 
14783         CSSMutableStyleDeclaration would wrap the value in single quotes but 
14784         serialization of the same property value pair from a CSSComputedStyleDeclaration 
14785         wouldn't, which kept code that checked for and removed non-redundant styles from 
14786         style spans from working correctly.
14787
14788         A redundant style left on a style span would not normally create a rendering 
14789         difference, but it did in this case because an element with 
14790         font-family:-webkit-monospace does not appear to inherit font-size.  
14791         Added a FIXME about how we might need to keep font-size on a style span if its 
14792         non-redundant styles include font-family:-webkit-monospace, although I couldn't 
14793         create a test case to produce this scenario.
14794
14795         * css/FontFamilyValue.cpp:
14796         (WebCore::isValidCSSIdentifier): Don't return false if the String starts
14797         with a '-'.  This function now appears identical to isCSSTokenizerIdentifier,
14798         so perhaps we should use a single function.
14799         * editing/ReplaceSelectionCommand.cpp:
14800         (WebCore::ReplaceSelectionCommand::handleStyleSpans): Added FIXME.  Removed the
14801         creation of two Strings that were never used.
14802
14803 2008-06-06  Justin Garcia  <justin.garcia@apple.com>
14804
14805         Reviewed by Darin.
14806
14807         <https://bugs.webkit.org/show_bug.cgi?id=19087>
14808         Editing crash in IndentOutdentCommand::prepareBlockquoteLevelForInsertion, ASSERT in debug mode
14809
14810         * editing/DeleteSelectionCommand.cpp:
14811         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): applyStyle
14812         can destroy insertedPlaceholder if it needs to move it, but it will set an
14813         endingSelection() at [movedPlaceholder, 0] if it does so.  Re-fetch insertedPlaceholder
14814         if that happens.  The long term solution for these crashes is to make moveParagraphs
14815         not copy/destroy/move content, and to make VisiblePositions update themselves on DOM 
14816         mutations.
14817         * editing/IndentOutdentCommand.cpp:
14818         (WebCore::IndentOutdentCommand::indentRegion): Early return to avoid crashes like this
14819         in the future, but ASSERT to catch them in debug builds.
14820
14821 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
14822
14823         Reviewed by Eric.
14824
14825         <https://bugs.webkit.org/show_bug.cgi?id=19403>
14826         ASSERT in InsertIntoTextNodeCommand::InsertIntoTextNodeCommand during RemoveFormat call
14827
14828         * editing/RemoveFormatCommand.cpp:
14829         (WebCore::RemoveFormatCommand::doApply): If the selection was all
14830         formatting (like an empty list) the format-less text will be empty.
14831         Early return to avoid the ASSERT that fires if input(...) is called
14832         with an empty String.
14833
14834 2008-06-05  Alp Toker  <alp@nuanti.com>
14835
14836         Build fix for r34387.
14837
14838         * GNUmakefile.am:
14839
14840 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
14841
14842         Reviewed by Eric.
14843
14844         <https://bugs.webkit.org/show_bug.cgi?id=19089> Editing ASSERT in Range::compareBoundaryPoints
14845         
14846         ApplyStyleCommand::applyInlineStyle does some work and then checks to see
14847         if the start offset of the Range it's operating on is now past the caretMaxOffset
14848         of the start container.  If it is, applyInlineStyle updates the position to 
14849         [startContainer->traverseNextNode(), 0] and then operates on that new start
14850         position.
14851         
14852         caretMaxOffset was incorrect for horizontal rules.  It should be 1 and it was 0.  So,
14853         if the horizontal rule was the last node in the document, applyInlineStyle would update
14854         its start position to [0, 0] and then try to operate on that position, assuming it was
14855         non-null, leading to the ASSERT.
14856         
14857         * rendering/RenderObject.cpp:
14858         (WebCore::RenderObject::caretMaxOffset):
14859
14860 2008-06-05  Chris Fleizach  <cfleizach@apple.com>
14861
14862         Reviewed by John Sullivan.
14863
14864         <rdar://problem/5947396> AccessibilityListBoxOptions should return their string as AXValue, not AXTitle
14865
14866         * page/AccessibilityListBoxOption.cpp:
14867         (WebCore::AccessibilityListBoxOption::stringValue):
14868         * page/AccessibilityListBoxOption.h:
14869
14870 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
14871
14872         Reviewed by Harrison.
14873
14874         <rdar://problem/5658933> GoogleDocs: Crash indenting a particular selection twice
14875         <rdar://problem/5831310> CrashTracer: [USER] 4 crashes in Mail at WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion
14876         <rdar://problem/5480141> GoogleDocs: Attempting to indent content in <td> closes <table> element
14877         
14878         A crash would occur when indenting a selection that started just before a table
14879         and ended inside that table.  With a selection like this, we'd indent the entire
14880         table, then try and indent paragraphs inside it, but the stored position for the
14881         next paragraph to indent was inside content that had been removed from the document 
14882         during the first Indent.
14883         
14884         Fixed the crash adjusting the selection to perform the indent on to prepare it
14885         for paragraph iteration using selectionForParagraphIteration.  We do this adjustment
14886         for paragraph iteration in InsertList as well.
14887         
14888         Also, indenting paragraphs inside table cells would break table structure because 
14889         we were splitting the DOM all the way up to the root editable element to insert
14890         a blockquote.  Fixed this by only splitting up to the enclosing table cell.  This 
14891         matches FF.  Lastly, fixed a bug where indenting several paragraphs inside different 
14892         table cells would move all the selected text into the same table cell. FF still has 
14893         this bug.
14894
14895         * editing/IndentOutdentCommand.cpp:
14896         (WebCore::IndentOutdentCommand::indentRegion):
14897
14898 2008-06-05  chris fleizach  <cfleizach@apple.com>
14899
14900         Reviewed by Alice Liu.
14901
14902          <rdar://problem/5979998> AXList controls should have AXSelectedChildren and its children's AXSelected attribute writable
14903
14904         * page/AccessibilityListBox.cpp:
14905         (WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
14906         (WebCore::AccessibilityListBox::setSelectedChildren):
14907         (WebCore::AccessibilityListBox::selectedChildren):
14908         (WebCore::AccessibilityListBox::visibleChildren):
14909         * page/AccessibilityListBox.h:
14910         * page/AccessibilityListBoxOption.cpp:
14911         (WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
14912         (WebCore::AccessibilityListBoxOption::setSelected):
14913         * page/AccessibilityListBoxOption.h:
14914         (WebCore::AccessibilityListBoxOption::selectedChildren):
14915         (WebCore::AccessibilityListBoxOption::visibleChildren):
14916         * page/AccessibilityObject.cpp:
14917         (WebCore::AccessibilityObject::setSelected):
14918         (WebCore::AccessibilityObject::getDocumentLinks):
14919         * page/AccessibilityObject.h:
14920         (WebCore::AccessibilityObject::canSetSelectedAttribute):
14921         (WebCore::AccessibilityObject::canSetSelectedChildrenAttribute):
14922         (WebCore::AccessibilityObject::children):
14923         * page/AccessibilityRenderObject.cpp:
14924         (WebCore::AccessibilityRenderObject::getDocumentLinks):
14925         (WebCore::AccessibilityRenderObject::children):
14926         (WebCore::AccessibilityRenderObject::addChildren):
14927         (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
14928         (WebCore::AccessibilityRenderObject::selectedChildren):
14929         (WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
14930         (WebCore::AccessibilityRenderObject::visibleChildren):
14931         * page/AccessibilityRenderObject.h:
14932         * page/mac/AccessibilityObjectWrapper.mm:
14933         (convertToVector):
14934         (convertToNSArray):
14935         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
14936         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
14937         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
14938
14939 2008-06-04  David Hyatt  <hyatt@apple.com>
14940
14941         Fix for <rdar://problem/5957994> Height doesn't animate
14942
14943         Improve the behavior when transitions are dynamically changed.  Make sure to leave older transitions
14944         running and let them obsolete themselves when they finish.
14945
14946         Reviewed by Dan Bernstein
14947
14948         Added WebCore/manual-tests/transitions2.html (must be tested manually)
14949
14950         * manual-tests/transitions.html:
14951         * manual-tests/transitions2.html: Added.
14952         * page/AnimationController.cpp:
14953         (WebCore::ImplicitAnimation::property):
14954         (WebCore::ImplicitAnimation::setFinished):
14955         (WebCore::ImplicitAnimation::markedForDeath):
14956         (WebCore::ImplicitAnimation::setMarkedForDeath):
14957         (WebCore::ImplicitAnimation::ImplicitAnimation):
14958         (WebCore::ImplicitAnimation::reset):
14959         (WebCore::ImplicitAnimation::animate):
14960         (WebCore::CompositeImplicitAnimation::animate):
14961
14962 2008-06-05  Eric Seidel  <eric@webkit.org>
14963
14964         Reviewed by mjs.
14965
14966         Get rid of Uninitialized Memory Reads (UMRs) in the XPath::Value copy constructor.
14967
14968         No functional changes, thus no tests.
14969
14970         * xml/XPathValue.h:
14971         (WebCore::XPath::Value::Value): initialize all values in each constructor
14972
14973 2008-06-05  Eric Seidel  <eric@webkit.org>
14974
14975         Reviewed by hyatt.
14976
14977         No functional changes, thus no tests.
14978
14979         * platform/graphics/Color.h: remove unnecessary bitfield use
14980
14981 2008-06-05  Antti Koivisto  <antti@apple.com>
14982
14983         Reviewed by Dave Hyatt.
14984         
14985         Make hasFeature() return true for the animation stuff.
14986
14987         * dom/DOMImplementation.cpp:
14988         (WebCore::isSVG11Feature):
14989
14990 2008-06-05  Dan Bernstein  <mitz@apple.com>
14991
14992         Reviewed by Darin Adler.
14993
14994         - fix https://bugs.webkit.org/show_bug.cgi?id=19397
14995           REGRESSION (3.1-TOT): Box-shadow renders weird when rotating a div with border radius
14996
14997         Test: fast/transforms/shadows.html
14998
14999         * platform/graphics/cg/GraphicsContextCG.cpp:
15000         (WebCore::GraphicsContext::setPlatformShadow): In Core Graphics, shadow
15001         dimensions are always in device space. Account for that, and apply the
15002         current context transform to shadow offset, and multiply the blur radius
15003         by the inverse of the operator norm of the inverse transform (which is
15004         the radius of the circle inscribed in the transformed unit circle). 
15005         * rendering/RenderObject.cpp:
15006         (WebCore::RenderObject::paintBoxShadow): Added 1px separation between
15007         the edge of the filled shape and the edge of the clipped-out shape,
15008         because in a transformed context, due to antialiasing, the fill can
15009         bleed into the clip if they touch.
15010
15011 2008-06-05  Tor Arne Vestbø  <tavestbo@trolltech.com>
15012
15013         Reviewed by Simon.
15014
15015         Prevent cycles when converting from DOM objects to
15016         QVariant, due to cycles in the DOM tree.
15017
15018         * bridge/qt/qt_runtime.cpp:
15019         (KJS::Bindings::convertValueToQVariant):
15020
15021 2008-06-04  Anders Carlsson  <andersca@apple.com>
15022
15023         Reviewed by Mitz.
15024
15025         Get rid of DeprecatedPtrList from StyleSheetList.
15026         
15027         * css/CSSStyleSelector.cpp:
15028         (WebCore::CSSStyleSelector::CSSStyleSelector):
15029         * css/StyleSheetList.cpp:
15030         (WebCore::StyleSheetList::~StyleSheetList):
15031         (WebCore::StyleSheetList::length):
15032         (WebCore::StyleSheetList::item):
15033         * css/StyleSheetList.h:
15034         (WebCore::StyleSheetList::swap):
15035         * dom/Document.cpp:
15036         (WebCore::Document::recalcStyleSelector):
15037
15038 2008-06-04  Anders Carlsson  <andersca@apple.com>
15039
15040         Reviewed by Darin.
15041
15042         Convert more classes over to start out with a ref count of 1.
15043         
15044         * css/CSSImageGeneratorValue.cpp:
15045         (WebCore::CSSImageGeneratorValue::generatedImage):
15046         * css/CSSImageValue.cpp:
15047         (WebCore::CSSImageValue::cachedImage):
15048         * css/CSSMediaRule.cpp:
15049         (WebCore::CSSMediaRule::CSSMediaRule):
15050         * css/CSSParser.cpp:
15051         (WebCore::CSSParser::parseValue):
15052         (WebCore::CSSParser::parseFillSize):
15053         (WebCore::CSSParser::parseCounter):
15054         (WebCore::CSSParser::createRuleList):
15055         * css/CSSRuleList.cpp:
15056         (WebCore::CSSRuleList::CSSRuleList):
15057         * css/CSSRuleList.h:
15058         (WebCore::CSSRuleList::create):
15059         * css/CSSStyleSelector.cpp:
15060         (WebCore::CSSStyleSelector::matchRules):
15061         (WebCore::CSSStyleSelector::styleRulesForElement):
15062         * css/CSSStyleSelector.h:
15063         * css/CSSStyleSheet.cpp:
15064         (WebCore::CSSStyleSheet::cssRules):
15065         (WebCore::CSSStyleSheet::addSubresourceURLStrings):
15066         * css/CSSStyleSheet.h:
15067         (WebCore::CSSStyleSheet::rules):
15068         * css/Pair.h:
15069         (WebCore::Pair::create):
15070         (WebCore::Pair::Pair):
15071         * html/HTMLMediaElement.cpp:
15072         (WebCore::HTMLMediaElement::buffered):
15073         (WebCore::HTMLMediaElement::played):
15074         (WebCore::HTMLMediaElement::seekable):
15075         * html/TimeRanges.cpp:
15076         (TimeRanges::TimeRanges):
15077         * html/TimeRanges.h:
15078         (WebCore::TimeRanges::create):
15079         (WebCore::TimeRanges::TimeRanges):
15080         * rendering/style/RenderStyle.cpp:
15081         (WebCore::RenderStyle::addCursor):
15082         (WebCore::RenderStyle::clearCursorList):
15083         * rendering/style/RenderStyle.h:
15084         (WebCore::StyleImage::~StyleImage):
15085         (WebCore::StyleImage::StyleImage):
15086         (WebCore::StyleCachedImage::create):
15087         (WebCore::StyleCachedImage::StyleCachedImage):
15088         (WebCore::StyleGeneratedImage::create):
15089         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
15090         (WebCore::CursorList::create):
15091         (WebCore::CursorList::CursorList):
15092
15093 2008-06-04  chris fleizach  <cfleizach@apple.com>
15094
15095         Reviewed by Dave Hyatt, Alice, Liu
15096
15097         <rdar://problem/5983804> Editable web areas do not properly report the AXFocused attribute
15098
15099         * page/AccessibilityRenderObject.cpp:
15100         (WebCore::AccessibilityRenderObject::isFocused):
15101
15102 2008-06-03  Beth Dakin  <bdakin@apple.com>
15103
15104         Reviewed by Adele.
15105
15106         Fix for https://bugs.webkit.org/show_bug.cgi?id=19381 WebKit 
15107         Crashing Constantly on Gmail with accessibility turned on
15108
15109         There was a missing null-check!
15110
15111         * page/AccessibilityRenderObject.cpp:
15112         (WebCore::AccessibilityRenderObject::roleValue):
15113
15114 2008-06-04  Anders Carlsson  <andersca@apple.com>
15115
15116         Reviewed by Sam.
15117
15118         Convert more classes to start with a ref count of 1.
15119         
15120         * bindings/js/JSCustomVoidCallback.cpp:
15121         (WebCore::toVoidCallback):
15122         * bindings/js/JSCustomVoidCallback.h:
15123         (WebCore::JSCustomVoidCallback::create):
15124         * css/StyleSheetList.cpp:
15125         (WebCore::StyleSheetList::StyleSheetList):
15126         * css/StyleSheetList.h:
15127         (WebCore::StyleSheetList::create):
15128         * dom/Document.cpp:
15129         (WebCore::Document::Document):
15130         (WebCore::Document::createNodeIterator):
15131         (WebCore::Document::createTreeWalker):
15132         * dom/NodeIterator.h:
15133         (WebCore::NodeIterator::create):
15134         * dom/Traversal.cpp:
15135         (WebCore::Traversal::Traversal):
15136         * dom/Traversal.h:
15137         * dom/TreeWalker.h:
15138         (WebCore::TreeWalker::create):
15139         * history/CachedPage.cpp:
15140         (WebCore::CachedPage::create):
15141         (WebCore::CachedPage::CachedPage):
15142         * html/CanvasGradient.cpp:
15143         (WebCore::CanvasGradient::CanvasGradient):
15144         * html/CanvasGradient.h:
15145         (WebCore::CanvasGradient::create):
15146         * html/CanvasRenderingContext2D.cpp:
15147         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
15148         (WebCore::CanvasRenderingContext2D::createLinearGradient):
15149         (WebCore::CanvasRenderingContext2D::createRadialGradient):
15150         * html/CanvasRenderingContext2D.h:
15151         (WebCore::CanvasRenderingContext2D::create):
15152         * html/HTMLCanvasElement.cpp:
15153         (WebCore::HTMLCanvasElement::getContext):
15154         * html/VoidCallback.h:
15155         (WebCore::VoidCallback::VoidCallback):
15156         * loader/FormState.cpp:
15157         (WebCore::FormState::create):
15158         (WebCore::FormState::FormState):
15159         * platform/text/RegularExpression.cpp:
15160         (WebCore::RegularExpression::Private::create):
15161         (WebCore::RegularExpression::Private::Private):
15162         (WebCore::RegularExpression::RegularExpression):
15163         * storage/SQLResultSet.cpp:
15164         (WebCore::SQLResultSet::SQLResultSet):
15165         * storage/SQLResultSetRowList.h:
15166         (WebCore::SQLResultSetRowList::create):
15167         (WebCore::SQLResultSetRowList::SQLResultSetRowList):
15168
15169 2008-06-04  Dan Bernstein  <mitz@apple.com>
15170
15171         Reviewed by Dave Hyatt.
15172
15173         - fix <rdar://problem/5962118> Crash in RenderBlock::calcColumnWidth()
15174
15175         Test: fast/multicol/gap-non-negative.html
15176
15177         * css/CSSParser.cpp:
15178         (WebCore::CSSParser::parseValue): Changed to not allow negative
15179         values for column-gap, per
15180         <http://www.w3.org/TR/2001/WD-css3-multicol-20010118/#column-gap>.
15181
15182 2008-06-04  Dan Bernstein  <mitz@apple.com>
15183
15184         Reviewed by Dave Hyatt.
15185
15186         - fix <rdar://problem/5962270> Crash in WebCore::RenderTableCell::computeAbsoluteRepaintRect()
15187
15188         Test: fast/reflections/table-cell.html
15189
15190         * rendering/RenderTableCell.cpp:
15191         (WebCore::RenderTableCell::computeAbsoluteRepaintRect): Null-check
15192         parent().
15193         (WebCore::RenderTableCell::absolutePosition): Ditto.
15194
15195 2008-06-04  Alexey Proskuryakov  <ap@webkit.org>
15196
15197         Reviewed by Darin.
15198
15199         Fix JSClassCreate to work with old JSCore API threading model.
15200
15201         * ForwardingHeaders/wtf/StrHash.h: Removed (moved into ustring.h).
15202
15203 2008-06-03  Antti Koivisto  <antti@apple.com>
15204
15205         Reviewed by Darin.
15206         
15207         https://bugs.webkit.org/show_bug.cgi?id=19384
15208         Implement path morphing for SVG animation
15209         
15210         You can animate smoothly between paths that have equal number of control points of matching type.
15211
15212         Test: svg/custom/animate-path-morphing.svg
15213
15214         * svg/SVGAnimateElement.cpp:
15215         (WebCore::SVGAnimateElement::determinePropertyType):
15216         (WebCore::SVGAnimateElement::calculateAnimatedValue):
15217         (WebCore::SVGAnimateElement::calculateFromAndToValues):
15218         (WebCore::SVGAnimateElement::resetToBaseValue):
15219         (WebCore::SVGAnimateElement::applyResultsToTarget):
15220         * svg/SVGAnimateElement.h:
15221         (WebCore::SVGAnimateElement::):
15222         * svg/SVGPathSegList.cpp:
15223         (WebCore::blendFunc):
15224         (WebCore::SVGPathSegList::createAnimated):
15225         * svg/SVGPathSegList.h:
15226
15227 2008-06-03  Darin Adler  <darin@apple.com>
15228
15229         - try to fix the Qt build
15230
15231         * bridge/qt/qt_runtime.cpp:
15232         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter): Remove the originalObject argument.
15233         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter): Ditto.
15234         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter): Ditto.
15235         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter): Ditto.
15236         (KJS::Bindings::QtConnectionObject::execute): Use callAsFunction.
15237         * bridge/qt/qt_runtime.h: More of the same.
15238
15239 2008-06-03  Justin Garcia  <justin.garcia@apple.com>
15240
15241         Reviewed by John.
15242
15243         <rdar://problem/5763082> GMail: Hang when removing indent from nested list
15244         <rdar://problem/5775449> In Gmail and GoogleDocs, a hang occurs when I attempt to apply a list style to a large selection of text
15245         <rdar://problem/5937624> 9D32: Hang in Safari. Using 100% of processor
15246
15247         * editing/InsertListCommand.cpp:
15248         (WebCore::InsertListCommand::modifyRange): doApply() may operate on and remove 
15249         the last paragraph of the selection from the document if it's in the same list 
15250         item as startOfCurrentParagraph.  Return early to avoid an infinite loop and 
15251         because there is no more work to be done.  Added a FIXME (<rdar://problem/5983974>)
15252         about the incorrect endingSelection()s.
15253
15254 2008-06-03  Oliver Hunt  <oliver@apple.com>
15255
15256         Reviewed by Tim.
15257
15258         Bug 12983: Web Inspector break on the debugger keyword
15259         <https://bugs.webkit.org/show_bug.cgi?id=12983>
15260
15261         Added support for the new debugger didReachBreakpoint 
15262         callback so that WebInspector receives the debugger event
15263         and breaks.
15264
15265         * page/JavaScriptDebugServer.cpp:
15266         (WebCore::JavaScriptDebugServer::didReachBreakpoint):
15267         * page/JavaScriptDebugServer.h:
15268
15269 2008-06-03  Darin Adler  <darin@apple.com>
15270
15271         Reviewed by Geoff.
15272
15273         - https://bugs.webkit.org/show_bug.cgi?id=19269
15274           speed up SunSpider by eliminating the toObject call for most get/put/delete
15275
15276         Eliminate the originalObject argument from property getter functions; it's no longer
15277         available and was used only for JavaScript function-based getters and setters.
15278
15279         Updated callers of PropertySlot::setUndefined. It no longer takes a base argument.
15280
15281         * bindings/js/JSQuarantinedObjectWrapper.cpp:
15282         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Removed the originalObject
15283         argument.
15284         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot): Changed to initialize the
15285         PropertySlot with the original object -- this is a new requirement.
15286
15287         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
15288         (WebCore::JSCSSStyleDeclaration::nameGetter):
15289         * bindings/js/JSCanvasPixelArrayCustom.cpp:
15290         (WebCore::JSCanvasPixelArray::indexGetter):
15291         * bindings/js/JSDOMWindowBase.cpp:
15292         (WebCore::JSDOMWindowBase::childFrameGetter):
15293         (WebCore::JSDOMWindowBase::indexGetter):
15294         (WebCore::JSDOMWindowBase::namedItemGetter):
15295         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
15296         * bindings/js/JSDOMWindowBase.h:
15297         * bindings/js/JSDOMWindowCustom.h:
15298         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
15299         * bindings/js/JSHTMLAppletElementCustom.cpp:
15300         (WebCore::JSHTMLAppletElement::nameGetter):
15301         * bindings/js/JSHTMLCollectionCustom.cpp:
15302         (WebCore::JSHTMLCollection::nameGetter):
15303         * bindings/js/JSHTMLDocumentCustom.cpp:
15304         (WebCore::JSHTMLDocument::nameGetter):
15305         * bindings/js/JSHTMLEmbedElementCustom.cpp:
15306         (WebCore::JSHTMLEmbedElement::nameGetter):
15307         * bindings/js/JSHTMLFormElementCustom.cpp:
15308         (WebCore::JSHTMLFormElement::nameGetter):
15309         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
15310         (WebCore::JSHTMLFrameSetElement::nameGetter):
15311         * bindings/js/JSHTMLObjectElementCustom.cpp:
15312         (WebCore::JSHTMLObjectElement::nameGetter):
15313         * bindings/js/JSHistoryCustom.cpp:
15314         (WebCore::JSHistory::customGetOwnPropertySlot):
15315         * bindings/js/JSLocationCustom.cpp:
15316         (WebCore::JSLocation::customGetOwnPropertySlot):
15317         * bindings/js/JSMimeTypeArrayCustom.cpp:
15318         (WebCore::JSMimeTypeArray::nameGetter):
15319         * bindings/js/JSNamedNodeMapCustom.cpp:
15320         (WebCore::JSNamedNodeMap::nameGetter):
15321         * bindings/js/JSNamedNodesCollection.cpp:
15322         (WebCore::JSNamedNodesCollection::lengthGetter):
15323         (WebCore::JSNamedNodesCollection::indexGetter):
15324         * bindings/js/JSNamedNodesCollection.h:
15325         * bindings/js/JSNodeListCustom.cpp:
15326         (WebCore::JSNodeList::nameGetter):
15327         * bindings/js/JSPluginArrayCustom.cpp:
15328         (WebCore::JSPluginArray::nameGetter):
15329         * bindings/js/JSPluginCustom.cpp:
15330         (WebCore::JSPlugin::nameGetter):
15331         * bindings/js/JSQuarantinedObjectWrapper.h:
15332         * bindings/js/JSStorageCustom.cpp:
15333         (WebCore::JSStorage::nameGetter):
15334         * bindings/js/JSStyleSheetListCustom.cpp:
15335         (WebCore::JSStyleSheetList::nameGetter):
15336         * bindings/js/kjs_binding.cpp:
15337         (WebCore::nonCachingStaticFunctionGetter):
15338         (WebCore::objectToStringFunctionGetter):
15339         * bindings/js/kjs_binding.h:
15340         * bindings/js/kjs_html.cpp:
15341         (WebCore::runtimeObjectGetter):
15342         (WebCore::runtimeObjectPropertyGetter):
15343         * bindings/js/kjs_html.h:
15344         * bindings/scripts/CodeGeneratorJS.pm:
15345         * bridge/objc/objc_runtime.mm:
15346         (ObjcFallbackObjectImp::getOwnPropertySlot):
15347         * bridge/runtime_array.cpp:
15348         (RuntimeArray::lengthGetter):
15349         (RuntimeArray::indexGetter):
15350         * bridge/runtime_array.h:
15351         * bridge/runtime_method.cpp:
15352         (RuntimeMethod::lengthGetter):
15353         * bridge/runtime_method.h:
15354         * bridge/runtime_object.cpp:
15355         (RuntimeObjectImp::fallbackObjectGetter):
15356         (RuntimeObjectImp::fieldGetter):
15357         (RuntimeObjectImp::methodGetter):
15358         * bridge/runtime_object.h:
15359         Removed originalObject arguments from getter fnctions and base arguments from
15360         calls to setUndefined.
15361
15362 2008-06-03  Darin Adler  <darin@apple.com>
15363
15364         Fix build with GCC.
15365
15366         * page/AccessibilityRenderObject.cpp:
15367         (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
15368         Put a default case back in the switch statement so we don't get warned about
15369         all the unhandled cases with GCC. Remove the unreachable code that was causing
15370         a warning in Visual Studio.
15371
15372 2008-06-03  Steve Falkenburg  <sfalken@apple.com>
15373
15374         Fix build
15375
15376         * page/AccessibilityRenderObject.cpp:
15377         (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
15378
15379 2008-06-03  Justin Garcia  <justin.garcia@apple.com>
15380
15381         Reviewed by John Sullivan.
15382
15383         <rdar://problem/5943515> SelectionController()->modify Backward/Forward with LineGranularity sometimes don't work
15384         
15385         next/previousLinePosition didn't work if the input position was the last line in its
15386         block.  The code for handling such a position assumed that the input position was
15387         editable, and that the position to be returned needed to also be editable.  Changed
15388         this code to just maintain the same editability.
15389         
15390         No test case for now because we haven't enabled selection extension operations for
15391         non-editable selections.  I enabled them temporarily to test the fix, however.
15392
15393         * dom/Node.cpp: Removed the now unused nextEditable(int).
15394         * dom/Node.h:
15395         * editing/visible_units.cpp:
15396         (WebCore::previousLeafWithSameEditability): Added.  Like previousEditable but just returns
15397         a node of the same editability.
15398         (WebCore::previousLinePosition): Call previousLeaf instead of previousEditable.
15399         (WebCore::nextLeafWithSameEditability): Added.
15400         (WebCore::nextLinePosition): Same as above.
15401
15402 2008-06-02  Anders Carlsson  <andersca@apple.com>
15403
15404         Reviewed by John and Sam.
15405
15406         <rdar://problem/5955218> 
15407         Assertion failure in ApplicationCacheGroup::addEntry when reloading a page with a cache manifest (19182)
15408         
15409         * loader/appcache/ApplicationCacheGroup.h:
15410         (WebCore::ApplicationCacheGroup::hasNewestCache):
15411         Add new accessor.
15412         
15413         * loader/appcache/ApplicationCacheStorage.cpp:
15414         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
15415         Don't call newestCache since it will always be null. Instead, call hasNewestCache which returns the saved newest cache pointer.
15416         
15417 2008-06-03  Dan Bernstein  <mitz@apple.com>
15418
15419         Reviewed by Dave Hyatt.
15420
15421         - fix <rdar://problem/5965410>
15422           In fixed table layout, the width of cells with auto width should be
15423           proportional to their column span, to match Firefox and IE.
15424
15425         Test: fast/table/fixed-with-auto-with-colspan.html
15426
15427         * rendering/FixedTableLayout.cpp:
15428         (WebCore::FixedTableLayout::layout):
15429
15430 2008-06-03  Alp Toker  <alp@nuanti.com>
15431
15432         Rubber-stamped by Alexey.
15433
15434         Remove GenerateNativeConverter added in r34331 to fix JS regressions.
15435         (JSTextCustom.cpp added in r34141 is now unused in any code path.)
15436
15437         * dom/Text.idl:
15438
15439 2008-06-03  Alexander Vassilev <avasilev@voipgate.com>
15440
15441         Reviewed, tweaked and landed by Alexey.
15442
15443         https://bugs.webkit.org/show_bug.cgi?id=19363
15444         Compiler error in Entity.h
15445
15446         * dom/Entity.h:
15447         (WebCore::Entity::Entity): Add a private constructor to shut down the errors.
15448
15449 2008-06-02  Geoffrey Garen  <ggaren@apple.com>
15450
15451         Reviewed by Alexey Proskuryakov.
15452         
15453         Removed JSObject::call, since it just called JSObject::callAsFunction.
15454         
15455         SunSpider reports no change.
15456
15457 2008-06-02  Alp Toker  <alp@nuanti.com>
15458
15459         Reviewed by Maciej.
15460
15461         Two of the toJSNewlyCreated() optimisations in r34141 were never
15462         reached due to a generator bug and missing IDL attribute.
15463
15464         Fix header generation to provide the necessary toJSNewlyCreated()
15465         overloads.
15466
15467         Patch includes a related build fix by Jan Michael Alonzo.
15468
15469         * GNUmakefile.am:
15470         * bindings/scripts/CodeGeneratorJS.pm:
15471         * dom/Text.idl:
15472
15473 2008-06-02  Alice Liu  <alice.liu@apple.com>
15474
15475         Reviewed by Beth Dakin.
15476
15477         Some ARIA roles are designated to have presentational children, which
15478         means that their descendants aren't exposed to assistive technologies
15479         on an individual basis.  What this means in webcore is that descendants
15480         of such roles need to be ignored in terms of accessibility.
15481
15482         * page/AccessibilityObject.cpp:
15483         (WebCore::AccessibilityObject::isPresentationalChildOfAriaRole):
15484         (WebCore::AccessibilityObject::ariaRoleHasPresentationalChildren):
15485         * page/AccessibilityObject.h:
15486         * page/AccessibilityRenderObject.cpp:
15487         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
15488         (WebCore::RoleEntry::):
15489         (WebCore::AccessibilityRenderObject::isPresentationalChildOfAriaRole):
15490         (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
15491         * page/AccessibilityRenderObject.h:
15492
15493 2008-06-02  David Hyatt  <hyatt@apple.com>
15494
15495         Fix for https://bugs.webkit.org/show_bug.cgi?id=19303
15496
15497         When the right slice value is omitted in border-image it should use the value of the left slice and not
15498         the top slice.
15499
15500         Reviewed by darin
15501
15502         Added fast/borders/border-image-omit-right-slice.html
15503
15504         * css/CSSParser.cpp:
15505         (WebCore::BorderImageParseContext::commitBorderImage)
15506
15507 2008-06-02  Anders Carlsson  <andersca@apple.com>
15508
15509         Reviewed by David Hyatt and Mitz.
15510
15511         <rdar://problem/5704119> 
15512         repro crash in WebCore::RenderPart::setWidget (plugin-related?)
15513         
15514         Test: platform/mac/plugins/update-widget-from-style-recalc.html
15515
15516         Make sure to update the document's rendering before calling updateWidget.
15517         
15518         * html/HTMLEmbedElement.cpp:
15519         (WebCore::HTMLEmbedElement::updateWidget):
15520         * html/HTMLObjectElement.cpp:
15521         (WebCore::HTMLObjectElement::updateWidget):
15522
15523 2008-06-02  Kevin McCullough  <kmccullough@apple.com>
15524
15525         Reviewed by Adam.
15526
15527         <rdar://problem/5954226> JSProfiler: Move the calls from
15528         JavaScriptProfileNode to JavaScriptProfile in WebCore (19231)
15529         - This Makes the profiler now call sorting function s on a per-profile
15530         basis instead of on a node in the profile.
15531         - This is also needed to remove the recursion limit in the profiler
15532         <rdar://problem/5969992> JSProfiler: Remove the recursion limit in the
15533         profiler
15534         since once the limit is removed calling sort on a node will only sort
15535         that node's children not the entire sub-tree of that node.
15536
15537         * page/JavaScriptProfile.cpp: All of these functions were moved from 
15538         JavaScriptProfileNode.
15539         (WebCore::sortTotalTimeDescending):
15540         (WebCore::sortTotalTimeAscending):
15541         (WebCore::sortSelfTimeDescending):
15542         (WebCore::sortSelfTimeAscending):
15543         (WebCore::sortCallsDescending):
15544         (WebCore::sortCallsAscending):
15545         (WebCore::sortFunctionNameDescending):
15546         (WebCore::sortFunctionNameAscending):
15547         (WebCore::ProfileClass):
15548         * page/JavaScriptProfileNode.cpp:
15549         (WebCore::ProfileNodeClass):
15550         * page/inspector/ProfileView.js: Change uses of JavaScriptProfileNode
15551         for sorting to JavaScriptProfile.
15552
15553 2008-06-02  Dan Bernstein  <mitz@apple.com>
15554
15555         Reviewed by Oliver Hunt.
15556
15557         - fix more cases of https://bugs.webkit.org/show_bug.cgi?id=19344
15558           <rdar://problem/5977300> Regression: Shadow offsets seem to have changed in 10.5.3 in canvas
15559
15560         Tests: fast/canvas/shadow-offset-1.html
15561                fast/canvas/shadow-offset-2.html
15562                fast/canvas/shadow-offset-3.html
15563                fast/canvas/shadow-offset-4.html
15564                fast/canvas/shadow-offset-5.html
15565                fast/canvas/shadow-offset-6.html
15566                fast/canvas/shadow-offset-7.html
15567
15568         * html/CanvasRenderingContext2D.cpp:
15569         (WebCore::adjustedShadowSize): Added this helper function.
15570         (WebCore::CanvasRenderingContext2D::setShadow): Changed to call
15571         adjustedShadowSize().
15572         (WebCore::CanvasRenderingContext2D::applyShadow): Ditto.
15573
15574 2008-06-02  Julien Chaffraix  <jchaffraix@webkit.org>
15575
15576         Reviewed by Darin.
15577
15578         Bug 18066: REGRESSION: createAttribute throws NAMESPACE_ERR exception
15579         https://bugs.webkit.org/show_bug.cgi?id=18066
15580
15581         Test: fast/dom/createAttribute-exception.html
15582
15583         * dom/Document.cpp:
15584         (WebCore::Document::createAttributeNS):
15585         * dom/Document.h: Add a bool parameter shouldIgnoreNamespaceChecks
15586         to createNamespaceNS() used by createAttribute() to bypass namespace
15587         checking.
15588
15589 2008-06-02  Darin Adler  <darin@apple.com>
15590
15591         Reviewed by John Sullivan.
15592
15593         - fix https://bugs.webkit.org/show_bug.cgi?id=18799
15594           apl.aip.org menu does not work (property names should be case sensitive)
15595           <rdar://problem/5900484>
15596
15597         Test: fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html
15598
15599         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
15600         (WebCore::hasCSSPropertyNamePrefix): Tweak implementation a tiny bit for
15601         improved performance when the first character does not match.
15602         (WebCore::cssPropertyName): Reject property names with a leading uppercase
15603         letter.
15604
15605 2008-06-02  Darin Adler  <darin@apple.com>
15606
15607         Reviewed by Mitz.
15608
15609         - fix https://bugs.webkit.org/show_bug.cgi?id=19358
15610           <rdar://problem/5951986> first line break in <pre> elements ignored
15611           (chess boards at http://rankzero.de/)
15612
15613         Test: fast/parser/pre-first-line-break.html
15614
15615         * editing/markup.cpp:
15616         (WebCore::appendStartMarkup): Fix handling of <listing>. Not part of the
15617         bug mentioned above, but uncovered by the regression test.
15618
15619         * html/HTMLTokenizer.cpp:
15620         (WebCore::HTMLTokenizer::write): Clear the "discardLF" flag when
15621         processing a new tag.
15622
15623 2008-06-02  Timothy Hatcher  <timothy@apple.com>
15624
15625         Fixes a bug where only the last breakpoint would be hit after reloading
15626         the page. Also fixes a bug where disabled breakpoints would be hit
15627         after reloading the page.
15628
15629         Reviewed by Darin Adler.
15630
15631         * page/inspector/BreakpointsSidebarPane.js:
15632         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint): Don't call
15633         InspectorController.addBreakpoint() unless the breakpoint is enabled.
15634         * page/inspector/ScriptsPanel.js:
15635         (WebInspector.ScriptsPanel.prototype.addScript): Move the addBreakpoint()
15636         call inside the for loop so each breakpoint is added. Also check the
15637         breakpoint's enabled state before calling addBreakpoint().
15638
15639 2008-06-02  Timothy Hatcher  <timothy@apple.com>
15640
15641         Fixes a bug where the line highlight and the execution line were conflicting.
15642         The line highlight no longer shows up when the execution line changes, only
15643         when showResource or showScript is called with a line number.
15644
15645         Reviewed by Darin Adler.
15646
15647         * page/inspector/ScriptsPanel.js:
15648         (WebInspector.ScriptsPanel.prototype.showScript): Pass true for shouldHighlightLine.
15649         (WebInspector.ScriptsPanel.prototype.showResource): Ditto.
15650         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Added a shouldHighlightLine
15651         argument that triggers the highlightLine() call on the SourceFrame.
15652         (WebInspector.ScriptsPanel.prototype._goBack): Pass false for shouldHighlightLine since
15653         we need to pass true for fromBackForwardAction.
15654         (WebInspector.ScriptsPanel.prototype._goForward): Ditto.
15655
15656 2008-06-02  Timothy Hatcher  <timothy@apple.com>
15657
15658         Bring the Web Inspector forward when the debugger pauses.
15659
15660         https://bugs.webkit.org/show_bug.cgi?id=19095
15661
15662         Reviewed by Darin Adler.
15663
15664         * page/inspector/ScriptsPanel.js:
15665         (WebInspector.ScriptsPanel.prototype.debuggerPaused): Call window.focus() and
15666         make the Scripts panel the current panel.
15667
15668 2008-06-02  Jan Michael Alonzo  <jmalonzo@webkit.org>
15669
15670         Reviewed by Alp Toker.
15671
15672         Build WebCore GTK+ sources as part of WebCore, not WebKit.
15673         Split common and GTK+-specific sources into separate file lists.
15674
15675         * GNUmakefile.am:
15676
15677 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
15678
15679         Reviewed by Simon.
15680
15681         Implement basic media element controls for the QtWebKit port.
15682
15683         * platform/qt/RenderThemeQt.cpp:
15684         (WebCore::WorldMatrixTransformer::WorldMatrixTransformer):
15685         (WebCore::WorldMatrixTransformer::~WorldMatrixTransformer):
15686         (WebCore::RenderThemeQt::getMediaElementFromRenderObject):
15687         (WebCore::RenderThemeQt::paintMediaBackground):
15688         (WebCore::RenderThemeQt::getMediaControlForegroundColor):
15689         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
15690         (WebCore::RenderThemeQt::paintMediaMuteButton):
15691         (WebCore::RenderThemeQt::paintMediaPlayButton):
15692         (WebCore::RenderThemeQt::paintMediaSeekBackButton):
15693         (WebCore::RenderThemeQt::paintMediaSeekForwardButton):
15694         (WebCore::RenderThemeQt::paintMediaSliderTrack):
15695         (WebCore::RenderThemeQt::paintMediaSliderThumb):
15696         (WebCore::RenderThemeQt::adjustSliderThumbSize):
15697         * platform/qt/RenderThemeQt.h:
15698         * platform/qt/html4-adjustments-qt.css:
15699
15700 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
15701
15702         Reviewed by Simon.
15703
15704         Change default styling of media elements to allow controls
15705         to be placed at any position within the media element.
15706
15707         * css/html4.css:
15708
15709 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
15710
15711         Reviewed by Simon.
15712
15713         Use intrinsic size for media elements with no natural size.
15714
15715         * rendering/RenderVideo.cpp:
15716         (WebCore::RenderVideo::videoSizeChanged):
15717
15718 2008-05-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
15719
15720         Reviewed by Simon.
15721
15722         Allow platform specific adjustments to the default style sheet.
15723
15724         Clients will change the #ifdef in RenderTheme.cpp and implement
15725         any platform specific adjustments in RenderThemeXXX.cpp, either
15726         by loading a file as the Qt port does, or by modifying the style
15727         directly.
15728
15729         * WebCore.pro: Add new resource file
15730         * css/CSSStyleSelector.cpp:
15731         (WebCore::loadDefaultStyle): adjust default stylesheet
15732         * platform/qt/RenderThemeQt.cpp:
15733         (WebCore::RenderTheme::adjustDefaultStyleSheet): Qt adjustments
15734         * platform/qt/WebCoreResources.qrc: Added.
15735         * platform/qt/html4-adjustments-qt.css: Added.
15736         * rendering/RenderTheme.cpp: Default adjustments (none)
15737         * rendering/RenderTheme.h:
15738
15739 2008-06-02  Siraj Razick  <siraj.razick@collabora.co.uk>
15740
15741         Reviewed by Simon
15742
15743         Allow button fonts to scale based on the text size multiplier.
15744
15745         https://bugs.webkit.org/show_bug.cgi?id=19251
15746
15747         * platform/qt/RenderThemeQt.cpp:
15748         (WebCore::RenderThemeQt::adjustButtonStyle):
15749
15750 2008-06-01  Rob Buis  <buis@kde.org>
15751
15752         Reviewed by Darin.
15753
15754         https://bugs.webkit.org/show_bug.cgi?id=15823
15755         getPropertyValue for border returns null, should compute the shorthand value
15756
15757         Compute the value for the border shorthand property by computing
15758         its shorthand subproperties.
15759
15760         Test: fast/css/getPropertyValue-border.html
15761
15762         * css/CSSMutableStyleDeclaration.cpp:
15763         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
15764         (WebCore::CSSMutableStyleDeclaration::getCommonValue):
15765         * css/CSSMutableStyleDeclaration.h:
15766
15767 2008-06-01  Dan Bernstein  <mitz@apple.com>
15768
15769         Reviewed by Darin Adler.
15770
15771         - fix https://bugs.webkit.org/show_bug.cgi?id=19344
15772           <rdar://problem/5977300> Regression: Shadow offsets seem to have changed in 10.5.3 in canvas
15773
15774         Test: fast/canvas/shadow-offset.html
15775
15776         * html/CanvasRenderingContext2D.cpp:
15777         (WebCore::CanvasRenderingContext2D::applyShadow): Slightly increase the
15778         magnitude of the offsets passed to CGContextSetShadow* to ensure that
15779         the end result after truncation is the desired integer offsets. This is
15780         the same workaround for <rdar://problem/5539388> that is used in
15781         GraphicsContext::setShadow(). Also correct a recent regression where
15782         shadow Y offsets were flipped.
15783
15784 2008-05-31  Maciej Stachowiak  <mjs@apple.com>
15785
15786         Reviewed by Sam.
15787
15788         - avoid assertion in updateDocument() when running debug
15789
15790         * bindings/js/kjs_proxy.cpp:
15791         (WebCore::KJSProxy::updateDocument): Exit early if the document is null. We
15792         don't need to update in this case.
15793
15794 2008-05-30  Dan Bernstein  <mitz@apple.com>
15795
15796         Reviewed by Darin Adler.
15797
15798         - fix https://bugs.webkit.org/show_bug.cgi?id=19278
15799           <rdar://problem/5968621> REGRESSION (r31114-r31132): image float disappears on refresh
15800
15801         Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
15802
15803         * rendering/bidi.cpp:
15804         (WebCore::RenderBlock::layoutInlineChildren): Ensured that floats
15805         occurring in trailing whitespace after a line break are added to the
15806         last line's floats vector.
15807
15808 2008-05-30  Timothy Hatcher  <timothy@apple.com>
15809
15810         Implements the back and forward buttons in the Scripts panel.
15811
15812         Reviewed by Adam Roben.
15813
15814         * page/inspector/ScriptsPanel.js:
15815         (WebInspector.ScriptsPanel): Add the back and forward button elements
15816         and remove the FIXMEs.
15817         (WebInspector.ScriptsPanel.prototype.reset): Reset _backForwardList
15818         and _currentBackForwardIndex. Then call _updateBackAndForwardButtons().
15819         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
15820         Added a fromBackForwardAction argument. If fromBackForwardAction is false
15821         then update the _currentBackForwardIndex and _backForwardList.
15822         (WebInspector.ScriptsPanel.prototype._updateBackAndForwardButtons):
15823         Update the disabled state of the buttons.
15824         (WebInspector.ScriptsPanel.prototype._goBack): Update the _currentBackForwardIndex
15825         and call _showScriptOrResource() and _updateBackAndForwardButtons().
15826         (WebInspector.ScriptsPanel.prototype._goForward): Ditto.
15827
15828 2008-05-30  Timothy Hatcher  <timothy@apple.com>
15829
15830         Made clicking a Console message URL originating from a JavaScript
15831         source show the Resource in the Scripts panel. This only happens
15832         when the debugger is attached.
15833
15834         Reviewed by Adam Roben.
15835
15836         * page/inspector/Console.js:
15837         (WebInspector.Console.prototype._formaterror):
15838         Add a preferredPanel of "scripts".
15839         (WebInspector.ConsoleMessage.prototype.toMessageElement):
15840         Add a preferredPanel of "scripts" when the source is JS.
15841         * page/inspector/ScriptView.js:
15842         (WebInspector.ScriptView.prototype.highlightLine): Added.
15843         Calls through to the sourceFrame. Matches SourceView.
15844         * page/inspector/ScriptsPanel.js:
15845         (WebInspector.ScriptsPanel.prototype.canShowResource): Added.
15846         Returns true if the debugger is attached and the resource has scripts.
15847         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Call
15848         highlightLine on the view.
15849         * page/inspector/inspector.js:
15850         (WebInspector.documentClick): Pass the preferredPanel to showResourceForURL.
15851         (WebInspector.showResourceForURL): Resolve the preferredPanel from the string
15852         passed in. Checks if the panel implements showResource and canShowResource.
15853         Reverts to the Resources panel if any of that is false or not implemented.
15854
15855 2008-05-30  Timothy Hatcher  <timothy@apple.com>
15856
15857         Fixed an "undefined type" exception that was being thrown when
15858         selecting a eval script from the file menu in the Scripts panel.
15859         This would also happen when stepping into an eval which would
15860         break other parts of the Inspector interface.
15861
15862         Reviewed by Adam Roben.
15863
15864         * page/inspector/ScriptsPanel.js:
15865         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
15866         Use the scriptOrResource variable instead of the undefined script variable.
15867
15868 2008-05-30  Timothy Hatcher  <timothy@apple.com>
15869
15870         Made the starting line number of scripts be 1-based throughout the engine.
15871         This cleans up script line numbers so they are all consistent now and fixes
15872         some cases where script execution was shown as off by one line in the debugger.
15873
15874         Doing this also exposed a bug where JSLazyEventListener created in XHML or SVG
15875         documents would always have a line number of 0. So this change fixed that bug
15876         to pass all the SVG and XHTML tests.
15877
15878         All layout tests pass.
15879
15880         Reviewed by Oliver Hunt.
15881
15882         * bindings/js/kjs_events.cpp:
15883         (WebCore::JSLazyEventListener::JSLazyEventListener): Set the line number to 1
15884         if it was passed in as 0. This can happen when listeners are created with
15885         a setAttribute call from JavaScript.
15886         (WebCore::JSLazyEventListener::parseCode): Add a FIXME about the URL being
15887         incorrect when listeners are created with a setAttribute call from JavaScript.
15888         * bindings/js/kjs_events.h: Remove the default value for lineNumber, since no
15889         callers need it.
15890         * bindings/objc/WebScriptObject.mm:
15891         (-[WebScriptObject evaluateWebScript:]): Pass a line number of 1 instead of 0
15892         to Interpreter::evaluate().
15893         * bridge/NP_jsobject.cpp:
15894         (_NPN_Evaluate): Ditto.
15895         * bridge/jni/jni_jsobject.mm:
15896         (JavaJSObject::eval): Ditto.
15897         * dom/XMLTokenizer.cpp:
15898         (WebCore::XMLTokenizer::startElementNs): Call KJSProxy::setEventHandlerLineno()
15899         around the call to handleElementAttributes, so any JSLazyEventListener created
15900         from those attributes have line numbers.
15901         (WebCore::XMLTokenizer::endElementNs): Remove a minus 1 of the line number.
15902         (WebCore::XMLTokenizer::notifyFinished): Pass a line number of 1 instead of 0.
15903         (WebCore::XMLTokenizer::parseEndElement): Remove a minus 1 of the line number.
15904         * html/HTMLScriptElement.cpp:
15905         (WebCore::HTMLScriptElement::evaluateScript): Add a FIXME about the starting
15906         line number being incorrect in some cases when this function is called.
15907         * html/HTMLTokenizer.cpp:
15908         (WebCore::HTMLTokenizer::parseSpecial): Add a plus 1 to the line number when
15909         setting scriptStartLineno so it is 1-based. Same for calling setEventHandlerLineno().
15910         (WebCore::HTMLTokenizer::processToken): Ditto.
15911         * html/HTMLTokenizer.h: Change the default line number on scriptExecution() to 1 from 0.
15912         * loader/FrameLoader.cpp:
15913         (FrameLoader::executeIfJavaScriptURL): Pass a line number of 1 instead of 0 to executeScript().
15914
15915 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
15916
15917         Reviewed by Oliver (earlier version reviewed by Alexey).
15918
15919         - speculative fix for "REGRESSION(r34143?): Frequent crash while browsing"
15920         https://bugs.webkit.org/show_bug.cgi?id=19285
15921         
15922         ("This Time for Sure" Edition)
15923
15924         I'm pretty sure this fixes it but I have not been able to
15925         reproduce and am unsure if my theory of the bug is right.
15926
15927         I belive the bug was because JSDOMWindowBase accessed
15928         JSDOMWindowShell in its destructor to remove itself from a
15929         hashtable, but GC destructor order is not guaranteed, so the
15930         hashtable may have been freed already. This patch changes things
15931         so that a non-GC object (the KJSProxy) does the tracking of live
15932         window objects for a frame. JSDOMWindowBase can null check the frame
15933         pointer to verify if it is still good.
15934         
15935         In addition, we must create a similar setup between DOMWindow and
15936         Frame; since the DOMWindow of a given frame can now change over
15937         time, we must ensure that the Frame disconnects every live
15938         DOMWindow when destroyed, not just the last.
15939
15940         * bindings/js/JSDOMWindowBase.cpp:
15941         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
15942         * bindings/js/JSDOMWindowShell.cpp:
15943         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
15944         * bindings/js/JSDOMWindowShell.h:
15945         (WebCore::JSDOMWindowShell::setWindow):
15946         * bindings/js/kjs_proxy.cpp:
15947         (WebCore::KJSProxy::clear):
15948         (WebCore::KJSProxy::initScript):
15949         (WebCore::KJSProxy::updateDocument):
15950         * bindings/js/kjs_proxy.h:
15951         (WebCore::KJSProxy::clearFormerWindow):
15952         * page/DOMWindow.cpp:
15953         (WebCore::DOMWindow::~DOMWindow):
15954         * page/Frame.cpp:
15955         (WebCore::Frame::~Frame):
15956         (WebCore::Frame::setDocument):
15957         (WebCore::Frame::clearDOMWindow):
15958         (WebCore::Frame::clearFormerDOMWindow):
15959         * page/Frame.h:
15960         * page/FramePrivate.h:
15961
15962 2008-05-30  Dan Bernstein  <mitz@apple.com>
15963
15964         Reviewed by Darin Adler and Dave Hyatt.
15965
15966         - eliminate excessive repainting when an object's final position
15967           after layout is unchanged
15968
15969         * rendering/RenderBlock.cpp:
15970         (WebCore::RenderBlock::layoutBlockChildren): Removed the full repaint
15971         for the case that the final position is unchanged but the position at
15972         which an intermediate layout occurred was different. Any repainting
15973         done during the intermediate layout would have happened at the object's
15974         initial (and also final) coordinates, since layoutDelta is factored
15975         into repaint rect calculations.
15976
15977 2008-05-30  Chris Fleizach  <cfleizach@apple.com>
15978
15979         Reviewed by Beth Dakin.
15980
15981         <rdar://problem/5959478> r34079: AX: crash at stringForReplacedNode
15982
15983         * page/AccessibilityObject.cpp:
15984         (WebCore::stringForReplacedNode):
15985
15986 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
15987
15988         Reviewed by Simon.
15989
15990         Fix the build dependencies for the Qt build. Don't generate
15991         SVGCSSPropertyNames.cpp for every build.
15992
15993         * WebCore.pro: The output file was renamed, so the compiler rule needs
15994         to be adjusted in order for qmake to generate correct depdencies.
15995
15996 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
15997
15998         Revert fix for 19285, it just caused more crashes and I need time
15999         to fix it properly.
16000
16001         * bindings/js/JSDOMWindowBase.cpp:
16002         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
16003         * bindings/js/JSDOMWindowShell.cpp:
16004         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
16005         (WebCore::JSDOMWindowShell::updateDocument):
16006         * bindings/js/JSDOMWindowShell.h:
16007         (WebCore::JSDOMWindowShell::setWindow):
16008         (WebCore::JSDOMWindowShell::clearFormerWindow):
16009         * bindings/js/kjs_proxy.cpp:
16010         (WebCore::KJSProxy::clear):
16011         (WebCore::KJSProxy::initScript):
16012         * bindings/js/kjs_proxy.h:
16013         * page/Frame.cpp:
16014         (WebCore::Frame::setDocument):
16015
16016 2008-05-30  Adam Treat  <treat@kde.org>
16017
16018         Reviewed by Simon.
16019
16020         Fix a huge memory leak by ensuring that on application shutdown
16021         the shared timer is fired one last time if it is active. This
16022         ensures that the GCController timer is fired at the end to free
16023         references to JavaScript objects.
16024
16025         * platform/qt/SharedTimerQt.h:
16026         (WebCore::SharedTimerQt::cleanup):
16027         (WebCore::SharedTimerQt::inst):
16028
16029 2008-05-30  Alexey Proskuryakov  <ap@webkit.org>
16030
16031         Reviewed by Darin.
16032
16033         http://bugs.webkit.org/show_bug.cgi?id=7466
16034         <rdar://problem/4657563> Use of Ctrl as access key modifier conflicts with Mac OS X
16035         emacs-style keybindings
16036
16037         * page/EventHandler.cpp:
16038         (WebCore::EventHandler::handleAccessKey): Use Ctrl+Option for access keys on Mac OS X.
16039
16040 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
16041
16042         Reviewed by Alexey.
16043         
16044         - speculative fix for "REGRESSION(r34143?): Frequent crash while browsing"
16045         https://bugs.webkit.org/show_bug.cgi?id=19285
16046
16047         I'm pretty sure this fixes it but I have not been able to
16048         reproduce and am unsure if my theory of the bug is right.
16049
16050         I belive the bug was because JSDOMWindowBase accessed
16051         JSDOMWindowShell in its destructor to remove itself from a
16052         hashtable, but GC destructor order is not guaranteed, so the
16053         hashtable may have been freed already. This patch changes things
16054         so that a non-GC object (the KJSProxy) does the tracking of live
16055         window objects for a frame. JSDOMWindowBase can null check the frame
16056         pointer to verify if it is still good.
16057         
16058         * bindings/js/JSDOMWindowBase.cpp:
16059         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
16060         * bindings/js/JSDOMWindowShell.cpp:
16061         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
16062         * bindings/js/JSDOMWindowShell.h:
16063         (WebCore::JSDOMWindowShell::setWindow):
16064         * bindings/js/kjs_proxy.cpp:
16065         (WebCore::KJSProxy::clear):
16066         (WebCore::KJSProxy::initScript):
16067         (WebCore::KJSProxy::updateDocument):
16068         * bindings/js/kjs_proxy.h:
16069         (WebCore::KJSProxy::clearFormerWindow):
16070         * page/Frame.cpp:
16071         (WebCore::Frame::setDocument):
16072
16073 2008-05-29  Chris Fleizach  <cfleizach@apple.com>
16074
16075         Reviewed by Darin Adler.
16076
16077         <rdar://problem/4783102> Radio button/checkbox embedded with <label> tag should combine the text and the label as a single element
16078         <rdar://problem/5091386> Seed: VO reads form labels twice in Safari
16079
16080         * page/AccessibilityObject.cpp:
16081         (WebCore::AccessibilityObject::titleUIElement):
16082         * page/AccessibilityObject.h:
16083         (WebCore::AccessibilityObject::isControl):
16084         * page/AccessibilityRenderObject.cpp:
16085         (WebCore::AccessibilityRenderObject::isControl):
16086         (WebCore::AccessibilityRenderObject::labelElementContainer):
16087         (WebCore::AccessibilityRenderObject::title):
16088         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
16089         (WebCore::AccessibilityRenderObject::elementRect):
16090         (WebCore::AccessibilityRenderObject::titleUIElement):
16091         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
16092         (WebCore::AccessibilityRenderObject::roleValue):
16093         * page/AccessibilityRenderObject.h:
16094         * page/mac/AccessibilityObjectWrapper.mm:
16095         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
16096         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
16097
16098 2008-05-29  Timothy Hatcher  <timothy@apple.com>
16099
16100         Fixes the regression where image resources don't have a preview icon.
16101
16102         https://bugs.webkit.org/show_bug.cgi?id=18500
16103
16104         Reviewed by Adam Roben.
16105
16106         * page/inspector/ResourcesPanel.js:
16107         (WebInspector.ResourceSidebarTreeElement): Call createIconElement before
16108         calling the superclass.
16109         (WebInspector.ResourceSidebarTreeElement.prototype.createIconElement):
16110         Create an iconElement, if the category is images then make a div that
16111         contains a preview image. Otherwise just make an img element. If there
16112         was a previous iconElement, then replace it.
16113         (WebInspector.ResourceSidebarTreeElement.prototype.refresh): Call
16114         createIconElement if the category changed.
16115         * page/inspector/SidebarTreeElement.js:
16116         (WebInspector.SidebarTreeElement): Create an iconElement if one hasn't
16117         been made already by a subclass.
16118         (WebInspector.SidebarTreeElement.prototype.onattach): Append the iconElement
16119         instead of creating one each time.
16120         * page/inspector/inspector.css: New and updated style rules.
16121
16122 2008-05-29  Timothy Hatcher  <timothy@apple.com>
16123
16124         Removes a use of the internal _childrenListNode property by adding
16125         a getter/setter for smallChildren to SidebarSectionTreeElement.
16126
16127         Reviewed by Adam Roben.
16128
16129         * page/inspector/ResourcesPanel.js:
16130         (WebInspector.ResourcesPanel.prototype._toggleLargerResources):
16131         Toggle smallChildren on the resourcesTreeElement instead of setting
16132         the style class directly.
16133         * page/inspector/SidebarTreeElement.js:
16134         (WebInspector.SidebarSectionTreeElement.prototype.smallChildren):
16135         Sets or removes the small class on the _childrenListNode.
16136
16137 2008-05-29  Timothy Hatcher  <timothy@apple.com>
16138
16139         Fixes a bug where the className would be reset for Resource
16140         tree elements and the selected state would be lost. This could
16141         happen when sorting the resources.
16142
16143         https://bugs.webkit.org/show_bug.cgi?id=19211
16144
16145         Reviewed by Adam Roben.
16146
16147         * page/inspector/ResourcesPanel.js:
16148         (WebInspector.ResourceSidebarTreeElement.prototype.refresh): Call
16149         removeMatchingStyleClasses to remove previous category classes instead
16150         of setting the whole className directly.
16151         * page/inspector/utilities.js:
16152         (Element.prototype.removeStyleClass): Moved code to
16153         removeMatchingStyleClasses and call removeMatchingStyleClasses.
16154         (Element.prototype.removeMatchingStyleClasses): Added. Code moved from
16155         removeStyleClass and don't escape the string.
16156
16157 2008-05-29  David Hyatt  <hyatt@apple.com>
16158
16159         Improve the performance of the GUIMark benchmark by 2x in the CoreGraphics code path.
16160
16161         Whenever a foreground image changes size rapidly, we will now dynamically shift into rendering it
16162         using low quality scaling.  Once the animation completes, the image will repaint at high quality.
16163         Scaled images will still render at high quality by default, only shifting into low quality if
16164         the scale factor is rapidly changing.  This change raises GUIMark from 21fps to 34fps on my machine.
16165
16166         Rewrite the Image draw method to avoid the use of throwaway CG subimages.  Instead the entire image is
16167         always drawn (with the appropriate clip and scale set up to make sure the correct subimage portion shows up
16168         in the destination rect).  This change raises GUIMark from 34fps to 43fps on my machine.
16169
16170         Reviewed by Darin
16171
16172         * platform/graphics/GraphicsContext.cpp:
16173         (WebCore::GraphicsContext::drawImage):
16174         * platform/graphics/cg/ImageCG.cpp:
16175         (WebCore::BitmapImage::draw):
16176         * rendering/RenderImage.cpp:
16177         (WebCore::RenderImageScaleData::RenderImageScaleData):
16178         (WebCore::RenderImageScaleData::~RenderImageScaleData):
16179         (WebCore::RenderImageScaleData::size):
16180         (WebCore::RenderImageScaleData::time):
16181         (WebCore::RenderImageScaleData::useLowQualityScale):
16182         (WebCore::RenderImageScaleData::hiqhQualityRepaintTimer):
16183         (WebCore::RenderImageScaleData::setSize):
16184         (WebCore::RenderImageScaleData::setTime):
16185         (WebCore::RenderImageScaleData::setUseLowQualityScale):
16186         (WebCore::RenderImageScaleObserver::shouldImagePaintAtLowQuality):
16187         (WebCore::RenderImageScaleObserver::imageDestroyed):
16188         (WebCore::RenderImageScaleObserver::highQualityRepaintTimerFired):
16189         (WebCore::RenderImage::highQualityRepaintTimerFired):
16190         (WebCore::RenderImage::~RenderImage):
16191         (WebCore::RenderImage::paintReplaced):
16192         * rendering/RenderImage.h:
16193
16194 2008-05-29  Justin Garcia  <justin.garcia@apple.com>
16195
16196         Reviewed by Eric.
16197
16198         <rdar://problem/5847330> REGRESSION CrashTracer: [USER] 536 crashes at WebCore::highestAncestor
16199
16200         * editing/CompositeEditCommand.cpp:
16201         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Don't break out of an empty
16202         list item if its parent is non-editable, since doing so will move into non-editable content.
16203         * editing/DeleteSelectionCommand.cpp:
16204         (WebCore::DeleteSelectionCommand::initializePositionData): We want to prevent merges from
16205         table cells even if those table cells are non-editable.
16206         * editing/htmlediting.cpp:
16207         (WebCore::enclosingNodeOfType): Can now return non-editable nodes, for cases where the caller 
16208         isn't going to do editing in the returned node.
16209         * editing/htmlediting.h:
16210
16211 2008-05-29  Anders Carlsson  <andersca@apple.com>
16212
16213         Reviewed by Mitz.
16214
16215         <rdar://problem/5971845>
16216         https://bugs.webkit.org/show_bug.cgi?id=19313
16217         Add version member to NPCocoaEvent
16218         
16219         * bridge/npapi.h:
16220
16221 2008-05-29  Alexey Proskuryakov  <ap@webkit.org>
16222
16223         Reviewed by Adam Roben.
16224
16225         <rdar://problem/5960682> REGRESSION(r30535): Crashes on iExploder in checkForHeadCharset().
16226
16227         I don't see how to make a reliable test, but iExploder catches this quickly.
16228
16229         * loader/TextResourceDecoder.cpp:
16230         (WebCore::TextResourceDecoder::checkForHeadCharset): Correct the length passed to
16231         findIgnoringCase().
16232
16233 2008-05-29  Peter Kasting  <pkasting@google.com>
16234
16235         Reviewed by Dave Hyatt.
16236
16237         https://bugs.webkit.org/show_bug.cgi?id=19273
16238         Handle looping GIFs correctly (at least in the open source GIF decoder) even when
16239         the loop count doesn't appear in the initial data packets.
16240
16241         * platform/graphics/BitmapImage.cpp:
16242         (WebCore::BitmapImage::cacheFrame):
16243         (WebCore::BitmapImage::startAnimation):
16244         (WebCore::BitmapImage::advanceAnimation):
16245         * platform/image-decoders/gif/GIFImageDecoder.cpp:
16246         (WebCore::GIFImageDecoder::GIFImageDecoder):
16247         (WebCore::GIFImageDecoder::repetitionCount):
16248         (WebCore::GIFImageDecoder::gifComplete):
16249         * platform/image-decoders/gif/GIFImageDecoder.h:
16250
16251 2008-05-29  Brent Fulgham  <bfulgham@gmail.com>
16252
16253         Reviewed by Alp Toker.
16254
16255         http://bugs.webkit.org/show_bug.cgi?id=19284
16256         Correct Windows (Cairo) Build Regressions
16257
16258         Correct small Windows (Cairo) build regressions in recent updates.
16259
16260         * platform/graphics/SimpleFontData.h:  Correct build regression due
16261           to r32781 (additional use of m_syntheticBoldOffset in GDI code).
16262         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
16263           Correct build regression due to r31830 (change of clip signature
16264           to use FloatRect rather than IntRect).
16265         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
16266         (WebCore::SimpleFontData::platformInit):  Initialize
16267         m_syntheticBoldOffset
16268         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
16269         (WebCore::JPEGImageReader::JPEGImageReader):  Work around build
16270           error due to warnings about _setjmp treated as errors.
16271         * platform/image-decoders/png/PNGImageDecoder.cpp:  Work around
16272           build error due to warnings about _setjmp treated as errors.
16273         * platform/network/curl/ResourceHandleCurl.cpp:  Correct build error
16274           due to different order (and content) of include files when building
16275           with CoreFoundation (but not CoreGraphics).
16276         * platform/network/curl/ResourceHandleManager.cpp:
16277         (WebCore::ResourceHandleManager::setupPOST):  Correct build error
16278           due to Visual Studio compiler bug.
16279
16280 2008-05-29  Alexey Proskuryakov  <ap@webkit.org>
16281
16282         Reviewed by Darin.
16283
16284         https://bugs.webkit.org/show_bug.cgi?id=19215
16285         REGRESSION: transformToDocument fails when xsl includes &#160;
16286
16287         Test: fast/xsl/nbsp-in-stylesheet.html
16288
16289         * editing/markup.cpp:
16290         (WebCore::appendAttributeValue):
16291         (WebCore::appendEscapedContent):
16292         (WebCore::escapeContentText):
16293         (WebCore::appendQuotedURLAttributeValue):
16294         (WebCore::appendNamespace):
16295         (WebCore::appendStartMarkup):
16296         (WebCore::appendDocumentType):
16297         (WebCore::createMarkup):
16298         Only escape non-breaking spaces in HTML documents. In Firefox, this behavior is also limited
16299         to innerHTML, but we don't have a separate code path for it, and do not necessarily want to.
16300
16301         * page/Frame.cpp:
16302         (WebCore::Frame::documentTypeString):
16303         * dom/CDATASection.cpp:
16304         * dom/CDATASection.h:
16305         * dom/Comment.cpp:
16306         * dom/Comment.h:
16307         * dom/DocumentType.cpp:
16308         * dom/DocumentType.h:
16309         * dom/ProcessingInstruction.cpp:
16310         * dom/ProcessingInstruction.h:
16311         While at it, I also wanted to fix escaping for these nodes, but it turned out that FIXMEs were
16312         incorrect. So, I just moved their serialization to markup.cpp for consistency.
16313
16314 2008-05-29  Maciej Stachowiak  <mjs@apple.com>
16315
16316         Reviewed by Dave Hyatt.
16317
16318         - speed up DHTML using lazy style resolution and renderer creation
16319
16320         This change introduces the concept of "lazy attach" - when a node
16321         is lazy attached, then instead of resolving style and creating a
16322         renderer right away, we just mark it as needing a style recalc.
16323         
16324         The patch makes use of this mechanism when inserting nodes directly
16325         using DOM APIs from script. For now this is only done for the
16326         JavaScript language binding but could also be done for other
16327         bindings in the future.
16328         
16329         Lazy attach helps some common DHTML patterns - when a node is
16330         added to the DOM, and then subsequently changed in a
16331         style-affecting way, this causes an extra style recalc. This is a
16332         fairly common pattern so it is better to be lazy.
16333         
16334         * bindings/js/JSNodeCustom.cpp:
16335         (WebCore::JSNode::insertBefore): Request lazy attach.
16336         (WebCore::JSNode::replaceChild): ditto
16337         (WebCore::JSNode::appendChild): ditto
16338         * dom/ContainerNode.cpp:
16339         (WebCore::ContainerNode::insertBefore): Support lazy attach.
16340         (WebCore::ContainerNode::replaceChild): ditto
16341         (WebCore::ContainerNode::appendChild): ditto
16342         (WebCore::ContainerNode::detach): Clear "changed child" bit if still set.
16343         * dom/ContainerNode.h:
16344         * dom/Element.cpp:
16345         (WebCore::Element::recalcStyle): Adjusted to properly reattach a
16346         lazy-attached node.
16347         * dom/Node.cpp:
16348         (WebCore::Node::insertBefore): Extra parameter for lazy attach
16349         (still doesn't do anything).
16350         (WebCore::Node::replaceChild): ditto
16351         (WebCore::Node::appendChild): ditto
16352         (WebCore::Node::setChanged): Unrelated but obvious optimization -
16353         stop marking ancestor as having a changed child once we already reach
16354         an ancestor so marked.
16355         (WebCore::outermostLazyAttachedAncestor): Helper function for lazyAttach.
16356         (WebCore::Node::lazyAttach): Implement lazy attach.
16357         (WebCore::Node::canLazyAttach): Virtual method - true for most nodes.
16358         * dom/Node.h:
16359         * dom/Text.cpp:
16360         (WebCore::Text::recalcStyle): Properly handle the case of a reattached node.
16361         * html/HTMLEmbedElement.h:
16362         (WebCore::HTMLEmbedElement::canLazyAttach): Refuse lazy attach, since
16363         plugins and frames do important work at rederer creation time.
16364         * html/HTMLFrameElementBase.h:
16365         (WebCore::HTMLFrameElementBase::canLazyAttach): Refuse lazy attach, since
16366         plugins and frames do important work at rederer creation time.
16367         * html/HTMLFrameSetElement.cpp:
16368         (WebCore::HTMLFrameSetElement::recalcStyle): Change order so that
16369         reattach works properly.
16370         * html/HTMLObjectElement.h:
16371         (WebCore::HTMLObjectElement::canLazyAttach): Refuse lazy attach, since
16372         plugins and frames do important work at rederer creation time.
16373         * html/HTMLOptGroupElement.cpp:
16374         (WebCore::HTMLOptGroupElement::insertBefore): Pass along extra param.
16375         (WebCore::HTMLOptGroupElement::replaceChild): ditto
16376         (WebCore::HTMLOptGroupElement::appendChild): ditto
16377         * html/HTMLOptGroupElement.h:
16378         * html/HTMLSelectElement.cpp:
16379         (WebCore::HTMLSelectElement::insertBefore): Pass along extra param.
16380         (WebCore::HTMLSelectElement::replaceChild): ditto
16381         (WebCore::HTMLSelectElement::appendChild): ditto
16382         * html/HTMLSelectElement.h:
16383         * svg/SVGLocatable.cpp:
16384         (WebCore::SVGLocatable::getBBox): Add missing updateLayout call.
16385         * svg/SVGTextContentElement.cpp:
16386         (WebCore::SVGTextContentElement::getNumberOfChars): ditto
16387         (WebCore::SVGTextContentElement::getComputedTextLength): ditto
16388         (WebCore::SVGTextContentElement::getSubStringLength): ditto
16389         (WebCore::SVGTextContentElement::getStartPositionOfChar): ditto
16390         (WebCore::SVGTextContentElement::getEndPositionOfChar): ditto
16391         (WebCore::SVGTextContentElement::getExtentOfChar): ditto
16392         (WebCore::SVGTextContentElement::getRotationOfChar): ditto
16393         (WebCore::SVGTextContentElement::getCharNumAtPosition): ditto
16394
16395 2008-05-28  Ada Chan  <adachan@apple.com>
16396
16397         <rdar://problem/5957036> REGRESSION (r31960): 20-30% slowdown in i-Bench JavaScript test on XP Home
16398         Conditionalize the timer latency change (r31960) only for vista since it does not
16399         help xp anyway.
16400
16401         Reviewed by Steve Falkenburg.
16402
16403         * platform/win/SharedTimerWin.cpp:
16404         (WebCore::isRunningOnVistaOrLater):
16405         (WebCore::TimerWindowWndProc):
16406         (WebCore::setSharedTimerFireTime):
16407
16408 2008-05-28  Anders Carlsson  <andersca@apple.com>
16409
16410         Build fix.
16411         
16412         * storage/LocalStorage.cpp:
16413         (WebCore::LocalStorage::scheduleImport):
16414
16415 2008-05-28  Anders Carlsson  <andersca@apple.com>
16416
16417         Reviewed by Tim.
16418
16419         <rdar://problem/5965960>
16420         CrashTracer: [USER] 4 crashes in Safari at libxml2.2.dylib: xmlGenericErrorDefaultFunc + 76
16421         
16422         Turns out that while libxml has two different error callbacks, they both use the same context, so we need to 
16423         set both error callbacks to prevent one of the error callbacks from using the context as a FILE pointer.
16424         
16425         * xml/XSLStyleSheet.cpp:
16426         (WebCore::XSLStyleSheet::parseString):
16427         * xml/XSLTProcessor.cpp:
16428         (WebCore::XSLTProcessor::genericErrorFunc):
16429         (WebCore::docLoaderFunc):
16430         * xml/XSLTProcessor.h:
16431
16432 2008-05-28  Brady Eidson  <beidson@apple.com>
16433
16434         Reviewed by Adam
16435
16436         Fix hang I introduced to WebKit clients without their LocalStorage paths set
16437         Such as DRT...
16438
16439         * storage/LocalStorage.cpp:
16440         (WebCore::LocalStorage::scheduleImport): Return a bool, namely to signify
16441           whether or not there is a LocalStorageThread to schedule the import on.
16442         * storage/LocalStorage.h:
16443
16444         * storage/LocalStorageArea.cpp:
16445         (WebCore::LocalStorageArea::LocalStorageArea): If the scheduleImport failed,
16446           mark the imported flag as true so the LocalStorageArea doesn't wait around
16447           locking the main thread.
16448
16449 2008-05-28  Anthony Ricaud  <rik24d@gmail.com>
16450
16451         User stylesheets are now non-editable and displayed as user-stylesheets
16452
16453         <https://bugs.webkit.org/show_bug.cgi?id=17602>
16454         <rdar://problem/5967637>
16455
16456         Reviewed by Tim Hatcher.
16457
16458         * English.lproj/localizedStrings.js: Added a string
16459         * page/inspector/StylesSidebarPane.js:
16460
16461 2008-05-28  Anders Carlsson  <andersca@apple.com>
16462
16463         Reviewed by Mitz.
16464
16465         <rdar://problem/5819989> 
16466         Crash in WebKit!KJS::Window::printErrorMessage quitting Safari after pop up window on uk.real.com was closed
16467
16468         Add null check for Frame::settings().
16469         
16470         * bindings/js/JSDOMWindowBase.cpp:
16471         (WebCore::JSDOMWindowBase::printErrorMessage):
16472
16473 2008-05-27  Geoffrey Garen  <ggaren@apple.com>
16474
16475         Reviewed by Tim Hatcher.
16476
16477         Fixed https://bugs.webkit.org/show_bug.cgi?id=19183
16478         REGRESSION (r33979): Crash in DebuggerCallFrame::functionName when
16479         clicking button in returnEvent-crash.html
16480         
16481         Added implementations for willExecuteProgram and didExecuteProgram. They
16482         take care to update our call frame when entering and exiting programs,
16483         preventing us from keeping around a stale global frame after executing
16484         a program.
16485         
16486         eval programs now show up as "anonymous function" in a new scope. This
16487         is slightly better than what they used to do -- overwriting the current
16488         scope -- but obviously we can do better.
16489
16490 2008-05-28  Brady Eidson  <beidson@apple.com>
16491
16492         Reviewed by Dan Bernstein
16493
16494         <rdar://problem/5946834> - LocalStorage threads appearing in apps that don't want them.
16495
16496         Decided to fix this bug from a few different avenues to make sure we only create LocalStorage resources
16497         when we *really* want them.
16498
16499         * page/DOMWindow.cpp:
16500         (WebCore::DOMWindow::localStorage): Account for the possibility that the LocalStorage object might be null.
16501
16502         * storage/LocalStorage.cpp:
16503         (WebCore::LocalStorage::LocalStorage): Don't create the thread if there is no path name - we know we'll never
16504           be needing it when there is no file backing us on disk.
16505         (WebCore::LocalStorage::scheduleImport): Null check the thread, as it might not exist.
16506         (WebCore::LocalStorage::scheduleSync): Ditto
16507
16508         * storage/LocalStorageThread.cpp:
16509         (WebCore::LocalStorageThread::localStorageThread): Clear the threadID after termination - clear way to signify
16510           that this thread is truly done.
16511         (WebCore::LocalStorageThread::scheduleImport): ASSERT that the queue is live, and the threadID exists
16512         (WebCore::LocalStorageThread::scheduleSync): Ditto
16513         (WebCore::LocalStorageThread::terminate): Don't schedule termination and wait for it to complete if the thread 
16514           isn't live.
16515
16516 2008-05-28  Alexander Vassilev  <avasilev@voipgate.com>
16517
16518         Reviewed by Kevin Ollivier.
16519
16520         Rescale image to fit the destination rect so that we don't get a crash when drawing
16521         in a destination rect that's bigger than the image rect. Also adds an optimization for
16522         drawing an image that is a solid color.
16523         
16524         https://bugs.webkit.org/show_bug.cgi?id=18465
16525
16526         * platform/graphics/wx/ImageWx.cpp:
16527         (WebCore::BitmapImage::draw):
16528
16529 2008-05-27  Tor Arne Vestbø  <tavestbo@trolltech.com>
16530
16531         Reviewed by Simon
16532
16533         Close the video widget explicitly so we don't hang
16534         when exiting the application.
16535
16536         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
16537         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
16538
16539 2008-05-27  Justin Garcia  <justin.garcia@apple.com>
16540
16541         Reviewed by Oliver.
16542
16543         <rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)
16544         
16545         It wasn't enough to break out of the header, to match other browsers we 
16546         also need to not preserve the typing style.
16547
16548         * editing/InsertParagraphSeparatorCommand.cpp:
16549         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion):
16550         (WebCore::InsertParagraphSeparatorCommand::doApply):
16551         * editing/InsertParagraphSeparatorCommand.h:
16552
16553 2008-05-27  Timothy Hatcher  <timothy@apple.com>
16554
16555         <rdar://problem/5966961> REGRESSION: Font previews in the Web
16556         Inspector always show in Lucida Grande (not the real font)
16557
16558         Reviewed by Adam Roben.
16559
16560         * page/inspector/FontView.js: Add a style element that loads the
16561         @font-face rule that is excepted by the preview element.
16562
16563 2008-05-27  Timothy Hatcher  <timothy@apple.com>
16564
16565         Fixes a regression where the Image and Font preview views do not
16566         size correctly.
16567
16568         <rdar://problem/5966723> REGRESSION (r33991): Image and font previews
16569         are shrunken and can't be made larger (19281)
16570
16571         Reviewed by Adam Roben.
16572
16573         * page/inspector/FontView.js: Adjust the font size based only on the
16574         container width minus padding.
16575         * page/inspector/inspector.css: Updated styles for the image and
16576         font views.
16577
16578 2008-05-27  Adam Roben  <aroben@apple.com>
16579
16580         Fix Bug 19276: XHR resources are classified as "Other" until Inspector
16581         is closed and reopened
16582
16583         <https://bugs.webkit.org/show_bug.cgi?id=19276>
16584         <rdar://problem/5965742>
16585
16586         Reviewed by Tim Hatcher.
16587
16588         * page/InspectorController.cpp:
16589         (WebCore::InspectorController::updateScriptResourceResponse): Moved
16590         code that updates the resource's type from here...
16591         (WebCore::InspectorController::updateScriptResourceType): ...to here.
16592         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
16593         Call updateScriptResourceType now that we know this resource was
16594         retrieved via an XHR.
16595         * page/InspectorController.h:
16596
16597 2008-05-27  Timothy Hatcher  <timothy@apple.com>
16598
16599         Removes a redundant call to InspectorController::stopDebugging().
16600
16601         Rubber-stamped by Adam Roben.
16602
16603         * page/InspectorController.cpp:
16604         (WebCore::InspectorController::showWindow):
16605
16606 2008-05-27  Kevin McCullough  <kmccullough@apple.com>
16607
16608         Reviewed by Tim.
16609
16610         - Added and updated some manual test for the profiler.
16611
16612         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html:
16613         * manual-tests/inspector/profiler-test-apply.html:
16614         * manual-tests/inspector/profiler-test-call.html:
16615         * manual-tests/inspector/profiler-test-deep-recursion.html: Added.
16616         * manual-tests/inspector/profiler-test-simple-event-call.html: Added.
16617
16618 2008-05-27  Kevin Ollivier  <kevino@theolliviers.com>
16619
16620         wx build fix. Accidently left a couple fixes out of the previous commit.
16621
16622         * webcore-base.bkl:
16623
16624 2008-05-27  Kevin Ollivier  <kevino@theolliviers.com>
16625
16626         wx build fix. Adding JSHTMLElementWrapperFactory.cpp.
16627         
16628         * WebCoreSources.bkl:
16629
16630 2008-05-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
16631
16632         Reviewed by Simon.
16633
16634         Fix linking error (missing gdi32 and user32 libraries).
16635
16636         * WebCore.pro:
16637
16638 2008-05-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
16639
16640         Reviewed by Simon.
16641
16642         Update the WebKit.qrc so that Web Inspector is functional again.
16643
16644         * page/inspector/WebKit.qrc:
16645
16646 2008-05-26  Alp Toker  <alp@nuanti.com>
16647
16648         Reviewed by Anders.
16649
16650         http://bugs.webkit.org/show_bug.cgi?id=16495
16651         [GTK] Accessibility support with ATK/AT-SPI
16652
16653         Implement basic action, text and editable text accessibility.
16654
16655         Provide utility functions to simplify const string return and casting
16656         and add some more stubs.
16657
16658         It's now possible to navigate and manipulate forms and text using
16659         assistive technologies.
16660
16661         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
16662         (returnString):
16663         (core):
16664         * platform/gtk/LocalizedStringsGtk.cpp:
16665         (WebCore::AXButtonActionVerb):
16666         (WebCore::AXRadioButtonActionVerb):
16667         (WebCore::AXTextFieldActionVerb):
16668         (WebCore::AXCheckedCheckBoxActionVerb):
16669         (WebCore::AXUncheckedCheckBoxActionVerb):
16670         (WebCore::AXLinkActionVerb):
16671         (WebCore::imageTitle):
16672
16673 2008-05-25  Maciej Stachowiak  <mjs@apple.com>
16674
16675         Reviewed by Anders.
16676
16677         - bind the window's "document" and "window" properties to static slots
16678         1.7% speedup on Acid3 test 26
16679         
16680         Only the "document" part matters for Acid3, but since I was doing
16681         this anyway, "window" also seemed like a good one to optimize.
16682
16683         * bindings/js/JSDOMWindowBase.cpp:
16684         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Allocate variable
16685         slots for document and window; but just put null in the document
16686         slot for now.
16687         (WebCore::JSDOMWindowBase::updateDocument): Fill in the document
16688         slot.        
16689         (WebCore::JSDOMWindowBase::~JSDOMWindowBase): Make our shell stop
16690         tracking us.
16691         * bindings/js/JSDOMWindowBase.h:
16692         * bindings/js/JSDOMWindowShell.cpp:
16693         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Allocate HashSet
16694         for our still-not-dead inner windows.
16695         (WebCore::JSDOMWindowShell::updateDocument): Update all our
16696         inner windows ever (to make sure the update to the document
16697         property shows up everywhere).
16698         * bindings/js/JSDOMWindowShell.h:
16699         (WebCore::JSDOMWindowShell::setWindow): Update our hash.
16700         (WebCore::JSDOMWindowShell::clearFormerWindow): Ditto.
16701         * bindings/js/JSDocumentCustom.cpp:
16702         (WebCore::toJS): Don't set self as a property map property of
16703         the window, this is no longer necessary.
16704         * bindings/js/kjs_proxy.cpp:
16705         (WebCore::KJSProxy::initScript): Update document for the
16706         newly created window.
16707         * bindings/js/kjs_proxy.h:
16708         * page/Frame.cpp:
16709         (WebCore::Frame::setDocument): If the document is not null,
16710         update our window.
16711
16712 2008-05-26  Anders Carlsson  <andersca@apple.com>
16713
16714         Reviewed by Sam.
16715
16716         This patch does two things:
16717         
16718         * It adds a toJSNewlyCreated function for creating JS wrappers for nodes where we know
16719         that the node doesn't have a wrapper. This avoids a hash lookup.
16720         
16721         * It adds toJSNewlyCreated methods for JSElement and JSText. 
16722         
16723         All in all this is a 4.3% speedup on Acid 3 test 26.
16724         
16725         * WebCore.vcproj/WebCore.vcproj:
16726         * WebCore.xcodeproj/project.pbxproj:
16727         * bindings/js/JSElementCustom.cpp:
16728         (WebCore::toJSNewlyCreated):
16729         * bindings/js/JSNodeCustom.cpp:
16730         (WebCore::createWrapper):
16731         (WebCore::toJSNewlyCreated):
16732         (WebCore::toJS):
16733         * bindings/js/JSTextCustom.cpp: Added.
16734         (WebCore::toJSNewlyCreated):
16735         * bindings/scripts/CodeGeneratorJS.pm:
16736         * dom/Document.idl:
16737
16738 2008-05-26  Sam Weinig  <sam@webkit.org>
16739
16740         Reviewed by Anders Carlsson.
16741
16742         Inline the getOwnPropertySlot for JSNode, JSEventTargetNode, JSElement,
16743         and JSDocument for a 1-2% speedup on Acid 3 test 26.
16744
16745         * bindings/js/JSEventTargetNode.cpp:
16746         * bindings/js/JSEventTargetNode.h:
16747         (WebCore::JSEventTargetNode::getOwnPropertySlot):
16748         (WebCore::JSEventTargetNode::getValueProperty):
16749         (WebCore::JSEventTargetNode::put):
16750         (WebCore::JSEventTargetNode::putValueProperty):
16751         * bindings/scripts/CodeGeneratorJS.pm:
16752         * dom/Document.idl:
16753         * dom/Element.idl:
16754         * dom/Node.idl:
16755
16756 2008-05-26  Darin Adler  <darin@apple.com>
16757
16758         Reviewed by Maciej.
16759
16760         - https://bugs.webkit.org/show_bug.cgi?id=19239
16761
16762         Removed code that would only useful if if there was any way to create an Entity
16763         node or if we populated EntityReference nodes. It's likely that we'll remove
16764         these node types entirely in some future version of WebKit, depending in part
16765         on what happens with these in HTML 5.
16766
16767         1.8% speedup of Acid3 test 26.
16768
16769         The only read-only nodes we ever create are EntityReference nodes.
16770         These are only created by explicit calls to the Document.createEntityReference
16771         function. Since the created nodes are read-only, there can be no children of
16772         these nodes, so no other types of nodes can be read-only despite the rule that
16773         makes descendants of Entity and EntityReference nodes read-only.
16774
16775         * bindings/objc/DOM.mm: Removed unneeded include.
16776
16777         * dom/Attr.cpp:
16778         (WebCore::Attr::setValue): Removed unnecessary isReadOnlyNode check.
16779         (WebCore::Attr::setNodeValue): Ditto.
16780         * dom/CharacterData.cpp:
16781         (WebCore::CharacterData::setData): Removed unnecessary isReadOnlyNode check.
16782         (WebCore::CharacterData::substringData): Don't initialize the ec variable before
16783         calling checkCharDataOperation, since that function already does it.
16784         (WebCore::CharacterData::appendData): Removed unnecessary isReadOnlyNode check.
16785         (WebCore::CharacterData::insertData): Don't initialize ec.
16786         (WebCore::CharacterData::deleteData): Ditto.
16787         (WebCore::CharacterData::replaceData): Ditto.
16788         (WebCore::CharacterData::setNodeValue): Removed now-misleading comment.
16789         (WebCore::CharacterData::checkCharDataOperation): Removed unnecessary
16790         isReadOnlyNode check.
16791         * dom/CharacterData.h: Made checkCharDataOperation private and non-virtual
16792         since it's never used or defined in any other class.
16793
16794         * dom/Element.cpp:
16795         (WebCore::Element::setAttribute): Removed unneeded isReadOnlyNode check.
16796
16797         * dom/Entity.cpp: Removed the entire contents of this file.
16798
16799         * dom/Entity.h: Replaced the class with a stub -- just enough to keep the
16800         public bindings (JavaScript and Objective-C compiling), but the class is
16801         abstract and can't be instantianted.
16802
16803         * dom/EntityReference.cpp: Removed unused constructor.
16804         (WebCore::EntityReference::cloneNode): Removed unneeded code and comments
16805         to clone nonexistent child nodes.
16806         * dom/EntityReference.h: Removed unused constructor and unnecessary override
16807         of childTypeAllowed, since no children are allowed at all.
16808
16809         * dom/NamedAttrMap.cpp:
16810         (WebCore::NamedAttrMap::setNamedItem): Removed unneeded isReadOnlyNode check.
16811         (WebCore::NamedAttrMap::removeNamedItem): Ditto.
16812         * dom/NamedAttrMap.h: Removed isReadOnlyNode function.
16813
16814         * dom/Node.cpp: Removed the old isReadOnlyNode function. It made lots of
16815         virtual nodeType function calls.
16816         * dom/Node.h:
16817         (WebCore::Node::isReadOnlyNode): Replaced the old virtual isReadOnlyNode
16818         function with a new simple non-virtual one.
16819
16820         * dom/ProcessingInstruction.cpp:
16821         (WebCore::ProcessingInstruction::setData): Removed unneeded isReadOnlyNode
16822         check.
16823
16824         * dom/Text.cpp:
16825         (WebCore::Text::splitText): Removed unneeded isReadOnlyNode check.
16826         (WebCore::Text::replaceWholeText): Removed unnecessary isReadOnlyNode assertion.
16827         There is no reason for this function to go out of its way to mention the
16828         read-only node issue when none of the other DOM mutation functions do.
16829
16830 2008-05-26  Adam Barth  <abarth@webkit.org>
16831
16832         Reviewed by Sam.
16833
16834         Cleanup SecurityOrigin::canAccess.  Removed comment referring to an
16835         old version of the code.  Removed some useless code.
16836
16837         * platform/SecurityOrigin.cpp:
16838         (WebCore::SecurityOrigin::canAccess):
16839
16840 2008-05-26  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
16841
16842         Reviewed by Alp Toker.
16843
16844         * platform/gtk/LocalizedStringsGtk.cpp:
16845         (WebCore::contextMenuItemTagSelectAll): Fix GTK+ version check.
16846
16847 2008-05-25  Chris Fleizach  <cfleizach@apple.com>
16848
16849         Reviewed by David Harrison
16850
16851         <rdar://problem/3582905> elements on separate pages need to be distinct
16852
16853         * page/AccessibilityListBox.h:
16854         * page/AccessibilityObject.h:
16855         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
16856         * page/AccessibilityRenderObject.cpp:
16857         * page/AccessibilityRenderObject.h:
16858
16859 2008-05-25  Maciej Stachowiak  <mjs@apple.com>
16860
16861         Reviewed by Darin.
16862
16863         - don't repaint nodes that are removed before layout
16864         4.3% speedup on Acid3 test 26
16865
16866         Mitz points out the new flag can also be used to optimize other
16867         cases of needless repaint such as
16868         <https://bugs.webkit.org/show_bug.cgi?id=15129>.
16869         
16870         * rendering/RenderContainer.cpp:
16871         (WebCore::RenderContainer::removeChildNode): If the child has never had a layout,
16872         don't bother to repaint it, since there's nothing to dirty.
16873         * rendering/RenderObject.cpp:
16874         (WebCore::RenderObject::RenderObject): Initialize m_everHadLayout to false.
16875         (WebCore::RenderObject::setNeedsLayout): Set m_everHadLayout to true if we
16876         are being marked as not needing layout.
16877         * rendering/RenderObject.h:
16878
16879 2008-05-25  Dan Bernstein  <mitz@apple.com>
16880
16881         Reviewed by Darin Adler.
16882
16883         - fix https://bugs.webkit.org/show_bug.cgi?id=19086
16884           <rdar://problem/5962254> REGRESSION (r28519-r28535): Caret doesn't paint past the right edge of a block
16885
16886         Test: fast/repaint/caret-outside-block.html
16887
16888         * editing/SelectionController.cpp:
16889         (WebCore::repaintRectForCaret): Restored this function which was removed
16890         in r28523, but changed it to inflate only the width.
16891         (WebCore::SelectionController::caretRepaintRect): Changed back to use
16892         repaintRectForCaret().
16893         (WebCore::SelectionController::recomputeCaretRect): Ditto.
16894
16895 2008-05-25  Marco Barisione  <marco.barisione@collabora.co.uk>
16896
16897         Reviewed by Alp Toker.
16898
16899         http://bugs.webkit.org/show_bug.cgi?id=18940
16900         [CURL] Allow \n as line terminator for headers
16901
16902         The line terminator for message-header fields should be CRLF. However,
16903         it is recommended to recognise as a line terminator also a single LF.
16904
16905         * platform/network/curl/ResourceHandleManager.cpp:
16906         (WebCore::headerCallback): Allow headers to be terminated by "\n" and
16907         not just by "\r\n".
16908
16909 2008-05-25  Jan Michael Alonzo  <jmalonzo@webkit.org>
16910
16911         Reviewed by Alp Toker.
16912
16913         WARNING: NO TEST CASES ADDED OR CHANGED
16914
16915         http://bugs.webkit.org/show_bug.cgi?id=19142
16916         [Gtk] Remove build options --svg-experimental and --cross-document-messaging
16917
16918         * GNUmakefile.am:
16919
16920 2008-05-24  Rob Buis  <buis@kde.org>
16921
16922         Reviewed by Eric.
16923
16924         https://bugs.webkit.org/show_bug.cgi?id=18927
16925         Unify path data debug output
16926
16927         Implement unified path data output for Mac svg tests.
16928
16929         * platform/graphics/cg/PathCG.cpp:
16930         (WebCore::CGPathToCFStringApplierFunction):
16931         (WebCore::CFStringFromCGPath):
16932
16933 2008-05-24  Timothy Hatcher  <timothy@apple.com>
16934
16935         Fixes a huge leak with the Inspector where it was protecting
16936         a large object that was not being unprotected.
16937
16938         <rdar://problem/5961999> Inspector protects a large JavaScript
16939         object and never unprotects it (large leak)
16940
16941         Reviewed by Darin Adler.
16942
16943         * page/InspectorController.cpp:
16944         (WebCore::InspectorController::inspectedPageDestroyed): Call close()
16945         and removed a call to stopDebugging() and moved it to close().
16946         (WebCore::InspectorController::close): Add stopDebugging() and
16947         stopUserInitiatedProfiling(). Removed an ASSERT and added an
16948         if statement before calling JSValueUnprotect. We don't always have
16949         a m_scriptContext and m_scriptObject.
16950
16951 2008-05-24  Alp Toker  <alp@nuanti.com>
16952
16953         Win32/gcc3 build fix in Pango font backend. UChar needs to be
16954         explicitly cast to gunichar2.
16955
16956         * platform/graphics/gtk/FontGtk.cpp:
16957         (WebCore::utf16_to_utf8):
16958
16959 2008-05-24  Timothy Hatcher  <timothy@apple.com>
16960
16961         Fixes a crash where a new Inspector would get an old
16962         JSInspectedObjectWrapper for a user agent CSSStyleDeclaration.
16963         Since these style objects shared between pages, the wrapper cache
16964         would have a wrapper for the object still. But the wrapper was
16965         for a previous global object and with a disconnected frame. This
16966         fixes the wrapper cache so wrappers are remembered per global object
16967         and the object they are wrapping.
16968
16969         <rdar://problem/5958567> repro crash in WebCore::Frame::keepAlive()
16970         opening inspector window after closing it
16971
16972         Reviewed by Darin Adler.
16973
16974         * bindings/js/JSInspectedObjectWrapper.cpp:
16975         (WebCore::wrappers): Return a GlobalObjectWrapperMap reference.
16976         (WebCore::JSInspectedObjectWrapper::wrap): Find the WrapperMap
16977         by the dynamicGlobalObject then find the wrapper for unwrappedObject.
16978         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Changes
16979         how the wrapper is added to the wrapper cache.
16980         (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Changes
16981         how the wrapper is removed from the wrapper cache.
16982         * bindings/js/JSQuarantinedObjectWrapper.h:
16983         (WebCore::JSQuarantinedObjectWrapper:unwrappedGlobalObject): Added.
16984
16985 2008-05-24  Alexey Proskuryakov  <ap@webkit.org>
16986
16987         Reviewed by Maciej.
16988
16989         Optimize Node::textContent() to avoid O(n^2) string appending behavior.
16990
16991         1.6% speedup at Acid3 test 26.
16992
16993         * WebCore.xcodeproj/project.pbxproj:
16994         * GNUmakefile.am:
16995         * WebCore.pro:
16996         * WebCoreSources.bkl:
16997         * WebCore.vcproj/WebCore.vcproj:
16998         * platform/text/StringBuilder.cpp: Added.
16999         (WebCore::StringBuilder::append):
17000         (WebCore::StringBuilder::toString):
17001         * platform/text/StringBuilder.h: Added.
17002         (WebCore::StringBuilder::StringBuilder):
17003         (WebCore::StringBuilder::isNull):
17004         Added a simple class to efficiently build a string by appending. Potentially, it can be
17005         extended to be more like java.lang.StringBuilder, but we don't need that much flexibility now.
17006
17007         * dom/Node.cpp:
17008         (WebCore::Node::appendTextContent):
17009         (WebCore::Node::textContent):
17010         * dom/Node.h:
17011         Changed to use StringBuilder.
17012
17013 2008-05-24  Julien Chaffraix  <jchaffraix@webkit.org>
17014
17015         Reviewed by Eric.
17016
17017         Bug 9191: JS*ElementWrapperFactory should be autogenerated
17018         https://bugs.webkit.org/show_bug.cgi?id=9191
17019
17020         This is a first pass for generation of JS*ElementWrapperFactory, in the long term we should move the make_names.pl
17021         intelligence to the *.in files.
17022
17023         - Add a new parameter to make_names.pl --wrapperFactory which works like --wrapper but generates the
17024         JS*ElementWrapperFactory files.
17025
17026         - Removed JS*ElementWrapperFactory files in WebCore/bindings/js, replaced by the generated ones.
17027
17028         - Updated the build systems to account for the previous changes.
17029
17030         * DerivedSources.make:
17031         * GNUmakefile.am:
17032         * WebCore.pro:
17033         * WebCore.vcproj/WebCore.vcproj:
17034         * WebCore.xcodeproj/project.pbxproj:
17035         * WebCoreSources.bkl:
17036         * bindings/js/JSHTMLElementWrapperFactory.cpp: Removed.
17037         * bindings/js/JSHTMLElementWrapperFactory.h: Removed.
17038         * bindings/js/JSSVGElementWrapperFactory.cpp: Removed.
17039         * bindings/js/JSSVGElementWrapperFactory.h: Removed.
17040         * dom/make_names.pl:
17041
17042 2008-05-24  Oleg Finkelshteyn <olegfink@gmail.com>
17043
17044         Rubber-stamped and landed by Alexey.
17045
17046         Build fix for gcc 4.3.
17047
17048         * WebCore/page/Console.cpp:
17049         Add missing standard includes.
17050
17051 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17052
17053         Fixes a bug where a timer would keep firing after the Inspector
17054         was closed. It turns out this timer wasn't needed anymore now
17055         that we can add an event listener to the inspected page and have
17056         it get called in the Inspector's context.
17057
17058         https://bugs.webkit.org/show_bug.cgi?id=18577
17059
17060         Reviewed by Mark Rowe.
17061
17062         * page/inspector/ElementsPanel.js:
17063
17064 2008-05-23  Anthony Ricaud  <rik24d@gmail.com>
17065
17066         Changes the largerResourcesButton tooltip to toggle.
17067
17068         https://bugs.webkit.org/show_bug.cgi?id=19210
17069
17070         Reviewed by Tim Hatcher.
17071
17072         * WebCore/English.lproj/localizedStrings.js: New string and clean an
17073         double string "Dock to main window."
17074         * WebCore/page/inspector/ResourcesPanel.js: Toggle the tooltip and
17075         change the default tooltip
17076
17077 2008-05-23  Justin Garcia  <justin.garcia@apple.com>
17078
17079         Reviewed by Darin.
17080
17081         <rdar://problem/5939887> REGRESSION: With no selection, copy does not fire oncopy handler (affects CIFilterBrowser widget)
17082         
17083         Execute cut, copy and paste if they are invoked explicitly, via execCommand or -[WebView copy:], even
17084         if they are disabled.  This will fire oncopy, oncut and onpaste, but won't perform any other work, like
17085         writing to the pasteboard during cut/copy or deleting the selection during cut/paste.  This matches FF3,
17086         which actually goes further and fires oncopy on any Command-C.
17087         
17088         * editing/EditorCommand.cpp:
17089         (WebCore::CommandEntry::):
17090         (WebCore::Editor::Command::execute):
17091
17092 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17093
17094         Adds a percentage toggle button the profile view status bar that
17095         changes the time columns between absolute and percents.
17096
17097         https://bugs.webkit.org/show_bug.cgi?id=19224
17098
17099         Reviewed by Kevin McCullough.
17100
17101         * English.lproj/localizedStrings.js: New strings.
17102         * page/inspector/Images/percentButtons.png: Added.
17103         * page/inspector/ProfileView.js: Make the button and add it to the
17104         status bar. Make clicking toggle the showAsPercent* properties.
17105         * page/inspector/inspector.css: New styles.
17106
17107 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17108
17109         Fixes a bug where excluding nodes from the profile could
17110         show an empty parent node.
17111
17112         <rdar://problem/5959573> Excluding nodes from the profile could show
17113         an empty parent node
17114
17115         Reviewed by Kevin McCullough.
17116
17117         * page/inspector/ProfileView.js: Only say we have children if
17118         all of our children nodes are visible.
17119
17120 2008-05-23  Anders Carlsson  <andersca@apple.com>
17121
17122         Reviewed by Adam.
17123
17124         Add IconFetcher to project.
17125         
17126         * WebCore.vcproj/WebCore.vcproj:
17127
17128 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17129
17130         Fixes a bug where the Web Insepctor would jump back to
17131         Elements each time it is opened instead of staying at the
17132         last selected panel.
17133
17134         <rdar://problem/5959475> Inspector jumps to the Elements panel
17135         each time it is opened, instead of staying at the previous panel
17136
17137         Reviewed by Adam Roben.
17138
17139         * page/InspectorController.cpp:
17140         (WebCore::InspectorController::setWindowVisible): Reset
17141         m_showAfterVisible to CurrentPanel, so the next time setWindowVisible
17142         is called it will use CurrentPanel unless showPanel was called again.
17143
17144 2008-05-23  chris fleizach  <cfleizach@apple.com>
17145
17146         Reviewed by Darin Adler.
17147
17148         <rdar://problem/5933759> REGRESSION: Frames don't appear as AX children of the top level web area
17149
17150         * page/AccessibilityRenderObject.cpp:
17151         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
17152
17153 2008-05-23  Ariya Hidayat  <ariya.hidayat@trolltech.com>
17154
17155         Reviewed by Simon.
17156
17157         For Qt port, support painting to native Windows HDC.
17158
17159         * platform/graphics/GraphicsContext.h:
17160         * platform/graphics/qt/GraphicsContextQt.cpp:
17161         (WebCore::GraphicsContext::getWindowsContext):
17162         (WebCore::GraphicsContext::releaseWindowsContext):
17163
17164 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17165
17166         Fixes a bug where the Inspector could have 0ms timers firing
17167         even after it is closed.
17168
17169         https://bugs.webkit.org/show_bug.cgi?id=18577
17170
17171         Reviewed by Oliver Hunt.
17172
17173         * page/inspector/DatabasesPanel.js: Removes setTimeouts that call
17174         the same function with a 0ms delay. These we not doing any good anyway,
17175         so they weren't needed and just caused problems.
17176         * page/inspector/ElementsPanel.js: Ditto.
17177         * page/inspector/ProfilesPanel.js: Ditto.
17178         * page/inspector/ResourcesPanel.js: Ditto.
17179
17180 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17181
17182         Make the Inspector correctly populate the profiles when
17183         closed and re-opened.
17184
17185         Reviewed by Adam Roben.
17186
17187         * page/InspectorController.cpp:
17188         (WebCore::InspectorController::populateScriptObjects): Call populateInterface
17189         in inspector.js.
17190         * page/inspector/ProfilesPanel.js:
17191         (WebInspector.ProfilesPanel.prototype.populateInterface): If visible,
17192         call _populateProfiles. Else just set this._shouldPopulateProfiles to true.
17193         (WebInspector.ProfilesPanel.prototype.reset): Don't call _populateProfiles.
17194         Just set this._shouldPopulateProfiles to true.
17195         (WebInspector.ProfilesPanel.prototype._populateProfiles): Delete
17196         this._shouldPopulateProfiles.
17197         * page/inspector/inspector.js:
17198         (WebInspector.populateInterface): Added. Call populateInterface on all the
17199         panels if they implement it.
17200
17201 2008-05-23  Kevin McCullough  <kmccullough@apple.com>
17202
17203         RS = Adam.
17204
17205         Editorial changes
17206
17207         * manual-tests/inspector/profiler-test-apply.html:
17208         * manual-tests/inspector/profiler-test-document-dot-write.html:
17209         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html:
17210         * manual-tests/inspector/profiler-test-one-execution-context.html:
17211         * manual-tests/inspector/profiler-test-two-execution-contexts.html:
17212
17213 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17214
17215         Fixes the bug where the profile was not added when finished.
17216
17217         <rdar://problem/5958851> Stop Profiling from the Develop menu does
17218         not add the Profile to the Inspector
17219
17220         Reviewed by Adam Roben.
17221
17222         * page/InspectorController.cpp:
17223         (WebCore::InspectorController::stopUserInitiatedProfiling): Call
17224         addProfile with the result of stopProfiling.
17225
17226 2008-05-23  Timothy Hatcher  <timothy@apple.com>
17227
17228         Tweak the Web Insector toolbar look to be smaller when attached to
17229         the inspected page.
17230
17231         Reviewed by Adam Roben.
17232
17233         * page/inspector/inspector.css:
17234
17235 2008-05-23  Simon Hausmann  <hausmann@webkit.org>
17236
17237         Fix compilation without accessibility by providing an empty stub for
17238         AXObjectCache::handleAriaRoleChanged.
17239
17240         * page/AXObjectCache.h:
17241
17242 2008-05-23  Alice Liu  <alice.liu@apple.com>
17243
17244         Reviewed by Mark Rowe.
17245
17246         Remove call to function whose body was commented out. Returning the
17247         children for a menu button by the normal calculation works just as well. 
17248
17249         * page/AccessibilityRenderObject.cpp:
17250         (WebCore::AccessibilityRenderObject::addChildren):
17251         * page/AccessibilityRenderObject.h:
17252
17253 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17254
17255         Fixes the bug where resource would show up multiple times in the
17256         Inspector. This happened when a resource was used multiple times or
17257         when the preloader was scanning ahead to fetch resources.
17258
17259         <rdar://problem/5689373> Cached resources re-appear in Web Inspector
17260         for each access (18223)
17261
17262         Reviewed by Adam Roben.
17263
17264         * page/InspectorController.cpp:
17265         (WebCore::InspectorController::addResource): Add the URL to m_knownResources.
17266         (WebCore::InspectorController::removeResource): Remove the URL from m_knownResources
17267         (WebCore::InspectorController::didLoadResourceFromMemoryCache): If the URL
17268         is in m_knownResources, then early return.
17269         * page/InspectorController.h: Added m_knownResources.
17270
17271 2008-05-22  Alice Liu  <alice.liu@apple.com>
17272
17273         Reviewed by Adele, Dan Bernstein.
17274
17275         Fixed <rdar://problem/5943104> Need to implement ARIA role="menu" and related roles
17276         <rdar://problem/5943132> Need to implement ARIA role="menuitem"
17277         <rdar://problem/5943173> Need to implement ARIA role="menubar" 
17278
17279         These changes added a handler for determining the ARIA role when the
17280         attribute changes.  Before we were querying for the attribute over and
17281         over every time we queried for the role.
17282         * dom/Element.cpp:
17283         (WebCore::Element::attributeChanged):
17284         * page/AXObjectCache.cpp:
17285         (WebCore::AXObjectCache::handleAriaRoleChanged):
17286         * page/AXObjectCache.h:
17287
17288         The rest of these changes implement menu, menuitem, and menubar. the last 2 of those
17289         have to, for now, be represented as a Group and MenuButton instead, because AppKit 
17290         won't recognize menubar and menubaritems within apps. 
17291         * page/AccessibilityObject.h:
17292         (WebCore::AccessibilityObject::isMenuRelated):
17293         (WebCore::AccessibilityObject::isMenu):
17294         (WebCore::AccessibilityObject::isMenuBar):
17295         (WebCore::AccessibilityObject::isMenuButton):
17296         (WebCore::AccessibilityObject::isMenuItem):
17297         * page/AccessibilityRenderObject.cpp:
17298         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
17299         (WebCore::AccessibilityRenderObject::parentObject):
17300         (WebCore::AccessibilityRenderObject::isMenuRelated):
17301         (WebCore::AccessibilityRenderObject::isMenu):
17302         (WebCore::AccessibilityRenderObject::isMenuBar):
17303         (WebCore::AccessibilityRenderObject::isMenuButton):
17304         (WebCore::AccessibilityRenderObject::isMenuItem):
17305         (WebCore::siblingWithAriaRole):
17306         (WebCore::AccessibilityRenderObject::menuElementForMenuButton):
17307         (WebCore::AccessibilityRenderObject::menuForMenuButton):
17308         (WebCore::AccessibilityRenderObject::menuItemElementForMenu):
17309         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
17310         (WebCore::AccessibilityRenderObject::title):
17311         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
17312         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
17313         (WebCore::RoleEntry::):
17314         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
17315         (WebCore::AccessibilityRenderObject::setAriaRole):
17316         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
17317         (WebCore::AccessibilityRenderObject::addChildren):
17318         (WebCore::AccessibilityRenderObject::ariaMenuButtonChildren):
17319         * page/AccessibilityRenderObject.h:
17320         * page/mac/AccessibilityObjectWrapper.mm:
17321         (-[AccessibilityObjectWrapper accessibilityActionNames]):
17322         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
17323         (-[AccessibilityObjectWrapper roleDescription]):
17324         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
17325         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
17326
17327 2008-05-22  Adam Roben  <aroben@apple.com>
17328
17329         Make top-level resources show their full URLs again instead of just
17330         "/"
17331
17332         Reviewed by Tim Hatcher.
17333
17334         * page/inspector/Resource.js:
17335         (WebInspector.Resource.prototype.displayName): If the title has gotten
17336         down to just "/", which will happen for, e.g., http://webkit.org/,
17337         just show the entire URL.
17338
17339 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17340
17341         Shorten URLs shown in the Web Inspector to the file name. This makes
17342         finding files in the Console or the Scripts panel easier.
17343
17344         Reviewed by Adam Roben.
17345
17346         * page/inspector/Console.js:
17347         (WebInspector.ConsoleMessage.prototype.get shortURL): Removed dead code.
17348         (WebInspector.ConsoleMessage.prototype.toMessageElement): Call WebInspector.displayNameForURL
17349         for the URL before making the link element.
17350         * page/inspector/ProfileView.js:
17351         (WebInspector.ProfileDataGridNode.prototype.createCell): Use WebInspector.displayNameForURL.
17352         * page/inspector/Resource.js:
17353         (WebInspector.Resource.prototype.get displayName): Use trimURL to
17354         trim the URL with the main resource's domain.
17355         * page/inspector/ScriptsPanel.js:
17356         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use WebInspector.displayNameForURL.
17357         * page/inspector/StylesSidebarPane.js:
17358         (WebInspector.StylePropertiesSection): Ditto.
17359         * page/inspector/inspector.js:
17360         (WebInspector.displayNameForURL): Added.
17361         (WebInspector.resourceForURL): Check for a direct match in resourceURLMap first.
17362
17363 2008-05-22  Adam Roben  <aroben@apple.com>
17364
17365         Fix Bug 19204: Inspector should highlight source lines when following
17366         links to them
17367
17368         <https://bugs.webkit.org/show_bug.cgi?id=19204>
17369
17370         Reviewed by Tim Hatcher.
17371
17372         Test: manual-tests/inspector/highlight-source-line.html
17373
17374         * manual-tests/inspector/highlight-source-line.html: Added.
17375         * page/inspector/ResourcesPanel.js:
17376         (WebInspector.ResourcesPanel.prototype.showResource): Call
17377         highlightLine on the view if that function exists.
17378         * page/inspector/SourceFrame.js:
17379         (WebInspector.SourceFrame.prototype.highlightLine): Added. Adds the
17380         webkit-highlighted-line class to the relevant line, then removes it
17381         after a short delay.
17382         (WebInspector.SourceFrame.prototype._loaded): Added styles for the
17383         highlighted line(s).
17384         * page/inspector/SourceView.js:
17385         (WebInspector.SourceView.prototype.highlightLine): Added. Calls
17386         through to the SourceFrame.
17387
17388 2008-05-22  Rob Buis  <buis@kde.org>
17389
17390         Reviewed by Eric.
17391
17392         https://bugs.webkit.org/show_bug.cgi?id=12053
17393         SVGPathSeg*(Abs|Rel) classses should be combined to reduce code size
17394
17395         Reduce code size through shared base classes.
17396
17397         * svg/SVGPathSeg.h:
17398         (WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
17399         (WebCore::SVGPathSegSingleCoord::setX):
17400         (WebCore::SVGPathSegSingleCoord::x):
17401         (WebCore::SVGPathSegSingleCoord::setY):
17402         (WebCore::SVGPathSegSingleCoord::y):
17403         (WebCore::SVGPathSegSingleCoord::toString):
17404         * svg/SVGPathSegArc.cpp:
17405         (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
17406         (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
17407         * svg/SVGPathSegArc.h:
17408         (WebCore::SVGPathSegArc::SVGPathSegArc):
17409         (WebCore::SVGPathSegArc::toString):
17410         (WebCore::SVGPathSegArc::setX):
17411         (WebCore::SVGPathSegArc::x):
17412         (WebCore::SVGPathSegArc::setY):
17413         (WebCore::SVGPathSegArc::y):
17414         (WebCore::SVGPathSegArc::setR1):
17415         (WebCore::SVGPathSegArc::r1):
17416         (WebCore::SVGPathSegArc::setR2):
17417         (WebCore::SVGPathSegArc::r2):
17418         (WebCore::SVGPathSegArc::setAngle):
17419         (WebCore::SVGPathSegArc::angle):
17420         (WebCore::SVGPathSegArc::setLargeArcFlag):
17421         (WebCore::SVGPathSegArc::largeArcFlag):
17422         (WebCore::SVGPathSegArc::setSweepFlag):
17423         (WebCore::SVGPathSegArc::sweepFlag):
17424         (WebCore::SVGPathSegArcAbs::create):
17425         (WebCore::SVGPathSegArcAbs::pathSegType):
17426         (WebCore::SVGPathSegArcAbs::pathSegTypeAsLetter):
17427         (WebCore::SVGPathSegArcRel::create):
17428         (WebCore::SVGPathSegArcRel::pathSegTypeAsLetter):
17429         * svg/SVGPathSegCurvetoCubic.cpp:
17430         (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
17431         (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
17432         * svg/SVGPathSegCurvetoCubic.h:
17433         (WebCore::SVGPathSegCurvetoCubic::SVGPathSegCurvetoCubic):
17434         (WebCore::SVGPathSegCurvetoCubic::toString):
17435         (WebCore::SVGPathSegCurvetoCubic::setX):
17436         (WebCore::SVGPathSegCurvetoCubic::x):
17437         (WebCore::SVGPathSegCurvetoCubic::setY):
17438         (WebCore::SVGPathSegCurvetoCubic::y):
17439         (WebCore::SVGPathSegCurvetoCubic::setX1):
17440         (WebCore::SVGPathSegCurvetoCubic::x1):
17441         (WebCore::SVGPathSegCurvetoCubic::setY1):
17442         (WebCore::SVGPathSegCurvetoCubic::y1):
17443         (WebCore::SVGPathSegCurvetoCubic::setX2):
17444         (WebCore::SVGPathSegCurvetoCubic::x2):
17445         (WebCore::SVGPathSegCurvetoCubic::setY2):
17446         (WebCore::SVGPathSegCurvetoCubic::y2):
17447         (WebCore::SVGPathSegCurvetoCubicAbs::create):
17448         (WebCore::SVGPathSegCurvetoCubicAbs::pathSegType):
17449         (WebCore::SVGPathSegCurvetoCubicAbs::pathSegTypeAsLetter):
17450         (WebCore::SVGPathSegCurvetoCubicRel::create):
17451         (WebCore::SVGPathSegCurvetoCubicRel::pathSegTypeAsLetter):
17452         * svg/SVGPathSegCurvetoCubicSmooth.cpp:
17453         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
17454         (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
17455         * svg/SVGPathSegCurvetoCubicSmooth.h:
17456         (WebCore::SVGPathSegCurvetoCubicSmooth::SVGPathSegCurvetoCubicSmooth):
17457         (WebCore::SVGPathSegCurvetoCubicSmooth::toString):
17458         (WebCore::SVGPathSegCurvetoCubicSmooth::setX):
17459         (WebCore::SVGPathSegCurvetoCubicSmooth::x):
17460         (WebCore::SVGPathSegCurvetoCubicSmooth::setY):
17461         (WebCore::SVGPathSegCurvetoCubicSmooth::y):
17462         (WebCore::SVGPathSegCurvetoCubicSmooth::setX2):
17463         (WebCore::SVGPathSegCurvetoCubicSmooth::x2):
17464         (WebCore::SVGPathSegCurvetoCubicSmooth::setY2):
17465         (WebCore::SVGPathSegCurvetoCubicSmooth::y2):
17466         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
17467         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegType):
17468         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegTypeAsLetter):
17469         (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
17470         (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegType):
17471         (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegTypeAsLetter):
17472         * svg/SVGPathSegCurvetoQuadratic.cpp:
17473         (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
17474         (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
17475         * svg/SVGPathSegCurvetoQuadratic.h:
17476         (WebCore::SVGPathSegCurvetoQuadratic::SVGPathSegCurvetoQuadratic):
17477         (WebCore::SVGPathSegCurvetoQuadratic::toString):
17478         (WebCore::SVGPathSegCurvetoQuadratic::setX):
17479         (WebCore::SVGPathSegCurvetoQuadratic::x):
17480         (WebCore::SVGPathSegCurvetoQuadratic::setY):
17481         (WebCore::SVGPathSegCurvetoQuadratic::y):
17482         (WebCore::SVGPathSegCurvetoQuadratic::setX1):
17483         (WebCore::SVGPathSegCurvetoQuadratic::x1):
17484         (WebCore::SVGPathSegCurvetoQuadratic::setY1):
17485         (WebCore::SVGPathSegCurvetoQuadratic::y1):
17486         (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
17487         (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegType):
17488         (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegTypeAsLetter):
17489         (WebCore::SVGPathSegCurvetoQuadraticRel::create):
17490         (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegType):
17491         (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegTypeAsLetter):
17492         * svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
17493         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
17494         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
17495         * svg/SVGPathSegCurvetoQuadraticSmooth.h:
17496         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
17497         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegTypeAsLetter):
17498         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
17499         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegTypeAsLetter):
17500         * svg/SVGPathSegLineto.cpp:
17501         (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
17502         (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
17503         * svg/SVGPathSegLineto.h:
17504         (WebCore::SVGPathSegLinetoAbs::create):
17505         (WebCore::SVGPathSegLinetoAbs::pathSegTypeAsLetter):
17506         (WebCore::SVGPathSegLinetoRel::pathSegTypeAsLetter):
17507         * svg/SVGPathSegLinetoHorizontal.cpp:
17508         (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
17509         (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
17510         * svg/SVGPathSegLinetoHorizontal.h:
17511         (WebCore::SVGPathSegLinetoHorizontal::SVGPathSegLinetoHorizontal):
17512         (WebCore::SVGPathSegLinetoHorizontal::toString):
17513         (WebCore::SVGPathSegLinetoHorizontal::setX):
17514         (WebCore::SVGPathSegLinetoHorizontal::x):
17515         (WebCore::SVGPathSegLinetoHorizontalAbs::create):
17516         (WebCore::SVGPathSegLinetoHorizontalAbs::pathSegTypeAsLetter):
17517         (WebCore::SVGPathSegLinetoHorizontalRel::create):
17518         (WebCore::SVGPathSegLinetoHorizontalRel::pathSegTypeAsLetter):
17519         * svg/SVGPathSegLinetoVertical.cpp:
17520         (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
17521         (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
17522         * svg/SVGPathSegLinetoVertical.h:
17523         (WebCore::SVGPathSegLinetoVertical::SVGPathSegLinetoVertical):
17524         (WebCore::SVGPathSegLinetoVertical::toString):
17525         (WebCore::SVGPathSegLinetoVertical::setY):
17526         (WebCore::SVGPathSegLinetoVertical::y):
17527         (WebCore::SVGPathSegLinetoVerticalAbs::create):
17528         (WebCore::SVGPathSegLinetoVerticalAbs::pathSegTypeAsLetter):
17529         (WebCore::SVGPathSegLinetoVerticalRel::create):
17530         (WebCore::SVGPathSegLinetoVerticalRel::pathSegTypeAsLetter):
17531         * svg/SVGPathSegMoveto.cpp:
17532         (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
17533         (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
17534         * svg/SVGPathSegMoveto.h:
17535         (WebCore::SVGPathSegMovetoAbs::create):
17536         (WebCore::SVGPathSegMovetoAbs::pathSegTypeAsLetter):
17537         (WebCore::SVGPathSegMovetoRel::create):
17538         (WebCore::SVGPathSegMovetoRel::pathSegTypeAsLetter):
17539
17540 2008-05-22  Alp Toker  <alp@nuanti.com>
17541
17542         GTK+/DirectFB build fix attempt.
17543
17544         * plugins/PluginDatabase.cpp:
17545         (WebCore::PluginDatabase::isPreferredPluginDirectory):
17546         * plugins/gtk/PluginDatabaseGtk.cpp:
17547         (WebCore::PluginDatabase::isPreferredPluginDirectory):
17548
17549 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17550
17551         Adds Focus, Exclude and Restore buttons to the Profile view
17552         Status bar. Also adds a Record button to create new profiles.
17553
17554         <rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a profile node.
17555         <rdar://problem/5951529> JSProfiler: Allow the profiler to "Exclude" a profile node.
17556
17557         Reviewed by Adam Roben.
17558
17559         * English.lproj/localizedStrings.js: Added new strings.
17560         * page/JavaScriptProfile.cpp:
17561         (WebCore::restoreAll): Call Profile::restoreAll.
17562         (WebCore::ProfileClass): Added restoreAll to the static functions.
17563         * page/inspector/Images/excludeButtons.png: Added.
17564         * page/inspector/Images/focusButtons.png: Added.
17565         * page/inspector/Images/recordButtons.png: Added.
17566         * page/inspector/Images/reloadButtons.png: Added.
17567         * page/inspector/ProfileView.js:
17568         (WebInspector.ProfileView): Create the buttons elements.
17569         (WebInspector.ProfileView.prototype.get statusBarItems): Return the three
17570         status bar buttons.
17571         (WebInspector.ProfileView.prototype.refresh): Only create ProfileDataGridNodes
17572         for ProfileNodes that are visible.
17573         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Just call
17574         refresh on the children, now that they have access to the ProfileView's properties.
17575         (WebInspector.ProfileView.prototype._focusClicked): Call focus
17576         on the profile, refresh the ProfileView and show the reset button.
17577         (WebInspector.ProfileView.prototype._excludeClicked): Call exclude
17578         on the profile, refresh the ProfileView and show the reset button.
17579         (WebInspector.ProfileView.prototype._resetClicked): Call restoreAll
17580         on the profile, refresh the ProfileView and hide the reset button.
17581         (WebInspector.ProfileView.prototype._dataGridNodeSelected): Enable the 
17582         focus and exclude buttons.
17583         (WebInspector.ProfileView.prototype._dataGridNodeDeselected): Disable the
17584         focus and exclude buttons.
17585         (WebInspector.ProfileDataGridNode): Take a ProfileView, and remove the 
17586         showPercentAs* arguments.
17587         * page/inspector/ProfilesPanel.js: Add a record status bar button and
17588         th ability to have per-view status bar buttons.
17589         * page/inspector/inspector.css: New styles.
17590
17591 2008-05-22  Mark Rowe  <mrowe@apple.com>
17592
17593         Reviewed by Tim Hatcher.
17594
17595         <rdar://problem/5956612> ibtool crashes during build
17596
17597         SCDynamicStoreCreate will return null if it cannot create a dynamic store object.  We need
17598         to check for failure rather than continuing with a null store as this results in us
17599         passing a null CFRunLoopSourceRef to CFRunLoopAddSource, which promptly crashes.
17600
17601         * platform/network/mac/NetworkStateNotifierMac.cpp:
17602         (WebCore::NetworkStateNotifier::NetworkStateNotifier): Null check SCDynamicStoreCreate and
17603         SCDynamicStoreCreateRunLoopSource as it is possible for them to fail.
17604
17605 2008-05-22  Adam Roben  <aroben@apple.com>
17606
17607         Add a test for calling a NodeList as a function while profiling
17608
17609         Reviewed by Kevin McCullough.
17610
17611         * manual-tests/inspector/profiler-test-call-nodelist-as-function.html: Added.
17612
17613 2008-05-22  Kevin McCullough  <kmccullough@apple.com>
17614
17615         Rubber stamped by Adam.
17616
17617         -Added new profiler tests.
17618
17619         * manual-tests/inspector/profiler-test-calling-the-function-that-started-the-profiler-from-another-scope.html: Added.
17620         * manual-tests/inspector/profiler-test-constructor.html: Added.
17621         * manual-tests/inspector/profiler-test-document-dot-write.html: Added.
17622         * manual-tests/inspector/profiler-test-simple-no-level-change.html: Added.
17623         * manual-tests/inspector/profiler-test-throw-exception-from-eval.html: Added.
17624         * manual-tests/inspector/profiler-test-window-dot-eval.html: Added.
17625
17626 2008-05-22  Kevin McCullough  <kmccullough@apple.com>
17627
17628         Reviewed by Tim.
17629
17630         <rdar://problem/5951529> JSProfiler: Allow the profiler to "Exclude" a
17631         profile node.
17632         -Expose the 'exclude' function to the WebInspector.
17633         -Also fix a bug with 'focus' and expose whether or not a node is visible
17634
17635         * page/JavaScriptProfile.cpp: Renamed profileClass to have a capital P.
17636         (WebCore::getTitleCallback):
17637         (WebCore::getHeadCallback):
17638         (WebCore::focus): Now correctly compares against a ProfileNodeClass
17639         instead of ProfileClass.
17640         (WebCore::exclude): Expose 'exclude' function to the WebInspector.
17641         (WebCore::ProfileClass):
17642         (WebCore::toJS):
17643         * page/JavaScriptProfileNode.cpp: Declare the ProfileNodeClass in the
17644         header so that ProfileClass can use it.
17645         (WebCore::getVisible): Expose a node's visiblity to the WebInspector.
17646         (WebCore::ProfileNodeClass):
17647         * page/JavaScriptProfileNode.h:
17648
17649 2008-05-22  Sam Weinig  <sam@webkit.org>
17650
17651         Reviewed by Anders Carlsson.
17652
17653         <rdar://problem/5838772> Support cross-site XMLHttpRequest
17654
17655         - Implement support for cross-site non-GET requests using the HTTP header
17656           Access-control mechanism.
17657
17658         Tests: http/tests/xmlhttprequest/access-control-basic-allow-async.html
17659                http/tests/xmlhttprequest/access-control-basic-not-get-allow-async.html
17660                http/tests/xmlhttprequest/access-control-basic-not-get-allow.html
17661
17662         * xml/XMLHttpRequest.cpp:
17663         (WebCore::XMLHttpRequest::XMLHttpRequest):
17664         (WebCore::XMLHttpRequest::send):
17665         Don't continue send if inside the method check preflight (only happens for async).
17666         
17667         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
17668         Add support for non-GET requests, starting off a method check preflight.
17669
17670         (WebCore::XMLHttpRequest::handleAsynchronousMethodCheckResult):
17671         Handler for finishing up after an asynchronous method check has completed.
17672
17673         (WebCore::XMLHttpRequest::didFinishLoading):
17674         (WebCore::XMLHttpRequest::didFinishLoadingMethodCheck):
17675         (WebCore::XMLHttpRequest::didReceiveResponse):
17676         (WebCore::XMLHttpRequest::didReceiveResponseMethodCheck):
17677         (WebCore::XMLHttpRequest::didReceiveData):
17678         Do a limited set of access control when in the method check preflight.
17679         * xml/XMLHttpRequest.h:
17680
17681 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17682
17683         Make sure we don't call findTreeElement with the same representedObject
17684         again, to prevent infinite recursion. Added many comments to this
17685         code so it can be understood later.
17686
17687         https://bugs.webkit.org/show_bug.cgi?id=19164
17688
17689         Reviewed by Adam Roben.
17690
17691         * page/inspector/treeoutline.js:
17692
17693 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17694
17695         Re-word the "Attach Debugger" overlay to never say "Attach". The new
17696         wording is "Start Debugging". This makes the overlay consistent with
17697         other wording used for starting the debugger. Also fixes the tooltips
17698         for the Pause on Exceptions button.
17699
17700         Reviewed by Adam Roben and Dan Bernstein.
17701
17702         * English.lproj/localizedStrings.js: Adds new strings.
17703         * page/inspector/ScriptsPanel.js: Changes the wording. Flips the
17704         tooltips for the Pause on Exceptions buttons so the tooltip says
17705         what will happen when the button is pressed.
17706
17707 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17708
17709         Remove some non-functional elements from the Scripts panel
17710         so they don't confuse users why they aren't working.
17711
17712         Reviewed by Adam Roben.
17713
17714         * page/inspector/ScriptsPanel.js: Removes the back/forward buttons
17715         and the function menu.
17716         * page/inspector/inspector.css: Make the files menu wider since there
17717         is more room now.
17718
17719 2008-05-22  Timothy Hatcher  <timothy@apple.com>
17720
17721         <rdar://problem/5956403> Update the Develop menu to match the new Inspector items
17722
17723         Reviewed by Adam Roben.
17724
17725         * English.lproj/localizedStrings.js:
17726         * WebCore.base.exp:
17727         * page/InspectorController.cpp:
17728         (WebCore::InspectorController::InspectorController):
17729         (WebCore::InspectorController::inspect):
17730         (WebCore::InspectorController::setWindowVisible):
17731         (WebCore::InspectorController::showPanel):
17732         (WebCore::InspectorController::startUserInitiatedProfiling):
17733         (WebCore::InspectorController::stopUserInitiatedProfiling):
17734         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
17735         (WebCore::InspectorController::stopDebugging):
17736         * page/InspectorController.h:
17737         (WebCore::InspectorController::):
17738         (WebCore::InspectorController::isRecordingUserInitiatedProfile):
17739         * page/inspector/ProfilesPanel.js:
17740         * page/inspector/ScriptsPanel.js:
17741         * page/inspector/inspector.js:
17742
17743 2008-05-22  Josh Aas  <joshmoz@gmail.com>
17744
17745         Reviewed by Anders.
17746
17747         <rdar://problem/5956429> 
17748         https://bugs.webkit.org/show_bug.cgi?id=19192
17749         remove NPNVpluginEventModel, fix example plugin
17750         
17751         Remove NPNVpluginEventModel enum variable.
17752         
17753         * bridge/npapi.h:
17754
17755 2008-05-22  Stephanie Lewis  <slewis@apple.com>
17756
17757         Reviewed by Dan.
17758
17759         Fix <rdar://problem/5952405>.  The unbeforeunload count cannot be cleared when it is dispatched because it is possible to be called again.  Clear it after the unload event is dispatched.
17760
17761         Test: fast/events/onunload-clears-onbeforeunload.html
17762
17763         * loader/FrameLoader.cpp:
17764         (WebCore::FrameLoader::stopLoading):
17765         * page/Frame.cpp:
17766         (WebCore::Frame::shouldClose):
17767
17768 2008-05-22  Simon Hausmann  <hausmann@webkit.org>
17769
17770         Reviewed by Oliver.
17771
17772         Qt build fix.
17773
17774         * bindings/js/StringSourceProvider.h: Remove text at end of
17775         preprocessor statement.
17776         * bridge/qt/qt_instance.cpp:
17777         (KJS::Bindings::QtRuntimeObjectImp::getConstructData): Replaced
17778         implementsConstruct() with getConstructData().
17779         (KJS::Bindings::QtInstance::getCallData): Replaced implementsCall with
17780         getCallData().
17781         (KJS::Bindings::QtInstance::invokeDefaultMethod): Use getCallData()
17782         instead of implementsCall().
17783         * bridge/qt/qt_instance.h:
17784
17785 2008-05-22  Adam Roben  <aroben@apple.com>
17786
17787         Massively speed up date-format-tofte with the debugger attached
17788
17789         On a debug Windows build (I know, hardly a good testcase) this patch
17790         makes this test run 57.25x as fast.
17791
17792         Reviewed by Mark Rowe.
17793
17794         * page/inspector/ScriptsPanel.js:
17795         (WebInspector.ScriptsPanel.prototype.reset): Clear the
17796         _scriptsForURLsInFilesSelect object.
17797         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Instead
17798         of looping over all the options in the select to find the option we
17799         want, get the script object from _scriptsForURLsInFilesSelect and get
17800         the option element from the script object.
17801         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use
17802         _scriptsForURLsInFilesSelect to cache the script objects. Store the
17803         option element for each script on the script object so we can quickly
17804         retrieve it later.
17805
17806 2008-05-22  Adam Roben  <aroben@apple.com>
17807
17808         Remove some dead code from ScriptsPanel.js
17809
17810         Reviewed by Mark Rowe.
17811
17812         * page/inspector/ScriptsPanel.js:
17813
17814 2008-05-21  Adam Roben  <aroben@apple.com>
17815
17816         Fix Bug 19178: Inspector should support sorting resources by latency
17817
17818         <https://bugs.webkit.org/show_bug.cgi?id=19178>
17819
17820         I replaced "Sort by Time" with the following sorting options:
17821           - Sort by Start Time
17822           - Sort by Response Time
17823           - Sort by End Time
17824           - Sort by Duration
17825           - Sort by Latency
17826
17827         You can no longer sort by Size when looking at the Time graph, and you
17828         can't use any of the time-based sorting functions when looking at the
17829         Size graph.
17830
17831         Reviewed by Tim Hatcher.
17832
17833         * page/inspector/Resource.js:
17834         (WebInspector.Resource.prototype.get duration): Added.
17835         (WebInspector.Resource.prototype.get latency): Added.
17836         (WebInspector.Resource.CompareByStartTime): Added.
17837         (WebInspector.Resource.CompareByResponseReceivedTime): Added.
17838         (WebInspector.Resource.CompareByEndTime): Added.
17839         (WebInspector.Resource.CompareByDuration): Added.
17840         (WebInspector.Resource.CompareByLatency): Added.
17841         * page/inspector/ResourcesPanel.js:
17842         (WebInspector.ResourcesPanel):
17843           - Each graph sidebar item now holds a list of sorting options
17844           - Graph sidebar items no longer have a calculator property. This is
17845             stored on the sorting options instead, to allow each kind of
17846             sorting to have a different calculator.
17847           - The sortingSelectElement starts out empty, and is populated in
17848             _graphSelected
17849           - The sortingFunction starts out uninitialized and is set as a
17850             side-effect of _graphSelected.
17851         (WebInspector.ResourcesPanel.prototype.set calculator): Don't do
17852         anything if the calculator hasn't changed.
17853         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Use the
17854         _lastSelectedGraphTreeElement property instead of getting the graph
17855         element from the calculator.
17856         (WebInspector.ResourcesPanel.prototype._graphSelected):
17857           - Store the tree element in the _lastSelectedGraphTreeElement
17858             property
17859           - Popuplate sortingSelectElement with the sortingOptions and select
17860             the option that was last selected
17861         (WebInspector.ResourcesPanel.prototype._changeSortingFunction): Set
17862         our calculator from the sorting option.
17863         (WebInspector.ResourceTimeCalculator): Renamed from
17864         ResourceTransferTimeCalculator. Now takes a parameter to specify
17865         whether the bars should all start at zero.
17866         (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphPercentages):
17867         Take this.startAtZero into account.
17868         (WebInspector.ResourceTimeCalculator.prototype.updateBoundries):
17869         Abstracted the lower/upper bounds of a resource into methods.
17870         (WebInspector.ResourceTimeCalculator.prototype._lowerBound): Added.
17871         (WebInspector.ResourceTimeCalculator.prototype._upperBound): Added.
17872         (WebInspector.ResourceTransferTimeCalculator): Added. This is now a
17873         subclass of ResourceTimeCalculator
17874         (WebInspector.ResourceTransferDurationCalculator): Added.
17875         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingStartTime): Added.
17876         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingResponseReceivedTime): Added.
17877         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingEndTime): Added.
17878         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingDuration): Added.
17879         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingLatency): Added.
17880         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingSize):
17881         Changed to call CompareBySize.
17882
17883 2008-05-21  Adam Roben  <aroben@apple.com>
17884
17885         Fix Bug 19173: Tool tips for Inspector debugger status bar buttons are
17886         wrong/missing
17887
17888         <https://bugs.webkit.org/show_bug.cgi?id=19173>
17889
17890         Reviewed by Tim Hatcher.
17891
17892         * manual-tests/inspector/debugger-status-bar-buttons-state.html:
17893         Added.
17894         * page/inspector/ScriptsPanel.js:
17895         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Call
17896         _clearInterface (which updates the buttons' tool tips) after
17897         attaching/detaching the debugger so that the buttons will reflect the
17898         new state.
17899         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
17900         Set the title of the pauseOnExceptionsButton, not the debuggingButton.
17901
17902 2008-05-20  Adam Roben  <aroben@apple.com>
17903
17904         Fix Bug 19153: Inspector should support console.debug
17905
17906         <https://bugs.webkit.org/show_bug.cgi?id=19153>
17907         <rdar://problem/5950856>
17908
17909         Reviewed by Tim Hatcher.
17910
17911         Test: manual-tests/inspector/console-log-formatting.html
17912
17913         * bindings/js/JSConsoleCustom.cpp:
17914         (WebCore::JSConsole::debug): Added.
17915         * manual-tests/inspector/console-log-formatting.html: Changed to test
17916         console.debug as well.
17917         * page/Console.cpp:
17918         (WebCore::Console::debug): Added. Just calls through to log().
17919         * page/Console.h:
17920         * page/Console.idl: Added debug() declaration.
17921
17922 2008-05-21  Kevin McCullough  <kmccullough@apple.com>
17923
17924         Reviewed by Adam.
17925
17926         <rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a
17927         profile node.
17928         - Expose the Profile's 'focus' ability to WebCore and the WebInspector.
17929
17930         * page/JavaScriptProfile.cpp:
17931         (WebCore::focus):
17932         (WebCore::profileClass):
17933
17934 2008-05-21  Timothy Hatcher  <timothy@apple.com>
17935
17936         Remove the rest of the debug code inside DEBUG_DEBUGGER_CALLBACKS
17937         since the parts the remain aren't useful.
17938
17939         * page/JavaScriptDebugServer.cpp:
17940         (WebCore::JavaScriptDebugServer::sourceParsed):
17941
17942 2008-05-21  Beth Dakin  <bdakin@apple.com>
17943
17944         Reviewed by Anders.
17945
17946         Fix for <rdar://problem/5848161> REGRESSION (r31438?): Crash 
17947         beneath ResourceHandle::setDefersLoading while running fast/loader/
17948         simultaneous-reloads-assert.html (null CFURLConnection)
17949
17950         * platform/network/cf/ResourceHandleCFNet.cpp:
17951         (WebCore::ResourceHandle::setDefersLoading): Added simple null-
17952         check.
17953
17954 2008-05-21  Timothy Hatcher  <timothy@apple.com>
17955
17956         Adds the Request and Response headers to the Resource view.
17957
17958         <rdar://problem/5940782> REGRESSION: Resource Request and Response
17959         headers aren't shown (18451)
17960
17961         Reviewed by Adam Roben.
17962
17963         * English.lproj/localizedStrings.js: Added new strings.
17964         * css/view-source.css: Add comments to make sure a couple of
17965         style rules stay in sync with inspector.css.
17966         * page/inspector/Resource.js:
17967         (WebInspector.Resource.prototype.set url): Dispatch an event when
17968         this property changes.
17969         (WebInspector.Resource.prototype.set requestHeaders): Ditto.
17970         (WebInspector.Resource.prototype.set responseHeaders): Ditto.
17971         * page/inspector/ResourceView.js:
17972         (WebInspector.ResourceView): Add new elements for the headers
17973         and a headers TreeOutline. Add event listeners for resource
17974         property changes. Calls the three new refresh functions.
17975         (WebInspector.ResourceView.prototype.set headersVisible): Implemented.
17976         Toggles the headers-visible class name.
17977         (WebInspector.ResourceView.prototype._refreshURL): Update the URL
17978         tree element.
17979         (WebInspector.ResourceView.prototype._refreshRequestHeaders): Call _refreshHeaders.
17980         (WebInspector.ResourceView.prototype._refreshResponseHeaders): Ditto.
17981         (WebInspector.ResourceView.prototype._refreshHeaders): Remove the previous
17982         headers fromm the tree element. Loop throuh the headers and create new
17983         tree elements and append them.
17984         * page/inspector/ResourcesPanel.js:
17985         (WebInspector.ResourcesPanel.prototype._updateSidebarWidth): Call resize
17986         on the visible view if it is implemented.
17987         * page/inspector/SourceFrame.js:
17988         (WebInspector.SourceFrame.prototype.get autoSizesToFitContentHeight):
17989         (WebInspector.SourceFrame.prototype.set autoSizesToFitContentHeight):
17990         (WebInspector.SourceFrame.prototype.sizeToFitContentHeight):
17991         (WebInspector.SourceFrame.prototype._loaded): 
17992         (WebInspector.SourceFrame.prototype._windowResized): 
17993         * page/inspector/SourceView.js:
17994         (WebInspector.SourceView): Move the SourceFrame creation so it is
17995         available when headersVisible is set. Add a gutter element to fill
17996         the vertical space no covered by the SourceFrame now.
17997         (WebInspector.SourceView.prototype.set headersVisible): Set the
17998         SourceFrame.autoSizesToFitContentHeight when this property changes.
17999         (WebInspector.SourceView.prototype.resize): Call SourceFrame.sizeToFitContentHeight
18000         when autoSizesToFitContentHeight is true. This happens when resizing the 
18001         Resources sidebar.
18002         * page/inspector/inspector.css: Add a copy of webkit-line-gutter-backdrop
18003         and a comment to keep in sync with view-source.css. Adds other styles
18004         for the headers area of resource-view.
18005
18006 2008-05-21  Sam Weinig  <sam@webkit.org>
18007
18008         Reviewed by Anders Carlsson.
18009
18010         <rdar://problem/5838772> Support cross-site XMLHttpRequest
18011
18012         - Implement support for cross-site GET requests using the HTTP header
18013           Access-control mechanism.
18014
18015         Tests: http/tests/xmlhttprequest/access-control-basic-allow-headers.html
18016                http/tests/xmlhttprequest/access-control-basic-allow.html
18017                http/tests/xmlhttprequest/access-control-basic-denied.html
18018                http/tests/xmlhttprequest/access-control-basic-exclude.html
18019
18020         * xml/AccessControlList.cpp:
18021         (WebCore::AccessControlList::checkOrigin): Implement the list check algorithm.
18022         * xml/AccessControlList.h:
18023
18024         * xml/AccessItem.cpp:
18025         (WebCore::AccessItem::AccessItem):
18026         (WebCore::AccessItem::matches):
18027         * xml/AccessItem.h:
18028         Temporarily use a SecurityOrigin as the bases of AccessItem matching. Using
18029         the isSameSchemeHostPort test of the SecurityOrigin allows for a legal subset
18030         of the AccessItem match algorithm to be used, until the complete parsing of
18031         the wildcards and optional pieces is complete. 
18032
18033         * xml/AccessItemRule.cpp:
18034         (WebCore::matchesAny):
18035         (WebCore::AccessItemRule::allowListMatchesAny):
18036         (WebCore::AccessItemRule::excludeListMatchesAny):
18037         * xml/AccessItemRule.h:
18038         More of the implementation of the list check algorithm.  Check if any of the items
18039         in the rule match the control origin.
18040
18041         * xml/XMLHttpRequest.cpp:
18042         (WebCore::XMLHttpRequest::XMLHttpRequest):
18043         (WebCore::XMLHttpRequest::open): Don't throw a SECURITY_ERR for cross-domain requests anymore.
18044         (WebCore::XMLHttpRequest::send): Use different paths for same origin and cross-domain requests.
18045         (WebCore::XMLHttpRequest::crossSiteAccessRequest): Temporarily only support the GET method for
18046         cross-domain requests.  
18047         (WebCore::XMLHttpRequest::loadRequestSynchronously):
18048         (WebCore::XMLHttpRequest::processSyncLoadResults):
18049         This can now throw an exception if a cross-domain request is denied by the access control
18050         (WebCore::XMLHttpRequest::didFinishLoading):
18051         Add support for cross-domain GET request.  ASSERT temporarily that the method is GET, since we
18052         should have bailed out much earlier for non-GET methods.
18053         (WebCore::XMLHttpRequest::willSendRequest):
18054         (WebCore::XMLHttpRequest::didReceiveResponse):
18055         Do the HTTP header access-control check as soon as the headers arrive.
18056         * xml/XMLHttpRequest.h:
18057
18058 2008-05-21  Alp Toker  <alp@nuanti.com>
18059
18060         Rubber-stamped by Maciej.
18061
18062         Replace non-standard #pragma marks with comments to avoid compiler
18063         warnings.
18064
18065         * page/InspectorController.cpp:
18066
18067 === End merge of squirrelfish ===
18068
18069 2008-05-21  Geoffrey Garen  <ggaren@apple.com>
18070
18071         Reviewed by Tim Hatcher.
18072
18073         Merged with trunk WebCore's new debugger.
18074
18075         * page/InspectorController.cpp:
18076         (WebCore::currentCallFrame): Updated to use the DebuggerCallFrame API.
18077         (WebCore::InspectorController::pauseInDebugger): Updated for name change
18078         explained below.
18079         (WebCore::InspectorController::resumeDebugger): ditto
18080         (WebCore::InspectorController::didParseSource): Fixed a bug that would
18081         produce garbled text in some cases: Don't treat JS source as null-
18082         terminated UTF8; it's UTF16.
18083
18084         * page/JavaScriptCallFrame.cpp:
18085         * page/JavaScriptCallFrame.h: Changed this class to do all of its processing
18086         through a JavaScriptCore DebuggerCallFrame. We have to copy the DebuggerCallFrame
18087         because it's a temporary.
18088         (WebCore::JavaScriptCallFrame::update): Added an API for updating a call
18089         frame during execution: this is how we handle "with" and "eval".
18090
18091         * page/JavaScriptDebugServer.cpp: Separated "m_paused" from
18092         "m_doneProcessingDebuggerEvents", because they have different semantics:
18093         "m_paused" is the flag the debug server uses to indicate that new debugger
18094         callbacks should be ignored, because they come from the debugger's own
18095         JS code; "m_doneProcessingDebuggerEvents" is the flag the debugger UI
18096         uses to indicate that it's done processing events, and would like execution
18097         to continue. When these flags were one, the debugger would erroneously
18098         process callbacks that ocurred while unwinding from its own JS code.
18099
18100         (WebCore::toPage): Removed some unnecessary NULL checking. Added some
18101         missing NULL checking.
18102         
18103         (WebCore::JavaScriptDebugServer::pauseIfNeeded): Changed pause tracking
18104         to track a JavaScriptCallFrame instead of an ExecState, since ExecState
18105         is no longer a unique identifier for a call frame.
18106
18107         I removed the updateCurrentCallFrame scheme, and replaced it with
18108         individual tracking inside these callbacks:
18109         
18110         (WebCore::JavaScriptDebugServer::callEvent):
18111         (WebCore::JavaScriptDebugServer::atStatement):
18112         (WebCore::JavaScriptDebugServer::returnEvent):
18113         (WebCore::JavaScriptDebugServer::exception):
18114         
18115         The updateCurrentCallFrame scheme was just too incompatible with the
18116         squirrelfish execution model. Everything still works as before, except
18117         for eval, which no longer shows up as an independent call frame. We'll
18118         need to augment our debugger callbacks to bring back support for that.
18119
18120         * page/inspector/ScopeChainSidebarPane.js: Updated to use the activation
18121         class's new name.
18122
18123 2008-05-21  Maciej Stachowiak  <mjs@apple.com>
18124
18125         Reviewed by Oliver.
18126
18127         - write directly to the slot we used to check for override properties, when possible
18128         2.6% speedup on in-browser SunSpider
18129
18130         * bindings/js/JSDOMWindowCustom.h:
18131         (WebCore::JSDOMWindow::customPut):
18132
18133 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
18134
18135         Reviewed by Oliver.
18136
18137         - inline JSDOMWindow security checks
18138         0.9% speedup to SunSpider in-browser
18139
18140         * bindings/js/JSDOMWindowBase.cpp:
18141         * bindings/js/JSDOMWindowCustom.h:
18142         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
18143         (WebCore::JSDOMWindowBase::allowsAccessFrom):
18144         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
18145         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
18146         * bindings/js/kjs_binding.cpp:
18147
18148 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
18149
18150         Reviewed by Adam.
18151
18152         - use ALWAYS_INLINE on customGetOwnPropertySlot since it wasn't inlining
18153         2% speedup to SunSpider in-browser
18154
18155         * bindings/js/JSDOMWindowCustom.h:
18156         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18157
18158 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
18159
18160         Reviewed by Adam.
18161
18162         - inline JSDOMWindow's customPut and customGetOwnPropertySlot methods
18163         1.2% speedup to SunSpider in-browser
18164         
18165         The approach here is to make the code generator include a
18166         JS{classname}Custom.h header in the autogenerated implementation,
18167         which we can use to provide inline versions.
18168
18169         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
18170         * bindings/js/JSCSSStyleDeclarationCustom.h: Added.
18171         * bindings/js/JSDOMWindowCustom.cpp:
18172         * bindings/js/JSDOMWindowCustom.h:
18173         (WebCore::asJSDOMWindow):
18174         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18175         (WebCore::JSDOMWindow::customPut):
18176         * bindings/js/JSHTMLAppletElementCustom.cpp:
18177         * bindings/js/JSHTMLAppletElementCustom.h: Added.
18178         * bindings/js/JSHTMLEmbedElementCustom.cpp:
18179         * bindings/js/JSHTMLEmbedElementCustom.h: Added.
18180         * bindings/js/JSHTMLObjectElementCustom.cpp:
18181         * bindings/js/JSHTMLObjectElementCustom.h: Added.
18182         * bindings/js/JSHistoryCustom.cpp:
18183         * bindings/js/JSHistoryCustom.h: Added.
18184         * bindings/js/JSLocationCustom.cpp:
18185         * bindings/js/JSLocationCustom.h: Added.
18186         * bindings/js/JSStorageCustom.cpp:
18187         * bindings/js/JSStorageCustom.h: Added.
18188         * bindings/scripts/CodeGeneratorJS.pm:
18189
18190 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
18191
18192         Reviewed by Anders.
18193
18194         - inline asDOMWindow (using a new JSDOMWindowCustom.h header) since it is just a cast
18195         1% speedup to SunSpider in-browser
18196
18197         * WebCore.vcproj/WebCore.vcproj:
18198         * WebCore.xcodeproj/project.pbxproj:
18199         * bindings/js/JSCustomVoidCallback.cpp:
18200         * bindings/js/JSCustomXPathNSResolver.cpp:
18201         * bindings/js/JSDOMApplicationCacheCustom.cpp:
18202         * bindings/js/JSDOMWindowBase.cpp:
18203         * bindings/js/JSDOMWindowBase.h:
18204         * bindings/js/JSDOMWindowCustom.cpp:
18205         * bindings/js/JSDOMWindowCustom.h: Added.
18206         (WebCore::asJSDOMWindow):
18207         * bindings/js/JSDatabaseCustom.cpp:
18208         * bindings/js/JSDocumentCustom.cpp:
18209         * bindings/js/JSLocationCustom.cpp:
18210         * bindings/js/JSSQLTransactionCustom.cpp:
18211         * bindings/js/JSXMLHttpRequestCustom.cpp:
18212         * page/JavaScriptDebugServer.cpp:
18213
18214 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
18215
18216         Reviewed by Oliver.
18217
18218         - obtain current inner window of outer window in a more efficient way
18219         1.6% speedup to SunSpider in-browser
18220
18221         * bindings/js/JSDOMWindowBase.cpp:
18222         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
18223
18224 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
18225
18226         Reviewed by Adam.
18227
18228         - make impl() method for JSWindow inline
18229         0.6% speedup to SunSpider in-browser
18230
18231         * WebCore.base.exp: Remove now-inline symbol
18232         * bindings/scripts/CodeGeneratorJS.pm: Make the codegen script inline impl()
18233         even for classes with a parent class.
18234
18235 2008-05-17  Geoffrey Garen  <ggaren@apple.com>
18236
18237         Reviewed by Oliver Hunt.
18238
18239         Updated for API changes in KJS::Debugger.
18240
18241 2008-05-13  Geoffrey Garen  <ggaren@apple.com>
18242
18243         Reviewed by Oliver Hunt.
18244
18245         Updated for API changes in KJS::Debugger.
18246
18247         * page/JavaScriptDebugServer.cpp:
18248         (WebCore::JavaScriptDebugServer::callEvent):
18249         (WebCore::JavaScriptDebugServer::atStatement):
18250         (WebCore::JavaScriptDebugServer::returnEvent):
18251         (WebCore::JavaScriptDebugServer::exception):
18252         * page/JavaScriptDebugServer.h:
18253
18254 2008-05-13  Geoffrey Garen  <ggaren@apple.com>
18255
18256         Reviewed by Oliver Hunt.
18257         
18258         Updated JavaScriptDebugServer API to accept a SourceProvider instead
18259         of a UString, to avoid copying.
18260
18261         * page/JavaScriptDebugServer.cpp:
18262         (WebCore::JavaScriptDebugServer::sourceParsed): Updated this function
18263         not to return a value.
18264
18265 2008-05-10  Maciej Stachowiak  <mjs@apple.com>
18266
18267         Build fix.
18268         
18269         - add missing forwarding header
18270
18271         * ForwardingHeaders/kjs/SourceProvider.h: Added.
18272
18273 2008-05-10  Maciej Stachowiak  <mjs@apple.com>
18274
18275         Reviewed by Oliver.
18276
18277         - WebCore part of fix for: "SQUIRRELFISH: function toString broken after calling"
18278         https://bugs.webkit.org/show_bug.cgi?id=18869
18279
18280         * bindings/js/StringSourceProvider.h: Added. SourceProvider subclass backed by a WebCore::String.
18281         (WebCore::StringSourceProvider::create):
18282         (WebCore::StringSourceProvider::getRange):
18283         (WebCore::StringSourceProvider::data):
18284         (WebCore::StringSourceProvider::length):
18285         (WebCore::StringSourceProvider::StringSourceProvider):
18286         * bindings/js/kjs_proxy.cpp:
18287         (WebCore::KJSProxy::evaluate): Pass a StringSourceProvider to
18288         evaluate() instead of UChar* / length.
18289         * html/HTMLScriptElement.cpp:
18290         (WebCore::HTMLScriptElement::text): Modified to return the
18291         original string as-is when the script element contains only a
18292         single text node, to avoid excess memory use.
18293         
18294         * WebCore.vcproj/WebCore.vcproj: Add new file to build.
18295         * WebCore.xcodeproj/project.pbxproj: ditto
18296
18297 2008-05-09  Oliver Hunt  <oliver@apple.com>
18298
18299         Reviewed by Geoff.
18300
18301         Build fixes for SquirrelFish on windows.
18302
18303         * bindings/js/JSNavigatorCustom.cpp:
18304
18305 2008-05-08  Geoffrey Garen  <ggaren@apple.com>
18306
18307         Reviewed by Oliver Hunt.
18308
18309         Fixed platform/mac/plugins/bindings-test-objc.html.
18310         
18311         I've restored -[WebScriptObject setException] and
18312         +[WebScriptObject throwException].
18313         
18314         Instead of mucking around in the JavaScript engine's execution state,
18315         throwing an exception sets a global exception string, along with the
18316         environment in which to throw it. An ObjC callback checks the global
18317         exception string and, if it's non-nil and the environment matches the
18318         current exceution environment, throws the global exception string as a
18319         JS exception.
18320
18321         I also removed the old currentGlobalObject infrastructure: it's no longer
18322         used.
18323
18324 2008-05-06  Oliver Hunt  <oliver@apple.com>
18325
18326         Reviewed by Maciej.
18327
18328         Bug 18866: SQUIRRELFISH: JS/ObjC bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18866>
18329         Bug 18867: SQUIRRELFISH: JS/NPRuntime bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18867>
18330
18331         This fixes function binding logic for the ObjC and NPRuntime by
18332         replacing incorrect implementations of implementsCall (which is
18333         no longer virtual) with implementations of getCallData.
18334
18335         * bindings/js/JSQuarantinedObjectWrapper.cpp:
18336         (WebCore::JSQuarantinedObjectWrapper::getCallData):
18337         * bindings/js/JSQuarantinedObjectWrapper.h:
18338         * bridge/c/c_instance.cpp:
18339         * bridge/c/c_instance.h:
18340         * bridge/objc/objc_instance.h:
18341         * bridge/objc/objc_instance.mm:
18342         * bridge/objc/objc_runtime.h:
18343         * bridge/objc/objc_runtime.mm:
18344         (ObjcFallbackObjectImp::getCallData):
18345         * bridge/runtime.h:
18346         * bridge/runtime_object.cpp:
18347         (RuntimeObjectImp::getCallData):
18348         * bridge/runtime_object.h:
18349
18350 2008-04-30  Geoffrey Garen  <ggaren@apple.com>
18351
18352         Build fix: supply a parameter that used to be implicit to
18353         Interpreter::evaluate.
18354
18355 2008-04-30  Geoffrey Garen  <ggaren@apple.com>
18356
18357         Build fix: #ifdef'd out some code that doesn't work anymore.
18358
18359         * bindings/objc/WebScriptObject.mm:
18360         (+[WebScriptObject throwException:]):
18361         (-[WebScriptObject setException:]):
18362
18363 2008-04-14  Gabor Loki  <loki@inf.u-szeged.hu>
18364
18365         Reviewed by Geoffrey Garen.
18366
18367         Bug 18489: Squirrelfish doesn't build on linux
18368         <https://bugs.webkit.org/show_bug.cgi?id=18489>
18369
18370         * WebCore.pro: Add JavaScriptCore/VM into include path
18371
18372 2008-04-10  Sam Weinig  <sam@webkit.org>
18373
18374         Reviewed by Geoffrey Garen.
18375
18376         Adjusted WebCore JS functions to the new "getConstructData" calling convention.
18377
18378 2008-03-30  Geoffrey Garen  <ggaren@apple.com>
18379
18380         Reviewed by Oliver Hunt.
18381         
18382         Adjusted WebCore JS functions to the new "getCallData" calling convention.
18383
18384 === Start merge of squirrelfish ===
18385
18386 2008-05-21  Anders Carlsson  <andersca@apple.com>
18387
18388         Reviewed by Mitz.
18389
18390         Add IconFetcher implementation.
18391
18392         * WebCore.base.exp:
18393         * WebCore.xcodeproj/project.pbxproj:
18394         * html/HTMLLinkElement.h:
18395         (WebCore::HTMLLinkElement::isIcon):
18396         * loader/icon/IconFetcher.cpp: Added.
18397         (WebCore::IconLinkEntry::):
18398         (WebCore::IconLinkEntry::IconLinkEntry):
18399         (WebCore::IconLinkEntry::type):
18400         (WebCore::IconLinkEntry::url):
18401         (WebCore::IconLinkEntry::buffer):
18402         (WebCore::parseIconLink):
18403         (WebCore::IconFetcher::create):
18404         (WebCore::IconFetcher::IconFetcher):
18405         (WebCore::IconFetcher::~IconFetcher):
18406         (WebCore::IconFetcher::cancel):
18407         (WebCore::IconFetcher::createIcon):
18408         (WebCore::IconFetcher::loadEntry):
18409         (WebCore::IconFetcher::loadFailed):
18410         (WebCore::IconFetcher::didReceiveResponse):
18411         (WebCore::IconFetcher::didReceiveData):
18412         (WebCore::IconFetcher::didFinishLoading):
18413         (WebCore::IconFetcher::didFail):
18414         * loader/icon/IconFetcher.h: Added.
18415         (WebCore::IconFetcherClient::~IconFetcherClient):
18416
18417 2008-05-21  Dan Bernstein  <mitz@apple.com>
18418
18419         Reviewed by Dave Hyatt.
18420
18421         - fix https://bugs.webkit.org/show_bug.cgi?id=18352
18422           <rdar://problem/5854517> crash loading malicious font
18423
18424         * platform/graphics/mac/SimpleFontDataMac.mm:
18425         (WebCore::SimpleFontData::platformInit): In the case of a custom font,
18426         there is no NSFont to base the fallback font on, so get a font based on
18427         fallback family name alone.
18428
18429 2008-05-21  Timothy Hatcher  <timothy@apple.com>
18430
18431         Adds the files and line numbers to the Profile call tree.
18432
18433         <rdar://problem/5952924> Inspector needs to show file and line number
18434         in the Profile call tree
18435
18436         Reviewed by Geoff Garen.
18437
18438         * page/JavaScriptProfileNode.cpp:
18439         (WebCore::getFunctionName): Fixes a JSStringRef leak.
18440         (WebCore::getURL): Call ProfileNode::url.
18441         (WebCore::getLineNumber): Call ProfileNode::lineNumber.
18442         (WebCore::ProfileNodeClass): Add the url and lineNumber properties.
18443         * page/inspector/ProfileView.js:
18444         (WebInspector.ProfileDataGridNode.prototype.createCell): Overload the
18445         DataGridNode.createCell and add the file and lineNumber to the
18446         cell if the column is the function column.
18447         * page/inspector/inspector.css: New styles for the file and line.
18448
18449 2008-05-21  Timothy Hatcher  <timothy@apple.com>
18450
18451         Restores logging of console calls to the STDOUT
18452         when Interpreter::shouldPrintExceptions() is true.
18453
18454         <rdar://problem/5636442> REGRESSION: Console.log no longer logs to
18455         the system console or terminal
18456
18457         <rdar://problem/5146079> JavaScript exception logging should print
18458         accurate file and line info when called from WebScriptObject
18459
18460         Reviewed by Adam Roben.
18461
18462         * bindings/js/JSCustomSQLStatementCallback.cpp:
18463         (WebCore::JSCustomSQLStatementCallback::handleEvent): Remove existing
18464         printf and check for Interpreter::shouldPrintExceptions() since there is
18465         a call to Console::addMessage.
18466         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
18467         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent): Ditto.
18468         * bindings/js/JSCustomSQLTransactionCallback.cpp:
18469         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Ditto.
18470         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
18471         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): Ditto.
18472         * bindings/js/JSCustomVoidCallback.cpp:
18473         (WebCore::JSCustomVoidCallback::handleEvent): Ditto.
18474         * bindings/js/JSCustomXPathNSResolver.cpp:
18475         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): Ditto.
18476         * bindings/js/JSDOMWindowBase.cpp:
18477         (WebCore::JSDOMWindowBase::printErrorMessage): Ditto.
18478         * bindings/js/ScheduledAction.cpp:
18479         (WebCore::ScheduledAction::execute): Ditto.
18480         * bindings/js/kjs_events.cpp:
18481         (WebCore::JSAbstractEventListener::handleEvent): Ditto.
18482         * loader/FrameLoader.cpp:
18483         (WebCore::FrameLoader::shouldAllowNavigation): Ditto.
18484         * bindings/objc/WebScriptObject.mm:
18485         (WebCore::addExceptionToConsole): Added helper static function that
18486         calls Console::addMessage.
18487         (-[WebScriptObject callWebScriptMethod:withArguments:]): Call addExceptionToConsole.
18488         (-[WebScriptObject evaluateWebScript:]): Ditto.
18489         (-[WebScriptObject setValue:forKey:]): Ditto.
18490         (-[WebScriptObject valueForKey:]): Ditto.
18491         (-[WebScriptObject removeWebScriptKey:]): Ditto.
18492         (-[WebScriptObject webScriptValueAtIndex:]): Ditto.
18493         (-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
18494         * page/Console.cpp:
18495         (WebCore::Console::addMessage): Print the level, message,
18496         URL and line number to STDOUT.
18497         (WebCore::printToStandardOut): Helper static function that
18498         takes a prefix string, ExecState, an argument List and URL.
18499         Prints the prefix and loops through the arguments calling
18500         toString on each and printing the string. Finally printing
18501         the URL and new line.
18502         (WebCore::Console::error): Call printToStandardOut.
18503         (WebCore::Console::info): Ditto.
18504         (WebCore::Console::log): Ditto.
18505         (WebCore::Console::assertCondition): Ditto.
18506         (WebCore::Console::warn): Ditto.
18507
18508 2008-05-20  Timothy Hatcher  <timothy@apple.com>
18509
18510         Changes to work with the new Profiler API. The Profile is now
18511         stored by the InspectorController when Console.profileEnd is called.
18512         This solves three issues with the previous design. First, we don't
18513         keep profiles around unless the Inspector is enabled. Second, we
18514         only show Profiles initiated by the Page in it's Inspector, not every
18515         Profile for the whole process. Third, we now show Profiles in the
18516         Inspector when they are created.
18517
18518         <rdar://problem/5951562> New profiles aren't added to the Inspector
18519         as they finish
18520
18521         Reviewed by Kevin McCullough.
18522
18523         * bindings/js/JSConsoleCustom.cpp:
18524         (WebCore::JSConsole::profileEnd): Added. Calls impl()->profileEnd()
18525         and passes the ExecState and arguments.
18526         * page/Console.cpp:
18527         (WebCore::Console::profile):
18528         (WebCore::Console::profileEnd): Accept the optional title argument
18529         and pass it to Profilier::stopProfiling along with the ExecState.
18530         Calls InspectorController::addProfile with the result Profile.
18531         * page/Console.h:
18532         * page/Console.idl: Made profileEnd Custom so we can get the ExecState.
18533         * page/InspectorController.cpp:
18534         (WebCore::profiles): Renamed from allProfiles. Uses the controller's
18535         profiles vector.
18536         (WebCore::InspectorController::addProfile): Appends to m_profiles.
18537         Calls addScriptProfile if the window is visible.
18538         (WebCore::InspectorController::windowScriptObjectAvailable): Renamed
18539         allProfiles to profiles.
18540         (WebCore::InspectorController::addScriptProfile): Calls addProfile on
18541         the JavaScript side.
18542         (WebCore::InspectorController::didCommitLoad): Clears m_profiles.
18543         * page/InspectorController.h:
18544         * page/inspector/ProfilesPanel.js: Populates the profiles sidebar the first
18545         time the panel is shown after a rest.
18546         * page/inspector/inspector.js: Added addProfile, calls ProfilesPanel's
18547         addProfile function.
18548
18549 2008-05-21  Alexey Proskuryakov  <ap@webkit.org>
18550
18551         Reviewed by Darin.
18552
18553         https://bugs.webkit.org/show_bug.cgi?id=19169
18554         <rdar://5952342> REGRESSION: nakarte.ru searches don't work
18555
18556         Test: http/tests/xmlhttprequest/encode-request-url.html
18557
18558         * platform/KURL.cpp: (WebCore::KURL::init): Don't allow UTF-8 encoded data to be implicitly
18559         converted to String, as it will be encoded again by parse().
18560
18561 2008-05-21  Ariya Hidayat  <ariya.hidayat@trolltech.com>
18562
18563         Reviewed by Simon.
18564
18565         For the Qt port, fix building with Qt for Embedded Linux.
18566
18567         * WebCore.pro:
18568
18569 2008-05-21  Ariya Hidayat  <ariya.hidayat@trolltech.com>
18570
18571         Reviewed by Simon.
18572
18573         For the Qt port, allow building without NPAPI plugin support.
18574
18575         * WebCore.pro:
18576         * plugins/PluginView.h:
18577
18578 2008-05-20  Kevin McCullough  <kmccullough@apple.com>
18579
18580         Reviewed by Tim.
18581
18582         Added all of my personal manual tests for the profiler.
18583
18584         * manual-tests/inspector/profiler-test-anonymous-event-handler.html: Added.
18585         * manual-tests/inspector/profiler-test-anonymous-function-called-from-different-contexts.html: Added.
18586         * manual-tests/inspector/profiler-test-anonymous-function-calls-built-in-functions.html: Added.
18587         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html: Added.
18588         * manual-tests/inspector/profiler-test-apply.html: Added.
18589         * manual-tests/inspector/profiler-test-built-in-function-calls-anonymous.html: Added.
18590         * manual-tests/inspector/profiler-test-built-in-function-calls-user-defined-function.html: Added.
18591         * manual-tests/inspector/profiler-test-call.html: Added.
18592         * manual-tests/inspector/profiler-test-dead-time.html: Added.
18593         * manual-tests/inspector/profiler-test-event-handler.html: Added.
18594         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html: Added.
18595         * manual-tests/inspector/profiler-test-inline-event-handler.html: Added.
18596         * manual-tests/inspector/profiler-test-many-calls-in-the-same-scope.html: Added.
18597         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-anonymous-function-calls.html: Added.
18598         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-function-calls.html: Added.
18599         * manual-tests/inspector/profiler-test-multiple-frames.html: Added.
18600         * manual-tests/inspector/profiler-test-multiple-windows.html: Added.
18601         * manual-tests/inspector/profiler-test-nested-anonymous-functon.html: Added.
18602         * manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html: Added.
18603         * manual-tests/inspector/profiler-test-no-execution-context.html: Added.
18604         * manual-tests/inspector/profiler-test-one-execution-context.html: Added.
18605         * manual-tests/inspector/profiler-test-profile-calls-in-included-file.html: Added.
18606         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Added.
18607         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location.html: Added.
18608         * manual-tests/inspector/profiler-test-start-and-stop-profiler-multiple-times.html: Added.
18609         * manual-tests/inspector/profiler-test-two-execution-contexts.html: Added.
18610         * manual-tests/inspector/profiler-test-user-defined-function-calls-built-in-functions.html: Added.
18611         * manual-tests/inspector/resources: Added.
18612         * manual-tests/inspector/resources/other-frame.html: Added.
18613         * manual-tests/inspector/resources/other-window.html: Added.
18614         * manual-tests/inspector/resources/profiler-test-JS-resources.js: Added.
18615
18616 2008-05-20  Adam Roben  <aroben@apple.com>
18617
18618         Use KJS::List::getSlice instead of reimplementing it
18619
18620         Rubberstamped and suggested by Sam Weinig.
18621
18622         * bindings/js/JSConsoleCustom.cpp:
18623         (WebCore::JSConsole::assertCondition):
18624
18625 2008-05-20  Kevin Calhoun  <kcalhoun@apple.com>
18626
18627         Reviewed by Darin.
18628
18629         Fix <rdar://problem/5929010> Adopt new QTKit methods for <video> implementation
18630
18631         If the class QTVideoRendererWebKitOnly is present use it to render video,
18632         otherwise fall back to existing use of QTMovieView/QTMovieContentView.
18633
18634         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
18635         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
18636         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
18637         (WebCore::MediaPlayerPrivate::createQTMovie):
18638         (WebCore::QTVideoRendererClass):
18639         (WebCore::MediaPlayerPrivate::detachQTMovieView):
18640         (WebCore::MediaPlayerPrivate::createQTVideoRenderer):
18641         (WebCore::MediaPlayerPrivate::destroyQTVideoRenderer):
18642         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
18643         (WebCore::MediaPlayerPrivate::tearDownVideoRendering):
18644         (WebCore::MediaPlayerPrivate::load):
18645         (WebCore::MediaPlayerPrivate::cancelLoad):
18646         (WebCore::MediaPlayerPrivate::setVisible):
18647         (WebCore::MediaPlayerPrivate::paint):
18648         (-[WebCoreMovieObserver newImageAvailable:]):
18649
18650 2008-05-19  Adam Roben  <aroben@apple.com>
18651
18652         Fix Bug 19134: Inspector should support console.assert
18653
18654         <https://bugs.webkit.org/show_bug.cgi?id=19134>
18655
18656         Reviewed by Tim Hatcher.
18657
18658         Test: manual-tests/inspector/console-assert.html
18659
18660         * bindings/js/JSConsoleCustom.cpp:
18661         (WebCore::JSConsole::assertCondition): Added.
18662         * bindings/scripts/CodeGeneratorJS.pm: Added parsing of the
18663         ImplementationFunction extended attribute, which allows you to
18664         override the name of the C++ function used to implement this method.
18665         * manual-tests/inspector/console-assert.html: Added.
18666         * page/Console.cpp:
18667         (WebCore::Console::assertCondition): Added.
18668         * page/Console.h:
18669         * page/Console.idl: Added assert().
18670
18671 2008-05-20  Alice Liu  <alice.liu@apple.com>
18672
18673         Reviewed by Brady.
18674
18675         fix <rdar://problem/5908580> 10A58: Dictionary Panel hangs in WebCore::Cache::pruneDeadResources()
18676
18677         * loader/Cache.cpp:
18678         (WebCore::Cache::requestUserCSSStyleSheet):
18679         Add a call to resourceAccessed() to more closely mirror what is done in requestResource()
18680         (WebCore::Cache::insertInLRUList):
18681         Assert that any resource in the LRU list has been accessed.  This is early detection of a
18682         potential hang later when pruning resources, and also agrees with the early return in 
18683         removeFromLRUList().
18684
18685 2008-05-20  Dan Bernstein  <mitz@apple.com>
18686
18687         Reviewed by Darin Adler.
18688
18689         - fix https://bugs.webkit.org/show_bug.cgi?id=17655
18690           <rdar://problem/5778077> REGRESSION (3.1.1-TOT): Reproducible crash calling querySelector on viewless Document
18691
18692         Test: fast/dom/SelectorAPI/viewless-document.html
18693
18694         * css/CSSStyleSelector.cpp:
18695         (WebCore::CSSStyleSelector::CSSStyleSelector): Updated to initialize the
18696         selector checker.
18697         (WebCore::CSSStyleSelector::init): Removed initialization of
18698         m_collectRulesOnly, which is now part of the selector checker.
18699         (WebCore::CSSStyleSelector::matchRules): Updated for renames and data
18700         moved into the selector checker.
18701         (WebCore::CSSStyleSelector::matchRulesForList): Ditto.
18702         (WebCore::CSSStyleSelector::initForStyleResolve): Added a PseudoId
18703         argument, which is used to initialize a data member of the selector
18704         checker. Updated for renames. Removed initialization of m_isXMLDoc
18705         because this bit is now initialized only once in the selector checker's
18706         constructor.
18707         (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker): Added.
18708         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Changed
18709         into a SelectorChecker method.
18710         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector): Added. Used
18711         by querySelector() and querySelectorAll().
18712         (WebCore::CSSStyleSelector::canShareStyleWithElement): Updated for data
18713         moved into the selector checker.
18714         (WebCore::CSSStyleSelector::matchUARules): Ditto.
18715         (WebCore::CSSStyleSelector::styleForElement):
18716         (WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto. Also removed
18717         code that set the parentStyle variable after the last place it is
18718         accessed, and changed to ensure that m_style is set early in this
18719         function.
18720         (WebCore::CSSStyleSelector::adjustRenderStyle): Updated for data moved
18721         into the selector checker.
18722         (WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
18723         (WebCore::CSSStyleSelector::checkSelector): Ditto. Also changed to pass
18724         the element's style and the parent style to the selector checker, as
18725         well as the dynamic pseudo variable and the selector attributes vector.
18726         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Added
18727         arguments for the style of the base element and its parent. When the
18728         elementStyle argument is 0, the style is fetched from the element
18729         and its parent as needed. Also changed to take a reference to the
18730         dynamic pseudo ID and a pointer to the vector of attributes affecting
18731         the match.
18732         (WebCore::CSSStyleSelector::applyProperty): Updated for data moved
18733         into the selector checker.
18734         (WebCore::CSSStyleSelector::checkForGenericFamilyChange): Ditto.
18735         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Ditto.
18736         (WebCore::CSSStyleSelector::fontSizeForKeyword): Ditto.
18737         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
18738         (WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged):
18739         Changed into a SelectorChecker method.
18740         (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
18741         Ditto.
18742
18743         * css/CSSStyleSelector.h:
18744         Added a SelectorChecker class and moved data and methods used in
18745         checking selectors into it.
18746         (WebCore::CSSStyleSelector::allVisitedStateChanged): Changed to call the
18747         SelectorChecker method.
18748         (WebCore::CSSStyleSelector::visitedStateChanged): Ditto.
18749         * dom/Node.cpp:
18750         (WebCore::Node::querySelector): Changed to use a SelectorChecker instead
18751         of the document's style selector.
18752         * dom/SelectorNodeList.cpp:
18753         (WebCore::SelectorNodeList::SelectorNodeList): Ditto.
18754
18755 2008-05-20  Timothy Hatcher  <timothy@apple.com>
18756
18757         Implements the Profiles panel and Profile view.
18758
18759         Reviewed by Kevin McCullough.
18760
18761         * English.lproj/localizedStrings.js: Added new strings.
18762         * page/inspector/Images/profileIcon.png: Added.
18763         * page/inspector/Images/profilesIcon.png: Changed. New icon design
18764         that fits in with the other toolbar icons.
18765         * page/inspector/ProfileView.js:
18766         (WebInspector.ProfileView): Remove custom table elements
18767         and create a DataGrid. Sorts the profile by descending total time,
18768         since the profiles aren't sorted by default.
18769         (WebInspector.ProfileView.prototype.refresh): Clears the DataGrid
18770         and recreates all the nodes. The selection is preserved.
18771         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Traverse
18772         all the children and change showTotalTimeAsPercent and showSelfTimeAsPercent
18773         to match the ProfileView values. Then call refresh on the child.
18774         (WebInspector.ProfileView.prototype._sortData): Determine the sort
18775         function to call on the head profile node. Call it and then call
18776         refresh to rebuild the DataGrid.
18777         (WebInspector.ProfileView.prototype._mouseDownInDataGrid): Return early
18778         if the event is not a double-click. When it is a double-click, determine
18779         the column that was targeted and if it was total or self toggle the
18780         show as percent property. Call refreshShowAsPercents.
18781         (WebInspector.ProfileDataGridNode): 
18782         (WebInspector.ProfileDataGridNode.prototype.get data): 
18783         (WebInspector.ProfileDataGridNode.prototype.expand): 
18784         (WebInspector.ProfileDataGridNode.prototype.collapse): 
18785         (WebInspector.ProfileDataGridNode.prototype._populate): 
18786         * page/inspector/ProfilesPanel.js:
18787         (WebInspector.ProfilesPanel): 
18788         (WebInspector.ProfilesPanel.prototype.show): Populate the sidebar
18789         with all profiles. This is a workaround until the Inspector
18790         is told about new profiles.
18791         (WebInspector.ProfilesPanel.prototype.reset): Clear the sidebar and
18792         profile views.
18793         (WebInspector.ProfilesPanel.prototype.handleKeyEvent): Pass the key
18794         event to the sidebar.
18795         (WebInspector.ProfilesPanel.prototype.addProfile): Create a
18796         ProfileSidebarTreeElement object and add it to the sidebar.
18797         (WebInspector.ProfilesPanel.prototype.showProfile): Create a ProfileView
18798         and show it.
18799         (WebInspector.ProfilesPanel.prototype.closeVisibleView): Hide the
18800         visible view.
18801         (WebInspector.ProfilesPanel.prototype._startSidebarDragging): Call
18802         WebInspector.elementDragStart.
18803         (WebInspector.ProfilesPanel.prototype._sidebarDragging): Call _updateSidebarWidth.
18804         (WebInspector.ProfilesPanel.prototype._endSidebarDragging):
18805         Call WebInspector.elementDragEnd.
18806         (WebInspector.ProfilesPanel.prototype._updateSidebarWidth): Update the
18807         sidebar width based on the passed in value.
18808         (WebInspector.ProfileSidebarTreeElement): Subclass WebInspector.SidebarTreeElement.
18809         (WebInspector.ProfileSidebarTreeElement.prototype.onselect): Call ProfilesPanel.showProfile.
18810         (WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle): Return profile.title.
18811         (WebInspector.ProfileSidebarTreeElement.prototype.set mainTitle): Do nothing.
18812         (WebInspector.ProfileSidebarTreeElement.prototype.get subtitle): Ditto.
18813         (WebInspector.ProfileSidebarTreeElement.prototype.set subtitle): Ditto.
18814         * page/inspector/inspector.css: New styles for the profile sidebar
18815         item and profile data grid columns.
18816         * page/inspector/inspector.js:
18817         * page/inspector/utilities.js:
18818         (Number.secondsToString): Added a higherResolution argument
18819         that returns fractional milliseconds.
18820
18821 2008-05-20  chris fleizach  <cfleizach@apple.com>
18822
18823         Reviewed by Darin Adler, Alice Liu
18824
18825         <rdar://problem/3438014> Might need accessibility solution for context menus in web pages
18826         <rdar://problem/5060458> Elements without AXActions should not return kAXErrorFailure
18827
18828         * page/AccessibilityObject.cpp:
18829         (WebCore::AccessibilityObject::clickPoint):
18830         * page/AccessibilityObject.h:
18831         * page/mac/AccessibilityObjectWrapper.mm:
18832         (-[AccessibilityObjectWrapper accessibilityActionNames]):
18833         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]):
18834         (-[AccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
18835         (-[AccessibilityObjectWrapper accessibilityShowContextMenu]):
18836         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
18837
18838 2008-05-20  Timothy Hatcher  <timothy@apple.com>
18839
18840         Expose the ProfileNode functionName sorting functions on
18841         JavaScriptProfileNode.
18842
18843         Reviewed by Kevin McCullough.
18844
18845         * page/JavaScriptProfileNode.cpp:
18846         (WebCore::sortFunctionNameDescending): Call ProfileNode.
18847         (WebCore::sortFunctionNameAscending): Ditto.
18848         (WebCore::ProfileNodeClass): Add static functions.
18849
18850 2008-05-20  Darin Adler  <darin@apple.com>
18851
18852         Reviewed by Mitz.
18853
18854         - a first small step of CSS DOM refactoring -- the eventual goal is to
18855           reduce StyleBase and possibly eliminate it, since it has multiple
18856           purposes and unneccessarily ties many classes together
18857
18858         * css/CSSCursorImageValue.cpp:
18859         (WebCore::isSVGCursorIdentifier): Mark static so it has internal linkage.
18860         (WebCore::resourceReferencedByCursorElement): Ditto.
18861         (WebCore::CSSCursorImageValue::CSSCursorImageValue): Removed unused style
18862         argument.
18863         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Removed code to
18864         check if X and Y changed before changing them -- there's no reason to do
18865         that. Removed code that depended on the internals of CSSImageValue. The
18866         new code uses only protected functions rather than going right at the
18867         fields and uing internal knowledge of the base class.
18868         * css/CSSCursorImageValue.h: Added a create function, made constructor
18869         private, removed unused style argument.
18870
18871         * css/CSSImageValue.cpp:
18872         (WebCore::CSSImageValue::CSSImageValue): Removed unused style argument.
18873         (WebCore::CSSImageValue::cachedImageURL): Added. A protected function for
18874         use by CSSCursorImageValue that gives the URL.
18875         (WebCore::CSSImageValue::clearCachedImage): Added. A protected function for
18876         use by CSSCursorImageValue that clears the CachedImage.
18877         * css/CSSImageValue.h: Added create functions, made constructors protected
18878         and private, removed unused style argument, made data members private, added
18879         some protected functions for use by CSSCursorImageValue.
18880
18881         * css/CSSImportRule.cpp:
18882         (WebCore::CSSImportRule::setCSSStyleSheet): Changed to call checkLoaded on
18883         the parent. This is part of preparation to move the checkLoaded function from
18884         StyleBase to StyleSheet.
18885         (WebCore::CSSImportRule::insertedIntoParent): Changed code to check the URL
18886         of the style sheet to use the href function of the style sheet rather than
18887         the baseURL function. This eliminates an O(n^2) algorithm here and reduces
18888         the use of baseURL, part of preparation to move it from StyleBase
18889         to CSSStyleSheet.
18890
18891         * css/CSSMutableStyleDeclaration.cpp:
18892         (WebCore::CSSMutableStyleDeclaration::setImageProperty): Changed to use create
18893         function instead of a direct call to new for the CSSImageValue classes.
18894         * css/CSSParser.cpp:
18895         (WebCore::CSSParser::parseValue): Ditto.
18896         (WebCore::CSSParser::parseContent): Ditto.
18897         (WebCore::CSSParser::parseFillImage): Ditto.
18898         (WebCore::CSSParser::parseBorderImage): Ditto.
18899
18900         * css/CSSStyleSelector.cpp: Removed unneeded include of CSSImageValue.h.
18901         * rendering/style/RenderStyle.h: Removed unneeded include of
18902         CSSCursorImageValue.h, which was causing us to rebuild the world way too often.
18903
18904         * xml/XSLImportRule.cpp:
18905         (WebCore::XSLImportRule::setXSLStyleSheet): See change to CSSImportRule above.
18906         (WebCore::XSLImportRule::loadSheet): Ditto.
18907
18908 2008-05-20  Kevin McCullough  <kmccullough@apple.com>
18909
18910         Rubber stamped by Adam.
18911
18912         -Minor fix. Should not use a reference since the original may disappear.
18913
18914         * page/Console.cpp:
18915         (WebCore::Console::profile):
18916
18917 2008-05-20  Kevin Ollivier  <kevino@theolliviers.com>
18918
18919         wx build fix. userAgent should return a value.
18920
18921         * plugins/wx/PluginViewWx.cpp:
18922         (WebCore::PluginView::userAgent):
18923
18924 2008-05-19  Timothy Hatcher  <timothy@apple.com>
18925
18926         Expose the ProfileNode sorting functions on JavaScriptProfileNode.
18927
18928         Reviewed by Kevin McCullough.
18929
18930         * page/JavaScriptProfileNode.cpp:
18931         (WebCore::sortTotalTimeDescending): Call ProfileNode.
18932         (WebCore::sortTotalTimeAscending): Ditto.
18933         (WebCore::sortSelfTimeDescending): Ditto.
18934         (WebCore::sortSelfTimeAscending): Ditto.
18935         (WebCore::sortCallsDescending): Ditto.
18936         (WebCore::sortCallsAscending): Ditto.
18937         (WebCore::ProfileNodeClass): Add static functions.
18938
18939 2008-05-19  Timothy Hatcher  <timothy@apple.com>
18940
18941         * page/InspectorController.cpp: Change the include for
18942         JavaScriptProfile.h to sue double quotes instead of backets.
18943
18944 2008-05-19  Timothy Hatcher  <timothy@apple.com>
18945
18946         Adds a DataGrid object that is used for multi-column data
18947         and can contain hierarchical content with disclosure arrows.
18948         A lot of DataGrid was copied from treeoutline.js. This change
18949         makes the database views use the DataGrid. It will later be
18950         used by the ProfileView.
18951
18952         Reviewed by Adam Roben.
18953
18954         * page/inspector/DataGrid.js: Added. Most copied from treeoutline.js
18955         and modified to work with table elements.
18956         * page/inspector/DatabaseQueryView.js:
18957         (WebInspector.DatabaseQueryView.prototype._queryFinished):
18958         Call DatabasesPanel.dataGridForResult and adds the inline style to
18959         the DataGrid element.
18960         * page/inspector/DatabaseTableView.js:
18961         (WebInspector.DatabaseTableView.prototype._queryFinished):
18962         Call DatabasesPanel.dataGridForResult.
18963         * page/inspector/DatabasesPanel.js:
18964         (WebInspector.DatabasesPanel.prototype._tableForResult): Removed.
18965         (WebInspector.DatabasesPanel.prototype.dataGridForResult): Added.
18966         Similar to the previous _tableForResult function, but makes a DataGrid.
18967         * page/inspector/inspector.css: Changes to the data-grid
18968         style rules.
18969         * WebCore.vcproj/WebCore.vcproj: Add DataGrid.js.
18970         * page/inspector/WebKit.qrc: Ditto.
18971         * page/inspector/inspector.html: Ditto.
18972
18973 2008-05-19  Kevin McCullough  <kmccullough@apple.com>
18974
18975         Reviewed by Adam.
18976
18977         -build fix.
18978
18979         * bindings/js/JSConsoleCustom.cpp:
18980         (WebCore::JSConsole::profile):
18981         * page/Console.cpp:
18982         (WebCore::Console::profile):
18983         * page/Console.h:
18984         * page/Console.idl:
18985
18986 2008-05-19  Alp Toker  <alp@nuanti.com>
18987
18988         Reviewed by Maciej.
18989
18990         GTK+/soup fixes:
18991
18992         Remove the fragment part of the URL since the file backend doesn't
18993         deal with it.
18994
18995         Fix a typo in the cleanup function.
18996
18997         * platform/network/soup/ResourceHandleSoup.cpp:
18998         (WebCore::cleanupGioOperation):
18999         (WebCore::ResourceHandle::startGio):
19000
19001 2008-05-19  Kevin McCullough  <kmccullough@apple.com>
19002
19003         Reviewed by Adam.
19004
19005         <rdar://problem/5770054> JavaScript profiler (10928)
19006         - Send the executing context to the profiler so it can attribute time
19007         correctly to parent functions when calling profile() and profileEnd()
19008         while nested.
19009
19010         * page/Console.cpp:
19011         (WebCore::Console::profile):
19012         (WebCore::Console::profileEnd):
19013         * page/Console.h:
19014
19015 2008-05-19  Alp Toker  <alp@nuanti.com>
19016
19017         Reviewed by Anders and Beth.
19018
19019         http://bugs.webkit.org/show_bug.cgi?id=16495
19020         [GTK] Accessibility support with ATK/AT-SPI
19021
19022         Initial ATK/AT-SPI accessibility support for the GTK+ port.
19023
19024         * GNUmakefile.am:
19025         * page/AccessibilityObject.cpp:
19026         (WebCore::AccessibilityObject::AccessibilityObject):
19027         (WebCore::AccessibilityObject::detach):
19028         * page/AccessibilityObject.h:
19029         * page/gtk/AXObjectCacheAtk.cpp: Added.
19030         (WebCore::AXObjectCache::detachWrapper):
19031         (WebCore::AXObjectCache::attachWrapper):
19032         (WebCore::AXObjectCache::postNotification):
19033         (WebCore::AXObjectCache::postNotificationToElement):
19034         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
19035         * page/gtk/AccessibilityObjectWrapperAtk.cpp: Added.
19036         (WebCore::AccessibilityObject::wrapper):
19037         (WebCore::AccessibilityObject::setWrapper):
19038         * page/gtk/AccessibilityObjectWrapperAtk.h: Added.
19039
19040 2008-05-19  Anders Carlsson  <andersca@apple.com>
19041
19042         Reviewed by Adam.
19043
19044         <rdar://problem/5946454>
19045         Support navigator.onLine from HTML5.
19046
19047         Add Windows NetworkStateNotifier implementation using the IP Helper API.
19048
19049         * WebCore.vcproj/WebCore.vcproj:
19050         * platform/network/NetworkStateNotifier.h:
19051         (WebCore::updateState):
19052         * platform/network/win/NetworkStateNotifierWin.cpp: Added.
19053         (WebCore::NetworkStateNotifier::updateState):
19054         (WebCore::NetworkStateNotifier::addressChanged):
19055         (WebCore::NetworkStateNotifier::callAddressChanged):
19056         (WebCore::NetworkStateNotifier::addrChangeCallback):
19057         (WebCore::NetworkStateNotifier::registerForAddressChange):
19058         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
19059
19060 2008-05-19  Steve Falkenburg  <sfalken@apple.com>
19061
19062         Disable C4273, C4565 for CSSGrammar.cpp, XPathGrammar.cpp to fix build.
19063         
19064         Reviewed by Adam Roben.
19065
19066         * WebCore.vcproj/WebCore.vcproj:
19067
19068 2008-05-19  Adam Roben  <aroben@apple.com>
19069
19070         Fix Bug 19065: Resources with a space in their URL don't get
19071         error/warning bubbles
19072
19073         <https://bugs.webkit.org/show_bug.cgi?id=19065>
19074
19075         Reviewed by Dan Bernstein.
19076
19077         Test: manual-tests/inspector/errors-with-space in-url.html
19078
19079         * manual-tests/inspector/errors-with-space in-url.html: Added.
19080         * page/Console.cpp:
19081         (WebCore::Console::error):
19082         (WebCore::Console::info):
19083         (WebCore::Console::log):
19084         (WebCore::Console::warn):
19085         Pass the raw URL to the Inspector, not the pretty URL, to match the
19086         URL that was used when initially telling the Inspector about this
19087         resource. We continue to pass the pretty URL to the ChromeClient for
19088         backwards compatibility.
19089
19090 2008-05-19  Stephanie Lewis  <slewis@apple.com>
19091
19092         Reviewed by Darin.
19093
19094         more fast teardown performance work, WebCore plumbing
19095
19096         * page/Chrome.cpp:
19097         (WebCore::Chrome::disableSuddenTermination):
19098         (WebCore::Chrome::enableSuddenTermination):
19099         (WebCore::ChromeClient::disableSuddenTermination):
19100         (WebCore::ChromeClient::enableSuddenTermination):
19101         * page/Chrome.h:
19102         * page/ChromeClient.h:
19103         * page/Page.cpp:
19104         (WebCore::Page::changePendingUnloadEventCount):
19105         (WebCore::Page::changePendingBeforeUnloadEventCount):
19106
19107 2008-05-19  Kuchhal  <kuchal@yahoo.com>
19108
19109         Reviewed by Justin.
19110
19111         <rdar://problem/5863412> Crash when Ctrl C is pressed after a series of specific mouse events (18506)
19112
19113         * editing/markup.cpp:
19114         (WebCore::createMarkup): Null check.
19115
19116 2008-05-19  Chris Fleizach  <cfleizach@apple.com>
19117
19118         Reviewed by Beth Dakin.
19119
19120         <rdar://problem/5912195> CrashTracer: [USER] 1 crash in Mail at -[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]
19121
19122         * page/mac/AccessibilityObjectWrapper.mm:
19123         (visiblePositionForTextMarker):
19124
19125 2008-05-19  Ada Chan  <adachan@apple.com>
19126
19127         Added CookieStorageWin.h/cpp, introducing methods to get/set the current CFHTTPCookieStorageRef.
19128         When setting cookies-related attributes in CFURLRequest, make sure we get them from the
19129         current CFHTTPCookieStorageRef.  Also, set the cookie storage in CFURLRequest.
19130
19131         Reviewed by Steve Falkenburg.
19132
19133         * WebCore.vcproj/WebCore.vcproj:
19134         * platform/network/cf/ResourceHandleCFNet.cpp:
19135         (WebCore::makeFinalRequest):
19136         * platform/network/cf/ResourceRequestCFNet.cpp:
19137         (WebCore::ResourceRequest::doUpdatePlatformRequest):
19138         * platform/network/win/CookieJarCFNetWin.cpp:
19139         (WebCore::setCookies):
19140         (WebCore::cookies):
19141         (WebCore::cookiesEnabled):
19142         * platform/network/win/CookieStorageWin.cpp: Added.
19143         (WebCore::currentCookieStorage):
19144         (WebCore::setCurrentCookieStorage):
19145         * platform/network/win/CookieStorageWin.h: Added.
19146
19147 2008-05-19  Alexey Proskuryakov  <ap@webkit.org>
19148
19149         Reviewed by Darin.
19150
19151         http://bugs.webkit.org/show_bug.cgi?id=18308
19152         SVG Encoding error with fill attribute
19153
19154         This is caused by problems with data: URL loading. Besides what is fixed by this patch,
19155         I filed <rdar://problem/5845875> for CFNetwork.
19156
19157         While at it, fixed a related javascript: URL issue.
19158
19159         Tests: fast/loader/data-url-encoding-html.html
19160                fast/loader/data-url-encoding-svg.html
19161                fast/loader/javascript-url-encoding.html
19162
19163         * platform/KURL.cpp:
19164         (WebCore::KURL::parse): Fix a FIXME, use UTF-8 instead of dropping high bytes. This fixes
19165         javascript: URL handling.
19166         (WebCore::encodeRelativeString): Like mailto: URLs, data: ones are all UTF-8. Restructured
19167         the code to not search for "#" if both parts are to be encoded as UTF-8 anyway.
19168
19169 2008-05-19  Alexey Proskuryakov  <ap@webkit.org>
19170
19171         Reviewed by Darin.
19172
19173         https://bugs.webkit.org/show_bug.cgi?id=18421
19174         <rdar://problem/5857369> XMLHttpRequest does not properly encode & and < in outgoing messages
19175
19176         Test: http/tests/xmlhttprequest/serialize-document.html
19177
19178         * bindings/js/JSXMLHttpRequestCustom.cpp:
19179         (WebCore::JSXMLHttpRequest::send): Use createMarkup() instead of Document::toString().
19180
19181         * dom/Attr.cpp:
19182         * dom/Attr.h:
19183         * dom/Document.cpp:
19184         * dom/Document.h:
19185         * dom/DocumentFragment.cpp:
19186         * dom/DocumentFragment.h:
19187         * dom/Element.cpp:
19188         * dom/Element.h:
19189         * dom/Entity.cpp:
19190         * dom/Entity.h:
19191         * dom/EntityReference.cpp:
19192         * dom/EntityReference.h:
19193         * dom/Node.h:
19194         * dom/Text.cpp:
19195         * dom/Text.h:
19196         * html/HTMLElement.cpp:
19197         * html/HTMLElement.h:
19198         Removed most Node::toString() methods, which were massively wrong, and only used for
19199         XMLHttpRequest::send(). The remanining ones are still used in markup.cpp, but should probably
19200         be folded into it for consistency.
19201
19202 2008-05-19  Anders Carlsson  <andersca@apple.com>
19203
19204         Fix Windows build.
19205         
19206         * plugins/win/PluginViewWin.cpp:
19207         (WebCore::PluginView::userAgentStatic):
19208         (WebCore::PluginView::getValueStatic):
19209         (WebCore::PluginView::getValue):
19210
19211 2008-05-19  Chris Fleizach  <cfleizach@apple.com>
19212
19213         Reviewed by Darin Adler.
19214
19215         <rdar://problem/5935694> AX: crash in text marker range
19216
19217         * page/mac/AccessibilityObjectWrapper.mm:
19218         (textMarkerRangeFromMarkers):
19219
19220 2008-05-19  Darin Adler  <darin@apple.com>
19221
19222         - fix WebKit build
19223
19224         * WebCore.xcodeproj/project.pbxproj: Make CSSReflectionDirection.h "private" instead of "project".
19225
19226 2008-05-19  chris fleizach  <cfleizach@apple.com>
19227
19228         Reviewed by Darin Adler
19229
19230         <rdar://problem/5700830> VO: VoiceOver should fall back to title attr if form element is not labeled
19231
19232         * page/AccessibilityRenderObject.cpp:
19233         (WebCore::AccessibilityRenderObject::title):
19234
19235 2008-05-19  Darin Adler  <darin@apple.com>
19236
19237         Reviewed by Mitz.
19238
19239         - tweak CSSReflectValue, possibly fixing the leaks seen on the buildbot
19240
19241         * WebCore.vcproj/WebCore.vcproj: Added CSSReflectionDirection.h. 
19242         * WebCore.xcodeproj/project.pbxproj: Ditto.
19243         * css/CSSReflectionDirection.h: Added.
19244
19245         * css/CSSComputedStyleDeclaration.cpp:
19246         (WebCore::valueForReflection): Changed to use CSSReflectValue::create.
19247         * css/CSSParser.cpp:
19248         (WebCore::CSSParser::parseReflect): Ditto.
19249
19250         * css/CSSReflectValue.h: Added a create function. Got rid of the setter
19251         functions, which had const PassRefPtr& arguments -- those probably caused
19252         the leaks although I'm not exactly sure why. Made the contructor and all
19253         the data members private.
19254
19255         * rendering/style/RenderStyle.h: Changed to include CSSReflectionDirection.h
19256         instead of CSSReflectValue.h so we can tweak CSSReflectValue without
19257         recompiling the world.
19258
19259 2008-05-19  Holger Hans Peter Freyther  <zecke@selfish.org>
19260
19261         Rubber Stamped by Simon.
19262
19263         Enforce the WebKit Coding Style.
19264
19265         * plugins/PluginView.cpp:
19266         (WebCore::PluginView::load):
19267         (WebCore::PluginView::setValue):
19268         * plugins/gtk/PluginViewGtk.cpp:
19269         (WebCore::PluginView::setFocus):
19270         (WebCore::PluginView::show):
19271         (WebCore::PluginView::hide):
19272         (WebCore::PluginView::attachToWindow):
19273         (WebCore::PluginView::detachFromWindow):
19274         (WebCore::PluginView::getValueStatic):
19275         (WebCore::PluginView::getValue):
19276         * plugins/qt/PluginViewQt.cpp:
19277         (WebCore::PluginView::updateWindow):
19278         (WebCore::PluginView::detachFromWindow):
19279         (WebCore::PluginView::handlePostReadFile):
19280         (WebCore::PluginView::getValueStatic):
19281         (WebCore::PluginView::getValue):
19282
19283 2008-05-14  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
19284
19285         Reviewed by Holger.
19286
19287         https://bugs.webkit.org/show_bug.cgi?id=18882
19288         https://bugs.webkit.org/show_bug.cgi?id=18892
19289         Based also on work by Chris Lord.
19290         
19291         Provides support for NPAPI plugins that pass NULL as their instance
19292         info. There are two kinds:
19293         - Some call NPN_UserAgent and NPN_GetValue before a PluginView has
19294         been created. For those we provide static versions of those functions.
19295         - Others call NPN_* functions with a NULL instance inside NPP_*
19296         calls, for those we've added extra currentPluginView guards.
19297
19298         * plugins/PluginView.cpp: Add additional currentPluginView guards and
19299         some small style changes.
19300         (WebCore::PluginView::start):
19301         (WebCore::PluginView::performRequest):
19302         (WebCore::PluginView::bindingInstance):
19303         (WebCore::PluginView::handlePost):
19304         * plugins/PluginView.h: Added static versions of NPN_UserAgent and
19305         NPN_GetValue.
19306         * plugins/gtk/PluginViewGtk.cpp: Add additional currentPluginView
19307         guards and some small style changes.
19308         (WebCore::PluginView::setNPWindowRect):
19309         (WebCore::PluginView::stop):
19310         (WebCore::PluginView::userAgentStatic): Added to deal with plugins
19311         that query this before having a PluginView.
19312         (WebCore::PluginView::getValueStatic): Added to deal with plugins
19313         that call this before we have created a PluginView.
19314         (WebCore::PluginView::getValue): Moved some code to getValueStatic.
19315         (WebCore::PluginView::init):
19316         * plugins/npapi.cpp: Call PluginView::userAgentStatic
19317         and PluginView::getValueStatic if no PluginView is
19318         present.
19319         (NPN_UserAgent):
19320         (NPN_GetValue):
19321         * plugins/qt/PluginPackageQt.cpp:
19322         (WebCore::PluginPackage::fetchInfo): Corrected split args because ignoring
19323         empty entries crashed.
19324         (WebCore::PluginPackage::load): Resolve all symbols when loading plugins
19325         to protect against XPCOM dependencies.
19326         * plugins/qt/PluginViewQt.cpp: Add additional currentPluginView guards and
19327         some small style changes.
19328         (WebCore::PluginView::updateWindow):
19329         (WebCore::PluginView::setNPWindowRect):
19330         (WebCore::PluginView::stop):
19331         (WebCore::PluginView::userAgentStatic): Added to deal with plugins
19332         that query this before having a PluginView.
19333         (WebCore::PluginView::handlePostReadFile):
19334         (WebCore::PluginView::getValueStatic): Added to deal with plugins
19335         that call this before we have created a PluginView.
19336         (WebCore::PluginView::getValue): Moved some code to getValueStatic.
19337         (WebCore::PluginView::init): m_needsXEmbed init was moved to constructor.
19338
19339 2008-05-19  Alp Toker  <alp@nuanti.com>
19340
19341         GTK+ build fix on Mac. Conditionalize XP_UNIX use.
19342
19343         * plugins/gtk/PluginPackageGtk.cpp:
19344         (WebCore::PluginPackage::fetchInfo):
19345         (WebCore::PluginPackage::load):
19346         * plugins/gtk/PluginViewGtk.cpp:
19347
19348 2008-05-18  Chris Fleizach  <cfleizach@apple.com>
19349
19350         Reviewed by Darin Adler
19351
19352         <rdar://problem/5942076> WebKit can no longer find URL links with VoiceOVer-U command (19100)
19353
19354         * page/AccessibilityObject.h:
19355
19356 2008-05-18  Darin Adler  <darin@apple.com>
19357
19358         Reviewed by Sam.
19359
19360         - fix <rdar://problem/5943569> crash due to stale ownerNode pointer
19361
19362         Test: fast/dom/StyleSheet/ownerNode-lifetime.html
19363
19364         * bindings/js/JSStyleSheetCustom.cpp:
19365         (WebCore::JSStyleSheet::mark): Added code to mark ownerNode. Includes a comment about how
19366         it would be even better to solve this in the DOM rather than just in the JavaScript binding.
19367
19368         * css/StyleSheet.idl: Added CustomMarkFunction attribute.
19369
19370 2008-05-18  Brady Eidson  <beidson@apple.com>
19371
19372         Reviewed by Sam Weinig
19373
19374         Fix for https://bugs.webkit.org/show_bug.cgi?id=19111
19375         Allow `delete storage.itemName` syntax as an alias for `storage.removeItem("itemName")`
19376
19377         Tests: storage/domstorage/localstorage/delete-removal.html
19378                storage/domstorage/sessionstorage/delete-removal.html
19379
19380         * bindings/js/JSStorageCustom.cpp:
19381         (WebCore::JSStorage::deleteProperty): Only do the delete for non-built in properties
19382         * storage/Storage.idl:
19383
19384 2008-05-17  Sam Weinig  <sam@webkit.org>
19385
19386         Reviewed by Mark Rowe.
19387
19388         Re-factor core setRequestHeader logic into setRequestHeaderInternal.
19389
19390         * xml/XMLHttpRequest.cpp:
19391         (WebCore::XMLHttpRequest::sameOriginRequest):
19392         (WebCore::XMLHttpRequest::setRequestHeader):
19393         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
19394         * xml/XMLHttpRequest.h:
19395
19396 2008-05-17  Sam Weinig  <sam@webkit.org>
19397
19398         Reviewed by Mark Rowe.
19399
19400         Differentiate between cancelation errors and generic network error in XHR.
19401
19402         * loader/FrameLoader.cpp:
19403         (WebCore::FrameLoader::requestFromDelegate):
19404         (WebCore::FrameLoader::cancelledError):
19405         * platform/network/ResourceErrorBase.h:
19406         (WebCore::ResourceErrorBase::setIsCancelation):
19407         (WebCore::ResourceErrorBase::isCancelation):
19408         (WebCore::ResourceErrorBase::ResourceErrorBase):
19409         Add state that differentiates between errors created by cancelation and those made
19410         by all other generic network errors as this differentiation is needed by some specs.
19411
19412         * xml/XMLHttpRequest.cpp:
19413         (WebCore::XMLHttpRequest::open):
19414         (WebCore::XMLHttpRequest::loadRequestSynchronously):
19415         (WebCore::XMLHttpRequest::clearResponseEntityBody):
19416         (WebCore::XMLHttpRequest::genericError):
19417         (WebCore::XMLHttpRequest::networkError):
19418         (WebCore::XMLHttpRequest::abortError):
19419         (WebCore::XMLHttpRequest::didFail):
19420         * xml/XMLHttpRequest.h:
19421         * xml/XMLHttpRequestException.h:
19422         (WebCore::XMLHttpRequestException::):
19423         * xml/XMLHttpRequestException.idl:
19424         Add ABORT_ERR. This error cannot be raised with the current WebKit architecture
19425         as it requires the ability to cancel a synchronous XHR, which we cannot currently
19426         do.  It may be possible in the future though.
19427
19428 2008-05-17  Mark Rowe  <mrowe@apple.com>
19429
19430         Reviewed by Sam Weinig.
19431
19432         Including wtf/Platform.h or using any of the macros it defines in headers that may be
19433         included from outside of the WebKit project causes any project using those headers to
19434         fail to build.
19435
19436         * page/mac/WebDashboardRegion.h:
19437
19438 2008-05-17  Sam Weinig  <sam@webkit.org>
19439
19440         Reviewed by Brady Eidson.
19441
19442         Re-factor send() logic a little to make adding cross-site requests easier.
19443
19444         * xml/XMLHttpRequest.cpp:
19445         (WebCore::XMLHttpRequest::send):
19446         (WebCore::XMLHttpRequest::sameOriginRequest):
19447         (WebCore::XMLHttpRequest::loadRequestSynchronously):
19448         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
19449         * xml/XMLHttpRequest.h:
19450
19451 2008-05-16  Anders Carlsson  <andersca@apple.com>
19452
19453         Reviewed by Mitz.
19454
19455         Copy appcache headers.
19456         
19457         * WebCore.vcproj/WebCore.vcproj:
19458
19459 2008-05-16  Antti Koivisto  <antti@apple.com>
19460
19461         Reviewed by Anders.
19462         
19463         Fix <rdar://problem/5934400> 
19464         Movie controller does not update on first load of http://www.apple.com/getamac/ads/
19465         
19466         The issue is that we execute scripts while there are still pending stylesheet loads.
19467         If the script depends on a stylesheet having been applied it may fail.
19468         
19469         This will make external script execution block on external stylesheet loads. A full
19470         fix (as discussed with Hyatt) will also need to block inline script execution.
19471
19472         Test: http/tests/local/stylesheet-and-script-load-order-http.html
19473
19474         * html/HTMLTokenizer.cpp:
19475         (WebCore::HTMLTokenizer::notifyFinished):
19476
19477 2008-05-16  chris fleizach  <cfleizach@apple.com>
19478
19479         Reviewed by Jon Honeycutt
19480
19481         <rdar://problem/5582483> Mail compose area needs to allow AXValue to be settable
19482
19483         * page/AccessibilityRenderObject.cpp:
19484         (WebCore::AccessibilityRenderObject::isReadOnly):
19485         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
19486
19487 2008-05-16  Stephanie Lewis  <slewis@apple.com>
19488
19489         Reviewed by Maciej.
19490
19491         track onbeforeunlaod event counts. Pretty much identical to unload event tracking.
19492         Also rename methods from onunload tracking to be more clear.
19493
19494         increment/decrement event counts when onunload and onbeforeunload events are added/removed
19495         * dom/Document.cpp:
19496         (WebCore::Document::removeHTMLWindowEventListener):
19497         (WebCore::Document::addWindowEventListener):
19498         (WebCore::Document::removeWindowEventListener):
19499         (WebCore::Document::addPendingFrameUnloadEventCount):
19500         (WebCore::Document::removePendingFrameUnloadEventCount):
19501         (WebCore::Document::addPendingFrameBeforeUnloadEventCount):
19502         (WebCore::Document::removePendingFrameBeforeUnloadEventCount):
19503         * dom/Document.h:
19504         
19505         clear onunload count after unload events are dispatched
19506         * loader/FrameLoader.cpp:
19507         (WebCore::FrameLoader::stopLoading):
19508
19509         track onunload and onbeforeunload event counts for each frame
19510         * page/EventHandler.cpp:
19511         (WebCore::EventHandler::EventHandler):
19512         (WebCore::EventHandler::addPendingFrameUnloadEventCount):
19513         (WebCore::EventHandler::removePendingFrameUnloadEventCount):
19514         (WebCore::EventHandler::clearPendingFrameUnloadEventCount):
19515         (WebCore::EventHandler::pendingFrameBeforeUnloadEventCount):
19516         (WebCore::EventHandler::addPendingFrameBeforeUnloadEventCount):
19517         (WebCore::EventHandler::removePendingFrameBeforeUnloadEventCount):
19518         (WebCore::EventHandler::clearPendingFrameBeforeUnloadEventCount):
19519         * page/EventHandler.h:
19520         
19521         clear unbeforeunload count after unbeforeunload events are detached
19522         * page/Frame.cpp:
19523         (WebCore::Frame::shouldClose):
19524
19525         track total event count at page level
19526         * page/Page.cpp:
19527         (WebCore::Page::Page):
19528         (WebCore::Page::changePendingUnloadEventCount):
19529         (WebCore::Page::pendingBeforeUnloadEventCount):
19530         (WebCore::Page::changePendingBeforeUnloadEventCount):
19531         * page/Page.h:
19532
19533 2008-05-16  Anders Carlsson  <andersca@apple.com>
19534
19535         Reviewed by Mitz.
19536
19537         <rdar://problem/5787788>
19538         REGRESSION: fast/loader/xmlhttprequest-missing-file-exception.html fails on Windows.
19539         
19540         Replicate the Mac behavior when a sync load fails.
19541         
19542         * platform/network/cf/ResourceHandleCFNet.cpp:
19543         (WebCore::ResourceHandle::loadResourceSynchronously):
19544
19545 2008-05-16  Anders Carlsson  <andersca@apple.com>
19546
19547         Reviewed by Brady.
19548
19549         Parse and set the headers on the response.
19550
19551         * loader/appcache/ApplicationCacheStorage.cpp:
19552         (WebCore::ApplicationCacheStorage::store):
19553         (WebCore::parseHeader):
19554         (WebCore::parseHeaders):
19555         (WebCore::ApplicationCacheStorage::loadCache):
19556
19557 2008-05-16  Timothy Hatcher  <timothy@apple.com>
19558
19559         Adds the "this" object to the Local scope section of the
19560         Scope Variables pane.
19561
19562         <rdar://problem/5774773> Web Inspector doesn't show the "this"
19563         object in its variables list (10438)
19564
19565         Reviewed by Oliver Hunt.
19566
19567         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
19568         (WebCore::JSJavaScriptCallFrame::thisObject): Returns the thisObject
19569         of the JavaScriptCallFrame impl. Returns jsNull if the impl is invalid.
19570         * page/JavaScriptCallFrame.cpp:
19571         (WebCore::JavaScriptCallFrame::thisObject): Return the thisValue from
19572         the ExecState. Return 0 if m_exec is null.
19573         * page/JavaScriptCallFrame.h:
19574         * page/JavaScriptCallFrame.idl: Add thisObject.
19575         * page/inspector/ObjectPropertiesSection.js:
19576         (WebInspector.ObjectPropertiesSection): Adds two new arguments.
19577         The ignoreHasOwnProperty tells the section to show all properties,
19578         including inherited ones. And extraProperties is an object of
19579         additional properties to show.
19580         (WebInspector.ObjectPropertiesSection.prototype): Honor the
19581         extraProperties and ignoreHasOwnProperty properties.
19582         * page/inspector/ScopeChainSidebarPane.js:
19583         (WebInspector.ScopeChainSidebarPane.prototype.update): Add a this
19584         property to an extra object that is passed to the ObjectPropertiesSection.
19585         Also pass true for ignoreHasOwnProperty since we want to show all properties.
19586
19587 2008-05-16  Anders Carlsson  <andersca@apple.com>
19588
19589         Reviewed by Brady.
19590
19591         Add mimeType and textEncodingName to the resource table.
19592         
19593         * loader/appcache/ApplicationCacheStorage.cpp:
19594         (WebCore::ApplicationCacheStorage::openDatabase):
19595         (WebCore::ApplicationCacheStorage::store):
19596         (WebCore::ApplicationCacheStorage::loadCache):
19597
19598 2008-05-16  Kevin McCullough  <kmccullough@apple.com>
19599
19600         Reviewed by Tim.
19601
19602         <rdar://problem/5770054> JavaScript profiler (10928)
19603         Use a Vector instead of a Deque since we don't use the extra capabilities
19604         of the Deque.
19605
19606         * page/JavaScriptProfileNode.cpp:
19607         (WebCore::getChildren):
19608         (WebCore::toJS):
19609
19610 2008-05-16  Anders Carlsson  <andersca@apple.com>
19611
19612         Reviewed by Brady.
19613
19614         Add a version table to the database.
19615
19616         * loader/appcache/ApplicationCacheStorage.cpp:
19617         (WebCore::ApplicationCacheStorage::verifySchemaVersion):
19618         (WebCore::ApplicationCacheStorage::openDatabase):
19619         * loader/appcache/ApplicationCacheStorage.h:
19620
19621 2008-05-16  Timothy Hatcher  <timothy@apple.com>
19622
19623         Adds the ability to evaluate expressions in the local scope
19624         of the selected call frame.
19625
19626         https://bugs.webkit.org/show_bug.cgi?id=19052
19627
19628         Reviewed by Geoff Garen.
19629
19630         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
19631         (WebCore::JSJavaScriptCallFrame::evaluate): Pass the exception
19632         from evaluate to the calling ExecState.
19633         * page/JavaScriptCallFrame.cpp:
19634         (WebCore::JavaScriptCallFrame::evaluate): Added an exception out
19635         argument. Simplified the code by calling KJS:eval directly.
19636         * page/JavaScriptCallFrame.h: Change evalutate to take an exception
19637         out argument.
19638         * page/inspector/Console.js: Check if the debugger is paused and
19639         call evaluateInSelectedCallFrame on the Scripts panel.
19640         * page/inspector/ScriptsPanel.js: Added a paused getter and
19641         evaluateInSelectedCallFrame which does the evaluation and updates
19642         the scope variables pane afterwards.
19643
19644 2008-05-16  Timothy Hatcher  <timothy@apple.com>
19645
19646         Fixed the bug where the Inspector node highlight would not show
19647         in the correct place for nodes in frames.
19648
19649         <rdar://problem/5712834> Elements in iframes are highlighted incorrectly (14408)
19650
19651         Reviewed by John Sullivan.
19652
19653         * page/InspectorController.cpp:
19654         (WebCore::convertFromFrameToMainFrame): Helper function to convert
19655         IntRect coordinates from one frame to the main frame.
19656         (WebCore::InspectorController::drawNodeHighlight): Call the
19657         convertFromFrameToMainFrame helper for all the rects we get from
19658         the node since they are in the owner frame's coordinate space.
19659
19660 2008-05-16  Julien Chaffraix  <jchaffraix@webkit.org>
19661
19662         Reviewed by Eric.
19663
19664         Preparatory work for bug 9191: JS*ElementWrapperFactory should be autogenerated
19665
19666         Make video tags use a header guard so that make_names.pl for factory generation.
19667
19668         - Add video tag guard in HTMLTagNames.in & give an extraDefines parameter to make_names.pl
19669         when generating HTMLNames.
19670
19671         - Modify the different build systems to accomodate the new parameter.
19672
19673         - Small make_names.pl clean up (mainly code generated coding style issue).
19674
19675         * DerivedSources.make: Add HTML_FLAGS and pass it to make_names.pl
19676         if it is defined (similar to SVG) 
19677
19678         * GNUmakefile.am: Add HTML_FEATURES & HTML_FLAGS and pass it to
19679         make_names.pl if HTML_FLAGS is defined.
19680
19681         * WebCore.pro: Pass $${DEFINES} to make_names.pl.
19682
19683         * dom/make_names.pl: 
19684         * html/HTMLElement.cpp:
19685         (WebCore::inlineTagList): Add ENABLE(VIDEO) guard.
19686         * html/HTMLTagNames.in: Ditto.
19687
19688 2008-05-16  Anders Carlsson  <andersca@apple.com>
19689
19690         Reviewed by Mitz.
19691
19692         Fire progress events.
19693         
19694         * loader/appcache/ApplicationCacheGroup.cpp:
19695         (WebCore::ApplicationCacheGroup::startLoadingEntry):
19696
19697 2008-05-16  Anders Carlsson  <andersca@apple.com>
19698
19699         Reviewed by John.
19700
19701         Handle the case where the main resource load is cancelled while the cache attempt is in progress.
19702         
19703         * loader/DocumentLoader.cpp:
19704         (WebCore::DocumentLoader::mainReceivedError):
19705         Tell the group that the main resource failed to load.
19706         
19707         * loader/appcache/ApplicationCacheGroup.cpp:
19708         (WebCore::ApplicationCacheGroup::failedLoadingMainResource):
19709         Call cacheUpdateFailed.
19710         
19711         (WebCore::ApplicationCacheGroup::cacheUpdateFailed):
19712         Stop loading if the update failed.
19713         
19714         * loader/appcache/ApplicationCacheGroup.h:
19715
19716 2008-05-16  Chris Fleizach  <cfleizach@apple.com>
19717
19718         Reviewed by Alice Liu
19719
19720         <rdar://problem/5710317> REGRESSION:Selecting ranges of text should be possible using the keyboard (15310)
19721
19722         * WebCore.base.exp:
19723         * editing/VisiblePosition.cpp:
19724         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
19725         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
19726         * page/AXObjectCache.cpp:
19727         * page/AXObjectCache.h:
19728         (WebCore::AXObjectCache::enableEnhancedUserInterfaceAccessibility):
19729         (WebCore::AXObjectCache::accessibilityEnabled):
19730         (WebCore::AXObjectCache::accessibilityEnhancedUserInterfaceEnabled):
19731         * page/AccessibilityRenderObject.cpp:
19732         (WebCore::AccessibilityRenderObject::visiblePositionRange):
19733         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
19734         (WebCore::AccessibilityRenderObject::addChildren):
19735         (WebCore::AccessibilityRenderObject::actionVerb):
19736         * page/EventHandler.cpp:
19737         (WebCore::EventHandler::handleKeyboardSelectionMovement):
19738         (WebCore::EventHandler::defaultKeyboardEventHandler):
19739         * page/EventHandler.h:
19740
19741 2008-05-15  Ariya Hidayat  <ariya.hidayat@trolltech.com>
19742
19743         Reviewed by Simon.
19744
19745         Since WebKitGtk is fully using autotools now, clean-up the .pro/.pri files
19746         from gtk-port.
19747
19748         * WebCore.pro:
19749
19750 2008-05-16  Simon Hausmann  <hausmann@webkit.org>
19751
19752         Fix the Gtk build.
19753
19754         * GNUmakefile.am: Added rendering/style to the include paths.
19755
19756 2008-05-16  Simon Hausmann  <hausmann@webkit.org>
19757
19758         Fix the Qt build.
19759
19760         * WebCore.pro: Added rendering/style to the include paths
19761         * page/AXObjectCache.cpp:
19762         (WebCore::AXObjectCache::handleActiveDescendantChanged): Don't compile
19763         this method unless a17n is enabled.
19764
19765 2008-05-15  Rob Buis  <buis@kde.org>
19766
19767         Reviewed by Dave Hyatt.
19768
19769         https://bugs.webkit.org/show_bug.cgi?id=17433
19770         getComputedStyle() -> clip returns empty string
19771
19772         Make getComputedStyle return a shape value for clip
19773         if it is set.
19774
19775         Tests: fast/css/getPropertyValue-clip.html
19776
19777         * css/CSSComputedStyleDeclaration.cpp:
19778         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
19779
19780 2008-05-15  Kevin Ollivier  <kevino@theolliviers.com>
19781
19782         wx build fix. Add rendering/style to includes dir.
19783
19784         * webcore-base.bkl:
19785
19786 2008-05-15  Alice Liu  <alice.liu@apple.com>
19787
19788         Reviewed by Beth Dakin.
19789
19790         Fixed <rdar://problem/5882283> Implement ARIA aria-activedescendant
19791         Also added support for aria roles listbox and option, and aria-selected, 
19792         and aria-multiselectable for listboxes
19793
19794         * dom/Element.cpp:
19795         (WebCore::Element::attributeChanged):
19796         * dom/Element.h:
19797         * dom/StyledElement.cpp:
19798         (WebCore::StyledElement::attributeChanged):
19799         * html/HTMLAttributeNames.in:
19800         * page/AXObjectCache.cpp:
19801         (WebCore::AXObjectCache::handleActiveDescendantChanged):
19802         * page/AXObjectCache.h:
19803         (WebCore::AXObjectCache::accessibilityEnabled):
19804         (WebCore::AXObjectCache::handleActiveDescendantChanged):
19805         * page/AccessibilityListBox.cpp:
19806         (WebCore::AccessibilityListBox::selectedChildren):
19807         (WebCore::AccessibilityListBox::visibleChildren):
19808         * page/AccessibilityListBox.h:
19809         * page/AccessibilityListBoxOption.h:
19810         (WebCore::AccessibilityListBoxOption::selectedChildren):
19811         (WebCore::AccessibilityListBoxOption::visibleChildren):
19812         * page/AccessibilityObject.cpp:
19813         * page/AccessibilityObject.h:
19814         (WebCore::AccessibilityObject::isListBox):
19815         (WebCore::AccessibilityObject::shouldFocusActiveDescendant):
19816         (WebCore::AccessibilityObject::activeDescendant):
19817         (WebCore::AccessibilityObject::handleActiveDescendantChanged):
19818         * page/AccessibilityRenderObject.cpp:
19819         (WebCore::AccessibilityRenderObject::title):
19820         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
19821         (WebCore::AccessibilityRenderObject::focusedUIElement):
19822         (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant):
19823         (WebCore::AccessibilityRenderObject::activeDescendant):
19824         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
19825         (WebCore::RoleEntry::):
19826         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
19827         (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
19828         (WebCore::AccessibilityRenderObject::selectedChildren):
19829         (WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
19830         (WebCore::AccessibilityRenderObject::visibleChildren):
19831         * page/AccessibilityRenderObject.h:
19832         (WebCore::AccessibilityRenderObject::isDetached):
19833         * page/mac/AccessibilityObjectWrapper.mm:
19834         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
19835
19836 2008-05-15  Timothy Hatcher  <timothy@apple.com>
19837
19838         Adds an error and warning count indicator at the bottom right in the
19839         Inspector's status bar.
19840
19841         https://bugs.webkit.org/show_bug.cgi?id=18650
19842
19843         Initial implementation by Adam Roben.
19844         Reviewed by Sam Weinig.
19845
19846         Test: manual-tests/inspector/error-warning-count.html
19847
19848         * English.lproj/localizedStrings.js: Added new strings.
19849         * manual-tests/inspector/error-warning-count.html: Added.
19850         * page/inspector/Console.js:
19851         (WebInspector.Console.prototype.show): Don't do anything if visible.
19852         (WebInspector.Console.prototype.hide): Don't do anything if hidden.
19853         Temporally set properties and classes to mimic the post-animation
19854         values so panels like Elements in their updateStatusBarItems call will
19855         size things to fit the final location. 
19856         * page/inspector/ElementsPanel.js:
19857         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
19858         Account for the #error-warning-count width when sizing breadcrumbs. 
19859         * page/inspector/Resource.js:
19860         (WebInspector.Resource.prototype.set errors): Update the global error count.
19861         (WebInspector.Resource.prototype.set warnings): Update the global warning count.
19862         * page/inspector/inspector.css: Make .hidden's display property
19863         !important to ensure things really hide, and added styling for the new
19864         #error-warning-count element.
19865         * page/inspector/inspector.html: Added an #error-warning-count div
19866         in the #anchored-status-bar-items div.
19867         * page/inspector/inspector.js:
19868         (WebInspector.get errors): Added.
19869         (WebInspector.set errors): Added. Calls _updateErrorAndWarningCounts.
19870         (WebInspector.get warnings): Added.
19871         (WebInspector.set warnings): Added. Calls _updateErrorAndWarningCounts.
19872         (WebInspector._updateErrorAndWarningCounts): Added. Update the
19873         #error-warning-count div with the current error/warning count.
19874         (WebInspector.loaded): Add a click event listener to the
19875         #error-warning-count element that will show the Console. Call
19876         _updateErrorAndWarningCounts to display the initial error/warning counts.
19877
19878 2008-05-15  Timothy Hatcher  <timothy@apple.com>
19879
19880         Fixes a bug in the view source parsing of text within <script>,
19881         <style>, <xmp>, <textarea> and other special tags. The text was
19882         being parsed as HTML and would be syntax highlighted if a "<"
19883         was encountered.
19884
19885         <rdar://problem/5790805> Inspector's source view missing some words,
19886         doubles others in JS source in <script> tag (17752)
19887
19888         Reviewed by Dave Hyatt.
19889
19890         Added test: fast/frames/viewsource-plain-text-tags.html
19891
19892         * html/HTMLTokenizer.cpp:
19893         (WebCore::HTMLTokenizer::scriptHandler): Set scriptCodeSize and
19894         scriptCodeResync to zero before an early return in view source mode.
19895         This was causing text from a previous script tag to show up in
19896         then next style tag.
19897         (WebCore::HTMLTokenizer::parseTag): Enter an if block in view source
19898         mode even if n is null. The n is property guarded in other places
19899         and not used by view source mode. Removes a redundant null check on n.
19900         Add a new null check of n before setting scriptSrcCharset. Other code
19901         in HTMLTokenizer is already guarded for this code path. 
19902
19903 2008-05-15  Timothy Hatcher  <timothy@apple.com>
19904
19905         Changes the Web Inspector node highlight to be less aggressive
19906         and only highlight when hovering over the selected node in the DOM
19907         tree or breadcrumbs. You can highlight on hover for any node if
19908         you hold down the Alt/Option key while hovering.
19909
19910         Reviewed by Kevin McCullough.
19911
19912         * page/inspector/ElementsPanel.js:
19913         * page/inspector/inspector.js:
19914
19915 2008-05-15  Stephanie Lewis  <slewis@apple.com>
19916
19917         Fix windows build
19918
19919         * loader/FrameLoader.cpp:
19920         (WebCore::FrameLoader::stopLoading):
19921
19922 2008-05-15  Stephanie Lewis  <slewis@apple.com>
19923
19924         Reviewed by Anders.
19925         
19926         export a symbol needed for fast teardown
19927
19928         * WebCore.base.exp:
19929
19930 2008-05-15  Stephanie Lewis  <slewis@apple.com>
19931
19932         Reviewed by Anders.
19933
19934         Keep track on pending unload event counts
19935
19936         No change in behavior so no new tests, but I am dumping the 
19937         unload event count to track the new variable.
19938
19939         * WebCore.base.exp:
19940
19941         increment/decrement the count when an event is added/removed
19942         * dom/Document.cpp:
19943         (WebCore::Document::removeHTMLWindowEventListener):
19944         (WebCore::Document::addWindowEventListener):
19945         (WebCore::Document::removeWindowEventListener):
19946         (WebCore::Document::setPendingFrameUnloadEventCount):
19947         * dom/Document.h:
19948
19949         set the count to 0 for each frame after the unload event has been dispatched
19950         * loader/FrameLoader.cpp:
19951         (WebCore::FrameLoader::stopLoading):
19952
19953         keep track of the number of pending unload events for the eventHandler's frame
19954         * page/EventHandler.cpp:
19955         (WebCore::EventHandler::EventHandler):
19956        (WebCore::EventHandler::pendingFrameUnloadEventCount):
19957         (WebCore::EventHandler::setPendingFrameUnloadEventCount):
19958         * page/EventHandler.h:
19959
19960         keep track of the total number of pending unload events for all of the frames
19961         * page/Page.cpp:
19962         (WebCore::Page::Page):
19963         (WebCore::Page::pendingUnloadEventCount):
19964         (WebCore::Page::setPendingUnloadEventCount):
19965         * page/Page.h:
19966
19967 2008-05-15  Steve Falkenburg  <sfalken@apple.com>
19968
19969         Fix build.
19970
19971         * WebCore.vcproj/WebCore.vcproj:
19972
19973 2008-05-15  Steve Falkenburg  <sfalken@apple.com>
19974
19975         Fix build.
19976
19977         * WebCore.vcproj/WebCore.vcproj:
19978
19979 2008-05-15  Steve Falkenburg  <sfalken@apple.com>
19980
19981         Fix build.
19982
19983         * WebCore.vcproj/WebCore.vcproj:
19984
19985 2008-05-15  David Kilzer  <ddkilzer@apple.com>
19986
19987         Bug 19085: font-family: initial sets font-family differently than font: initial
19988
19989         <https://bugs.webkit.org/show_bug.cgi?id=19085>
19990         <rdar://problem/5939391>
19991
19992         Reviewed by David Hyatt.
19993
19994         Test: fast/css/font-family-initial.html
19995
19996         * css/CSSStyleSelector.cpp:
19997         (WebCore::CSSStyleSelector::applyProperty): Don't set family if first
19998         family of initial font description is empty.
19999
20000 2008-05-15  David Hyatt  <hyatt@apple.com>
20001
20002         Move RenderStyle into a new subdirectory, rendering/style/, in preparation for breaking it up into
20003         a bunch of smaller files.
20004
20005         Reviewed by Dan Bernstein
20006
20007         * GNUmakefile.am:
20008         * WebCore.pro:
20009         * WebCore.vcproj/WebCore.vcproj:
20010         * WebCore.xcodeproj/project.pbxproj:
20011         * WebCoreSources.bkl:
20012         * rendering/RenderStyle.cpp: Removed.
20013         * rendering/RenderStyle.h: Removed.
20014         * rendering/style: Added.
20015         * rendering/style/RenderStyle.cpp: Copied from rendering/RenderStyle.cpp.
20016         * rendering/style/RenderStyle.h: Copied from rendering/RenderStyle.h.
20017
20018 2008-05-15  David Kilzer  <ddkilzer@apple.com>
20019
20020         Fix leaks when stopping a page from loading
20021
20022         Patch suggested by Antti.  Reviewed by Antti.
20023
20024         * loader/DocLoader.cpp:
20025         (WebCore::DocLoader::clearPreloads): If a resource is in m_preloads but
20026         never made it to the cache, delete it to prevent it from leaking.
20027
20028 2008-05-15  Julien Chaffraix  <jchaffraix@webkit.org>
20029
20030         Reviewed by Darin.
20031
20032         https://bugs.webkit.org/show_bug.cgi?id=13942
20033         ASSERTION FAILED: !attrName.contains('/') in HTMLTokenizer.cpp:132 when loading http://bamanzi.blogeden.cn/
20034
20035         In HTML, when an attribute was null (for example when we parse '="somevalue"'
20036         (attribute forgotten or there is a space between the attribute and the '=')),
20037         the fallback was to assign the value to the attribute. However if the value was
20038         a url or did contain a '/', we would trigger the assertion.
20039
20040         To avoid that, we check the value before assigning it now and do not assign it
20041         if it means adding a '/'.
20042
20043         Test: fast/parser/assertion-empty-attribute.html
20044
20045         * html/HTMLTokenizer.cpp:
20046         (WebCore::HTMLTokenizer::parseTag): Add check for '/' in value before
20047         assigning it to an attribute when the attribute is null.
20048
20049 2008-05-15  Kevin Ollivier  <kevino@theolliviers.com>
20050
20051         wx build fix for recent breakages. Add EventLoopWx.cpp, update the Bakefiles,
20052         and add stubs for new Plugins functions. Also move plugin functions outside of
20053         TemporaryLinkStubs.cpp so that they are more noticeable.
20054
20055         * WebCoreSources.bkl:
20056         * platform/wx/EventLoopWx.cpp: Added.
20057         (WebCore::EventLoop::cycle):
20058         * platform/wx/TemporaryLinkStubs.cpp:
20059         * plugins/wx: Added.
20060         * plugins/wx/PluginDataWx.cpp: Added.
20061         (WebCore::PluginData::initPlugins):
20062         (WebCore::PluginData::refresh):
20063         * plugins/wx/PluginDatabaseWx.cpp: Added.
20064         (WebCore::PluginDatabase::getPluginPathsInDirectories):
20065         (WebCore::PluginDatabase::defaultPluginDirectories):
20066         (WebCore::PluginDatabase::isPreferredPluginDirectory):
20067         * plugins/wx/PluginPackageWx.cpp: Added.
20068         (WebCore::PluginPackage::determineQuirks):
20069         (WebCore::PluginPackage::fetchInfo):
20070         (WebCore::PluginPackage::load):
20071         (WebCore::PluginPackage::hash):
20072         (WebCore::PluginPackage::equal):
20073         (WebCore::PluginPackage::compareFileVersion):
20074         * plugins/wx/PluginViewWx.cpp: Added.
20075         (WebCore::PluginView::updateWindow):
20076         (WebCore::PluginView::setFocus):
20077         (WebCore::PluginView::show):
20078         (WebCore::PluginView::hide):
20079         (WebCore::PluginView::paint):
20080         (WebCore::PluginView::handleKeyboardEvent):
20081         (WebCore::PluginView::handleMouseEvent):
20082         (WebCore::PluginView::setParent):
20083         (WebCore::PluginView::setNPWindowRect):
20084         (WebCore::PluginView::attachToWindow):
20085         (WebCore::PluginView::detachFromWindow):
20086         (WebCore::PluginView::stop):
20087         (WebCore::PluginView::userAgent):
20088         (WebCore::PluginView::handlePostReadFile):
20089         (WebCore::PluginView::getValue):
20090         (WebCore::PluginView::invalidateRect):
20091         (WebCore::PluginView::invalidateRegion):
20092         (WebCore::PluginView::forceRedraw):
20093         (WebCore::PluginView::~PluginView):
20094         (WebCore::PluginView::init):
20095         * webcore-wx.bkl:
20096
20097 2008-05-15  Adam Treat  <treat@kde.org>
20098
20099         Reviewed by Simon.
20100
20101         Don't try to setCompositionMode for devices that do not support PorterDuff
20102
20103         * platform/graphics/qt/GraphicsContextQt.cpp:
20104         (WebCore::TransparencyLayer::TransparencyLayer):
20105         (WebCore::GraphicsContext::strokeRect):
20106         (WebCore::GraphicsContext::clip):
20107
20108 2008-05-15  Adele Peterson  <adele@apple.com>
20109
20110         Reviewed and landed by Alexey.
20111
20112         Use TextIterator in +[NSAttributedString _web_attributedStringFromRange:].
20113
20114         * WebCore.base.exp: Exported TextIterator methods.
20115
20116 2008-05-15  Simon Hausmann  <hausmann@webkit.org>
20117
20118         Fix the Qt build by adding NetworkStateNotifier.cpp to the build.
20119
20120         * WebCore.pro:
20121
20122 2008-05-14  Dan Bernstein  <mitz@apple.com>
20123
20124         Reviewed by Mark Rowe.
20125
20126         - fix <rdar://problem/5907633> Memory corruption after closing a document that uses box-reflect
20127
20128         Test: fast/reflections/teardown-crash.html
20129
20130         * rendering/RenderLayer.cpp:
20131         (WebCore::RenderLayer::~RenderLayer): Changed to not call removeLayers()
20132         on the reflection if the document is being destroyed, because in that
20133         case the layer tree is not being maintained.
20134
20135 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
20136
20137         Reviewed by Tim.
20138
20139         <rdar://problem/5770054> JavaScript profiler (10928)
20140         - Expose the new Profiler functions to the WebInspector.
20141
20142         * page/JavaScriptProfileNode.cpp:
20143         (WebCore::getTotalPercent):
20144         (WebCore::getSelfPercent):
20145         (WebCore::ProfileNodeClass):
20146
20147 2008-05-14  Timothy Hatcher  <timothy@apple.com>
20148
20149         Fixes a crash in JavaScriptDebugServer::returnEvent when debugging
20150         code that contains an eval. This change makes stepping into eval
20151         code work as expected.
20152
20153         http://bugs.webkit.org/show_bug.cgi?id=19038
20154
20155         Reviewed by Kevin McCullough.
20156
20157         Tested with: manual-tests/inspector/returnEvent-crash.html
20158
20159         * manual-tests/inspector/returnEvent-crash.html: Added.
20160         * page/JavaScriptDebugServer.cpp:
20161         (WebCore::JavaScriptDebugServer::sourceParsed): Adds #ifdefed
20162         debugging code to prevent the sourceID and URL.
20163         (WebCore::updateCurrentCallFrame): Added. A helper function that
20164         is called from all 4 of the debugger hooks below. This function will
20165         update and/or create JavaScriptCallFrames to match the exec state,
20166         sourceID and lineNumber passed into it. Contains #ifdefed debugging
20167         code that was helpful while fixing this bug.
20168         (WebCore::JavaScriptDebugServer::callEvent): Call updateCurrentCallFrame
20169         before pauseIfNeeded.
20170         (WebCore::JavaScriptDebugServer::atStatement): Ditto.
20171         (WebCore::JavaScriptDebugServer::returnEvent): Ditto.
20172         (WebCore::JavaScriptDebugServer::exception): Ditto.
20173
20174 2008-05-14  Alp Toker  <alp@nuanti.com>
20175
20176         GTK+ build fix for r33457. Add NetworkStateNotifier.cpp to the build.
20177
20178         * GNUmakefile.am:
20179
20180 2008-05-14  Alp Toker  <alp@nuanti.com>
20181
20182         GTK+ build fix. Include value.h from kjs, not JavaScriptCore.
20183
20184         * page/JavaScriptProfile.cpp:
20185         * page/JavaScriptProfileNode.cpp:
20186
20187 2008-05-14  Adam Roben  <aroben@apple.com>
20188
20189         Windows release build fix
20190
20191         * WebCore.vcproj/WebCore.vcproj: Make sure the warnings we disable on
20192         XPathGrammar.cpp are disabled for all configurations, not just
20193         Debug_Internal.
20194
20195 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
20196
20197         Reviewed by Sam.
20198
20199         <rdar://problem/5770054> JavaScript profiler (10928)
20200         - Rename FunctionCallProfile to ProfileNode
20201
20202         * ForwardingHeaders/profiler/FunctionCallProfile.h: Removed.
20203         * ForwardingHeaders/profiler/ProfileNode.h: Copied from ForwardingHeaders/profiler/FunctionCallProfile.h.
20204         * GNUmakefile.am:
20205         * WebCore.pro:
20206         * WebCore.vcproj/WebCore.vcproj:
20207         * WebCore.xcodeproj/project.pbxproj:
20208         * WebCoreSources.bkl:
20209         * page/JavaScriptFunctionCallProfile.cpp: Removed.
20210         * page/JavaScriptFunctionCallProfile.h: Removed.
20211         * page/JavaScriptProfile.cpp:
20212         * page/JavaScriptProfileNode.cpp: Copied from page/JavaScriptFunctionCallProfile.cpp.
20213         (WebCore::ProfileNodeCache):
20214         (WebCore::getFunctionName):
20215         (WebCore::getTotalTime):
20216         (WebCore::getSelfTime):
20217         (WebCore::getNumberOfCalls):
20218         (WebCore::getChildren):
20219         (WebCore::finalize):
20220         (WebCore::ProfileNodeClass):
20221         (WebCore::toJS):
20222         * page/JavaScriptProfileNode.h: Copied from page/JavaScriptFunctionCallProfile.h.
20223
20224 2008-05-13  Beth Dakin  <bdakin@apple.com>
20225
20226         Reviewed by Brady.
20227
20228         This patch adds support for the ARIA progressbar role and the 
20229         following ARIA states (ie HTML attributes): aria-checked, aria-
20230         level, aria-pressed, aria-valuenow, aria-valuemin, and aria-
20231         valuemax.
20232
20233         * html/HTMLAttributeNames.in:
20234         * page/AccessibilityObject.h:
20235         (WebCore::AccessibilityObject::isProgressIndicator):
20236         (WebCore::AccessibilityObject::valueForRange):
20237         (WebCore::AccessibilityObject::maxValueForRange):
20238         (WebCore::AccessibilityObject::minValueForRange):
20239         * page/AccessibilityRenderObject.cpp:
20240         (WebCore::AccessibilityRenderObject::isProgressIndicator):
20241         (WebCore::AccessibilityRenderObject::isPressed): Check the aria-
20242         pressed attribute if this is an ARIA button.
20243         (WebCore::AccessibilityRenderObject::headingLevel): Check the aria-
20244         level attribute if this is an ARIA heading.
20245         (WebCore::AccessibilityRenderObject::intValue): Check the aria-
20246         checked attribute if this is an ARIA radio button or checkbox.
20247         (WebCore::AccessibilityRenderObject::valueForRange):
20248         (WebCore::AccessibilityRenderObject::maxValueForRange):
20249         (WebCore::AccessibilityRenderObject::minValueForRange):
20250         (WebCore::RoleEntry::):
20251         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
20252         * page/AccessibilityRenderObject.h:
20253         * page/mac/AccessibilityObjectWrapper.mm:
20254         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
20255         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
20256
20257 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
20258
20259         Reviewed by John.
20260
20261         -<rdar://problem/5770054> JavaScript profiler (10928)
20262         Use the FunctionCallProfile's new total and self time functions.
20263
20264         * page/JavaScriptFunctionCallProfile.cpp:
20265         (WebCore::getTotalTime):
20266         (WebCore::getSelfTime):
20267
20268 2008-05-14  Anders Carlsson  <andersca@apple.com>
20269
20270         Reviewed by Adam.
20271
20272         Don't try to store the resource data if it's empty.
20273         
20274         * loader/appcache/ApplicationCacheStorage.cpp:
20275         (WebCore::ApplicationCacheStorage::store):
20276
20277 2008-05-14  Adam Roben  <aroben@apple.com>
20278
20279         Windows build fix
20280
20281         * platform/network/NetworkStateNotifier.cpp: Added a missing #include.
20282         * platform/network/NetworkStateNotifier.h:
20283         (WebCore::NetworkStateNotifier::NetworkStateNotifier): Removed 'void'
20284         return type from the constructor, and fixed the spelling of a member
20285         variable.
20286
20287 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
20288
20289         Reviewed by Adam.
20290
20291         <rdar://problem/5770054> JavaScript profiler (10928)
20292         - Add support for interacting with the JavaScriptCore profiler.
20293
20294         * ForwardingHeaders/profiler/FunctionCallProfile.h: Added.
20295         * ForwardingHeaders/profiler/Profile.h: Added.
20296         * GNUmakefile.am: Add the new files to all the projects.
20297         * WebCore.pro:
20298         * WebCore.vcproj/WebCore.vcproj:
20299         * WebCore.xcodeproj/project.pbxproj:
20300         * WebCoreSources.bkl:
20301         * page/InspectorController.cpp: Add the ability to retrieve all of the
20302         profiles in JavaScript from the InspectorController.
20303         (WebCore::allProfiles):
20304         (WebCore::InspectorController::windowScriptObjectAvailable):
20305         * page/JavaScriptFunctionCallProfile.cpp: Added. Wrapper around the JSC
20306         FunctionCallProfile.
20307         (WebCore::functionCallProfileCache): This cache makes sure we don't
20308         needlessly create duplicate wrappers around the same
20309         FunctionCallProfile*.
20310         (WebCore::getFunctionName): Callback to return the name of the function.
20311         (WebCore::getTotalTime): Callback to return the total time spent in the
20312         function.
20313         (WebCore::getSelfTime): Callback to return the time spent in self (total
20314         - time in children) in the function.
20315         (WebCore::getNumberOfCalls): Callback to return the number of times this
20316         function was called.
20317         (WebCore::getChildren): Callback to return the children of this function
20318         where the children are the functions this function called.
20319         (WebCore::finalize): Cleanup.
20320         (WebCore::functionCallProfileClass): Define the JSClassRef for this
20321         object.
20322         (WebCore::toJS): Create a conversion function to make a usable JSValue
20323         to wrap the FunctionCallProfile in JSC.
20324         * page/JavaScriptFunctionCallProfile.h: Added.
20325         * page/JavaScriptProfile.cpp: Added. Wrapper around the JSC Profile.
20326         (WebCore::profileCache): This cache makes sure we don't needlessly
20327         create duplicate wrappers aroudn the same Profile*.
20328         (WebCore::getHeadCallback): Callback to return the head of the graph of
20329         the functions profiled durring this profile's run.
20330         (WebCore::finalize):
20331         (WebCore::profileClass): Define the JSClassRef for this object.
20332         (WebCore::toJS): Create a conversion function to make a usable JSValue
20333         to wrap the Profile from JSC.
20334         * page/JavaScriptProfile.h: Added.
20335
20336 2008-05-14  David Hyatt  <hyatt@apple.com>
20337
20338         Fix for bug https://bugs.webkit.org/show_bug.cgi?id=16130.
20339
20340         Opacity, transforms, reflections and masks should not honor z-index unless the element is also
20341         positioned.  Always reset to auto if the element is not positioned (and then the following code will
20342         adjust auto to 0 as needed).
20343
20344         Reviewed by Dan Bernstein
20345
20346         * css/CSSStyleSelector.cpp:
20347         (WebCore::CSSStyleSelector::adjustRenderStyle):
20348
20349 2008-05-14  Anders Carlsson  <andersca@apple.com>
20350
20351         Reviewed by Brady.
20352
20353         <rdar://problem/5931742> Support navigator.onLine from HTML5
20354         
20355         * WebCore.vcproj/WebCore.vcproj:
20356         * WebCore.xcodeproj/project.pbxproj:
20357         Add NetworkStateNotifier files.
20358         
20359         * dom/EventNames.h:
20360         Add offline and online events.
20361         
20362         * page/Navigator.cpp:
20363         (WebCore::Navigator::onLine):
20364         * page/Navigator.h:
20365         * page/Navigator.idl:
20366         Add navigator.onLine.
20367         
20368         * page/Page.cpp:
20369         (WebCore::networkStateChanged):
20370         Dispatch offline/online events to all frames.
20371         
20372         (WebCore::Page::Page):
20373         Set state change callback.
20374         
20375         * platform/network/NetworkStateNotifier.cpp: Added.
20376         * platform/network/NetworkStateNotifier.h: Added.
20377
20378         * platform/network/mac/NetworkStateNotifierMac.cpp: Added.
20379         Mac network state notifier.
20380
20381 2008-05-14  Adam Roben  <aroben@apple.com>
20382
20383         Fix Bug 18888: REGRESSION (r32731): console.log always prints
20384         "undefined"
20385
20386         <https://bugs.webkit.org/show_bug.cgi?id=18888>
20387
20388         Reviewed by Tim Hatcher.
20389
20390         Tested by pre-existing
20391         manual-tests/inspector/console-log-formatting.html.
20392
20393         * page/inspector/Console.js:
20394         (WebInspector.ConsoleMessage.prototype._format): Changed to explicitly
20395         wrap Console._format instead of using bind to do it. Using bind was
20396         causing us to pass plainText in as the first parameter instead of as
20397         the second.
20398
20399 2008-05-14  Timothy Hatcher  <timothy@apple.com>
20400
20401         Fixes the bug where stepping out of a function would show the wrong
20402         call stack (would look like it stepped out twice.)
20403
20404         Reviewed by Adam Roben.
20405
20406         * page/JavaScriptDebugServer.cpp:
20407         (WebCore::JavaScriptDebugServer::returnEvent):
20408         Call pauseIfNeeded before setting m_currentCallFrame to the caller.
20409
20410 2008-05-14  Stephanie Lewis  <slewis@apple.com>
20411    
20412         Fix 64bit build
20413
20414         * plugins/PluginView.h:
20415
20416 2008-05-14  David Kilzer  <ddkilzer@apple.com>
20417
20418         REGRESSION (r26474): WebKit fails jQuery test 64 core module: text(String) subtest 1 Check escaped text (createTextNode)
20419
20420         <https://bugs.webkit.org/show_bug.cgi?id=18976>
20421         <rdar://problem/5924793>
20422
20423         Reviewed by Darin.
20424
20425         Tests: fast/dom/dom-parse-serialize-expected.txt:
20426                fast/xsl/xslt-processor-expected.txt:
20427                fast/xsl/xslt-text-expected.txt:
20428
20429         Commit r26474 removed escaping of '>' characters to '&gt;' in serialized
20430         HTML content, which broke one jQuery test.  This change restores that
20431         serialization behavior to both attributes and content for consistency.
20432
20433         * editing/markup.cpp:
20434         (WebCore::appendAttributeValue): Escape '>' as '&gt;'.
20435         (WebCore::escapeContentText): Ditto.
20436         (WebCore::appendEscapedContent): Ditto.  This is the bug fix for the jQuery test.
20437
20438 2008-05-14  Adam Roben  <aroben@apple.com>
20439
20440         Fix Bug 19051: REGRESSION (r33447): Assertion in
20441         JSDebugServer::removeListener closing tab with Inspector open
20442
20443         <https://bugs.webkit.org/show_bug.cgi?id=19051>
20444
20445         m_inspectedPage is now cleared when the Page is destroyed, which never
20446         used to happen. Some of InspectorController's code was not prepared
20447         for this.
20448
20449         Reviewed by Dave Hyatt.
20450
20451         * page/InspectorController.cpp:
20452         (WebCore::InspectorController::~InspectorController): Removed a call
20453         to stopDebugging and added an assertion. Debugging should have already
20454         been stopped by this point.
20455         (WebCore::InspectorController::inspectedPageDestroyed): Moved here
20456         from the header file. Added a call to stopDebugging.
20457         (WebCore::InspectorController::enabled): Return false if our inspected
20458         Page has already been destroyed, since we can't really do much at this
20459         point anyway.
20460         (WebCore::InspectorController::didCommitLoad):
20461         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
20462         (WebCore::InspectorController::identifierForInitialRequest):
20463         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
20464         (WebCore::InspectorController::stopDebugging):
20465         (WebCore::InspectorController::drawNodeHighlight):
20466         Assert that m_inspectedPage hasn't been cleared.
20467         * page/InspectorController.h:
20468
20469 2008-05-14  Justin Garcia  <justin.garcia@apple.com>
20470
20471         Reviewed by Darin.
20472
20473         <rdar://problem/5914803> Improve performance of WebCore::Editor::setComposition
20474
20475         * editing/Editor.cpp:
20476         (WebCore::Editor::confirmComposition): Remove the previous composition
20477         when we insert the new one, not with a separate, slower, delete operation.
20478         (WebCore::Editor::setComposition): Ditto.
20479         * editing/InsertTextCommand.cpp:
20480         (WebCore::InsertTextCommand::performTrivialReplace): Remove the selected
20481         text with a low level operation that doesn't perform a layout and insert
20482         the new text in a way that won't trigger a layout from the removal.
20483         (WebCore::InsertTextCommand::input): Call the optimized replace.
20484         * editing/InsertTextCommand.h:
20485         * editing/htmlediting.cpp:
20486         (WebCore::isTabSpanNode): Check to see if the node is a span, to avoid 
20487         the expense of getAttribute in the common case.
20488         * page/Frame.cpp:
20489         (WebCore::Frame::selectionLayoutChanged): Selection::start() and end()
20490         will already be at VisiblePosition deepEquivalents. Selection::validate()
20491         ensures this.
20492
20493 2008-05-14  Adam Roben  <aroben@apple.com>
20494
20495         Make the Inspector able to handle being reloaded
20496
20497         When Reload was selected from the context menu in the Inspector, the
20498         Inspector window would close and never be openable again. Now it
20499         closes, then reopens when the page finishes loading.
20500
20501         Reviewed by Tim Hatcher.
20502
20503         * page/InspectorController.cpp:
20504         (WebCore::InspectorController::close): Removed code that cleared out
20505         m_page. This is now handled by pageDestroyed.
20506         * page/InspectorController.h:
20507         (WebCore::InspectorController::inspectedPageDestroyed): Added.
20508         * page/Page.cpp:
20509         (WebCore::Page::~Page): Fixed a bug and added a call to the new
20510         inspectedPageDestroyed. If we have a parent InspectorController, that
20511         means that we are the Page in the Inspector's window (i.e., we are the
20512         Inspector's UI), so when we are destroyed we should call
20513         InspectorController::pageDestroyed. We also need to call
20514         inspectedPageDestroyed on our own InspectorController so that it won't
20515         try to call into us.
20516
20517 2008-05-14  Timothy Hatcher  <timothy@apple.com>
20518
20519         Add pause on exception support to the Inspector debugger
20520         with a toggle buttons to enable or disable it.
20521
20522         Reviewed by Adam Roben.
20523
20524         * page/InspectorController.cpp:
20525         (WebCore::pauseOnExceptions): Call the InspectorController.
20526         (WebCore::setPauseOnExceptions): Ditto.
20527         (WebCore::InspectorController::windowScriptObjectAvailable): Add the new
20528         setPauseOnExceptions and pauseOnExceptions functions to the JS class.
20529         (WebCore::InspectorController::pauseOnExceptions): Call JavaScriptDebugServer.
20530         (WebCore::InspectorController::setPauseOnExceptions): Ditto.
20531         * page/InspectorController.h:
20532         * page/JavaScriptDebugServer.cpp:
20533         (WebCore::JavaScriptDebugServer::setPauseOnExceptions): Set m_pauseOnExceptions.
20534         (WebCore::JavaScriptDebugServer::exception): Check m_pauseOnExceptions
20535         and set m_pauseOnNextStatement to true before calling pauseIfNeeded.
20536         * page/JavaScriptDebugServer.h:
20537         * page/inspector/Images/pauseOnExceptionButtons.png: Added.
20538         * page/inspector/ScriptsPanel.js: Adds a status bar button that calls
20539         the new InspectorController functions.
20540         * page/inspector/inspector.css: New styles.
20541
20542 2008-05-14  Timothy Hatcher  <timothy@apple.com>
20543
20544         Rename the Scope Chain pane to Scope Variables. Name the global
20545         object Global. Name objects before the locals "With Block".
20546         Name colsure scopes "Closure". Name any element or document
20547         after Local, "Event Target" and "Event Document", respectfully.
20548
20549         Reviewed by Adam Roben.
20550
20551         * English.lproj/localizedStrings.js: Add new strings.
20552         * page/inspector/ObjectPropertiesSection.js:
20553         (WebInspector.ObjectPropertiesSection): Add a new argument that is used
20554         for the empty placeholder text.
20555         (WebInspector.ObjectPropertiesSection.prototype.onpopulate): Use the
20556         empty placeholder text.
20557         * page/inspector/ScopeChainSidebarPane.js:
20558         (WebInspector.ScopeChainSidebarPane): Rename Scope Chain to Scope Variables.
20559         (WebInspector.ScopeChainSidebarPane.prototype.update): Use the object name as
20560         the subtitle. Use "Global" for the global object title. Use "With Block" for
20561         the title of objects before the locals. Use "No Variables" for the empty
20562         placeholder text for locals.
20563
20564 2008-05-14  Michael A. Puls II  <shadow2531@gmail.com>
20565
20566         Reviewed by Alexey.
20567
20568         Fix for https://bugs.webkit.org/show_bug.cgi?id=16923 
20569         Attr nodes with a value of "" should not have any childNodes
20570         
20571         In Opera, Firefox and IE, when an attribute node has a value
20572         of "", the attribute node doesn't have any childNodes. This
20573         is true in WebKit also, but not when you assign "" to the
20574         Attr's value when the existing value is non-empty.
20575         
20576         Test: fast/dom/attribute-empty-value-no-children.html
20577
20578         * dom/Attr.cpp: (WebCore::Attr::setValue): Use createTextChild(), which only appends
20579         a child text node if the value being assigned is not empty.
20580
20581 2008-05-14  Julien Chaffraix  <jchaffraix@webkit.org>
20582
20583         Reviewed by Eric.
20584
20585         GCC 4.3 build fix.
20586         Removes some compiler warnings.
20587
20588         * dom/Document.h:
20589         (WebCore::FormElementKey::hashTableDeletedValue): GCC complained about the const keyword
20590         so remove it as it is only used inside FormElementKey.
20591
20592         * html/HTMLSelectElement.cpp:
20593         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Correct coding style (removes
20594         a warning too).
20595
20596         * loader/appcache/ApplicationCacheResource.cpp: Include stdio.h for gcc4.3 build.
20597
20598         * plugins/PluginPackage.cpp:
20599         (WebCore::PluginPackage::PluginPackage): Changed initialization order in the constructor.
20600         * plugins/PluginView.cpp:
20601         (WebCore::PluginView::PluginView): Ditto.
20602         * plugins/PluginView.h:
20603         * xml/AccessControlList.cpp: Include stdio.h
20604         * xml/AccessItem.cpp: Ditto.
20605         * xml/AccessItemRule.cpp: Ditto.
20606
20607 2008-05-14  Ariya Hidayat  <ariya.hidayat@trolltech.com>
20608
20609         Reviewed by Simon.
20610
20611         Qt build fix. Add JSJavaScriptCallFrameCustom.cpp to the build
20612         and implemented EventLoopQt.
20613
20614         * WebCore.pro:
20615         * platform/qt/EventLoopQt.cpp: Added.
20616
20617 2008-05-14  Ariya Hidayat  <ariya.hidayat@trolltech.com>
20618
20619         Reviewed by Simon.
20620
20621         Qt build fix. Add JavaScriptCallFrame.{idl,cpp} to the build.
20622
20623         * WebCore.pro:
20624
20625 2008-05-13  Dan Bernstein  <mitz@apple.com>
20626
20627         Reviewed by John Sullivan.
20628
20629         - Windows part of <rdar://problem/5725912> improve render quality of transformed text
20630
20631         * platform/graphics/win/FontCGWin.cpp:
20632         (WebCore::Font::drawGlyphs): Added call to
20633         wkSetCGContextFontRenderingStyle().
20634
20635 2008-05-13  Alp Toker  <alp@nuanti.com>
20636
20637         GTK+ build fix. Implement EventLoopGtk.cpp.
20638
20639         * GNUmakefile.am:
20640         * platform/gtk/EventLoopGtk.cpp: Added.
20641         (WebCore::EventLoop::cycle):
20642
20643 2008-05-13  Alp Toker  <alp@nuanti.com>
20644
20645         GTK+ build fix. Fix IDL filename typo and add JavaScriptCallFrame.cpp
20646         to the build.
20647
20648         * GNUmakefile.am:
20649
20650 2008-05-13  Matt Lilek  <webkit@mattlilek.com>
20651
20652         Not reviewed, partial Gtk build fix.
20653
20654         * GNUmakefile.am:
20655
20656 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20657
20658         Fixes a crash when stepping out in the Inspector's debugger.
20659
20660         http://bugs.webkit.org/show_bug.cgi?id=19037
20661
20662         Reviewed by Dan Bernstein.
20663
20664         * page/InspectorController.cpp:
20665         (WebCore::currentCallFrame): Adds a null check of currentCallFrame,
20666         since it can be null. Also returns JSNull to better signify this.
20667         * page/inspector/ScriptsPanel.js: Updates the debugger interface
20668         when stepping so the currentCallFrame isn't accessed when not paused.
20669         Adds a _clearInterface function to remove duplicate code.
20670
20671 2008-05-13  chris fleizach  <cfleizach@apple.com>
20672
20673         Reviewed by Beth Dakin
20674
20675         <rdar://problem/5932677> AX: Submit buttons aren't returning AXTitle
20676
20677         * page/AccessibilityRenderObject.cpp:
20678         (WebCore::AccessibilityRenderObject::title):
20679
20680 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20681
20682         Adds an overlay window that covers the scripts panel and
20683         informs the user that they need to attach the debugger.
20684         Provides an "Attach Debugger" button below the info text.
20685
20686         Reviewed by Dan Bernstein.
20687
20688         * English.lproj/localizedStrings.js: New strings.
20689         * page/inspector/ScriptsPanel.js:
20690         (WebInspector.ScriptsPanel): Create the overlay elements and
20691         append to the main panel element.
20692         * page/inspector/inspector.css: New styles for the over lay elements.
20693
20694 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20695
20696         Fixes the assertion and crash that would happen when inspecting a element from a frame.
20697         This change makes JSInspectedObjectWrapper pass unwrapped objects around for global objects
20698         that share the same page group identifier. Also returns jsUndefined() instead of 0 to prevent
20699         crashing in release builds if the page groups don't match.
20700
20701         Passes all the tests in: manual-tests/inspector-wrappers
20702
20703         Reviewed by Adam Roben.
20704
20705         * bindings/js/JSInspectedObjectWrapper.cpp:
20706         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Return jsUndefined() instead of 0.
20707         Call allowsUnwrappedAccessFrom instead of unwrappedExecStateMatches.
20708         * bindings/js/JSQuarantinedObjectWrapper.cpp:
20709         (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom): Renamed from unwrappedExecStateMatches.
20710         Return true if the pageGroupIdentifier of both wrappers match.
20711         (WebCore::JSQuarantinedObjectWrapper::callAsFunction): Return jsUndefined() instead of 0.
20712         * bindings/js/JSQuarantinedObjectWrapper.h: Renamed unwrappedExecStateMatches to allowsUnwrappedAccessFrom.
20713
20714 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20715
20716         Fixes the hang that could happen when option-clicking to expand
20717         a disclosure triangle in the Properties pane. This change limits
20718         the recursion depth when expanding the tree elements.
20719
20720         <rdar://problem/5847681> Safari hangs when option-clicking a
20721         disclosure triangle in the Inspector's Properties pane
20722
20723         Reviewed by John Sullivan.
20724
20725         * page/inspector/treeoutline.js:
20726         (TreeElement.prototype.expandRecursively): Pass an empty info object to
20727         traverseNextTreeElement to get the depthChange value. This is used to
20728         compute a current depth. If the depth exceeds the maxDepth argument, the
20729         item isn't expanded and children wont be populated when traverseNextTreeElement
20730         is called until the depth goes below the maxDepth.
20731         (TreeElement.prototype.traverseNextTreeElement): Added a new info
20732         argument that can be optionally used to return extra info like depth change.
20733
20734 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20735
20736         Adds info text to panes and sections in the Inspector's sidebars
20737         that would normally be empty. These help the user know why there
20738         is nothing in these sections.
20739
20740         Reviewed by John Sullivan.
20741
20742         * English.lproj/localizedStrings.js: Add strings.
20743         * page/inspector/BreakpointsSidebarPane.js: Adds "No Breakpoints".
20744         * page/inspector/CallStackSidebarPane.js: Adds "Not Paused".
20745         * page/inspector/ObjectPropertiesSection.js: Adds "No Properties".
20746         * page/inspector/ScopeChainSidebarPane.js: Adds "Not Paused".
20747         * page/inspector/inspector.css: Adds style rules for the info elements.
20748
20749 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20750
20751         Implements the rest of the Scripts panel to get the debugger
20752         mostly working. "Basic debugging seems to work."
20753
20754         Reviewed by Geoff Garen.
20755
20756         * English.lproj/localizedStrings.js: Adds new strings.
20757         * page/inspector/Resource.js:
20758         (WebInspector.Resource.prototype.get scripts): Returns _scripts and 
20759         creates it lazily.
20760         (WebInspector.Resource.prototype.addScript): Add the script object to the
20761         front of the _scripts array.
20762         (WebInspector.Resource.prototype.removeAllScripts): Removed all the scripts
20763         and removes the resource back-reference.
20764         (WebInspector.Resource.prototype.removeScript): Removes the script and
20765         breaks the resource back-reference.
20766         * page/inspector/ResourceView.js:
20767         (WebInspector.ResourceView): Adds a reminder comment.
20768         (WebInspector.ResourceView.prototype.get headersVisible): Returns _headersVisible. 
20769         (WebInspector.ResourceView.prototype.set headersVisible): Stubs out
20770         a setter that currently just sets _headersVisible. Has a comment that
20771         points out this needs implemented when network headers are added.
20772         * page/inspector/ResourcesPanel.js:
20773         (WebInspector.ResourcesPanel.prototype.show): Sets the headersVisible property of
20774         the visible view to true and shows it again, in case it was being shown in Scripts.
20775         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
20776         Copies the headersVisible property from the old view to the new view.
20777         (WebInspector.ResourcesPanel.prototype.showResource): Sets the headersVisible
20778         property to true before showing.
20779         * page/inspector/ScriptView.js:
20780         (WebInspector.ScriptView): Passes in _addBreakpoint for the add breakpoint delegate.
20781         (WebInspector.ScriptView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
20782         for the current Script.sourceID and line.
20783         * page/inspector/ScriptsPanel.js:
20784         (WebInspector.ScriptsPanel): 
20785         (WebInspector.ScriptsPanel.prototype.show): Sets the headersVisible property of
20786         the visible view to false and shows it again, in case it was being shown in Resources.
20787         (WebInspector.ScriptsPanel.prototype.addScript): Makes a new Script object and
20788         adds it to a Resource if one is found. Registers any breakpoint that match
20789         the new Script's source URL, and sets the sourceID of the breakpoints.
20790         (WebInspector.ScriptsPanel.prototype.addBreakpoint): Adds the breakpoint to the
20791         BreakpointsSidebarPane. Also adds it to _breakpointsURLMap so it can be found
20792         later in addScript by URL. Finally adds the breakpoint to the SourceFrame that
20793         represents the resources or script.
20794         (WebInspector.ScriptsPanel.prototype.removeBreakpoint): Removes the breakpoint from
20795         the BreakpointsSidebarPane, _breakpointsURLMap and SourceFrame.
20796         (WebInspector.ScriptsPanel.prototype.debuggerPaused): Update the debugger
20797         state variables, the buttons and the CallStackSidebarPane.
20798         (WebInspector.ScriptsPanel.prototype.reset): Clears and resets debugger
20799         and interface state.
20800         (WebInspector.ScriptsPanel.prototype.get visibleView): Returns _visibleView.
20801         (WebInspector.ScriptsPanel.prototype.set visibleView): Sets _visibleView and
20802         calls hide on the old view and show on the new view.
20803         (WebInspector.ScriptsPanel.prototype.showScript): Calls _showScriptOrResource.
20804         (WebInspector.ScriptsPanel.prototype.showResource): Ditto.
20805         (WebInspector.ScriptsPanel.prototype.scriptViewForScript): Lazily creates a
20806         ScriptView for the Script and returns it. 
20807         (WebInspector.ScriptsPanel.prototype.sourceFrameForScript): Returns the SourceFrame
20808         for the Script.
20809         (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): Returns the
20810         SourceFrame based on the type of object passed in.
20811         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Shows the view based on
20812         the type of object passed in. If the object is a resource and there are breakpoints
20813         defined for that Resource URL, then populate the SourceFrame with the breakpoints.
20814         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Adds a script to the 
20815         files menu. If the Script is part of a resource, that resource is added.
20816         (WebInspector.ScriptsPanel.prototype._removeScriptFromFilesMenu): Remove a script from
20817         the files menu. If that script is part of a resource and it is the last script of that
20818         resource, then remove the whole resource.
20819         (WebInspector.ScriptsPanel.prototype._clearCurrentExecutionLine): Clears the execution
20820         line from the SourceFrame that is showing it.
20821         (WebInspector.ScriptsPanel.prototype._callFrameSelected): Event listener for when the
20822         call frame changes in the CallStackSidebarPane. Triggers updates to the ScopeChainSidebarPane
20823         and the visible view.
20824         (WebInspector.ScriptsPanel.prototype._changeVisibleFile): Event listener for the change state
20825         of the files select element.
20826         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Update more of the 
20827         buttons to reflect the current debugger state. Updates the status text too.
20828         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Reset the UI and state when
20829         the debugger is attached/detached.
20830         (WebInspector.ScriptsPanel.prototype._togglePause): Call InspectorController.resumeDebugger or
20831         InspectorController.pauseInDebugger depending on the paused state.
20832         (WebInspector.ScriptsPanel.prototype._stepOverClicked): Call InspectorController.stepOverStatementInDebugger.
20833         (WebInspector.ScriptsPanel.prototype._stepIntoClicked): Call InspectorController.stepIntoStatementInDebugger.
20834         (WebInspector.ScriptsPanel.prototype._stepOutClicked): InspectorController.stepOutOfFunctionInDebugger.
20835         * page/inspector/SourceView.js:
20836         (WebInspector.SourceView): Passes in _addBreakpoint for the add breakpoint delegate.
20837         (WebInspector.SourceView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
20838         for the nearest Script's sourceID and passed in line.
20839         * page/inspector/inspector.css: New style rules for the UI changes.
20840         * page/inspector/inspector.js:
20841         (WebInspector.loaded): Add the ScriptsPanel to the panels list.
20842         (WebInspector.parsedScriptSource): Call ScriptsPanel.addScript.
20843         (WebInspector.failedToParseScriptSource): Ditto.
20844         (WebInspector.pausedScript): Call ScriptsPanel.debuggerPaused.
20845
20846 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20847
20848         Adds implementations of the Scope Chain and Call Stack sidebar panes.
20849         These panes use the JSJavaScriptCallFrame object that will be passed
20850         to the update functions.
20851
20852         Reviewed by Kevin McCullough.
20853
20854         * English.lproj/localizedStrings.js: Adds new strings.
20855         * WebCore.vcproj/WebCore.vcproj: Adds new files.
20856         * page/inspector/CallStackSidebarPane.js:
20857         (WebInspector.CallStackSidebarPane.prototype.update): Walk the 
20858         caller chain of the call frame and make placards for each.
20859         (WebInspector.CallStackSidebarPane.prototype.get selectedCallFrame):
20860         Return _selectedCallFrame. 
20861         (WebInspector.CallStackSidebarPane.prototype.set selectedCallFrame):
20862         Set _selectedCallFrame and dispatch the "call frame selected" event.
20863         (WebInspector.CallStackSidebarPane.prototype._placardSelected):
20864         Set the selectedCallFrame based on the clicked placard.
20865         * page/inspector/Placard.js: Added. A user interface object that can
20866         be used to show a title and a subtitle block with a selected state.
20867         * page/inspector/ScopeChainSidebarPane.js: Added.
20868         (WebInspector.ScopeChainSidebarPane): Call the base object and set the title.
20869         (WebInspector.ScopeChainSidebarPane.prototype.update): Iterate over the
20870         call frame's scope chain and make ObjectPropertiesSections for each.
20871         * page/inspector/SidebarPane.js:
20872         (WebInspector.SidebarPane.prototype): Inherit from WebInspector.Object.
20873         * page/inspector/WebKit.qrc: Add new files.
20874         * page/inspector/inspector.css: Add placard styles.
20875         * page/inspector/inspector.html: Add new files.
20876
20877 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20878
20879         Fixes the bug where SourceViews would be blank if shown before
20880         the Resource finished loading.
20881
20882         <rdar://problem/5807420> Safari's Web Inspector won't display the
20883         contents of some CSS and JS files
20884
20885         Reviewed by Kevin McCullough.
20886
20887         * page/inspector/Resource.js:
20888         (WebInspector.Resource.prototype.set finished): Dispatch the finished event
20889         (WebInspector.Resource.prototype): Inherit from WebInspector.Object.prototype.
20890         * page/inspector/SourceView.js:
20891         (WebInspector.SourceView): Register for the finished event on the resource.
20892         When the event fires, setup the source frame and deregister the event.
20893
20894 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20895
20896         Factored most of SourceView out into SourceFrame so it can be shared
20897         by the new ScriptView. Added the ScriptView class to be used for
20898         scripts that arn't Resources (like eval code.) Added a simple Script
20899         object that hold the data from the debugger parsedSource hooks. A
20900         ScriptView holds a Script object, and uses it for source data.
20901
20902         Added breakpoint and execution line support to the SourceFrame
20903         where they are visually represented in the source.
20904
20905         Reviewed by Kevin McCullough.
20906
20907         * page/inspector/inspector.js:
20908         (WebInspector.performSearch): Change the caller of sourceFrameForResource
20909         to use the SourceFrame result's element property.
20910         * page/inspector/ResourcesPanel.js: Use the new SourceFrame.
20911         * page/inspector/Script.js: Added.
20912         * page/inspector/ScriptView.js: Added.
20913         * page/inspector/SourceFrame.js: Added.
20914         * page/inspector/SourceView.js: Use the new SourceFrame.
20915         * WebCore.vcproj/WebCore.vcproj: Add new files.
20916         * page/inspector/WebKit.qrc: Ditto.
20917         * page/inspector/inspector.html: Ditto.
20918
20919 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20920
20921         Adds a Breakpoint object and basic add/remove functions on
20922         BreakpointsSidebarPane that call the InspectorController to
20923         add/remove the breakpoint.
20924
20925         Reviewed by Kevin McCullough.
20926
20927         * page/inspector/Breakpoint.js:
20928         (WebInspector.Breakpoint): 
20929         (WebInspector.Breakpoint.prototype.get enabled): Return _enabled.
20930         (WebInspector.Breakpoint.prototype.set enabled): Set _enabled and
20931         dispatch the enabled/disabled event to listeners.
20932         * page/inspector/BreakpointsSidebarPane.js:
20933         (WebInspector.BreakpointsSidebarPane): Add a breakpoints array.
20934         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
20935         Adds the breakpoint to the breakpoints array. Registers for the disabled
20936         and enabled event types. Call InspectorController.addBreakpoint if attached.
20937         (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
20938         Removes the breakpoint from the breakpoints array. Deregisters for the disabled
20939         and enabled event types. Call InspectorController.removeBreakpoint if attached.
20940         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
20941         Call InspectorController.addBreakpoint or InspectorController.removeBreakpoint
20942         depending on the enabled state of the breakpoint.
20943         * WebCore.vcproj/WebCore.vcproj: Add new files.
20944         * page/inspector/WebKit.qrc: Ditto.
20945         * page/inspector/inspector.html: Ditto.
20946
20947 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20948
20949         Make addSourceToFrame not dependent on InspectorResource so it
20950         can be used to add source of a passed in string and mime-type to
20951         a frame. Added addResourceSourceToFrame for use by SourceView.
20952
20953         Also fixes an assertion because of an incorrect static_cast of identifiers
20954         to unsigned long long, when they can be unsigned.
20955
20956         Reviewed by Geoff Garen.
20957
20958         * page/InspectorController.cpp:
20959         (WebCore::addSourceToFrame): Helper function used by addSourceToFrame
20960         and addResourceSourceToFrame.
20961         (WebCore::addSourceToFrame): Generalized to take a source and mime-type string.
20962         (WebCore::addResourceSourceToFrame): Renamed from addSourceToFrame.
20963         (WebCore::getResourceDocumentNode): Fixes the static_cast to be long long.
20964         (WebCore::InspectorController::windowScriptObjectAvailable): Adds
20965         addResourceSourceToFrame to the JavaScript class.
20966         * page/inspector/SourceView.js: Use the new addResourceSourceToFrame.
20967
20968 2008-05-13  Timothy Hatcher  <timothy@apple.com>
20969
20970         Add debugger related functions to the InspectorController and
20971         expose them to the JavaScript side of InspectorController.
20972
20973         Reviewed by Geoff Garen.
20974
20975         * page/InspectorController.cpp:
20976         (WebCore::jsStringRef): Added helper to convert a UString to a JSStringRef.
20977         (WebCore::currentCallFrame): Call InspectorController::currentCallFrame.
20978         (WebCore::pauseInDebugger): Call InspectorController::pauseInDebugger.
20979         (WebCore::resumeDebugger): Call InspectorController::resumeDebugger.
20980         (WebCore::stepOverStatementInDebugger): Call InspectorController::stepOverStatementInDebugger.
20981         (WebCore::stepIntoStatementInDebugger): Call InspectorController::stepIntoStatementInDebugger.
20982         (WebCore::stepOutOfFunctionInDebugger): Call InspectorController::stepOutOfFunctionInDebugger.
20983         (WebCore::addBreakpoint): Call InspectorController::addBreakpoint.
20984         (WebCore::removeBreakpoint): Call InspectorController::removeBreakpoint.
20985         (WebCore::InspectorController::windowScriptObjectAvailable): Add the new functions to the
20986         InspectorController JavaScript class.
20987         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage): Clear breakpoints.
20988         (WebCore::InspectorController::currentCallFrame): Return the currentCallFrame from the
20989         JavaScriptDebugServer.
20990         (WebCore::InspectorController::pauseInDebugger): Call JavaScriptDebugServer's pauseOnNextStatement.
20991         (WebCore::InspectorController::resumeDebugger): Call JavaScriptDebugServer's resume.
20992         (WebCore::InspectorController::stepOverStatementInDebugger):  Call JavaScriptDebugServer's stepOverStatement.
20993         (WebCore::InspectorController::stepIntoStatementInDebugger): Call JavaScriptDebugServer's stepIntoStatement.
20994         (WebCore::InspectorController::stepOutOfFunctionInDebugger): Call JavaScriptDebugServer's stepOutOfFunction.
20995         (WebCore::InspectorController::addBreakpoint): Call JavaScriptDebugServer's addBreakpoint.
20996         (WebCore::InspectorController::removeBreakpoint): Call JavaScriptDebugServer's removeBreakpoint.
20997         (WebCore::InspectorController::didParseSource): Call into the Inspector's JavaScript.
20998         (WebCore::InspectorController::failedToParseSource): Ditto.
20999         (WebCore::InspectorController::didPause): Ditto.
21000         * page/InspectorController.h: Add new functions.
21001
21002 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21003
21004         Implements more debugger APIs on JavaScriptDebugServer and reduces
21005         the number of callbacks to JavaScriptDebugListeners. These changes
21006         will better facilitate debugger optimizations when SquirrelFish merges.
21007
21008         Reviewed by Kevin McCullough.
21009
21010         * page/InspectorController.cpp:
21011         (WebCore::InspectorController::didParseSource): Removed the ExecState.
21012         (WebCore::InspectorController::failedToParseSource): Ditto.
21013         (WebCore::InspectorController::didPause): Added.
21014         * page/InspectorController.h: Changed the JavaScriptDebugListener functions.
21015         * page/JavaScriptDebugListener.h: Removed some callbacks and added didPause.
21016         * page/JavaScriptDebugServer.cpp:
21017         (WebCore::JavaScriptDebugServer::JavaScriptDebugServer): Initialize new data members.
21018         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all values of m_breakpoints.
21019         (WebCore::JavaScriptDebugServer::removeListener): Call resume if the last listener was removed.
21020         (WebCore::JavaScriptDebugServer::hasListenersInterestedInPage): Returns true if there are any
21021         global listeners or a listener for the page.
21022         (WebCore::JavaScriptDebugServer::addBreakpoint): Adds and entry to m_breakpoints.
21023         (WebCore::JavaScriptDebugServer::removeBreakpoint): Removes a entry in m_breakpoints.
21024         (WebCore::JavaScriptDebugServer::hasBreakpoint):  Checks if there is a breakpoint for the
21025         sourceID and line.
21026         (WebCore::JavaScriptDebugServer::clearBreakpoints): Removed all breakpoints.
21027         (WebCore::JavaScriptDebugServer::pauseOnNextStatement): Sets m_pauseOnNextStatement to true.
21028         (WebCore::JavaScriptDebugServer::resume): Sets m_paused to false.
21029         (WebCore::JavaScriptDebugServer::stepIntoStatement): Calls resume and sets
21030         m_pauseOnNextStatement to true.
21031         (WebCore::JavaScriptDebugServer::stepOverStatement): Calls resume and sets m_pauseOnExecState to
21032         the current call frame's ExecState.
21033         (WebCore::JavaScriptDebugServer::stepOutOfFunction): Calls resume and sets m_pauseOnExecState to
21034         the current call frame's caller ExecState.
21035         (WebCore::JavaScriptDebugServer::currentCallFrame): Returns m_currentCallFrame if paused.
21036         (WebCore::dispatchDidParseSource): Removed the ExecState argument.
21037         (WebCore::dispatchFailedToParseSource): Ditto.
21038         (WebCore::JavaScriptDebugServer::sourceParsed): Doesn't pass the ExecState to dispatchDidParseSource
21039         or dispatchFailedToParseSource.
21040         (WebCore::dispatchFunctionToListeners):
21041         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Removes all the arguments passed
21042         to the callback.
21043         (WebCore::JavaScriptDebugServer::setJavaScriptPaused): Various overloaded functions
21044         to pause parts of WebCore to prevent JavaScript execution while paused.
21045         (WebCore::JavaScriptDebugServer::pauseIfNeeded): Decides if the debugger should pause based
21046         on the passed in ExecState, source ID and line number. This checks for breakpoints, stepping, etc.
21047         Calls didPause on all the listeners and spins a EventLoop until resume is called.
21048         (WebCore::JavaScriptDebugServer::callEvent): Call pauseIfNeeded.
21049         (WebCore::JavaScriptDebugServer::atStatement): Ditto.
21050         (WebCore::JavaScriptDebugServer::returnEvent): Ditto.
21051         (WebCore::JavaScriptDebugServer::exception): Ditto.
21052         * page/JavaScriptDebugServer.h: Added new functions.
21053
21054 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21055
21056         Change View.show to call detach if the parentNode dosen't
21057         match before appending to the passed in parent element.
21058         This also prevents appending to the same parent element
21059         multiple times.
21060
21061         Reviewed by John Sullivan.
21062
21063         * page/inspector/FontView.js:
21064         (WebInspector.FontView.prototype.show): Pass the parent element to View.show.
21065         * page/inspector/ResourceView.js: Optimize the attach method to no append if
21066         there is a parentNode already.
21067         * page/inspector/SourceView.js: Ditto.
21068         * page/inspector/View.js: Call detach before appending if the parentNode
21069         doesn't match the passed in element.
21070
21071 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21072
21073         Optimize the panel attach method to no append if there is a
21074         parentNode already.
21075
21076         Reviewed by Adam Roben.
21077
21078         * page/inspector/Panel.js:
21079         (WebInspector.Panel.prototype.attach): Don't append to main-panels
21080         if the panel element already has a parentNode.
21081
21082 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21083
21084         Add Widget::isPluginView so the JavaScriptDebugServer can identify
21085         plugins that need to be paused during debugging. This will be used
21086         in a upcoming commit.
21087
21088         Reviewed by Kevin McCullough.
21089
21090         * platform/Widget.h: Add isPluginView. Return false.
21091         * plugins/PluginView.h: Add isPluginView. Return true.
21092
21093 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21094
21095         Adds an event loop abstraction to platform. This abstraction will be
21096         used by the JavaScriptDebugServer to implement pausing.
21097
21098         Reviewed by Kevin McCullough.
21099
21100         * platform/EventLoop.h: Added.
21101         (WebCore::EventLoop::EventLoop):
21102         (WebCore::EventLoop::ended): Return m_ended.
21103         * platform/mac/EventLoopMac.mm: Added.
21104         (WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.
21105         * platform/win/EventLoopWin.cpp: Added.
21106         (WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.
21107         * WebCore.xcodeproj/project.pbxproj: Add new files.
21108         * WebCore.vcproj/WebCore.vcproj: Ditto.
21109
21110 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21111
21112         Breaks out ObjectPropertiesSection from PropertiesSidebarPane
21113         so it can be used by the Scripts panel's Scope Chain pane.
21114
21115         Rubber-stamped by Adam Roben.
21116
21117         * page/inspector/ObjectPropertiesSection.js: Added.
21118         * page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection
21119         to ObjectPropertiesSection.js.
21120         * WebCore.vcproj/WebCore.vcproj: Add the new file.
21121         * page/inspector/WebKit.qrc: Ditto.
21122         * page/inspector/inspector.html: Ditto.
21123
21124 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21125
21126         Add a helper function to the Inspector's Array prototype
21127         that will remove any identical values/objects from the array.
21128
21129         Reviewed by Kevin McCullough.
21130
21131         * page/inspector/utilities.js:
21132         (Array.prototype.remove): Iterate over the array and strict
21133         compare to the passed in value. If they match, splice that index
21134         out of the array. If onlyFirst is true, return after the first splice.
21135
21136 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21137
21138         Adds a JavaScriptCallFrame object and JavaScript binding with an IDL.
21139         This object will expose the stack to the Inspector's debugger.
21140
21141         Reviewed by Adam Roben.
21142
21143         * DerivedSources.make: Add JavaScriptCallFrame.
21144         * bindings/js/JSJavaScriptCallFrameCustom.cpp: Added.
21145         (WebCore::JSJavaScriptCallFrame::evaluate): Calls impl evaluate and returns the result.
21146         (WebCore::JSJavaScriptCallFrame::scopeChain): Makes an array of the ScopeChain.
21147         * page/JavaScriptCallFrame.cpp: Added.
21148         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
21149         (WebCore::JavaScriptCallFrame::caller): Returns m_caller.
21150         (WebCore::JavaScriptCallFrame::functionName): Returns the function
21151         name from the ExecState if this is not global code or anonymous.
21152         (WebCore::JavaScriptCallFrame::evaluate): Evaluates a script string
21153         in the scope of the call frame.
21154         * page/JavaScriptCallFrame.h: Added.
21155         (WebCore::JavaScriptCallFrame::create): Call the ctor can return in a PassRefPtr.
21156         (WebCore::JavaScriptCallFrame::invalidate): Sets m_mexec to 0. This prevents a
21157         stale ExecState from being accessed after the lifetime of the ExecState.
21158         (WebCore::JavaScriptCallFrame::isValid): Checks if m_exec is 0.
21159         (WebCore::JavaScriptCallFrame::execState): Returns m_exec.
21160         (WebCore::JavaScriptCallFrame::sourceIdentifier): Returns m_sourceID.
21161         (WebCore::JavaScriptCallFrame::line): Returns m_line.
21162         (WebCore::JavaScriptCallFrame::setLine): Sets m_line.
21163         (WebCore::JavaScriptCallFrame::scopeChain): Returns by reference m_exec->scopeChain().
21164         * page/JavaScriptCallFrame.idl: Added.
21165         * WebCore.xcodeproj/project.pbxproj: Add new files.
21166         * WebCore.vcproj/WebCore.vcproj: Ditto.
21167
21168 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21169
21170         Add a new WebInspector.Object base class that will be used for
21171         a few objects in the Web Inspector to support listeners on any
21172         object. This will help add more abstraction to the Inspector.
21173
21174         Reviewed by Adam Roben.
21175
21176         * page/inspector/Object.js: Added.
21177         (WebInspector.Object): Does nothing.
21178         (WebInspector.Object.prototype.addEventListener): Adds the listener to
21179         the _listeners map by type. Supports a this object argument, for easy
21180         addition of listeners without the need for bind.
21181         (WebInspector.Object.prototype.removeEventListener): Remove the listener
21182         from the _listeners map. If the listener is null and the thisObject was
21183         passed, remove any listener for that thisObject.
21184         (WebInspector.Object.prototype.dispatchEventToListeners): Sends an event
21185         for a type to all listeners for that type. Mimics some of the DOMEvent
21186         methods and properties for the event object passed to the listeners.
21187         * WebCore.vcproj/WebCore.vcproj: Add new files.
21188         * page/inspector/WebKit.qrc: Ditto.
21189         * page/inspector/inspector.html: Ditto.
21190
21191 2008-05-13  Timothy Hatcher  <timothy@apple.com>
21192
21193         Update the view source CSS to better match the new Inspector mock-ups.
21194
21195         Reviewed by Kevin McCullough.
21196
21197         * css/view-source.css:
21198
21199 2008-05-13  John Sullivan  <sullivan@apple.com>
21200
21201         Reviewed by Dan Bernstein and Kevin Decker
21202         
21203         - fixed <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind
21204
21205         Test: fast/forms/select-type-ahead-list-box-no-selection.html
21206
21207         * html/HTMLSelectElement.cpp:
21208         (WebCore::HTMLSelectElement::typeAheadFind):
21209         When there's no initially-selected element, we were accessing index -1. Check for this
21210         case and start at 0.
21211
21212 2008-05-13  Sam Weinig  <sam@webkit.org>
21213
21214         Reviewed by Dan Bernstein.
21215
21216         Small cleanup to XMLHttpRequest in preparation for Access Control changes.
21217
21218         * xml/XMLHttpRequest.cpp:
21219         (WebCore::XMLHttpRequest::XMLHttpRequest):
21220         (WebCore::XMLHttpRequest::~XMLHttpRequest):
21221         (WebCore::XMLHttpRequest::open):
21222         (WebCore::XMLHttpRequest::send):
21223         (WebCore::XMLHttpRequest::internalAbort):
21224         (WebCore::XMLHttpRequest::processSyncLoadResults):
21225         (WebCore::XMLHttpRequest::didFinishLoading):
21226         (WebCore::XMLHttpRequest::didReceiveResponse):
21227         (WebCore::XMLHttpRequest::didReceiveData):
21228         * xml/XMLHttpRequest.h:
21229
21230 2008-05-13  chris fleizach  <cfleizach@apple.com>
21231
21232         Beth Dakin
21233
21234         <rdar://problem/5701210> VO: If image is missing, VoiceOver does not speak the alternative text.
21235
21236         * page/AccessibilityRenderObject.cpp:
21237         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
21238
21239 2008-05-13  chris fleizach  <cfleizach@apple.com>
21240
21241         Beth Dakin
21242
21243         <rdar://problem/5908446> AX: webkit needs to return blockquote information for all AX objects, not just in AXTextMarker info
21244
21245         * page/mac/AccessibilityObjectWrapper.mm:
21246         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
21247         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
21248
21249 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
21250
21251         Reviewed by John Sullivan.
21252
21253         <rdar://problem/4852077> REGRESSION: The content of the HTML file which is saved as Thai
21254         (ISO 8859-11) disappear.
21255
21256         <rdar://problem/5842597> Thai ISO-8859-11 should be upgraded to Windows-874
21257
21258         Test: fast/encoding/char-decoding.html
21259
21260         * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
21261         Register ISO-8859-11, which doesn't have a standard IANA name, despite following
21262         the usual 8859 naming scheme. Also, made TIS-620 map to windows-874-2000 explicitly.
21263
21264 2008-05-13  chris fleizach  <cfleizach@apple.com>
21265
21266         Reviewed by Beth Dakin
21267
21268         <rdar://problem/5471973> Some AXLinks are not getting AXTitles though there is title text
21269
21270         * page/AccessibilityRenderObject.cpp:
21271         (WebCore::AccessibilityRenderObject::title):
21272
21273 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
21274
21275         Reviewed by Eric Seidel.
21276
21277         https://bugs.webkit.org/show_bug.cgi?id=18681
21278         <rdar://problem/5888130> WebKit should not remove BOM characters from content.
21279
21280         We were only trying to match Firefox, and it doesn't do this any more.
21281
21282         Tests: fast/encoding/bom-in-content.html
21283                fast/encoding/bom-in-content-utf16.html
21284
21285         * platform/text/TextDecoder.cpp: (WebCore::TextDecoder::checkForBOM): Skip the BOM if it's
21286         at the start of input stream.
21287
21288         * platform/text/TextCodec.cpp:
21289         * platform/text/TextCodec.h:
21290         * platform/text/TextCodecICU.cpp:
21291         (WebCore::TextCodecICU::decode):
21292         * platform/text/TextCodecUTF16.cpp:
21293         (WebCore::TextCodecUTF16::decode):
21294         * platform/text/mac/TextCodecMac.cpp:
21295         (WebCore::TextCodecMac::decode):
21296         Don't remove the BOM.
21297
21298 2008-05-13  Anders Carlsson  <andersca@apple.com>
21299
21300         Reviewed by Darin.
21301
21302         Don't crash when a document loader is destroyed while an initial caching attempt
21303         is in progress.
21304
21305         * loader/appcache/ApplicationCacheGroup.cpp:
21306         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
21307         Stop loading.
21308         
21309         (WebCore::ApplicationCacheGroup::stopLoading):
21310         New method that stops a cache update.
21311         
21312         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
21313         Delete ourselves here.
21314         
21315         * loader/appcache/ApplicationCacheGroup.h:
21316
21317 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
21318
21319         Reviewed by Darin.
21320
21321         <rdar://problem/5841351> Turkish ISO 8859-9 encoding should be treated as windows-1254
21322
21323         Match IE and upgrade ISO-8859-9 to windows-1254, which is its strict superset.
21324
21325         Test: fast/encoding/char-decoding.html
21326
21327         * platform/text/TextCodecICU.cpp:
21328         (WebCore::TextCodecICU::registerExtendedEncodingNames): Register the standard name
21329         unconditionally. Previously, we registered windows-949-2000 as a special case that lacked 
21330         an IANA standard name, and got away with not registering GBK because it happened
21331         to be reported by ICU normally earlier than any encoding upgraded to it.
21332
21333 2008-05-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
21334
21335         Reviewed by Simon
21336
21337         Fix QtWebKit build on Qt embedded.
21338
21339         * WebCore.pro:
21340         * platform/FileSystem.h:
21341         * platform/qt/FileSystemQt.cpp:
21342
21343 2008-05-13  Ariya Hidayat  <ariya.hidayat@trolltech.com>
21344
21345         Reviewed by Simon.
21346
21347         For Gtk/X11 and Qt/X11, use a more extensive plug-ins scan directories set
21348
21349         * plugins/PluginDatabase.cpp:
21350         (WebCore::addMozillaPluginDirectories):
21351         (WebCore::PluginDatabase::isPreferredPluginDirectory):
21352
21353 2008-05-12  Adam Roben  <aroben@apple.com>
21354
21355         Turn on warnings as errors in WebCore.vcproj
21356
21357         Rubberstamped by Anders Carlsson.
21358
21359         * WebCore.vcproj/WebCore.vcproj: Also let VS reformat the file as it
21360         saw fit. The important part is the removal of the WarnAsError="false"
21361         lines.
21362
21363 2008-05-12  Adam Roben  <aroben@apple.com>
21364
21365         Fix a MSVC warning in PluginViewWin
21366
21367         Reviewed by Anders Carlsson.
21368
21369         Test: http/tests/plugins/post-url-file.html
21370
21371         * plugins/win/PluginViewWin.cpp:
21372         (WebCore::PluginView::handlePostReadFile): Added a missing return
21373         statement.
21374
21375 2008-05-12  Adam Roben  <aroben@apple.com>
21376
21377         Fix a MSVC warning in GetEOTHeader
21378
21379         Reviewed by Dan Bernstein.
21380
21381         * platform/graphics/win/GetEOTHeader.cpp:
21382         (WebCore::getEOTHeader): MSVC complains that having a 0-sized array in
21383         a struct is a non-standard extension. I've replaced the 0-sized arrays
21384         with arrays of 1 element, and replaced sizeof(structType) with
21385         offsetof(structType, arrayMember).
21386
21387 2008-05-09  Adam Roben  <aroben@apple.com>
21388
21389         Fix a MSVC warning in TextCodecICU
21390
21391         Reviewed by John Sullivan and Dan Bernstein.
21392
21393         * platform/text/TextCodecICU.cpp:
21394         (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter):
21395         UCNV_SUB_STOP_ON_ILLEGAL is a string literal, so using == with it
21396         doesn't really do what we want. Use strcmp instead. It's OK to pass an
21397         unknown value to strcmp here since 1) UCNV_SUB_STOP_ON_ILLEGAL is only
21398         a single character long so we're not going to ready more than 2 bytes
21399         from oldContext, and 2) we're inside an ASSERT which will cause a
21400         crash anyway if it fails.
21401
21402 2008-05-09  Adam Roben  <aroben@apple.com>
21403
21404         Fix a MSVC warning in CSSComputedStyleDeclaration
21405
21406         Reviewed by Geoff Garen.
21407
21408         * css/CSSComputedStyleDeclaration.cpp:
21409         (WebCore::valueForRepeatRule): Removed some unreachable code.
21410
21411 2008-05-09  Adam Roben  <aroben@apple.com>
21412
21413         Fix a MSVC warning in InlineTextBox
21414
21415         Reviewed by Dan Bernstein.
21416
21417         * rendering/InlineTextBox.cpp:
21418         (WebCore::InlineTextBox::paint): Initialize some variables that MSVC
21419         isn't smart enough to figure out will always be initialized in the
21420         cases where they are used.
21421
21422 2008-05-09  Adam Roben  <aroben@apple.com>
21423
21424         Fix a MSVC warning in Position
21425
21426         Reviewed by Darin Adler.
21427
21428         * dom/Position.cpp:
21429         (WebCore::Position::getInlineBoxAndOffset): Use parentheses to make
21430         the precedence of our expressions explicit.
21431
21432 2008-05-09  Adam Roben  <aroben@apple.com>
21433
21434         Fix a MSVC warning in String
21435
21436         Reviewed by Geoff Garen.
21437
21438         * platform/text/String.cpp:
21439         (WebCore::toIntegralType): Disable a bogus warning about using unary -
21440         on an unsigned value. MSVC isn't smart enough to figure out that
21441         isNegative will always be false when value is unsigned.
21442
21443 2008-05-09  Adam Roben  <aroben@apple.com>
21444
21445         Fix a MSVC warning in XMLHttpRequest
21446
21447         Reviewed by Geoff Garen.
21448
21449         * xml/XMLHttpRequest.cpp:
21450         (WebCore::XMLHttpRequest::XMLHttpRequest): Added static_cast<unsigned
21451         long>.
21452
21453 2008-05-12  Anders Carlsson  <andersca@apple.com>
21454
21455         Reviewed by Adam.
21456
21457         Handle the case when a resource with the same URL as the manifest is listed in the manifest.
21458
21459         * loader/appcache/ApplicationCacheGroup.cpp:
21460         (WebCore::ApplicationCacheGroup::addEntry):
21461
21462 2008-05-12  Sam Weinig  <sam@webkit.org>
21463
21464         Reviewed by Dan Bernstein.
21465
21466         Add parsing of AccessControlHeader and AccessItemRule.
21467
21468         * xml/AccessControlList.cpp:
21469         (WebCore::AccessControlList::parseAccessControlHeader): When multiple http headers are sent
21470         in the response, the engine will concatenate them with commas separating the rules.  This simply
21471         reverses that process by splitting on the commas.
21472         (WebCore::AccessControlList::show):
21473         * xml/AccessControlList.h:
21474         * xml/AccessItem.cpp:
21475         (WebCore::AccessItem::AccessItem):
21476         (WebCore::AccessItem::show):
21477         * xml/AccessItem.h:
21478         (WebCore::AccessItem::isValid):
21479         * xml/AccessItemRule.cpp:
21480         (WebCore::skipLWS):
21481         (WebCore::AccessItemRule::parseAccessItemRule): Parse the rule according to the BNF provided by
21482         the Access Control spec.
21483         (WebCore::AccessItemRule::parsePatternList):
21484         (WebCore::AccessItemRule::invalidate):
21485         (WebCore::AccessItemRule::show):
21486         * xml/AccessItemRule.h:
21487
21488 2008-05-12  David Kilzer  <ddkilzer@apple.com>
21489
21490         Fix logic error in DocLoader::clearPreloads()
21491
21492         Reviewed by Antti.
21493
21494         * loader/DocLoader.cpp:
21495         (WebCore::DocLoader::clearPreloads): Be sure to decrease the preload count for
21496         the cached resource before trying to remove it from the cache.  A non-zero
21497         preload count can prevent the resource from being removed from the cache.
21498
21499 2008-05-12  Anders Carlsson  <andersca@apple.com>
21500
21501         Reviewed by Adam.
21502
21503         Handle empty manifest files without crashing.
21504         
21505         * loader/appcache/ApplicationCacheGroup.cpp:
21506         (WebCore::ApplicationCacheGroup::startLoadingEntry):
21507
21508 2008-05-12  Alp Toker  <alp@nuanti.com>
21509
21510         GTK+ build fix for breakage in r33056. Include limits.h for INT_MAX.
21511
21512         * platform/graphics/FontCache.h:
21513
21514 2008-05-12  Anders Carlsson  <andersca@apple.com>
21515
21516         Reviewed by Adam.
21517
21518         Add user agent to requests when loading/updating the cache.
21519     
21520         * loader/FrameLoader.h:
21521         * loader/appcache/ApplicationCacheGroup.cpp:
21522         (WebCore::ApplicationCacheGroup::update):
21523         (WebCore::ApplicationCacheGroup::startLoadingEntry):
21524
21525 2008-05-12  Anders Carlsson  <andersca@apple.com>
21526
21527         Reviewed by Adam.
21528
21529         Make it possible to perform synchronous loads from the application cache.
21530         
21531         * loader/DocumentLoader.cpp:
21532         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
21533         Factor out code from scheduleApplicationCacheLoad in its own method.
21534         
21535         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
21536         Call shouldLoadResourceFromApplicationCache here instead.
21537         
21538         * loader/DocumentLoader.h:
21539         
21540         * loader/FrameLoader.cpp:
21541         (WebCore::FrameLoader::loadResourceSynchronously):
21542         Call shouldLoadResourceFromApplicationCache.
21543
21544 2008-05-12  Dan Bernstein  <mitz@apple.com>
21545
21546         Reviewed by Ada Chan and Sam Weinig.
21547
21548         - WebCore changes for https://bugs.webkit.org/show_bug.cgi?id=17097
21549           <rdar://problem/5715471> CGFontRefs (and HFONTs on Windows) leak because FontCache grows without bound
21550
21551         Added a way for clients to let the cache know that they no longer need
21552         font data, which lets the cache release it. Changed clients to track
21553         most of the font data they get from the cache so that they can later
21554         release it. Some instances of font data -- namely, those used for system
21555         font fallback -- are still not tracked and will therefore remain in the
21556         cache indefinitely.
21557
21558         * WebCore.base.exp: Added exports for WebCoreStatistics in WebKit.
21559
21560         * platform/graphics/Font.cpp:
21561         (WebCore::Font::Font): Changed to use FontFallbackList::create().
21562         (WebCore::Font::update): Ditto.
21563
21564         * platform/graphics/FontCache.cpp:
21565         (WebCore::FontCache::getCachedFontData): Added code to track the number
21566         of times a SimpleFontData instance has been requested from the cache,
21567         remove requested instances from the inactive list, and purge inactive
21568         font data if the inactive list has grown above its maximum allowed size.
21569         (WebCore::FontCache::releaseFontData): Added. Called by clients to let
21570         the cache know that they no longer need the font data. Adds the font
21571         data to the inactive list if the last client has released it.
21572         (WebCore::FontCache::purgeInactiveFontData): Added. Removes inactive
21573         font data from the cache (and the inactive list).
21574         (WebCore::FontCache::fontDataCount): Added to provide statistics.
21575         (WebCore::FontCache::inactiveFontDataCount): Ditto.
21576
21577         * platform/graphics/FontCache.h:
21578
21579         * platform/graphics/FontData.h:
21580         (WebCore::FontData::FontData): Added a member variable to store the
21581         highest glyph page tree level in which there is a node for this FontData.
21582         This is used to limit the depth of the search when pruning glyph page
21583         trees.
21584         (WebCore::FontData::setMaxGlyphPageTreeLevel): Added this accessor.
21585         (WebCore::FontData::maxGlyphPageTreeLevel): Ditto.
21586
21587         * platform/graphics/FontFallbackList.cpp:
21588         (WebCore::FontFallbackList::FontFallbackList): Changed to start with a
21589         refcount of 1.
21590         (WebCore::FontFallbackList::invalidate): Added a call to
21591         releaseFontData().
21592         (WebCore::FontFallbackList::releaseFontData): Added. Lets the font cache
21593         know that we no longer need the FontData in our font list.
21594         (WebCore::FontFallbackList::fontDataAt): Changed to record in the font
21595         list whether the font data is a custom font data or not.
21596         (WebCore::FontFallbackList::setPlatformFont): Ditto.
21597
21598         * platform/graphics/FontFallbackList.h:
21599         (WebCore::FontFallbackList::create): Added and made the constructor
21600         private.
21601         (WebCore::FontFallbackList::~FontFallbackList): Added a call to
21602         releaseFontData().
21603
21604         * platform/graphics/GlyphPageTreeNode.cpp:
21605         (WebCore::GlyphPageTreeNode::treeGlyphPageCount): Added to provide
21606         statistics.
21607         (WebCore::GlyphPageTreeNode::pageCount): Ditto.
21608
21609         (WebCore::GlyphPageTreeNode::pruneTreeFontData): Added.
21610         (WebCore::GlyphPageTreeNode::getChild): Added code to update the font
21611         data's maximum glyph page tree level.
21612         (WebCore::GlyphPageTreeNode::pruneFontData): Added.
21613
21614         * platform/graphics/GlyphPageTreeNode.h:
21615
21616         * platform/graphics/SimpleFontData.cpp:
21617         (WebCore::SimpleFontData::~SimpleFontData): Added code to let the font
21618         cache know that we no longer need the small caps font data and to prune
21619         the glyph page trees.
21620
21621 2008-05-12  Anders Carlsson  <andersca@apple.com>
21622
21623         Reviewed by Alexey.
21624
21625         Add ApplicationCacheStorage::empty() method which will empty
21626         the application cache database.
21627         
21628         * WebCore.base.exp:
21629         * loader/appcache/ApplicationCache.cpp:
21630         (WebCore::ApplicationCache::clearStorageID):
21631         * loader/appcache/ApplicationCache.h:
21632         * loader/appcache/ApplicationCacheGroup.cpp:
21633         (WebCore::ApplicationCacheGroup::clearStorageID):
21634         * loader/appcache/ApplicationCacheGroup.h:
21635         * loader/appcache/ApplicationCacheResource.h:
21636         (WebCore::ApplicationCacheResource::clearStorageID):
21637         * loader/appcache/ApplicationCacheStorage.cpp:
21638         (WebCore::ApplicationCacheStorage::empty):
21639         * loader/appcache/ApplicationCacheStorage.h:
21640
21641 2008-05-12  Anders Carlsson  <andersca@apple.com>
21642
21643         Reviewed by John.
21644
21645         Don't throw an exception if the string passed in is an invalid URL.
21646         
21647         * loader/appcache/DOMApplicationCache.cpp:
21648         (WebCore::DOMApplicationCache::remove):
21649
21650 2008-05-12  Anders Carlsson  <andersca@apple.com>
21651
21652         Reviewed by Mitz.
21653
21654         Add the variable enums for getting the input vtables.
21655         
21656         * bridge/npapi.h:
21657
21658 2008-05-12  Adam Roben  <aroben@apple.com>
21659
21660         Windows build fix
21661
21662         * WebCorePrefix.cpp: Touched this so that it will rebuild now that
21663         ENABLE_CROSS_DOCUMENT_MESSAGING has been removed.
21664
21665 2008-05-12  Alexey Proskuryakov  <ap@webkit.org>
21666
21667         Roll out recent  threading changes (r32807, r32810, r32819, r32822) to simplify
21668         SquirrelFish merging.
21669
21670         * bindings/js/GCController.cpp:
21671         (WebCore::collect):
21672         (WebCore::GCController::gcTimerFired):
21673         (WebCore::GCController::garbageCollectNow):
21674         * bindings/js/JSAudioConstructor.cpp:
21675         (WebCore::JSAudioConstructor::JSAudioConstructor):
21676         * bindings/js/JSCSSRuleCustom.cpp:
21677         (WebCore::toJS):
21678         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
21679         (WebCore::JSCSSStyleDeclaration::nameGetter):
21680         * bindings/js/JSCSSValueCustom.cpp:
21681         (WebCore::toJS):
21682         * bindings/js/JSCanvasPixelArrayCustom.cpp:
21683         (WebCore::JSCanvasPixelArray::indexGetter):
21684         (WebCore::toJS):
21685         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
21686         (WebCore::toJS):
21687         * bindings/js/JSClipboardCustom.cpp:
21688         (WebCore::JSClipboard::types):
21689         (WebCore::JSClipboard::getData):
21690         * bindings/js/JSCustomXPathNSResolver.cpp:
21691         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
21692         * bindings/js/JSDOMApplicationCacheCustom.cpp:
21693         (WebCore::JSDOMApplicationCache::addEventListener):
21694         (WebCore::JSDOMApplicationCache::removeEventListener):
21695         (WebCore::JSDOMApplicationCache::setOnchecking):
21696         (WebCore::JSDOMApplicationCache::setOnerror):
21697         (WebCore::JSDOMApplicationCache::setOnnoupdate):
21698         (WebCore::JSDOMApplicationCache::setOndownloading):
21699         (WebCore::JSDOMApplicationCache::setOnprogress):
21700         (WebCore::JSDOMApplicationCache::setOnupdateready):
21701         (WebCore::JSDOMApplicationCache::setOncached):
21702         * bindings/js/JSDOMWindowBase.cpp:
21703         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
21704         (WebCore::JSDOMWindowBase::getValueProperty):
21705         (WebCore::JSDOMWindowBase::setListener):
21706         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
21707         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
21708         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
21709         (WebCore::windowProtoFuncAToB):
21710         (WebCore::windowProtoFuncBToA):
21711         (WebCore::windowProtoFuncSetTimeout):
21712         (WebCore::windowProtoFuncSetInterval):
21713         (WebCore::windowProtoFuncAddEventListener):
21714         * bindings/js/JSDOMWindowBase.h:
21715         * bindings/js/JSDOMWindowShell.cpp:
21716         * bindings/js/JSDOMWindowShell.h:
21717         * bindings/js/JSDocumentCustom.cpp:
21718         (WebCore::toJS):
21719         * bindings/js/JSEventCustom.cpp:
21720         (WebCore::toJS):
21721         * bindings/js/JSEventTargetBase.cpp:
21722         (WebCore::jsEventTargetAddEventListener):
21723         * bindings/js/JSEventTargetBase.h:
21724         (WebCore::JSEventTargetPrototype::self):
21725         * bindings/js/JSEventTargetNode.cpp:
21726         (WebCore::JSEventTargetNode::setListener):
21727         * bindings/js/JSHTMLCollectionCustom.cpp:
21728         (WebCore::getNamedItems):
21729         (WebCore::toJS):
21730         * bindings/js/JSHTMLElementWrapperFactory.cpp:
21731         (WebCore::createJSHTMLWrapper):
21732         * bindings/js/JSHTMLFormElementCustom.cpp:
21733         (WebCore::JSHTMLFormElement::nameGetter):
21734         * bindings/js/JSHTMLInputElementBase.cpp:
21735         (WebCore::JSHTMLInputElementBase::getValueProperty):
21736         * bindings/js/JSHTMLOptionElementConstructor.cpp:
21737         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
21738         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
21739         (WebCore::JSHTMLOptionsCollection::length):
21740         * bindings/js/JSInspectedObjectWrapper.cpp:
21741         (WebCore::JSInspectedObjectWrapper::wrap):
21742         * bindings/js/JSInspectorCallbackWrapper.cpp:
21743         (WebCore::JSInspectorCallbackWrapper::wrap):
21744         * bindings/js/JSLocationCustom.cpp:
21745         (WebCore::JSLocation::toString):
21746         * bindings/js/JSNamedNodesCollection.cpp:
21747         (WebCore::JSNamedNodesCollection::lengthGetter):
21748         * bindings/js/JSNavigatorCustom.cpp:
21749         (WebCore::JSNavigator::appVersion):
21750         * bindings/js/JSNodeCustom.cpp:
21751         (WebCore::toJS):
21752         * bindings/js/JSNodeFilterCustom.cpp:
21753         (WebCore::JSNodeFilter::acceptNode):
21754         * bindings/js/JSRGBColor.cpp:
21755         (WebCore::getJSRGBColor):
21756         * bindings/js/JSSQLResultSetRowListCustom.cpp:
21757         (WebCore::JSSQLResultSetRowList::item):
21758         * bindings/js/JSSVGElementWrapperFactory.cpp:
21759         (WebCore::createJSSVGWrapper):
21760         * bindings/js/JSSVGLazyEventListener.cpp:
21761         (WebCore::JSSVGLazyEventListener::eventParameterName):
21762         * bindings/js/JSStorageCustom.cpp:
21763         (WebCore::JSStorage::nameGetter):
21764         * bindings/js/JSStyleSheetCustom.cpp:
21765         (WebCore::toJS):
21766         * bindings/js/JSXMLHttpRequestConstructor.cpp:
21767         (WebCore::JSXMLHttpRequestConstructor::construct):
21768         * bindings/js/JSXMLHttpRequestCustom.cpp:
21769         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
21770         (WebCore::JSXMLHttpRequest::setOnload):
21771         (WebCore::JSXMLHttpRequest::setOnprogress):
21772         (WebCore::JSXMLHttpRequest::getResponseHeader):
21773         (WebCore::JSXMLHttpRequest::addEventListener):
21774         (WebCore::JSXMLHttpRequest::removeEventListener):
21775         * bindings/js/JSXSLTProcessorConstructor.cpp:
21776         (WebCore::JSXSLTProcessorConstructor::construct):
21777         * bindings/js/JSXSLTProcessorCustom.cpp:
21778         (WebCore::JSXSLTProcessor::getParameter):
21779         * bindings/js/kjs_binding.cpp:
21780         (WebCore::jsStringOrNull):
21781         (WebCore::jsOwnedStringOrNull):
21782         (WebCore::jsStringOrUndefined):
21783         (WebCore::jsStringOrFalse):
21784         (WebCore::nonCachingStaticFunctionGetter):
21785         (WebCore::objectToStringFunctionGetter):
21786         * bindings/js/kjs_binding.h:
21787         (WebCore::DOMObject::DOMObject):
21788         (WebCore::cacheDOMObject):
21789         (WebCore::cacheSVGDOMObject):
21790         * bindings/js/kjs_events.cpp:
21791         (WebCore::JSLazyEventListener::eventParameterName):
21792         (WebCore::JSLazyEventListener::parseCode):
21793         * bindings/js/kjs_html.cpp:
21794         (WebCore::getRuntimeObject):
21795         * bindings/scripts/CodeGeneratorJS.pm:
21796         * bridge/c/c_instance.cpp:
21797         (KJS::Bindings::CInstance::defaultValue):
21798         (KJS::Bindings::CInstance::stringValue):
21799         (KJS::Bindings::CInstance::numberValue):
21800         (KJS::Bindings::CInstance::valueOf):
21801         * bridge/c/c_instance.h:
21802         * bridge/c/c_utility.cpp:
21803         (KJS::Bindings::convertNPVariantToValue):
21804         * bridge/jni/jni_instance.cpp:
21805         (JavaInstance::stringValue):
21806         (JavaInstance::numberValue):
21807         (JavaInstance::invokeMethod):
21808         (JavaInstance::defaultValue):
21809         (JavaInstance::valueOf):
21810         * bridge/jni/jni_instance.h:
21811         * bridge/jni/jni_jsobject.h:
21812         * bridge/jni/jni_jsobject.mm:
21813         (JavaJSObject::call):
21814         (JavaJSObject::setMember):
21815         (JavaJSObject::setSlot):
21816         (JavaJSObject::convertJObjectToValue):
21817         (JavaJSObject::getListFromJArray):
21818         * bridge/jni/jni_objc.mm:
21819         (KJS::Bindings::dispatchJNICall):
21820         * bridge/jni/jni_runtime.cpp:
21821         (JavaArray::convertJObjectToArray):
21822         (JavaField::dispatchValueFromInstance):
21823         (JavaField::valueFromInstance):
21824         (JavaField::dispatchSetValueToInstance):
21825         (JavaArray::valueAt):
21826         * bridge/jni/jni_utility.h:
21827         * bridge/objc/objc_class.mm:
21828         (KJS::Bindings::ObjcClass::fallbackObject):
21829         * bridge/objc/objc_instance.h:
21830         * bridge/objc/objc_instance.mm:
21831         (ObjcInstance::defaultValue):
21832         (ObjcInstance::stringValue):
21833         (ObjcInstance::numberValue):
21834         (ObjcInstance::valueOf):
21835         * bridge/objc/objc_utility.h:
21836         * bridge/objc/objc_utility.mm:
21837         (KJS::Bindings::convertNSStringToString):
21838         (KJS::Bindings::convertObjcValueToValue):
21839         * bridge/qt/qt_class.cpp:
21840         (KJS::Bindings::QtClass::fallbackObject):
21841         * bridge/qt/qt_instance.cpp:
21842         (KJS::Bindings::QtRuntimeObjectImp::construct):
21843         (KJS::Bindings::QtInstance::getRuntimeObject):
21844         (KJS::Bindings::QtInstance::invokeDefaultMethod):
21845         (KJS::Bindings::QtInstance::defaultValue):
21846         (KJS::Bindings::QtInstance::stringValue):
21847         (KJS::Bindings::QtInstance::numberValue):
21848         (KJS::Bindings::QtInstance::valueOf):
21849         * bridge/qt/qt_instance.h:
21850         * bridge/qt/qt_runtime.cpp:
21851         (KJS::Bindings::convertValueToQVariant):
21852         (KJS::Bindings::convertQVariantToValue):
21853         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
21854         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
21855         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
21856         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
21857         (KJS::Bindings::QtConnectionObject::execute):
21858         * bridge/runtime.cpp:
21859         (KJS::Bindings::Instance::createRuntimeObject):
21860         * bridge/runtime.h:
21861         (KJS::Bindings::Instance::valueOf):
21862         * bridge/runtime_array.cpp:
21863         (RuntimeArray::lengthGetter):
21864         * bridge/runtime_method.cpp:
21865         (RuntimeMethod::lengthGetter):
21866         * bridge/runtime_object.cpp:
21867         (RuntimeObjectImp::RuntimeObjectImp):
21868         (RuntimeObjectImp::methodGetter):
21869         (RuntimeObjectImp::defaultValue):
21870         * xml/XMLHttpRequest.cpp:
21871         (WebCore::XMLHttpRequest::dropProtection):
21872
21873 2008-05-11  Robin Dunn  <robin@alldunn.com>
21874
21875         Reviewed by Kevin Ollivier.
21876
21877         Since wx popup menus dismiss themselves when an item is selected we need to
21878         call hidePopup so webkit's internal state is correct.
21879         
21880         https://bugs.webkit.org/show_bug.cgi?id=19000
21881
21882         * platform/wx/PopupMenuWx.cpp:
21883         (WebCore::PopupMenu::OnMenuItemSelected):
21884         (WebCore::PopupMenu::hide):
21885
21886 2008-05-11  Sam Weinig  <sam@webkit.org>
21887
21888         Reviewed by Mark Rowe.
21889
21890         Move some generic parsing functions into a new ParserUtilities header so that
21891         they can be used for non-SVG builds too.
21892
21893         * WebCore.vcproj/WebCore.vcproj:
21894         * WebCore.xcodeproj/project.pbxproj:
21895         * platform/text/ParserUtilities.h: Added.
21896         (WebCore::skipString):
21897         * svg/SVGParserUtilities.h:
21898         (WebCore::isWhitespace):
21899         (WebCore::skipOptionalSpaces):
21900         (WebCore::skipOptionalSpacesOrDelimiter):
21901
21902 2008-05-11  Sam Weinig  <sam@webkit.org>
21903
21904         Reviewed by Dan Bernstein.
21905
21906         Add scaffolding for the implementation of Access Control for Cross-site Requests. 
21907
21908         * GNUmakefile.am:
21909         * WebCore.pro:
21910         * WebCore.vcproj/WebCore.vcproj:
21911         * WebCore.xcodeproj/project.pbxproj:
21912         * WebCoreSources.bkl:
21913         * xml/AccessControlList.cpp: Added.
21914         (WebCore::AccessControlList::AccessControlList):
21915         (WebCore::AccessControlList::~AccessControlList):
21916         (WebCore::AccessControlList::parseAccessControlHeader):
21917         (WebCore::AccessControlList::checkOrigin):
21918         * xml/AccessControlList.h: Added.
21919         * xml/AccessItem.cpp: Added.
21920         (WebCore::AccessItem::AccessItem):
21921         (WebCore::AccessItem::parseAccessItem):
21922         (WebCore::AccessItem::matches):
21923         * xml/AccessItem.h: Added.
21924         * xml/AccessItemRule.cpp: Added.
21925         (WebCore::AccessItemRule::AccessItemRule):
21926         (WebCore::AccessItemRule::parseAccessItemRule):
21927         * xml/AccessItemRule.h: Added.
21928
21929 2008-05-11  Julien Chaffraix  <jchaffraix@webkit.org>
21930
21931         Debug build fix.
21932
21933         * loader/appcache/ApplicationCache.cpp: Include stdio.h
21934         as we are using printf in ApplicationCache::dump().
21935
21936 2008-05-10  Dan Bernstein  <mitz@apple.com>
21937
21938         Reviewed by Jessica Kahn.
21939
21940         - add a copy assignment operator to FontPlatformData on Mac to properly
21941           retain the m_font data member.
21942
21943         * platform/graphics/mac/FontPlatformData.h:
21944         * platform/graphics/mac/FontPlatformDataMac.mm:
21945         (WebCore::FontPlatformData::FontPlatformData):
21946         (WebCore::~FontPlatformData):
21947         (WebCore::FontPlatformData::operator=):
21948         (WebCore::FontPlatformData::setFont):
21949
21950 2008-05-10  Adele Peterson  <adele@apple.com>
21951
21952         Reviewed by Tim Hatcher.
21953
21954         Fix crash for WebKit clients that don't set a group name for the WebView/Page.
21955
21956         * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): Instead of adding the Page directly to the group,
21957           call the addPage method, since it does extra work initializing m_localStorage.
21958
21959 2008-05-09  Sam Weinig  <sam@webkit.org>
21960
21961         Reviewed by Mark Rowe.
21962
21963         Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
21964         NULL pointer dereference in NamedAttrMap::setNamedItem
21965
21966         Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
21967
21968         * dom/NamedAttrMap.cpp:
21969         (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
21970
21971 2008-05-09  Kevin McCullough  <kmccullough@apple.com>
21972
21973         Build fix.
21974
21975         * page/Console.cpp:
21976         (WebCore::Console::profile):
21977
21978 2008-05-09  Sam Weinig  <sam@webkit.org>
21979
21980         Rubber-stamped by Mark Rowe.
21981
21982         Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
21983
21984         * Configurations/WebCore.xcconfig:
21985         * WebCore.vcproj/WebCore.vcproj:
21986         * WebCore.vcproj/build-generated-files.sh:
21987         * bindings/js/JSDOMWindowCustom.cpp:
21988         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
21989         (WebCore::JSDOMWindow::postMessage):
21990         * bindings/js/JSEventCustom.cpp:
21991         (WebCore::toJS):
21992         * bindings/objc/DOMEvents.mm:
21993         (+[DOMEvent _wrapEvent:WebCore::]):
21994         * dom/Document.cpp:
21995         (WebCore::Document::createEvent):
21996         * dom/Event.cpp:
21997         (WebCore::Event::isMessageEvent):
21998         * dom/Event.h:
21999         * dom/MessageEvent.cpp:
22000         * dom/MessageEvent.h:
22001         * dom/MessageEvent.idl:
22002         * page/DOMWindow.cpp:
22003         (WebCore::DOMWindow::postMessageTimerFired):
22004         * page/DOMWindow.h:
22005         * page/DOMWindow.idl:
22006
22007 2008-05-09  Adam Barth  <abarth-webkit@adambarth.com>
22008
22009         Reviewed by Sam Weinig.
22010
22011         https://bugs.webkit.org/show_bug.cgi?id=18771
22012
22013         Make postMessage generate an event on the window instead of the
22014         document.
22015
22016         Test: http/tests/messaging/cross-domain-message-event-dispatch.html
22017
22018         * dom/EventTargetNode.cpp:
22019         (WebCore::EventTargetNode::dispatchWindowEvent):
22020         * dom/EventTargetNode.h:
22021         * page/DOMWindow.cpp:
22022         (WebCore::DOMWindow::postMessageTimerFired):
22023
22024 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
22025
22026         Reviewed by Simon.
22027
22028         Replaced all instances of qDebug() with LOG(Media, ...)
22029         in MediaPlayerPrivatePhonon.
22030
22031         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
22032         (WebCore::MediaPlayerPrivate::updateStates):
22033
22034 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
22035
22036         Reviewed by Simon
22037
22038         Fix the Qt/Mac build.
22039
22040         * platform/qt/FileSystemQt.cpp:
22041
22042 2008-05-08  Sam Weinig  <sam@webkit.org>
22043
22044         Reviewed by Anders Carlsson.
22045
22046         Rename the XMLHttpRequestState enum values to match the spec.
22047
22048         * xml/XMLHttpRequest.cpp:
22049         (WebCore::XMLHttpRequest::responseXML):
22050         (WebCore::XMLHttpRequest::XMLHttpRequest):
22051         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
22052         (WebCore::XMLHttpRequest::open):
22053         (WebCore::XMLHttpRequest::send):
22054         (WebCore::XMLHttpRequest::abort):
22055         (WebCore::XMLHttpRequest::setRequestHeader):
22056         (WebCore::XMLHttpRequest::getAllResponseHeaders):
22057         (WebCore::XMLHttpRequest::getResponseHeader):
22058         (WebCore::XMLHttpRequest::status):
22059         (WebCore::XMLHttpRequest::statusText):
22060         (WebCore::XMLHttpRequest::processSyncLoadResults):
22061         (WebCore::XMLHttpRequest::didFinishLoading):
22062         (WebCore::XMLHttpRequest::didReceiveData):
22063         * xml/XMLHttpRequest.h:
22064
22065 2008-05-08  Dan Bernstein  <mitz@apple.com>
22066
22067         Reviewed by Mark Rowe.
22068
22069         - fix https://bugs.webkit.org/show_bug.cgi?id=18818
22070           <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
22071
22072         Test: fast/css/first-letter-float-after-float.html
22073
22074         * rendering/RenderBlock.cpp:
22075         (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
22076         letter container right before the rest of the text it is taken from,
22077         instead of at the beginning of the block.
22078
22079 2008-05-08  Chris Fleizach  <cfleizach@apple.com>
22080
22081         Reviewed by Darin Adler.
22082
22083         <rdar://problem/5921046> AX: list box options have wrong AXPosition
22084
22085         * page/AccessibilityObject.cpp:
22086         (WebCore::AccessibilityObject::documentFrameView):
22087         * page/AccessibilityObject.h:
22088
22089 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
22090
22091         Reviewed by Eric.
22092
22093         Bug 18916: make_names.pl --factory needs to support custom c++ guard
22094
22095         Add --guardFactoryWith to handle the cpp guard around generated factories.
22096
22097         * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
22098         * GNUmakefile.am: Ditto.
22099         * WebCore.pro: Ditto.
22100         * dom/make_names.pl: Add guardFactoryWith option.
22101
22102 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
22103
22104         Reviewed by Adam Roben.
22105
22106         wx & Gtk build fix.
22107
22108         Should also fix the cURL backend for the Windows port.
22109
22110         * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
22111         * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
22112         fixes the build on some machine.
22113
22114         * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
22115
22116 2008-05-08  Timothy Hatcher  <timothy@apple.com>
22117
22118         Fixes the bug where the Web Inspector could not
22119         find any localization strings.
22120
22121         Reviewed by Mark Rowe.
22122
22123         * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
22124         file to the WebCore Copy Resources phase. Also removes an idl from
22125         the Copy Resources phase.
22126
22127 2008-05-08  Dan Bernstein  <mitz@apple.com>
22128
22129         Reviewed by Adam Roben.
22130
22131         - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
22132
22133         * platform/win/PopupMenuWin.cpp:
22134         (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
22135         font for measuring labels.
22136
22137 2008-05-08  Dan Bernstein  <mitz@apple.com>
22138
22139         Reviewed by Geoffrey Garen.
22140
22141         - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590 
22142           ASSERTION FAILED: subject in jsRegExpExecute()
22143
22144         * page/Frame.cpp:
22145         (WebCore::Frame::matchLabelsAgainstElement):
22146
22147 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
22148
22149         Reviewed by Simon.
22150
22151         Simple ImageBuffer::image implementation.
22152
22153         In contrast to cg and cairo we do not use a special BitmapImage because
22154         the ownership of the FrameData inside the BitmapImage is a bit backward
22155         (actually owned by the ImageDecoderQt...). Further work is needed for image
22156         and pixmap handling in the qt port...
22157
22158         * WebCore.pro:
22159         * platform/graphics/ImageBuffer.h:
22160         * platform/graphics/qt/ImageBufferQt.cpp:
22161         (WebCore::ImageBuffer::image):
22162         * platform/graphics/qt/ImageQt.cpp:
22163         * platform/graphics/qt/StillImageQt.cpp: Added.
22164         (WebCore::StillImage::StillImage):
22165         (WebCore::StillImage::size):
22166         (WebCore::StillImage::getPixmap):
22167         (WebCore::StillImage::draw):
22168         * platform/graphics/qt/StillImageQt.h: Added.
22169
22170 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
22171
22172         Reviewed by Simon.
22173
22174         Update the WebKit.qrc of the inspector to be functional again
22175
22176         * page/inspector/WebKit.qrc:
22177
22178 2008-05-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
22179
22180         Reviewed by Simon
22181
22182         Fix the Qt/Mac build.
22183
22184         * platform/FileSystem.h:
22185
22186 2008-05-08  Ariya Hidayat  <ariya.hidayat@trolltech.com>
22187
22188         Reviewed by Simon.
22189
22190         Use native Windows library handling (instead of QLibrary) 
22191         for Qt/Win32's PlatformModule.
22192
22193         * platform/FileSystem.h:
22194         (WebCore::PlatformModuleVersion::PlatformModuleVersion):
22195         * platform/qt/FileSystemQt.cpp:
22196         (WebCore::unloadModule):
22197
22198 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
22199
22200         Reviewed and found by Holger.
22201
22202         Include .css in the list of extensions for text/css. Fixes
22203         fast/loader/local-css-allowed-in-strict-mode.html.
22204
22205         * platform/qt/MIMETypeRegistryQt.cpp:
22206
22207 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
22208
22209         Fix the Qt and Wx build when compiling without offline app support.
22210
22211         * loader/FrameLoader.cpp:
22212         (WebCore::FrameLoader::canCachePage):
22213
22214 2008-05-07  Sam Weinig  <sam@webkit.org>
22215
22216         Reviewed by Adele Peterson
22217
22218         Update MessageEvent to match the latest version of the HTML5 spec,
22219         adding the lastEventId attribute.
22220
22221         * dom/MessageEvent.cpp:
22222         (WebCore::MessageEvent::MessageEvent):
22223         (WebCore::MessageEvent::initMessageEvent):
22224         * dom/MessageEvent.h:
22225         (WebCore::MessageEvent::lastEventId):
22226         * dom/MessageEvent.idl:
22227         * page/DOMWindow.cpp:
22228         (WebCore::DOMWindow::postMessage):
22229
22230 2008-05-07  Stephanie Lewis <slewis@apple.com>
22231
22232         Reviewed by Maciej.
22233
22234         remove non-functioning code.  If onunload should be fired from these nodes then
22235         a WindowEventListener needs to be set.  However, Firefox and IE also do not
22236         fire onunload events for these cases.
22237
22238         Test: fast/events/onunload-not-on-body.html 
22239         
22240         * html/HTMLFrameElementBase.cpp:
22241         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
22242         * html/HTMLObjectElement.cpp
22243         (WebCore::HTMLObjectElement::parseMappedAttribute):
22244
22245 2008-05-07  Dan Bernstein  <mitz@apple.com>
22246
22247         Reviewed by John Sullivan.
22248
22249         - fix https://bugs.webkit.org/show_bug.cgi?id=18909
22250           <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
22251
22252         Test: fast/dynamic/positioned-movement-with-positioned-children.html
22253
22254         * rendering/RenderBlock.cpp:
22255         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
22256         a positioned object that has only moved and has only positioned children
22257         that have changed.
22258         * rendering/RenderObject.h:
22259         (WebCore::RenderObject::needsPositionedMovementLayout): Added this
22260         accessor.
22261
22262 2008-05-07  Anders Carlsson  <andersca@apple.com>
22263
22264         Reviewed by John.
22265
22266         When no document loaders are associated with an application cache group,
22267         release the reference to the newest cache group. This prevents reference cycles.
22268         
22269         * loader/appcache/ApplicationCacheGroup.cpp:
22270         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
22271         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
22272         (WebCore::ApplicationCacheGroup::cacheDestroyed):
22273         * loader/appcache/ApplicationCacheGroup.h:
22274         
22275         * loader/appcache/ApplicationCacheStorage.cpp:
22276         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
22277         Return early if the datbase wasn't open.
22278         
22279         (WebCore::ApplicationCacheStorage::loadCache):
22280         Add error.
22281
22282 2008-05-07  Anders Carlsson  <andersca@apple.com>
22283
22284         Reviewed by Adam.
22285
22286         Don't put pages with an application cache in the BF cache.
22287         
22288         * loader/FrameLoader.cpp:
22289         (WebCore::FrameLoader::canCachePage):
22290
22291 2008-05-07  Justin Garcia  <justin.garcia@apple.com>
22292
22293         Reviewed by John Sullivan.
22294
22295         <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
22296         
22297         When a single tab or series of tabs was copied, we weren't putting them into a 
22298         tab span.  On Paste, we would be given a text node with a single tab or series
22299         of tabs in it, and we would crash when inserting it at the start of a block
22300         (where that kind of text becomes completely unrendered).
22301
22302         * editing/ReplaceSelectionCommand.cpp:
22303         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
22304         up correctly and early return if we removed everything that was inserted.
22305         * editing/markup.cpp:
22306         (WebCore::createMarkup):  Include the tab span when the only thing copied
22307         was a tab or a series of tabs.
22308
22309 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
22310
22311         Reviewed by Adam Roben.
22312
22313         wx & Gtk build fix.
22314
22315         * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
22316         __STDC_LIMIT_MACROS to have SIZE_MAX exported.
22317         * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
22318         as it is not present on the build bots.
22319         * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
22320
22321 2008-05-07  David Kilzer  <ddkilzer@apple.com>
22322
22323         Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
22324         <https://bugs.webkit.org/show_bug.cgi?id=18900>
22325         <rdar://problem/5912383>
22326
22327         Original patch by Aaron Golden and Tim Omernick.  Reviewed by Adele.
22328
22329         Test: fast/forms/textfield-to-password-on-focus.html
22330
22331         * html/HTMLInputElement.cpp:
22332         (WebCore::HTMLInputElement::setInputType): If the current node has
22333         focus, call updateFocusAppearance() to make sure its state is correct
22334         after changing its type.
22335
22336 2008-05-07  Chris Fleizach  <cfleizach@apple.com>
22337
22338         Reviewed by Alice Liu
22339
22340         <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
22341
22342         * page/AccessibilityObject.h:
22343         (WebCore::AccessibilityObject::isFileUploadButton):
22344         * page/AccessibilityRenderObject.cpp:
22345         (WebCore::AccessibilityRenderObject::isFileUploadButton):
22346         (WebCore::AccessibilityRenderObject::actionElement):
22347         (WebCore::AccessibilityRenderObject::textUnderElement):
22348         (WebCore::AccessibilityRenderObject::stringValue):
22349         (WebCore::AccessibilityRenderObject::roleValue):
22350         * page/AccessibilityRenderObject.h:
22351         * rendering/RenderFileUploadControl.cpp:
22352         (WebCore::RenderFileUploadControl::buttonValue):
22353         (WebCore::RenderFileUploadControl::fileTextValue):
22354         * rendering/RenderFileUploadControl.h:
22355
22356 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
22357
22358         Reviewed by Eric.
22359
22360         Bug 17971: [Curl] FormData processing should be moved to its own class
22361
22362         Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
22363         could manipulate.
22364
22365         First step into having complete file uploading facility in cURL.
22366
22367         No test case as it is only code refactoring.
22368
22369         * GNUmakefile.am: Add FormDataStreamCurl.cpp
22370         * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
22371         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
22372         * platform/network/curl/FormDataStreamCurl.cpp: Added.
22373         (WebCore::FormDataStream::~FormDataStream):
22374         (WebCore::FormDataStream::read):
22375         * platform/network/curl/FormDataStreamCurl.h: Added.
22376         (WebCore::FormDataStream::FormDataStream):
22377         * platform/network/curl/ResourceHandleCurl.cpp:
22378         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
22379         * platform/network/curl/ResourceHandleManager.cpp:
22380         (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
22381
22382 2008-05-07  Adam Treat  <treat@kde.org>
22383
22384         Reviewed by Simon.
22385
22386         https://bugs.webkit.org/show_bug.cgi?id=18898
22387
22388         Fixed wrong transform being used for creating the pixmap for a new
22389         transparency layer. This fixes the popup menus on dell.com.
22390
22391         * platform/graphics/qt/GraphicsContextQt.cpp:
22392         (WebCore::GraphicsContext::beginTransparencyLayer):
22393
22394 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
22395
22396         Reviewed by Simon.
22397
22398         Share the plug-in directories between Gtk and Qt/X11 port.
22399
22400         * platform/qt/FileSystemQt.cpp:
22401         (WebCore::homeDirectoryPath): Implement it for Qt.
22402         * plugins/PluginDatabase.cpp:
22403         (WebCore::addMozillaPluginDirectories): Shared code.
22404         (WebCore::PluginDatabase::defaultPluginDirectories):
22405         (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
22406         * plugins/gtk/PluginDatabaseGtk.cpp:
22407         (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
22408         * plugins/qt/PluginDatabaseQt.cpp: Refactored.
22409
22410 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
22411
22412         Reviewed by Simon
22413
22414         Fix build issues on Mac and refeactor the .pro file a bit.
22415
22416         * WebCore.pro:
22417         * platform/qt/TemporaryLinkStubs.cpp:
22418         (PluginPackage::fetchInfo):
22419
22420 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
22421
22422         Reviewed by Simon
22423
22424         Draw scrollview corners (between scrollbars) using the Qt style.
22425
22426         https://bugs.webkit.org/show_bug.cgi?id=18894
22427
22428         * platform/qt/ScrollViewQt.cpp:
22429         (WebCore::drawScrollbarCorner):
22430         (WebCore::ScrollView::paint):
22431
22432 2008-05-07  Simon Hausmann  <hausmann@webkit.org>
22433
22434         Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
22435         the build.
22436
22437         * WebCore.pro:
22438
22439 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
22440
22441         Rubber-stamped by Holger.
22442
22443         Fix building without storage support.
22444
22445         * page/PageGroup.cpp:
22446         (WebCore::PageGroup::closeLocalStorage): proper #if
22447
22448 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
22449
22450         Rubber-stamped by Oliver Hunt.
22451
22452         Fix building without accessibility.
22453
22454         * page/AXObjectCache.cpp:
22455         (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
22456
22457 2008-05-06  Dan Bernstein  <mitz@apple.com>
22458
22459         Reviewed by Darin Adler.
22460
22461         - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
22462
22463         Test: fast/block/float/float-on-zero-height-line.html
22464
22465         * rendering/RenderBlock.cpp:
22466         (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
22467
22468 2008-05-06  Alice Liu  <alice.liu@apple.com>
22469
22470         Reviewed by Adele Peterson and John Sullivan.
22471
22472         changes needed to build on Windows after r32911 and r32927
22473
22474         * WebCore.vcproj/WebCore.vcproj:
22475         * page/AXObjectCache.cpp:
22476         (WebCore::AXObjectCache::selectedChildrenChanged):
22477         * page/AccessibilityObject.h:
22478         (WebCore::AccessibilityObject::document):
22479         (WebCore::AccessibilityObject::topDocumentFrameView):
22480         (WebCore::AccessibilityObject::documentFrameView):
22481         * page/AccessibilityRenderObject.cpp:
22482         (WebCore::AccessibilityRenderObject::document):
22483         (WebCore::AccessibilityRenderObject::topDocumentFrameView):
22484         (WebCore::AccessibilityRenderObject::documentFrameView):
22485         * page/AccessibilityRenderObject.h:
22486         * page/mac/AXObjectCacheMac.mm:
22487         * page/mac/AccessibilityObjectWrapper.mm:
22488         (-[AccessibilityObjectWrapper position]):
22489         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
22490
22491 2008-05-06  Brady Eidson  <beidson@apple.com>
22492
22493         Reviewed by Sam Weinig
22494
22495         Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
22496         1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
22497         2 - Pending sync timers all need to be cancelled.
22498
22499         * storage/LocalStorage.cpp:
22500         (WebCore::LocalStorage::storageArea):
22501         (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
22502           thread termination.
22503         * storage/LocalStorage.h:  Change the map to be of LocalStorageAreas instead of StorageAreas
22504
22505         * storage/LocalStorageArea.cpp:
22506         (WebCore::LocalStorageArea::LocalStorageArea):
22507         (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
22508           in release builds.
22509         (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
22510           "final sync scheduled" flag
22511         (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
22512         (WebCore::LocalStorageArea::scheduleClear): Ditto
22513         * storage/LocalStorageArea.h:
22514
22515 2008-05-06  Kevin Ollivier  <kevino@theolliviers.com>
22516
22517         wx build fix. Adding files added in  r32925 to the bakefiles.
22518
22519         * WebCoreSources.bkl:
22520
22521 2008-05-06  Alp Toker  <alp@nuanti.com>
22522
22523         GTK+ build fix. Add empty stub to keep non-accessible ports building.
22524
22525         * page/AXObjectCache.h:
22526         (WebCore::AXObjectCache::selectedChildrenChanged):
22527
22528 2008-05-06  Beth Dakin  <bdakin@apple.com>
22529
22530         Reviewed by Darin.
22531
22532         Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and 
22533         'aria-describedby' attributes.
22534
22535         * html/HTMLAttributeNames.in: Added new attributes. Added both the 
22536         British spelling (since that is what is specified in the spec), and 
22537         the American spelling (since the bug filer and I are two Americans 
22538         who keep spelling it the American way by accident). 
22539         * page/AccessibilityObject.cpp: Added empty wrappers. These 
22540         functions can't do anything meaningful without a renderer.
22541         (WebCore::AccessibilityObject::ariaAccessiblityName):
22542         (WebCore::AccessibilityObject::ariaLabeledByAttribute):
22543         (WebCore::AccessibilityObject::ariaDescribedByAttribute):
22544         * page/AccessibilityObject.h:
22545
22546         Here is where the real work is done.
22547         * page/AccessibilityRenderObject.h:
22548         * page/AccessibilityRenderObject.cpp:
22549         (WebCore::accessibleNameForNode): Takes a node and finds its 
22550         contribution to the accessible name, as defined by the Mozilla ARIA 
22551         Implementer's Guide. 
22552         (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a 
22553         string of space-separated IDs, fetches the corresponding element 
22554         for each ID, and concatenates an accessible name based on the 
22555         elements.
22556         (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute): 
22557         Retrieve the labeledby attribute and send its contents to 
22558         ariaAccessibilityName().
22559         (WebCore::AccessibilityRenderObject::title): Return the ARIA 
22560         labeledby value if one exists.
22561         (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute): 
22562         Retrieve the describedby attribute and send its contents to 
22563         ariaAccessibilityName().
22564         (WebCore::AccessibilityRenderObject::accessibilityDescription): 
22565         Return the ARIA describedby attribute if one exists. 
22566
22567         These are two bugs I spotted. 
22568         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't 
22569         ignore anything with an ARIA role.
22570         (WebCore::AccessibilityRenderObject::roleValue): Button tags maps 
22571         to ButtonRole.
22572
22573 2008-05-06  Anders Carlsson  <andersca@apple.com>
22574
22575         Reviewed by Brady.
22576
22577         Support reading back app caches from the database.
22578     
22579         * loader/appcache/ApplicationCache.cpp:
22580         (WebCore::ApplicationCache::ApplicationCache):
22581         Initialize m_storageID to 0.
22582         
22583         * loader/appcache/ApplicationCacheGroup.cpp:
22584         (WebCore::ApplicationCacheGroup::cacheDestroyed):
22585         If the cache being destroyed is not the newest cache, it should no longer be 
22586         stored in the database. Remove it.
22587         
22588         (WebCore::ApplicationCacheGroup::setNewestCache):
22589         Don't store the cache here.
22590         
22591         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
22592         Store it here instead.
22593         
22594         * loader/appcache/ApplicationCacheStorage.cpp:
22595         (WebCore::ApplicationCacheStorage::loadCacheGroup):
22596         New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
22597         
22598         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
22599         Search for the group in the database.
22600         
22601         (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
22602         New method that loads the host hashes from the database.
22603         
22604         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
22605         Search in the database for a cache that contains the resource.
22606         
22607         (WebCore::ApplicationCacheStorage::loadCache):
22608         New method that loads a cache with a given ID.
22609         
22610         (WebCore::ApplicationCacheStorage::remove):
22611         New method that removes a cache.
22612         
22613         * loader/appcache/ApplicationCacheStorage.h:
22614         Add definitions.
22615
22616 2008-05-06  Alp Toker  <alp@nuanti.com>
22617
22618         Partial GTK+ build fix. Add files from r32925 to the build and replace
22619         'nil' return with 0.
22620
22621         * GNUmakefile.am:
22622         * page/AccessibilityListBoxOption.cpp:
22623         (WebCore::AccessibilityListBoxOption::parentObject):
22624
22625 2008-05-06  Brady Eidson  <beidson@apple.com>
22626
22627         Reviewed by Anders
22628
22629         Make LocalStorage persistent using a SQLite database.
22630
22631         There's a few things going on here.  Whenever an item is changed, we add it to a set of
22632         "items to be sync'ed."  Instead of immediately scheduling the sync'ing on the background
22633         thread, we set a "sync timer" instead.  This is to shield against a series of rapid changes
22634         to avoid thread churn.
22635
22636         When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
22637         and schedule the sync task which is where the items are actually committed to disk.
22638
22639         Current design for reading items back in from disk is to be as aggressive as possible.
22640         When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
22641         they are immediately available.  A future enhancement will be to being this pre-fetching the
22642         moment we start loading a page when we know that page has LocalStorage.
22643
22644         * storage/LocalStorageArea.cpp:
22645         (WebCore::LocalStorageArea::LocalStorageArea):
22646         (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
22647         (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
22648         (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
22649         (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it.  The second case is
22650           because if the item is set while the import is still in progress, the new value should override whatever
22651           the imported value is.
22652         (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it.  See the 
22653           explanation for setItem()
22654         (WebCore::LocalStorageArea::contains): Return whether or not the item is contained.  Do the same dance with
22655           the import flag, import lock, and import condition that the above methods do.
22656
22657         (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
22658         (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
22659         (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously 
22660           scheduled items.
22661
22662         (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
22663         (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed."  If any
22664           items are later set before the actual removal takes place, they will be written *after* the removal.
22665         (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then 
22666           schedule a sync task.  Also transfer the "items cleared" flag to the "background thread items cleared" flag
22667         (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
22668         (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
22669         (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items.  Then update or delete 
22670           each item waiting to be sync'ed
22671         * storage/LocalStorageArea.h:
22672
22673 2008-05-06  Brady Eidson  <beidson@apple.com>
22674
22675         Rubberstamped by Mitz Pettel RTL
22676
22677         * storage/LocalStorage.cpp:
22678         (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
22679
22680 2008-05-06  Brady Eidson  <beidson@apple.com>
22681
22682         Reviewed by Darin, Sam Weinig, and Anders
22683
22684         Preparation for upcoming work making LocalStorage persistent.
22685
22686         The final step before code that actually does storage and retrieval of LocalStorage items.
22687
22688         The LocalStorage set is responsible for controlling the path and filenames that individual
22689         LocalStorageAreas will use for their persistent store.  This adds the ability to return that
22690         filename.
22691
22692         Also, add the scheduling methods that LocalStorageArea will use for importing and syncing 
22693         it's persistent items.
22694
22695         * storage/LocalStorage.cpp:
22696         (WebCore::LocalStorage::storageArea):  Add some comments re: the future direction of this
22697           method once we actually do quota tracking.
22698         (WebCore::LocalStorage::fullDatabaseFilename):
22699         (WebCore::LocalStorage::scheduleImport):
22700         (WebCore::LocalStorage::scheduleSync):
22701         * storage/LocalStorage.h:
22702
22703 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
22704
22705         Reviewed by Beth Dakin.
22706
22707         rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
22708
22709         * WebCore.xcodeproj/project.pbxproj:
22710         * html/HTMLOptGroupElement.cpp:
22711         (WebCore::HTMLOptGroupElement::ownerSelectElement):
22712         (WebCore::HTMLOptGroupElement::accessKeyAction):
22713         * html/HTMLOptGroupElement.h:
22714         * html/HTMLOptionElement.cpp:
22715         (WebCore::HTMLOptionElement::accessKeyAction):
22716         (WebCore::HTMLOptionElement::index):
22717         (WebCore::HTMLOptionElement::setSelected):
22718         (WebCore::HTMLOptionElement::childrenChanged):
22719         (WebCore::HTMLOptionElement::ownerSelectElement):
22720         (WebCore::HTMLOptionElement::insertedIntoDocument):
22721         * html/HTMLOptionElement.h:
22722         * html/HTMLSelectElement.cpp:
22723         (WebCore::HTMLSelectElement::childrenChanged):
22724         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
22725         * html/HTMLSelectElement.h:
22726         * page/AXObjectCache.cpp:
22727         (WebCore::AXObjectCache::get):
22728         * page/AccessibilityListBox.cpp: Added.
22729         (WebCore::AccessibilityListBox::AccessibilityListBox):
22730         (WebCore::AccessibilityListBox::~AccessibilityListBox):
22731         (WebCore::AccessibilityListBox::create):
22732         (WebCore::AccessibilityListBox::addChildren):
22733         (WebCore::AccessibilityListBox::selectedChildren):
22734         (WebCore::AccessibilityListBox::visibleChildren):
22735         (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
22736         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
22737         * page/AccessibilityListBox.h: Added.
22738         (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
22739         (WebCore::AccessibilityListBox::isListBox):
22740         (WebCore::AccessibilityListBox::canSetFocusAttribute):
22741         (WebCore::AccessibilityListBox::roleValue):
22742         (WebCore::AccessibilityListBox::accessibilityIsIgnored):
22743         * page/AccessibilityListBoxOption.cpp: Added.
22744         (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
22745         (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
22746         (WebCore::AccessibilityListBoxOption::create):
22747         (WebCore::AccessibilityListBoxOption::isEnabled):
22748         (WebCore::AccessibilityListBoxOption::isSelected):
22749         (WebCore::AccessibilityListBoxOption::elementRect):
22750         (WebCore::AccessibilityListBoxOption::title):
22751         (WebCore::AccessibilityListBoxOption::size):
22752         (WebCore::AccessibilityListBoxOption::actionElement):
22753         (WebCore::AccessibilityListBoxOption::parentObject):
22754         (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
22755         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
22756         * page/AccessibilityListBoxOption.h: Added.
22757         (WebCore::AccessibilityListBoxOption::setHTMLElement):
22758         (WebCore::AccessibilityListBoxOption::roleValue):
22759         (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
22760         (WebCore::AccessibilityListBoxOption::isListBoxOption):
22761         * page/AccessibilityObject.h:
22762         (WebCore::AccessibilityObject::isListBox):
22763         * page/AccessibilityRenderObject.cpp:
22764         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
22765         * page/mac/AccessibilityObjectWrapper.mm:
22766         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
22767         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
22768         * rendering/RenderListBox.cpp:
22769         (WebCore::RenderListBox::selectionChanged):
22770         * rendering/RenderListBox.h:
22771
22772 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
22773
22774         Reviewed by Beth Dakin.
22775
22776          <rdar://problem/5455287> AXWebArea should include AXURL
22777
22778         * page/AccessibilityRenderObject.cpp:
22779         (WebCore::AccessibilityRenderObject::url):
22780         * page/mac/AccessibilityObjectWrapper.mm:
22781         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
22782
22783 2008-05-06  Alice Liu  <alice.liu@apple.com>
22784
22785         Rubber-stamped by Beth
22786         
22787         stab-in-the-dark attempt at fixing non-mac builds.
22788
22789         * GNUmakefile.am:
22790         * WebCore.pro:
22791         * WebCore.vcproj/WebCore.vcproj:
22792         * WebCoreSources.bkl:
22793
22794 2008-05-06  Anders Carlsson  <andersca@apple.com>
22795
22796         Reviewed by Adam.
22797
22798         Only use the toplevel application cache when loading subframes.
22799
22800         * loader/MainResourceLoader.cpp:
22801         (WebCore::MainResourceLoader::load):
22802
22803 2008-05-06  Adam Barth  <abarth-webkit@adambarth.com>
22804
22805         Reviewed by Sam Weinig.
22806
22807         https://bugs.webkit.org/show_bug.cgi?id=18725
22808         Implement asynchronous postMessage.
22809         MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
22810
22811         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
22812
22813         Test: http/tests/security/postMessage/delivery-order.html
22814
22815         * dom/MessageEvent.cpp:
22816         (WebCore::MessageEvent::MessageEvent):
22817         * page/DOMWindow.cpp:
22818         (WebCore::PostMessageTimer::PostMessageTimer):
22819         (WebCore::PostMessageTimer::event):
22820         (WebCore::PostMessageTimer::targetOrigin):
22821         (WebCore::PostMessageTimer::fired):
22822         (WebCore::DOMWindow::postMessage):
22823         (WebCore::DOMWindow::postMessageTimerFired):
22824         * page/DOMWindow.h:
22825         * page/DOMWindow.idl:
22826         
22827 2008-05-06  Anders Carlsson  <andersca@apple.com>
22828
22829         Reviewed by Brady.
22830
22831         Store cache to the database.
22832
22833         * loader/appcache/ApplicationCache.cpp:
22834         (WebCore::ApplicationCache::addResource):
22835         If the cache has been saved to disk, save the resource as well.
22836         
22837         * loader/appcache/ApplicationCache.h:
22838         (WebCore::ApplicationCache::onlineWhitelist):
22839         New method which returns the online whitelist.
22840
22841         (WebCore::ApplicationCache::setStorageId):
22842         (WebCore::ApplicationCache::storageId):
22843         Setter/getter for the application cache storage ID.
22844
22845         * loader/appcache/ApplicationCacheGroup.cpp:
22846         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
22847         Save the cache/group to disk.
22848         
22849         * loader/appcache/ApplicationCacheGroup.h:
22850         (WebCore::ApplicationCacheGroup::setStorageID):
22851         (WebCore::ApplicationCacheGroup::storageID):
22852         Setter/getter for the application cache group storage ID.
22853         
22854         * loader/appcache/ApplicationCacheResource.cpp:
22855         (WebCore::ApplicationCacheResource::addType):
22856         We can't add a new type if the resource has been saved to disk.
22857         
22858         * loader/appcache/ApplicationCacheResource.h:
22859         (WebCore::ApplicationCacheResource::setStorageID):
22860         (WebCore::ApplicationCacheResource::storageID):
22861         Setter/getter for the application cache resource storage ID.
22862
22863         * loader/appcache/ApplicationCacheStorage.cpp:
22864         * loader/appcache/ApplicationCacheStorage.cpp:
22865         (WebCore::ApplicationCacheStorage::executeSQLCommand):
22866         New method for executing SQL and logging any errors.
22867         
22868         (WebCore::ApplicationCacheStorage::openDatabase):
22869         Create new tables.
22870         
22871         (WebCore::ApplicationCacheStorage::executeStatement):
22872         New method for executing an SQL statement and logging any errors.
22873         
22874         (WebCore::ApplicationCacheStorage::store):
22875         New methods for storing a cache group, cache and cache resource to the store.
22876
22877         (WebCore::ApplicationCacheStorage::storeNewestCache):
22878         New method which stores the newest cache and updates the newest cache field in the cache group.
22879         
22880         * loader/appcache/ApplicationCacheStorage.h:
22881         Add new methods.
22882         
22883         * platform/sql/SQLiteStatement.h:
22884         (WebCore::SQLiteStatement::query):
22885         Getter for the SQL query.
22886
22887 2008-05-06  Brady Eidson  <beidson@apple.com>
22888
22889         Reviewed by Darin Adler
22890
22891         Preparation for upcoming work making LocalStorage persistent.
22892
22893         Writing persistent values for LocalStorage will take place on a background thread.
22894         Here is that background thread, as well as most of the hooks that will be utilized to
22895         make the whole song and dance work.
22896
22897         The thread itself is very simple and MessageQueue based.  LocalStorageTasks are what 
22898         mark the work that needs to be done and come in 5 flavors:  Import and Sync a LocalStorage set,
22899         Import and Sync a LocalStorageArea, and terminate the thread.
22900
22901         This patch accomplished 2 things:
22902         
22903         1 - Each PageGroup has its own LocalStorage set.  Upon its creation its LocalStorageThread is 
22904             created and started.
22905
22906         2 - At application shutdown, each thread is synchronously terminated.
22907
22908         What happens between steps 1 and 2 will come later.
22909
22910         * GNUmakefile.am:
22911         * WebCore.pro:
22912         * WebCore.vcproj/WebCore.vcproj:
22913         * WebCore.xcodeproj/project.pbxproj:
22914         * WebCoreSources.bkl:
22915
22916         * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
22917           method is meant to be called from.
22918         (WebCore::LocalStorage::LocalStorage):
22919         (WebCore::LocalStorage::storageArea):
22920         (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
22921         (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
22922         (WebCore::LocalStorage::close): Synchronously terminate the thread.
22923         * storage/LocalStorage.h:
22924
22925         * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
22926           method is meant to be called from.
22927         (WebCore::LocalStorageArea::itemChanged):
22928         (WebCore::LocalStorageArea::itemRemoved):
22929         (WebCore::LocalStorageArea::areaCleared):
22930         (WebCore::LocalStorageArea::dispatchStorageEvent):
22931         (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this 
22932           LocalStorageArea to prime the page before the items are needed
22933         (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
22934         * storage/LocalStorageArea.h:
22935
22936         * storage/LocalStorageTask.cpp: Added.
22937         (WebCore::LocalStorageTask::LocalStorageTask):
22938         (WebCore::LocalStorageTask::performTask):
22939         * storage/LocalStorageTask.h: Added.
22940         (WebCore::LocalStorageTask::):
22941         (WebCore::LocalStorageTask::createImport):
22942         (WebCore::LocalStorageTask::createSync):
22943         (WebCore::LocalStorageTask::createTerminate):
22944
22945         * storage/LocalStorageThread.cpp: Added.
22946         (WebCore::LocalStorageThread::create):
22947         (WebCore::LocalStorageThread::LocalStorageThread):
22948         (WebCore::LocalStorageThread::start):
22949         (WebCore::LocalStorageThread::localStorageThreadStart):
22950         (WebCore::LocalStorageThread::localStorageThread):
22951         (WebCore::LocalStorageThread::scheduleImport):
22952         (WebCore::LocalStorageThread::scheduleSync):
22953         (WebCore::LocalStorageThread::terminate): 
22954         (WebCore::LocalStorageThread::performTerminate):
22955         * storage/LocalStorageThread.h: Added.
22956
22957 2008-05-06  Anders Carlsson  <andersca@apple.com>
22958
22959         Reviewed by Darin.
22960
22961         Add NPN_PopUpContextMenu.
22962         
22963         * bridge/npapi.h:
22964         * plugins/npfunctions.h:
22965
22966 2008-05-06  Alp Toker  <alp@nuanti.com>
22967
22968         GTK+ build fix. Add file from r32911 to the build.
22969
22970         * GNUmakefile.am:
22971
22972 2008-05-06  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
22973
22974         Reviewed by Alp Toker.
22975
22976         http://bugs.webkit.org/show_bug.cgi?id=18906
22977         [GTK] Fix varargs terminator in g_build_filename()
22978
22979         * plugins/gtk/PluginDatabaseGtk.cpp:
22980         (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
22981         terminator.
22982
22983 2008-05-06  Kevin McCullough  <kmccullough@apple.com>
22984
22985         - Forgot to update localized Strings from previous checkin.
22986
22987         * English.lproj/localizedStrings.js:
22988
22989 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
22990
22991         Reviewed by Beth Dakin
22992
22993         <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
22994         <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
22995         <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
22996         
22997         Initial prep work to support accessibility objects that do not have renderers. 
22998
22999         * WebCore.xcodeproj/project.pbxproj:
23000         * page/AXObjectCache.cpp:
23001         (WebCore::AXObjectCache::~AXObjectCache):
23002         (WebCore::AXObjectCache::get):
23003         (WebCore::AXObjectCache::remove):
23004         (WebCore::AXObjectCache::getAXID):
23005         (WebCore::AXObjectCache::removeAXID):
23006         (WebCore::AXObjectCache::childrenChanged):
23007         * page/AXObjectCache.h:
23008         (WebCore::AXObjectCache::isIDinUse):
23009         * page/AccessibilityObject.cpp:
23010         (WebCore::AccessibilityObject::AccessibilityObject):
23011         (WebCore::AccessibilityObject::create):
23012         (WebCore::AccessibilityObject::detach):
23013         (WebCore::AccessibilityObject::firstChild):
23014         (WebCore::AccessibilityObject::lastChild):
23015         (WebCore::AccessibilityObject::previousSibling):
23016         (WebCore::AccessibilityObject::nextSibling):
23017         (WebCore::AccessibilityObject::parentObject):
23018         (WebCore::AccessibilityObject::layoutCount):
23019         (WebCore::AccessibilityObject::text):
23020         (WebCore::AccessibilityObject::helpText):
23021         (WebCore::AccessibilityObject::textUnderElement):
23022         (WebCore::AccessibilityObject::isARIAInput):
23023         (WebCore::AccessibilityObject::isARIAControl):
23024         (WebCore::AccessibilityObject::intValue):
23025         (WebCore::AccessibilityObject::stringValue):
23026         (WebCore::AccessibilityObject::title):
23027         (WebCore::AccessibilityObject::accessibilityDescription):
23028         (WebCore::AccessibilityObject::boundingBoxRect):
23029         (WebCore::AccessibilityObject::elementRect):
23030         (WebCore::AccessibilityObject::size):
23031         (WebCore::AccessibilityObject::linkedUIElement):
23032         (WebCore::AccessibilityObject::textLength):
23033         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
23034         (WebCore::AccessibilityObject::selectedText):
23035         (WebCore::AccessibilityObject::accessKey):
23036         (WebCore::AccessibilityObject::selection):
23037         (WebCore::AccessibilityObject::selectedTextRange):
23038         (WebCore::AccessibilityObject::setSelectedTextRange):
23039         (WebCore::AccessibilityObject::url):
23040         (WebCore::AccessibilityObject::setFocused):
23041         (WebCore::AccessibilityObject::setValue):
23042         (WebCore::AccessibilityObject::axObjectCache):
23043         (WebCore::AccessibilityObject::getDocumentLinks):
23044         (WebCore::AccessibilityObject::widget):
23045         (WebCore::AccessibilityObject::widgetForAttachmentView):
23046         (WebCore::AccessibilityObject::anchorElement):
23047         (WebCore::AccessibilityObject::actionElement):
23048         (WebCore::AccessibilityObject::visiblePositionRange):
23049         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
23050         (WebCore::AccessibilityObject::visiblePositionForIndex):
23051         (WebCore::AccessibilityObject::indexForVisiblePosition):
23052         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
23053         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
23054         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
23055         (WebCore::AccessibilityObject::textMarkerForIndex):
23056         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
23057         (WebCore::AccessibilityObject::indexForTextMarker):
23058         (WebCore::AccessibilityObject::doAXRangeForLine):
23059         (WebCore::AccessibilityObject::doAXRangeForPosition):
23060         (WebCore::AccessibilityObject::doAXRangeForIndex):
23061         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
23062         (WebCore::AccessibilityObject::doAXStringForRange):
23063         (WebCore::AccessibilityObject::doAXBoundsForRange):
23064         (WebCore::AccessibilityObject::doAccessibilityHitTest):
23065         (WebCore::AccessibilityObject::focusedUIElement):
23066         (WebCore::AccessibilityObject::observableObject):
23067         (WebCore::AccessibilityObject::roleValue):
23068         (WebCore::AccessibilityObject::ariaRoleAttribute):
23069         (WebCore::AccessibilityObject::childrenChanged):
23070         (WebCore::AccessibilityObject::addChildren):
23071         (WebCore::AccessibilityObject::removeAXObjectID):
23072         * page/AccessibilityObject.h:
23073         (WebCore::PlainTextRange::PlainTextRange):
23074         (WebCore::PlainTextRange::isNull):
23075         (WebCore::AccessibilityObject::isAccessibilityRenderObject):
23076         (WebCore::AccessibilityObject::isAnchor):
23077         (WebCore::AccessibilityObject::isAttachment):
23078         (WebCore::AccessibilityObject::isHeading):
23079         (WebCore::AccessibilityObject::isLink):
23080         (WebCore::AccessibilityObject::isImage):
23081         (WebCore::AccessibilityObject::isNativeImage):
23082         (WebCore::AccessibilityObject::isImageButton):
23083         (WebCore::AccessibilityObject::isPasswordField):
23084         (WebCore::AccessibilityObject::isTextControl):
23085         (WebCore::AccessibilityObject::isNativeTextControl):
23086         (WebCore::AccessibilityObject::isWebArea):
23087         (WebCore::AccessibilityObject::isCheckboxOrRadio):
23088         (WebCore::AccessibilityObject::isChecked):
23089         (WebCore::AccessibilityObject::isEnabled):
23090         (WebCore::AccessibilityObject::isSelected):
23091         (WebCore::AccessibilityObject::isFocused):
23092         (WebCore::AccessibilityObject::isHovered):
23093         (WebCore::AccessibilityObject::isIndeterminate):
23094         (WebCore::AccessibilityObject::isLoaded):
23095         (WebCore::AccessibilityObject::isMultiSelect):
23096         (WebCore::AccessibilityObject::isOffScreen):
23097         (WebCore::AccessibilityObject::isPressed):
23098         (WebCore::AccessibilityObject::isReadOnly):
23099         (WebCore::AccessibilityObject::isVisited):
23100         (WebCore::AccessibilityObject::canSetFocusAttribute):
23101         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
23102         (WebCore::AccessibilityObject::canSetValueAttribute):
23103         (WebCore::AccessibilityObject::hasIntValue):
23104         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
23105         (WebCore::AccessibilityObject::accessibilityIsIgnored):
23106         (WebCore::AccessibilityObject::children):
23107         (WebCore::AccessibilityObject::hasChildren):
23108         (WebCore::AccessibilityObject::setWrapper):
23109         (WebCore::AccessibilityObject::isDetached):
23110         * page/AccessibilityRenderObject.cpp: Added.
23111         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
23112         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
23113         (WebCore::AccessibilityRenderObject::create):
23114         (WebCore::AccessibilityRenderObject::detach):
23115         (WebCore::AccessibilityRenderObject::firstChild):
23116         (WebCore::AccessibilityRenderObject::lastChild):
23117         (WebCore::AccessibilityRenderObject::previousSibling):
23118         (WebCore::AccessibilityRenderObject::nextSibling):
23119         (WebCore::AccessibilityRenderObject::parentObject):
23120         (WebCore::AccessibilityRenderObject::isWebArea):
23121         (WebCore::AccessibilityRenderObject::isImageButton):
23122         (WebCore::AccessibilityRenderObject::isAnchor):
23123         (WebCore::AccessibilityRenderObject::isNativeTextControl):
23124         (WebCore::AccessibilityRenderObject::isTextControl):
23125         (WebCore::AccessibilityRenderObject::isNativeImage):
23126         (WebCore::AccessibilityRenderObject::isImage):
23127         (WebCore::AccessibilityRenderObject::isAttachment):
23128         (WebCore::AccessibilityRenderObject::isPasswordField):
23129         (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
23130         (WebCore::AccessibilityRenderObject::isPressed):
23131         (WebCore::AccessibilityRenderObject::isIndeterminate):
23132         (WebCore::AccessibilityRenderObject::isChecked):
23133         (WebCore::AccessibilityRenderObject::isHovered):
23134         (WebCore::AccessibilityRenderObject::isMultiSelect):
23135         (WebCore::AccessibilityRenderObject::isReadOnly):
23136         (WebCore::AccessibilityRenderObject::isOffScreen):
23137         (WebCore::AccessibilityRenderObject::headingLevel):
23138         (WebCore::AccessibilityRenderObject::isHeading):
23139         (WebCore::AccessibilityRenderObject::isLink):
23140         (WebCore::AccessibilityRenderObject::anchorElement):
23141         (WebCore::AccessibilityRenderObject::actionElement):
23142         (WebCore::AccessibilityRenderObject::mouseButtonListener):
23143         (WebCore::AccessibilityRenderObject::helpText):
23144         (WebCore::AccessibilityRenderObject::textUnderElement):
23145         (WebCore::AccessibilityRenderObject::hasIntValue):
23146         (WebCore::AccessibilityRenderObject::intValue):
23147         (WebCore::AccessibilityRenderObject::stringValue):
23148         (WebCore::labelForElement):
23149         (WebCore::AccessibilityRenderObject::title):
23150         (WebCore::AccessibilityRenderObject::accessibilityDescription):
23151         (WebCore::AccessibilityRenderObject::boundingBoxRect):
23152         (WebCore::AccessibilityRenderObject::elementRect):
23153         (WebCore::AccessibilityRenderObject::size):
23154         (WebCore::AccessibilityRenderObject::linkedUIElement):
23155         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
23156         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
23157         (WebCore::AccessibilityRenderObject::isLoaded):
23158         (WebCore::AccessibilityRenderObject::layoutCount):
23159         (WebCore::AccessibilityRenderObject::text):
23160         (WebCore::AccessibilityRenderObject::textLength):
23161         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
23162         (WebCore::AccessibilityRenderObject::selectedText):
23163         (WebCore::AccessibilityRenderObject::accessKey):
23164         (WebCore::AccessibilityRenderObject::selection):
23165         (WebCore::AccessibilityRenderObject::selectedTextRange):
23166         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
23167         (WebCore::AccessibilityRenderObject::url):
23168         (WebCore::AccessibilityRenderObject::isVisited):
23169         (WebCore::AccessibilityRenderObject::isSelected):
23170         (WebCore::AccessibilityRenderObject::isFocused):
23171         (WebCore::AccessibilityRenderObject::setFocused):
23172         (WebCore::AccessibilityRenderObject::setValue):
23173         (WebCore::AccessibilityRenderObject::isEnabled):
23174         (WebCore::AccessibilityRenderObject::topRenderer):
23175         (WebCore::AccessibilityRenderObject::widget):
23176         (WebCore::AccessibilityRenderObject::axObjectCache):
23177         (WebCore::AccessibilityRenderObject::getDocumentLinks):
23178         (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
23179         (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
23180         (WebCore::AccessibilityRenderObject::visiblePositionRange):
23181         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
23182         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
23183         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
23184         (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
23185         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
23186         (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
23187         (WebCore::AccessibilityRenderObject::textMarkerForIndex):
23188         (WebCore::AccessibilityRenderObject::indexForTextMarker):
23189         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
23190         (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
23191         (WebCore::AccessibilityRenderObject::doAXStringForRange):
23192         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
23193         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
23194         (WebCore::AccessibilityRenderObject::focusedUIElement):
23195         (WebCore::AccessibilityRenderObject::observableObject):
23196         (WebCore::createARIARoleMap):
23197         (WebCore::RoleEntry::):
23198         (WebCore::ariaRoleToWebCoreRole):
23199         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
23200         (WebCore::AccessibilityRenderObject::roleValue):
23201         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
23202         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
23203         (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
23204         (WebCore::AccessibilityRenderObject::childrenChanged):
23205         (WebCore::AccessibilityRenderObject::children):
23206         (WebCore::AccessibilityRenderObject::addChildren):
23207         (WebCore::AccessibilityRenderObject::removeAXObjectID):
23208         (WebCore::AccessibilityRenderObject::actionVerb):
23209         * page/AccessibilityRenderObject.h: Added.
23210         (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
23211         (WebCore::AccessibilityRenderObject::areaElement):
23212         (WebCore::AccessibilityRenderObject::setRenderer):
23213         (WebCore::AccessibilityRenderObject::renderer):
23214         (WebCore::AccessibilityRenderObject::setRenderObject):
23215         (WebCore::AccessibilityRenderObject::isDetached):
23216         * page/mac/AXObjectCacheMac.mm:
23217         (WebCore::AXObjectCache::detachWrapper):
23218         (WebCore::AXObjectCache::selectedChildrenChanged):
23219         (WebCore::AXObjectCache::postNotification):
23220         * page/mac/AccessibilityObjectWrapper.mm:
23221         (textMarkerForVisiblePosition):
23222         (CreateCGColorIfDifferent):
23223         (AXAttributeStringSetHeadingLevel):
23224         (AXLinkElementForNode):
23225         (AXAttributeStringSetElement):
23226         (AXAttributedStringAppendText):
23227         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
23228         (-[AccessibilityObjectWrapper documentFrameView:]):
23229         (-[AccessibilityObjectWrapper position]):
23230         (RoleEntry::):
23231         (-[AccessibilityObjectWrapper roleDescription]):
23232         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
23233         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
23234         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
23235         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
23236         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
23237         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
23238         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
23239
23240 2008-05-06  Jonathan Haas  <myrdred@gmail.com>
23241
23242         Reviewed by Rob Buis.
23243
23244         https://bugs.webkit.org/show_bug.cgi?id=18859\
23245         Prevented SVGRootInlineBox from static_casting a
23246         node to a class it doesn't inherit
23247         
23248         * rendering/SVGRootInlineBox.cpp:
23249         (WebCore::SVGRootInlineBox::buildTextChunks):
23250
23251 2008-05-06  Brady Eidson  <beidson@apple.com>
23252
23253         Reviewed by Darin Adler
23254
23255         Preparation for upcoming work making LocalStorage persistent.
23256
23257         When the application terminates, all pending local storage writes need to be
23258         sync'ed out to disk.
23259         This works n combination with platform specific code in WebKit that calls it.
23260
23261         * WebCore.base.exp:
23262
23263         * page/PageGroup.cpp:
23264         (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
23265         * page/PageGroup.h:
23266
23267         * storage/LocalStorage.cpp:
23268         (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
23269           local storage thread in the future.
23270         * storage/LocalStorage.h:
23271
23272 2008-05-06  Brady Eidson  <beidson@apple.com>
23273
23274         Rubberstamped by David Kilzer
23275
23276         * WebCore.base.exp:  Sort this mess!
23277
23278 2008-05-05  Mark Rowe  <mrowe@apple.com>
23279
23280         Reviewed by Dan Bernstein.
23281
23282         Fix 60 crashes seen on the buildbots that were misreported as hangs.
23283
23284         * dom/Document.cpp:
23285         (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
23286         (WebCore::Document::nodeWillBeRemoved): Ditto.
23287         (WebCore::Document::textInserted): Ditto.
23288         (WebCore::Document::textNodesMerged): Ditto.
23289         (WebCore::Document::textRemoved): Ditto.
23290
23291 2008-05-05  Brady Eidson  <beidson@apple.com>
23292
23293         Reviewed by Mitz Pettel RTL
23294
23295         Preparation for upcoming work making LocalStorage persistent.
23296
23297         The other half of the StorageMap::importItem() addition.
23298
23299         * storage/StorageArea.cpp:
23300         (WebCore::StorageArea::importItem):
23301         * storage/StorageArea.h:
23302
23303 2008-05-05  Brady Eidson  <beidson@apple.com>
23304
23305         Reviewed by Mitz Pettel RTL
23306
23307         Preparation for upcoming work making LocalStorage persistent.
23308
23309         - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
23310           The Settings of the first Page define what persistent path the LocalStorage will use
23311         - Add a Frame argument for the LocalStorageArea request - this will allow a client object
23312           to be queried before the LocalStorageArea is established
23313
23314         * page/DOMWindow.cpp:
23315         (WebCore::DOMWindow::localStorage):
23316
23317         * page/PageGroup.cpp:
23318         (WebCore::PageGroup::addPage):
23319         (WebCore::PageGroup::localStorage):
23320
23321         * storage/LocalStorage.cpp:
23322         (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument.  Deep copy
23323           the path as it will be used from another thread.
23324         (WebCore::LocalStorage::storageArea):
23325         * storage/LocalStorage.h:
23326         (WebCore::LocalStorage::create):
23327
23328 2008-05-05  Brady Eidson  <beidson@apple.com>
23329
23330         Reviewed by Mitz Pettel RTL
23331
23332         Preparation for upcoming work making LocalStorage persistent.
23333
23334         StorageMaps normally have copy-on-write semantics to help support SessionStorage.
23335         For LocalStorage, we never want this behavior.  When we forcefully import items into 
23336         a StorageMap from the LocalStorage background thread, this new import method will be used.
23337
23338         * storage/StorageMap.cpp:
23339         (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
23340           about copy-on-write.
23341         * storage/StorageMap.h:
23342
23343 2008-05-05  Kevin McCullough  <kmccullough@apple.com>
23344
23345         Reviewed by Tim.
23346
23347         -<rdar://problem/5770054> JavaScript profiler (10928)
23348         -Begininings of a UI for the Profiler in the WebInspector.
23349
23350         * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
23351         localized.
23352         * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
23353         results table to be more generic as it is now also used by the profiler.
23354         * page/inspector/Images/glossySelected.png: Added.
23355         * page/inspector/Images/profilesIcon.png: Added.
23356         * page/inspector/Images/treeUpTriangleBlack.png: Added.
23357         * page/inspector/Images/treeUpTriangleWhite.png: Added.
23358         * page/inspector/ProfileView.js: Added. Sets up the header of the table.
23359         * page/inspector/ProfilesPanel.js: Added.
23360         * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
23361         profiler's content.
23362         * page/inspector/inspector.css: Change database-result-table to be more
23363         generic as well as add the styles needed by the profiler.
23364         * page/inspector/inspector.html: Add profiler support.
23365
23366 2008-05-05  Brady Eidson  <beidson@apple.com>
23367
23368         Change by Darin, reviewed by Brady
23369
23370         Small efficiency improvement Darin just spotted
23371
23372         * storage/StorageMap.cpp:
23373         (WebCore::StorageMap::setItem):
23374
23375 2008-05-05  Antti Koivisto  <antti@apple.com>
23376
23377         Reviewed by Anders.
23378
23379         Fix https://bugs.webkit.org/show_bug.cgi?id=18899
23380         Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
23381
23382         * loader/loader.cpp:
23383         (WebCore::Loader::Loader):
23384
23385 2008-05-05  Brady Eidson  <beidson@apple.com>
23386
23387         Reviewed by Sam Weinig
23388
23389         Fix a bug in StorageMap iterator tracking where the iterator was not successfully
23390         invalidated at an appropriate time.
23391
23392         * storage/StorageMap.cpp:
23393         (WebCore::StorageMap::setItem): ALWAYS invalidate it here
23394
23395 2008-05-05  Justin Garcia  <justin.garcia@apple.com>
23396
23397         Reviewed by Darin.
23398
23399         <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
23400         
23401         Disable Range mutation on document modifications in Tiger and Leopard Mail,
23402         since they do their own mutation which interferes with ours.
23403
23404         * WebCore.base.exp:
23405         * dom/Document.cpp:
23406         (WebCore::Document::nodeChildrenChanged):
23407         (WebCore::Document::nodeWillBeRemoved):
23408         (WebCore::Document::textInserted):
23409         (WebCore::Document::textRemoved):
23410         (WebCore::Document::textNodesMerged):
23411         (WebCore::Document::textNodeSplit):
23412         * page/Settings.cpp:
23413         (WebCore::Settings::Settings):
23414         (WebCore::Settings::disableRangeMutationForOldAppleMail):
23415         * page/Settings.h:
23416         (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
23417
23418 2008-05-05  Sam Weinig  <sam@webkit.org>
23419
23420         Reviewed by Tim Hatcher.
23421
23422         Make the Inspector's localizable strings file match the format used by Dashboard widgets.
23423
23424         * English.lproj/InspectorLocalizedStrings.js: Removed.
23425         * English.lproj/localizedStrings.js: Added.
23426         * WebCore.vcproj/WebCore.vcproj:
23427         * WebCore.xcodeproj/project.pbxproj:
23428         * page/inspector/inspector.js:
23429
23430 2008-05-05  Steve Falkenburg  <sfalken@apple.com>
23431
23432         Add support for default button appearance.
23433         Add WebCore setting for app chrome mode.
23434         
23435         Reviewed by Dave Hyatt.
23436
23437         * css/CSSPrimitiveValueMappings.h:
23438         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
23439         * css/CSSValueKeywords.in: Added default-button value keyword.
23440         * page/Settings.cpp:
23441         (WebCore::Settings::Settings):
23442         (WebCore::Settings::setApplicationChromeMode):
23443         * page/Settings.h:
23444         (WebCore::Settings::inApplicationChromeMode):
23445         * rendering/RenderButton.cpp:
23446         (WebCore::RenderButton::RenderButton):
23447         (WebCore::RenderButton::setStyle):
23448         (WebCore::RenderButton::timerFired):
23449         * rendering/RenderButton.h:
23450         * rendering/RenderStyle.h:
23451         * rendering/RenderTheme.cpp:
23452         (WebCore::RenderTheme::adjustStyle):
23453         (WebCore::RenderTheme::paint):
23454         (WebCore::RenderTheme::paintBorderOnly):
23455         (WebCore::RenderTheme::paintDecorations):
23456         (WebCore::RenderTheme::isControlStyled):
23457         (WebCore::RenderTheme::isDefault):
23458         * rendering/RenderTheme.h:
23459         * rendering/RenderThemeSafari.cpp:
23460         (WebCore::RenderThemeSafari::determineState):
23461         (WebCore::RenderThemeSafari::adjustRepaintRect):
23462         (WebCore::RenderThemeSafari::adjustButtonStyle):
23463         * rendering/RenderThemeWin.cpp:
23464         (WebCore::RenderThemeWin::supportsFocus):
23465
23466 2008-05-05  Alexey Proskuryakov  <ap@webkit.org>
23467
23468         Reviewed by Darin.
23469
23470         https://bugs.webkit.org/show_bug.cgi?id=11947
23471         nbsps should be converted to entities in innerHTML
23472
23473         https://bugs.webkit.org/show_bug.cgi?id=18769
23474         replacing &nbsp; with spaces using regexp creates inconsistent result
23475
23476         Tests: fast/dom/innerHTML-nbsp.html
23477                fast/dom/innerHTML-escaping-attribute.html
23478
23479         * editing/markup.cpp:
23480         (WebCore::appendAttributeValue):
23481         (WebCore::escapeContentText):
23482         (WebCore::appendEscapedContent):
23483         Added U+00a0/nbsp to the list of characters to escape.
23484
23485 2008-05-05  David Hyatt  <hyatt@apple.com>
23486
23487         Fix for https://bugs.webkit.org/show_bug.cgi?id=18821.  Fix some bugs in both get/PutImageData of <canvas>.
23488
23489         Reviewed by Eric
23490
23491         New tests added in fast/canvas/
23492
23493         * platform/graphics/cg/ImageBufferCG.cpp:
23494         (WebCore::ImageBuffer::getImageData):
23495         (WebCore::ImageBuffer::putImageData):
23496
23497 2008-05-05  Dan Bernstein  <mitz@apple.com>
23498
23499         Reviewed by Dave Hyatt.
23500
23501         - fix https://bugs.webkit.org/show_bug.cgi?id=18809
23502           Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
23503
23504         Test: fast/block/basic/adding-near-anonymous-block.html
23505
23506         * rendering/RenderBlock.cpp:
23507         (WebCore::RenderBlock::addChildToFlow): When adding a floating or
23508         positioned object, if it follows an anonymous block, put it
23509         inside the anonymous block. When adding an inline, check if it comes
23510         after an anonymous block and put it in the anonymous block.
23511
23512 2008-05-05  Antti Koivisto  <antti@apple.com>
23513
23514         Reviewed by Darin.
23515
23516         Speculative fix for <rdar://problem/5906790> 
23517         Crash in Loader::servePendingRequests() due to hash table being modified during iteration
23518         
23519         I don't know how to reproduce this. It would require the load to fail (or succeed)
23520         synchronously, something that should not usually happen.
23521
23522         * loader/loader.cpp:
23523         (WebCore::Loader::Loader):
23524         (WebCore::Loader::load):
23525         (WebCore::Loader::servePendingRequests):
23526         (WebCore::Loader::cancelRequests):
23527         (WebCore::Loader::Host::Host):
23528         * loader/loader.h:
23529         (WebCore::Loader::Host::name):
23530
23531 2008-05-05  Ariya Hidayat  <ariya.hidayat@trolltech.com>
23532
23533         Reviewed by Simon.
23534
23535         Disable SVG As Image support in the Qt port again, as it
23536         requires more work. Right now the chrome client is
23537         assumed to be a ChromeClientQt, which the SVG Image support
23538         changes.
23539
23540         * WebCore.pro:
23541
23542 2008-05-02  Antti Koivisto  <antti@apple.com>
23543
23544         Reviewed by Mitz.
23545
23546         Fix <rdar://problem/5840475>
23547         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
23548         
23549         Non-block objects can have transforms so containingBlock() could end up returning null. 
23550         RenderObject::container() needs to match.
23551
23552         Test: fast/transforms/container-transform-crash.html
23553
23554         * rendering/RenderObject.cpp:
23555         (WebCore::RenderObject::containingBlock):
23556         (WebCore::RenderObject::container):
23557
23558 2008-05-04  Sam Weinig  <sam@webkit.org>
23559
23560         Roll out r32851.  It broke tiger builds.
23561
23562         * bindings/objc/DOMUtility.mm:
23563         (KJS::createDOMWrapper):
23564         (WebCore::createDOMWrapper):
23565
23566 2008-05-04  Dan Bernstein  <mitz@apple.com>
23567
23568         Reviewed by Sam Weinig.
23569
23570         - fix https://bugs.webkit.org/show_bug.cgi?id=18879
23571           <rdar://problem/5909481> Reproducible crash when removing a gradient
23572
23573         Test: fast/gradients/crash-on-remove.html
23574
23575         * css/CSSImageGeneratorValue.cpp:
23576         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
23577         (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
23578         value.
23579         (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
23580         the value.
23581
23582 2008-05-03  Sam Weinig  <sam@webkit.org>
23583
23584         Reviewed by Mark Rowe.
23585
23586         Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
23587         the WebCore namespace now that the required compilers don't freak out about
23588         this anymore.
23589
23590         * bindings/objc/DOMUtility.mm:
23591         (WebCore::createDOMWrapper):
23592
23593 2008-05-03  Rob Buis  <buis@kde.org>
23594
23595         Reviewed by Sam.
23596
23597         https://bugs.webkit.org/show_bug.cgi?id=18652
23598         onchange events don't seem to fire for input[type=range] controls.
23599
23600         Fire changeEvent when clicking the slider outside the current
23601         thumb position.
23602
23603         * rendering/RenderSlider.cpp:
23604         (WebCore::RenderSlider::setValueForPosition):
23605
23606 2008-05-03  Sam Weinig  <sam@webkit.org>
23607
23608         Reviewed by Mark Rowe.
23609
23610         Remove unused enums from JSDOMWindowBase.
23611
23612         * bindings/js/JSDOMWindowBase.h:
23613         (WebCore::JSDOMWindowBase::):
23614
23615 2008-05-03  Sam Weinig  <sam@webkit.org>
23616
23617         Real build fix.
23618
23619         * WebCore.xcodeproj/project.pbxproj:
23620
23621 2008-05-03  Sam Weinig  <sam@webkit.org>
23622
23623         Build fix.
23624
23625         * bindings/js/kjs_events.cpp:
23626         (WebCore::JSAbstractEventListener::handleEvent):
23627
23628 2008-05-03  Sam Weinig  <sam@webkit.org>
23629
23630         Rubber-stamped by Geoffrey Garen.
23631
23632         Rename JSDOMWindowWrapper to JSDOMWindowShell.
23633
23634 2008-05-01  Rob Buis  <buis@kde.org>
23635
23636         Reviewed by Eric.
23637
23638         https://bugs.webkit.org/show_bug.cgi?id=18568
23639         background: currentColor fails
23640
23641         Implement currentColor from CSS3 color module.
23642
23643         Tests: fast/css/background-currentcolor.html
23644
23645         * css/CSSParser.cpp:
23646         (WebCore::CSSParser::parseValue):
23647         (WebCore::CSSParser::parseBackgroundColor):
23648         * css/CSSStyleSelector.cpp:
23649         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
23650         * css/CSSValueKeywords.in:
23651         * css/SVGCSSValueKeywords.in:
23652
23653 2008-05-02  Anders Carlsson  <andersca@apple.com>
23654
23655         Reviewed by Mark.
23656
23657         Turns out calling locationInWindow on keyboard events will not throw an exception,
23658         but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
23659         
23660         * bridge/npapi.h:
23661         (_NPCocoaEvent::):
23662
23663 2008-05-02  Benjamin Otte  <otte@gnome.org>
23664
23665         Reviewed by Alp Toker.
23666
23667         http://bugs.webkit.org/show_bug.cgi?id=18856
23668         [GTK] variable initialization missing
23669
23670         Not initializing the m_needsXEmbed variable could have very funny
23671         results. Most often those results would be crashes.
23672
23673         * plugins/PluginView.cpp:
23674         (WebCore::PluginView::PluginView):
23675
23676 2008-05-02  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
23677
23678         Reviewed by Eric.
23679
23680         https://bugs.webkit.org/show_bug.cgi?id=18811
23681         Enable dashboard and offline web apps in autotools
23682
23683         * GNUmakefile.am:
23684
23685 2008-05-02  Anders Carlsson  <andersca@apple.com>
23686
23687         Reviewed by Sam.
23688
23689         Name the event union so it will work in plain C.
23690
23691         * bridge/npapi.h:
23692         (_NPCocoaEvent::):
23693
23694 2008-05-02  Dan Bernstein  <mitz@apple.com>
23695
23696         Reviewed by John Sullivan.
23697
23698         - render text shadows with zero offset, as the shadow can be seen behind
23699           the text if the text is translucent
23700
23701         Test: fast/text/shadow-no-blur.html
23702
23703         * platform/graphics/mac/FontMac.mm:
23704         (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
23705         shadow offset. Since isEmpty() is also true for sizes that have one or
23706         more non-positive components, this also ensures that subpixel
23707         antialiasing of the text is maintained with shadows in all directions.
23708         (WebCore::Font::drawGlyphs): Ditto.
23709         * platform/graphics/win/FontCGWin.cpp:
23710         (WebCore::Font::drawGlyphs): Ditto.
23711
23712 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
23713
23714         Reviewed by Simon.
23715
23716         Build the Qt port with SVG Use and As Image support.
23717
23718         * WebCore.pro:
23719
23720 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
23721
23722         Reviewed by Simon.
23723
23724         Fixed potential crash on SVG animation (added more checks to the assert).
23725
23726         * svg/SVGUseElement.cpp:
23727         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
23728
23729 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
23730
23731         Rubber-stamped by John Sullivan.
23732
23733         Fix a debug-only crash in layout tests.
23734
23735         * loader/CachedResource.cpp:
23736         (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
23737
23738 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
23739
23740         Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
23741
23742         * WebCore.pro: Don't use QT += phonon as it prepends the phonon
23743         includes to the include paths. Instead add it manually and make sure
23744         phonon comes last, to avoid the conflict of phonon's path.h with
23745         WebCore's Path.h on case-insensitive filesystems.
23746
23747 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
23748
23749         Fix the Qt build. Add ExecState where necessary.
23750
23751         * bridge/qt/qt_class.cpp:
23752         (KJS::Bindings::QtClass::fallbackObject):
23753         * bridge/qt/qt_instance.cpp:
23754         (KJS::Bindings::QtRuntimeObjectImp::construct):
23755         (KJS::Bindings::QtInstance::getRuntimeObject):
23756         (KJS::Bindings::QtInstance::invokeDefaultMethod):
23757         (KJS::Bindings::QtInstance::defaultValue):
23758         (KJS::Bindings::QtInstance::stringValue):
23759         * bridge/qt/qt_instance.h:
23760         (KJS::Bindings::QtInstance::getObject):
23761         * bridge/qt/qt_runtime.cpp:
23762         (KJS::Bindings::convertValueToQVariant):
23763         (KJS::Bindings::convertQVariantToValue):
23764         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
23765         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
23766         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
23767         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
23768         (KJS::Bindings::QtConnectionObject::execute):
23769         * bridge/runtime.cpp:
23770         (KJS::Bindings::Instance::createRuntimeObject):
23771
23772 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
23773
23774         Fix the Qt/Win build.
23775
23776         * WebCore.pro:
23777         * platform/qt/TemporaryLinkStubs.cpp:
23778         (PluginDatabase::getPluginPathsInDirectories):
23779         (PluginDatabase::defaultPluginDirectories):
23780         (PluginDatabase::isPreferredPluginDirectory):
23781         (PluginView::setNPWindowRect):
23782         (PluginView::userAgent):
23783         (PluginView::invalidateRect):
23784         (PluginView::invalidateRegion):
23785         (PluginView::forceRedraw):
23786         (PluginView::setFocus):
23787         (PluginView::show):
23788         (PluginView::hide):
23789         (PluginView::paint):
23790         (PluginView::setParent):
23791         (PluginView::attachToWindow):
23792         (PluginView::detachFromWindow):
23793         (PluginView::updateWindow):
23794         (PluginView::handleKeyboardEvent):
23795         (PluginView::handleMouseEvent):
23796         (PluginView::handlePostReadFile):
23797         (PluginView::getValue):
23798         * plugins/qt/PluginPackageQt.cpp:
23799         (WebCore::PluginPackage::load):
23800
23801 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
23802
23803         Reviewed by Geoffrey Garen.
23804
23805         https://bugs.webkit.org/show_bug.cgi?id=18826
23806         Make JavaScript heap per-thread
23807
23808         This is mostly adaptation for JSC changes. The most prominent one is that JSObject
23809         allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
23810         OK to pass either the current or global one, whichever is faster to get hold of, as both
23811         have the same reference to a per-thread JS heap.
23812
23813         * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
23814         JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
23815         constructed before any ExecState comes into existence, so they use Heap::threadHeap()
23816         directly for allocation.
23817
23818         * bindings/js/JSDOMWindowWrapper.cpp:
23819         (WebCore::JSDOMWindowWrapper::operator new):
23820         * bindings/js/JSDOMWindowWrapper.h:
23821         Added a custom operator new to use per-thread heap when there's no ExecState around.
23822
23823         * bindings/js/JSAudioConstructor.cpp:
23824         (WebCore::JSAudioConstructor::JSAudioConstructor):
23825         * bindings/js/JSCSSRuleCustom.cpp:
23826         (WebCore::toJS):
23827         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
23828         (WebCore::JSCSSStyleDeclaration::nameGetter):
23829         * bindings/js/JSCSSValueCustom.cpp:
23830         (WebCore::toJS):
23831         * bindings/js/JSCanvasPixelArrayCustom.cpp:
23832         (WebCore::JSCanvasPixelArray::indexGetter):
23833         (WebCore::toJS):
23834         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
23835         (WebCore::toJS):
23836         * bindings/js/JSClipboardCustom.cpp:
23837         (WebCore::JSClipboard::types):
23838         (WebCore::JSClipboard::getData):
23839         * bindings/js/JSCustomXPathNSResolver.cpp:
23840         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
23841         * bindings/js/JSDOMApplicationCacheCustom.cpp:
23842         (WebCore::JSDOMApplicationCache::addEventListener):
23843         (WebCore::JSDOMApplicationCache::removeEventListener):
23844         (WebCore::JSDOMApplicationCache::setOnchecking):
23845         (WebCore::JSDOMApplicationCache::setOnerror):
23846         (WebCore::JSDOMApplicationCache::setOnnoupdate):
23847         (WebCore::JSDOMApplicationCache::setOndownloading):
23848         (WebCore::JSDOMApplicationCache::setOnprogress):
23849         (WebCore::JSDOMApplicationCache::setOnupdateready):
23850         (WebCore::JSDOMApplicationCache::setOncached):
23851         * bindings/js/JSDOMWindowBase.cpp:
23852         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
23853         (WebCore::JSDOMWindowBase::getValueProperty):
23854         (WebCore::JSDOMWindowBase::setListener):
23855         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
23856         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
23857         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
23858         (WebCore::windowProtoFuncAToB):
23859         (WebCore::windowProtoFuncBToA):
23860         (WebCore::windowProtoFuncSetTimeout):
23861         (WebCore::windowProtoFuncSetInterval):
23862         (WebCore::windowProtoFuncAddEventListener):
23863         * bindings/js/JSDOMWindowBase.h:
23864         * bindings/js/JSDocumentCustom.cpp:
23865         (WebCore::toJS):
23866         * bindings/js/JSEventCustom.cpp:
23867         (WebCore::toJS):
23868         * bindings/js/JSEventTargetBase.cpp:
23869         (WebCore::jsEventTargetAddEventListener):
23870         * bindings/js/JSEventTargetBase.h:
23871         (WebCore::JSEventTargetPrototype::self):
23872         * bindings/js/JSEventTargetNode.cpp:
23873         (WebCore::JSEventTargetNode::setListener):
23874         * bindings/js/JSHTMLCollectionCustom.cpp:
23875         (WebCore::getNamedItems):
23876         (WebCore::toJS):
23877         * bindings/js/JSHTMLElementWrapperFactory.cpp:
23878         (WebCore::createJSHTMLWrapper):
23879         * bindings/js/JSHTMLFormElementCustom.cpp:
23880         (WebCore::JSHTMLFormElement::nameGetter):
23881         * bindings/js/JSHTMLInputElementBase.cpp:
23882         (WebCore::JSHTMLInputElementBase::getValueProperty):
23883         * bindings/js/JSHTMLOptionElementConstructor.cpp:
23884         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
23885         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
23886         (WebCore::JSHTMLOptionsCollection::length):
23887         * bindings/js/JSInspectedObjectWrapper.cpp:
23888         (WebCore::JSInspectedObjectWrapper::wrap):
23889         * bindings/js/JSInspectorCallbackWrapper.cpp:
23890         (WebCore::JSInspectorCallbackWrapper::wrap):
23891         * bindings/js/JSLocationCustom.cpp:
23892         (WebCore::JSLocation::toString):
23893         * bindings/js/JSNamedNodesCollection.cpp:
23894         (WebCore::JSNamedNodesCollection::lengthGetter):
23895         * bindings/js/JSNavigatorCustom.cpp:
23896         (WebCore::JSNavigator::appVersion):
23897         * bindings/js/JSNodeCustom.cpp:
23898         (WebCore::toJS):
23899         * bindings/js/JSNodeFilterCustom.cpp:
23900         (WebCore::JSNodeFilter::acceptNode):
23901         * bindings/js/JSRGBColor.cpp:
23902         (WebCore::getJSRGBColor):
23903         * bindings/js/JSSQLResultSetRowListCustom.cpp:
23904         (WebCore::JSSQLResultSetRowList::item):
23905         * bindings/js/JSSVGElementWrapperFactory.cpp:
23906         (WebCore::createJSSVGWrapper):
23907         * bindings/js/JSSVGLazyEventListener.cpp:
23908         (WebCore::JSSVGLazyEventListener::eventParameterName):
23909         * bindings/js/JSStorageCustom.cpp:
23910         (WebCore::JSStorage::nameGetter):
23911         * bindings/js/JSStyleSheetCustom.cpp:
23912         (WebCore::toJS):
23913         * bindings/js/JSXMLHttpRequestConstructor.cpp:
23914         (WebCore::JSXMLHttpRequestConstructor::construct):
23915         * bindings/js/JSXMLHttpRequestCustom.cpp:
23916         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
23917         (WebCore::JSXMLHttpRequest::setOnload):
23918         (WebCore::JSXMLHttpRequest::setOnprogress):
23919         (WebCore::JSXMLHttpRequest::getResponseHeader):
23920         (WebCore::JSXMLHttpRequest::addEventListener):
23921         (WebCore::JSXMLHttpRequest::removeEventListener):
23922         * bindings/js/JSXSLTProcessor.cpp:
23923         (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
23924         (WebCore::JSXSLTProcessorConstructor::construct):
23925         * bindings/js/kjs_binding.cpp:
23926         (WebCore::jsStringOrNull):
23927         (WebCore::jsOwnedStringOrNull):
23928         (WebCore::jsStringOrUndefined):
23929         (WebCore::jsStringOrFalse):
23930         (WebCore::nonCachingStaticFunctionGetter):
23931         (WebCore::objectToStringFunctionGetter):
23932         * bindings/js/kjs_binding.h:
23933         (WebCore::DOMObject::DOMObject):
23934         (WebCore::cacheDOMObject):
23935         (WebCore::cacheSVGDOMObject):
23936         * bindings/js/kjs_events.cpp:
23937         (WebCore::JSLazyEventListener::eventParameterName):
23938         (WebCore::JSLazyEventListener::parseCode):
23939         * bindings/js/kjs_html.cpp:
23940         (WebCore::getRuntimeObject):
23941         * bridge/c/c_instance.cpp:
23942         (KJS::Bindings::CInstance::defaultValue):
23943         (KJS::Bindings::CInstance::stringValue):
23944         (KJS::Bindings::CInstance::numberValue):
23945         (KJS::Bindings::CInstance::valueOf):
23946         * bridge/c/c_instance.h:
23947         * bridge/c/c_utility.cpp:
23948         (KJS::Bindings::convertNPVariantToValue):
23949         * bridge/jni/jni_instance.cpp:
23950         (JavaInstance::stringValue):
23951         (JavaInstance::numberValue):
23952         (JavaInstance::invokeMethod):
23953         (JavaInstance::defaultValue):
23954         (JavaInstance::valueOf):
23955         * bridge/jni/jni_instance.h:
23956         * bridge/jni/jni_jsobject.h:
23957         * bridge/jni/jni_jsobject.mm:
23958         (JavaJSObject::call):
23959         (JavaJSObject::setMember):
23960         (JavaJSObject::setSlot):
23961         (JavaJSObject::convertJObjectToValue):
23962         (JavaJSObject::getListFromJArray):
23963         * bridge/jni/jni_objc.mm:
23964         (KJS::Bindings::dispatchJNICall):
23965         * bridge/jni/jni_runtime.cpp:
23966         (JavaArray::convertJObjectToArray):
23967         (JavaField::dispatchValueFromInstance):
23968         (JavaField::valueFromInstance):
23969         (JavaField::dispatchSetValueToInstance):
23970         (JavaArray::valueAt):
23971         * bridge/jni/jni_utility.h:
23972         * bridge/objc/objc_class.mm:
23973         (KJS::Bindings::ObjcClass::fallbackObject):
23974         * bridge/objc/objc_instance.h:
23975         * bridge/objc/objc_instance.mm:
23976         (ObjcInstance::defaultValue):
23977         (ObjcInstance::stringValue):
23978         (ObjcInstance::numberValue):
23979         (ObjcInstance::valueOf):
23980         * bridge/objc/objc_utility.h:
23981         * bridge/objc/objc_utility.mm:
23982         (KJS::Bindings::convertNSStringToString):
23983         (KJS::Bindings::convertObjcValueToValue):
23984         * bridge/runtime.cpp:
23985         (KJS::Bindings::Instance::createRuntimeObject):
23986         * bridge/runtime.h:
23987         (KJS::Bindings::Instance::valueOf):
23988         * bridge/runtime_array.cpp:
23989         (RuntimeArray::lengthGetter):
23990         * bridge/runtime_method.cpp:
23991         (RuntimeMethod::lengthGetter):
23992         * bridge/runtime_object.cpp:
23993         (RuntimeObjectImp::RuntimeObjectImp):
23994         (RuntimeObjectImp::methodGetter):
23995         (RuntimeObjectImp::defaultValue):
23996         * xml/XMLHttpRequest.cpp:
23997         (WebCore::XMLHttpRequest::dropProtection):
23998         * bindings/js/GCController.cpp:
23999         (WebCore::GCController::gcTimerFired):
24000         (WebCore::GCController::garbageCollectNow):
24001         Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
24002         collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
24003         Collector methods with calls to per-thread Heap ones.
24004
24005 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
24006
24007         Reviewed by Simon.
24008
24009         Build the Qt port with SVG Animation support.
24010
24011         * WebCore.pro:
24012
24013 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
24014
24015         Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
24016         with different signatures.
24017
24018         * plugins/npfunctions.h:
24019
24020 2008-05-01  Robin Dunn  <robin@alldunn.com>
24021
24022         Reviewed by Kevin Ollivier.
24023
24024         Explicitly set the pen style in wx port to keep pen style changes from 
24025         affecting URL underline or text field drawing.
24026         
24027         https://bugs.webkit.org/show_bug.cgi?id=18775
24028
24029         * platform/graphics/wx/GraphicsContextWx.cpp:
24030         (WebCore::GraphicsContext::fillRect):
24031         (WebCore::GraphicsContext::drawLineForText):
24032         * platform/wx/RenderThemeWx.cpp:
24033         (WebCore::RenderThemeWx::paintTextField):
24034
24035 2008-05-01  Robin Dunn  <robin@alldunn.com>
24036
24037         Reviewed by Kevin Ollivier.
24038
24039         Implement popup menu support for wx port.
24040         
24041         https://bugs.webkit.org/show_bug.cgi?id=18776
24042
24043         * platform/PopupMenu.h:
24044         * platform/wx/PopupMenuWx.cpp: Added.
24045         (WebCore::PopupMenu::PopupMenu):
24046         (WebCore::PopupMenu::~PopupMenu):
24047         (WebCore::PopupMenu::show):
24048         (WebCore::PopupMenu::OnMenuItemSelected):
24049         (WebCore::PopupMenu::hide):
24050         (WebCore::PopupMenu::updateFromElement):
24051         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
24052         * platform/wx/TemporaryLinkStubs.cpp:
24053         * webcore-wx.bkl:
24054
24055 2008-05-01  Kevin Ollivier  <kevino@theolliviers.com>
24056
24057         Reviewed by Eric Seidel.
24058
24059         Make sure we properly set the button for all mouse events,
24060         not just mouse down, set the click count to 0
24061         for non-click events, and finally set the timestamp.
24062         
24063         https://bugs.webkit.org/show_bug.cgi?id=18464
24064
24065         * platform/wx/MouseEventWx.cpp:
24066         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
24067
24068 2008-05-01  Sam Weinig  <sam@webkit.org>
24069
24070         Reviewed by Mark Rowe (in his infinite wisdom).
24071
24072         Auto-generate the JSXSLTProcessor binding.
24073
24074         * DerivedSources.make:
24075         * GNUmakefile.am:
24076         * WebCore.pro:
24077         * WebCore.vcproj/WebCore.vcproj:
24078         * WebCore.xcodeproj/project.pbxproj:
24079         * WebCoreSources.bkl:
24080         * bindings/js/JSDOMWindowBase.cpp:
24081         (WebCore::JSDOMWindowBase::getValueProperty):
24082         * bindings/js/JSDOMWindowBase.h:
24083         (WebCore::JSDOMWindowBase::):
24084         * bindings/js/JSXSLTProcessor.cpp: Removed.
24085         * bindings/js/JSXSLTProcessor.h: Removed.
24086         * xml/XSLTProcessor.h:
24087
24088 2008-05-01  Sam Weinig  <sam@webkit.org>
24089
24090         Reviewed by Geoffrey Garen.
24091
24092         Fixes:
24093           - https://bugs.webkit.org/show_bug.cgi?id=17249
24094             Incorrect lexical scope after navigation leads to UXSS
24095             <rdar://problem/5738497>
24096
24097           - https://bugs.webkit.org/show_bug.cgi?id=16824
24098             Script authorization should follow lexical (not dynamic) scope
24099             <rdar://problem/5683032>
24100
24101         This patch changes us to perform same-origin checks based on the lexical global object) 
24102         rather than dynamic global object, which is now possible we don't re-use the window on 
24103         navigations, but rather switch in a new one and re-use the outer shell.  This is both
24104         more secure and conforms with the HTML5 specification.  Now that all the checks are
24105         done based on the lexical global object, we can remove the SecurityOrigin::Reason
24106         concept, as it was only around to work around an ebay.com bug that required the check to
24107         be done that way.
24108
24109         An important thing to note is that we currently implement a stricter than necessary policy
24110         and perform the same-origin check based on the currently active global object to avoid leaking
24111         the document in cases when the target frame is navigated before access.  This will be fixed in
24112         an upcoming patch.
24113
24114         * bindings/js/JSDOMWindowBase.cpp:
24115         (WebCore::JSDOMWindowBase::allowsAccessFrom):
24116         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
24117         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
24118         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
24119         (WebCore::JSDOMWindowBase::printErrorMessage):
24120         (WebCore::asJSDOMWindow):
24121         * bindings/js/JSDOMWindowBase.h:
24122         * html/CanvasRenderingContext2D.cpp:
24123         (WebCore::CanvasRenderingContext2D::checkOrigin):
24124         (WebCore::CanvasRenderingContext2D::createPattern):
24125         * loader/FrameLoader.cpp:
24126         (WebCore::FrameLoader::begin):
24127         (WebCore::FrameLoader::write):
24128         (WebCore::FrameLoader::setOpener):
24129         (WebCore::FrameLoader::shouldAllowNavigation):
24130         * page/DOMWindow.h:
24131         (WebCore::DOMWindow::setSecurityOrigin):
24132         (WebCore::DOMWindow::securityOrigin):
24133         (WebCore::DOMWindow::setURL):
24134         (WebCore::DOMWindow::url):
24135         * platform/SecurityOrigin.cpp:
24136         (WebCore::SecurityOrigin::canAccess):
24137         (WebCore::SecurityOrigin::isSecureTransitionTo):
24138         * platform/SecurityOrigin.h:
24139
24140 2008-05-01  Anders Carlsson  <andersca@apple.com>
24141
24142         Reviewed by Mark.
24143
24144         Enable 64-bit NPAPI plugins.
24145         
24146         * WebCore.xcodeproj/project.pbxproj:
24147         Don't remove NPAPI related symbols from the 64-bit .exp file.
24148         
24149         * bridge/npruntime.h:
24150         Remove now unnecessary #error.
24151
24152 2008-05-01  Maciej Stachowiak  <mjs@apple.com>
24153
24154         Reviewed by Oliver (a while ago)
24155
24156         - just a wee bit more bindings speedup
24157         
24158         Store the per-document Node --> JS wrapper cache in the document
24159         instead of an external hashtable.
24160
24161         * bindings/js/kjs_binding.cpp:
24162         (WebCore::ScriptInterpreter::getDOMNodeForDocument):
24163         (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
24164         (WebCore::ScriptInterpreter::putDOMNodeForDocument):
24165         (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
24166         (WebCore::ScriptInterpreter::markDOMNodesForDocument):
24167         * dom/Document.h:
24168         (WebCore::Document::wrapperCache):
24169
24170 2008-05-01  Anders Carlsson  <andersca@apple.com>
24171
24172         Reviewed by Tim.
24173
24174         Remove duplicate npfunctions.h header from WebKit.
24175         
24176         * WebCore.xcodeproj/project.pbxproj:
24177         Add npfunctions.h and set its role to private.
24178         
24179         * plugins/npfunctions.h:
24180         Merge Mac specific changes.
24181
24182 2008-05-01  Sam Weinig  <sam@webkit.org>
24183
24184         Reviewed by Geoffrey Garen.
24185
24186         Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
24187         cast.
24188
24189         * bindings/js/JSCustomVoidCallback.cpp:
24190         (WebCore::toVoidCallback):
24191         * bindings/js/JSCustomXPathNSResolver.cpp:
24192         (WebCore::JSCustomXPathNSResolver::create):
24193         * bindings/js/JSDOMApplicationCacheCustom.cpp:
24194         (WebCore::JSDOMApplicationCache::add):
24195         (WebCore::JSDOMApplicationCache::remove):
24196         * bindings/js/JSDOMWindowBase.cpp:
24197         (WebCore::allowPopUp):
24198         (WebCore::createWindow):
24199         (WebCore::windowProtoFuncOpen):
24200         (WebCore::asJSDOMWindow):
24201         * bindings/js/JSDOMWindowBase.h:
24202         * bindings/js/JSDOMWindowCustom.cpp:
24203         (WebCore::JSDOMWindow::setLocation):
24204         (WebCore::JSDOMWindow::postMessage):
24205         * bindings/js/JSDatabaseCustom.cpp:
24206         (WebCore::JSDatabase::changeVersion):
24207         (WebCore::JSDatabase::transaction):
24208         * bindings/js/JSDocumentCustom.cpp:
24209         (WebCore::JSDocument::setLocation):
24210         * bindings/js/JSLocationCustom.cpp:
24211         (WebCore::navigateIfAllowed):
24212         (WebCore::JSLocation::setHref):
24213         (WebCore::JSLocation::replace):
24214         (WebCore::JSLocation::reload):
24215         (WebCore::JSLocation::assign):
24216         * bindings/js/JSSQLTransactionCustom.cpp:
24217         (WebCore::JSSQLTransaction::executeSql):
24218         * bindings/js/JSXMLHttpRequestCustom.cpp:
24219         (WebCore::JSXMLHttpRequest::open):
24220         * page/JavaScriptDebugServer.cpp:
24221         (WebCore::toPage):
24222
24223 2008-05-01  Anatoli Papirovski  <apapirovski@mac.com>
24224
24225         Reviewed by Dave Hyatt.
24226
24227         - fix https://bugs.webkit.org/show_bug.cgi?id=18347
24228           Absolutely positioned image percentage width does not respect container's padding
24229
24230         Test: fast/replaced/absolute-position-percentage-width.html
24231
24232         * rendering/RenderBox.cpp:
24233         (WebCore::RenderBox::calcReplacedWidthUsing):
24234
24235 2008-05-01  Dan Bernstein  <mitz@apple.com>
24236
24237         - Windows build fix
24238
24239         * platform/graphics/win/FontCGWin.cpp:
24240         (WebCore::Font::drawGlyphs):
24241
24242 2008-05-01  Dan Bernstein  <mitz@apple.com>
24243
24244         Reviewed by Darin Adler.
24245
24246         - make synthetic bold and synthetic italics work in GDI text
24247         - account for synthetic bold in complex text on Windows
24248
24249         * platform/graphics/win/FontCGWin.cpp:
24250         (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
24251         to fit italics. Added a skew transform for synthetic italics and a
24252         second paint pass for synthetic bold.
24253         * platform/graphics/win/SimpleFontDataWin.cpp:
24254         (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
24255         offset.
24256         * platform/graphics/win/UniscribeController.cpp:
24257         (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
24258         bold offset.
24259
24260 2008-05-01  Alp Toker  <alp@nuanti.com>
24261
24262         Qt/Win build fix attempt following plugin changes. Add missing return
24263         statements.
24264
24265         Also fixes some newly introduced coding style issues in the Qt port.
24266
24267         * platform/qt/FileSystemQt.cpp:
24268         (WebCore::openTemporaryFile):
24269         (WebCore::closeFile):
24270         (WebCore::writeToFile):
24271         (WebCore::unloadModule):
24272
24273 2008-05-01  Anders Carlsson  <andersca@apple.com>
24274
24275         Reviewed by Adam.
24276
24277         Export methods needed to subclass Widget.  (See r32770.)
24278
24279         * WebCore.base.exp:
24280
24281 2008-05-01  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
24282
24283         Reviewed by Alp Toker.
24284         Qt parts OK'ed by Simon Hausmann.
24285
24286         https://bugs.webkit.org/show_bug.cgi?id=14750
24287         Added support for NPAPI plugins on Gtk and Qt-x11 ports.
24288
24289         * GNUmakefile.am: Added Gtk plugin files.
24290         * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
24291         ENABLE_NETSCAPE_PLUGIN_API
24292         * bridge/npruntime_internal.h: Additional undefs that conflict
24293         with Qt headers.
24294         * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
24295         (WebCore::Frame::createScriptInstanceForWidget):
24296         * page/qt/FrameQt.cpp: Create js bindings for PluginView.
24297         (WebCore::Frame::createScriptInstanceForWidget):
24298         (WebCore::Frame::clearPlatformScriptObjects):
24299         (WebCore::Frame::disconnectPlatformScriptObjects):
24300         * platform/FileSystem.h: Qt FileSystem implementation.
24301         * platform/Widget.h: Members to differentiate between Qt plugins and
24302         NPAPI ones.
24303         * platform/gtk/ScrollViewGtk.cpp:
24304         (WebCore::ScrollView::addChild): Set containing window before calling setParent.
24305         * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
24306         (PluginView::invalidateRegion):
24307         * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
24308         NPAPI plugins.
24309         (WebCore::openTemporaryFile):
24310         (WebCore::closeFile):
24311         (WebCore::writeToFile):
24312         (WebCore::unloadModule): Delete module if unloaded.
24313         * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
24314         * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
24315         NPAPI ones.
24316         (WebCore::WidgetPrivate::WidgetPrivate):
24317         (WebCore::Widget::isNPAPIPlugin):
24318         (WebCore::Widget::setIsNPAPIPlugin):
24319         * plugins/PluginPackage.cpp:
24320         (WebCore::PluginPackage::~PluginPackage): Unload the module before
24321         destruction.
24322         (WebCore::PluginPackage::compare): Moved here as it's platform
24323         independent.
24324         * plugins/PluginView.cpp: Moved platform-independent functions here.
24325         (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
24326         Unix platforms.
24327         (WebCore::PluginView::freeStringArray):
24328         (WebCore::startsWithBlankLine):
24329         (WebCore::locationAfterFirstBlankLine):
24330         (WebCore::findEOL):
24331         (WebCore::capitalizeRFC822HeaderFieldName):
24332         (WebCore::parseRFC822HeaderFields):
24333         (WebCore::PluginView::handlePost):
24334         * plugins/PluginView.h: Moved platform-independent functions here.
24335         Added member to signal plugin needs XEmbed extension.
24336         * plugins/gtk/PluginDataGtk.cpp: Added.
24337         (WebCore::PluginData::initPlugins):
24338         (WebCore::PluginData::refresh):
24339         * plugins/gtk/PluginDatabaseGtk.cpp:
24340         (WebCore::PluginDatabase::defaultPluginDirectories):
24341         (WebCore::PluginDatabase::isPreferredPluginDirectory):
24342         * plugins/gtk/PluginPackageGtk.cpp: Added.
24343         (WebCore::PluginPackage::determineQuirks):
24344         (WebCore::PluginPackage::fetchInfo):
24345         (WebCore::PluginPackage::load):
24346         (WebCore::PluginPackage::hash):
24347         (WebCore::PluginPackage::equal):
24348         (WebCore::PluginPackage::compareFileVersion):
24349         * plugins/gtk/PluginViewGtk.cpp: Added.
24350         (WebCore::PluginView::updateWindow):
24351         (WebCore::PluginView::setFocus):
24352         (WebCore::PluginView::show):
24353         (WebCore::PluginView::hide):
24354         (WebCore::PluginView::paint):
24355         (WebCore::PluginView::handleKeyboardEvent):
24356         (WebCore::PluginView::handleMouseEvent):
24357         (WebCore::PluginView::setParent):
24358         (WebCore::PluginView::setNPWindowRect):
24359         (WebCore::PluginView::attachToWindow):
24360         (WebCore::PluginView::detachFromWindow):
24361         (WebCore::PluginView::stop):
24362         (WebCore::PluginView::userAgent):
24363         (WebCore::PluginView::handlePostReadFile):
24364         (WebCore::PluginView::getValue):
24365         (WebCore::PluginView::invalidateRect):
24366         (WebCore::PluginView::forceRedraw):
24367         (WebCore::PluginView::~PluginView):
24368         (WebCore::plug_removed_cb): Added callback to handle plug removal.
24369         (WebCore::PluginView::init):
24370         * plugins/gtk/xembed.h: Added.
24371         * plugins/npapi.cpp:
24372         (NPN_GetValue): Return error if no view present.
24373         * plugins/qt/PluginDataQt.cpp:
24374         (WebCore::PluginData::initPlugins):
24375         (WebCore::PluginData::refresh):
24376         * plugins/qt/PluginDatabaseQt.cpp: Added.
24377         (WebCore::PluginDatabase::getPluginPathsInDirectories):
24378         (WebCore::addQtWebKitPluginDirectories):
24379         (WebCore::addMozillaPluginDirectories):
24380         (WebCore::PluginDatabase::defaultPluginDirectories):
24381         (WebCore::PluginDatabase::isPreferredPluginDirectory):
24382         * plugins/qt/PluginPackageQt.cpp: Added.
24383         (WebCore::PluginPackage::determineQuirks):
24384         (WebCore::PluginPackage::fetchInfo):
24385         (WebCore::PluginPackage::load):
24386         (WebCore::PluginPackage::hash):
24387         (WebCore::PluginPackage::equal):
24388         (WebCore::PluginPackage::compareFileVersion):
24389         * plugins/qt/PluginViewQt.cpp: Added.
24390         (WebCore::PluginView::updateWindow):
24391         (WebCore::PluginView::setFocus):
24392         (WebCore::PluginView::show):
24393         (WebCore::PluginView::hide):
24394         (WebCore::PluginView::paint):
24395         (WebCore::PluginView::handleKeyboardEvent):
24396         (WebCore::PluginView::handleMouseEvent):
24397         (WebCore::PluginView::setParent):
24398         (WebCore::PluginView::setNPWindowRect):
24399         (WebCore::PluginView::attachToWindow):
24400         (WebCore::PluginView::detachFromWindow):
24401         (WebCore::PluginView::stop):
24402         (WebCore::PluginView::userAgent):
24403         (WebCore::PluginView::handlePostReadFile):
24404         (WebCore::PluginView::getValue):
24405         (WebCore::PluginView::invalidateRect):
24406         (WebCore::PluginView::invalidateRegion):
24407         (WebCore::PluginView::forceRedraw):
24408         (WebCore::PluginView::~PluginView):
24409         (WebCore::PluginView::init):
24410         * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
24411         to plugins/PluginPackage.cpp
24412         * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
24413         plugins/PluginView.cpp
24414         (WebCore::PluginView::stop):
24415         (WebCore::PluginView::handlePostReadFile):
24416         (WebCore::PluginView::getValue): Moved this function to each platform.
24417
24418 2008-05-01  Sam Weinig  <sam@webkit.org>
24419
24420         Fix build.
24421
24422         * ForwardingHeaders/wtf/StrHash.h: Added.
24423
24424 2008-05-01  Anders Carlsson  <andersca@apple.com>
24425
24426         Reviewed by Darin.
24427
24428         Move management of cache groups to ApplicationCacheStorage. Also,
24429         application caches now start out with a null group and will have their group set
24430         when the cache has finished loading. 
24431
24432         * loader/appcache/ApplicationCache.cpp:
24433         (WebCore::ApplicationCache::ApplicationCache):
24434         Initialize m_group to 0.
24435         
24436         (WebCore::ApplicationCache::~ApplicationCache):
24437         Null check the group.
24438         
24439         (WebCore::ApplicationCache::setGroup):
24440         New method for setting the group.
24441         
24442         * loader/appcache/ApplicationCache.h:        
24443         (WebCore::ApplicationCache::create):
24444         Remove the group argument.
24445         
24446         * loader/appcache/ApplicationCacheGroup.cpp:
24447         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
24448         Let the storage know that the cache group has been destroyed.
24449         
24450         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
24451         Call into the storage.
24452         
24453         (WebCore::ApplicationCacheGroup::selectCache):
24454         Call into the storage.
24455         
24456         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
24457         When there are no document loaders associated with the cache group,
24458         set the newest cache to 0.
24459         
24460         (WebCore::ApplicationCacheGroup::cacheDestroyed):
24461         Delete the group if there are no associated caches.
24462         
24463         (WebCore::ApplicationCacheGroup::setNewestCache):
24464         New method that will set the newest cache and associate the group with the cache.
24465         
24466         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
24467         Call setNewestCache instead.
24468         
24469         * loader/appcache/ApplicationCacheStorage.cpp:
24470         (WebCore::urlHostHash):
24471         Move host hash method here.
24472         
24473         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
24474         New method that finds a cache group with a given manifest URL or creates a new one.
24475
24476         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
24477         New method that returns a cache group for a given URL.
24478         
24479         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
24480         When the cache group has been destroyed, remove it from the hash map.
24481         
24482         * loader/appcache/ApplicationCacheStorage.h:
24483         Add new methods.I b
24484
24485 2008-05-01  Dan Winship  <danw@gnome.org>
24486
24487         Reviewed by Alp Toker.
24488
24489         http://bugs.webkit.org/show_bug.cgi?id=18490
24490         Add mostly-working file: support and mostly-broken ftp: support to
24491         the soup backend.
24492
24493         * platform/network/soup/ResourceHandleSoup.cpp (start): after
24494         doing basic checks, delegate to one of three submethods
24495         (startData): handles data: URLs
24496         (startHttp): handles http: and https: URLs, via libsoup
24497         (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
24498         FIXMEs detailing the parts that don't fully work yet.
24499
24500         * platform/network/ResourceHandle.h:
24501         * platform/network/ResourceHandleInternal.h: add new member
24502         variables for gio-based loading
24503
24504 2008-05-01  Alp Toker  <alp@nuanti.com>
24505
24506         Rubber-stamped by Anders.
24507
24508         GTK+ build fix for changes in r32752. Use int32, not int32_t types in
24509         npapi.h.
24510
24511         Additional fix to use same signedness in npapi.h and Mac for the
24512         interval parameter.
24513
24514         * bridge/npapi.h:
24515
24516 2008-04-30  Anders Carlsson  <andersca@apple.com>
24517
24518         Reviewed by Adam.
24519
24520         Add new Cocoa event model type declarations.
24521         
24522         * bridge/npapi.h:
24523
24524 2008-04-30  Beth Dakin  <bdakin@apple.com>
24525
24526         Reviewed by Sam Weinig.
24527
24528         This patch does three things:
24529         1. Adds support for the "img" ARIA role
24530         2. Switches over to a HashMap for converting ARIA role attributes 
24531         to WebCore's AccessibilityRole type. 
24532         3. Fixes a crash in the new ARIA code that I ran into while 
24533         browsing with VoiceOver enabled.
24534
24535         * page/AccessibilityObject.cpp:
24536         (WebCore::AccessibilityObject::headingLevel): This is the crash 
24537         fix. Make sure the node's renderer is not null before looking up 
24538         its corresponding AccessibilityObject in the cache.
24539         (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for 
24540         ARIA images.
24541         (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to 
24542         the Map.
24543         (WebCore::RoleEntry::): Same.
24544         (WebCore::ariaRoleToWebCoreRole): Same.
24545         (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
24546
24547 2008-04-30  Rob Buis  <buis@kde.org>
24548
24549         Reviewed by Nikolas.
24550
24551         https://bugs.webkit.org/show_bug.cgi?id=16447
24552         onload called too many times for <svg:image>
24553         https://bugs.webkit.org/show_bug.cgi?id=12282
24554         SVG wastes time in malloc to send loadEvents to non-existent listeners
24555
24556         Postpone load event dispatching for image when externalResourcesRequired
24557         is true, delaying parents but not siblings, and make sure the load event
24558         is sent once for image in all cases.
24559
24560         * svg/SVGElement.cpp:
24561         (WebCore::hasLoadListener):
24562         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
24563         * svg/SVGImageElement.cpp:
24564         (WebCore::SVGImageElement::haveLoadedRequiredResources):
24565         * svg/SVGImageLoader.cpp:
24566         (WebCore::SVGImageLoader::dispatchLoadEvent):
24567
24568 2008-04-30  David Hyatt  <hyatt@apple.com>
24569
24570         Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts.  This
24571         won't typically crash release builds because of arena recycling.
24572
24573         Reviewed by Dan Bernstein
24574         
24575         * rendering/RenderLayer.cpp:
24576         (WebCore::RenderLayer::~RenderLayer):
24577         Make sure to remove the reflection's child layer from its parent.
24578
24579         * rendering/RenderMedia.cpp:
24580         (WebCore::RenderMedia::~RenderMedia):
24581         (WebCore::RenderMedia::destroy):
24582         (WebCore::RenderMedia::removeChild):
24583         * rendering/RenderMedia.h:
24584         Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
24585         like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
24586         destructor).
24587
24588 2008-04-30  Rémi Zara  <remi_zara@mac.com>
24589
24590         Reviewed by Dave Hyatt.
24591
24592         fix https://bugs.webkit.org/show_bug.cgi?id=18618
24593         <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
24594
24595         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
24596         (WebCore::patternCallback): flip the y axis when drawing the tile
24597
24598 2008-04-30  Timothy Hatcher  <timothy@apple.com>
24599
24600         Fixes an undefined type exception that fires when adding a resource to the inspector
24601         that has a MIME type warning.
24602
24603         Reviewed by Adam Roben.
24604
24605         * page/inspector/Resource.js:
24606         (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
24607         WebInspector.consolePanel.
24608         (WebInspector.Resource.prototype._checkWarning): Ditto.
24609
24610 2008-04-30  Timothy Hatcher  <timothy@apple.com>
24611
24612         Fixes the bug where the selected resource would be deselected after
24613         changing the sort order in the Resources panel.
24614
24615         Reviewed by Dan Bernstein.
24616
24617         * page/inspector/ResourcesPanel.js:
24618         (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
24619         Rememebr if the tree element that we are sorting was selected, so
24620         the selection can be restored after it is re-inserted. The onSelect
24621         is suppressed since we don't need to show the resource again.
24622
24623 2008-04-29  Timothy Hatcher  <timothy@apple.com>
24624
24625         Fixes the regression where error bubbles in source views always show
24626         "undefined" for the content because the message property on
24627         ConsoleMessage was removed. Adds support for a plain text formated
24628         message that is stored in the message proeprty.
24629
24630         Reviewed by Adam Roben.
24631
24632         * page/inspector/Console.js:
24633         (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
24634         the formatters.
24635         (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
24636         about needing to honor it if the textContent of the output doesn't make sense.
24637         (WebInspector.Console.prototype._formatvalue): Ditto.
24638         (WebInspector.Console.prototype._formatstring): Ditto.
24639         (WebInspector.Console.prototype._formatregexp): Ditto.
24640         (WebInspector.Console.prototype._formatarray): Ditto.
24641         (WebInspector.Console.prototype._formatnode): Ditto.
24642         (WebInspector.Console.prototype._formatobject): Ditto.
24643         (WebInspector.Console.prototype._formaterror): Ditto.
24644         (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the 
24645         textContnet of the result and assign to the message proeprty. This property is 
24646         referenced from the SourceView.
24647         (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the 
24648         result element as a local and return it, instead of using formatedMessage directly.
24649
24650 2008-04-30  Timothy Hatcher  <timothy@apple.com>
24651
24652         Adds a helper function to convert a JSValueRef to a String.
24653
24654         Reviewed by Adam Roben.
24655
24656         * page/InspectorController.cpp:
24657         (WebCore::toString): Converts a JSValueRef to a String.
24658         (WebCore::search): Use toString.
24659         (WebCore::InspectorController::handleException): Ditto.
24660
24661 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
24662
24663         Reviewed by Simon.
24664         
24665         Build the Qt port with SVG Foreign Object support.
24666
24667         * WebCore.pro:
24668
24669 2008-04-30  Simon Hausmann  <hausmann@webkit.org>
24670
24671         Reviewed by Holger.
24672
24673         Fix null pointer deference triggered by
24674         LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
24675
24676         * platform/network/qt/ResourceHandleQt.cpp:
24677         (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
24678
24679 2008-04-29  David Hyatt  <hyatt@apple.com>
24680
24681         Improve the performance of masks by adding code to set more precise clips on the transparency layers
24682         used to paint the content under the mask, and then also avoid creating transparency layers for the masks
24683         themselves in common cases.
24684
24685         Reviewed by Dan Bernstein
24686
24687         * platform/graphics/GraphicsContext.cpp:
24688         (WebCore::GraphicsContext::drawTiledImage):
24689         Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
24690         images.
24691
24692         * rendering/InlineFlowBox.cpp:
24693         (WebCore::InlineFlowBox::paintFillLayers):
24694         (WebCore::InlineFlowBox::paintFillLayer):
24695         (WebCore::InlineFlowBox::paintMask):
24696         Optimize to only push a transparency layer for the mask if multiple images are combining.  Add a new
24697         composite operator argument for use when painting fill layers to do direct destination-in compositing while
24698         painting images.
24699
24700
24701         * rendering/InlineFlowBox.h:
24702         * rendering/RenderBox.cpp:
24703         (WebCore::RenderBox::paintMask):
24704         (WebCore::RenderBox::paintMaskImages):
24705         Optimize to only push a transparency layer for the mask if multiple images are combining.
24706
24707         (WebCore::RenderBox::maskClipRect):
24708         A new method that attempts to compute a precise clip rect for the mask images.
24709
24710         (WebCore::RenderBox::paintFillLayers):
24711         (WebCore::RenderBox::paintFillLayer):
24712         (WebCore::RenderBox::paintFillLayerExtended):
24713         * rendering/RenderBox.h:
24714         Added the composite operator argument to the paintFillLayer methods.
24715
24716         * rendering/RenderFieldset.cpp:
24717         (WebCore::RenderFieldset::paintMask):
24718         Call the new base class paintMaskImages method for optimized mask painting.
24719
24720         * rendering/RenderLayer.cpp:
24721         (WebCore::transparencyClipBox):
24722         Fix a coordinate space issue with transparencyClipBox when masks were used.  The border box was in the
24723         wrong coordinate space.  Moved the code into the layer's boundingBox() method instead.
24724
24725         (WebCore::RenderLayer::paintLayer):
24726         Removed the code that always pushed a transparency layer before painting masks.
24727
24728         (WebCore::RenderLayer::boundingBox):
24729         Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
24730
24731         * rendering/RenderObject.cpp:
24732         (WebCore::RenderObject::paintNinePieceImage):
24733         Added a composite operator argument for direct destination-in painting of nine piece images.
24734
24735         * rendering/RenderObject.h:
24736         (WebCore::RenderObject::maskClipRect):
24737         (WebCore::RenderObject::paintFillLayerExtended):
24738         Base class stubs for RenderBox-implemented methods.
24739
24740         * rendering/RenderTable.cpp:
24741         (WebCore::RenderTable::paintMask):
24742         * rendering/RenderTableCell.cpp:
24743         (WebCore::RenderTableCell::paintMask):
24744         Modified to call the new paintMaskImages function.
24745
24746         * svg/graphics/SVGImage.cpp:
24747         (WebCore::SVGImage::draw):
24748         SVG images now respect composite modes by pushing a transparency layer when the composite mode
24749         is anything other than source-over.
24750
24751 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
24752
24753         Rubber-stamped by Rob Buis.
24754
24755         Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
24756
24757         * svg/SVGUseElement.cpp:
24758         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
24759
24760 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
24761
24762         Rubber-stamped by Rob Buis.
24763
24764         Fixed compile, due to API change in XMLSerializer
24765
24766         * svg/SVGUseElement.cpp:
24767         (WebCore::SVGUseElement::buildPendingResource):
24768
24769 2008-04-30  Rob Buis  <buis@kde.org>
24770
24771         Reviewed by Eric.
24772
24773         https://bugs.webkit.org/show_bug.cgi?id=11939
24774         Quirksmode: Ignores media types in stylesheet PIs
24775
24776         Transfer the xml-stylesheet pseudo attribute media to the css
24777         stylesheet created from the ProcessingInstruction.
24778
24779         Tests: fast/css/xml-stylesheet-media-processing.xhtml
24780
24781         * css/StyleSheet.cpp:
24782         (WebCore::StyleSheet::setMedia):
24783         * css/StyleSheet.h:
24784         * dom/ProcessingInstruction.cpp:
24785         (WebCore::ProcessingInstruction::checkStyleSheet):
24786         (WebCore::ProcessingInstruction::setCSSStyleSheet):
24787         * dom/ProcessingInstruction.h:
24788
24789 2008-04-29  David D. Kilzer  <ddkilzer@apple.com>
24790
24791         BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
24792
24793         On the buildbot, this is a fatal error:
24794
24795         ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
24796         __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
24797         /usr/bin/libtool: internal link edit command failed
24798
24799         Newer dev tools only produce a warning:
24800
24801         ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
24802
24803         * WebCore.base.exp: Remove hidden symbol from export list.
24804
24805 2008-04-29  David Kilzer  <ddkilzer@apple.com>
24806
24807         Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
24808
24809         * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
24810
24811 2008-04-29  David Kilzer  <ddkilzer@apple.com>
24812
24813         BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
24814
24815         * DerivedSources.make: Removed duplication of targets for
24816         generating CSSPropertyNames.h and CSSValueKeywords.h.
24817         * GNUmakefile.am: Ditto.  Added support for ENABLE_DASHBOARD_SUPPORT.
24818         * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
24819         Made both SVG and non-SVG variables of GENERATOR 6-A use new
24820         DASHBOARDSUPPORTCSSPROPERTIES variable.
24821
24822 2008-04-29  Ada Chan  <adachan@apple.com>
24823
24824         Added missing return.        
24825
24826         * platform/win/COMPtr.h:
24827         (WTF::):
24828
24829 2008-04-29  Alp Toker  <alp@nuanti.com>
24830
24831         GTK+ build fix attempt following breakage in r32700 which
24832         conditionalised dashboard support.
24833
24834         * GNUmakefile.am:
24835
24836 2008-04-29  Adam Roben  <aroben@apple.com>
24837
24838         Restore the beloved COMPtr::operator&
24839
24840         * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
24841         constructor and isHashTableDeletedValue and hashTableDeletedValue
24842         functions.
24843         (WTF::): Changed constructDeletedValue to play nicely with
24844         COMPtr::operator&.
24845
24846 2008-04-29  Adam Roben  <aroben@apple.com>
24847
24848         Fix assertion on launch on Windows
24849
24850         * platform/graphics/win/FontPlatformData.h: Pass
24851         WTF::HashTableDeletedValue to the m_font constructor instead of a
24852         bogus -1 value. This is needed because m_font is a RefPtr.
24853
24854 2008-04-29  Greg Bolsinga  <bolsinga@apple.com>
24855
24856         Reviewed by Darin.
24857
24858         Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
24859
24860         * DerivedSources.make:
24861         * WebCore.DashboardSupport.exp: Added.
24862         * WebCore.base.exp:
24863         * WebCore.xcodeproj/project.pbxproj:
24864         * bindings/js/JSDOMWindowCustom.cpp:
24865         (WebCore::JSDOMWindow::setLocation):
24866         * css/CSSComputedStyleDeclaration.cpp:
24867         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
24868         * css/CSSParser.cpp:
24869         (WebCore::CSSParser::parseValue):
24870         * css/CSSPrimitiveValue.cpp:
24871         (WebCore::CSSPrimitiveValue::cleanup):
24872         (WebCore::CSSPrimitiveValue::cssText):
24873         * css/CSSPropertyNames.in:
24874         * css/CSSStyleSelector.cpp:
24875         (WebCore::CSSStyleSelector::applyProperty):
24876         * css/DashboardRegion.h:
24877         * css/DashboardSupportCSSPropertyNames.in: Added.
24878         * dom/DOMImplementation.cpp:
24879         (WebCore::DOMImplementation::createDocument):
24880         * dom/Document.cpp:
24881         (WebCore::Document::Document):
24882         (WebCore::Document::importNode):
24883         * dom/Document.h:
24884         * html/CanvasRenderingContext2D.cpp:
24885         (WebCore::CanvasRenderingContext2D::fill):
24886         (WebCore::CanvasRenderingContext2D::stroke):
24887         (WebCore::CanvasRenderingContext2D::clip):
24888         * html/CanvasRenderingContext2D.h:
24889         * html/HTMLCanvasElement.cpp:
24890         * html/HTMLCanvasElement.h:
24891         * page/Chrome.cpp:
24892         * page/ChromeClient.h:
24893         * page/Frame.cpp:
24894         (WebCore::Frame::paint):
24895         * page/Frame.h:
24896         * page/FrameView.cpp:
24897         (WebCore::FrameView::layout):
24898         * page/FrameView.h:
24899         * page/Settings.cpp:
24900         (WebCore::Settings::Settings):
24901         * page/Settings.h:
24902         * page/mac/EventHandlerMac.mm:
24903         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
24904         * page/mac/FrameMac.mm:
24905         * page/mac/WebDashboardRegion.h:
24906         * page/mac/WebDashboardRegion.m:
24907         * rendering/RenderLayer.cpp:
24908         (WebCore::RenderLayer::scrollToOffset):
24909         (WebCore::RenderLayer::setHasHorizontalScrollbar):
24910         (WebCore::RenderLayer::setHasVerticalScrollbar):
24911         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
24912         * rendering/RenderObject.cpp:
24913         (WebCore::RenderObject::setStyle):
24914         * rendering/RenderObject.h:
24915         * rendering/RenderStyle.cpp:
24916         (WebCore::StyleRareNonInheritedData::operator==):
24917         (WebCore::RenderStyle::diff):
24918         * rendering/RenderStyle.h:
24919         * xml/XMLHttpRequest.cpp:
24920         (WebCore::XMLHttpRequest::send):
24921         (WebCore::XMLHttpRequest::setRequestHeader):
24922
24923 2008-04-29  Adam Roben  <aroben@apple.com>
24924
24925         Windows build fix
24926
24927         This removes COMPtr::operator&, which didn't jive with HashTable. It
24928         is replaced by COMPtr::adoptionPointer.
24929
24930         Discussed with Darin Adler and Anders Carlsson.
24931
24932         * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
24933
24934 2008-04-29  David Hyatt  <hyatt@apple.com>
24935
24936         Implement the new box-reflect property in CSS.  This property enables real-time reflections on
24937         objects (yes you can reflect <video>!).
24938
24939         Reviewed by Dan Bernstein
24940
24941         Test cases added in fast/reflections/
24942
24943         * GNUmakefile.am:
24944         * WebCore.pro:
24945         * WebCore.xcodeproj/project.pbxproj:
24946         * WebCoreSources.bkl:
24947         * css/CSSComputedStyleDeclaration.cpp:
24948         (WebCore::valueForReflection):
24949         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
24950         * css/CSSParser.cpp:
24951         (WebCore::CSSParser::parseValue):
24952         (WebCore::CSSParser::parseReflect):
24953         (WebCore::BorderImageParseContext::commitBorderImage):
24954         (WebCore::CSSParser::parseBorderImage):
24955         (WebCore::parseGradientColorStop):
24956         (WebCore::CSSParser::parseTransform):
24957         * css/CSSParser.h:
24958         * css/CSSPropertyNames.in:
24959         * css/CSSReflectValue.cpp: Added.
24960         (WebCore::CSSReflectValue::cssText):
24961         * css/CSSReflectValue.h: Added.
24962         (WebCore::CSSReflectValue::CSSReflectValue):
24963         (WebCore::CSSReflectValue::direction):
24964         (WebCore::CSSReflectValue::offset):
24965         (WebCore::CSSReflectValue::mask):
24966         (WebCore::CSSReflectValue::setDirection):
24967         (WebCore::CSSReflectValue::setOffset):
24968         (WebCore::CSSReflectValue::setMask):
24969         * css/CSSStyleSelector.cpp:
24970         (WebCore::CSSStyleSelector::adjustRenderStyle):
24971         (WebCore::CSSStyleSelector::applyProperty):
24972         (WebCore::CSSStyleSelector::mapNinePieceImage):
24973         * css/CSSStyleSelector.h:
24974         * rendering/InlineFlowBox.cpp:
24975         (WebCore::InlineFlowBox::placeBoxesVertically):
24976         (WebCore::InlineFlowBox::paintMask):
24977         * rendering/Length.h:
24978         (WebCore::Length::calcFloatValue):
24979         * rendering/RenderBlock.cpp:
24980         (WebCore::RenderBlock::overflowHeight):
24981         (WebCore::RenderBlock::overflowWidth):
24982         (WebCore::RenderBlock::overflowLeft):
24983         (WebCore::RenderBlock::overflowTop):
24984         (WebCore::RenderBlock::overflowRect):
24985         (WebCore::RenderBlock::layoutBlock):
24986         * rendering/RenderBox.cpp:
24987         (WebCore::RenderBox::setStyle):
24988         (WebCore::RenderBox::paintMask):
24989         (WebCore::RenderBox::imageChanged):
24990         (WebCore::RenderBox::computeAbsoluteRepaintRect):
24991         * rendering/RenderFlexibleBox.cpp:
24992         (WebCore::RenderFlexibleBox::layoutBlock):
24993         * rendering/RenderLayer.cpp:
24994         (WebCore::RenderLayer::RenderLayer):
24995         (WebCore::RenderLayer::~RenderLayer):
24996         (WebCore::RenderLayer::updateLayerPositions):
24997         (WebCore::RenderLayer::enclosingPositionedAncestor):
24998         (WebCore::RenderLayer::enclosingTransformedAncestor):
24999         (WebCore::RenderLayer::isTransparent):
25000         (WebCore::transparencyClipBox):
25001         (WebCore::RenderLayer::operator delete):
25002         (WebCore::RenderLayer::destroy):
25003         (WebCore::RenderLayer::removeOnlyThisLayer):
25004         (WebCore::RenderLayer::insertOnlyThisLayer):
25005         (WebCore::RenderLayer::paintLayer):
25006         (WebCore::RenderLayer::updateZOrderLists):
25007         (WebCore::RenderLayer::updateOverflowList):
25008         (WebCore::RenderLayer::collectLayers):
25009         (WebCore::RenderLayer::shouldBeOverflowOnly):
25010         (WebCore::RenderLayer::styleChanged):
25011         (WebCore::RenderLayer::reflectionLayer):
25012         (WebCore::RenderLayer::createReflection):
25013         (WebCore::RenderLayer::updateReflectionStyle):
25014         * rendering/RenderLayer.h:
25015         (WebCore::RenderLayer::hasReflection):
25016         (WebCore::RenderLayer::reflection):
25017         (WebCore::RenderLayer::paintingInsideReflection):
25018         * rendering/RenderObject.cpp:
25019         (WebCore::RenderObject::RenderObject):
25020         (WebCore::RenderObject::requiresLayer):
25021         (WebCore::RenderObject::setStyle):
25022         (WebCore::RenderObject::updateImage):
25023         (WebCore::RenderObject::reflectionBox):
25024         (WebCore::RenderObject::reflectionOffset):
25025         * rendering/RenderObject.h:
25026         (WebCore::RenderObject::hasTransform):
25027         (WebCore::RenderObject::setHasReflection):
25028         (WebCore::RenderObject::hasReflection):
25029         * rendering/RenderReplica.cpp: Added.
25030         (WebCore::RenderReplica::RenderReplica):
25031         (WebCore::RenderReplica::~RenderReplica):
25032         (WebCore::RenderReplica::layout):
25033         (WebCore::RenderReplica::calcPrefWidths):
25034         (WebCore::RenderReplica::paint):
25035         * rendering/RenderReplica.h: Added.
25036         (WebCore::RenderReplica::renderName):
25037         (WebCore::RenderReplica::requiresLayer):
25038         * rendering/RenderStyle.cpp:
25039         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
25040         (WebCore::StyleRareNonInheritedData::operator==):
25041         (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
25042         (WebCore::RenderStyle::diff):
25043         (WebCore::RenderStyle::applyTransform):
25044         * rendering/RenderStyle.h:
25045         (WebCore::TranslateTransformOperation::apply):
25046         (WebCore::StyleReflection::StyleReflection):
25047         (WebCore::StyleReflection::operator==):
25048         (WebCore::StyleReflection::operator!=):
25049         (WebCore::StyleReflection::direction):
25050         (WebCore::StyleReflection::offset):
25051         (WebCore::StyleReflection::mask):
25052         (WebCore::StyleReflection::setDirection):
25053         (WebCore::StyleReflection::setOffset):
25054         (WebCore::StyleReflection::setMask):
25055         (WebCore::RenderStyle::boxReflect):
25056         (WebCore::RenderStyle::setBoxReflect):
25057         (WebCore::RenderStyle::initialBoxReflect):
25058         * rendering/RenderTable.cpp:
25059         (WebCore::RenderTable::layout):
25060         (WebCore::RenderTable::paintMask):
25061         * rendering/RenderTableCell.cpp:
25062         (WebCore::RenderTableCell::requiresLayer):
25063         (WebCore::RenderTableCell::paintMask):
25064
25065 2008-04-29  Beth Dakin  <bdakin@apple.com>
25066
25067         Reviewed by Alice.
25068
25069         Initial implementation of the following ARIA roles: button, 
25070         checkbox, heading, link, radio, textbox.
25071
25072         * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
25073
25074         * page/AccessibilityObject.cpp:
25075          When an ARIA role is set, the role overrides whatever the actual 
25076 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
25077         (WebCore::AccessibilityObject::isWebArea):
25078         (WebCore::AccessibilityObject::isImageButton):
25079         (WebCore::AccessibilityObject::isAnchor):
25080         (WebCore::AccessibilityObject::isTextControl):
25081         (WebCore::AccessibilityObject::isImage):
25082         (WebCore::AccessibilityObject::isAttachment):
25083         (WebCore::AccessibilityObject::isPasswordField):
25084         (WebCore::AccessibilityObject::isCheckboxOrRadio):
25085         (WebCore::AccessibilityObject::isHeading):
25086         (WebCore::AccessibilityObject::isLink):
25087
25088         Check for ARIA information:
25089         (WebCore::AccessibilityObject::headingLevel):
25090         (WebCore::AccessibilityObject::anchorElement):
25091         (WebCore::AccessibilityObject::actionElement):
25092         (WebCore::AccessibilityObject::hasIntValue):
25093         (WebCore::AccessibilityObject::intValue):
25094         (WebCore::AccessibilityObject::stringValue):
25095         (WebCore::AccessibilityObject::title):
25096         (WebCore::AccessibilityObject::accessibilityIsIgnored):
25097         (WebCore::AccessibilityObject::roleValue):
25098
25099         There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
25100         (WebCore::AccessibilityObject::isNativeImage):
25101         (WebCore::AccessibilityObject::isNativeTextControl):
25102         (WebCore::isARIAInput):
25103         (WebCore::isARIAControl):
25104
25105         A lot of spots in the code used to cast to RenderTextControl to get information about the text inside the element. Now that non-native text controls can run this code with the ARIA role 'textbox', it needs to be as general as possible. 
25106         (WebCore::AccessibilityObject::text): Still calls into 
25107         RenderTextControl's text() for native text controls. Uses Element's 
25108         innerText() for ARIA textboxes.
25109         (WebCore::AccessibilityObject::textLength): Call 
25110         AccessibilityObject's text() instead of RenderTextControl's.
25111         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
25112         (WebCore::AccessibilityObject::selectedText):
25113         (WebCore::AccessibilityObject::selectedTextRange):
25114         (WebCore::AccessibilityObject::selectionStart):
25115         (WebCore::AccessibilityObject::selectionEnd):
25116         (WebCore::AccessibilityObject::setSelectedTextRange):
25117         (WebCore::AccessibilityObject::setValue):
25118         (WebCore::AccessibilityObject::visiblePositionForIndex):
25119         (WebCore::AccessibilityObject::indexForVisiblePosition):
25120         (WebCore::AccessibilityObject::textMarkerRangeForRange):
25121         (WebCore::AccessibilityObject::textMarkerForIndex):
25122         (WebCore::AccessibilityObject::indexForTextMarker):
25123         (WebCore::AccessibilityObject::doAXRangeForLine):
25124         (WebCore::AccessibilityObject::doAXRangeForIndex):
25125         (WebCore::AccessibilityObject::doAXStringForRange):
25126         (WebCore::AccessibilityObject::doAXBoundsForRange):
25127         
25128         Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
25129         (WebCore::AccessibilityObject::ariaRoleAttribute):
25130         
25131         Added several new functions. Most of them existed before but were static, or have been added to reduce the dependency on RenderTextControl for a lot of the text functionality.
25132         * page/AccessibilityObject.h:
25133
25134         Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
25135         * page/mac/AccessibilityObjectWrapper.mm:
25136         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
25137         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
25138
25139 2008-04-29  Timothy Hatcher  <timothy@apple.com>
25140
25141         Make the exceptions that the InspectorController catches log the
25142         original file and line number, if present on the exception object.
25143
25144         Reviewed by Adam Roben.
25145
25146         * page/InspectorController.cpp:
25147         (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
25148         (WebCore::InspectorController::~InspectorController): Ditto.
25149         (WebCore::InspectorController::scriptObjectReady): Ditto.
25150         (WebCore::InspectorController::addScriptResource): Ditto.
25151         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
25152         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
25153         (WebCore::InspectorController::updateScriptResource): Ditto.
25154         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
25155         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
25156         (WebCore::InspectorController::handleException): Take a context. Pull the line
25157         and sourceURL properties off the exception if it is an object.
25158         * page/InspectorController.h: Change handleException to take a context.
25159
25160 2008-04-29  Timothy Hatcher  <timothy@apple.com>
25161
25162         Fixes a regression where the Page's debugger would not be reattached
25163         when a new JSDOMWindow is created.
25164
25165         Reviewed by Sam Weinig.
25166
25167         * bindings/js/kjs_proxy.cpp:
25168         (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
25169         * history/CachedPage.cpp:
25170         (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
25171         contain a window, reattach the debugger to the new JSDOMWindow by calling
25172         proxy->attachDebugger. Also restore the setPageGroupIdentifier.
25173
25174 2008-04-29  Anatoli Papirovski  <apapirovski@mac.com>
25175
25176         Reviewed by Darin Adler.
25177
25178         Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
25179         Fixed RGB and RGBA parsing to ignore the declaration when the value is not
25180         "either three integer values or three percentage values."
25181
25182         * css/CSSParser.cpp:
25183         (WebCore::CSSParser::parseColorParameters):
25184
25185 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
25186
25187         Reviewed by Simon.
25188
25189         Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
25190
25191         Ben found this crash in the demo browser.
25192
25193         In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
25194
25195         case PolicyDownload:
25196         frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
25197         receivedError(interruptionForPolicyChangeError());
25198
25199         We are in a policy check, the download() call will call setHtml, which will start loading
25200         the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
25201         which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
25202         will use the m_frame->loader() but it is gone. Do not call into receivedError and
25203         interruptionForPolicyChangeError if we are gone anyway...
25204
25205         * loader/MainResourceLoader.cpp:
25206         (WebCore::MainResourceLoader::continueAfterContentPolicy):
25207
25208 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
25209
25210         Reviewed by Simon.
25211
25212         Rely on auto-boxing of C++ for the QCursor c'tor
25213
25214         * platform/qt/CursorQt.cpp:
25215
25216 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
25217
25218         Reviewed by Simon.
25219
25220         Add the remaining cursors that defaulted to PointerCursor
25221
25222         * Resources/WebKitResources.qrc:
25223         * platform/qt/CursorQt.cpp:
25224         (WebCore::verticalTextCursor):
25225         (WebCore::cellCursor):
25226         (WebCore::contextMenuCursor):
25227         (WebCore::copyCursor):
25228         (WebCore::progressCursor):
25229         (WebCore::aliasCursor):
25230
25231 2008-04-29  Alice Liu  <alice.liu@apple.com>
25232
25233         Reviewed by Beth Dakin.
25234
25235         Comply with HTML5 spec about parsing tabindex property according to
25236         integer parsing rules
25237
25238         Test: fast/parser/tabindex-parsing.html
25239
25240         * html/HTMLElement.cpp:
25241         (WebCore::HTMLElement::parseMappedAttribute):
25242
25243 2008-04-29  Tor Arne Vestbø  <tavestbo@trolltech.com>
25244
25245         Reviewed by Simon.
25246
25247         Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
25248
25249         https://bugs.webkit.org/show_bug.cgi?id=18482
25250
25251         We need to repaint scrollbars after a geometry change, and also make sure
25252         the computed clipping rect for the corners between scrollbars is propagated
25253         to the chrome client without beeing intersected by the visible content rect
25254         of the frame.
25255
25256         * platform/ScrollView.h:
25257         * platform/qt/ScrollViewQt.cpp:
25258         (WebCore::ScrollView::geometryChanged):
25259         (WebCore::ScrollView::suppressScrollbars):
25260         (WebCore::ScrollView::invalidateScrollbars):
25261
25262 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
25263
25264         Reviewed by Simon.
25265
25266         Calling QWebView::setCursor will override the WebCore Cursor.
25267         Calling QWebView::setCursor will override the WebCore Cursor using
25268         QWidget::unsetCursor will revert to the WebCore Cursor.
25269
25270         For detecting the unset we have to compare the shape of the
25271         cursor to the default arrow. Qt::WA_SetCursor can not be used
25272         as it is set unconditionally but conditionally removed.
25273
25274         Calling QWidget::setCursor will immediately send the CursorChange
25275         event. We listen to this event to decide if we currently use a
25276         WebCore cursor, got a cursor from outside, or revert to the default.
25277
25278         This should be race free and work reliable, the manual test for this
25279         is WebCore/manual-tests/cursor.html
25280
25281         * platform/qt/WidgetQt.cpp:
25282         (WebCore::Widget::setCursor):
25283
25284 2008-04-28  Dan Bernstein  <mitz@apple.com>
25285
25286         Reviewed by Maciej Stachowiak.
25287
25288         - fix https://bugs.webkit.org/show_bug.cgi?id=18795
25289           REGRESSION (r32660): Text heavier with text-shadow
25290
25291         * rendering/InlineTextBox.cpp:
25292         (WebCore::paintTextWithShadows): The loop was doing one extra pass
25293         without shadow even in cases where the last pass with a shadow was
25294         painting the text at the right position (rather than outside the clip).
25295         Fixed that. The only case where a separate pass without shadow is needed
25296         is when there is text-stroke, since in that case all shadow passes
25297         paint the text outside the clip.
25298
25299 2008-04-28  Brady Eidson <beidson@apple.com>
25300
25301         Reviewed by Sam Weinig
25302
25303         Add Storage.clear(), per updates to HTML5
25304
25305         Tests: storage/domstorage/localstorage/clear.html
25306                storage/domstorage/sessionstorage/clear.html
25307
25308         * storage/LocalStorageArea.cpp:
25309         (WebCore::LocalStorageArea::areaCleared):
25310         * storage/LocalStorageArea.h:
25311
25312         * storage/SessionStorageArea.cpp:
25313         (WebCore::SessionStorageArea::areaCleared):
25314         * storage/SessionStorageArea.h:
25315
25316         * storage/Storage.cpp:
25317         (WebCore::Storage::clear):
25318         * storage/Storage.h:
25319         * storage/Storage.idl:
25320
25321         * storage/StorageArea.cpp:
25322         (WebCore::StorageArea::internalClear):
25323         * storage/StorageArea.h:
25324         (WebCore::StorageArea::clear):
25325
25326 2008-04-28  Adele Peterson  <adele@apple.com>
25327
25328         Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
25329
25330         WebCore part of fix for <rdar://problem/3709505>
25331         Safari should have a way to upload bundles from the file upload control (as zip)
25332
25333         * WebCore.base.exp: Added symbols.
25334
25335         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
25336           It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
25337
25338         * loader/FrameLoader.cpp:
25339         (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
25340         (WebCore::FrameLoader::loadItem): ditto.
25341         * loader/ResourceLoader.cpp:
25342         (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
25343         (WebCore::ResourceLoader::didCancel): ditto.
25344         (WebCore::ResourceLoader::didFail): ditto.
25345
25346         * platform/network/FormData.cpp:
25347         (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
25348         (WebCore::FormData::~FormData): Added.  Assert that there are no files that need to be removed, but if there are, release builds will still remove them here.
25349         (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
25350         (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
25351          create any compressed files so the FormDataElements can store the paths.
25352         (WebCore::FormData::removeGeneratedFilesIfNeeded): Added.  Removes generated files and their directories (if empty).
25353         * platform/network/FormData.h:
25354         (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
25355          and a string to hold the path of the generated file.
25356
25357         * platform/network/mac/FormDataStreamMac.mm:
25358         (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
25359         (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
25360
25361         * platform/FileSystem.h: Added directoryName.
25362         * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
25363         * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
25364         * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
25365         * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
25366         * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
25367
25368         Added new ChromeClient methods to give the application control over the file compression for uploading.
25369         * page/Chrome.cpp:
25370         (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
25371         (WebCore::ChromeClient::generateReplacementFile): ditto.
25372         * page/ChromeClient.h:
25373
25374 2008-04-28  Anders Carlsson  <andersca@apple.com>
25375
25376         Reviewed by Sam, Mark, Adele and Darin.
25377
25378         Add a (currently not called) method for opening the application cache database.
25379         
25380         * WebCore.base.exp:
25381         * loader/appcache/ApplicationCacheStorage.cpp:
25382         (WebCore::ApplicationCacheStorage::setCacheDirectory):
25383         (WebCore::ApplicationCacheStorage::openDatabase):
25384         * loader/appcache/ApplicationCacheStorage.h:
25385
25386 2008-04-28  Alice Liu  <alice.liu@apple.com>
25387
25388         Reviewed by Darin.
25389
25390         Fix <rdar://problem/4911289> Add tabindex property to all children 
25391         of HTMLElement (7138)
25392         http://bugs.webkit.org/show_bug.cgi?id=7138
25393
25394         Test: fast/events/tabindex-focus-blur-all.html
25395
25396         * WebCore.xcodeproj/project.pbxproj:
25397         * bindings/objc/DOMPrivate.h:
25398         -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
25399          longer needed
25400
25401         * bindings/objc/PublicDOMInterfaces.h:
25402         -Moving focus, blur, tabindex to HTMLElement from its descendants.
25403
25404         * dom/Node.cpp:
25405         (WebCore::Node::Node):
25406         (WebCore::Node::isFocusable):
25407         (WebCore::Node::isKeyboardFocusable):
25408         -The concept of being focusable now needs to account for tabindex
25409         attribute.
25410
25411         * dom/Node.h:
25412         -Need to use a bit to keep track of whether tabindex was explicitly set
25413          to 0 or was just initialized to 0.
25414         (WebCore::Node::tabIndex):
25415         -Make this virtual so that Anchors and GenericFormElements can determine
25416          tabindex without accounting for focusability
25417         (WebCore::Node::setTabIndexExplicitly):
25418         -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
25419          behind and/or be confused for HTMLElement::setTabIndex
25420
25421         * html/HTMLAnchorElement.cpp:
25422         * html/HTMLAnchorElement.h:
25423         (WebCore::HTMLAnchorElement::tabIndex):
25424         * html/HTMLGenericFormElement.cpp:
25425         * html/HTMLGenericFormElement.h:
25426         (WebCore::HTMLGenericFormElement::tabIndex):
25427         -Anchors and form elements are normally focusable, and need to avert the
25428          check for focusability in HTMLElement::tabIndex
25429          because tabIndex could be queried before a first layout happens.
25430
25431         * html/HTMLElement.cpp:
25432         (WebCore::HTMLElement::parseMappedAttribute):
25433         -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
25434         (WebCore::HTMLElement::isFocusable):
25435         -The concept of being focusable now needs to account for tabindex
25436          attribute.
25437         (WebCore::HTMLElement::tabIndex):
25438         -HTML5 specifies that querying tabindex for elements that aren't
25439          focusable shall return -1
25440         (WebCore::HTMLElement::setTabIndex):
25441         -New default implementation
25442         * html/HTMLElement.h:
25443
25444         * html/HTMLLegendElement.cpp:
25445         (WebCore::HTMLLegendElement::focus):
25446         -Now with HTML5's enhanced specification of tabindex, legend elements
25447          themselves shall focus (if they should), and not the first form element 
25448          they encapsulate.  This matches Firefox behavior.  HTMLLabelElements
25449          still forward focus to the encapsulated element.  This also matches
25450          other browsers. 
25451
25452         * html/HTMLAreaElement.cpp:
25453         (WebCore::HTMLAreaElement::isFocusable):
25454         * html/HTMLAreaElement.h:
25455         -HTMLAreaElement isn't subject to the same focusability requirements as
25456          its parent, HTMLAnchorElement. Default HTMLElement implementation is
25457          desired.  
25458
25459         * html/HTMLFieldSetElement.cpp:
25460         (WebCore::HTMLFieldSetElement::isFocusable):
25461         * html/HTMLLegendElement.cpp:
25462         (WebCore::HTMLLegendElement::isFocusable):
25463         * html/HTMLOptGroupElement.cpp:
25464         (WebCore::HTMLOptGroupElement::isFocusable):
25465         * html/HTMLOptionElement.cpp:
25466         (WebCore::HTMLOptionElement::isFocusable):
25467         -These elements aren't subject to the same focusability requirements as
25468          their parent, HTMLGenericFormElement. Default HTMLElement 
25469          implementation is desired.  
25470
25471         * html/HTMLAnchorElement.idl:
25472         * html/HTMLAreaElement.idl:
25473         * html/HTMLButtonElement.idl:
25474         * html/HTMLElement.idl:
25475         * html/HTMLInputElement.idl:
25476         * html/HTMLLabelElement.idl:
25477         * html/HTMLLegendElement.idl:
25478         * html/HTMLObjectElement.idl:
25479         * html/HTMLSelectElement.idl:
25480         * html/HTMLTextAreaElement.idl:
25481         -Moving tabindex attribute, focus and blur methods from descendants of
25482          HTMLElement to HTMLElement
25483
25484 2008-04-28  Dan Bernstein  <mitz@apple.com>
25485
25486         Reviewed by Dave Hyatt.
25487
25488         - support multiple box- and text-shadows
25489
25490         Tests: fast/css/shadow-multiple.html
25491                fast/repaint/shadow-multiple-horizontal.html
25492                fast/repaint/shadow-multiple-strict-horizontal.html
25493                fast/repaint/shadow-multiple-strict-vertical.html
25494                fast/repaint/shadow-multiple-vertical.html
25495
25496         * css/CSSComputedStyleDeclaration.cpp:
25497         (WebCore::valueForShadow): Changed to account for reversing the order
25498         of the shadow values in the ShadowData list.
25499
25500         * css/CSSValueList.cpp:
25501         (WebCore::CSSValueList::prepend): Added.
25502         * css/CSSValueList.h:
25503
25504         * rendering/InlineFlowBox.cpp:
25505         (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
25506         all shadows in overflow calculation.
25507         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
25508         (WebCore::InlineFlowBox::paint): Changed to account for all shadows
25509         when testing for intersection with the damage rect.
25510         (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
25511         shadows.
25512
25513         * rendering/InlineTextBox.cpp:
25514         (WebCore::paintTextWithShadows): Factored out from paint() and changed
25515         to paint all shadows.
25516         (WebCore::InlineTextBox::paint): Moved the text painting code out to
25517         paintTextWithShadows(). Changed to not paint shadows for markers and
25518         composition underlines and in "force black text" mode.
25519         (WebCore::InlineTextBox::paintSelection):
25520         (WebCore::InlineTextBox::paintCompositionBackground):
25521         (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
25522         * rendering/InlineTextBox.h: Changed some public methods to private
25523         or protected.
25524
25525         * rendering/RenderBlock.cpp:
25526         (WebCore::RenderBlock::overflowHeight): Changed to account for all
25527         shadows.
25528         (WebCore::RenderBlock::overflowWidth): Ditto.
25529         (WebCore::RenderBlock::overflowLeft): Ditto.
25530         (WebCore::RenderBlock::overflowTop): Ditto.
25531         (WebCore::RenderBlock::overflowRect): Ditto.
25532         (WebCore::RenderBlock::layoutBlock): Ditto.
25533
25534         * rendering/RenderFlexibleBox.cpp:
25535         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
25536
25537         * rendering/RenderLayer.cpp:
25538         (WebCore::RenderLayer::calculateRects): Ditto.
25539
25540         * rendering/RenderObject.cpp:
25541         (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows.
25542         Changed to avoid clipping out the box if it has a fully opaque
25543         background.
25544         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
25545         for all shadows.
25546         (WebCore::RenderObject::selectionForegroundColor): Cleaned up.
25547         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to
25548         account for all shadows.
25549
25550         * rendering/RenderReplaced.cpp:
25551         (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
25552
25553         * rendering/RenderStyle.cpp:
25554         (WebCore::RenderStyle::setTextShadow): Changed to prepend when adding
25555         so that the stacking order of shadows when painting will be "first o
25556         top".
25557         (WebCore::RenderStyle::setBoxShadow): Ditto.
25558
25559         * rendering/RenderTable.cpp:
25560         (WebCore::RenderTable::layout): Changed to account for all shadows.
25561
25562 2008-04-28  Adam Roben  <aroben@apple.com>
25563
25564         Fix some more Windows build errors in COMPtr
25565
25566         * platform/win/COMPtr.h:
25567         (WTF::): Define DefaultHash<COMPtr<P> > by using PtrHash<COMPtr<P> >,
25568         which is just a copy of PtrHash<RefPtr<P> >.
25569
25570 2008-04-28  Adam Roben  <aroben@apple.com>
25571
25572         Fix some Windows build errors in COMPtr
25573
25574         * platform/win/COMPtr.h: Explicitly name the WTF namespace when using
25575         HashTableDeletedValueType.
25576
25577 2008-04-28  Adam Roben  <aroben@apple.com>
25578
25579         Fix some Windows build errors in FontPlatfomrData
25580
25581         * platform/graphics/win/FontPlatformData.h: Removed the Deleted
25582         constructor and replaced it with a HashTableDeletedValueType
25583         constructor. Also added isHashTableDeletedValue() and
25584         hashTableDeletedFontValue().
25585
25586 2008-04-28  David Hyatt  <hyatt@apple.com>
25587
25588         https://bugs.webkit.org/show_bug.cgi?id=18780
25589
25590         Canvas can't draw itself into its own buffer.  Make sure the dirtying call comes after the image()
25591         has been accessed.  Technically willDraw should be renamed to didDraw and all calls should be moved
25592         to after draws have occurred (since if the draw op itself wants to reference the image it shouldn't get
25593         a dirty copy either), but I'll take that up with olliej when he wakes up. :)
25594
25595         Reviewed by Dan Bernstein
25596
25597         Added fast/canvas/canvasDrawsIntoSelf.html
25598
25599         * html/CanvasRenderingContext2D.cpp:
25600         (WebCore::CanvasRenderingContext2D::drawImage):
25601
25602 2008-04-28  Alexey Proskuryakov  <ap@webkit.org>
25603
25604         Reviewed by Geoff Garen.
25605
25606         <rdar://problem/5825192> Replace use of Gestalt with BSD sysctl
25607
25608         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
25609         (WebCore::MediaPlayerPrivate::isAvailable): There is no need to check QuickTime version post-Tiger,
25610         as it will never be below 7.3 again. This change may make library loading happen earlier in
25611         some cases, hopefully, that's not a big deal.
25612
25613 2008-04-25  Alexey Proskuryakov  <ap@webkit.org>
25614
25615         Reviewed by Darin.
25616
25617         Fix run-webkit-tests --threading
25618         and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
25619         Proxy server issue in Sunday's Nightly
25620
25621         Adjusted for JavaScriptCore changes: added a new member to ClassInfo objects, turned
25622         ClassInfo::propHashTable into a function, made getPropertyAttributes() take an ExecState pointer.
25623
25624         * bindings/js/JSAudioConstructor.cpp:
25625         * bindings/js/JSDOMWindowBase.cpp:
25626         * bindings/js/JSDOMWindowCustom.cpp:
25627         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
25628         * bindings/js/JSDOMWindowWrapper.cpp:
25629         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
25630         * bindings/js/JSDOMWindowWrapper.h:
25631         * bindings/js/JSEventTargetBase.h:
25632         (WebCore::JSEventTargetPrototype::classInfo):
25633         * bindings/js/JSHTMLInputElementBase.cpp:
25634         * bindings/js/JSHTMLOptionElementConstructor.cpp:
25635         * bindings/js/JSHistoryCustom.cpp:
25636         (WebCore::JSHistory::customGetOwnPropertySlot):
25637         * bindings/js/JSImageConstructor.cpp:
25638         * bindings/js/JSInspectedObjectWrapper.cpp:
25639         * bindings/js/JSInspectorCallbackWrapper.cpp:
25640         * bindings/js/JSLocationCustom.cpp:
25641         (WebCore::JSLocation::customGetOwnPropertySlot):
25642         (WebCore::JSLocation::customPut):
25643         * bindings/js/JSNamedNodesCollection.cpp:
25644         * bindings/js/JSQuarantinedObjectWrapper.cpp:
25645         * bindings/js/JSRGBColor.cpp:
25646         * bindings/js/JSStorageCustom.cpp:
25647         (WebCore::JSStorage::customPut):
25648         * bindings/js/JSXMLHttpRequestConstructor.cpp:
25649         * bindings/js/JSXSLTProcessor.cpp:
25650         * bindings/scripts/CodeGeneratorJS.pm:
25651         * bridge/objc/objc_runtime.mm:
25652         * bridge/runtime_array.cpp:
25653         * bridge/runtime_object.cpp:
25654
25655 2008-04-28  David Hyatt  <hyatt@apple.com>
25656
25657         https://bugs.webkit.org/show_bug.cgi?id=18779
25658
25659         The arguments in drawImage were reversed when I switched away from the image buffer method.
25660
25661         Reviewed by Tim Hatcher
25662
25663         Added fast/canvas/drawImage.html
25664
25665         * html/CanvasRenderingContext2D.cpp:
25666         (WebCore::CanvasRenderingContext2D::drawImage):
25667
25668 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
25669
25670         Reviewed by Simon.
25671
25672         Fix the crash on http://www.orad.pl. We called end too early.
25673
25674         1. we need a ::write that will pause the parser due a pending
25675         script
25676         2. we need a second write to queue data (tricky part)
25677         3. we need to get a finish call (document loaded)
25678         4. we resume the script and parse, schedule loading of a new script
25679         and have called end
25680         5. we resume the new script and we get a crash
25681
25682         This bug is hard to trigger, e.g. if the web server is only allowing
25683         one connection per client/IP. This is why we need to sleep in the scripts. We
25684         want to make sure that the page is first fully received before serving the
25685         scripts.
25686
25687         Test: http/tests/misc/xmltokenizer-do-not-crash.pl
25688
25689         * dom/XMLTokenizer.cpp:
25690
25691 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
25692
25693         Reviewed by Simon.
25694
25695         Fix rounded corner on combo box with CSS border
25696
25697         * platform/qt/RenderThemeQt.cpp:
25698         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
25699
25700 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
25701
25702         Reviewed by Simon.
25703
25704         Fix CSS border does not show up for combo boxes
25705
25706         Do not clear the border when painting the combo box for 'select' form element
25707
25708         * platform/qt/RenderThemeQt.cpp:
25709
25710 2008-04-28  Olivier Goffart  <ogoffart@trolltech.com>
25711
25712         Reviewed by Simon.
25713
25714         Avoid comparing to 0 in qFuzzyCompare for increased
25715         numeric stability.
25716
25717         * platform/graphics/qt/PathQt.cpp:
25718         (WebCore::Path::addArc):
25719
25720 2008-04-28  Benjamin Meyer  <bmeyer@trolltech.com>
25721
25722         Reviewed by Simon.
25723
25724         Fixes: Pages returning 404 with content are not displayed.
25725
25726         A web page that returns 404 can still have content.
25727
25728         * platform/network/qt/QNetworkReplyHandler.cpp:
25729         (WebCore::QNetworkReplyHandler::finish):
25730
25731 2008-04-28  Paul Olav Tvete  <paul@trolltech.com>
25732
25733         Reviewed by Simon.
25734
25735         Fix compiler warning; Avoid the implicity QString(const char *)
25736         constructor
25737
25738         * platform/qt/RenderThemeQt.cpp:
25739         (WebCore::RenderThemeQt::fallbackStyle):
25740
25741 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
25742
25743         Reviewed by Simon.
25744
25745         Prevent middle-click from triggering open URL from clipboard when the event has already been accepted.
25746
25747         * platform/qt/PlatformScrollBarQt.cpp:
25748         (WebCore::PlatformScrollbar::handleMousePressEvent):
25749
25750 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
25751
25752         Reviewed by Simon.
25753
25754         Fix scrollbar behavior in QtWebKit to match QScrollBar.
25755
25756         Right click context menu is now supported, along with
25757         middle click to center slider thumb over mouse cursor.
25758
25759         * platform/qt/PlatformScrollBar.h:
25760         * platform/qt/PlatformScrollBarQt.cpp:
25761         (tr):
25762         (WebCore::PlatformScrollbar::pixelPosToRangeValue):
25763         (WebCore::PlatformScrollbar::handleMousePressEvent):
25764         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
25765         (WebCore::PlatformScrollbar::handleContextMenuEvent):
25766
25767 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
25768
25769         Reviewed by Simon.
25770
25771         Implemented channel-based logging for QtWebKit.
25772
25773         Comma-separated log channels are read from the QT_WEBKIT_LOG environment variable.
25774         Warnings for notImplemented() is still output by default, but can be disabled
25775         by setting DISABLE_NI_WARNINGS=1.
25776
25777         * WebCore.pro:
25778         * platform/NotImplemented.h:
25779         * platform/qt/LoggingQt.cpp: Added.
25780         (WebCore::getChannelFromName):
25781         (WebCore::InitializeLoggingChannelsIfNecessary):
25782
25783 2008-04-28  Simon Hausmann  <shausman@trolltech.com>
25784
25785         Reviewed by Holger.
25786
25787         Fixes: Popups/Context menu in WebKit appearing at the wrong location when embedded in the graphics view or using multiple screens
25788
25789         Give the popups the right parent widget and the right coordinates relative within the parent.
25790
25791         * platform/qt/PopupMenuQt.cpp:
25792         (WebCore::PopupMenu::show):
25793
25794 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
25795
25796         Reviewed by Simon.
25797
25798         Fixes: Tabbing to a checkbox/button doesn't work on Win/X11
25799
25800         Respect platform settings for tabbing to all controls.
25801
25802         * page/qt/EventHandlerQt.cpp:
25803
25804 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
25805
25806         Reviewed by Simon.
25807
25808         First part of the fix for tabbing to a checkbox/button doesn't work on Win/X11
25809
25810         Draw controls instead of pimitive elements, to get focus rects for free.
25811
25812         * platform/qt/RenderThemeQt.cpp:
25813         (WebCore::RenderThemeQt::paintButton):
25814
25815 2008-04-28  Lincoln Ramsay  <lincoln.ramsay@trolltech.com>
25816
25817         Reviewed by Simon.
25818
25819         Compile when QT_NO_CLIPBOARD is defined.
25820
25821         * platform/qt/ClipboardQt.cpp:
25822         (WebCore::ClipboardQt::ClipboardQt):
25823         (WebCore::ClipboardQt::clearData):
25824         (WebCore::ClipboardQt::clearAllData):
25825         (WebCore::ClipboardQt::setData):
25826         (WebCore::ClipboardQt::declareAndWriteDragImage):
25827         (WebCore::ClipboardQt::writeURL):
25828         (WebCore::ClipboardQt::writeRange):
25829         * platform/qt/PasteboardQt.cpp:
25830         (WebCore::Pasteboard::writeSelection):
25831         (WebCore::Pasteboard::plainText):
25832         (WebCore::Pasteboard::documentFragment):
25833         (WebCore::Pasteboard::writeURL):
25834         (WebCore::Pasteboard::writeImage):
25835
25836 2008-04-28  Ariya Hidayat  <ariya.hidayat@trolltech.com>
25837
25838         Reviewed by Simon.
25839
25840         Draw the arrow button on the styled combo box using the fallback ("Windows") style
25841
25842         * platform/qt/RenderThemeQt.cpp:
25843         (WebCore::RenderThemeQt::RenderThemeQt):
25844         (WebCore::RenderThemeQt::~RenderThemeQt):
25845         (WebCore::RenderThemeQt::fallbackStyle):
25846         (WebCore::RenderThemeQt::paintMenuListButton):
25847         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
25848         * platform/qt/RenderThemeQt.h:
25849
25850 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
25851
25852         Reviewed by Holger.
25853
25854         Fix positioning of native widgets (plugins).
25855
25856         Correctly convert the coordinates of the Widget in Widget::setFrameGeometry()
25857         to be relative to the containing toplevel QWidget using convertToContainingWindow().
25858
25859         Note: convertToContainingWindow() takes child coordinates.
25860
25861         * platform/qt/WidgetQt.cpp:
25862         (WebCore::Widget::frameGeometry):
25863         (WebCore::Widget::setFrameGeometry):
25864
25865 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
25866
25867         Reviewed by Simon.
25868
25869         plugins: fix scrolling issues
25870
25871         When scrolling you can see artefacts that remain on the screen, they
25872         seem to originate from the backingstore handling. I'm not entirely sure
25873         where they come from, my workarounds involved a
25874         data->m_widget->parentWidget()->update() call in Widget::geometryChanged or
25875         handling widgets with a native QWidget embedded like web pages with a
25876         static background. This needs more investigations, I think the ScrollView
25877         change is cleaner than the brute force in Widget::geometryChanged
25878
25879         Focus handling seems to be broken as well and needs further work, we don't
25880         clip plugin QWidgets and they can draw out of their bounds, e.g. on the ScrollBar,
25881         the z-order is likely not honored as well.
25882
25883         * platform/ScrollView.h:
25884         * platform/qt/ScrollViewQt.cpp:
25885         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
25886         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
25887         (WebCore::ScrollView::addChild):
25888         (WebCore::ScrollView::removeChild):
25889         (WebCore::ScrollView::incrementNativeWidgetCount):
25890         (WebCore::ScrollView::decrementNativeWidgetCount):
25891         (WebCore::ScrollView::hasNativeWidgets):
25892
25893 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
25894
25895         Reviewed by Simon.
25896
25897         Add manual test to test placement of QWidgets in iframe's
25898
25899         * manual-tests/qt/main.html: Added.
25900         * manual-tests/qt/qtplugin.html: Added.
25901
25902 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
25903
25904         Fix the build with ENABLE_DATABASE=0 (Qt/Windows) by including
25905         SecurityOrigin.h. It's used in the file and also implicitly included
25906         through the database headers.
25907
25908         * page/DOMWindow.cpp:
25909
25910 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
25911
25912         Prospective Wx build fix.
25913
25914         * platform/graphics/wx/FontPlatformData.h:
25915
25916 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
25917
25918         Reviewed by Alp.
25919
25920         Gtk build fix, similar to the changes done in r32609.
25921
25922         * platform/graphics/gtk/FontPlatformData.h:
25923         (WebCore::FontPlatformData::FontPlatformData):
25924         (WebCore::FontPlatformData::isHashTableDeletedValue):
25925         (WebCore::FontPlatformData::hashTableDeletedFontValue):
25926
25927 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
25928
25929         Prospective build fix. After r32609 it seems the workaround here
25930         is not needed anymore. With gcc 4.2/4.3 before 32609 the workaround
25931         is needed for compilation, after 32609 compilation only succeeds
25932         without the workaround.
25933
25934         * plugins/PluginPackage.h: Removed workaround of extra StorageTraits
25935         specification for the custom hash function of PluginPackage used in
25936         PluginSet.
25937
25938 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
25939
25940         Reviewed by Simon.
25941
25942         https://bugs.webkit.org/show_bug.cgi?id=18713
25943
25944         Fix scrollbar painting issues in QtWebKit.
25945
25946         Hovering and click-draging outside of the scrollbar would
25947         produce unexpected and inconcistent results. We also didn't
25948         pass on leave-events to the underlying WebKit code, which
25949         was nessecary to implement the paint fix.
25950
25951         * platform/qt/PlatformScrollBarQt.cpp:
25952         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
25953         (WebCore::PlatformScrollbar::handleMouseOutEvent):
25954         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
25955
25956 2008-04-27  Oliver Hunt  <oliver@apple.com>
25957
25958         Reviewed by Maciej.
25959
25960         Bug 17173: HTML5 Canvas API requires us to ignore certain operations
25961         <https://bugs.webkit.org/show_bug.cgi?id=17173>
25962
25963         This fixes the semantics of a number of Canvas functions to match
25964         the new HTML5 non-throwing semantics.
25965
25966         Test: fast/canvas/canvas-path-with-inf-nan-dimensions.html
25967
25968         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
25969         (WebCore::JSCanvasRenderingContext2D::strokeRect):
25970         * html/CanvasRenderingContext2D.cpp:
25971         (WebCore::CanvasRenderingContext2D::moveTo):
25972         (WebCore::CanvasRenderingContext2D::lineTo):
25973         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
25974         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
25975         (WebCore::CanvasRenderingContext2D::arcTo):
25976         (WebCore::CanvasRenderingContext2D::arc):
25977         (WebCore::validateRectForCanvas):
25978         (WebCore::CanvasRenderingContext2D::rect):
25979         (WebCore::CanvasRenderingContext2D::clearRect):
25980         (WebCore::CanvasRenderingContext2D::fillRect):
25981         (WebCore::CanvasRenderingContext2D::strokeRect):
25982         * html/CanvasRenderingContext2D.h:
25983         * html/CanvasRenderingContext2D.idl:
25984
25985 2008-04-27  Rob Buis  <buis@kde.org>
25986
25987         Reviewed by Adele.
25988
25989         https://bugs.webkit.org/show_bug.cgi?id=18652
25990         onchange events don't seem to fire for input[type=range] controls.
25991
25992         Fire changeEvent when dragging the slider.
25993
25994         Test: fast/forms/slider-onchange-event.html
25995
25996         * rendering/RenderSlider.cpp:
25997         (WebCore::RenderSlider::valueChanged):
25998
25999 2008-04-25  Darin Adler  <darin@apple.com>
26000
26001         Reviewed by Maciej.
26002
26003         - update for compatibility with HashTable that no longer has optimization to share
26004           implementation between hash tables with integers, pointers, RefPtr, and String
26005           objects as keys
26006
26007         * bindings/js/JSSVGPODTypeWrapper.h:
26008         (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo): Added constructor
26009         for HashTableDeletedValue.
26010         (WebCore::PODTypeReadWriteHashInfo::isHashTableDeletedValue): Added.
26011         (WebCore::PODTypeReadWriteHashInfoTraits::constructDeletedValue): Added.
26012         (WebCore::PODTypeReadWriteHashInfoTraits::isDeletedValue): Added.
26013
26014         * dom/Document.cpp: Made changedDocuments internal to the file rather than a
26015         static data member of Document.
26016         (WebCore::FormElementKey::ref): Removed unneeded check for deleted value -- this
26017         will never be called on a deleted element.
26018         (WebCore::FormElementKey::deref): Ditto.
26019
26020         * dom/Document.h: Added HashTableDeletedValue constructor and isHashTableDeletedValue
26021         to FormElementKey. Changed FormElementKeyHashTraits to use construct/isDeletedValue.
26022         Got rid of the changedDocuments data member. Changed iconURL to be an inline that
26023         returns a const String&.
26024
26025         * dom/StyledElement.cpp: Changed MappedAttributeKeyTraits to use
26026         construct/isDeletedValue.
26027
26028         * page/mac/AXObjectCacheMac.mm:
26029         (WebCore::AXObjectCache::getAXID): Call isDeletedValue instead of deletedValue.
26030
26031         * platform/SecurityOriginHash.h: Added overload so that SecurityOriginHash can work
26032         with raw pointers as well as RefPt (helpful with the new RefPtrHashMap). Eliminated
26033         SecurityOriginTraits, since we can now use the default traits. Changed the value of
26034         safeToCompareToEmptyOrDeleted to false, since it's not safe to compare a deleted
26035         value using this hash function. I don't think it was safe before either; I'm not sure
26036         why it didn't cause a problem before.
26037
26038         * platform/cf/SchedulePair.h: Removed SchedulePairTraits -- custom traits are no
26039         longer needed.
26040
26041         * platform/graphics/FontCache.cpp:
26042         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Added constructor
26043         for HashTableDeletedValue.
26044         (WebCore::FontPlatformDataCacheKey::isHashTableDeletedValue): Added.
26045         (WebCore::FontPlatformDataCacheKey::hashTableDeletedSize): Added.
26046         (WebCore::FontPlatformDataCacheKeyTraits::constructDeletedValue): Added.
26047         (WebCore::FontPlatformDataCacheKeyTraits::isDeletedValue): Added.
26048         (WebCore::FontDataCacheKeyTraits::constructDeletedValue): Added.
26049         (WebCore::FontDataCacheKeyTraits::isDeletedValue): Added.
26050
26051         * platform/graphics/IntSizeHash.h: Changed HashTraits<IntSize> to use
26052         construct/isDeletedValue.
26053
26054         * platform/graphics/mac/FontPlatformData.h:
26055         (WebCore::FontPlatformData::FontPlatformData): Added constructor for
26056         HashTableDeletedValue.
26057         (WebCore::FontPlatformData::isHashTableDeletedValue): Added.
26058         (WebCore::FontPlatformData::hashTableDeletedFontValue): Added.
26059
26060         * platform/text/PlatformString.h:
26061         (WebCore::String::swap): Added. Avoids any refcount churn when swapping two strings.
26062         (WebCore::String::String): Added constructor for HashTableDeletedValue.
26063         (WebCore::String::isHashTableDeletedValue): Added.
26064         (WebCore::swap): Added. Avoids any refcount churn when swapping two strings.
26065
26066         * platform/text/StringHash.h: Changed specialization of HashTraits for
26067         WebCore::String to use the deleted value now defined in that class and removed
26068         the code to do ref/deref. Removed HashKeyStorageTraits specializations.
26069         
26070         * platform/win/COMPtr.h: Changed specialization of HashTraits for
26071         COMPtr to use the deleted value now defined in that class and removed
26072         the code to do ref/deref. Removed HashKeyStorageTraits specializations.
26073         (COMPtr::COMPtr): Added constructor for HashTableDeletedValue.
26074         (COMPtr::isHashTableDeletedValue): Added.
26075         (COMPtr::query): Removed inline keyword not needed since functions defined in the
26076         class definition are automatically marked inline.
26077         (COMPtr::hashTableDeletedValue): Added.
26078
26079         * storage/DatabaseTracker.h: Removed now-unneeded SecurityOriginTraits.
26080         * storage/LocalStorage.h: Ditto.
26081         * storage/OriginQuotaManager.h: Ditto.
26082         * storage/SessionStorage.h: Ditto.
26083
26084         * svg/SVGAnimatedTemplate.h:
26085         (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey): Added constructor
26086         for HashTableDeletedValue.
26087         (WebCore::SVGAnimatedTypeWrapperKey::isHashTableDeletedValue): Added.
26088         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::constructDeletedValue): Added.
26089         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::isDeletedValue): Added.
26090
26091 2008-04-27  Mark Rowe  <mrowe@apple.com>
26092
26093         Reviewed by Tim Hatcher.
26094
26095         Initialize the extra member of the xmlEntity struct when using libxml2 >= 2.6.27.
26096
26097         * dom/XMLTokenizer.cpp:
26098
26099 2008-04-27  Dan Bernstein  <mitz@apple.com>
26100
26101         Reviewed by Darin Adler.
26102
26103         - fix https://bugs.webkit.org/show_bug.cgi?id=3729
26104           <rdar://problem/4036353> REGRESSION: arrow keys move insertion bar backwards in RTL text
26105
26106         Test: editing/selection/move-left-right.html
26107
26108         * editing/SelectionController.cpp:
26109         (WebCore::SelectionController::modifyMovingRight): Added. Currently
26110         implemented for character granularity, all other being treated as
26111         "forward".
26112         (WebCore::SelectionController::modifyMovingForward): Renamed
26113         modifyMovingRightForward() to this.
26114         (WebCore::SelectionController::modifyMovingLeft): Added. Currently
26115         implemented for character granularity, all other being treated as
26116         "backward".
26117         (WebCore::SelectionController::modifyMovingBackward): Renamed
26118         modifyMovingLeftBackward() to this.
26119         (WebCore::SelectionController::modify): Changed to call either the
26120         visual (left/right) or logical (backward/forward) methods depending on
26121         the 'dir' argument for moves.
26122         * editing/SelectionController.h:
26123         * editing/VisiblePosition.cpp:
26124         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): Added.
26125         (WebCore::VisiblePosition::left): Added.
26126         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): Added.
26127         (WebCore::VisiblePosition::right): Added.
26128         * editing/VisiblePosition.h:
26129
26130 2008-04-27  Sam Weinig  <sam@webkit.org>
26131
26132         Reviewed by Maciej Stachowiak.
26133
26134         Fix for <rdar://problem/5893385> Need to provide access to the CanvasRenderingContext2D prototype
26135         Add a JS constructor for CanvasRenderingContext2D.
26136
26137         * html/CanvasRenderingContext2D.idl:
26138         * page/DOMWindow.idl:
26139
26140 2008-04-26  Adam Barth  <hk9565@gmail.com>
26141
26142         Reviewed by Adam Roben and Sam Weinig.
26143
26144         Fixes bug http://bugs.webkit.org/show_bug.cgi?id=17331
26145         Fixes bug http://bugs.webkit.org/show_bug.cgi?id=16848
26146         
26147         Updates postMessage implementation to match HTML 5 specification:
26148         1) Adds origin parameter to postMessage.
26149         2) Removes domain and uri attributes of MessageEvent in favor of
26150            origin attribute.
26151
26152         In order to do this correctly, we need to distinguish between hosts and domains
26153         in the SecurityOrigin class. There are now three ways to compare security origins:
26154         1) isSameSchemeHostPort compares scheme, host, and port, and is used for postMessage
26155         2) equal compares all aspects of the security origin, and is used for hash keys
26156         3) canAccess understands the semantics of schemes such as file:// and data:// URLs,
26157            and should be used for scripting access checks.
26158
26159         Changed SecurityOrigin::toString() to generate identifiers that are suitable for 
26160         being used as a MessageEvent's origin property. In the future, they could be used 
26161         as database string identifiers as well. Re-used KURL parser to parse serialized 
26162         SecurityOrigins.
26163
26164         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
26165         
26166         Tests: http/tests/security/postMessage/invalid-origin-throws-exception.html
26167                http/tests/security/postMessage/javascript-page-still-sends-origin.html
26168                http/tests/security/postMessage/origin-unaffected-by-base-tag.html
26169                http/tests/security/postMessage/origin-unaffected-by-document-domain.html
26170                http/tests/security/postMessage/target-origin.html
26171
26172         * WebCore.base.exp:
26173         * bindings/js/JSDOMWindowCustom.cpp:
26174         (WebCore::JSDOMWindow::postMessage):
26175         * dom/Document.cpp:
26176         (WebCore::Document::domain):
26177         * dom/MessageEvent.cpp:
26178         (WebCore::MessageEvent::MessageEvent):
26179         (WebCore::MessageEvent::initMessageEvent):
26180         * dom/MessageEvent.h:
26181         (WebCore::MessageEvent::origin):
26182         * dom/MessageEvent.idl:
26183         * html/CanvasRenderingContext2D.cpp:
26184         (WebCore::CanvasRenderingContext2D::checkOrigin):
26185         (WebCore::CanvasRenderingContext2D::createPattern):
26186         * page/DOMWindow.cpp:
26187         (WebCore::DOMWindow::postMessage):
26188         * page/DOMWindow.h:
26189         * page/DOMWindow.idl:
26190         * platform/SecurityOrigin.cpp:
26191         (WebCore::SecurityOrigin::SecurityOrigin):
26192         (WebCore::SecurityOrigin::create):
26193         (WebCore::SecurityOrigin::createForFrame):
26194         (WebCore::SecurityOrigin::copy):
26195         (WebCore::SecurityOrigin::setDomainFromDOM):
26196         (WebCore::SecurityOrigin::canAccess):
26197         (WebCore::SecurityOrigin::isSecureTransitionTo):
26198         (WebCore::SecurityOrigin::toString):
26199         (WebCore::SecurityOrigin::createFromString):
26200         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
26201         (WebCore::SecurityOrigin::databaseIdentifier):
26202         (WebCore::SecurityOrigin::equal):
26203         (WebCore::SecurityOrigin::isSameSchemeHostPort):
26204         * platform/SecurityOrigin.h:
26205         (WebCore::SecurityOrigin::host):
26206         (WebCore::SecurityOrigin::domain):
26207         * platform/SecurityOriginHash.h:
26208         (WebCore::SecurityOriginTraits::deletedValue):
26209         * storage/DatabaseTracker.cpp:
26210         (WebCore::DatabaseTracker::hasEntryForDatabase):
26211         (WebCore::DatabaseTracker::originPath):
26212         (WebCore::DatabaseTracker::fullPathForDatabase):
26213         (WebCore::DatabaseTracker::populateOrigins):
26214         (WebCore::DatabaseTracker::databaseNamesForOrigin):
26215         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
26216         (WebCore::DatabaseTracker::setDatabaseDetails):
26217         (WebCore::DatabaseTracker::setQuota):
26218         (WebCore::DatabaseTracker::addDatabase):
26219         (WebCore::DatabaseTracker::deleteOrigin):
26220         (WebCore::DatabaseTracker::deleteDatabase):
26221
26222 2008-04-26  Kevin Ollivier  <kevino@theolliviers.com>
26223
26224         wx build fix. Add the AX*ActionVerb functions to the wx build.
26225         
26226         * platform/wx/LocalizedStringsWx.cpp:
26227         (WebCore::AXButtonActionVerb):
26228         (WebCore::AXRadioButtonActionVerb):
26229         (WebCore::AXTextFieldActionVerb):
26230         (WebCore::AXCheckedCheckBoxActionVerb):
26231         (WebCore::AXUncheckedCheckBoxActionVerb):
26232         (WebCore::AXLinkActionVerb):
26233
26234 2008-04-26  Robin Dunn  <robin@alldunn.com>
26235
26236         Reviewed by Kevin Ollivier.
26237
26238         wx build fix. Add needed wx includes for compilation.
26239
26240         https://bugs.webkit.org/show_bug.cgi?id=18758
26241
26242         * platform/wx/FileSystemWx.cpp:
26243
26244 2008-04-26  Anatoli Papirovski  <apapirovski@mac.com>
26245
26246         Reviewed by Dave Hyatt.
26247
26248         Fix for https://bugs.webkit.org/show_bug.cgi?id=18583
26249         WebKit should ignore declarations with a negative value for
26250         line-height and font-size, including in the shorthand font form.
26251
26252         Tests: fast/css/font-size-negative.html
26253                fast/css/line-height-negative.html
26254
26255         * css/CSSParser.cpp:
26256         (WebCore::CSSParser::parseValue):
26257         (WebCore::CSSParser::parseFont):
26258
26259 2008-04-25  Anders Carlsson  <andersca@apple.com>
26260
26261         Reviewed by Sam.
26262
26263         Add empty ApplicationCacheStorage class.
26264         
26265         * WebCore.vcproj/WebCore.vcproj:
26266         * WebCore.xcodeproj/project.pbxproj:
26267         * loader/appcache/ApplicationCacheStorage.cpp: Added.
26268         (WebCore::cacheStorage):
26269         * loader/appcache/ApplicationCacheStorage.h: Added.
26270
26271 2008-04-24  Sam Weinig  <sam@webkit.org>
26272
26273         Reviewed by Geoffrey Garen.
26274
26275         Replace the JSDOMWindow with a new one instead of clearing it.
26276
26277         * bindings/js/JSDOMWindowBase.cpp:
26278         (WebCore::JSDOMWindowBase::clear):
26279         Don't reset the window.
26280
26281         * bindings/js/kjs_proxy.cpp:
26282         (WebCore::KJSProxy::clear):
26283         Replace the current JSDOMWindow stored in the wrapper window
26284         with a new one.
26285
26286         * history/CachedPage.cpp:
26287         (WebCore::CachedPage::CachedPage):
26288         (WebCore::CachedPage::restore):
26289         (WebCore::CachedPage::clear):
26290         * history/CachedPage.h:
26291         Instead of storing the builtins, properties and localstorage in
26292         special holding structs, store the entire JSDOMWindow.
26293
26294         For the case of a page that has no JSDOMWindow before it's first
26295         navigation, has one created while it is in the cache and is then
26296         navigated back, create a new JSDOMWindow to keep the assumption
26297         in JSDOMWindowWrapper that it always has the correct window.
26298
26299         * loader/FrameLoader.cpp:
26300         (WebCore::FrameLoader::clear):
26301         We must clear the DOMWindow first, so that we create a new JSDOMWindow,
26302         it gets a new one.
26303
26304         * page/Frame.cpp:
26305         (WebCore::Frame::clearDOMWindow):
26306         Null out the domWindow so that on the next access, a new one is
26307         created.
26308
26309 2008-04-25  Sam Weinig  <sam@webkit.org>
26310
26311         Reviewed by Mark Rowe.
26312
26313         The EventListeners need to operate and store JSDOMWindows, not JSDOMWrapperWindows.
26314
26315         * bindings/js/JSDOMWindowBase.cpp:
26316         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
26317         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
26318         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
26319         * bindings/js/JSSVGLazyEventListener.cpp:
26320         (WebCore::JSSVGLazyEventListener::JSSVGLazyEventListener):
26321         * bindings/js/JSSVGLazyEventListener.h:
26322         * bindings/js/kjs_events.cpp:
26323         (WebCore::JSAbstractEventListener::handleEvent):
26324         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
26325         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
26326         (WebCore::JSUnprotectedEventListener::window):
26327         (WebCore::JSUnprotectedEventListener::clearWindow):
26328         (WebCore::JSEventListener::JSEventListener):
26329         (WebCore::JSEventListener::~JSEventListener):
26330         (WebCore::JSEventListener::window):
26331         (WebCore::JSEventListener::clearWindow):
26332         (WebCore::JSLazyEventListener::JSLazyEventListener):
26333         (WebCore::JSLazyEventListener::parseCode):
26334         * bindings/js/kjs_events.h:
26335         * bindings/js/kjs_proxy.cpp:
26336         (WebCore::KJSProxy::createHTMLEventHandler):
26337         (WebCore::KJSProxy::createSVGEventHandler):
26338
26339 2008-04-25  Mark Rowe  <mrowe@apple.com>
26340
26341         Rubber-stamped by Sam Weinig.
26342
26343         Add some content to an empty ICU header file to prevent verification errors.
26344
26345         * icu/unicode/utf_old.h:
26346
26347 2008-04-25  Anders Carlsson  <andersca@apple.com>
26348
26349         Fix tyop.
26350         
26351         * loader/DocumentLoader.cpp:
26352         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
26353
26354 2008-04-25  Anders Carlsson  <andersca@apple.com>
26355
26356         Reviewed by Sam.
26357
26358         Add and honor offlineWebApplicationCacheEnabled setting.
26359         
26360         * WebCore.base.exp:
26361         * loader/DocumentLoader.cpp:
26362         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
26363         * loader/MainResourceLoader.cpp:
26364         (WebCore::MainResourceLoader::load):
26365         * loader/appcache/ApplicationCacheGroup.cpp:
26366         (WebCore::ApplicationCacheGroup::selectCache):
26367         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
26368         * page/Settings.cpp:
26369         (WebCore::Settings::Settings):
26370         (WebCore::Settings::setOfflineWebApplicationCacheEnabled):
26371         * page/Settings.h:
26372         (WebCore::Settings::offlineWebApplicationCacheEnabled):
26373
26374 2008-04-25  Anders Carlsson  <andersca@apple.com>
26375
26376         Reviewed by Adam.
26377
26378         <rdar://problem/5629139>
26379         PluginInfoStoreWin needs to implement pluginNameForMIMEType().
26380         
26381         * plugins/PluginInfoStore.cpp:
26382         (WebCore::PluginInfoStore::pluginNameForMIMEType):
26383
26384 2008-04-25  Tor Arne Vestbø  <tavestbo@trolltech.com>
26385
26386         Reviewed by Simon.
26387
26388         Respect antialiasing hint when drawing focus rects.
26389
26390         * platform/graphics/qt/GraphicsContextQt.cpp:
26391         (WebCore::GraphicsContext::drawFocusRing):
26392
26393 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
26394
26395         Reviewed by Simon.
26396
26397         networking: Use Qt::QueuedConnection in QNetworkReplyHandler
26398
26399         Make sure we leave the networking backend before calling
26400         into WebCore. Otheriwse we might return to the networking
26401         backend when it is already deleted.
26402
26403         * platform/network/qt/QNetworkReplyHandler.cpp:
26404         (WebCore::FormDataIODevice::setParent):
26405         (WebCore::QNetworkReplyHandler::start):
26406
26407 2008-04-25  Tor Arne Vestbø  <tavestbo@trolltech.com>
26408
26409         Reviewed by Simon.
26410
26411         Fix propagation of mouse double click events.
26412
26413         Treat a mouse double click as a regular mouse press with just a different click count.
26414
26415         * platform/qt/PlatformMouseEventQt.cpp:
26416         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
26417
26418 2008-04-25  Tor Arne Vestbø  <tavestbo@trolltech.com>
26419
26420         Reviewed by Simon.
26421
26422         Fixes: Fix strange button sizes (push, radio, and check) in QtWebKit.
26423
26424         We now use pixel metrics instead of fixed sizes for the
26425         button margins, or if the style supports layout rects we
26426         use the delta between the content rect and the layout rect.
26427
26428         In adition we compensate for the difference between the size
26429         for content and the actual layout rect (if supported) by
26430         reporting back the layout rect to WebKit for page layout,
26431         and then inflating the rect we actually paint to.
26432
26433         * platform/qt/RenderThemeQt.cpp:
26434         (WebCore::StylePainter::StylePainter):
26435         (WebCore::StylePainter::~StylePainter):
26436         (WebCore::RenderThemeQt::RenderThemeQt):
26437         (WebCore::inflateButtonRect):
26438         (WebCore::RenderThemeQt::adjustRepaintRect):
26439         (WebCore::RenderThemeQt::isControlStyled):
26440         (WebCore::computeSizeBasedOnStyle):
26441         (WebCore::RenderThemeQt::setCheckboxSize):
26442         (WebCore::RenderThemeQt::paintCheckbox):
26443         (WebCore::RenderThemeQt::setRadioSize):
26444         (WebCore::RenderThemeQt::adjustButtonStyle):
26445         (WebCore::RenderThemeQt::setButtonSize):
26446         (WebCore::RenderThemeQt::setButtonPadding):
26447         (WebCore::RenderThemeQt::paintButton):
26448         (WebCore::RenderThemeQt::adjustMenuListStyle):
26449         (WebCore::RenderThemeQt::setPopupPadding):
26450         (WebCore::RenderThemeQt::paintMenuList):
26451         * platform/qt/RenderThemeQt.h:
26452
26453 2008-04-25  Benjamin Meyer  <bmeyer@trolltech.com>
26454
26455         Reviewed by Holger.
26456
26457         Fixes: Valgrind warnings about uninitilized variables used in jumps
26458
26459         * rendering/RenderText.cpp:
26460         (WebCore::RenderText::trimmedPrefWidths):
26461
26462 2008-04-25  Warwick Allison  <warwick@trolltech.com>
26463
26464         Reviewed by Simon.
26465
26466         Added simple getter function to PlatformScrollBar to return the
26467         maximum value. Needed in the WebKit/qt API.
26468
26469         * platform/qt/PlatformScrollBar.h:
26470
26471 2008-04-25  Benjamin Meyer  <bmeyer@trolltech.com>
26472
26473         Reviewed by Holger, Simon.
26474
26475         Implement NoDrop, ZoomIn, and ZoomOut cursors
26476
26477         * Resources/WebKitResources.qrc:
26478         * platform/qt/CursorQt.cpp:
26479         (WebCore::noDropCursor):
26480         (WebCore::notAllowedCursor):
26481         (WebCore::zoomInCursor):
26482         (WebCore::zoomOutCursor):
26483
26484 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
26485
26486         Reviewed by Simon.
26487
26488         Handle the ListboxAppearance as 'TextField' as well. We are mainly interested in the background.
26489
26490         RenderBox will call us to paint the outline/background, it is handled the same as a
26491         TextAreaAppearance in RenderTheme, handle it the same in the RenderThemeQt
26492
26493         * platform/qt/RenderThemeQt.cpp:
26494         (WebCore::RenderThemeQt::paintTextField):
26495
26496 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
26497
26498         Reviewed by Simon.
26499
26500         No reason to exit the application when we can not paint something. Replace the Q_ASSERT
26501         with a runtime check. Return true to indicate that we did not handle the painting
26502         of this element.
26503
26504         * platform/qt/RenderThemeQt.cpp:
26505         (WebCore::RenderThemeQt::paintTextField):
26506
26507 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
26508
26509         Reviewed by Simon.
26510
26511         Correct the comment. We are in painTextField and don't paint a button.
26512
26513         * platform/qt/RenderThemeQt.cpp:
26514         (WebCore::RenderThemeQt::paintTextField):
26515
26516 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
26517
26518         Reviewed by Simon.
26519
26520         Allow ListboxAppearance to take focus as well. Stolen from Tor Arne
26521
26522         * platform/qt/RenderThemeQt.cpp:
26523         (WebCore::RenderThemeQt::supportsFocus):
26524
26525 2008-04-25  Simon Hausmann  <hausmann@webkit.org>
26526
26527         Reviewed by Holger.
26528
26529         Remove debug output.
26530
26531         * platform/network/qt/ResourceHandleQt.cpp:
26532         (WebCore::ResourceHandle::loadResourceSynchronously):
26533
26534 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
26535
26536         Reviewed by Simon.
26537
26538         Change the string for searchableIndexIntroduction() to match the mac
26539         and pass http/tests/misc/isindex-formdata.html
26540
26541         * platform/qt/Localizations.cpp:
26542
26543 2008-04-25  Simon Hausmann  <hausmann@webkit.org>
26544
26545         Reviewed by Holger.
26546
26547         When we encounter a new/unknown HTTP request type report it back to WebCore as loading error.
26548
26549         * platform/network/qt/QNetworkReplyHandler.cpp:
26550         (WebCore::QNetworkReplyHandler::start):
26551
26552 2008-04-25  Benjamin Meyer  <bmeyer@trolltech.com>
26553
26554         Reviewed by Simon.
26555
26556         Fix crash in the networking layer.
26557
26558         Set the m_reply to null right after calling deleteLater().
26559
26560         * platform/network/qt/QNetworkReplyHandler.cpp:
26561         (WebCore::QNetworkReplyHandler::finish):
26562
26563 2008-04-24  Mark Rowe  <mrowe@apple.com>
26564
26565         Rubber-stamped by Oliver Hunt.
26566
26567         * WebCore.base.exp: Remove two symbols from the export list that don't need to be exported.
26568
26569 2008-04-24  Dan Bernstein  <mitz@apple.com>
26570
26571         Reviewed by Dave Hyatt.
26572
26573         - fix https://bugs.webkit.org/show_bug.cgi?id=18722
26574           <rdar://problem/5888360> REGRESSION (3.1 -> TOT): Webkit Nightly Build crashes when visiting i has a hotdog
26575
26576         Test: fast/dynamic/float-remove-above-line.html
26577
26578         * rendering/bidi.cpp:
26579         (WebCore::RenderBlock::layoutInlineChildren): Avoid adding floats that
26580         do not intrude into the line to its floats vector. When such floats go
26581         away, they do not dirty the line (because they do not intersect with it)
26582         and having it keep them in its floats vector is what caused the crash.
26583
26584 2008-04-24  Justin Garcia  <justin.garcia@apple.com>
26585
26586         Reviewed by John Sullivan.
26587         
26588         It is possible, despite our safeguards, for createMarkup to iterate past the end of the Range
26589         that is passed to it.  Added a null check to prevent crashes in this situation (we won't crash but
26590         we will create too much markup), and added an ASSERT to hopefully catch the scenario in a debugger 
26591         and help us understand what's going on.
26592
26593         * editing/markup.cpp:
26594         (WebCore::createMarkup):
26595
26596 2008-04-24  Mark Rowe  <mrowe@apple.com>
26597
26598         Reviewed by Sam Weinig.
26599
26600         Remove code for calculating the glyph cache size.
26601
26602         * WebCore.base.exp: Remove unused symbol.
26603         * platform/graphics/mac/FontCacheMac.mm: Remove code that is unused now that we do not compute the glyph cache size.
26604         * platform/mac/WebCoreSystemInterface.h: Remove unused symbol.
26605         * platform/mac/WebCoreSystemInterface.mm: Ditto.
26606
26607 2008-04-24  Mark Rowe  <mrowe@apple.com>
26608
26609         Reviewed by Sam Weinig.
26610
26611         Add a definition of BUILDING_ON_LEOPARD to complement BUILDING_ON_TIGER.
26612
26613         * WebCorePrefix.h:
26614
26615 2008-04-24  Cameron McCormack  <cam@mcc.id.au>
26616
26617         Reviewed by Maciej Stachowiak.
26618
26619         Ensure that changes to rx="" and ry="" attributes on an SVG <rect>
26620         element cause a relayout.
26621
26622         Test: svg/dom/SVGRectElement/rect-modify-rx.svg
26623
26624         * svg/SVGRectElement.cpp:
26625         (WebCore::SVGRectElement::svgAttributeChanged): Call needsLayout()
26626         when the attribute is rx or ry.
26627         (WebCore::SVGRectElement::hasRelativeValues): Return true when the
26628         attribute is rx or ry, since they also can have relative values.
26629
26630 2008-04-24  Adam Barth  <hk9565@gmail.com>
26631
26632         Reviewed by Sam Weinig.
26633
26634         Update the XMLHttpRequest header black list to match the spec.
26635
26636         * xml/XMLHttpRequest.cpp:
26637         (WebCore::isSafeRequestHeader):
26638
26639 2008-04-22  Feng Qian  <feng@chromium.org>
26640
26641         Reviewed by Geoff Garen.
26642
26643         Fix https://bugs.webkit.org/show_bug.cgi?id=18677
26644         Bug 18677: Synchronous event dispatch confuses the popup blocker into incorrectly blocking chat popups in gmail.com.
26645
26646         Test: fast/events/nested-window-event.html
26647
26648         * bindings/js/kjs_events.cpp:
26649         (WebCore::JSAbstractEventListener::handleEvent): Save and restore the current event around the event dispatch.
26650
26651 2008-04-24  Brady Eidson  <beidson@apple.com>
26652
26653         Reviewed by Teh Mitzpettel
26654
26655         Make it so PageGroups know what their own name is.
26656
26657         * WebCore.base.exp:
26658
26659         * page/Page.cpp:
26660         (WebCore::Page::setGroupName):
26661         (WebCore::Page::groupName):
26662         * page/Page.h:
26663
26664         * page/PageGroup.cpp: Move the PageGroupMap into the PageGroup class.
26665         (WebCore::PageGroup::PageGroup): Added a c'tor that takes the group name as an argument instead of
26666           the initial Page.
26667         (WebCore::PageGroup::pageGroup): Handles creating and mapping names to groups
26668         * page/PageGroup.h:
26669         (WebCore::PageGroup::name):
26670
26671 2008-04-24  Adele Peterson  <adele@apple.com>
26672
26673         Reviewed by Darin.
26674
26675         Consolidate two versions of pathGetFileName.
26676
26677         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Call FileSystem.h version of pathGetFileName and removed the static helper function.
26678         * platform/posix/FileSystemPOSIX.cpp: (WebCore::pathGetFileName): Moved general case from HTMLFormElement version here.
26679           If other platforms relied on that default they should implement this function for their platform specific version of FileSystem.cpp
26680         * platform/win/FileSystemWin.cpp: (WebCore::pathGetFileName): Moved win implementation from HTMLFormElement here.
26681         * platform/wx/FileSystemWx.cpp: (WebCore::pathGetFileName): Moved wx implementation from HTMLFormElement here.
26682
26683 2008-04-24  Anders Carlsson  <andersca@apple.com>
26684
26685         Windows build fix.
26686         
26687         * html/HTMLFormElement.cpp:
26688         (WebCore::pathGetFilename):
26689
26690 2008-04-24  Anders Carlsson  <andersca@apple.com>
26691
26692         Don't crash when the string is empty.
26693         
26694         * html/HTMLMediaElement.cpp:
26695         (WebCore::parseTimeOffset):
26696
26697 2008-04-24  Dan Bernstein  <mitz@apple.com>
26698
26699         Reviewed by Darin Adler.
26700
26701         - preparation for https://bugs.webkit.org/show_bug.cgi?id=3729
26702           <rdar://problem/4036353> REGRESSION: arrow keys move insertion bar backwards in RTL text
26703
26704         The three main changes in this patch are:
26705
26706         1) Making all inline boxes know their bidi level, instead of just text
26707            boxes knowing whether their bidi level is odd or even. This is
26708            required for the next change.
26709
26710         2) Replacing RenderObject::inlineBox() with
26711            Position::getInlineBoxAndOffset() in recognition of the fact that the
26712            inline box containing the primary caret for a position in a given
26713            node may belong to a different node's renderer.
26714
26715         3) Changing RenderObject::caretRect() to take an InlineBox parameter,
26716            and changing callers to call VisiblePosition::caretRect(), which
26717            locates the inline box, then calls caretRect() on the renderer for
26718            that box. This, combined with the previous change, ensures that the
26719            primary caret is rendered at the right place for positions that
26720            lie on a directionality boundary.
26721
26722         Test: platform/mac/editing/input/caret-primary-bidi.html
26723
26724         * WebCore.base.exp: Added the VisiblePosition(Node*, int, EAffinity)
26725         constructor and VisiblePosition::caretRect(), and sorted.
26726
26727         * dom/Position.cpp:
26728         (WebCore::nextRenderedEditable): Adjusted for the removal of
26729         RenderObject::inlineBox().
26730         (WebCore::previousRenderedEditable): Ditto.
26731         (WebCore::Position::rendersInDifferentPosition): Ditto.
26732         (WebCore::Position::getInlineBoxAndOffset): Added. Gets the inline box
26733         and the offset within that box at which the primary caret for this
26734         position should render.
26735
26736         * dom/Position.h:
26737
26738         * editing/DeleteSelectionCommand.cpp:
26739         (WebCore::DeleteSelectionCommand::mergeParagraphs): Changed to call
26740         VisiblePosition::caretRect() instead of calling the RenderObject method.
26741
26742         * editing/SelectionController.cpp:
26743         (WebCore::caretY): Ditto.
26744         (WebCore::SelectionController::xPosForVerticalArrowNavigation): Ditto.
26745         (WebCore::SelectionController::layout): Ditto.
26746
26747         * editing/VisiblePosition.cpp:
26748         (WebCore::VisiblePosition::caretRect): Changed to call
26749         getInlineBoxAndOffset() to get the correct inline box and call the
26750         renderer for that box.
26751
26752         * editing/VisiblePosition.h:
26753         (WebCore::VisiblePosition::getInlineBoxAndOffset): Added convenience
26754         methods for getting the inline box and caret offset for a visible
26755         position, accounting for its affinity.
26756
26757         * editing/visible_units.cpp:
26758         (WebCore::rootBoxForLine): Changed to use getInlineBoxAndOffset()
26759         instead of RenderObject::inlineBox().
26760         (WebCore::startPositionForLine):
26761         (WebCore::endPositionForLine):
26762         (WebCore::previousLinePosition): Ditto.
26763         (WebCore::nextLinePosition): Ditto.
26764
26765         * page/AccessibilityObject.cpp:
26766         (WebCore::updateAXLineStartForVisiblePosition): Ditto.
26767
26768         * page/Frame.cpp:
26769         (WebCore::Frame::firstRectForRange): Ditto.
26770
26771         * rendering/InlineBox.cpp:
26772         (WebCore::InlineBox::caretMinOffset): Changed to forward to the
26773         renderer.
26774         (WebCore::InlineBox::caretMaxOffset): Ditto.
26775         * rendering/InlineBox.h: Replaced the m_reversed bit, intended for use
26776         in InlineTextBox only, with six bits of the bidi level of the box,
26777         intended for use in all leaf inline boxes.
26778         (WebCore::InlineBox::InlineBox): Added missing initializer for
26779         m_dirOverride and initialized the bidi level.
26780         (WebCore::InlineBox::bidiLevel): Added this accessor.
26781         (WebCore::InlineBox::setBidiLevel): Ditto.
26782         (WebCore::InlineBox::direction): Ditto.
26783         (WebCore::InlineBox::caretLeftmostOffset): Added this convenience
26784         method.
26785         (WebCore::InlineBox::caretRightmostOffset): Ditto.
26786
26787         * rendering/InlineTextBox.cpp: Replaced all references to m_reversed
26788         with checking of direction().
26789         (WebCore::InlineTextBox::selectionRect):
26790         (WebCore::InlineTextBox::placeEllipsisBox):
26791         (WebCore::InlineTextBox::paint):
26792         (WebCore::InlineTextBox::paintSelection):
26793         (WebCore::InlineTextBox::paintCompositionBackground):
26794         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
26795         (WebCore::InlineTextBox::paintTextMatchMarker):
26796         (WebCore::InlineTextBox::textPos):
26797         (WebCore::InlineTextBox::offsetForPosition):
26798         (WebCore::InlineTextBox::positionForOffset):
26799
26800         * rendering/RenderBR.cpp: Removed inlineBox().
26801         * rendering/RenderBR.h: Ditto.
26802
26803         * rendering/RenderBox.cpp:
26804         (WebCore::RenderBox::caretRect): Changed to take an inline box and
26805         account for the direction of the box (or the renderer) in positioning
26806         the caret: in right-to-left boxes, the "before" position is to the right
26807         while "after" is to the left.
26808         * rendering/RenderBox.h:
26809
26810         * rendering/RenderFlow.cpp:
26811         (WebCore::RenderFlow::caretRect): Updated the signature.
26812         * rendering/RenderFlow.h:
26813
26814         * rendering/RenderObject.cpp:
26815         (WebCore::RenderObject::caretRect): Updated the signature.
26816         (WebCore::RenderObject::caretMaxOffset): Changed to return the child
26817         node count (or 1 if there are no children) for replaced elements, such
26818         as <select>s.
26819         * rendering/RenderObject.h:
26820
26821         * rendering/RenderReplaced.cpp: Removed caretMinOffset() and
26822         caretMaxOffset() because the base class implementation does the right
26823         thing for replaced objects now.
26824         * rendering/RenderReplaced.h:
26825
26826         * rendering/RenderSVGInlineText.cpp:
26827         (WebCore::RenderSVGInlineText::caretRect): Updated the signature.
26828         (WebCore::RenderSVGInlineText::positionForCoordinates): Updated for
26829         the change from m_reversed to direction().
26830         * rendering/RenderSVGInlineText.h:
26831
26832         * rendering/RenderText.cpp:
26833         (WebCore::RenderText::caretRect): Changed to take an inline box and
26834         removed the code that used to find the inline for the given position.
26835         Changed use of m_reversed to use direction().
26836         (WebCore::RenderText::position): Changed use of m_reversed to use
26837         direction().
26838         * rendering/RenderText.h:
26839
26840         * rendering/RenderTextControl.cpp:
26841         (WebCore::RenderTextControl::textWithHardLineBreaks): Adjusted for the
26842         removal of RenderObject::inlineBox().
26843
26844         * rendering/RenderTreeAsText.cpp:
26845         (WebCore::writeTextRun): Changed to use direction() instead of
26846         m_reversed.
26847
26848         * rendering/SVGInlineTextBox.cpp: Ditto.
26849         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
26850         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
26851         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
26852
26853         * rendering/SVGRenderTreeAsText.cpp: Ditto.
26854         (WebCore::writeSVGInlineTextBox):
26855
26856         * rendering/SVGRootInlineBox.cpp: Ditto.
26857         (WebCore::svgTextRunForInlineTextBox):
26858         (WebCore::cummulatedWidthOrHeightOfTextChunk):
26859         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
26860
26861         * rendering/bidi.cpp:
26862         (WebCore::RenderBlock::constructLine): Made this function set the
26863         bidi level on all leaf boxes.
26864
26865         * svg/SVGTextContentElement.cpp: Changed to use direction() instead of
26866         m_reversed.
26867         (WebCore::cumulativeCharacterRangeLength):
26868         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
26869
26870 2008-04-24  Sam Weinig  <sam@webkit.org>
26871
26872         Fix the world.
26873
26874         * bindings/js/kjs_proxy.cpp:
26875         (WebCore::KJSProxy::clear):
26876
26877 2008-04-24  Darin Adler  <darin@apple.com>
26878
26879         Reviewed by Geoff.
26880
26881         - fix crash in regression test where we'd ask a frame for a user agent string
26882           after the WebView was already closed
26883
26884         * loader/FrameLoader.cpp:
26885         (WebCore::FrameLoader::scheduleHTTPRedirection): Quietly do nothing if this is
26886         called on a frame that's already detached from its page.
26887         (WebCore::FrameLoader::scheduleLocationChange): Ditto.
26888         (WebCore::FrameLoader::scheduleRefresh): Ditto.
26889         (WebCore::FrameLoader::scheduleHistoryNavigation): Ditto.
26890         (WebCore::FrameLoader::redirectionTimerFired): Assert that this is never called
26891         for a frame that's already detached from its page.
26892         (WebCore::FrameLoader::scheduleRedirection): Ditto.
26893         (WebCore::FrameLoader::startRedirectionTimer): Ditto.
26894
26895 2008-04-23  Timothy Hatcher  <timothy@apple.com>
26896
26897         Add a new callFunction helper function to remove duplicate code
26898         for calling JavaScript functions with arguments.
26899
26900         Reviewed by Darin Adler.
26901
26902         * page/InspectorController.cpp:
26903         (WebCore::InspectorController::callSimpleFunction): Call callFunction.
26904         (WebCore::InspectorController::callFunction): Extended version of the original
26905         callSimpleFunction, with script function arguments and an exception argument.
26906         (WebCore::InspectorController::focusNode): Use callFunction.
26907         (WebCore::InspectorController::addScriptResource): Ditto.
26908         (WebCore::InspectorController::removeScriptResource): Ditto.
26909         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
26910         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
26911         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
26912         * page/InspectorController.h: Add callFunction.
26913
26914 2008-04-24  Anders Carlsson  <andersca@apple.com>
26915
26916         Reviewed by Sam.
26917
26918         Change some String arguments to be const references instead.
26919         
26920         * css/CSSRule.cpp:
26921         (WebCore::CSSRule::setCssText):
26922         * css/CSSRule.h:
26923         * html/HTMLFormElement.cpp:
26924         (WebCore::pathGetFilename):
26925         * html/HTMLMediaElement.cpp:
26926         (WebCore::parseTimeOffset):
26927         * page/EditorClient.h:
26928         * platform/SecurityOrigin.cpp:
26929         (WebCore::isDefaultPortForProtocol):
26930         * platform/graphics/MediaPlayer.cpp:
26931         (WebCore::MediaPlayer::load):
26932         * platform/graphics/MediaPlayer.h:
26933         * rendering/MediaControlElements.cpp:
26934         (WebCore::MediaControlInputElement::MediaControlInputElement):
26935         * rendering/MediaControlElements.h:
26936         * svg/animation/SVGSMILElement.cpp:
26937         (WebCore::SVGSMILElement::Condition::Condition):
26938         * svg/animation/SVGSMILElement.h:
26939         * svg/graphics/SVGImageEmptyClients.h:
26940         (WebCore::SVGEmptyEditorClient::shouldInsertText):
26941         * xml/XSLTProcessor.cpp:
26942         (WebCore::createFragmentFromSource):
26943
26944 2008-04-24  Justin Garcia  <justin.garcia@apple.com>
26945
26946         Reviewed by Darin Adler.
26947
26948         <rdar://problem/5604313> FormatBlock to apply an h1 also inserts a style span around the first letter (16004)
26949         
26950         * editing/TextIterator.cpp:
26951         (WebCore::TextIterator::advance): We emit an extra newline when leaving a
26952         block element that has atypical margin/padding. When we emit the extra newline, 
26953         it needs to be positioned after that block's contents, not after the block. 
26954         This is how we position the first newline, too, since the range for emitted newlines 
26955         should start where the line break begins visually.
26956
26957 2008-04-24  Anders Carlsson  <andersca@apple.com>
26958
26959         Reviewed by Adam.
26960
26961         Only avoid implicit entries when doing the initial caching.
26962         
26963         * loader/appcache/ApplicationCacheGroup.cpp:
26964         (WebCore::ApplicationCacheGroup::didReceiveResponse):
26965         (WebCore::ApplicationCacheGroup::startLoadingEntry):
26966
26967 2008-04-24  Kevin McCullough  <kmccullough@apple.com>
26968
26969         Reviewed by Adam and Sam.
26970
26971         -<rdar://problem/5770054> JavaScript profiler (10928)
26972         -Only profile the page group that starts profiling to avoid profiling
26973         tools that shouldn't be profiled unless explicitly requested to.
26974
26975         * bindings/js/kjs_proxy.cpp: When a new global object is created set its
26976         page group identifier.
26977         (WebCore::KJSProxy::clear):
26978         (WebCore::KJSProxy::initScript):
26979         * page/Console.cpp: When calling console.profile set the identifier of
26980         the page group being profiled.
26981         (WebCore::Console::profile):
26982         * page/PageGroup.cpp: Implement unique identifiers.
26983         (WebCore::getUniqueIdentifier):
26984         (WebCore::PageGroup::PageGroup):
26985         * page/PageGroup.h: Ditto.
26986         (WebCore::PageGroup::identifier):
26987
26988 2008-04-24  John Sullivan  <sullivan@apple.com>
26989
26990         Mac buid fix
26991
26992         * page/mac/WebCoreViewFactory.h:
26993         add declarations of six new AX methods that were added to LocalizedStrings.h
26994         
26995         * platform/mac/LocalizedStringsMac.mm:
26996         (WebCore::AXButtonActionVerb):
26997         implement by calling through to WebCoreViewFactory as we do with the other functions here
26998         (WebCore::AXRadioButtonActionVerb):
26999         ditto
27000         (WebCore::AXTextFieldActionVerb):
27001         ditto
27002         (WebCore::AXCheckedCheckBoxActionVerb):
27003         ditto
27004         (WebCore::AXUncheckedCheckBoxActionVerb):
27005         ditto
27006         (WebCore::AXLinkActionVerb):
27007         ditto
27008
27009 2008-04-24  Simon Hausmann  <hausmann@webkit.org>
27010
27011         Rubber-stamped by Lars
27012
27013         Fix text rendering in -reverse mode on Qt/Mac.
27014
27015         For Font::width() don't use a plain QFontMetrics object but also the properly
27016         setup QTextLayout that has the RTL/LTR force flags set.
27017
27018         * platform/graphics/qt/FontQt.cpp:
27019         (WebCore::Font::width):
27020
27021 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
27022
27023         Reviewed by Simon.
27024
27025         Don't do anti-aliasing for arcs, lines and rects, but continue to anti-alias
27026         all drawing primitives in the HTML Canvas element.
27027
27028         This speeds up drawing of dashed outlines significantly.
27029
27030         Also preserve the anti-aliasing renderhint for transparency layers and
27031         get rid of the mostly unused device pointer.
27032
27033         * platform/graphics/qt/GraphicsContextQt.cpp:
27034         (WebCore::TransparencyLayer::TransparencyLayer):
27035         (WebCore::GraphicsContextPlatformPrivate::p):
27036         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
27037         (WebCore::GraphicsContext::beginTransparencyLayer):
27038         (WebCore::GraphicsContext::drawRect):
27039         (WebCore::GraphicsContext::drawLine):
27040         (WebCore::GraphicsContext::strokeArc):
27041
27042 2008-04-24  Paul Olav Tvete <paul@trolltech.com>
27043
27044         Reviewed by Simon.
27045
27046         Fix various compiler warnings related to QString(const char *)
27047         construction by using QLatin1String.
27048
27049         * bridge/qt/qt_instance.cpp:
27050         (KJS::Bindings::QtField::valueFromInstance):
27051         (KJS::Bindings::QtField::setValueToInstance):
27052         * dom/XMLTokenizer.cpp:
27053         * platform/graphics/qt/PathQt.cpp:
27054         (WebCore::Path::debugString):
27055
27056 2008-04-24  Morten Johan Sørvig  <msorvig@trolltech.com>
27057
27058         Reviewed by Simon.
27059
27060         Work around QMacStyle bug in repainting the vertical scrollbar.
27061
27062         We draw the scrollbar using HITheme but somehow the translation and the
27063         clipping we previously set using ClipCGContextToRegion is ignored. Drawing
27064         without the translation fixes the clip.
27065
27066         * platform/qt/PlatformScrollBarQt.cpp:
27067         (WebCore::PlatformScrollbar::paint):
27068
27069 2008-04-24  Holger Hans Peter Freyther  <zecke@selfish.org>
27070
27071         Reviewed by Simon.
27072
27073         * Set an expiration date for local files as we do not know what will happen
27074         to these files (in contrast to a http server with max-age and other headers)
27075         * Remember the time when we started the job and use that for the expiration date
27076         * QNetworkManager does not handle expiration at all, we might want to set the
27077         expiration for all downloads but this will be a performance nightmare.
27078
27079         * platform/network/qt/QNetworkReplyHandler.cpp:
27080         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
27081         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
27082         (WebCore::QNetworkReplyHandler::start):
27083         * platform/network/qt/QNetworkReplyHandler.h:
27084
27085 2008-04-24  Simon Hausmann  <hausmann@webkit.org>
27086
27087         Fix the Gtk and Qt builds.
27088
27089         Added missing localization stubs for accessibility.
27090
27091         * platform/gtk/LocalizedStringsGtk.cpp:
27092         (WebCore::AXButtonActionVerb):
27093         (WebCore::AXRadioButtonActionVerb):
27094         (WebCore::AXTextFieldActionVerb):
27095         (WebCore::AXCheckedCheckBoxActionVerb):
27096         (WebCore::AXUncheckedCheckBoxActionVerb):
27097         (WebCore::AXLinkActionVerb):
27098         * platform/qt/Localizations.cpp:
27099         (WebCore::AXButtonActionVerb):
27100         (WebCore::AXRadioButtonActionVerb):
27101         (WebCore::AXTextFieldActionVerb):
27102         (WebCore::AXCheckedCheckBoxActionVerb):
27103         (WebCore::AXUncheckedCheckBoxActionVerb):
27104         (WebCore::AXLinkActionVerb):
27105
27106 2008-04-24  Olivier Goffart  <ogoffart@trolltech.com>
27107
27108         Reviewed by Simon
27109
27110         Fix various compiler warnings in the Qt port.
27111
27112         * platform/graphics/qt/ImageQt.cpp:
27113         (loadResourcePixmap):
27114         * platform/qt/CookieJarQt.cpp:
27115         (WebCore::cookies):
27116         * platform/qt/ScrollViewQt.cpp:
27117         (WebCore::ScrollView::wheelEvent):
27118         * plugins/qt/PluginDataQt.cpp:
27119         (WebCore::PluginData::initPlugins):
27120
27121 2008-04-24  Andre Poenitz  <andre.poenitz@trolltech.com>
27122
27123         Reviewed by Simon.
27124
27125         Removed spurious QHideEvent forward declaration.
27126
27127         * platform/qt/QWebPopup.h:
27128
27129 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
27130
27131         Reviewed by Simon.
27132
27133         Render text areas using Qt (ensures proper style).
27134
27135         * platform/qt/RenderThemeQt.cpp:
27136         (WebCore::RenderThemeQt::paintTextField):
27137         (WebCore::RenderThemeQt::adjustTextFieldStyle):
27138         (WebCore::RenderThemeQt::paintTextArea):
27139         (WebCore::RenderThemeQt::supportsFocus):
27140         * platform/qt/RenderThemeQt.h:
27141
27142 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
27143
27144         Reviewed by Simon.
27145
27146         Make mouse wheel events over scrollbars behave the same as in Qt, i.e. both
27147         horizontal and vertical wheel events will scroll the view in the orientation
27148         of the scrollbar underneath the cursor.
27149
27150         * platform/qt/ScrollViewQt.cpp:
27151         (WebCore::ScrollView::paint):
27152         (WebCore::ScrollView::wheelEvent):
27153
27154 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
27155
27156         Reviewed by Brady.
27157
27158         * page/AccessibilityObject.cpp:
27159         (WebCore::AccessibilityObject::press): Return false if this object
27160         doesn't have an action element associated with it.
27161         * page/AccessibilityObject.h: Added a performDefaultAction() method,
27162         which just calls press(). Marked press() const and changed its return
27163         type to bool.
27164
27165 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
27166
27167         Reviewed by Adam.
27168
27169         Don't allow a hit test to return an AccessibilityObject that should be
27170         ignored.
27171
27172         * page/AccessibilityObject.cpp:
27173         (WebCore::AccessibilityObject::doAccessibilityHitTest): If this result
27174         object's accessibility is ignored, return the parent unignored object.
27175
27176 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
27177
27178         Reviewed by Adam.
27179
27180         Fix a crash when performing a hit test on an AccessibilityObject with
27181         no layer (e.g., an AccessibilityObject for a RenderText object).
27182
27183         * page/AccessibilityObject.cpp:
27184         (WebCore::AccessibilityObject::doAccessibilityHitTest): Added a null
27185         check for layer. Removed a null check for m_renderer, which shouldn't
27186         occur.
27187
27188 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
27189
27190         * page/AccessibilityObject.cpp:
27191         (WebCore::AccessibilityObject::boundingBoxRect): Added FIXME about this
27192         method not working correctly for objects with CSS transforms applied.
27193
27194 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
27195
27196         Reviewed by Adam.
27197
27198         Implement contentsToScreen() and screenToContents() on Windows.
27199
27200         * platform/ScrollView.h: Make these declarations conditional on
27201         HAVE(ACCESSIBILITY) instead of PLATFORM(MAC).
27202         * platform/win/ScrollViewWin.cpp:
27203         (WebCore::ScrollView::contentsToScreen): Translate from coordinates
27204         relative to the ScrollView to coordinates relative to the screen. Do
27205         this by getting the offset of the ScrollView in screen coordinates and
27206         moving the rect by this amount.
27207         (WebCore::ScrollView::screenToContents): Translate from coordinates
27208         relative to the screen to coordinates relative to the ScrollView.
27209
27210 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
27211
27212         Reviewed by Oliver.
27213
27214         Add a method to get a localized, human-readable string stating this
27215         object's default action, e.g., a button's default action is "press."
27216
27217         * page/AccessibilityObject.cpp:
27218         (WebCore::AccessibilityObject::actionVerb): Added.
27219         * page/AccessibilityObject.h: Added declaration for actionVerb().
27220         * platform/LocalizedStrings.h: Added declarations for:
27221             AXButtonActionVerb()
27222             AXRadioButtonActionVerb()
27223             AXTextFieldActionVerb()
27224             AXCheckedCheckBoxActionVerb()
27225             AXUncheckedCheckBoxActionVerb()
27226             AXLinkActionVerb()
27227
27228 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
27229
27230         Reviewed by Simon.
27231
27232         Cleaned up copyright headers in the Qt port (removed misplaced class
27233         descriptions and fixed inconsistent whitespace and indentation).
27234
27235         * platform/graphics/qt/FontQt.cpp:
27236         * platform/qt/WheelEventQt.cpp:
27237
27238 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
27239
27240         Reviewed by Simon.
27241
27242         Disable vanlilla focus rings since Qt provides this as part of the style.
27243
27244         * platform/qt/RenderThemeQt.cpp:
27245
27246 2008-04-24  George Staikos  <george.staikos@torchmobile.com>
27247
27248         Reviewed by Simon.
27249
27250         This optimization in BitmapImage::drawPattern for the identity
27251         transform is bogus and causes incorrect results on sites like youtube.
27252
27253         * platform/graphics/qt/ImageQt.cpp:
27254         (WebCore::BitmapImage::drawPattern):
27255
27256 2008-04-23  Brady Eidson  <beidson@apple.com>
27257
27258         Reviewed by Jon Honeycutt
27259
27260         Preparing for making LocalStorageAreas persistent.
27261
27262         Since LocalStorageAreas will need to do a lot of additional work for each of the basic
27263         operations a Storage object supports, this patch makes the API entry points virtual so
27264         LocalStorageArea can override them.  The behavior for both Local and Session StorageAreas
27265         is unchanged with this patch, but LocalStorageArea will override them in the future.
27266
27267         * storage/StorageArea.cpp: Rename the implementations to internalFoo
27268         (WebCore::StorageArea::internalLength):
27269         (WebCore::StorageArea::internalKey):
27270         (WebCore::StorageArea::internalGetItem):
27271         (WebCore::StorageArea::internalSetItem):
27272         (WebCore::StorageArea::internalRemoveItem):
27273         (WebCore::StorageArea::internalContains):
27274
27275         * storage/StorageArea.h: Call internalFoo variants
27276         (WebCore::StorageArea::length):
27277         (WebCore::StorageArea::key):
27278         (WebCore::StorageArea::getItem):
27279         (WebCore::StorageArea::setItem):
27280         (WebCore::StorageArea::removeItem):
27281         (WebCore::StorageArea::contains):
27282
27283 2008-04-23  David Hyatt  <hyatt@apple.com>
27284
27285         Implement getComputedStyle for border-image.
27286
27287         Reviewed by Dan Bernstein
27288
27289         Added fast/css/getComputedStyle-border-image.html
27290
27291         * css/CSSComputedStyleDeclaration.cpp:
27292         (WebCore::valueForRepeatRule):
27293         (WebCore::valueForNinePieceImage):
27294         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
27295
27296 2008-04-22  Darin Adler  <darin@apple.com>
27297
27298         Reviewed by Anders.
27299
27300         - simplify use of HashTraits to prepare for some upcoming hash table changes
27301
27302         * page/AXObjectCache.h: Removed uneeded AXIDHashTraits, which are no different
27303         from the default hash traits for unsigned.
27304         * page/mac/AXObjectCacheMac.mm:
27305         (WebCore::AXObjectCache::removeAXID): Remove assertion that's already done
27306         by HashTable that the value is not the deleted value.
27307
27308         * platform/graphics/StringTruncator.cpp: Removed unneeded include.
27309         * svg/SVGFontFaceElement.cpp: Removed unneeded include.
27310
27311 2008-04-23  Kevin Ollivier  <kevino@theolliviers.com>
27312
27313         wx build fixes. Changing BackgroundLayer -> FillLayer and adding
27314         Frame::disconnectPlatformScriptObjects().
27315
27316         * platform/wx/RenderThemeWx.cpp:
27317         (WebCore::RenderThemeWx::isControlStyled):
27318         * platform/wx/TemporaryLinkStubs.cpp:
27319         (Frame::disconnectPlatformScriptObjects):
27320
27321 2008-04-23  David Hyatt  <hyatt@apple.com>
27322
27323         Add support for mask-box-image (similar to border-image).  This property enables a single image
27324         to overlay the entire mask area (with nine-piece slicing rules similar to border image).
27325
27326         Reviewed by Dan Bernstein
27327
27328         Added inline-mask-overlay.html, block-mask-overlay.html
27329
27330         * css/CSSComputedStyleDeclaration.cpp:
27331         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
27332         * css/CSSParser.cpp:
27333         (WebCore::CSSParser::parseValue):
27334         (WebCore::CSSParser::parseBorderImage):
27335         * css/CSSPropertyNames.in:
27336         * css/CSSStyleSelector.cpp:
27337         (WebCore::CSSStyleSelector::applyProperty):
27338         * rendering/InlineFlowBox.cpp:
27339         (WebCore::InlineFlowBox::paintMask):
27340         * rendering/RenderBox.cpp:
27341         (WebCore::RenderBox::paintMask):
27342         * rendering/RenderFlow.cpp:
27343         (WebCore::RenderFlow::paintLines):
27344         * rendering/RenderObject.cpp:
27345         (WebCore::RenderObject::paintNinePieceImage):
27346         (WebCore::RenderObject::paintBorder):
27347         * rendering/RenderObject.h:
27348         * rendering/RenderStyle.cpp:
27349         (WebCore::NinePieceImage::operator==):
27350         * rendering/RenderStyle.h:
27351         (WebCore::NinePieceImage::m_verticalRule):
27352         (WebCore::NinePieceImage::horizontalRule):
27353         (WebCore::NinePieceImage::verticalRule):
27354         (WebCore::RenderStyle::borderImage):
27355         (WebCore::RenderStyle::maskOverlayImage):
27356         (WebCore::RenderStyle::hasMask):
27357         (WebCore::RenderStyle::resetBorderImage):
27358         (WebCore::RenderStyle::setBorderImage):
27359         (WebCore::RenderStyle::setMaskOverlayImage):
27360         (WebCore::RenderStyle::initialNinePieceImage):
27361         * rendering/RenderTable.cpp:
27362         (WebCore::RenderTable::paintMask):
27363         * rendering/RenderTableCell.cpp:
27364         (WebCore::RenderTableCell::paintMask):
27365
27366 2008-04-23  Justin Garcia  <justin.garcia@apple.com>
27367
27368         Reviewed by Darin Adler.
27369
27370         <rdar://problem/5825350> OWA: Caret disappears when navigating with arrows keys in contenteditable div
27371
27372         * editing/htmlediting.cpp:
27373         (WebCore::firstEditablePositionAfterPositionInRoot): Return a null VisiblePosition if
27374         this function moves out of highestRoot.  Re-wrote so as to not duplicate code inside
27375         and outside of the while loop.
27376         (WebCore::lastEditablePositionBeforePositionInRoot): Ditto.
27377
27378 2008-04-23  Daniel Zucker  <zucker@wake3.com>
27379
27380         Reviewed by Adam Roben.
27381
27382         Fix build errors needed to compile Curl in Cairo build.  Add stubs for
27383         didReceiveAuthenticationChallenge, receivedCredential,
27384         receivedRequestToContinueWithoutCredential, and receivedCancellation.
27385         <https://bugs.webkit.org/show_bug.cgi?id=18468>
27386
27387         * platform/network/ResourceHandle.h:  
27388         * platform/network/curl/ResourceHandleCurl.cpp:
27389         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
27390         (WebCore::ResourceHandle::receivedCredential):
27391         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
27392         (WebCore::ResourceHandle::receivedCancellation):
27393
27394 2008-04-23  Dan Bernstein  <mitz@apple.com>
27395
27396         Reviewed by Darin Adler.
27397
27398         - fix a bug where moving forward in bidirectional text skips over the
27399           position after the end of the line
27400
27401         Test: editing/selection/move-past-trailing-space.html
27402
27403         * dom/Position.cpp:
27404         (WebCore::Position::upstream): Changed the logic for identifying when a
27405         position is after the last character of a text box of a text node that
27406         continues on the next line, to make it work correctly when boxes are not
27407         laid out in logical order.
27408         (WebCore::Position::downstream): Ditto.
27409
27410 2008-04-23  Brad Hughes  <bhughes@trolltech.com>
27411
27412         Reviewed by Simon.
27413
27414         Fix release build with the intel compiler
27415
27416         Intel compiler can't compile qtwebkit with -O2 or -O1, so we're left with -O0
27417
27418         * WebCore.pro:
27419
27420 2008-04-22  Dan Bernstein  <mitz@apple.com>
27421
27422         Reviewed by Anders Carlsson.
27423
27424         - remove unused calls to Position::upstream()
27425
27426         * editing/InsertLineBreakCommand.cpp:
27427         (WebCore::InsertLineBreakCommand::insertNodeAfterPosition):
27428         (WebCore::InsertLineBreakCommand::insertNodeBeforePosition):
27429
27430 2008-04-22  Jon Honeycutt  <jhoneycutt@apple.com>
27431
27432         Reviewed by Sam.
27433
27434         Add a method to query which modifier keys the platform uses for access
27435         key actions.
27436
27437         * page/EventHandler.cpp:
27438         (WebCore::EventHandler::handleAccessKey): Bitwise and the event's
27439         modifier keys with the platform's access key modifier mask to determine
27440         whether this event can perform an access key action.
27441         * page/EventHandler.h: Added s_accessKeyModifiers, a platform-defined
27442         mask of modifier keys used for access key actions, and a getter.
27443         * page/mac/EventHandlerMac.mm: Use PlatformKeyboardEvent::CtrlKey for
27444         access key actions.
27445         * page/qt/EventHandlerQt.cpp: Same.
27446         * page/gtk/EventHandlerGtk.cpp: Use AltKey.
27447         * page/win/EventHandlerWin.cpp: Same.
27448         * page/wx/EventHandlerWx.cpp: Same.
27449         * platform/PlatformKeyboardEvent.h: Added an enum, ModifierKey.
27450         (WebCore::PlatformKeyboardEvent::):
27451         (WebCore::PlatformKeyboardEvent::modifiers): Return which modifier keys
27452         were active, a combination of ModifierKey values.
27453
27454 2008-04-22  Sam Weinig  <sam@webkit.org>
27455
27456         Reviewed by Maciej Stachowiak.
27457
27458         Make the KJSProxy and FrameLoader member variables instead of pointers
27459         in FramePrivate in a bid to do a little clean up before the last of the
27460         split window patches.  Also, make the KJSProxy not lazily created, as the
27461         real benefit comes from lazily creating the JSDOMWindowWrapper, which we
27462         still do.
27463
27464         * page/Frame.cpp:
27465         (WebCore::Frame::~Frame):
27466         (WebCore::Frame::init):
27467         (WebCore::Frame::loader):
27468         (WebCore::Frame::scriptProxy):
27469         (WebCore::Frame::document):
27470         (WebCore::Frame::setDocument):
27471         (WebCore::Frame::clearScriptProxy):
27472         (WebCore::Frame::pageDestroyed):
27473         (WebCore::FramePrivate::FramePrivate):
27474         (WebCore::FramePrivate::~FramePrivate):
27475         * page/FramePrivate.h:
27476
27477 2008-04-22  Anatoli Papirovski  <apapirovski@mac.com>
27478
27479         Reviewed by Dan Bernstein.
27480
27481         - fix https://bugs.webkit.org/show_bug.cgi?id=18584
27482         border-color, outline-color, column-color, -webkit-text-stroke-color,
27483         and -webkit-text-fill-color inheritance to correctly use parent's color
27484         if the parent's corresponding (border, outline, etc.)-color property
27485         wasn't set.
27486
27487         Test: fast/borders/border-color-inherit.html
27488
27489         * css/CSSStyleSelector.cpp:
27490         (WebCore::CSSStyleSelector::applyProperty):
27491
27492 2008-04-22  Alp Toker  <alp@nuanti.com>
27493
27494         Rubber-stamped by Dave Hyatt.
27495
27496         Move GraphicsContext::clipToImageBuffer() notImplemented() stub to
27497         GraphicsContextCairo.
27498
27499         * platform/graphics/GraphicsContext.cpp:
27500         * platform/graphics/cairo/GraphicsContextCairo.cpp:
27501         (WebCore::GraphicsContext::clipToImageBuffer):
27502
27503 2008-04-22  David Hyatt  <hyatt@apple.com>
27504
27505         Add support for mask-composite to match background-composite.
27506
27507         Reviewed by Sam Weinig
27508
27509         Added fast/backgrounds/mask-composite.html
27510
27511         * css/CSSComputedStyleDeclaration.cpp:
27512         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
27513         * css/CSSParser.cpp:
27514         (WebCore::CSSParser::parseValue):
27515         (WebCore::CSSParser::parseFillProperty):
27516         * css/CSSPropertyNames.in:
27517         * css/CSSStyleSelector.cpp:
27518         (WebCore::CSSStyleSelector::applyProperty):
27519         * rendering/InlineFlowBox.cpp:
27520         (WebCore::InlineFlowBox::paintMask):
27521
27522 2008-04-22  David Hyatt  <hyatt@apple.com>
27523
27524         Fix for bug 18688, background-color stopped painting on inlines.  Fix a virtual function
27525         misnaming that led to the derived class not getting called properly.
27526
27527         Reviewed by Mark Rowe
27528
27529         * ChangeLog:
27530         * rendering/InlineFlowBox.cpp:
27531         (WebCore::InlineFlowBox::paintFillLayer):
27532         * rendering/RenderObject.h:
27533         (WebCore::RenderObject::paintFillLayerExtended):
27534
27535 2008-04-22  Brady Eidson  <beidson@apple.com>
27536
27537         Reviewed by Sam Weinig
27538
27539         <rdar://problem/5733282> and https://bugs.webkit.org/show_bug.cgi?id=18680
27540         Always loads default shortcut icon URL when an external <script> is referenced before the icon URL is set.
27541
27542         * dom/Document.cpp:
27543         (WebCore::Document::implicitClose): Call FrameLoader->startIconLoader() here, when the document is
27544           finished parsing.
27545
27546         * loader/FrameLoader.cpp:
27547         (WebCore::FrameLoader::endIfNotLoadingMainResource):  Don't start the icon load here, when the
27548           document is finished parsing.  This was often too early, as document parsing may be blocked
27549           on an external script and therefore the correct iconURL is not set yet.
27550           The isLoadingFromCachedPage() check was when we started the icon load based on *loading* instead parsing,
27551           and is now irrelevant.
27552         * loader/FrameLoader.h:  Make startIconLoader() public
27553
27554 2008-04-22  Antti Koivisto  <antti@apple.com>
27555
27556         Reviewed by Oliver.
27557
27558         Support keyPoints attribute of <animateMotion>.
27559         
27560         Tested by SVG test suite test
27561         animate-elem-33-t.svg
27562
27563         * svg/SVGAnimateMotionElement.cpp:
27564         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
27565         * svg/SVGAnimationElement.cpp:
27566         (WebCore::parseKeyTimes):
27567         (WebCore::SVGAnimationElement::parseMappedAttribute):
27568         (WebCore::SVGAnimationElement::calculatePercentForSpline):
27569         (WebCore::SVGAnimationElement::calculatePercentFromKeyPoints):
27570         (WebCore::SVGAnimationElement::currentValuesFromKeyPoints):
27571         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
27572         (WebCore::SVGAnimationElement::startedActiveInterval):
27573         (WebCore::SVGAnimationElement::updateAnimation):
27574         * svg/SVGAnimationElement.h:
27575
27576 2008-04-22  Holger Hans Peter Freyther  <zecke@selfish.org>
27577
27578         Unreviewed build fix.
27579
27580         Update WebKit.qrc to catch up with the addition and removal of images
27581         from page/inspector/Images in recent commits.
27582
27583         * page/inspector/WebKit.qrc:
27584
27585 2008-04-22  David Hyatt  <hyatt@apple.com>
27586
27587         Fix for <rdar://5589634>.
27588
27589         Implement CSS alpha masks.  The syntax is very similar to that used for backgrounds.  Multiple mask images
27590         can be specified, and each one can be tiled, positioned, etc.  The following new properties have been
27591         added (all of which are analogous to their background-* counterparts).
27592
27593         mask, mask-image, mask-clip, mask-origin, mask-repeat, mask-attachment, mask-position
27594
27595         The alpha values in the final composite image are used to determine how the mask applies (alpha of 1 = show,
27596         alpha of 0 = don't show).
27597
27598         SVG images and CSS gradients can also be used as masks.
27599
27600         Reviewed by Dan
27601
27602         Added fast/backgrounds/repeat/mask-negative-offset-repeat.html, fast/backgrounds/svg-as-mask.html
27603
27604         * css/CSSMutableStyleDeclaration.cpp:
27605         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
27606         (WebCore::initShorthandMap):
27607         * css/CSSParser.cpp:
27608         (WebCore::CSSParser::parseFillProperty):
27609         (WebCore::CSSParser::parseTransformOrigin):
27610         * css/CSSStyleSelector.cpp:
27611         (WebCore::CSSStyleSelector::adjustRenderStyle):
27612         (WebCore::CSSStyleSelector::applyProperty):
27613         * rendering/InlineFlowBox.cpp:
27614         (WebCore::InlineFlowBox::paint):
27615         (WebCore::InlineFlowBox::paintFillLayers):
27616         (WebCore::InlineFlowBox::paintFillLayer):
27617         (WebCore::InlineFlowBox::paintBoxDecorations):
27618         (WebCore::InlineFlowBox::paintMask):
27619         * rendering/InlineFlowBox.h:
27620         * rendering/RenderBlock.cpp:
27621         (WebCore::RenderBlock::paint):
27622         (WebCore::RenderBlock::paintObject):
27623         * rendering/RenderBox.cpp:
27624         (WebCore::RenderBox::paintRootBoxDecorations):
27625         (WebCore::RenderBox::paintBoxDecorations):
27626         (WebCore::RenderBox::paintMask):
27627         (WebCore::RenderBox::paintFillLayers):
27628         (WebCore::RenderBox::paintFillLayer):
27629         (WebCore::RenderBox::paintFillLayerExtended):
27630         * rendering/RenderBox.h:
27631         * rendering/RenderFieldset.cpp:
27632         (WebCore::RenderFieldset::paintBoxDecorations):
27633         (WebCore::RenderFieldset::paintMask):
27634         * rendering/RenderFieldset.h:
27635         * rendering/RenderInline.cpp:
27636         (WebCore::RenderInline::requiresLayer):
27637         * rendering/RenderLayer.cpp:
27638         (WebCore::RenderLayer::isTransparent):
27639         (WebCore::RenderLayer::paintLayer):
27640         * rendering/RenderObject.cpp:
27641         (WebCore::RenderObject::requiresLayer):
27642         (WebCore::mustRepaintFillLayers):
27643         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
27644         (WebCore::RenderObject::setStyle):
27645         (WebCore::RenderObject::updateFillImages):
27646         * rendering/RenderObject.h:
27647         (WebCore::RenderObject::hasMask):
27648         (WebCore::RenderObject::paintMask):
27649         (WebCore::RenderObject::paintFillExtended):
27650         * rendering/RenderReplaced.cpp:
27651         (WebCore::RenderReplaced::paint):
27652         * rendering/RenderStyle.cpp:
27653         (WebCore::FillLayer::FillLayer):
27654         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
27655         * rendering/RenderStyle.h:
27656         (WebCore::FillLayer::initialFillComposite):
27657         (WebCore::FillLayer::initialFillSize):
27658         (WebCore::FillLayer::FillLayer):
27659         (WebCore::RenderStyle::hasMask):
27660         * rendering/RenderTable.cpp:
27661         (WebCore::RenderTable::paint):
27662         (WebCore::RenderTable::paintBoxDecorations):
27663         (WebCore::RenderTable::paintMask):
27664         * rendering/RenderTable.h:
27665         * rendering/RenderTableCell.cpp:
27666         (WebCore::RenderTableCell::requiresLayer):
27667         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
27668         (WebCore::RenderTableCell::paintMask):
27669         * rendering/RenderTableCell.h:
27670         * rendering/RenderWidget.cpp:
27671         (WebCore::RenderWidget::paint):
27672         * svg/graphics/SVGImage.cpp:
27673         (WebCore::SVGImage::draw):
27674         (WebCore::SVGImage::dataChanged):
27675
27676 2008-04-22  Sam Weinig  <sam@webkit.org>
27677
27678         Reviewed by Geoffrey Garen.
27679
27680         Make DOMAbstractView have a weak reference to the Frame instead of ref'ing
27681         the DOMWindow.
27682
27683         To ensure that the WindowScriptObject (which is a DOMAbstractView) stays valid
27684         after a navigation once the split window is completed, the DOMAbstractView must
27685         wrap the Frame instead of a DOMWindow since the DOMWindow will change.
27686
27687         * WebCore.xcodeproj/project.pbxproj:
27688         * bindings/objc/DOMAbstractView.mm: Added.
27689         (-[DOMAbstractView dealloc]):
27690         (-[DOMAbstractView finalize]):
27691         (-[DOMAbstractView document]):
27692         (-[DOMAbstractView _disconnectFrame]):
27693         (-[DOMAbstractView WebCore::]):
27694         (-[DOMAbstractView _initWithFrame:WebCore::]):
27695         (+[DOMAbstractView _wrapAbstractView:WebCore::]):
27696         Add custom implementation to implement weak reference semantics.
27697
27698         * bindings/objc/DOMAbstractViewFrame.h: Added.
27699         Declare the [DOMAbstractView _disconectFrame] selector.
27700         * bindings/objc/DOMInternal.h:
27701         Remove DOMRGBColor Internal category since it is now generated.
27702
27703         * bindings/objc/DOMUtility.mm:
27704         (KJS::createDOMWrapper):
27705         Don't ever create a DOMAbstractView from a JSDOMWindow, only from JSDOMWindowWrapper.
27706
27707         * bindings/scripts/CodeGeneratorObjC.pm:
27708         Generate internal header for IDLs that want custom implementations.
27709
27710         * css/RGBColor.idl:
27711         Make this a PODType as it really is in the implementation.
27712
27713         * page/AbstractView.idl:
27714         This now needs a custom objective-c binding implementation.
27715
27716         * page/Frame.cpp:
27717         (WebCore::Frame::~Frame):
27718         disconnect the weak frame reference in the WindowScriptObject.
27719
27720         * page/Frame.h:
27721         * page/gtk/FrameGtk.cpp:
27722         (WebCore::Frame::disconnectPlatformScriptObjects): Dummy implementation.
27723         * page/mac/FrameMac.mm:
27724         (WebCore::Frame::windowScriptObject): ASSERT that the windowScriptObject is a DOMAbstractView.
27725         (WebCore::Frame::disconnectPlatformScriptObjects): Disconnect the frame pointer from the windowScriptObject.
27726         * page/qt/FrameQt.cpp:
27727         (WebCore::Frame::disconnectPlatformScriptObjects): Dummy implementation.
27728         * page/win/FrameWin.cpp:
27729         (WebCore::Frame::disconnectPlatformScriptObjects): Ditto.
27730
27731 2008-04-22  Dan Bernstein  <mitz@apple.com>
27732
27733         Reviewed by Sam Weinig.
27734
27735         - preparation for https://bugs.webkit.org/show_bug.cgi?id=3729
27736           <rdar://problem/4036353> REGRESSION: arrow keys move insertion bar backwards in RTL text
27737
27738         * rendering/bidi.cpp:
27739         (WebCore::RenderBlock::layoutInlineChildren): Make sure to give the
27740         trailing white space a bidi level consistent with its position.
27741
27742 2008-04-22  Timothy Hatcher  <timothy@apple.com>
27743
27744         Remove many unused Web Inspector images.
27745
27746         Rubber-stamped by Adam Roben and Sam Weinig.
27747
27748         * page/inspector/Images/attachedShadow.png: Removed.
27749         * page/inspector/Images/backNormal.png: Removed.
27750         * page/inspector/Images/bottomShadow.png: Removed.
27751         * page/inspector/Images/breadcrumbBackground.png: Removed.
27752         * page/inspector/Images/console.png: Removed.
27753         * page/inspector/Images/databaseBrowserViewNormal.png: Removed.
27754         * page/inspector/Images/databaseBrowserViewNormalSelected.png: Removed.
27755         * page/inspector/Images/databaseBrowserViewSmall.png: Removed.
27756         * page/inspector/Images/databaseBrowserViewSmallSelected.png: Removed.
27757         * page/inspector/Images/databaseQueryViewNormal.png: Removed.
27758         * page/inspector/Images/databaseQueryViewNormalSelected.png: Removed.
27759         * page/inspector/Images/databaseQueryViewSmall.png: Removed.
27760         * page/inspector/Images/databaseQueryViewSmallSelected.png: Removed.
27761         * page/inspector/Images/disclosureDownPressed.png: Removed.
27762         * page/inspector/Images/disclosureRightDown.png: Removed.
27763         * page/inspector/Images/disclosureRightPressed.png: Removed.
27764         * page/inspector/Images/document.png: Removed.
27765         * page/inspector/Images/domViewNormal.png: Removed.
27766         * page/inspector/Images/domViewNormalSelected.png: Removed.
27767         * page/inspector/Images/domViewSmall.png: Removed.
27768         * page/inspector/Images/domViewSmallSelected.png: Removed.
27769         * page/inspector/Images/downTriangle.png: Removed.
27770         * page/inspector/Images/folder.png: Removed.
27771         * page/inspector/Images/forwardNormal.png: Removed.
27772         * page/inspector/Images/gradient.png: Removed.
27773         * page/inspector/Images/gradientHighlight.png: Removed.
27774         * page/inspector/Images/gradientHighlightBottom.png: Removed.
27775         * page/inspector/Images/hideStatusWidget.png: Removed.
27776         * page/inspector/Images/hideStatusWidgetPressed.png: Removed.
27777         * page/inspector/Images/network.png: Removed.
27778         * page/inspector/Images/plainDocument.png: Removed.
27779         * page/inspector/Images/popupArrows.png: Removed.
27780         * page/inspector/Images/popupArrowsBlack.png: Removed.
27781         * page/inspector/Images/reload.png: Removed.
27782         * page/inspector/Images/rightTriangle.png: Removed.
27783         * page/inspector/Images/showStatusWidget.png: Removed.
27784         * page/inspector/Images/showStatusWidgetPressed.png: Removed.
27785         * page/inspector/Images/sidbarItemBackground.png: Removed.
27786         * page/inspector/Images/sidebarActionWidget.png: Removed.
27787         * page/inspector/Images/sidebarActionWidgetPressed.png: Removed.
27788         * page/inspector/Images/sidebarAttachWidget.png: Removed.
27789         * page/inspector/Images/sidebarAttachWidgetPressed.png: Removed.
27790         * page/inspector/Images/sidebarDetachWidget.png: Removed.
27791         * page/inspector/Images/sidebarDetachWidgetPressed.png: Removed.
27792         * page/inspector/Images/sidebarResizeWidget.png: Removed.
27793         * page/inspector/Images/sidebarStatusAreaBackground.png: Removed.
27794         * page/inspector/Images/sourceViewNormal.png: Removed.
27795         * page/inspector/Images/sourceViewNormalSelected.png: Removed.
27796         * page/inspector/Images/sourceViewSmall.png: Removed.
27797         * page/inspector/Images/sourceViewSmallSelected.png: Removed.
27798         * page/inspector/Images/tab.png: Removed.
27799         * page/inspector/Images/tabSelected.png: Removed.
27800         * page/inspector/Images/toggleDown.png: Removed.
27801         * page/inspector/Images/toggleUp.png: Removed.
27802         * page/inspector/Images/toolbarButtonNormal.png: Removed.
27803         * page/inspector/Images/toolbarButtonNormalInactive.png: Removed.
27804         * page/inspector/Images/toolbarButtonNormalPressed.png: Removed.
27805         * page/inspector/Images/toolbarButtonNormalSelected.png: Removed.
27806         * page/inspector/Images/toolbarButtonNormalSelectedInactive.png: Removed.
27807         * page/inspector/Images/toolbarButtonSmall.png: Removed.
27808         * page/inspector/Images/toolbarButtonSmallInactive.png: Removed.
27809         * page/inspector/Images/toolbarButtonSmallPressed.png: Removed.
27810         * page/inspector/Images/toolbarButtonSmallSelected.png: Removed.
27811         * page/inspector/Images/toolbarButtonSmallSelectedInactive.png: Removed.
27812         * page/inspector/Images/toolbarPopupButtonNormal.png: Removed.
27813         * page/inspector/Images/toolbarPopupButtonNormalInactive.png: Removed.
27814         * page/inspector/Images/toolbarPopupButtonNormalPressed.png: Removed.
27815         * page/inspector/Images/toolbarPopupButtonSmall.png: Removed.
27816         * page/inspector/Images/toolbarPopupButtonSmallInactive.png: Removed.
27817         * page/inspector/Images/toolbarPopupButtonSmallPressed.png: Removed.
27818         * page/inspector/Images/toolbarSplitButtonDividerNormal.png: Removed.
27819         * page/inspector/Images/toolbarSplitButtonDividerNormalInactive.png: Removed.
27820         * page/inspector/Images/toolbarSplitButtonDividerSmall.png: Removed.
27821         * page/inspector/Images/toolbarSplitButtonDividerSmallInactive.png: Removed.
27822         * page/inspector/Images/treeLeftTriangleBlack.png: Removed.
27823
27824 2008-04-22  Anders Carlsson  <andersca@apple.com>
27825
27826         Reviewed by Darin.
27827
27828         Add NPN_Construct and NPN_PluginThreadAsyncCall declarations.
27829
27830         * bridge/npapi.h:
27831         * bridge/npruntime.h:
27832         * plugins/npfunctions.h:
27833
27834 2008-04-22  Alice Liu  <alice.liu@apple.com>
27835
27836         Reviewed by John Sullivan and Adam Roben.
27837
27838         Test: fast/events/tabindex-focus-chain.html
27839
27840         * dom/Document.cpp:
27841         (WebCore::Document::nextFocusableNode):
27842         (WebCore::Document::previousFocusableNode):
27843         If the focused node has been removed from the normal tabbing order,
27844         advancing focus from this node should advance to the next focusable
27845         node in tree order, and not start over at the beginning of the focus
27846         chain. 
27847
27848 2008-04-22  Timothy Hatcher  <timothy@apple.com>
27849
27850         Adds a debugger toggle button to the scripts status bar that will start
27851         and stop debugging of the inspected page.
27852
27853         Reviewed by Adam Roben.
27854
27855         * English.lproj/InspectorLocalizedStrings.js: Adds the two new tooltip strings.
27856         * page/InspectorController.cpp:
27857         (WebCore::debuggerAttached): Call InspectorController::debuggerAttached.
27858         (WebCore::InspectorController::InspectorController): Initialize
27859         m_debuggerAttached to false.
27860         (WebCore::InspectorController::windowScriptObjectAvailable): Add the debuggerAttached
27861         property to the InspectorController class.
27862         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
27863         Set m_debuggerAttached to true.
27864         (WebCore::InspectorController::stopDebugging): Set m_debuggerAttached to false.
27865         * page/InspectorController.h:
27866         * page/inspector/Images/debuggingButtons.png: Added.
27867         * page/inspector/ScriptsPanel.js:
27868         (WebInspector.ScriptsPanel): Disable the pause button. Create the debugging
27869         button and setup the id, className and event listener. Call reset.
27870         (WebInspector.ScriptsPanel.prototype.get statusBarItems): Return an array
27871         (WebInspector.ScriptsPanel.prototype.reset): Call _updateDebuggerButtons.
27872         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Adjust the title of
27873         the debugging button to match what will happen when clicked. Change the style class,
27874         and toggle the disabled state of the pause button.
27875         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Start or stop debugging
27876         depending on InspectorController.debuggerAttached().
27877         * page/inspector/inspector.css: Added style rules for the debugger button.
27878
27879 2008-04-21  Adam Roben  <aroben@apple.com>
27880
27881         Change PlatformWheelEvent to use GET_WHEEL_DELTA_WPARAM
27882
27883         Reviewed by Dan Bernstein.
27884
27885         * platform/win/WheelEventWin.cpp:
27886         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use
27887         GET_WHEEL_DELTA_WPARAM, which is documented way of getting the wheel
27888         delta (it is equivalent to what we were previously doing, however).
27889
27890 2008-04-22  Simon Hausmann  <hausmann@webkit.org>
27891
27892         Qt build fix.
27893
27894         Adjust the Qt resource file to removed image files.
27895
27896         * page/inspector/WebKit.qrc:
27897
27898 2008-04-21  Timothy Hatcher  <timothy@apple.com>
27899
27900         Use CSS gradients to replace many image files in the Web Inspector.
27901
27902         Rubber-stamped by Adam Roben.
27903
27904         * page/inspector/Images/alternateTableRows.png: Removed.
27905         * page/inspector/Images/darkShadow.png: Removed.
27906         * page/inspector/Images/paneHeader.png: Removed.
27907         * page/inspector/Images/paneHeaderActive.png: Removed.
27908         * page/inspector/Images/sidebarSelection.png: Removed.
27909         * page/inspector/Images/sidebarSelectionBackground.png: Removed.
27910         * page/inspector/Images/sidebarSelectionBackgroundFocused.png: Removed.
27911         * page/inspector/Images/sidebarSelectionBackgroundInactive.png: Removed.
27912         * page/inspector/Images/sidebarSelectionBlurred.png: Removed.
27913         * page/inspector/Images/sidebarSelectionBlurredTall.png: Removed.
27914         * page/inspector/Images/sidebarSelectionGray.png: Removed.
27915         * page/inspector/Images/sidebarSelectionGrayTall.png: Removed.
27916         * page/inspector/Images/sidebarSelectionTall.png: Removed.
27917         * page/inspector/Images/sidebarSmallSelectionBackground.png: Removed.
27918         * page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Removed.
27919         * page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Removed.
27920         * page/inspector/Images/toolbarBackground.png: Removed.
27921         * page/inspector/Images/toolbarBackgroundInactive.png: Removed.
27922         * page/inspector/inspector.css:
27923
27924 2008-04-22  Andre Poenitz  <andre.poenitz@trolltech.com>
27925
27926         Reviewed by Simon.
27927
27928         Remove compiler warnings on string literals used to construct QStrings
27929         in webkit.
27930
27931         * bridge/qt/qt_instance.cpp:
27932         (KJS::Bindings::QtField::valueFromInstance):
27933         (KJS::Bindings::QtField::setValueToInstance):
27934         * bridge/qt/qt_runtime.cpp:
27935         (KJS::Bindings::convertValueToQVariant):
27936         (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
27937
27938 2008-04-22  Tor Arne Vestbø  <tavestbo@trolltech.com>
27939
27940         Reviewed by Simon.
27941
27942         Fall back to last path component for suggested filename if the HTTP content disposition is not set.
27943
27944         * platform/network/qt/QNetworkReplyHandler.cpp:
27945         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
27946
27947 2008-04-22  Tor Arne Vestbø  <tavestbo@trolltech.com>
27948
27949         Reviewed by Simon.
27950
27951         Implemented the generation of the title string for images.
27952
27953         * platform/qt/Localizations.cpp:
27954
27955 2008-04-22  Simon Hausmann  <hausmann@webkit.org>
27956
27957         Qt build fix.
27958
27959         * platform/qt/RenderThemeQt.cpp: Adjust isControlStyled signature to
27960         the signature in the base class.
27961         * platform/qt/RenderThemeQt.h: Ditto.
27962
27963 2008-04-19  Jon Honeycutt  <jhoneycutt@apple.com>
27964
27965         Reviewed by Darin.
27966
27967         Add a method to get the AccessibilityObject's access key,
27968
27969         * page/AccessibilityObject.cpp:
27970         (WebCore::AccessibilityObject::accessKey): Added; returns the object's
27971         access key attribute.
27972         * page/AccessibilityObject.h: Added declaration for accessKey().
27973
27974 2008-04-21  Sam Weinig  <sam@webkit.org>
27975
27976         Reviewed by Anders Carlsson.
27977
27978         Fix numerous crashing tests.
27979
27980         * html/HTMLHtmlElement.cpp:
27981         (WebCore::HTMLHtmlElement::insertedIntoDocument): Null check document->frame().
27982
27983 2008-04-21  Dan Bernstein  <mitz@apple.com>
27984
27985         Reviewed by Darin Adler.
27986
27987         Tests: fast/media/implicit-media-all.html
27988                fast/media/monochrome.html
27989
27990         - allow implicit "all" media in media queries
27991         - use a value of 0 for the monochrome media feature on color displays
27992
27993         * css/CSSGrammar.y:
27994         * css/CSSParser.cpp:
27995         (WebCore::CSSParser::createFloatingMediaQuery):
27996         * css/CSSParser.h:
27997         * css/MediaQueryEvaluator.cpp:
27998         (WebCore::monochromeMediaFeatureEval):
27999
28000 2008-04-21  Brady Eidson  <beidson@apple.com>
28001
28002         Rockingly reviewed by Adele
28003
28004         Small StorageArea cleanups
28005
28006         * storage/SessionStorageArea.cpp:
28007         (WebCore::SessionStorageArea::copy): Pass "this" instead of the StorageMap belonging to this
28008         (WebCore::SessionStorageArea::SessionStorageArea):
28009         * storage/SessionStorageArea.h:
28010
28011         * storage/StorageArea.cpp:  Changed to not expose the StorageMap at all - it's dangerous to expose
28012           it since we rely explicitly on its ref-count
28013         (WebCore::StorageArea::StorageArea): Take another StorageArea as the c'tor argument and get the 
28014           StorageMap from that.
28015         (WebCore::StorageArea::setItem):  The previous comment/code here was bogus.  All JS objects passed in
28016           to this API are stringified, so there's no such thing as "null" for setItem()
28017         * storage/StorageArea.h:
28018
28019 2008-04-21  Justin Garcia  <justin.garcia@apple.com>
28020
28021         Reviewed by John Sullivan.
28022
28023         <rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)
28024         
28025         If we're doing InsertParagraphSeparator at the end of a header element, do not clone it.
28026         Renamed m_useDefaultParagraphElement to m_mustUseDefaultParagraphElement, since now,
28027         when it is false, that does not necessarily mean that a default paragraph element
28028         will not be used.  Callers that passed false for this argument are OK with this.
28029
28030         * editing/InsertParagraphSeparatorCommand.cpp:
28031         (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): 
28032         (WebCore::InsertParagraphSeparatorCommand::shouldUseDefaultParagraphElement):
28033         (WebCore::InsertParagraphSeparatorCommand::doApply):
28034         * editing/InsertParagraphSeparatorCommand.h:
28035
28036 2008-04-21  Anders Carlsson  <andersca@apple.com>
28037
28038         Reviewed by Adam.
28039
28040         Perform cache selection. If a main resource has a URL that exists in a cache, load it from there.
28041         
28042         * html/HTMLAttributeNames.in:
28043         Add manifest attribute.
28044         
28045         * html/HTMLHtmlElement.cpp:
28046         (WebCore::HTMLHtmlElement::insertedIntoDocument):
28047         * html/HTMLHtmlElement.h:
28048         Perform cache selection.
28049         
28050         * loader/MainResourceLoader.cpp:
28051         (WebCore::MainResourceLoader::load):
28052         * loader/appcache/ApplicationCacheGroup.cpp:
28053         (WebCore::cacheHostSet):
28054         (WebCore::urlHostHash):
28055         (WebCore::ApplicationCacheGroup::cacheForRequest):
28056         (WebCore::ApplicationCacheGroup::selectCache):
28057         * loader/appcache/ApplicationCacheGroup.h:
28058         * platform/KURL.h:
28059         (WebCore::KURL::hostStart):
28060         (WebCore::KURL::hostEnd):
28061
28062 2008-04-21  Mike Belshe  <mike@belshe.com>
28063
28064         Reviewed by eseidel and darin.  Landed by eseidel.
28065
28066         Fix broken optimization in createStrippingNullCharacters.
28067
28068         * platform/text/StringImpl.cpp:
28069         (WebCore::StringImpl::createStrippingNullCharacters):
28070
28071 2008-04-21  David Hyatt  <hyatt@apple.com>
28072
28073         Make the back end parsing of background properties generic.  Rename all the parsing functions from
28074         background -> fill.
28075
28076         Add a new set of properties for doing masks.  The code is now refactored so that the mask properties
28077         and the background properties share parsing routines.
28078
28079         Reviewed by Dan
28080
28081         * css/CSSComputedStyleDeclaration.cpp:
28082         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
28083         * css/CSSParser.cpp:
28084         (WebCore::CSSParser::parseValue):
28085         (WebCore::CSSParser::addFillValue):
28086         (WebCore::CSSParser::parseFillShorthand):
28087         (WebCore::CSSParser::parseFillImage):
28088         (WebCore::CSSParser::parseFillPositionXY):
28089         (WebCore::CSSParser::parseFillPosition):
28090         (WebCore::CSSParser::parseFillSize):
28091         (WebCore::CSSParser::parseFillProperty):
28092         (WebCore::CSSParser::parseTransformOrigin):
28093         * css/CSSParser.h:
28094         * css/CSSPropertyNames.in:
28095         * css/CSSStyleSelector.cpp:
28096         (WebCore::CSSStyleSelector::CSSStyleSelector):
28097         (WebCore::CSSStyleSelector::mapFillAttachment):
28098         (WebCore::CSSStyleSelector::mapFillClip):
28099         (WebCore::CSSStyleSelector::mapFillComposite):
28100         (WebCore::CSSStyleSelector::mapFillOrigin):
28101         (WebCore::CSSStyleSelector::mapFillImage):
28102         (WebCore::CSSStyleSelector::mapFillRepeat):
28103         (WebCore::CSSStyleSelector::mapFillSize):
28104         (WebCore::CSSStyleSelector::mapFillXPosition):
28105         (WebCore::CSSStyleSelector::mapFillYPosition):
28106         * rendering/RenderStyle.cpp:
28107         (WebCore::FillLayer::FillLayer):
28108         (WebCore::FillLayer::operator=):
28109         (WebCore::FillLayer::operator==):
28110         (WebCore::StyleBackgroundData::StyleBackgroundData):
28111         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
28112         (WebCore::StyleRareNonInheritedData::operator==):
28113         (WebCore::RenderStyle::diff):
28114         * rendering/RenderStyle.h:
28115         (WebCore::LengthSize::LengthSize):
28116         (WebCore::FillLayer::type):
28117         (WebCore::FillLayer::initialFillAttachment):
28118         (WebCore::FillLayer::initialFillClip):
28119         (WebCore::FillLayer::initialFillOrigin):
28120         (WebCore::FillLayer::initialFillRepeat):
28121         (WebCore::FillLayer::initialFillComposite):
28122         (WebCore::FillLayer::initialFillSize):
28123         (WebCore::FillLayer::initialFillXPosition):
28124         (WebCore::FillLayer::initialFillYPosition):
28125         (WebCore::FillLayer::initialFillImage):
28126         (WebCore::RenderStyle::maskImage):
28127         (WebCore::RenderStyle::maskRepeat):
28128         (WebCore::RenderStyle::maskComposite):
28129         (WebCore::RenderStyle::maskAttachment):
28130         (WebCore::RenderStyle::maskClip):
28131         (WebCore::RenderStyle::maskOrigin):
28132         (WebCore::RenderStyle::maskXPosition):
28133         (WebCore::RenderStyle::maskYPosition):
28134         (WebCore::RenderStyle::maskSize):
28135         (WebCore::RenderStyle::accessMaskLayers):
28136         (WebCore::RenderStyle::maskLayers):
28137         (WebCore::RenderStyle::clearBackgroundLayers):
28138         (WebCore::RenderStyle::clearMaskLayers):
28139         (WebCore::RenderStyle::inheritMaskLayers):
28140
28141 2008-04-21  Timothy Hatcher  <timothy@apple.com>
28142
28143         Fixes the issue were a Database view could still be visible after navigating to a new page.
28144
28145         Reviewed by Darin Adler.
28146
28147         * page/inspector/DatabasesPanel.js:
28148         (WebInspector.DatabasesPanel.prototype.reset): Delete the _tableViews and _queryView properties
28149         from all databases. Remove all the children from databaseViews.
28150
28151 2008-04-21  Timothy Hatcher  <timothy@apple.com>
28152
28153         Adds the ability to enter multi-line commands in the console by holding the
28154         alt/option key when pressing enter/return.
28155
28156         https://bugs.webkit.org/show_bug.cgi?id=18454
28157
28158         Reviewed by Darin Adler.
28159
28160         * page/inspector/Console.js:
28161         (WebInspector.Console.prototype._enterKeyPressed): Return early if the
28162         alt/option key is held when enter is pressed.
28163         * page/inspector/inspector.css:
28164         (.console-message-text): Added. Set white-space: pre-wrap.
28165
28166 2008-04-21  Timothy Hatcher  <timothy@apple.com>
28167
28168         Fixes the bug where the Database table names do not update when
28169         running the CREATE TABLE or DROP TABLE queries. Also makes the
28170         table names update every time the database is collapsed and expanded.
28171
28172         https://bugs.webkit.org/show_bug.cgi?id=18453
28173
28174         Reviewed by Darin Adler.
28175
28176         * page/inspector/DatabasesPanel.js:
28177         (WebInspector.DatabasesPanel.prototype.updateDatabaseTables):
28178         Set shouldRefreshChildren to true on the Database's tree element.
28179         The refreshChildren property was renamed to shouldRefreshChildren.
28180         (WebInspector.DatabaseSidebarTreeElement.prototype.oncollapse):
28181         Request a refresh after every collapse so the next expand will
28182         have an updated table list.
28183
28184 2008-04-21  Timothy Hatcher  <timothy@apple.com>
28185
28186         Adds INDEX to the list of completion words for the Databases query view.
28187
28188         https://bugs.webkit.org/show_bug.cgi?id=18452
28189
28190         Reviewed by Darin Adler.
28191
28192         * page/inspector/DatabaseQueryView.js:
28193         (WebInspector.DatabaseQueryView.prototype.completions): Split up "CREATE TABLE "
28194         and "DROP TABLE " into "CREATE ", "DROP ", "TABLE ". And added "INDEX ".
28195
28196 2008-04-21  Timothy Hatcher  <timothy@apple.com>
28197
28198         Adds the UI portions of the Scripts panel to the Web Inspector.
28199         The Scripts panel has not been added to the toolbar yet.
28200
28201         https://bugs.webkit.org/show_bug.cgi?id=18601
28202
28203         Reviewed by Adam Roben.
28204
28205         * English.lproj/InspectorLocalizedStrings.js: Changed "Show inherited properties"
28206         to "Show inherited". Adds new strings for the Scripts' panel tooltips.
28207         * page/inspector/BreakpointsSidebarPane.js: Added.
28208         * page/inspector/CallStackSidebarPane.js: Added.
28209         * page/inspector/Images/back.png: Added.
28210         * page/inspector/Images/debuggerContinue.png: Added.
28211         * page/inspector/Images/debuggerPause.png: Added.
28212         * page/inspector/Images/debuggerStepInto.png: Added.
28213         * page/inspector/Images/debuggerStepOut.png: Added.
28214         * page/inspector/Images/debuggerStepOver.png: Added.
28215         * page/inspector/Images/forward.png: Added.
28216         * page/inspector/Images/statusbarResizerHorizontal.png: Added.
28217         * page/inspector/PropertiesSection.js:
28218         (WebInspector.PropertiesSection): Flip the order the subtile is appended
28219         so it can float right in the CSS.
28220         * page/inspector/ScriptsPanel.js: Added.
28221         * page/inspector/StylesSidebarPane.js:
28222         (WebInspector.StylePropertiesSection): Changed "Show inherited properties"
28223         to "Show inherited".
28224         * page/inspector/inspector.css: Added new CSS rules for the Scripts panel. 
28225         Also changes the look of the section to match the mockup, this affects
28226         Styles and Properties in Elements.
28227         * page/inspector/inspector.html: Import new files.
28228         * page/inspector/inspector.js:
28229         (Preferences.minScriptsSidebarWidth): Added.
28230
28231 2008-04-21  Kevin McCullough  <kmccullough@apple.com>
28232
28233         Reviewed by Adam.
28234
28235         <rdar://problem/5770054> JavaScript profiler (10928)
28236         Took out debugging printing since we really want to hook into the
28237         inspector and not to print to the terminal.
28238
28239         * page/Console.cpp:
28240         (WebCore::Console::profileEnd):
28241
28242 2008-04-21  Sam Weinig  <sam@webkit.org>
28243
28244         Reviewed by Alexey Proskuryakov.
28245
28246         Fix up XMLHttpRequestProgressEvent.
28247
28248         * bindings/js/JSEventCustom.cpp:
28249         (WebCore::toJS):
28250         * xml/XMLHttpRequestProgressEvent.cpp:
28251         * xml/XMLHttpRequestProgressEvent.h:
28252
28253 2008-04-21  Adam Roben  <aroben@apple.com>
28254
28255         Fix Bug 18615: Crash in PluginPackage::hash
28256
28257         <https://bugs.webkit.org/show_bug.cgi?id=18615>
28258
28259         Reviewed by Anders Carlsson.
28260
28261         * plugins/PluginDatabase.cpp:
28262         (WebCore::PluginDatabase::refresh): Don't pass a null PluginPackage*
28263         to add().
28264
28265 2008-04-21  Anders Carlsson  <andersca@apple.com>
28266
28267         Reviewed by Adam.
28268
28269         Add cache group implementation.
28270
28271         * loader/DocumentLoader.cpp:
28272         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
28273         * loader/appcache/ApplicationCache.cpp:
28274         (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet):
28275         (WebCore::ApplicationCache::resourceForRequest):
28276         * loader/appcache/ApplicationCache.h:
28277         * loader/appcache/ApplicationCacheGroup.cpp:
28278         (WebCore::cacheGroupMap):
28279         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
28280         (WebCore::ApplicationCacheGroup::selectCache):
28281         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
28282         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
28283         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
28284         (WebCore::ApplicationCacheGroup::cacheDestroyed):
28285         (WebCore::ApplicationCacheGroup::update):
28286         (WebCore::ApplicationCacheGroup::didReceiveResponse):
28287         (WebCore::ApplicationCacheGroup::didReceiveData):
28288         (WebCore::ApplicationCacheGroup::didFinishLoading):
28289         (WebCore::ApplicationCacheGroup::didFail):
28290         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
28291         (WebCore::ApplicationCacheGroup::didReceiveManifestData):
28292         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
28293         (WebCore::ApplicationCacheGroup::cacheUpdateFailed):
28294         (WebCore::ApplicationCacheGroup::didFailToLoadManifest):
28295         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
28296         (WebCore::ApplicationCacheGroup::startLoadingEntry):
28297         (WebCore::ApplicationCacheGroup::addEntry):
28298         (WebCore::ApplicationCacheGroup::associateDocumentLoaderWithCache):
28299         (WebCore::ApplicationCacheGroup::callListenersOnAssociatedDocuments):
28300         (WebCore::ApplicationCacheGroup::callListeners):
28301         * loader/appcache/ApplicationCacheGroup.h:
28302         (WebCore::ApplicationCacheGroup::status):
28303         (WebCore::ApplicationCacheGroup::newestCache):
28304         * platform/KURL.h:
28305         (WebCore::KURL::hostStart):
28306         (WebCore::KURL::hostEnd):
28307
28308 2008-04-21  David Hyatt  <hyatt@apple.com>
28309
28310         Rename BackgroundLayer -> FillLayer in preparation for it being used for other types of fills.
28311
28312         Reviewed by Dan
28313
28314         * css/CSSComputedStyleDeclaration.cpp:
28315         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
28316         * css/CSSPrimitiveValueMappings.h:
28317         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
28318         (WebCore::CSSPrimitiveValue::operator EFillBox):
28319         (WebCore::CSSPrimitiveValue::operator EFillRepeat):
28320         * css/CSSStyleSelector.cpp:
28321         (WebCore::CSSStyleSelector::applyProperty):
28322         (WebCore::CSSStyleSelector::mapFillAttachment):
28323         (WebCore::CSSStyleSelector::mapFillClip):
28324         (WebCore::CSSStyleSelector::mapFillComposite):
28325         (WebCore::CSSStyleSelector::mapFillOrigin):
28326         (WebCore::CSSStyleSelector::mapFillImage):
28327         (WebCore::CSSStyleSelector::mapFillRepeat):
28328         (WebCore::CSSStyleSelector::mapFillSize):
28329         (WebCore::CSSStyleSelector::mapFillXPosition):
28330         (WebCore::CSSStyleSelector::mapFillYPosition):
28331         (WebCore::CSSStyleSelector::mapTransitionDuration):
28332         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
28333         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
28334         (WebCore::CSSStyleSelector::mapTransitionProperty):
28335         * css/CSSStyleSelector.h:
28336         * page/AnimationController.cpp:
28337         (WebCore::ImplicitAnimation::ImplicitAnimation):
28338         (WebCore::CompositeImplicitAnimation::animate):
28339         * rendering/InlineFlowBox.cpp:
28340         (WebCore::InlineFlowBox::paintBackgrounds):
28341         (WebCore::InlineFlowBox::paintBackground):
28342         * rendering/InlineFlowBox.h:
28343         * rendering/RenderBox.cpp:
28344         (WebCore::RenderBox::paintRootBoxDecorations):
28345         (WebCore::RenderBox::paintBackgrounds):
28346         (WebCore::RenderBox::paintBackground):
28347         (WebCore::RenderBox::calculateBackgroundSize):
28348         (WebCore::RenderBox::imageChanged):
28349         (WebCore::RenderBox::calculateBackgroundImageGeometry):
28350         (WebCore::RenderBox::paintBackgroundExtended):
28351         * rendering/RenderBox.h:
28352         * rendering/RenderObject.cpp:
28353         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
28354         (WebCore::RenderObject::updateBackgroundImages):
28355         (WebCore::RenderObject::arenaDelete):
28356         * rendering/RenderObject.h:
28357         (WebCore::RenderObject::paintBackgroundExtended):
28358         * rendering/RenderStyle.cpp:
28359         (WebCore::FillLayer::FillLayer):
28360         (WebCore::FillLayer::~FillLayer):
28361         (WebCore::FillLayer::operator=):
28362         (WebCore::FillLayer::operator==):
28363         (WebCore::FillLayer::fillUnsetProperties):
28364         (WebCore::FillLayer::cullEmptyLayers):
28365         (WebCore::Transition::fillUnsetProperties):
28366         * rendering/RenderStyle.h:
28367         (WebCore::FillLayer::image):
28368         (WebCore::FillLayer::xPosition):
28369         (WebCore::FillLayer::yPosition):
28370         (WebCore::FillLayer::attachment):
28371         (WebCore::FillLayer::clip):
28372         (WebCore::FillLayer::origin):
28373         (WebCore::FillLayer::repeat):
28374         (WebCore::FillLayer::composite):
28375         (WebCore::FillLayer::size):
28376         (WebCore::FillLayer::next):
28377         (WebCore::FillLayer::isImageSet):
28378         (WebCore::FillLayer::isXPositionSet):
28379         (WebCore::FillLayer::isYPositionSet):
28380         (WebCore::FillLayer::isAttachmentSet):
28381         (WebCore::FillLayer::isClipSet):
28382         (WebCore::FillLayer::isOriginSet):
28383         (WebCore::FillLayer::isRepeatSet):
28384         (WebCore::FillLayer::isCompositeSet):
28385         (WebCore::FillLayer::isSizeSet):
28386         (WebCore::FillLayer::setImage):
28387         (WebCore::FillLayer::setXPosition):
28388         (WebCore::FillLayer::setYPosition):
28389         (WebCore::FillLayer::setAttachment):
28390         (WebCore::FillLayer::setClip):
28391         (WebCore::FillLayer::setOrigin):
28392         (WebCore::FillLayer::setRepeat):
28393         (WebCore::FillLayer::setComposite):
28394         (WebCore::FillLayer::setSize):
28395         (WebCore::FillLayer::clearImage):
28396         (WebCore::FillLayer::clearXPosition):
28397         (WebCore::FillLayer::clearYPosition):
28398         (WebCore::FillLayer::clearAttachment):
28399         (WebCore::FillLayer::clearClip):
28400         (WebCore::FillLayer::clearOrigin):
28401         (WebCore::FillLayer::clearRepeat):
28402         (WebCore::FillLayer::clearComposite):
28403         (WebCore::FillLayer::clearSize):
28404         (WebCore::FillLayer::setNext):
28405         (WebCore::FillLayer::operator!=):
28406         (WebCore::FillLayer::hasFixedImage):
28407         (WebCore::Transition::isDurationSet):
28408         (WebCore::Transition::isRepeatCountSet):
28409         (WebCore::Transition::isTimingFunctionSet):
28410         (WebCore::Transition::isPropertySet):
28411         (WebCore::Transition::clearDuration):
28412         (WebCore::Transition::clearRepeatCount):
28413         (WebCore::Transition::clearTimingFunction):
28414         (WebCore::Transition::clearProperty):
28415         (WebCore::Transition::duration):
28416         (WebCore::Transition::repeatCount):
28417         (WebCore::Transition::timingFunction):
28418         (WebCore::Transition::property):
28419         (WebCore::Transition::setDuration):
28420         (WebCore::Transition::setRepeatCount):
28421         (WebCore::Transition::setTimingFunction):
28422         (WebCore::Transition::setProperty):
28423         (WebCore::RenderStyle::NonInheritedFlags::operator==):
28424         (WebCore::RenderStyle::setBitDefaults):
28425         (WebCore::RenderStyle::backgroundRepeat):
28426         (WebCore::RenderStyle::backgroundComposite):
28427         (WebCore::RenderStyle::backgroundAttachment):
28428         (WebCore::RenderStyle::backgroundClip):
28429         (WebCore::RenderStyle::backgroundOrigin):
28430         (WebCore::RenderStyle::backgroundSize):
28431         (WebCore::RenderStyle::accessBackgroundLayers):
28432         (WebCore::RenderStyle::backgroundLayers):
28433         (WebCore::RenderStyle::clearBackgroundLayers):
28434         (WebCore::RenderStyle::inheritBackgroundLayers):
28435         (WebCore::RenderStyle::initialFillAttachment):
28436         (WebCore::RenderStyle::initialFillClip):
28437         (WebCore::RenderStyle::initialFillOrigin):
28438         (WebCore::RenderStyle::initialFillRepeat):
28439         (WebCore::RenderStyle::initialFillComposite):
28440         (WebCore::RenderStyle::initialFillSize):
28441         (WebCore::RenderStyle::initialFillXPosition):
28442         (WebCore::RenderStyle::initialFillYPosition):
28443         (WebCore::RenderStyle::initialFillImage):
28444         (WebCore::RenderStyle::initialWhiteSpace):
28445         (WebCore::RenderStyle::initialColor):
28446         * rendering/RenderTableCell.cpp:
28447         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
28448         * rendering/RenderTheme.cpp:
28449         (WebCore::RenderTheme::adjustStyle):
28450         (WebCore::RenderTheme::isControlStyled):
28451         * rendering/RenderTheme.h:
28452         * rendering/RenderThemeMac.h:
28453         * rendering/RenderThemeMac.mm:
28454         (WebCore::RenderThemeMac::isControlStyled):
28455
28456 2008-04-21  Julien Chaffraix  <jchaffraix@webkit.org>
28457
28458         Rubber-stamped by Ap.
28459
28460         Add 2 explicit casts.
28461         Fixes built on 64-bit machines (64-bit to 32-bit conversion warning).
28462
28463         * xml/XMLHttpRequest.cpp:
28464         (WebCore::XMLHttpRequest::dispatchProgressEvent):
28465
28466 2008-04-21  Anders Carlsson  <andersca@apple.com>
28467
28468         Reviewed by Adam.
28469
28470         Make it possible to load resources from the cache. 
28471         (Currently no documents are ever associated with a cache though.)
28472         
28473         * loader/DocumentLoader.cpp:
28474         (WebCore::DocumentLoader::setPrimaryLoadComplete):
28475         (WebCore::DocumentLoader::mainResourceApplicationCache):
28476         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
28477         * loader/DocumentLoader.h:
28478         * loader/MainResourceLoader.cpp:
28479         (WebCore::MainResourceLoader::didFinishLoading):
28480         (WebCore::MainResourceLoader::load):
28481         * loader/MainResourceLoader.h:
28482         (WebCore::MainResourceLoader::applicationCache):
28483         * loader/ResourceLoader.cpp:
28484         (WebCore::ResourceLoader::ResourceLoader):
28485         (WebCore::ResourceLoader::load):
28486         * loader/ResourceLoader.h:
28487         * loader/appcache/ApplicationCacheGroup.h:
28488         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
28489
28490 2008-04-21  Darin Fisher  <darin@chromium.org>
28491
28492         Reviewed by eseidel.  Landed by eseidel.
28493
28494         Add FrameLoader::policyDocumentLoader, and change
28495         provisionalDocumentLoader to have a const signature to be
28496         consistent with documentLoader and activeDocumentLoader.
28497
28498         * WebCore.base.exp:
28499         * WebCore.order:
28500         * loader/FrameLoader.cpp:
28501         (WebCore::FrameLoader::policyDocumentLoader):
28502         (WebCore::FrameLoader::provisionalDocumentLoader):
28503         * loader/FrameLoader.h:
28504
28505 2008-04-21  Julien Chaffraix  <jchaffraix@webkit.org>
28506
28507         Not reviewed, add missing files in my previous commit.
28508
28509         Test: http/tests/xmlhttprequest/infoOnProgressEvent.html
28510
28511         * xml/XMLHttpRequestProgressEvent.cpp: Added.
28512         (WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent):
28513         (WebCore::XMLHttpRequestProgressEvent::position):
28514         (WebCore::XMLHttpRequestProgressEvent::totalSize):
28515         * xml/XMLHttpRequestProgressEvent.h: Added.
28516         (WebCore::XMLHttpRequestProgressEvent::isXMLHttpRequestProgressEvent):
28517         (WebCore::XMLHttpRequestProgressEvent::isProgressEvent):
28518         (WebCore::XMLHttpRequestProgressEvent::lengthComputable):
28519         (WebCore::XMLHttpRequestProgressEvent::loaded):
28520         (WebCore::XMLHttpRequestProgressEvent::total):
28521         * xml/XMLHttpRequestProgressEvent.idl: Added.
28522
28523 2008-04-21  Julien Chaffraix  <jchaffraix@webkit.org>
28524
28525         Reviewed by Ap.
28526
28527         Bug 13596: Implement .onprogress handler on XMLHttpRequest objects to support
28528         progressive download content length information.
28529
28530         - Add the onprogress attribute to XMLHttpRequest and the necessary bindings.
28531
28532         - We use a custom event XMLHttpRequestProgressEvent that is derived from ProgressEvent
28533          (as specified by the XHR2 specification) but also implement LSProgressEvent interface
28534          (to be compliant with Firefox event).
28535
28536         Test: http/tests/xmlhttprequest/infoOnProgressEvent.html
28537
28538         * DerivedSources.make:
28539         * GNUmakefile.am:
28540         * WebCore.pro:
28541         * WebCore.vcproj/WebCore.vcproj:
28542         * WebCore.xcodeproj/project.pbxproj:
28543         * WebCoreSources.bkl:
28544         * bindings/js/JSEventCustom.cpp:
28545         (WebCore::toJS):
28546         * bindings/js/JSXMLHttpRequestCustom.cpp:
28547         (WebCore::JSXMLHttpRequest::mark):
28548         (WebCore::JSXMLHttpRequest::onprogress):
28549         (WebCore::JSXMLHttpRequest::setOnprogress):
28550         * dom/Event.cpp:
28551         (WebCore::Event::isXMLHttpRequestProgressEvent):
28552         * dom/Event.h:
28553         * dom/ProgressEvent.h: Replaced 'private' by 'protected' to enable derivation.
28554         * xml/XMLHttpRequest.cpp:
28555         (WebCore::XMLHttpRequest::onProgressListener): onprogress getter.
28556         (WebCore::XMLHttpRequest::setOnProgressListener): onprogress setter.
28557         (WebCore::XMLHttpRequest::XMLHttpRequest): initialize m_receivedLength.
28558         (WebCore::XMLHttpRequest::internalAbort): reset m_receivedLength on abort.
28559         (WebCore::XMLHttpRequest::didReceiveData): add updateAndDispatchOnProgress call.
28560         (WebCore::XMLHttpRequest::updateAndDispatchOnProgress):
28561         (WebCore::XMLHttpRequest::dispatchProgressEvent):
28562         * xml/XMLHttpRequest.h:
28563         * xml/XMLHttpRequest.idl: Add onprogress event handler.
28564         * xml/XMLHttpRequestProgressEvent.cpp: Added.
28565         (WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent):
28566         (WebCore::XMLHttpRequestProgressEvent::position):
28567         (WebCore::XMLHttpRequestProgressEvent::totalSize):
28568         The two previous methods are used for Firefox compatibility and map to the
28569         same value as the ProgressEvent methods (but they are deprecated and display
28570
28571         * xml/XMLHttpRequestProgressEvent.h: Added.
28572         (WebCore::XMLHttpRequestProgressEvent::isXMLHttpRequestProgressEvent):
28573         (WebCore::XMLHttpRequestProgressEvent::isProgressEvent):
28574         (WebCore::XMLHttpRequestProgressEvent::lengthComputable):
28575         (WebCore::XMLHttpRequestProgressEvent::loaded):
28576         (WebCore::XMLHttpRequestProgressEvent::total):
28577         * xml/XMLHttpRequestProgressEvent.idl: Added.
28578
28579 2008-04-21  Michael Goddard  <michael.goddard@trolltech.com>
28580
28581         Reviewed by Simon.
28582
28583         Better handle Qt binding object lifetime in JS.
28584         Add explicit marking of JS objects created for Qt
28585         bindings, and remove the gcProtect calls.
28586
28587         * bridge/qt/qt_class.cpp:
28588         (KJS::Bindings::QtClass::fallbackObject):
28589         * bridge/qt/qt_instance.cpp:
28590         (KJS::Bindings::QtRuntimeObjectImp::mark):
28591         (KJS::Bindings::QtInstance::~QtInstance):
28592         (KJS::Bindings::QtInstance::mark):
28593         (KJS::Bindings::QtInstance::invokeDefaultMethod):
28594         (KJS::Bindings::QtField::valueFromInstance):
28595         * bridge/qt/qt_instance.h:
28596
28597 2008-04-21  Michael Goddard  <michael.goddard@trolltech.com>
28598
28599         Reviewed by Simon.
28600
28601         Add better support for RuntimeArray type conversions.
28602         It seems that RuntimeArray claims to inherit ArrayInstance
28603         (in the JS sense), but the C++ class doesn't, so properly
28604         access RuntimeArrays.  Also, properly support turning
28605         a JS object into a QVariantMap, since we support the
28606         reverse.
28607
28608         * bridge/qt/qt_runtime.cpp:
28609         (KJS::Bindings::):
28610         (KJS::Bindings::operator<<):
28611         (KJS::Bindings::valueRealType):
28612         (KJS::Bindings::convertValueToQVariant):
28613         (KJS::Bindings::convertQVariantToValue):
28614
28615 2008-04-21  Simon Hausmann  <hausmann@webkit.org>
28616
28617         Reviewed by Holger.
28618
28619         Fix painting of text fields in the CleanLooks style.
28620
28621         The CleanLooks style calls painter->drawRect() and expects a painter
28622         that has no brush set. This is a fairly common assumption and therefore
28623         we now always set the brush to NoBrush before calling a style. This
28624         is done by centralizing the painter setup code into StylePainter
28625         and restore the old brush in the StylePainter destructor.
28626
28627         In addition for textfields it is not necessary anymore to draw
28628         PE_FrameLineEdit as we set the lineWidth in the style option correctly
28629         and it's the style responsibility (QCommonStyle usually) to draw
28630         PE_FrameLineEdit.
28631
28632         * platform/qt/RenderThemeQt.cpp:
28633         (WebCore::RenderThemeQt::paintButton):
28634         (WebCore::RenderThemeQt::paintTextField):
28635         (WebCore::RenderThemeQt::paintMenuList):
28636         (WebCore::StylePainter::StylePainter):
28637         (WebCore::StylePainter::~StylePainter):
28638         * platform/qt/RenderThemeQt.h:
28639         (WebCore::StylePainter::isValid):
28640         (WebCore::StylePainter::drawPrimitive):
28641         (WebCore::StylePainter::drawControl):
28642         (WebCore::StylePainter::drawComplexControl):
28643
28644 2008-04-21  Olivier Goffart  <ogoffart@trolltech.com>
28645
28646         Reviewed by Simon.
28647
28648         Fixes copy and paste of international characters.
28649
28650         When exporting HTML to the clipboard we need meta tags for now that confirm the
28651         conversion to utf-8 done inside QClipboard.
28652
28653         * platform/qt/PasteboardQt.cpp:
28654         (WebCore::Pasteboard::writeSelection):
28655
28656 2008-04-21  Olivier Goffart  <ogoffart@trolltech.com>
28657
28658         Reviewed by Simon.
28659
28660         Fixes: Copying on X11 doesn't always work in webkit
28661
28662         Calling QClipboard::clear right before QClipboard::setData create a race condition with klipper. So don't call QClipboard::clear since it's not required.
28663
28664         * platform/qt/PasteboardQt.cpp:
28665
28666 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28667
28668         Reviewed by Simon.
28669
28670         * Assume that our lineedit has a frame. This is needed for the motif style
28671
28672         * platform/qt/RenderThemeQt.cpp:
28673         (WebCore::RenderThemeQt::paintTextField):
28674
28675 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28676
28677         Reviewed by Simon.
28678
28679         * Follow the windows render theme when determining whether to style
28680         listboxes or not.
28681
28682         * platform/qt/RenderThemeQt.cpp:
28683         (WebCore::RenderThemeQt::isControlStyled):
28684
28685 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28686
28687         Reviewed by Simon.
28688
28689         * Try to bring the notImplemented implementations closer together. This will
28690         print each unimplemted method name only once.
28691
28692         * We might want to change wtf/Assertions.cpp to use qDebug
28693
28694         * platform/NotImplemented.h:
28695
28696 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28697
28698         Reviewed by Simon.
28699
28700         * Remove the special Qt ctor of BitmapImage as it did not work. The Bitmap returned
28701         0 as width and after intialising drawing would fail. BitmapImage relies on a proper
28702         ImageSource.
28703         * Instead of adding more special cases to BitmapImage create a new class called StillImage
28704         which is getting one QPixmap and is implementing Image::draw and Image::size. This is
28705         working well for the images created using Image::loadPlatformResource.
28706
28707         * platform/graphics/BitmapImage.h:
28708         * platform/graphics/qt/ImageQt.cpp:
28709         (WebCore::BitmapImage::initPlatformData):
28710         (WebCore::BitmapImage::getPixmap):
28711         (WebCore::StillImage::StillImage):
28712         (WebCore::StillImage::size):
28713         (WebCore::StillImage::getPixmap):
28714         (WebCore::StillImage::draw):
28715
28716 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28717
28718         Reviewed by Simon.
28719
28720         * Package the Resources into a qrc
28721
28722         * Resources/WebKitResources.qrc: Added.
28723         * WebCore.pro:
28724
28725 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28726
28727         Reviewed by Simon.
28728
28729         * Make sure every resource is available als png as well.
28730
28731         * Resources/deleteButton.png: Added.
28732         * Resources/deleteButtonPressed.png: Added.
28733         * Resources/missingImage.png: Added.
28734         * Resources/nullPlugin.png: Copied from WebKit/win/WebKit.vcproj/nullplugin.png.
28735         * Resources/textAreaResizeCorner.png: Added.
28736         * Resources/urlIcon.png: Copied from WebKit/win/WebKit.vcproj/urlIcon.png.
28737
28738 2008-04-20  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
28739
28740         Reviewed by Alp Toker.
28741
28742         Implement FileSystemGtk's getFileModificationTime() with GLib.
28743
28744         * platform/gtk/FileSystemGtk.cpp:
28745         (WebCore::getFileModificationTime):
28746
28747 2008-04-20  Christian Persch  <chpe@gnome.org>
28748
28749         Reviewed by Alp Toker.
28750
28751         Bundle GTK+ Xt compatibility code from Mozilla. These files are used
28752         by all currently proposed GTK+ plugin patches and will make the
28753         proposed patches smaller and easier to review.
28754
28755         These files should be kept as close to the upstream versions as
28756         possible so fixes can be shared between projects and to ensure
28757         compatibility with the reference implementation.
28758
28759         * plugins/gtk/gtk2xtbin.c: Added.
28760         (xt_event_prepare):
28761         (xt_event_check):
28762         (xt_event_dispatch):
28763         (xt_event_polling_timer_callback):
28764         (gtk_xtbin_get_type):
28765         (gtk_xtbin_class_init):
28766         (gtk_xtbin_init):
28767         (gtk_xtbin_realize):
28768         (gtk_xtbin_new):
28769         (gtk_xtbin_set_position):
28770         (gtk_xtbin_resize):
28771         (gtk_xtbin_unrealize):
28772         (gtk_xtbin_destroy):
28773         (xt_client_init):
28774         (xt_client_create):
28775         (xt_client_unrealize):
28776         (xt_client_destroy):
28777         (xt_client_set_info):
28778         (xt_client_handle_xembed_message):
28779         (xt_client_event_handler):
28780         (send_xembed_message):
28781         (error_handler):
28782         (trap_errors):
28783         (untrap_error):
28784         (xt_client_focus_listener):
28785         (xt_add_focus_listener):
28786         (xt_remove_focus_listener):
28787         (xt_add_focus_listener_tree):
28788         * plugins/gtk/gtk2xtbin.h: Added.
28789
28790 2008-04-20  Dirk Schulze  <vbs85@gmx.de>
28791
28792         Reviewed by Alp Toker.
28793
28794         http://bugs.webkit.org/show_bug.cgi?id=15449
28795         [CAIRO] SVG gradients do not work properly
28796
28797         Fixed SVG-gradients in Cairo.
28798
28799         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
28800         (WebCore::SVGPaintServerGradient::setup):
28801
28802 2008-04-20  Simon Hausmann  <hausmann@webkit.org>
28803
28804         Reviewed by Alp Toker.
28805
28806         http://bugs.webkit.org/show_bug.cgi?id=18578
28807         Share the printing code between the Gtk and the Qt port
28808
28809         Share the printing code between the Gtk and the Qt port
28810         and added printing to the Qt WebKit API.
28811
28812         * GNUmakefile.am:
28813         * WebCore.pro:
28814         * page/PrintContext.cpp: Added.
28815         (WebCore::PrintContext::PrintContext):
28816         (WebCore::PrintContext::~PrintContext):
28817         (WebCore::PrintContext::pageCount):
28818         (WebCore::PrintContext::computePageRects):
28819         (WebCore::PrintContext::begin):
28820         (WebCore::PrintContext::spoolPage):
28821         * page/PrintContext.h: Added.
28822
28823 2008-04-19  Alp Toker  <alp@nuanti.com>
28824
28825         Reviewed by Mark Rowe.
28826
28827         Complete the Cairo (CSS) gradient implementation.
28828
28829         * platform/graphics/Gradient.h:
28830         * platform/graphics/cairo/GradientCairo.cpp:
28831         (WebCore::Gradient::platformDestroy):
28832         (WebCore::Gradient::fill):
28833
28834 2008-04-19  Alp Toker  <alp@nuanti.com>
28835
28836         Reviewed by Dave Hyatt.
28837
28838         Restore Cairo canvas support following the recent changes in
28839         BitmapImage and ImageBuffer integrating canvas with CSS. Some
28840         drawing regressions remain unfixed.
28841
28842         * platform/graphics/BitmapImage.h:
28843         * platform/graphics/ImageBuffer.h:
28844         * platform/graphics/cairo/ImageBufferCairo.cpp:
28845         (WebCore::ImageBuffer::image):
28846         * platform/graphics/cairo/ImageCairo.cpp:
28847         (WebCore::BitmapImage::BitmapImage):
28848         (WebCore::BitmapImage::draw):
28849         * platform/graphics/cairo/ImageSourceCairo.cpp:
28850         (WebCore::ImageSource::createFrameAtIndex):
28851
28852 2008-04-19  Dan Bernstein  <mitz@apple.com>
28853
28854         Reviewed by Dave Hyatt.
28855
28856         - fix additional cases of https://bugs.webkit.org/show_bug.cgi?id=17921
28857           namely cases where the trailing white space is already in a separate
28858           run but still needs to be re-ordered.
28859
28860         Test: fast/text/trailing-white-space-2.html
28861
28862         * platform/text/BidiResolver.h:
28863         (WebCore::::moveRunToEnd):
28864         (WebCore::::moveRunToBeginning):
28865         * rendering/bidi.cpp:
28866         (WebCore::RenderBlock::layoutInlineChildren):
28867
28868 2008-04-19  Alp Toker  <alp@nuanti.com>
28869
28870         Reviewed by Nikolas.
28871
28872         Add text shadow support for simple text in FontCairo.
28873
28874         * platform/graphics/cairo/FontCairo.cpp:
28875         (WebCore::Font::drawGlyphs):
28876
28877 2008-04-19  David Hyatt  <hyatt@apple.com>
28878
28879         Fix a minor typo in CSSGradientValue's cssText() method.
28880
28881         Reviewed by olliej
28882
28883         * css/CSSGradientValue.cpp:
28884         (WebCore::CSSGradientValue::cssText):
28885
28886 2008-04-19  Brady Eidson  <beidson@apple.com>
28887
28888         Reviewed by Tim Hatcher
28889
28890         Add LocalStorageDatabasePath to the settings for the location of persistent local storage.
28891
28892         * WebCore.base.exp:
28893
28894         * page/Settings.cpp:
28895         (WebCore::Settings::setLocalStorageDatabasePath):
28896         * page/Settings.h:
28897         (WebCore::Settings::localStorageDatabasePath):
28898
28899 2008-04-18 Jan  Michael Alonzo  <jmalonzo@unpluggable.com>
28900
28901         Reviewed by Alp Toker.
28902
28903         http://bugs.webkit.org/show_bug.cgi?id=16620
28904         [GTK] Autotools make dist and make check support
28905
28906         Cleanups.
28907
28908         * GNUmakefile.am:
28909
28910 2008-04-18  Jon Honeycutt  <jhoneycutt@apple.com>
28911
28912         Reviewed by Ollie.
28913
28914         Change when AccessibilityObject children are added.
28915
28916         Children are now added when children() is called if the children vector
28917         is not up to date. This removes the need for addChildren() and
28918         hasChildren() to be called from outside of AccessibilityObject.
28919
28920         * page/AccessibilityObject.cpp:
28921         (WebCore::AccessibilityObject::AccessibilityObject): Initialize
28922         m_haveChildren to false.
28923         (WebCore::AccessibilityObject::clearChildren): Set m_haveChildren to
28924         false.
28925         (WebCore::AccessibilityObject::children): If m_haveChildren is false,
28926         call addChildren().
28927         (WebCore::AccessibilityObject::addChildren): Set m_haveChildren to true.
28928         * page/AccessibilityObject.h: Removed hasChildren(). Made addChildren()
28929         private and const. Added m_haveChildren. Made m_children mutable so
28930         children() could modify it.
28931         * page/mac/AccessibilityObjectWrapper.mm:
28932         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): Don't
28933         call hasChildren() or addChildren().
28934
28935 2008-04-18  Marco Barisione  <marco.barisione@collabora.co.uk>
28936
28937         Reviewed by Alexey.
28938
28939         http://bugs.webkit.org/show_bug.cgi?id=18357
28940         [GTK] Enter on buttons doesn't work
28941
28942         * platform/gtk/KeyEventGtk.cpp:
28943         (WebCore::singleCharacterString): Set the text of a keyboard event for
28944         GDK_ISO_Enter, GDK_KP_Enter, GDK_Return to "\r" instead of an empty
28945         string.
28946
28947 2008-04-18  Marco Barisione  <marco@barisione.org>
28948
28949         Reviewed by Alp Toker.
28950
28951         https://bugs.webkit.org/show_bug.cgi?id=18576
28952         [GTK] windowsKeyCodeForKeyEvent doesn't handle GDK_ISO_Enter and
28953         GDK_KP_Enter
28954
28955         * platform/gtk/KeyEventGtk.cpp:
28956         (WebCore::windowsKeyCodeForKeyEvent): handle GDK_ISO_Enter and
28957         GDK_KP_Enter in windowsKeyCodeForKeyEvent.
28958
28959 2008-04-18  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
28960
28961         Reviewed by Mark Rowe.
28962
28963         Gtk build fix.  Profiler.h does not live inside the kjs directory of JavaScriptCore
28964         so it doesn't make sense to include it as kjs/Profiler.h from WebCore.
28965
28966         * ForwardingHeaders/profiler/Profiler.h: Renamed from WebCore/ForwardingHeaders/kjs/Profiler.h.
28967         * page/Console.cpp:
28968
28969 2008-04-18  Antti Koivisto  <antti@apple.com>
28970
28971         Reviewed by Oliver.
28972
28973         Implement path animation for <animateMotion>.
28974         
28975         SVG test suite tests
28976         animate-elem-07-t.svg
28977         animate-elem-08-t.svg
28978         animate-elem-24-t.svg
28979         animate-elem-30-t.svg
28980
28981         * svg/SVGAnimateMotionElement.cpp:
28982         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
28983         (WebCore::SVGAnimateMotionElement::hasValidTarget):
28984         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
28985         (WebCore::SVGAnimateMotionElement::rotateMode):
28986         (WebCore::SVGAnimateMotionElement::animationPath):
28987         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
28988         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
28989         * svg/SVGAnimateMotionElement.h:
28990         (WebCore::SVGAnimateMotionElement::):
28991         * svg/SVGAnimationElement.cpp:
28992         (WebCore::SVGAnimationElement::animationMode):
28993         (WebCore::SVGAnimationElement::startedActiveInterval):
28994         * svg/SVGAnimationElement.h:
28995         (WebCore::SVGAnimationElement::):
28996         (WebCore::SVGAnimationElement::calculateDistance):
28997         (WebCore::SVGAnimationElement::animationPath):
28998
28999 2008-04-11  Mark Rowe  <mrowe@apple.com>
29000
29001         Rubber-stamped by Antti Koivisto.
29002
29003         Silence GCC 4.3 warnings by removing extraneous consts.
29004
29005         * platform/graphics/Font.h:
29006         * platform/network/ResourceRequestBase.cpp:
29007         * platform/network/ResourceRequestBase.h:
29008
29009 2008-04-18  Brady Eidson  <beidson@apple.com>
29010
29011         Rubberstamped by Mark Rowe
29012
29013         Roll out http://trac.webkit.org/projects/webkit/changeset/32204 as it was an incorrect build fix.
29014         The feature in question was NOT database support.
29015
29016         The proper build fix was later applied by Mark in http://trac.webkit.org/projects/webkit/changeset/32225
29017
29018         * page/PageGroup.cpp:
29019         (WebCore::PageGroup::localStorage):
29020
29021 2008-04-18  Brady Eidson  <beidson@apple.com>
29022
29023         Reviewed by Darin and Sam
29024
29025         Don't forget PageGroups when their last Page goes away, as this hurts visited links and anything
29026         else that will be per-PageGroup in the future (such as LocalStorage).
29027
29028         This also fixes a leak, since PageGroups are ref-counted and therefore clearing the raw pointer out
29029         of the PageGroups map without manual deletion leaked it!
29030
29031         * page/Page.cpp:
29032         (WebCore::Page::setGroupName):
29033
29034 2008-04-18  Dan Bernstein  <mitz@apple.com>
29035
29036         Reviewed by Brady Eidson.
29037
29038         - fix <rdar://problem/5872671> REGRESSION (3.1.1-TOT): Repro crash going to Ortega Park home page
29039
29040         Test: fast/dynamic/5872671.html
29041
29042         * rendering/bidi.cpp:
29043         (WebCore::RenderBlock::layoutInlineChildren): Added a missing null
29044         check.
29045
29046 2008-04-18  Sam Weinig  <sam@webkit.org>
29047
29048         Rubber-stamped by Mark Rowe.
29049
29050         responseText and responseXML don't throw exceptions so they don't need an ExceptionCode parameter.
29051
29052         * bindings/js/JSXMLHttpRequestCustom.cpp:
29053         * xml/XMLHttpRequest.cpp:
29054         (WebCore::XMLHttpRequest::responseText):
29055         (WebCore::XMLHttpRequest::responseXML):
29056         * xml/XMLHttpRequest.h:
29057         * xml/XMLHttpRequest.idl:
29058
29059 2008-04-18  Kevin McCullough  <kmccullough@apple.com>
29060
29061         Reviewed by Sam.
29062
29063         - Build fix.
29064
29065         * page/Console.cpp:
29066         (WebCore::Console::profile):
29067         * page/Console.h:
29068         * page/Console.idl:
29069
29070 2008-04-18  Eric Seidel  <eric@webkit.org>
29071
29072         Reviewed by darin.
29073
29074         Fix probable crasher caused by invalid static_cast
29075         https://bugs.webkit.org/show_bug.cgi?id=18585
29076
29077         * page/Frame.cpp:
29078         (WebCore::Frame::contentRenderer):
29079         (WebCore::Frame::ownerRenderer):
29080         * rendering/RenderObject.h: sort the "is*" functions
29081         (WebCore::RenderObject::isApplet):
29082         (WebCore::RenderObject::isBR):
29083         (WebCore::RenderObject::isBlockFlow):
29084         (WebCore::RenderObject::isCounter):
29085         (WebCore::RenderObject::isFrame):
29086         (WebCore::RenderObject::isFrameSet):
29087         (WebCore::RenderObject::isImage):
29088         (WebCore::RenderObject::isInlineBlockOrInlineTable):
29089         (WebCore::RenderObject::isInlineFlow):
29090         (WebCore::RenderObject::isListBox):
29091         (WebCore::RenderObject::isListItem):
29092         (WebCore::RenderObject::isListMarker):
29093         (WebCore::RenderObject::isMedia):
29094         (WebCore::RenderObject::isMenuList):
29095         (WebCore::RenderObject::isRenderBlock):
29096         (WebCore::RenderObject::isRenderImage):
29097         (WebCore::RenderObject::isRenderInline):
29098         (WebCore::RenderObject::isRenderPart):
29099         (WebCore::RenderObject::isRenderView):
29100         (WebCore::RenderObject::isSlider):
29101         (WebCore::RenderObject::isTable):
29102         (WebCore::RenderObject::isTableCell):
29103         (WebCore::RenderObject::isTableCol):
29104         (WebCore::RenderObject::isTableRow):
29105         (WebCore::RenderObject::isTableSection):
29106         (WebCore::RenderObject::isTextArea):
29107         * rendering/RenderPart.h:
29108
29109 2008-04-17  Eric Seidel  <eric@webkit.org>
29110
29111         Reviewed by beth.
29112
29113         Rename Frame::renderer() to contentRenderer() and fix uses.
29114
29115         * WebCore.base.exp:
29116         * editing/Editor.cpp:
29117         (WebCore::Editor::respondToChangedContents):
29118         * loader/FrameLoader.cpp:
29119         (WebCore::FrameLoader::gotoAnchor):
29120         * page/DragController.cpp:
29121         (WebCore::DragController::canProcessDrag):
29122         (WebCore::DragController::mayStartDragAtEventLocation):
29123         (WebCore::DragController::startDrag):
29124         * page/EventHandler.cpp:
29125         (WebCore::EventHandler::eventMayStartDrag):
29126         (WebCore::EventHandler::updateSelectionForMouseDrag):
29127         (WebCore::EventHandler::hitTestResultAtPoint):
29128         (WebCore::EventHandler::hoverTimerFired):
29129         (WebCore::EventHandler::handleDrag):
29130         * page/Frame.cpp:
29131         (WebCore::Frame::selectionLayoutChanged):
29132         (WebCore::Frame::contentRenderer):
29133         (WebCore::Frame::paint):
29134         (WebCore::Frame::markAllMatchesForText):
29135         (WebCore::Frame::documentAtPoint):
29136         * page/Frame.h:
29137         * page/FrameView.cpp:
29138         (WebCore::FrameView::~FrameView):
29139         (WebCore::FrameView::adjustViewSize):
29140         (WebCore::FrameView::layout):
29141         (WebCore::FrameView::scheduleRelayoutOfSubtree):
29142         (WebCore::FrameView::needsLayout):
29143         (WebCore::FrameView::setNeedsLayout):
29144         (WebCore::FrameView::updateControlTints):
29145         * rendering/RenderTreeAsText.cpp:
29146         (WebCore::write):
29147         * svg/graphics/SVGImage.cpp:
29148         (WebCore::SVGImage::nativeImageForCurrentFrame):
29149
29150 2008-04-18  Antti Koivisto  <antti@apple.com>
29151
29152         Reviewed by Oliver.
29153
29154         https://bugs.webkit.org/show_bug.cgi?id=18551
29155         REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests
29156         
29157         Fix for test svg/W3C-SVG-1.1/animate-elem-62-t.svg which was still
29158         crashing under guard malloc after the previous fix.
29159         
29160         If the event base element was a parent of the current element, dereffing it during 
29161         removedFromDocument() would cause problems. Avoid this by not holding ref pointer
29162         to the event base but instead checking from the ref count of the event listener whether
29163         it is still alive and in need for unregistering.
29164         
29165         This shold not be a problem for syncbase pointers since those are always animation elements
29166         and leaf nodes.
29167
29168         * svg/animation/SVGSMILElement.cpp:
29169         (WebCore::ConditionEventListener::ConditionEventListener):
29170         (WebCore::ConditionEventListener::unregister):
29171         (WebCore::ConditionEventListener::handleEvent):
29172         (WebCore::SVGSMILElement::connectConditions):
29173         (WebCore::SVGSMILElement::disconnectConditions):
29174         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
29175         * svg/animation/SVGSMILElement.h:
29176
29177 2008-04-18  Kevin McCullough  <kmccullough@apple.com>
29178
29179         Reviewed by Sam and Adam.
29180
29181         -<rdar://problem/5770054> JavaScript profiler (10928)
29182         - Added support for console.profile() and console.profileEnd().
29183
29184         * ForwardingHeaders/kjs/FunctionCallProfile.h: Added.
29185         * ForwardingHeaders/kjs/Profiler.h: Added.
29186         * page/Console.cpp:
29187         (WebCore::Console::profile):
29188         (WebCore::Console::profileEnd):
29189         * page/Console.h:
29190         * page/Console.idl:
29191
29192 2008-04-18  Kevin Ollivier  <kevino@theolliviers.com>
29193
29194         wx build fix. Add the new loader/appcache files.
29195
29196         * WebCoreSources.bkl:
29197
29198 2008-04-18  Dan Bernstein  <mitz@apple.com>
29199
29200         Reviewed by Darin Adler.
29201
29202         - fix https://bugs.webkit.org/show_bug.cgi?id=17921
29203           Extra white space at the end of right-aligned or justified text with -webkit-line-break: after-white-space
29204
29205         Test: fast/text/trailing-white-space.html
29206
29207         Made trailing white space on the line always behave like it has the base
29208         bidi level of the block, meaning it will always go on the right (left)
29209         of the line in a left-to-right (right-to-left) block. Made the trailing
29210         white space vanish when it is next to a margin that the text should
29211         be touching, and made its width not count when computing the center
29212         point for center alignment.
29213
29214         * platform/text/BidiResolver.h:
29215         (WebCore::::prependRun): Added.
29216         * rendering/RenderBlock.h:
29217         * rendering/bidi.cpp:
29218         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed the
29219         logicallyLastRun parameter to an optional trailingSpaceRun and changed
29220         the alignment logic to implement the above rules.
29221         (WebCore::RenderBlock::layoutInlineChildren): Added code to identify
29222         when there is trailing white space that needs to be split into its own
29223         run and optionally re-ordered.
29224         (WebCore::RenderBlock::findNextLineBreak): Removed code that split some
29225         trailing space into a separate run in one special case.
29226
29227 2008-04-10  Mark Rowe  <mrowe@apple.com>
29228
29229         Rubber-stamped by Brady Eidson.
29230
29231         Fix builds that do not have DOM storage enabled.
29232
29233         * page/DOMWindow.cpp:
29234         * page/Page.cpp:
29235         * page/PageGroup.cpp:
29236         * page/PageGroup.h:
29237
29238 2008-04-18  Timothy Hatcher  <timothy@apple.com>
29239
29240         Fixes the regression where style rules in the Inspector always show "inline stylesheet"
29241         for the source of the rule and not the URL or other sources.
29242
29243         https://bugs.webkit.org/show_bug.cgi?id=18592
29244
29245         Reviewed by Dan Bernstein.
29246
29247         * page/inspector/StylesSidebarPane.js:
29248         (WebInspector.StylesSidebarPane.prototype.update): Add parentStyleSheet to the anonymous obejct
29249         that we make for each matched rule. The parentStyleSheet property is used later to make the subtitle.
29250
29251 2008-04-18  Dean Jackson <dino@apple.com>
29252
29253         Fixed marquee suspension on wrong document. Passes current
29254         document into Frame::clearTimers.
29255
29256         Reviewed by hyatt.
29257
29258         * history/CachedPage.cpp:
29259         (WebCore::CachedPage::clear):
29260         * page/Frame.cpp:
29261         (WebCore::Frame::clearTimers):
29262         * page/Frame.h:
29263
29264 2008-04-18  Dean Jackson <dino@apple.com>
29265
29266         Add 'ease' timing function to transitions and
29267         make it the default. See latest specification proposal at:
29268         http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html
29269
29270         Reviewed by hyatt.
29271
29272         NOTE: still working on a way to test animating/transitioning content
29273
29274         * css/CSSParser.cpp:
29275         (WebCore::CSSParser::parseTransitionTimingFunction):
29276         * css/CSSStyleSelector.cpp:
29277         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
29278         * css/CSSValueKeywords.in:
29279
29280 2008-04-18  Adam Roben  <aroben@apple.com>
29281
29282         Change JavaScriptDebugListener to use KJS::UString instead of
29283         WebCore::String
29284
29285         This should reduce the number of string allocations performed while
29286         debugging.
29287
29288         Reviewed by Tim Hatcher.
29289
29290         * page/InspectorController.cpp: Updated JavaScriptDebugListener
29291         functions.
29292         * page/InspectorController.h: Ditto.
29293         * page/JavaScriptDebugListener.h: Changed to use KJS::UString instead
29294         of WebCore::String.
29295         * page/JavaScriptDebugServer.cpp: Ditto.
29296         * platform/win/BString.cpp:
29297         (WebCore::BString::BString): Added a constructor that takes a
29298         KJS::UString.
29299         * platform/win/BString.h:
29300
29301 2008-04-18  Adam Roben  <aroben@apple.com>
29302
29303         Mac build fix
29304
29305         * WebCore.xcodeproj/project.pbxproj: Mark JavaScriptDebugListener.h
29306         private.
29307
29308 2008-04-18  Adam Roben  <aroben@apple.com>
29309
29310         Make InspectorController a JavaScriptDebugListener
29311
29312         I added two new functions to the InspectorController JS object:
29313         reloadInspectedPageAndStartDebugging and stopDebugging. These control
29314         when the InspectorController adds/removes itself to/from the
29315         JavaScriptDebugServer.
29316
29317         Reviewed by Tim Hatcher.
29318
29319         * page/InspectorController.cpp:
29320         (WebCore::reloadInspectedPageAndStartDebugging): Added. Just calls
29321         through to InspectorController.
29322         (WebCore::stopDebugging): Ditto.
29323         (WebCore::InspectorController::~InspectorController): Make sure we
29324         stop debugging before we are destroyed so the JavaScriptDebugServer
29325         won't be left with a stale pointer.
29326         (WebCore::InspectorController::windowScriptObjectAvailable): Added two
29327         new functions to our JS object.
29328         (WebCore::InspectorController::closeWindow): Stop debugging when the
29329         window closes.
29330         (WebCore::InspectorController::reloadInspectedPageAndStartDebugging):
29331         Added.
29332         (WebCore::InspectorController::stopDebugging): Added.
29333
29334         (WebCore::InspectorController::didParseSource):
29335         (WebCore::InspectorController::failedToParseSource):
29336         (WebCore::InspectorController::didEnterCallFrame):
29337         (WebCore::InspectorController::willExecuteStatement):
29338         (WebCore::InspectorController::willLeaveCallFrame):
29339         Added empty implementations of the JavaScriptDebugListener functions.
29340
29341         * page/InspectorController.h:
29342
29343 2008-04-17  Adam Roben  <aroben@apple.com>
29344
29345         Rename ExecState* instances from state to exec
29346
29347         Requested by Darin Adler and Sam Weinig.
29348
29349         * bindings/js/JSConsoleCustom.cpp:
29350
29351 2008-04-17  Adam Roben  <aroben@apple.com>
29352
29353         Clean up InspectorController's use of JSStringRef
29354
29355         All JSStringRef creation now happens through a helper function,
29356         jsStringRef, which takes either a const char* or a const String& and
29357         returns a JSRetainPtr<JSStringRef>.
29358
29359         Reviewed by Mitz Pettel.
29360
29361         * page/InspectorController.cpp:
29362         Added jsStringRef and converted all callers to
29363         JSStringCreateWithUTF8CString or JSStringCreateWithCharacters to use
29364         it.
29365
29366 2008-04-17  Adam Roben  <aroben@apple.com>
29367
29368         Add wrappers around InspectorClient::{show,close}Window
29369
29370         This will let us perform actions when the window is actually
29371         showing/closing (InspectorController::show doesn't always directly
29372         show the window).
29373
29374         Reviewed by Tim Hatcher.
29375
29376         * page/InspectorController.cpp:
29377         (WebCore::InspectorController::scriptObjectReady): Call showWindow()
29378         instead of m_client->showWindow().
29379         (WebCore::InspectorController::show): Ditto.
29380         (WebCore::InspectorController::close): Ditto for closeWindow().
29381         (WebCore::InspectorController::showWindow):
29382         (WebCore::InspectorController::closeWindow):
29383         * page/InspectorController.h:
29384
29385 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29386
29387         Reviewed by Holger.
29388
29389         Adapt to the API changes in WebKit/qt/
29390
29391         * platform/graphics/qt/ImageQt.cpp:
29392         (loadResourcePixmap):
29393
29394 2008-04-18  Ariya Hidayat  <ariya.hidayat@trolltech.com>
29395
29396         Reviewed by Adam Roben.
29397
29398         https://bugs.webkit.org/show_bug.cgi?id=18477
29399
29400         No resize indication is shown when moving/hovering over the frame
29401         border/splitter.
29402
29403         * page/EventHandler.cpp:
29404         (WebCore::EventHandler::selectCursor):
29405
29406 2008-04-18  Adam Roben  <aroben@apple.com>
29407
29408         Windows build fix
29409
29410         Same as before, but for fabs/fabsf.
29411
29412         * svg/SVGAnimateTransformElement.cpp:
29413         (WebCore::SVGAnimateTransformElement::calculateDistance): Changed to
29414         use fabsf and removed narrowPrecisionToFloat.
29415
29416 2008-04-18  Adam Roben  <aroben@apple.com>
29417
29418         Windows build fix
29419
29420         In MSVC, sqrt() has three overloads: float, double, and long
29421         double. In GCC, sqrt() is only for doubles. Both MSVC and GCC have
29422         sqrtf() to operate explicitly on floats.
29423
29424         * svg/SVGAnimateMotionElement.cpp:
29425         (WebCore::SVGAnimateMotionElement::calculateDistance): Changed to use
29426         sqrtf and removed narrowPrecisionToFloat.
29427         * svg/SVGAnimateTransformElement.cpp:
29428         (WebCore::SVGAnimateTransformElement::calculateDistance): Ditto.
29429
29430 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29431
29432         Fix the build without Database support (fixes the Qt/win build).
29433
29434         * page/PageGroup.cpp:
29435         (WebCore::PageGroup::localStorage):
29436
29437 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29438
29439         Fix the Gtk build on the build bot.
29440
29441         * GNUmakefile.am: Back out the previous LocalStorage, etc. additions
29442         as they're already listed in another sources group that wasn't used
29443         due to a local configure error.
29444
29445 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29446
29447         Prospective wx build fix.
29448
29449         * webcore-base.bkl: Add loader/appcache to include paths.
29450
29451 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29452
29453         Build fix. Back out previous #include fix for PageGroup.h as it broke
29454         the Mac build due to forwarding headers.
29455
29456         * page/PageGroup.h:
29457
29458 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29459
29460         Build fix for Qt and gcc 4.3.
29461
29462         * WebCore.pro: Added missing files and include paths, re-ordered
29463         the storage/ include path to avoid conflict of storage/LocalStorage.h
29464         with kjs/LocalStorage.h
29465         * page/PageGroup.h: Include LocalStorage.h instead of forward
29466         declaration to fix compilation with gcc 4.3.
29467
29468 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
29469
29470         Build fix for Gtk and gcc 4.3.
29471
29472         * GNUmakefile.am: Added missing files and include paths.
29473         * storage/LocalStorage.h: Include LocalStorageArea.h instead of
29474         forward declaring it due to the HashMap use where gcc 4.3 needs to
29475         see the class.
29476
29477 2008-04-17  Antti Koivisto  <antti@apple.com>
29478
29479         Reviewed by Oliver.
29480         
29481         https://bugs.webkit.org/show_bug.cgi?id=18573
29482
29483         Implement supplemental transforms and use them for <animateMotion> instead of the transform list.
29484         This will allow <animateTransform> and <animateMotion> combine properly.
29485
29486         * svg/SVGAnimateMotionElement.cpp:
29487         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
29488         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
29489         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
29490         * svg/SVGElement.h:
29491         (WebCore::SVGElement::supplementalTransform):
29492         * svg/SVGStyledTransformableElement.cpp:
29493         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
29494         * svg/SVGStyledTransformableElement.h:
29495         (WebCore::SVGStyledTransformableElement::supplementalTransform):
29496         * svg/SVGTextElement.cpp:
29497         (WebCore::SVGTextElement::animatedLocalTransform):
29498         * svg/SVGTextElement.h:
29499         (WebCore::SVGTextElement::supplementalTransform):
29500
29501 2008-04-17  Antti Koivisto  <antti@apple.com>
29502
29503         Reviewed by Oliver.
29504
29505         Implement calcMode=paced.
29506         
29507         Tested by SVG testsuite tests
29508         animate-elem-11-t.svg
29509         animate-elem-15-t.svg
29510         animate-elem-82-t.svg
29511
29512         * svg/SVGAnimateElement.cpp:
29513         (WebCore::SVGAnimateElement::calculateDistance):
29514         * svg/SVGAnimateElement.h:
29515         * svg/SVGAnimateMotionElement.cpp:
29516         (WebCore::SVGAnimateMotionElement::calculateDistance):
29517         * svg/SVGAnimateMotionElement.h:
29518         * svg/SVGAnimateTransformElement.cpp:
29519         (WebCore::SVGAnimateTransformElement::calculateDistance):
29520         * svg/SVGAnimateTransformElement.h:
29521         * svg/SVGAnimationElement.cpp:
29522         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
29523         (WebCore::SVGAnimationElement::startedActiveInterval):
29524         * svg/SVGAnimationElement.h:
29525         (WebCore::SVGAnimationElement::calculateDistance):
29526
29527 2008-04-17  David Hyatt  <hyatt@apple.com>
29528
29529         Fix a leak in ImageBuffer's clearImage method.
29530
29531         Reviewed by olliej
29532
29533         * platform/graphics/ImageBuffer.h:
29534         (WebCore::ImageBuffer::clearImage):
29535
29536 2008-04-17  Antti Koivisto  <antti@apple.com>
29537
29538         Reviewed by Eric.
29539         
29540         https://bugs.webkit.org/show_bug.cgi?id=12438
29541
29542         More SVG animation:
29543         
29544         - Make multiple additive animations work
29545         - Support animating <use> instance trees
29546
29547         * svg/SVGAnimateColorElement.cpp:
29548         (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
29549         * svg/SVGAnimateColorElement.h:
29550         
29551         Made this AnimateElement subclass. All functionality is now provided by AnimateElement.
29552         
29553         * svg/SVGAnimateElement.cpp:
29554         (WebCore::SVGAnimateElement::determinePropertyType):
29555         (WebCore::SVGAnimateElement::calculateAnimatedValue):
29556         (WebCore::SVGAnimateElement::calculateFromAndToValues):
29557         (WebCore::SVGAnimateElement::calculateFromAndByValues):
29558         (WebCore::SVGAnimateElement::resetToBaseValue):
29559         (WebCore::SVGAnimateElement::applyResultsToTarget):
29560         * svg/SVGAnimateElement.h:
29561         * svg/SVGAnimateMotionElement.cpp:
29562         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
29563         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
29564         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
29565         * svg/SVGAnimateMotionElement.h:
29566         * svg/SVGAnimateTransformElement.cpp:
29567         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
29568         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
29569         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
29570         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
29571         * svg/SVGAnimateTransformElement.h:
29572         
29573         Switch to new model where
29574         - resetToBaseValue() resets the animated value back to the base value
29575         - calculateAnimatedValue() computes the value and adds it to the element used for accumulation
29576         - applyResultsToTarget() sets the computed value the target element
29577         
29578         * svg/SVGAnimationElement.cpp:
29579         (WebCore::SVGAnimationElement::fromValue):
29580         (WebCore::SVGAnimationElement::attributeIsCSS):
29581         (WebCore::SVGAnimationElement::targetAttributeIsCSS):
29582         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
29583         
29584         Update instances too.
29585         
29586         (WebCore::SVGAnimationElement::startedActiveInterval):
29587         (WebCore::SVGAnimationElement::updateAnimation):
29588         (WebCore::SVGAnimationElement::endedActiveInterval):
29589         * svg/SVGAnimationElement.h:
29590         * svg/SVGSVGElement.cpp:
29591         (WebCore::SVGSVGElement::SVGSVGElement):
29592         * svg/SVGSetElement.cpp:
29593         (WebCore::SVGSetElement::SVGSetElement):
29594         * svg/SVGSetElement.h:
29595         
29596         Made this AnimateElement subclass. All functionality is now provided by AnimateElement.
29597         
29598         * svg/animation/SMILTimeContainer.cpp:
29599         (WebCore::SMILTimeContainer::SMILTimeContainer):
29600         (WebCore::SMILTimeContainer::unschedule):
29601         (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
29602         (WebCore::PriorityCompare::PriorityCompare):
29603         (WebCore::PriorityCompare::operator()):
29604         (WebCore::SMILTimeContainer::sortByPriority):
29605         (WebCore::applyOrderSortFunction):
29606         (WebCore::sortByApplyOrder):
29607         (WebCore::SMILTimeContainer::baseValueFor):
29608         (WebCore::SMILTimeContainer::updateAnimations):
29609         * svg/animation/SMILTimeContainer.h:
29610         (WebCore::SMILTimeContainer::create):
29611         (WebCore::SMILTimeContainer::setDocumentOrderIndexesDirty):
29612         
29613         Do additive animation with the following steps
29614         - sort active animations based on their priority (begin time, document order).
29615         - if not yet saved for each (element, attribute) pair save the base value.
29616         - lowest priority animation for each (element, attribute) acts as the result element.
29617         - animation results are resolved in priority order and results are accumulated to the result element.
29618         - after all active animations have been processed the values in result elements are applied to the target elements.
29619         
29620         * svg/animation/SVGSMILElement.cpp:
29621         (WebCore::SVGSMILElement::SVGSMILElement):
29622         (WebCore::SVGSMILElement::insertedIntoDocument):
29623         
29624         Invalidate document order index.
29625         
29626         (WebCore::SVGSMILElement::attributeName):
29627         (WebCore::SVGSMILElement::isInactive):
29628         (WebCore::SVGSMILElement::isFrozen):
29629         (WebCore::SVGSMILElement::beginListChanged):
29630         (WebCore::SVGSMILElement::determineActiveState):
29631         (WebCore::SVGSMILElement::isContributing):
29632         (WebCore::SVGSMILElement::progress):
29633         
29634         Take care that animations in frozen state still contribute to the total. Since we now build the result starting
29635         from the base value, fill="replace" works magically simply by not contributing anything.
29636         
29637         * svg/animation/SVGSMILElement.h:
29638         (WebCore::SVGSMILElement::previousIntervalBegin):
29639         (WebCore::SVGSMILElement::documentOrderIndex):
29640         (WebCore::SVGSMILElement::setDocumentOrderIndex):
29641
29642 2008-04-17  Jon Honeycutt  <jhoneycutt@apple.com>
29643
29644         Reviewed by Darin, Alice.
29645
29646         Implement AXObjectCache::detachWrapper() on Windows.
29647
29648         * page/win/AXObjectCacheWin.cpp:
29649         (WebCore::AXObjectCache::detachWrapper): If this object has a wrapper,
29650         call its detach() method.
29651
29652 2008-04-17  Jon Honeycutt  <jhoneycutt@apple.com>
29653
29654         Reviewed by mrowe.
29655
29656         Define HAVE_ACCESSIBILITY in a way that WebKit and WebCore can see it.
29657
29658         * config.h: Remove HAVE_ACCESSIBILITY.
29659         * page/AccessibilityObject.h: Include wtf/Platform.h to pick up
29660         HAVE_ACCESSIBILITY.
29661
29662 2008-04-17  Jon Honeycutt  <jhoneycutt@apple.com>
29663
29664         Reviewed by aliu.
29665
29666         * page/AccessibilityObject.cpp:
29667         (WebCore::AccessibilityObject::layoutCount): Check isRenderView() before
29668         casting to RenderView.
29669
29670 2008-04-17  Antti Koivisto  <antti@apple.com>
29671
29672         Reviewed by Oliver.
29673         
29674         Fix https://bugs.webkit.org/show_bug.cgi?id=18551
29675         Bug 18551: REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests under guard malloc
29676         
29677         Freeing a RefPtr that is the last ref to the parent from removedFromDocument() is a bad idea.
29678
29679         Caching the target element is too dangerous, let's simply not do it. Getting it is very cheap anyway.
29680
29681         * svg/animation/SVGSMILElement.cpp:
29682         (WebCore::SVGSMILElement::removedFromDocument):
29683         (WebCore::SVGSMILElement::attributeChanged):
29684         (WebCore::SVGSMILElement::targetElement):
29685         * svg/animation/SVGSMILElement.h:
29686
29687 2008-04-17  Sam Weinig  <sam@webkit.org>
29688
29689         Reviewed by Anders Carlsson.
29690
29691         Autogenerate the XMLHttpRequest javascript binding.
29692
29693         * GNUmakefile.am:
29694         * WebCore.pro:
29695         * WebCore.vcproj/WebCore.vcproj:
29696         * WebCoreSources.bkl:
29697         * DerivedSources.make:
29698         * WebCore.xcodeproj/project.pbxproj:
29699         * bindings/js/JSDOMWindowBase.cpp:
29700         * bindings/js/JSXMLHttpRequest.cpp: Removed.
29701         * bindings/js/JSXMLHttpRequest.h: Removed.
29702         * bindings/js/JSXMLHttpRequestConstructor.cpp: Added.
29703         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
29704         (WebCore::JSXMLHttpRequestConstructor::implementsConstruct):
29705         (WebCore::JSXMLHttpRequestConstructor::construct):
29706         * bindings/js/JSXMLHttpRequestConstructor.h: Added.
29707         (WebCore::JSXMLHttpRequestConstructor::classInfo):
29708         * bindings/js/JSXMLHttpRequestCustom.cpp: Added.
29709         (WebCore::JSXMLHttpRequest::mark):
29710         (WebCore::JSXMLHttpRequest::onreadystatechange):
29711         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
29712         (WebCore::JSXMLHttpRequest::onload):
29713         (WebCore::JSXMLHttpRequest::setOnload):
29714         (WebCore::JSXMLHttpRequest::responseXML):
29715         (WebCore::JSXMLHttpRequest::open):
29716         (WebCore::JSXMLHttpRequest::setRequestHeader):
29717         (WebCore::JSXMLHttpRequest::send):
29718         (WebCore::JSXMLHttpRequest::getResponseHeader):
29719         (WebCore::JSXMLHttpRequest::overrideMimeType):
29720         (WebCore::JSXMLHttpRequest::addEventListener):
29721         (WebCore::JSXMLHttpRequest::removeEventListener):
29722         (WebCore::JSXMLHttpRequest::dispatchEvent):
29723         * xml/XMLHttpRequest.cpp:
29724         (WebCore::XMLHttpRequest::readyState):
29725         (WebCore::XMLHttpRequest::responseText):
29726         * xml/XMLHttpRequest.h:
29727         * xml/XMLHttpRequest.idl: Added.
29728
29729 2008-04-17  Brady Eidson  <beidson@apple.com>
29730
29731         Reviewed by Anders
29732
29733         The SessionStorage for a Page has to be copied every time a new Page is created.
29734
29735         I thought I had the right choke point for creating new Pages at FrameLoader::createWindow(),
29736         but it just so happens there was another - in the ContextMenuController.
29737
29738         The *real* choke point for this, then, is in the Chrome itself.
29739
29740         * loader/FrameLoader.cpp:
29741         (WebCore::FrameLoader::createWindow): Don't do the SessionStorage copy here...
29742
29743         * page/Chrome.cpp:
29744         (WebCore::Chrome::createWindow): Do it here, instead!
29745
29746 2008-04-17  Alice Liu  <alice.liu@apple.com>
29747
29748         Reviewed by Jon Honeycutt.
29749
29750         Added some asserts to catch undesirable usage of setWrapper and addChildren.
29751         * page/AccessibilityObject.cpp:
29752         (WebCore::AccessibilityObject::addChildren):
29753         * page/AccessibilityObject.h:
29754         (WebCore::AccessibilityObject::setWrapper):
29755
29756 2008-04-17  Brady Eidson  <beidson@apple.com>
29757
29758         Reviewed by the Mitzpettel
29759
29760         Before things get much more intertwined, move away from a global LocalStorage model
29761         to a per-PageGroup LocalStorage model.
29762
29763         * page/DOMWindow.cpp:
29764         (WebCore::DOMWindow::localStorage): Get it from the current PageGroup, not the global
29765           LocalStorage (which doesn't exist anymore).
29766
29767         * page/Page.cpp:
29768         * page/PageGroup.cpp:
29769         (WebCore::PageGroup::localStorage): Create a LocalStorage object on demand.
29770         * page/PageGroup.h:
29771
29772         * storage/LocalStorage.cpp:
29773         (WebCore::LocalStorage::LocalStorage): Hold a back pointer to the owning PageGroup.
29774         (WebCore::LocalStorage::storageArea):
29775         * storage/LocalStorage.h:
29776         (WebCore::LocalStorage::create):
29777
29778         * storage/LocalStorageArea.cpp:
29779         (WebCore::LocalStorageArea::LocalStorageArea): Hold a back pointer to the owning LocalStorage.
29780         * storage/LocalStorageArea.h:
29781         (WebCore::LocalStorageArea::create):
29782
29783 2008-04-17  Anders Carlsson  <andersca@apple.com>
29784
29785         Fix indentation.
29786         
29787         * loader/DocumentLoader.cpp:
29788         (WebCore::DocumentLoader::scheduleArchiveLoad):
29789
29790 2008-04-17  Anders Carlsson  <andersca@apple.com>
29791
29792         Reviewed by Brady.
29793
29794         When in the web archive debug mode, don't call didFail immediately. Instead,
29795         add the loader to the substitute resource map, but with a null resource, which
29796         indicates to substituteResourceDeliveryTimerFired that the load should fail.
29797         
29798         * loader/DocumentLoader.cpp:
29799         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
29800         (WebCore::DocumentLoader::scheduleArchiveLoad):
29801         * loader/ResourceLoader.cpp:
29802         (WebCore::ResourceLoader::load):
29803
29804 2008-04-17  Anders Carlsson  <andersca@apple.com>
29805
29806         Reviewed by Sam.
29807
29808         Add JS bindings for the DOMApplicationCache object.
29809         
29810         * bindings/js/JSDOMApplicationCacheCustom.cpp:
29811         (WebCore::JSDOMApplicationCache::add):
29812         (WebCore::JSDOMApplicationCache::remove):
29813         (WebCore::JSDOMApplicationCache::addEventListener):
29814         (WebCore::JSDOMApplicationCache::removeEventListener):
29815         (WebCore::JSDOMApplicationCache::dispatchEvent):
29816         (WebCore::JSDOMApplicationCache::setOnchecking):
29817         (WebCore::JSDOMApplicationCache::onchecking):
29818         (WebCore::JSDOMApplicationCache::setOnerror):
29819         (WebCore::JSDOMApplicationCache::onerror):
29820         (WebCore::JSDOMApplicationCache::setOnnoupdate):
29821         (WebCore::JSDOMApplicationCache::onnoupdate):
29822         (WebCore::JSDOMApplicationCache::setOndownloading):
29823         (WebCore::JSDOMApplicationCache::ondownloading):
29824         (WebCore::JSDOMApplicationCache::setOnprogress):
29825         (WebCore::JSDOMApplicationCache::onprogress):
29826         (WebCore::JSDOMApplicationCache::setOnupdateready):
29827         (WebCore::JSDOMApplicationCache::onupdateready):
29828         (WebCore::JSDOMApplicationCache::setOncached):
29829         (WebCore::JSDOMApplicationCache::oncached):
29830         (WebCore::JSDOMApplicationCache::mark):
29831         * bindings/js/JSDOMWindowCustom.cpp:
29832         (WebCore::JSDOMWindow::mark):
29833         * bindings/js/JSEventTargetBase.cpp:
29834         (WebCore::toJS):
29835         * loader/appcache/DOMApplicationCache.idl:
29836         * page/DOMWindow.idl:
29837
29838 2008-04-17 Eric Carlson  <eric.carlson@apple.com> 
29839
29840         Reviewed by Adele. 
29841
29842         Fix for <rdar://problem/5861642> QTMovieWin returns uninitialized values
29843
29844         * platform/graphics/win/QTMovieWin.cpp:
29845         (QTMovieWin::rate):
29846         (QTMovieWin::setRate):
29847         (QTMovieWin::setVolume):
29848         (QTMovieWin::getNaturalSize):
29849
29850 2008-04-17  Marco Barisione  <marco.barisione@collabora.co.uk>
29851
29852         Reviewed by Alp Toker.
29853
29854         http://bugs.webkit.org/show_bug.cgi?id=18335
29855         Pango font backend unable to display japanese properly
29856
29857         Different fonts can have different glyph indices, so we need to pass
29858         the right font when retrieving a glyph index.
29859
29860         * platform/graphics/gtk/GlyphPageTreeNodePango.cpp:
29861         (WebCore::pango_font_get_glyph): Temporarily override the font in the
29862         PangoAnalysis passed to pango_shape.
29863
29864 2008-04-17  Anders Carlsson  <andersca@apple.com>
29865
29866         According to Sam and David, it's "topLevel", not "toplevel".
29867         
29868         * loader/DocumentLoader.cpp:
29869         (WebCore::DocumentLoader::topLevelApplicationCache):
29870         * loader/DocumentLoader.h:
29871         * loader/appcache/DOMApplicationCache.cpp:
29872         (WebCore::DOMApplicationCache::associatedCache):
29873
29874 2008-04-17  Anders Carlsson  <andersca@apple.com>
29875
29876         Reviewed by Sam.
29877
29878         Add DOMApplicationCache implementation.
29879         
29880         * dom/EventNames.h:
29881         Add new event names.
29882         
29883         * dom/EventTarget.cpp:
29884         (WebCore::EventTarget::toDOMApplicationCache):
29885         * dom/EventTarget.h:
29886         Add EventTarget conversion method.
29887         
29888         * loader/appcache/ApplicationCacheGroup.h:
29889         (WebCore::ApplicationCacheGroup::):
29890         (WebCore::ApplicationCacheGroup::status):
29891         (WebCore::ApplicationCacheGroup::update):
29892         (WebCore::ApplicationCacheGroup::newestCache):
29893         Add more stubs.
29894         
29895         * loader/appcache/DOMApplicationCache.cpp:
29896         * loader/appcache/DOMApplicationCache.h:
29897
29898         * page/DOMWindow.cpp:
29899         (WebCore::DOMWindow::clear):
29900         (WebCore::DOMWindow::applicationCache):
29901         * page/DOMWindow.h:
29902         (WebCore::DOMWindow::optionalApplicationCache):
29903         Add ApplicationCache member.
29904         
29905 2008-04-17  Anders Carlsson  <andersca@apple.com>
29906
29907         Build fix.
29908
29909         * WebCore.vcproj/WebCore.vcproj:
29910
29911 2008-04-17  Dean Jackson  <dino@apple.com>
29912
29913         Reviewed by Hyatt.
29914
29915         Fix for <rdar://problem/5849968> translate method should have Y=0 when only X is present
29916
29917         Test: fast/css/transform-default-parameter.html
29918
29919         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
29920         translate function with only X parameter now leaves the Y parameter as zero.
29921
29922 2008-04-17  Anders Carlsson  <andersca@apple.com>
29923
29924         Reviewed by Sam.
29925         
29926         Add plumbing for associating document loaders with application caches.
29927         
29928         * loader/DocumentLoader.cpp:
29929         (WebCore::DocumentLoader::DocumentLoader):
29930         (WebCore::DocumentLoader::~DocumentLoader):
29931         (WebCore::DocumentLoader::originalURL):
29932         (WebCore::DocumentLoader::requestURL):
29933         (WebCore::DocumentLoader::responseURL):
29934         (WebCore::DocumentLoader::responseMIMEType):
29935         (WebCore::DocumentLoader::setCandidateApplicationCacheGroup):
29936         (WebCore::DocumentLoader::setApplicationCache):
29937         (WebCore::DocumentLoader::toplevelApplicationCache):
29938         * loader/DocumentLoader.h:
29939         (WebCore::DocumentLoader::candidateApplicationCacheGroup):
29940         (WebCore::DocumentLoader::applicationCache):
29941         * loader/appcache/ApplicationCacheGroup.h:
29942         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
29943
29944 2008-04-17  Adam Roben  <aroben@apple.com>
29945
29946         Fix Bug 18544: REGRESSION (r31951): Two fast/xsl tests crash
29947
29948         <https://bugs.webkit.org/show_bug.cgi?id=18544>
29949
29950         r31951 changed XSLTProcessor::parseErrorFunc to expect a Console* as
29951         the context parameter. The caller in XSLTProcessor was changed, but
29952         the one in XSLStyleSheet was missed.
29953
29954         Reviewed by Alexey Proskuryakov.
29955
29956         * xml/XSLStyleSheet.cpp:
29957         (WebCore::XSLStyleSheet::parseString): Pass the Console as the context
29958         to parseErrorFunc.
29959
29960 2008-04-17  Adam Roben  <aroben@apple.com>
29961
29962         Windows build fix after r31981
29963
29964         * dom/Document.idl: Omit getCSSCanvasContext from the COM bindings.
29965
29966 2008-04-17  Ariya Hidayat  <ariya.hidayat@trolltech.com>
29967
29968         Reviewed by Simon.
29969
29970         Implemented getFileModificationTime and pathGetFileName for the Qt port.
29971
29972         * platform/qt/FileSystemQt.cpp:
29973         (WebCore::getFileModificationTime):
29974
29975 2008-04-17  Mark Rowe  <mrowe@apple.com>
29976
29977         Fix the non-Mac builds that I broke with my Mac build fix.
29978
29979         * css/CSSMutableStyleDeclaration.cpp:
29980         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Explicitly use the size_t version of max
29981         to avoid making assumptions about sizeof(size_t).
29982
29983 2008-04-17  Mark Rowe  <mrowe@apple.com>
29984
29985         Rubber-stamped by Dan Bernstein.
29986
29987         Fix the Mac build.
29988
29989         * css/CSSMutableStyleDeclaration.cpp:
29990         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Update to use size_t in place of unsigned.
29991         * dom/NamedNodeMap.h: Ditto.
29992         * page/AccessibilityObject.h: Forward-declare AccessibilityObjectWrapper in the non-Objective-C case too.
29993
29994 2008-04-16  Jon Honeycutt  <jhoneycutt@apple.com>
29995
29996         Reviewed by Darin.
29997
29998         Use size_t instead of unsigned where appropriate.
29999
30000         * css/CSSValueList.h:
30001         * dom/NamedAttrMap.h:
30002         * rendering/RenderStyle.h:
30003
30004 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
30005
30006         Reviewed by Darin.
30007
30008         Add some methods to check AccessibilityObject state.
30009
30010         * page/AccessibilityObject.cpp:
30011         (WebCore::AccessibilityObject::AccessibilityObject): Assert that the
30012         passed renderer is not null.
30013         (WebCore::AccessibilityObject::isPasswordField): Refactored to use early
30014         return.
30015         (WebCore::AccessibilityObject::isPressed): Return true if this is a
30016         button in the pressed state.
30017         (WebCore::AccessibilityObject::isIndeterminate): Return true if this is
30018         a tri-state checkbox in the indeterminate state.
30019         (WebCore::AccessibilityObject::isChecked): True if this is a radio
30020         button or checkbox in the checked state.
30021         (WebCore::AccessibilityObject::isHovered): True if object is currently
30022         under the mouse cursor.
30023         (WebCore::AccessibilityObject::isMultiSelect): True if this is a select
30024         element capable of multi-select.
30025         (WebCore::AccessibilityObject::isReadOnly): False if this object has
30026         editable content.
30027         (WebCore::AccessibilityObject::isOffScreen): True if this object is not
30028         in the visible portion of the view.
30029         * page/AccessibilityObject.h: Grouped methods into is-state and is-kind.
30030
30031 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
30032
30033         Reviewed by Darin.
30034
30035         Add AccessibilityObjectWrapper to Windows.
30036
30037         * WebCore.vcproj/WebCore.vcproj: Add AccessibilityObjectWrapperWin.h
30038         * page/AccessibilityObject.h: Include COMPtr.h,
30039         AccessibilityObjectWrapperWin.h on Windows. Define wrapper() and
30040         setWrapper() if accessibility is present. Add an m_wrapper on Windows.
30041         * page/AccessibilityObject.cpp:
30042         (WebCore::AccessibilityObject::detach): Clear m_wrapper if
30043         accessibility is present.
30044         * page/win/AccessibilityObjectWrapperWin.h: Added; defines a wrapper for
30045         AccessibilityObjects on Windows.
30046         (WebCore::AccessibilityObjectWrapper::attached): Return true if attached
30047         to an object.
30048         (WebCore::AccessibilityObjectWrapper::accessibilityObject): Return the
30049         wrapped object.
30050         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
30051
30052 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
30053
30054         Reviewed by Darin.
30055
30056         Add AXObjectCache to Windows.
30057
30058         * WebCore.vcproj/WebCore.vcproj: Add AXObjectCacheWin.cpp.
30059         * page/AXObjectCache.h: Add handleFocusedUIElementChanged definition to
30060         non-Mac platforms, and added stub for it. Replace PLATFORM(MAC)
30061         conditional with HAVE(ACCESSIBILITY) for stubs.
30062         (WebCore::AXObjectCache::enableAccessibility):
30063         (WebCore::AXObjectCache::accessibilityEnabled):
30064         * page/win/AXObjectCacheWin.cpp: Added; contains stubs for the methods
30065         below.
30066         (WebCore::AXObjectCache::detachWrapper):
30067         (WebCore::AXObjectCache::attachWrapper):
30068         (WebCore::AXObjectCache::postNotification):
30069         (WebCore::AXObjectCache::postNotificationToElement):
30070         * config.h: Define HAVE_ACCESSIBILITY on Mac and Windows.
30071
30072 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
30073
30074         Reviewed by Darin.
30075
30076         * WebCore.vcproj/WebCore.vcproj: Fix path to AXObjectCache.h.
30077
30078 2008-04-16  Brady Eidson  <beidson@apple.com>
30079
30080         Reviewed by Darin Adler
30081
30082         Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
30083         Add "LocalStorageArea" and "SessionStorageArea" implementations, and have SessionStorage
30084         and LocalStorage instantiate the appropriate type of StorageArea object.
30085
30086         This purpose of this change is because while adding the persistent store to LocalStorage,
30087         it became obvious that the client approach wasn't scaling well.  Additionally, a StorageArea
30088         backing a local storage area required vastly different data members compared to one backing
30089         a session storage area.
30090
30091         This will be much cleaner going forward.
30092
30093         * GNUmakefile.am:
30094         * WebCore.pro:
30095         * WebCore.vcproj/WebCore.vcproj:
30096         * WebCore.xcodeproj/project.pbxproj:
30097         * WebCoreSources.bkl:
30098
30099         * storage/LocalStorage.cpp:
30100         (WebCore::LocalStorage::storageArea):
30101         * storage/LocalStorage.h:
30102
30103         * storage/LocalStorageArea.cpp: Added.
30104         (WebCore::LocalStorageArea::LocalStorageArea):
30105         (WebCore::LocalStorageArea::itemChanged):
30106         (WebCore::LocalStorageArea::itemRemoved):
30107         (WebCore::LocalStorageArea::dispatchStorageEvent):
30108         * storage/LocalStorageArea.h: Added.
30109         (WebCore::LocalStorageArea::create):
30110
30111         * storage/SessionStorage.cpp:
30112         (WebCore::SessionStorage::copy):
30113         (WebCore::SessionStorage::storageArea):
30114         * storage/SessionStorage.h:
30115
30116         * storage/SessionStorageArea.cpp: Added.
30117         (WebCore::SessionStorageArea::copy):
30118         (WebCore::SessionStorageArea::SessionStorageArea):
30119         (WebCore::SessionStorageArea::itemChanged):
30120         (WebCore::SessionStorageArea::itemRemoved):
30121         (WebCore::SessionStorageArea::dispatchStorageEvent):
30122         * storage/SessionStorageArea.h: Added.
30123         (WebCore::SessionStorageArea::create):
30124         (WebCore::SessionStorageArea::page):
30125
30126         * storage/StorageArea.cpp:
30127         (WebCore::StorageArea::StorageArea):
30128         (WebCore::StorageArea::setItem):
30129         (WebCore::StorageArea::removeItem):
30130         (WebCore::StorageArea::storageMap):
30131         * storage/StorageArea.h:
30132
30133         * storage/StorageAreaClient.h: Removed.
30134
30135 2008-04-16  David Hyatt  <hyatt@apple.com>
30136
30137         Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.
30138
30139         Reviewed by olliej
30140
30141         Added fast/canvas/canvas-bg.html
30142
30143         * GNUmakefile.am:
30144         * WebCore.pro:
30145         * WebCore.vcproj/WebCore.vcproj:
30146         * WebCore.xcodeproj/project.pbxproj:
30147         * WebCoreSources.bkl:
30148         * css/CSSCanvasValue.cpp: Added.
30149         (WebCore::CSSCanvasValue::~CSSCanvasValue):
30150         (WebCore::CSSCanvasValue::cssText):
30151         (WebCore::CSSCanvasValue::canvasChanged):
30152         (WebCore::CSSCanvasValue::canvasResized):
30153         (WebCore::CSSCanvasValue::fixedSize):
30154         (WebCore::CSSCanvasValue::element):
30155         (WebCore::CSSCanvasValue::image):
30156         * css/CSSCanvasValue.h: Added.
30157         (WebCore::CSSCanvasValue::CSSCanvasValue):
30158         (WebCore::CSSCanvasValue::isFixedSize):
30159         (WebCore::CSSCanvasValue::setName):
30160         * css/CSSGradientValue.cpp:
30161         * css/CSSGradientValue.h:
30162         * css/CSSImageGeneratorValue.cpp:
30163         (WebCore::CSSImageGeneratorValue::generatedImage):
30164         * css/CSSImageGeneratorValue.h:
30165         (WebCore::CSSImageGeneratorValue::isFixedSize):
30166         (WebCore::CSSImageGeneratorValue::fixedSize):
30167         * css/CSSParser.cpp:
30168         (WebCore::CSSParser::parseContent):
30169         (WebCore::CSSParser::parseBackgroundImage):
30170         (WebCore::CSSParser::parseBorderImage):
30171         (WebCore::CSSParser::parseCanvas):
30172         * css/CSSParser.h:
30173         * dom/Document.cpp:
30174         (WebCore::Document::getCSSCanvasContext):
30175         (WebCore::Document::getCSSCanvasElement):
30176         * dom/Document.h:
30177         * dom/Document.idl:
30178         * html/HTMLCanvasElement.cpp:
30179         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
30180         (WebCore::HTMLCanvasElement::reset):
30181         * html/HTMLCanvasElement.h:
30182         (WebCore::HTMLCanvasElement::setSize):
30183         * rendering/RenderBox.cpp:
30184         (WebCore::RenderBox::calculateBackgroundSize):
30185         (WebCore::RenderBox::imageChanged):
30186         * rendering/RenderBox.h:
30187         * rendering/RenderImage.cpp:
30188         (WebCore::RenderImage::imageChanged):
30189         * rendering/RenderImage.h:
30190         (WebCore::RenderImage::imagePtr):
30191         (WebCore::RenderImage::intrinsicSizeChanged):
30192         * rendering/RenderImageGeneratedContent.h:
30193         (WebCore::RenderImageGeneratedContent::imageSize):
30194         (WebCore::RenderImageGeneratedContent::imagePtr):
30195         * rendering/RenderListMarker.cpp:
30196         (WebCore::RenderListMarker::layout):
30197         (WebCore::RenderListMarker::imageChanged):
30198         (WebCore::RenderListMarker::calcPrefWidths):
30199         (WebCore::RenderListMarker::getRelativeMarkerRect):
30200         * rendering/RenderListMarker.h:
30201         * rendering/RenderObject.cpp:
30202         (WebCore::RenderObject::paintBorderImage):
30203         (WebCore::RenderObject::imageChanged):
30204         * rendering/RenderObject.h:
30205         (WebCore::RenderObject::imageChanged):
30206         * rendering/RenderSVGImage.cpp:
30207         (WebCore::RenderSVGImage::imageChanged):
30208         * rendering/RenderSVGImage.h:
30209         * rendering/RenderStyle.cpp:
30210         (WebCore::StyleCachedImage::imageSize):
30211         (WebCore::StyleGeneratedImage::imageSize):
30212         * rendering/RenderStyle.h:
30213         (WebCore::StyleCachedImage::data):
30214         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
30215         (WebCore::StyleGeneratedImage::data):
30216         (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
30217         (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
30218         (WebCore::StyleGeneratedImage::usesImageContainerSize):
30219         * rendering/RenderTableCol.cpp:
30220         (WebCore::RenderTableCol::imageChanged):
30221         * rendering/RenderTableCol.h:
30222         * rendering/RenderTableRow.cpp:
30223         (WebCore::RenderTableRow::imageChanged):
30224         * rendering/RenderTableRow.h:
30225         * rendering/RenderTableSection.cpp:
30226         (WebCore::RenderTableSection::imageChanged):
30227         * rendering/RenderTableSection.h:
30228
30229 2008-04-16  Anders Carlsson  <andersca@apple.com>
30230
30231         Reviewed by Darin.
30232
30233         Add manifest parser.
30234
30235         * loader/appcache/ManifestParser.cpp:
30236         (WebCore::parseManifest):
30237         * loader/appcache/ManifestParser.h:
30238         * platform/text/CharacterNames.h:
30239
30240 2008-04-16  Darin Adler  <darin@apple.com>
30241
30242         Reviewed by Mitz.
30243
30244         - fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1):
30245           Safari does not find words containing ÃŸ (German letter sharp-s)
30246
30247         Test: fast/text/find-case-folding.html
30248
30249         * platform/text/StringImpl.cpp:
30250         (WebCore::StringImpl::foldCase):
30251         Pass the folded length to foldCase rather than the original string length.
30252         Without this, we get an error code every time.
30253
30254 2008-04-16  Anders Carlsson  <andersca@apple.com>
30255
30256         Fix build.
30257         
30258         * loader/appcache/ApplicationCache.cpp:
30259         (WebCore::ApplicationCache::ApplicationCache):
30260         (WebCore::ApplicationCache::setManifestResource):
30261         (WebCore::ApplicationCache::addResource):
30262
30263 2008-04-16  Anders Carlsson  <andersca@apple.com>
30264
30265         Reviewed by Darin.
30266
30267         Add new protocolHostAndPortAreEqual function.
30268         
30269         * platform/KURL.cpp:
30270         (WebCore::KURL::host):
30271         (WebCore::KURL::setHost):
30272         (WebCore::KURL::setHostAndPort):
30273         (WebCore::protocolHostAndPortAreEqual):
30274         * platform/KURL.h:
30275         (WebCore::KURL::hostStart):
30276
30277 2008-04-16  Anders Carlsson  <andersca@apple.com>
30278
30279         Reviewed by Sam.
30280         
30281         Fix some style nits.
30282         
30283         * loader/appcache/ApplicationCache.cpp:
30284         (WebCore::ApplicationCache::ApplicationCache):
30285         (WebCore::ApplicationCache::setManifestResource):
30286         (WebCore::ApplicationCache::addResource):
30287         (WebCore::ApplicationCache::removeResource):
30288         (WebCore::ApplicationCache::dump):
30289         * loader/appcache/ApplicationCacheGroup.h:
30290
30291 2008-04-16  Anders Carlsson  <andersca@apple.com>
30292
30293         Reviewed by Brady and Sam.
30294
30295         Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
30296         needed by ApplicationCache.
30297         
30298         * loader/appcache/ApplicationCache.cpp:
30299         (WebCore::ApplicationCache::ApplicationCache):
30300         (WebCore::ApplicationCache::~ApplicationCache):
30301         (WebCore::ApplicationCache::setManifestResource):
30302         (WebCore::ApplicationCache::addResource):
30303         (WebCore::ApplicationCache::removeResource):
30304         (WebCore::ApplicationCache::resourceForURL):
30305         (WebCore::ApplicationCache::resourceForRequest):
30306         (WebCore::ApplicationCache::numDynamicEntries):
30307         (WebCore::ApplicationCache::dynamicEntry):
30308         (WebCore::ApplicationCache::addDynamicEntry):
30309         (WebCore::ApplicationCache::removeDynamicEntry):
30310         (WebCore::ApplicationCache::setOnlineWhitelist):
30311         (WebCore::ApplicationCache::isURLInOnlineWhitelist):
30312         (WebCore::ApplicationCache::dump):
30313         * loader/appcache/ApplicationCache.h:
30314         (WebCore::ApplicationCache::create):
30315         (WebCore::ApplicationCache::manifestResource):
30316         (WebCore::ApplicationCache::group):
30317         (WebCore::ApplicationCache::begin):
30318         (WebCore::ApplicationCache::end):
30319         * loader/appcache/ApplicationCacheGroup.h:
30320         (WebCore::ApplicationCacheGroup::manifestURL):
30321         (WebCore::ApplicationCacheGroup::cacheDestroyed):
30322
30323 2008-04-16  Adam Roben  <aroben@apple.com>
30324
30325         Fix Bug 18505: REGRESSION: Search is disabled and not functional
30326
30327         <https://bugs.webkit.org/show_bug.cgi?id=18505>
30328
30329         Reviewed by Tim Hatcher.
30330
30331         * page/inspector/ResourcesPanel.js:
30332         (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
30333         * page/inspector/inspector.css: Added back rules for the search field
30334         that were removed in r31736.
30335         * page/inspector/inspector.html:
30336           - Removed the disabled attribute from the search field
30337           - Added back the #searchResults and #searchResultsResizer divs which
30338             were removed in r31736
30339         * page/inspector/inspector.js:
30340         (WebInspector.set showingSearchResults): Updated for class rename
30341         panels -> main-panels.
30342         (WebInspector.loaded): Added back the mousedown event listener for the
30343         search results resizer that was removed in r31736.
30344         (WebInspector.searchResultsResizerDrag): Updated for class rename
30345         panels -> main-panels.
30346         (WebInspector.performSearch):
30347           - Changed to use sourceFrameForResource
30348           - Changed to use showResource
30349           - Changed to save/restore the focused element around the setting of
30350             the current panel
30351           - Changed to get the source document from the match range instead of
30352             by crawling back up to the source view
30353           - Changed to bind the onselect handlers to this so that we can
30354             access the Elements/Resources panels
30355
30356 2008-04-16  Brady Eidson  <beidson@apple.com>
30357
30358         Reviewed by Sam Weinig
30359
30360         Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
30361         adoptRef() that initial reference.
30362
30363         * bindings/js/JSCustomSQLStatementCallback.h:
30364         (WebCore::JSCustomSQLStatementCallback::create):
30365         * bindings/js/JSCustomSQLStatementErrorCallback.h:
30366         (WebCore::JSCustomSQLStatementErrorCallback::create):
30367         * bindings/js/JSCustomSQLTransactionCallback.h:
30368         (WebCore::JSCustomSQLTransactionCallback::create):
30369         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
30370         (WebCore::JSCustomSQLTransactionErrorCallback::create):
30371
30372         * bindings/js/JSDatabaseCustom.cpp:
30373         (WebCore::JSDatabase::changeVersion):
30374         (WebCore::JSDatabase::transaction):
30375
30376         * bindings/js/JSSQLTransactionCustom.cpp:
30377         (WebCore::JSSQLTransaction::executeSql):
30378
30379         * dom/Document.cpp:
30380         (WebCore::Document::databaseThread):
30381
30382         * platform/SecurityOrigin.cpp:
30383         (WebCore::SecurityOrigin::create):
30384
30385         * platform/sql/SQLiteAuthorizer.h:
30386         (WebCore::SQLiteAuthorizer::create):
30387         (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
30388
30389         * storage/ChangeVersionWrapper.cpp:
30390         (WebCore::ChangeVersionWrapper::performPreflight):
30391         (WebCore::ChangeVersionWrapper::performPostflight):
30392         * storage/ChangeVersionWrapper.h:
30393         (WebCore::ChangeVersionWrapper::create):
30394
30395         * storage/Database.cpp:
30396         (WebCore::Database::openAndVerifyVersion):
30397         (WebCore::Database::markAsDeletedAndClose):
30398         (WebCore::Database::changeVersion):
30399         (WebCore::Database::transaction):
30400         (WebCore::Database::scheduleTransaction):
30401         (WebCore::Database::scheduleTransactionStep):
30402         (WebCore::Database::tableNames):
30403
30404         * storage/DatabaseAuthorizer.h:
30405         (WebCore::DatabaseAuthorizer::create):
30406
30407         * storage/DatabaseTask.h:
30408         (WebCore::DatabaseOpenTask::create):
30409         (WebCore::DatabaseCloseTask::create):
30410         (WebCore::DatabaseTransactionTask::create):
30411         (WebCore::DatabaseTableNamesTask::create):
30412
30413         * storage/DatabaseThread.cpp:
30414         (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw
30415         (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
30416         * storage/DatabaseThread.h:
30417         (WebCore::DatabaseThread::create):
30418
30419         * storage/SQLError.h:
30420         (WebCore::SQLError::create):
30421         (WebCore::SQLError::SQLError):
30422
30423         * storage/SQLResultSet.h:
30424         (WebCore::SQLResultSet::create):
30425
30426         * storage/SQLStatement.cpp:
30427         (WebCore::SQLStatement::create):
30428         (WebCore::SQLStatement::execute):
30429         (WebCore::SQLStatement::setDatabaseDeletedError):
30430         (WebCore::SQLStatement::setVersionMismatchedError):
30431         (WebCore::SQLStatement::setFailureDueToQuota):
30432         * storage/SQLStatement.h:
30433
30434         * storage/SQLTransaction.cpp:
30435         (WebCore::SQLTransaction::create):
30436         (WebCore::SQLTransaction::executeSQL):
30437         (WebCore::SQLTransaction::openTransactionAndPreflight):
30438         (WebCore::SQLTransaction::deliverTransactionCallback):
30439         (WebCore::SQLTransaction::handleCurrentStatementError):
30440         (WebCore::SQLTransaction::deliverStatementCallback):
30441         (WebCore::SQLTransaction::postflightAndCommit):
30442         * storage/SQLTransaction.h:
30443
30444 2008-04-16  Anders Carlsson  <andersca@apple.com>
30445
30446         Reviewed by Adam and Brady.
30447         
30448         Add implementation of ApplicationCacheResource.
30449         
30450         * loader/appcache/ApplicationCacheResource.cpp:
30451         (WebCore::ApplicationCacheResource::ApplicationCacheResource):
30452         (WebCore::ApplicationCacheResource::dumpType):
30453         * loader/appcache/ApplicationCacheResource.h:
30454         (WebCore::ApplicationCacheResource::):
30455         (WebCore::ApplicationCacheResource::create):
30456         (WebCore::ApplicationCacheResource::type):
30457         (WebCore::ApplicationCacheResource::addType):
30458
30459 2008-04-16  Timothy Hatcher  <timothy@apple.com>
30460
30461         Fixes an issue where the source for a resource that had errors would
30462         not be shown because the view was created before the resource load
30463         finished. The right view is now created, even if the resource isn't 
30464         finished. The SourceView just makes sure to not load the source until
30465         the resource is finished. Only if the category changes, does the view
30466         need to be recreated.
30467
30468         Reviewed by Adam Roben.
30469
30470         * page/inspector/Resource.js:
30471         (WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.
30472         * page/inspector/ResourcesPanel.js:
30473         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
30474         Added. Tries to make a new view, if the view is the same prototype of the
30475         previous view, return early. If they differ, close and detach the old view
30476         and associate the resource with the new view. Calling updateErrorsAndWarnings
30477         is needed, because the errors and warnings that might have been added to the
30478         previous view will be lost, so make the tree element match.
30479         (WebInspector.Resource.prototype._createResourceView): Always create a view
30480         that matches the resource category. Ignore the loading and failed status.
30481         * page/inspector/SourceView.js:
30482         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
30483         frame if the resource hasn't finished or if the load failed.
30484
30485 2008-04-16  Timothy Hatcher  <timothy@apple.com>
30486
30487         Adds a console formatter for Error objects. So typing a expression in the
30488         console that ends in an exception will print meaningful info. Also calling
30489         console.{log,error,warn,info} with an error object will output nicely.
30490
30491         Reviewed by Adam Roben.
30492
30493         * page/inspector/Console.js:
30494         (WebInspector.Console.prototype._formaterror): Added. Formats an error
30495         object by showing it like other exceptions, with a clickable file URL.
30496
30497 2008-04-16  Timothy Hatcher  <timothy@apple.com>
30498
30499         Refactors code that updates the errors and warnings count in the
30500         resources sidebar so other functions can easily trigger updates.
30501
30502         Reviewed by Adam Roben.
30503
30504         * page/inspector/ResourcesPanel.js:
30505         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
30506         Removes code that updates the bubbleText and class names.
30507         (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
30508         (WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
30509         Added. Updates the bubbleText and adds or removes the class names
30510         depending on if the values are zero.
30511
30512 2008-04-16  Antti Koivisto  <antti@apple.com>
30513
30514         Reviewed by Alexey.
30515         
30516         Fix <rdar://problem/5863728>
30517         REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)
30518         
30519         Parse the encoding attribute in PreloadScanner.
30520
30521         Test: fast/encoding/script-preload-encoding.html
30522
30523         * html/PreloadScanner.cpp:
30524         (WebCore::PreloadScanner::processAttribute):
30525         (WebCore::PreloadScanner::emitTag):
30526         (WebCore::PreloadScanner::emitCSSRule):
30527         * html/PreloadScanner.h:
30528         * loader/DocLoader.cpp:
30529         (WebCore::DocLoader::preload):
30530         * loader/DocLoader.h:
30531
30532 2008-04-16  Anders Carlsson  <andersca@apple.com>
30533
30534         Reviewed by Adam.
30535
30536         Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and 
30537         fix typos in the #if line.
30538         
30539         * DerivedSources.make:
30540         * WebCore.vcproj/WebCore.vcproj:
30541         * WebCore.xcodeproj/project.pbxproj:
30542         * bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
30543         * loader/appcache/ApplicationCache.cpp:
30544         * loader/appcache/ApplicationCache.h:
30545         * loader/appcache/ApplicationCacheGroup.cpp:
30546         * loader/appcache/ApplicationCacheGroup.h:
30547         * loader/appcache/ApplicationCacheResource.cpp:
30548         * loader/appcache/ApplicationCacheResource.h:
30549         * loader/appcache/DOMApplicationCache.cpp:
30550         * loader/appcache/DOMApplicationCache.h:
30551         * loader/appcache/DOMApplicationCache.idl:
30552         * loader/appcache/ManifestParser.cpp:
30553         * loader/appcache/ManifestParser.h:
30554
30555 2008-04-16  Sam Weinig  <sam@webkit.org>
30556
30557         Reviewed by Geoffrey Garen.
30558
30559         - To keep the behavior of the WebKit and JavaScriptCore API's the same,
30560           we need to hide the fact that the global object and the window object
30561           are no longer the same thing, and the the global object now changes on
30562           navigations.  To do this, only the wrapper should ever be exposed.  This
30563           fixes the two remaining spots where the internal global object is exposed,
30564           the windowScriptObject returned from [WebFrame windowObject] and the object
30565           return by calling JSContextGetGlobalObject on [WebFrame globalContext]
30566
30567         * bindings/js/JSDOMWindowWrapper.cpp:
30568         (WebCore::JSDOMWindowWrapper::putWithAttributes):
30569         * bindings/js/JSDOMWindowWrapper.h:
30570         Forward this new method so that JSObjectSetProperty doesn't set properties on the 
30571         wrapper.
30572
30573         * page/mac/FrameMac.mm:
30574         (WebCore::Frame::windowScriptObject):
30575         Return the wrapper instead of the global object.
30576
30577 2008-04-16  David Hyatt  <hyatt@apple.com>
30578
30579         Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
30580         snagging an Image* from the ImageBuffer and drawing that instead.
30581
30582         Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
30583         a consumer.
30584
30585         Reviewed by olliej
30586
30587         * html/CanvasRenderingContext2D.cpp:
30588         (WebCore::CanvasRenderingContext2D::drawImage):
30589         * html/HTMLCanvasElement.cpp:
30590         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
30591         (WebCore::HTMLCanvasElement::willDraw):
30592         (WebCore::HTMLCanvasElement::reset):
30593         (WebCore::HTMLCanvasElement::paint):
30594         * html/HTMLCanvasElement.h:
30595         (WebCore::CanvasObserver::~CanvasObserver):
30596         (WebCore::HTMLCanvasElement::setSize):
30597         (WebCore::HTMLCanvasElement::setObserver):
30598         * platform/graphics/GraphicsContext.cpp:
30599         (WebCore::GraphicsContext::drawImage):
30600         (WebCore::GraphicsContext::drawTiledImage):
30601         * platform/graphics/GraphicsContext.h:
30602         * platform/graphics/ImageBuffer.h:
30603         (WebCore::ImageBuffer::clearImage):
30604         * platform/graphics/cairo/GraphicsContextCairo.cpp:
30605         * platform/graphics/cg/GraphicsContextCG.cpp:
30606         * platform/graphics/cg/ImageCG.cpp:
30607         (WebCore::BitmapImage::draw):
30608         (WebCore::Image::drawPattern):
30609         * platform/graphics/cg/ImageSourceCG.cpp:
30610         (WebCore::ImageSource::createFrameAtIndex):
30611         * platform/graphics/qt/GraphicsContextQt.cpp:
30612         * platform/graphics/wx/GraphicsContextWx.cpp:
30613
30614 2008-04-16  Steve Falkenburg  <sfalken@apple.com>
30615
30616         Improve timer latency/resolution.
30617                 
30618         The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
30619         the callback proc.  This event will be delivered sooner than if we used SetTimer(),
30620         since it is higher priority than other messages.
30621         
30622         If there is an input message pending, we'll use we SetTimer() based timers to avoid
30623         starving user input.
30624
30625         Don't call PostMessage immediately on all timers < 10ms.  Only call immediately if
30626         timer is already expired.  This avoids the case where no timers would be processed,
30627         causing the timer to be re-posted via the slower SetTimer method.
30628
30629         Don't call PostMessage immediately if there's a pending WM_PAINT, since
30630         we don't want to starve all paints when bombarded with a continuous stream of low
30631         duration timers.
30632
30633         Removed reentrancy check, since we're now looking for specific starvation cases,
30634         and will typically defer non-expired timers through CreateTimerQueueTimer.
30635
30636         The reason Windows wouldn't starve paints in favor of timers with the old code:
30637         When we went to reset the timer when it fired, the timer reset code treated this as a
30638         reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
30639         even for timers expiring in < 10ms. Â I corrected that, exposing the paint starvation problem.
30640
30641         Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
30642         Limit this resolution change to within 20ms of the last high resolution timer request.
30643                         
30644         Corrected GetQueueStatus to check for specific input (and paint) messages rather than
30645         checking QS_ALLINPUT.  Contrary to its name, QS_ALLINPUT actually indicates interest
30646         in ALL queued messages, not just input messages.
30647         
30648         Fix SetTimer/KillTimer calls to pass our window handle.
30649
30650         Reviewed by Brady.
30651
30652         * platform/win/SharedTimerWin.cpp:
30653         (WebCore::TimerWindowWndProc):
30654         (WebCore::queueTimerProc):
30655         (WebCore::setSharedTimerFireTime):
30656         (WebCore::stopSharedTimer):
30657
30658 2008-04-16  Adam Roben  <aroben@apple.com>
30659
30660         Fix console-log-formatting to truly test formatting an undefined value
30661
30662         Exceptions thrown by the test will also now be shown as errors.
30663
30664         Reviewed by Tim Hatcher.
30665
30666         * manual-tests/inspector/console-log-formatting.html:
30667         (test): Use console.error to report exceptions.
30668         (runTests): Use window.noSuchVariable instead of just noSuchVariable
30669         to avoid an exception.
30670
30671 2008-04-16  Anatoli Papirovski  <apapirovski@mac.com>
30672
30673         Reviewed by David.
30674
30675         Optimized the calculation of background-size.
30676
30677         * rendering/RenderBox.cpp:
30678         (WebCore::RenderBox::calculateBackgroundSize):
30679
30680 2008-04-16  Adam Roben  <aroben@apple.com>
30681
30682         Fix Bug 17228: console.{log,warn,info,error} should support format
30683         strings, variable arguments
30684
30685         <https://bugs.webkit.org/show_bug.cgi?id=17228>
30686         <rdar://problem/5732828>
30687
30688         Reviewed by Tim Hatcher.
30689
30690         Test: manual-tests/inspector/console-log-formatting.html
30691
30692         * page/inspector/Console.js:
30693         (WebInspector.ConsoleMessage): Pass any extra arguments down to
30694         _format.
30695         (WebInspector.ConsoleMessage._format): This method constructs
30696         this.formattedMessage. We treat the first parameter as a format
30697         string. Any parameters that have not been used after substituting into
30698         the format string are concatenated together, separated by spaces.
30699         (WebInspector.ConsoleMessage.toMessageElement): Updated to use
30700         this.formattedMessage.
30701         (WebInspector.ConsoleMessage.toString): Ditto.
30702
30703 2008-04-15  Adam Roben  <aroben@apple.com>
30704
30705         Make String.format return an array of unused substitutions
30706
30707         String.format now returns an object with two properties:
30708         formattedResult and unusedSubstitutions.
30709
30710         Reviewed by Tim Hatcher.
30711
30712         * page/inspector/utilities.js:
30713         (String.vsprintf): Updated for changes to String.format. We throw away
30714         the array of unused substitutions.
30715         (String.format): Changed to keep track of which substitutions are used
30716         when formatting. We then return both the formatted result and the
30717         array of unused substitutions.
30718
30719 2008-04-15  Adam Roben  <aroben@apple.com>
30720
30721         Generalize String.format some more
30722
30723         String.format now takes an initial value and an append function which
30724         it uses to build the result. Each time a token is processed,
30725         append(valueSoFar, newValue) is called.
30726
30727         Reviewed by Tim Hatcher.
30728
30729         * page/inspector/utilities.js:
30730         (String.vsprintf): Pass the empty string for the initial value, and
30731         a function that concatenates two strings as the append function.
30732         (String.format): Use initialValue and append to build the result
30733         instead of only working with strings.
30734
30735 2008-04-15  Adam Roben  <aroben@apple.com>
30736
30737         Add String.format
30738
30739         String.format is a more generic form of String.vsprintf that takes a
30740         set of formatter functions, one for each supported format specifier.
30741         Each formatter function is passed the relevant token and substitution
30742         value, and returns the formatted result.
30743
30744         Reviewed by Tim Hatcher.
30745
30746         * page/inspector/utilities.js:
30747         (String.standardFormatters): Added.
30748         (String.vsprintf): Changed to call through to String.format.
30749         (String.format): Added. Most of the code came from String.vsprintf,
30750         except that we use the passed-in formatters to format the
30751         substitutions rather than hard-coding how to handle each format
30752         specifier.
30753
30754 2008-04-15  Adam Roben  <aroben@apple.com>
30755
30756         Refactor String.vsprintf to separate tokenizing and substituting
30757
30758         This will eventually be useful for the various console methods that
30759         take a format string.
30760
30761         Reviewed by Tim Hatcher.
30762
30763         * page/inspector/utilities.js:
30764         (String.tokenizeFormatString): Added. This uses the format parsing
30765         code from String.vsprintf but just returns an array of "string" and
30766         "specifier" tokens.
30767         (String.vsprintf): Now calls String.tokenizeFormatString and processes
30768         the tokens one at a time.
30769
30770 2008-04-15  Adam Roben  <aroben@apple.com>
30771
30772         Pass all arguments to console.{log,warn,info,error} into the Inspector's JS
30773
30774         Part of Bug 17228: console.{log,warn,info,error} should support format
30775         strings, variable arguments
30776         <http://bugs.webkit.org/show_bug.cgi?id=17228>
30777         <rdar://problem/5732828>
30778
30779         We don't use the extra arguments yet.
30780
30781         Reviewed by Tim Hatcher.
30782
30783         * page/Console.cpp:
30784         (WebCore::Console::error): Pass the arguments list to
30785         InspectorController.
30786         (WebCore::Console::info): Ditto.
30787         (WebCore::Console::log): Ditto.
30788         (WebCore::Console::warn): Ditto.
30789         * page/InspectorController.cpp:
30790         (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor
30791         that takes an ExecState and a List instead of a String. We wrap and
30792         store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >.
30793         (WebCore::InspectorController::addMessageToConsole): Added an overload
30794         that takes an ExecState and a List.
30795         (WebCore::InspectorController::addConsoleMessage): Moved code here
30796         from addMessageToConsole. Both overloads of addMessageToConsole now
30797         call this helper method.
30798         (WebCore::InspectorController::addScriptConsoleMessage): Updated for
30799         the new parameter order of WebInspector.ConsoleMessage. If the
30800         ConsoleMessage has a non-empty wrappedArguments Vector, we use that
30801         instead of the ConsoleMessage's message String.
30802         * page/InspectorController.h:
30803         * page/inspector/Console.js:
30804         (WebInspector.ConsoleMessage): Removed the explicit message parameter.
30805         We now get the message from the unnamed 5th parameter.
30806         * page/inspector/Resource.js: Updated for the change to
30807         WebInspector.ConsoleMessage's parameter order.
30808
30809 2008-04-15  Adam Roben  <aroben@apple.com>
30810
30811         Change calls to Chrome::addMessageToConsole to use Console::addMessage
30812
30813         Part of Bug 17228: console.{log,warn,info,error} should support format
30814         strings, variable arguments
30815         <http://bugs.webkit.org/show_bug.cgi?id=17228>
30816         <rdar://problem/5732828>
30817
30818         Console now takes care of calling ChromeClient::addMessageToConsole
30819         for the appropriate messages (i.e., just messages from JavaScript). If
30820         you ever want to add a message to the console, Console is the place to
30821         do it.
30822
30823         Reviewed by Darin Adler.
30824
30825         * WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
30826         * page/Chrome.cpp: Removed addMessageToConsole
30827         * page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
30828         * page/Console.cpp:
30829         (WebCore::Console::addMessage): Added. Calls
30830         ChromeClient::addMessageToConsole for JS messages, and calls
30831         InspectorController::addMessageToConsole for all messages.
30832         (WebCore::Console::error): Changed to call directly to
30833         InspectorController in addition to ChromeClient.
30834         (WebCore::Console::info): Ditto.
30835         (WebCore::Console::log): Ditto.
30836         (WebCore::Console::warn): Ditto.
30837         * page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
30838
30839 2008-04-15  Adam Roben  <aroben@apple.com>
30840
30841         Pass JSConsole's arguments unmodified to Console
30842
30843         Part of Bug 17228: console.{log,warn,info,error} should support format
30844         strings, variable arguments
30845         <http://bugs.webkit.org/show_bug.cgi?id=17228>
30846         <rdar://problem/5732828>
30847
30848         All of JSConsole's methods are now custom, so that we can pass the
30849         arguments unmodified to Console. Console now handles calling
30850         toString() on the first argument. Later it will pass the arguments off
30851         to InspectorController.
30852
30853         There should be no behavioral changes caused by this patch.
30854
30855         Reviewed by Darin Adler.
30856
30857         * ForwardingHeaders/kjs/list.h: Added.
30858         * GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
30859         * WebCore.pro: Ditto.
30860         * WebCore.vcproj/WebCore.vcproj: Ditto.
30861         * WebCore.xcodeproj/project.pbxproj: Ditto.
30862         * WebCoreSources.bkl: Ditto.
30863         * bindings/js/JSConsoleCustom.cpp: Added.
30864         (WebCore::JSConsole::error):
30865         (WebCore::JSConsole::info):
30866         (WebCore::JSConsole::log):
30867         (WebCore::JSConsole::warn):
30868         * page/Console.cpp: Changed all methods to take an ExecState* and a
30869         const List&. The first item in the List is toString()ed and passed to
30870         Chrome.
30871         (WebCore::Console::error):
30872         (WebCore::Console::info):
30873         (WebCore::Console::log):
30874         (WebCore::Console::warn):
30875         * page/Console.h:
30876         * page/Console.idl:
30877
30878 2008-04-16  Sam Weinig  <sam@webkit.org>
30879
30880         Reviewed by Darin Adler.
30881
30882         Rename kjs_strtod to KJS::strtod.
30883
30884         * platform/text/String.cpp:
30885         (WebCore::charactersToDouble):
30886
30887 2008-04-16  Alexey Proskuryakov  <ap@webkit.org>
30888
30889         Reviewed by Adam.
30890
30891         http://bugs.webkit.org/show_bug.cgi?id=18259
30892         XML+XSLT pages in iframe contains document.location of a parent window
30893
30894         Test: fast/xsl/subframe-location.html
30895
30896         * xml/XSLTProcessor.cpp:
30897         (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening
30898         it, so that the document loader picks a correct URL, too.
30899
30900 2008-04-16  Dan Bernstein  <mitz@apple.com>
30901
30902         Rubber-stamped by John Sullivan.
30903
30904         - remove unreachable code which was added in r8802
30905
30906         * rendering/RenderText.cpp:
30907         (WebCore::RenderText::caretRect):
30908
30909 2008-04-15  Timothy Hatcher  <timothy@apple.com>
30910
30911         Adds a script resource icon. Update the CSS icon to better match the script icon.
30912
30913         https://bugs.webkit.org/show_bug.cgi?id=18499
30914
30915         Rubber-stamped by Adele Peterson.
30916
30917         * page/inspector/Images/resourceCSSIcon.png: Updated.
30918         * page/inspector/Images/resourceJSIcon.png: Added.
30919         * page/inspector/inspector.css: Changed the script icon rule to reference the new image.
30920
30921 2008-04-16  Eric Seidel  <eric@webkit.org>
30922
30923         Reviewed by hyatt.
30924
30925         Fix leaky ImageBuffer code.
30926
30927         * platform/graphics/GeneratedImage.cpp:
30928         (WebCore::GeneratedImage::drawPattern):
30929         * platform/graphics/ImageBuffer.h:
30930         * platform/graphics/cg/ImageBufferCG.cpp:
30931         (WebCore::ImageBuffer::image):
30932
30933 2008-04-15  Justin Garcia  <justin.garcia@apple.com>
30934
30935         Reviewed by Oliver.
30936
30937         <rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)
30938
30939         * editing/markup.cpp:
30940         (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold
30941         paragraphs if the enclosing block is the root editable element.
30942
30943 2008-04-15  Mark Rowe  <mrowe@apple.com>
30944
30945         Reviewed by Jon Honeycutt.
30946
30947         Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role.  It is really
30948         a subrole of NSAccessibilityButtonRole.  As it is not used inside WebCore there is no change in
30949         behaviour as a result of doing this.  This fixes <rdar://problem/5866444>.
30950
30951         * page/AccessibilityObject.cpp:
30952         (WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.
30953         * page/AccessibilityObject.h: Ditto.
30954         * page/mac/AccessibilityObjectWrapper.mm:
30955         (RoleEntry::):
30956
30957 2008-04-15  Anders Carlsson  <andersca@apple.com>
30958
30959         Fix leaks seen on bot.
30960         
30961         * loader/SubstituteResource.h:
30962         (WebCore::SubstituteResource::~SubstituteResource):
30963         Add a virtual destructor.
30964
30965 2008-04-15  Brady Eidson  <beidson@apple.com>
30966
30967         Reviewed by Anders Carlsson
30968
30969         Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.
30970
30971         Each SubresourceLoader has a client.  That client is often a Loader::Host object.  
30972         The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
30973         object lifetime manually.
30974
30975         The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when 
30976         beginning the new navigation, and once when the new navigation is committed.
30977
30978         The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly 
30979         thereafter.  But the SubresourceLoader had a dangling pointer to the Host which is now invalid.
30980
30981         I explored a few options to fix this bug.  The one that was most obviously "clean" was to call cancel() on
30982         the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
30983         cleanup.
30984
30985         This problem with that approach was that it had other side effects - when you cut off a load that had already
30986         partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
30987         turn into broken image icons.  This was visually jarring and pretty unacceptable. 
30988
30989         So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
30990         SubresourceLoader before it forgets about it.  This leaves things the same visually and fixes the crash.
30991
30992         Note that the layout test for this - if possible - will require other enhancements to DRT including possibly 
30993         adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826> 
30994
30995         * loader/SubresourceLoader.h:
30996         (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient.  This is 
30997           perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less,
30998           and already null-check the client before calling it.
30999
31000         * loader/loader.cpp:
31001         (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide 
31002           to call into its client later.  Since the client has no guaranteed lifetime and is liable to be deleted 
31003           after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
31004
31005 2008-04-15  Anders Carlsson  <andersca@apple.com>
31006
31007         Reviewed by Adam.
31008
31009         Add empty files for the application cache.
31010         
31011         * Configurations/WebCore.xcconfig:
31012         * WebCore.vcproj/WebCore.vcproj:
31013         * WebCore.vcproj/build-generated-files.sh:
31014         Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
31015         
31016         * WebCore.xcodeproj/project.pbxproj:
31017         * loader/appcache: Added.
31018         * loader/appcache/ApplicationCache.cpp: Added.
31019         * loader/appcache/ApplicationCache.h: Added.
31020         * loader/appcache/ApplicationCacheGroup.cpp: Added.
31021         * loader/appcache/ApplicationCacheGroup.h: Added.
31022         * loader/appcache/ApplicationCacheResource.cpp: Added.
31023         * loader/appcache/ApplicationCacheResource.h: Added.
31024         * loader/appcache/DOMApplicationCache.cpp: Added.
31025         * loader/appcache/DOMApplicationCache.h: Added.
31026         * loader/appcache/DOMApplicationCache.idl: Added.
31027         * loader/appcache/ManifestParser.cpp: Added.
31028         * loader/appcache/ManifestParser.h: Added.
31029
31030 2008-04-15  Kevin McCullough  <kmccullough@apple.com>
31031
31032         Reviewed by Tim.
31033
31034         - <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
31035         - Add XMLHttpRequest support to the inspector.
31036
31037         * English.lproj/InspectorLocalizedStrings.js: Specify capitalization
31038         instead of using text-transform because XHR must capitalize all the letters.
31039         * page/inspector/Resource.js: Assume XHRs are textType even though this
31040         may not always be true.
31041         Also add the XHR category and let all mime types be consistent with it.
31042         * page/inspector/ResourcesPanel.js: Set the XHR category color.
31043         * page/inspector/inspector.css: Make XHRs yellow and fonts red because
31044         XHRs are more common than fonts and yellow next to orange (scripts) is
31045         not as harsh on the eyes as red next to orange.
31046         * page/inspector/inspector.js: Specify capitalization again.
31047
31048 2008-04-15  David Hyatt  <hyatt@apple.com>
31049
31050         Fix the zoom property so that it works properly with font-size.
31051
31052         Reviewed by John Sullivan
31053
31054         Added fast/css/zoom-font-size.html
31055
31056         * css/CSSStyleSelector.cpp:
31057         (WebCore::CSSStyleSelector::updateFont):
31058         (WebCore::CSSStyleSelector::applyProperty):
31059         (WebCore::CSSStyleSelector::checkForZoomChange):
31060         * css/CSSStyleSelector.h:
31061
31062 2008-04-15  Timothy Hatcher  <timothy@apple.com>
31063
31064         Fixes the bug where a resource view could still be shown after the inspected
31065         page navigates to another page.
31066
31067         https://bugs.webkit.org/show_bug.cgi?id=18517
31068
31069         Reviewed by Adam Roben.
31070
31071         * page/inspector/ResourcesPanel.js:
31072         (WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
31073         Iterate over all the resources and zero errors and warnings and delete the
31074         resource view and tree element. Removes all children of resourceViews. Passes
31075         true to _updateGraphDividersIfNeeded to force an immediate update.
31076         (WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
31077         the resource view if it is visible. Removes the resource from the _resources
31078         array. Removes the tree element from the outline tree. Zeros out the errors
31079         and warnings properties. Deletes the tree element and resource view properties.
31080         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
31081         this._calculator for times when reset is called before the calculator is set.
31082         * page/inspector/inspector.js:
31083         (WebInspector.removeResource): Call ResourcesPanel.removeResource.
31084
31085 2008-04-15  Anders Carlsson  <andersca@apple.com>
31086
31087         Reviewed by Adam.
31088
31089         Rename "archive" to "substitute" in a couple of places.
31090         
31091         * loader/DocumentLoader.cpp:
31092         (WebCore::DocumentLoader::DocumentLoader):
31093         (WebCore::DocumentLoader::clearArchiveResources):
31094         (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay):
31095         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
31096         (WebCore::DocumentLoader::isSubstituteLoadPending):
31097         (WebCore::DocumentLoader::cancelPendingSubstituteLoad):
31098         (WebCore::DocumentLoader::scheduleArchiveLoad):
31099         (WebCore::DocumentLoader::setDefersLoading):
31100         * loader/DocumentLoader.h:
31101         * loader/ResourceLoader.cpp:
31102         (WebCore::ResourceLoader::load):
31103         (WebCore::ResourceLoader::didCancel):
31104
31105 2008-04-15  Anders Carlsson  <andersca@apple.com>
31106
31107         Reviewed by Adam.
31108
31109         Move the URL, response and data to SubstituteResource.
31110         
31111         * loader/SubstituteResource.h:
31112         (WebCore::SubstituteResource::url):
31113         (WebCore::SubstituteResource::response):
31114         (WebCore::SubstituteResource::data):
31115         (WebCore::SubstituteResource::SubstituteResource):
31116         * loader/archive/ArchiveResource.cpp:
31117         (WebCore::ArchiveResource::ArchiveResource):
31118         * loader/archive/ArchiveResource.h:
31119         (WebCore::ArchiveResource::frameName):
31120
31121 2008-04-15  David Hyatt  <hyatt@apple.com>
31122
31123         https://bugs.webkit.org/show_bug.cgi?id=18467
31124
31125         Make sure to ignore zoom:0.  That is not supposed to actually do anything.  It's a hack in IE
31126         to cause an element to set "hasLayout."
31127
31128         Reviewed by Anders
31129
31130         Added fast/css/zoom-property-parsing.html
31131
31132         * css/CSSParser.cpp:
31133         (WebCore::CSSParser::parseValue):
31134         * css/CSSStyleSelector.cpp:
31135         (WebCore::CSSStyleSelector::applyProperty):
31136
31137 2008-04-15  Anders Carlsson  <andersca@apple.com>
31138
31139         Reviewed by Adam.
31140
31141         Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.
31142         
31143         * WebCore.vcproj/WebCore.vcproj:
31144         * WebCore.xcodeproj/project.pbxproj:
31145         * loader/SubstituteResource.h: Added.
31146         * loader/archive/ArchiveResource.h:
31147
31148 2008-04-15  Antti Koivisto  <antti@apple.com>
31149
31150         Reviewed by Geoff.
31151
31152         Fix <rdar://problem/5862921>
31153         REGRESSION: Leak in SVGSVGElement::SVGSVGElement
31154         
31155         In these strange days RefCounted starts with count of one.
31156
31157         * svg/SVGSVGElement.cpp:
31158         (WebCore::SVGSVGElement::SVGSVGElement):
31159         * svg/animation/SMILTimeContainer.h:
31160         (WebCore::SMILTimeContainer::create):
31161
31162 2008-04-15  Anatoli Papirovski  <apapirovski@mac.com>
31163
31164         Reviewed by hyatt
31165
31166         [CSS1, CSS3] Fixed the background-origin calculation for root elements
31167         (background-size and background-position are affected), r10794
31168         [CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto
31169
31170         Test: fast/backgrounds/background-origin-root-element.html
31171
31172         * rendering/RenderBox.cpp:
31173         (WebCore::RenderBox::calculateBackgroundSize):
31174         (WebCore::RenderBox::calculateBackgroundImageGeometry):
31175
31176 2008-04-15  Timothy Hatcher  <timothy@apple.com>
31177
31178         Fixes the regression where the error and warning counts did not show up in the Resources
31179         sidebar next to resources.
31180
31181         https://bugs.webkit.org/show_bug.cgi?id=18494
31182
31183         Reviewed by Adam Roben.
31184
31185         * page/inspector/ResourcesPanel.js:
31186         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
31187         on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
31188         or warning class to the bubble.
31189         (WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
31190         properties on each resource. Set the bubbleText back to an empty string.
31191         * page/inspector/SidebarTreeElement.js:
31192         (WebInspector.SidebarTreeElement): Create a statusElement.
31193         (WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
31194         (WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
31195         Assign the value to _bubbleText and bubbleElement.textContent.
31196         (WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.
31197         * page/inspector/inspector.css: Style rules for bubbles and status elements.
31198
31199 2008-04-15  Timothy Hatcher  <timothy@apple.com>
31200
31201         Fixes the regression where error and warning bubbles would not be added
31202         to the source view of a resource.
31203
31204         https://bugs.webkit.org/show_bug.cgi?id=18495
31205
31206         Reviewed by Adam Roben.
31207
31208         * css/view-source.css:
31209         (.webkit-html-message-bubble): Add a min-height to make sure the border-radius
31210         has enough room to apply.
31211         * page/inspector/Console.js:
31212         (WebInspector.Console.prototype.addMessage): Removed code that added messages
31213         to resource panels and incremented error and warning counts on resources.
31214         Now just call ResourcesPanel.addMessageToResource after assigning the resource
31215         to the console message.
31216         (WebInspector.Console.prototype.clearMessages): Removed code that cleared error
31217         and warning counts from resources an call ResourcesPanel.clearMessages.
31218         * page/inspector/ResourcesPanel.js:
31219         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
31220         on the resource's view, if it is implemented.
31221         (WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
31222         on all the resource views for the ones that implement it.
31223         (WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
31224         to make the resource's view if needed. Use a local view variable.
31225         (WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
31226         to create a resource view if needed.
31227         * page/inspector/SourceView.js:
31228         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the 
31229         _frameNeedsSetup property at the beginning to prevent recursion. Get the
31230         length of the messages array when assigning the local length variable.
31231         (WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
31232         (WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
31233         bubbles that might be sprinkled in the source. Also clears the messages array.
31234         (WebInspector.SourceView.prototype._addMessageToSource): Create the image
31235         element in the Inspector's document so we can use relative image URLs. Then
31236         adopt the image element into the frame's document.
31237
31238 2008-04-15  Brady Eidson  <beidson@apple.com>
31239
31240         Reviewed by Anders
31241
31242         Hook up event dispatching for window.localStorage changes.
31243
31244         Tests: storage/domstorage/localstorage/enumerate-storage.html
31245                storage/domstorage/localstorage/iframe-events.html
31246                storage/domstorage/localstorage/index-get-and-set.html
31247                storage/domstorage/localstorage/onstorage-attribute-markup.html
31248                storage/domstorage/localstorage/onstorage-attribute-setattribute.html
31249                storage/domstorage/localstorage/simple-events.html
31250                storage/domstorage/localstorage/simple-usage.html
31251                storage/domstorage/localstorage/window-open.html
31252
31253         * storage/LocalStorage.cpp:
31254         (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding
31255           each Frame that matches the storage area's security origin to a Vector.  Then dispatch
31256           the StorageEvent to each Frame in the Vector
31257
31258         * storage/SessionStorage.cpp:
31259         (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage,
31260           which is to only add the Frames to the Vector if their security origin matches
31261
31262 2008-04-15  Olivier Goffart  <ogoffart@trolltech.com>
31263
31264         Reviewed by Simon.
31265
31266         Fixes: copy to clipboard when selecting, and paste when clicking with the middle button
31267
31268         * platform/Pasteboard.h: Added Qt-specific selection mode
31269         * platform/qt/PasteboardQt.cpp: Choose the clipboard or the selecton
31270         according to the selection mode
31271         (WebCore::Pasteboard::writeSelection):
31272         (WebCore::Pasteboard::plainText):
31273         (WebCore::Pasteboard::documentFragment):
31274         (WebCore::Pasteboard::writeURL):
31275         (WebCore::Pasteboard::clear):
31276         (WebCore::Pasteboard::isSelectionMode):
31277
31278 2008-04-15  Andre Poenitz  <andre.poenitz@trolltech.com>
31279
31280         Reviewed by Simon.
31281
31282         Fix compilation with Qt namespaces
31283
31284         Qt can be configured to have all of its classes inside a specified namespaces.
31285         This is for example used in plugin/component environments like Eclipse.
31286
31287         This change makes it possible to let the Qt port compile against a namespaced
31288         Qt by the use of macros Qt provides to properly forward declare Qt classes in
31289         the namespace.
31290
31291         * WebCore.pro:
31292         * bridge/qt/qt_class.h:
31293         * bridge/qt/qt_instance.h:
31294         * html/HTMLCanvasElement.h:
31295         * platform/DragData.h:
31296         * platform/DragImage.h:
31297         * platform/KURL.h:
31298         * platform/PlatformKeyboardEvent.h:
31299         * platform/PlatformMouseEvent.h:
31300         * platform/PlatformWheelEvent.h:
31301         * platform/Widget.h:
31302         * platform/graphics/Color.h:
31303         * platform/graphics/FloatPoint.h:
31304         * platform/graphics/FloatRect.h:
31305         * platform/graphics/Gradient.h:
31306         * platform/graphics/GraphicsContext.h:
31307         * platform/graphics/ImageBuffer.h:
31308         * platform/graphics/ImageSource.h:
31309         * platform/graphics/IntPoint.h:
31310         * platform/graphics/IntRect.h:
31311         * platform/graphics/IntSize.h:
31312         * platform/graphics/Path.h:
31313         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
31314         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
31315         * platform/network/qt/QNetworkReplyHandler.h:
31316         * platform/network/qt/ResourceRequest.h:
31317         * platform/qt/ClipboardQt.h:
31318         * platform/qt/RenderThemeQt.h:
31319         * platform/text/PlatformString.h:
31320         * platform/text/qt/TextCodecQt.h:
31321         * svg/graphics/SVGPaintServer.h:
31322         * svg/graphics/SVGPaintServerGradient.h:
31323
31324 2008-04-14  Brady Eidson  <beidson@apple.com>
31325
31326         Reviewed by Anders
31327
31328         Lay the underpinnings for LocalStorage.
31329
31330         For now, this just exposes window.localStorage to the dom which returns an in-memory Storage object, much
31331         like SessionStorage.  The primary difference at this point is that the object returned is shared globally,
31332         and isn't copied for new top-level browsing contexts like SessionStorage.
31333
31334         Later, I'll add proper event dispatch and a persistent storage backing.
31335
31336         * GNUmakefile.am:
31337         * WebCore.base.exp:
31338         * WebCore.pro:
31339         * WebCore.vcproj/WebCore.vcproj:
31340         * WebCore.xcodeproj/project.pbxproj:
31341         * WebCoreSources.bkl:
31342
31343         * bindings/js/JSDOMWindowCustom.cpp:
31344         (WebCore::JSDOMWindow::mark): Mark the optionalLocalStorage
31345
31346         * page/DOMWindow.cpp:
31347         (WebCore::DOMWindow::clear):
31348         (WebCore::DOMWindow::localStorage):
31349         * page/DOMWindow.h:
31350         (WebCore::DOMWindow::optionalLocalStorage):
31351
31352         * storage/LocalStorage.cpp: Added.
31353         (WebCore::LocalStorage::sharedLocalStorage):
31354         (WebCore::LocalStorage::LocalStorage):
31355         (WebCore::LocalStorage::storageArea):
31356         (WebCore::LocalStorage::itemChanged):
31357         (WebCore::LocalStorage::itemRemoved):
31358         (WebCore::LocalStorage::dispatchStorageEvent):
31359         * storage/LocalStorage.h: Added.
31360
31361         * storage/SessionStorage.cpp: Refactor to use the client interface for event dispatching for sessionStorage objects
31362         (WebCore::SessionStorage::SessionStorage):
31363         (WebCore::SessionStorage::copy):
31364         (WebCore::SessionStorage::storageArea):
31365         (WebCore::SessionStorage::itemChanged):
31366         (WebCore::SessionStorage::itemRemoved):
31367         (WebCore::SessionStorage::dispatchStorageEvent):
31368         * storage/SessionStorage.h:
31369
31370         * storage/StorageArea.cpp: Add a client parameter, and call to the client when an item is changed or removed.
31371         (WebCore::StorageArea::create):
31372         (WebCore::StorageArea::StorageArea):
31373         (WebCore::StorageArea::copy):
31374         (WebCore::StorageArea::setItem):
31375         (WebCore::StorageArea::removeItem):
31376         (WebCore::StorageArea::setClient):
31377         * storage/StorageArea.h:
31378         (WebCore::StorageArea::page):
31379         (WebCore::StorageArea::securityOrigin):
31380
31381         * storage/StorageAreaClient.h: Added.  Break out "itemChanged" and "itemRemoved" to a StorageAreaClient
31382           This way, both SessionStorage and LocalStorage areas can have different behavior on changes with
31383           that behavior managed from a central location.
31384         (WebCore::StorageAreaClient::~StorageAreaClient):
31385         (WebCore::StorageAreaClient::StorageAreaClient):
31386         (WebCore::StorageAreaClient::itemChanged):
31387         (WebCore::StorageAreaClient::itemRemoved):
31388
31389 2008-04-14  Brady Eidson  <beidson@apple.com>
31390
31391         Reviewed by Anders
31392
31393         Add a hidden pref to debug WebArchive loading.  With this pref on, when loading a WebArchive,
31394         if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the 
31395         network and will instead fail the load with a "cannot show URL" error.
31396
31397         * loader/ResourceLoader.cpp:
31398         (WebCore::ResourceLoader::load): Do the check here.
31399
31400         * page/Settings.cpp:
31401         (WebCore::Settings::Settings):
31402         (WebCore::Settings::setWebArchiveDebugModeEnabled):
31403         * page/Settings.h:
31404         (WebCore::Settings::webArchiveDebugModeEnabled):
31405
31406 2008-04-14  Antti Koivisto  <antti@apple.com>
31407
31408         Reviewed by Eric.
31409
31410         Some preparations for additive animations and animations in <use>.
31411         - Disallow animation elements in instance trees.
31412         - Fix buggy SVGUseElement::removeDisallowedElementsFromSubtree(), make it 
31413           public and static
31414         - Invoke it from SVGElementInstance::updateInstance() to clean up the instance tree
31415           there as well.
31416         - Add mechanism for blocking instance updates when an animation changes
31417           the referenced tree.
31418         
31419         The added assert in SVGSMILElement::insertedIntoDocument() verifies the fixes
31420         with the existing test cases.
31421
31422         * svg/SVGAElement.cpp:
31423         (WebCore::SVGAElement::defaultEventHandler):
31424         * svg/SVGElementInstance.cpp:
31425         (WebCore::SVGElementInstance::updateInstance):
31426         * svg/SVGStyledElement.cpp:
31427         (WebCore::SVGStyledElement::updateElementInstance):
31428         (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
31429         * svg/SVGStyledElement.h:
31430         * svg/SVGUseElement.cpp:
31431         (WebCore::isDisallowedElement):
31432         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
31433         * svg/SVGUseElement.h:
31434         * svg/animation/SVGSMILElement.cpp:
31435         (WebCore::SVGSMILElement::insertedIntoDocument):
31436         (WebCore::SVGSMILElement::isSMILElement):
31437         (WebCore::SVGSMILElement::connectConditions):
31438         (WebCore::SVGSMILElement::disconnectConditions):
31439         * svg/animation/SVGSMILElement.h:
31440
31441 2008-04-14  Adam Roben  <aroben@apple.com>
31442
31443         Don't let the inspected page overwrite properties of JS objects in the
31444         Inspector
31445
31446         <https://bugs.webkit.org/show_bug.cgi?id=16011>
31447         <rdar://problem/5604409>
31448
31449         <https://bugs.webkit.org/show_bug.cgi?id=16837>
31450         <rdar://problem/5813850>
31451
31452         Reviewed by Sam Weinig and Geoff Garen.
31453
31454         Tests (contributed by Adam Barth and Collin Jackson):
31455         manual-tests/inspector-wrappers
31456
31457         * GNUmakefile.am:
31458         * WebCore.pro:
31459         * WebCore.vcproj/WebCore.vcproj:
31460         * WebCore.xcodeproj/project.pbxproj:
31461         * WebCoreSources.bkl:
31462         Added new files to the projects.
31463
31464         * bindings/js/JSQuarantinedObjectWrapper.cpp: Added.
31465         (WebCore::JSQuarantinedObjectWrapper::asWrapper): Converts a JSValue
31466         into a JSQuarantinedObjectWrapper, if the JSValue is in fact a
31467         JSQuarantinedObjectWrapper.
31468         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Callback to
31469         be used with PropertySlot.
31470         (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
31471         Hold onto the object we're wrapping and its global object. Pass the
31472         wrapped prototype up to the JSObject constructor.
31473         (WebCore::JSQuarantinedObjectWrapper::~JSQuarantinedObjectWrapper):
31474         (WebCore::JSQuarantinedObjectWrapper::unwrappedExecStateMatches):
31475         Returns true if our underlying object originated from the same global
31476         object as the passed-in ExecState.
31477         (WebCore::JSQuarantinedObjectWrapper::unwrappedExecState):
31478         (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
31479         Wraps and moves an exception from our underlying ExecState to the
31480         passed-in one.
31481         (WebCore::JSQuarantinedObjectWrapper::mark): Marks ourselves and the
31482         objects we're holding references to.
31483
31484         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
31485         (WebCore::JSQuarantinedObjectWrapper::put):
31486         (WebCore::JSQuarantinedObjectWrapper::deleteProperty):
31487         (WebCore::JSQuarantinedObjectWrapper::implementsConstruct):
31488         (WebCore::JSQuarantinedObjectWrapper::construct):
31489         (WebCore::JSQuarantinedObjectWrapper::implementsHasInstance):
31490         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
31491         (WebCore::JSQuarantinedObjectWrapper::implementsCall):
31492         (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
31493         (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
31494         JSObject overrides. These each check the appropriate permission before
31495         allowing the call to proceed. We wrap all outgoing values using
31496         m_wrapOutgoingValue, and we prepare all incoming values with the
31497         virtual prepareIncomingValue function. If an exception is raised when
31498         calling the underlying object, we transfer the exception in wrapped
31499         form to the passed-in ExecState.
31500
31501         * bindings/js/JSQuarantinedObjectWrapper.h: Added.
31502         (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
31503         (WebCore::JSQuarantinedObjectWrapper::className): We return the
31504         underlying object's class name so that we can successfully masquerade
31505         as that underlying object when, e.g., Object.prototype.toString is
31506         called on us.
31507         (WebCore::JSQuarantinedObjectWrapper::classInfo):
31508
31509         (WebCore::JSQuarantinedObjectWrapper::allowsGetProperty):
31510         (WebCore::JSQuarantinedObjectWrapper::allowsSetProperty):
31511         (WebCore::JSQuarantinedObjectWrapper::allowsDeleteProperty):
31512         (WebCore::JSQuarantinedObjectWrapper::allowsConstruct):
31513         (WebCore::JSQuarantinedObjectWrapper::allowsHasInstance):
31514         (WebCore::JSQuarantinedObjectWrapper::allowsCallAsFunction):
31515         (WebCore::JSQuarantinedObjectWrapper::allowsGetPropertyNames):
31516         These virtual methods let subclasses define the allowed operations on
31517         the wrapped object. By default all operations are disabled.
31518
31519         * bindings/js/JSInspectedObjectWrapper.cpp: Added. This subclass of
31520         JSQuarantinedObjectWrapper is used to wrap objects from the inspected
31521         page being passed to the Inspector.
31522         (WebCore::wrappers):
31523         (WebCore::JSInspectedObjectWrapper::wrap): Wraps the passed-in object
31524         if needed and returns the wrapper. If this object has been wrapped
31525         previously we'll return the old wrapper rather than make a new one.
31526         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Add
31527         ourselves to the wrapper map.
31528         (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Remove
31529         ourselves from the wrapper map.
31530         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Ensure that
31531         any objects passed to the inspected object are either wrappers around
31532         objects from the inspected page (in which case we unwrap them so that
31533         the inspected page never sees the wrapper), or wrapped callbacks from
31534         the Inspector.
31535         * bindings/js/JSInspectedObjectWrapper.h: Added.
31536         (WebCore::JSInspectedObjectWrapper::classInfo):
31537         (WebCore::JSInspectedObjectWrapper::allowsGetProperty):
31538         (WebCore::JSInspectedObjectWrapper::allowsSetProperty):
31539         (WebCore::JSInspectedObjectWrapper::allowsDeleteProperty):
31540         (WebCore::JSInspectedObjectWrapper::allowsConstruct):
31541         (WebCore::JSInspectedObjectWrapper::allowsHasInstance):
31542         (WebCore::JSInspectedObjectWrapper::allowsCallAsFunction):
31543         (WebCore::JSInspectedObjectWrapper::allowsGetPropertyNames):
31544         These all return true so that the Inspector can use objects from the
31545         inspected page however it needs.
31546         (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): Wrap all
31547         outgoing values as JSInspectedObjectWrappers.
31548
31549         * bindings/js/JSInspectorCallbackWrapper.cpp: Added. This subclass of
31550         JSQuarantinedObjectWrapper is used to wrap callbacks that the
31551         Inspector passes to the inspected page (e.g., for event listeners or
31552         client-side storage callbacks).
31553         (WebCore::wrappers):
31554         (WebCore::JSInspectorCallbackWrapper::wrap): Wraps the passed-in
31555         object if needed and returns the wrapper. If this object has been
31556         wrapped previously we'll return the old wrapper rather than make a new
31557         one.
31558         (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper): Add
31559         ourselves to the wrapper map.
31560         (WebCore::JSInspectorCallbackWrapper::~JSInspectorCallbackWrapper):
31561         Remove ourselves from the wrapper map.
31562         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): Ensure
31563         that values passed from the inspected page to an Inspector callback
31564         are wrapped in JSInspectedObjectWrappers. We also allow the inspected
31565         page to pass ourselves in (which will happen in the case of a
31566         client-side storage callback, where the callback itself is passed as
31567         the `this` object). In this case we unwrap ourselves so that the
31568         Inspector doesn't have to deal with the wrapper.
31569         * bindings/js/JSInspectorCallbackWrapper.h: Added.
31570         (WebCore::JSInspectorCallbackWrapper::classInfo):
31571         (WebCore::JSInspectorCallbackWrapper::allowsCallAsFunction):
31572         This is the only allowed operation on a JSInspectorCallbackWrapper.
31573         (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): Wrap all
31574         outgoing values as JSInspectorCallbackWrappers.
31575
31576         * page/InspectorController.cpp:
31577         (WebCore::getResourceDocumentNode): Wrap the Document before passing
31578         it to the Inspector.
31579         (WebCore::highlightDOMNode): Unwrap the Node that the Inspector passed
31580         to us.
31581         (WebCore::databaseTableNames): Unwrap the Database that the Inspector
31582         passed to us.
31583         (WebCore::inspectedWindow): Wrap the Window before passing it to the
31584         Inspector.
31585         (WebCore::InspectorController::focusNode): Wrap the Node before
31586         passing it to the Inspector.
31587         (WebCore::wrapCallback): Wraps the passed-in callback in a
31588         JSInspectorCallbackWrapper.
31589         (WebCore::InspectorController::addDatabaseScriptResource): Wrap the
31590         Database beore pasing it to the Inspector.
31591         (WebCore::InspectorController::windowScriptObjectAvailable): Add the
31592         new wrapCallback function to the InspectorController JS object.
31593
31594         * page/inspector/ElementsPanel.js:
31595         (WebInspector.ElementsPanel.reset): Wrap the contentLoaded callback.
31596
31597         * page/inspector/DatabaseQueryView.js:
31598         (WebInspector.DatabaseQueryView._enterKeyPressed):
31599         * page/inspector/DatabaseTableView.js:
31600         (WebInspector.DatabaseTableView.update):
31601         Pass null instead of an empty array to executeSql since we're no
31602         longer allowed to pass any unwrapped objects to the inspected page.
31603         We now wrap all callbacks being passed to the inspected page using
31604         InspectorController.wrapCallback.
31605
31606 2008-04-14  Adam Roben  <aroben@apple.com>
31607
31608         Use prototypes/constructors from the inspected page when operating on
31609         objects from the inspected page
31610
31611         Reviewed by Tim Hatcher.
31612
31613         * page/inspector/Console.js:
31614         (WebInspector.ConsolePanel._format): Use the Node constructor from the
31615         inspected Window with the instanceof operator.
31616         * page/inspector/ElementsPanel.js:
31617         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Use the
31618         Element prototype from the inspected Window instead of the Element
31619         prototype from this Window.
31620         * page/inspector/inspector.js:
31621         (WebInspector.performSearch): Ditto for Document prototype.
31622         * page/inspector/utilities.js:
31623         (Object.type): Now takes an optional Window parameter that is used to
31624         find the built-in constructors.
31625
31626 2008-04-14  Adam Roben  <aroben@apple.com>
31627
31628         Don't store objects from the Inspector on CSSStyleRules from the
31629         inspected page
31630
31631         Reviewed by Tim Hatcher.
31632
31633         * page/inspector/StylesSidebarPane.js:
31634         (WebInspector.StylesSidebarPane.update): Don't store raw CSSStyleRules
31635         from the inspected page in the styleRules array. Instead, always use a
31636         wrapper object. This will keep us from setting Inspector objects as
31637         properties of inspected objects.
31638
31639 2008-04-14  Timothy Hatcher  <timothy@apple.com>
31640
31641         Fixes a regression where clicking a resource URL in the Console would not
31642         show the resource in the Resources panel.
31643
31644         https://bugs.webkit.org/show_bug.cgi?id=18493
31645
31646         Reviewed by Adam Roben.
31647
31648         * page/inspector/Console.js:
31649         (WebInspector.Console.prototype._messagesClicked): Removed console-message-url
31650         handling to show resources. This is now handled by WebInspector.showResourceForURL.
31651         (WebInspector.ConsoleMessage.prototype.toMessageElement): Add the webkit-html-resource-link
31652         class name to the URL anchor. Also add the line number as a property to the anchor.
31653         * page/inspector/ResourcesPanel.js:
31654         (WebInspector.ResourcesPanel): Add a reference to the tree element to each calculator.
31655         (WebInspector.ResourcesPanel.prototype.showResource): Select and reveal the resource in
31656         the sidebar. Call showLine on the resource view if it is implemented.
31657         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Select the current calculator's
31658         tree element in the sidebar.
31659         (WebInspector.ResourcesPanel.prototype._graphSelected): Call closeVisibleResource after
31660         the calculator changes since closeVisibleResource uses the calculator.
31661         * page/inspector/SourceView.js:
31662         (WebInspector.SourceView.prototype.sourceRow): Early return if the line is null/zero.
31663         (WebInspector.SourceView.prototype.showLine):  Renamed from showSourceLine.
31664         * page/inspector/inspector.css:
31665         (body.console-visible #main-panels): Made the bottom 24px to match
31666         the height of #main-status-bar.
31667         (.console-message-url): Make the color important so it wins over
31668         the .webkit-html-resource-link rule.
31669         (.resource-view .resource-view-content): Made more generic from .image
31670         so all resource views get sized correctly.
31671         (.resource-view.image .resource-view-content): Removed.
31672         * page/inspector/inspector.js:
31673         (WebInspector.documentClick): Pass the line number from the anchor to
31674         WebInspector.showResourceForURL.
31675         (WebInspector.showResourceForURL): Add line number support. Pass the line
31676         to ResourcesPanel.showResource.
31677         (WebInspector.addMainEventListeners): Use bind for the event listeners.
31678
31679 2008-04-14  Xan Lopez  <xan@gnome.org>
31680
31681         Reviewed by Alp Toker.
31682
31683         http://bugs.webkit.org/show_bug.cgi?id=17917
31684         Bug 17917: Cookie support for HTTP soup backend
31685
31686         Initial implementation of cookies for the http soup backend.
31687
31688         Moved CookieJarGtk to CookieJarSoup in network/soup and left the original
31689         one as CookieJarCurl in network/curl.
31690
31691         * GNUmakefile.am:
31692         * platform/CookieJar.h:
31693         * platform/network/curl/CookieJarCurl.cpp: Renamed from WebCore/platform/gtk/CookieJarGtk.cpp.
31694         (WebCore::setCookies):
31695         (WebCore::cookies):
31696         * platform/network/soup/CookieJarSoup.cpp: Added.
31697         (WebCore::getCookieJar):
31698         (WebCore::setCookies):
31699         (WebCore::cookies):
31700         * platform/network/soup/ResourceHandleSoup.cpp:
31701         (WebCore::ResourceHandle::start):
31702
31703 2008-04-14  Holger Freyther  <zecke@selfish.org>
31704
31705         Reviewed by Alp Toker.
31706
31707         https://bugs.webkit.org/show_bug.cgi?id=18411
31708         Enable Page caching and create FrameViews on the fly
31709
31710         Create the FrameView on the fly and cache pages
31711
31712         - Keep a copy of the GtkAdjustment to be able to reuse it for the
31713           FrameViews
31714         - Do not initially create a FrameView and update the WebKit code to
31715           cope with not having a view.
31716         - Cache seven pages by default.
31717
31718         * platform/gtk/ScrollViewGtk.cpp:
31719         (WebCore::ScrollView::setGtkAdjustments):
31720
31721 2008-04-14  David Hyatt  <hyatt@apple.com>
31722
31723         Add a new optimized layout path for positioned objects that move.  Also avoid always marking the <html>
31724         object for layout when it has a percentage height, since the RenderView already does that when its size
31725         changes.
31726
31727         Reviewed by mjs
31728
31729         * rendering/RenderBlock.cpp:
31730         (WebCore::RenderBlock::layoutBlockChildren):
31731         (WebCore::RenderBlock::layoutPositionedObjects):
31732         * rendering/RenderBox.h:
31733         (WebCore::RenderBox::layoutDoingPositionedMovementOnly):
31734         * rendering/RenderObject.cpp:
31735         (WebCore::RenderObject::RenderObject):
31736         (WebCore::RenderObject::setNeedsLayout):
31737         (WebCore::RenderObject::setChildNeedsLayout):
31738         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
31739         (WebCore::RenderObject::setStyle):
31740         * rendering/RenderObject.h:
31741         (WebCore::RenderObject::needsLayout):
31742         (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
31743         (WebCore::RenderObject::layoutDoingPositionedMovementOnly):
31744         * rendering/RenderStyle.cpp:
31745         (WebCore::positionedObjectMoved):
31746         (WebCore::RenderStyle::diff):
31747         * rendering/RenderStyle.h:
31748         (WebCore::RenderStyle::):
31749
31750 2008-04-14  David Hyatt  <hyatt@apple.com>
31751
31752         Add support for gradients in the CSS content property.
31753
31754         Reviewed by olliej
31755
31756         Added fast/gradients/generated-gradients.html
31757
31758         * GNUmakefile.am:
31759         * WebCore.pro:
31760         * WebCore.vcproj/WebCore.vcproj:
31761         * WebCore.xcodeproj/project.pbxproj:
31762         * WebCoreSources.bkl:
31763         * css/CSSParser.cpp:
31764         (WebCore::CSSParser::parseContent):
31765         * css/CSSStyleSelector.cpp:
31766         (WebCore::CSSStyleSelector::applyProperty):
31767         (WebCore::CSSStyleSelector::styleImage):
31768         (WebCore::CSSStyleSelector::mapBackgroundImage):
31769         * css/CSSStyleSelector.h:
31770         * html/HTMLImageElement.cpp:
31771         (WebCore::HTMLImageElement::attach):
31772         * rendering/RenderContainer.cpp:
31773         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
31774         * rendering/RenderImage.cpp:
31775         (WebCore::RenderImage::RenderImage):
31776         (WebCore::RenderImage::setCachedImage):
31777         (WebCore::RenderImage::paintReplaced):
31778         (WebCore::RenderImage::calcReplacedWidth):
31779         (WebCore::RenderImage::calcReplacedHeight):
31780         (WebCore::RenderImage::calcAspectRatioWidth):
31781         (WebCore::RenderImage::calcAspectRatioHeight):
31782         * rendering/RenderImage.h:
31783         (WebCore::RenderImage::hasImage):
31784         (WebCore::RenderImage::image):
31785         (WebCore::RenderImage::errorOccurred):
31786         (WebCore::RenderImage::usesImageContainerSize):
31787         (WebCore::RenderImage::setImageContainerSize):
31788         (WebCore::RenderImage::imageHasRelativeWidth):
31789         (WebCore::RenderImage::imageHasRelativeHeight):
31790         (WebCore::RenderImage::imageSize):
31791         * rendering/RenderImageGeneratedContent.cpp: Added.
31792         (WebCore::RenderImageGeneratedContent::RenderImageGeneratedContent):
31793         (WebCore::RenderImageGeneratedContent::~RenderImageGeneratedContent):
31794         (WebCore::RenderImageGeneratedContent::setStyleImage):
31795         * rendering/RenderImageGeneratedContent.h: Added.
31796         (WebCore::RenderImageGeneratedContent::hasImage):
31797         (WebCore::RenderImageGeneratedContent::image):
31798         (WebCore::RenderImageGeneratedContent::errorOccurred):
31799         (WebCore::RenderImageGeneratedContent::usesImageContainerSize):
31800         (WebCore::RenderImageGeneratedContent::setImageContainerSize):
31801         (WebCore::RenderImageGeneratedContent::imageHasRelativeWidth):
31802         (WebCore::RenderImageGeneratedContent::imageHasRelativeHeight):
31803         (WebCore::RenderImageGeneratedContent::imageSize):
31804         * rendering/RenderObject.cpp:
31805         (WebCore::RenderObject::createObject):
31806         * rendering/RenderStyle.cpp:
31807         (WebCore::StyleCachedImage::imageHasRelativeWidth):
31808         (WebCore::StyleCachedImage::imageHasRelativeHeight):
31809         (WebCore::StyleCachedImage::usesImageContainerSize):
31810         (WebCore::RenderStyle::contentDataEquivalent):
31811         (WebCore::RenderStyle::setContent):
31812         (WebCore::ContentData::clear):
31813         * rendering/RenderStyle.h:
31814         (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
31815         (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
31816         (WebCore::StyleGeneratedImage::usesImageContainerSize):
31817         (WebCore::BackgroundLayer::setBackgroundImage):
31818         (WebCore::ContentData::):
31819         (WebCore::RenderStyle::setListStyleImage):
31820
31821 2008-04-14  Brady Eidson  <beidson@apple.com>
31822
31823         Reviewed by Sam, but Anders too, and he was more thorough in his review
31824         and thats the only reason Sam beat him
31825
31826         Swap the Page and SecurityOrigin arguments when creating a StorageArea.
31827
31828         SecurityOrigin is really the primary identifying characteristic of a StorageArea,
31829         and StorageAreas that represent LocalStorage won't have an owner Page.
31830
31831         * storage/SessionStorage.cpp:
31832         (WebCore::SessionStorage::copy):
31833         (WebCore::SessionStorage::storageArea):
31834
31835         * storage/StorageArea.cpp:
31836         (WebCore::StorageArea::create):
31837         (WebCore::StorageArea::StorageArea):
31838         (WebCore::StorageArea::copy):
31839         (WebCore::StorageArea::dispatchStorageEvent): Null check m_page here, as in the future
31840           it might be null
31841         * storage/StorageArea.h:
31842
31843 2008-04-14  Timothy Hatcher  <timothy@apple.com>
31844
31845         Add support for changing the sort order of the resources. The two sorting
31846         methods supported current are Time and Size.
31847
31848         Reviewed by Adam Roben.
31849
31850         * page/inspector/Images/statusbarMenuButton.png: Added.
31851         * page/inspector/Images/statusbarMenuButtonSelected.png: Added.
31852         * page/inspector/ResourcesPanel.js:
31853         (WebInspector.ResourcesPanel): Create the status bar menu button and
31854         setup the event listener to call _changeSortingFunction. Each option in
31855         the select references a sorting function.
31856         (WebInspector.ResourcesPanel.get statusBarItems): Add the sorting menu to the
31857         items returned.
31858         (WebInspector.ResourcesPanel._changeSortingFunction): Set the sorting function
31859         to the selected option's function in the sorting menu.
31860         * page/inspector/inspector.css: Added CSS rules for select elements in status bars.
31861
31862 2008-04-14  Timothy Hatcher  <timothy@apple.com>
31863
31864         Add support for toggling between small and large resource rows
31865         in the Resources panel.
31866
31867         Reviewed by Adam Roben.
31868
31869         * English.lproj/InspectorLocalizedStrings.js: Added new tooltip string.
31870         * page/inspector/Images/largerResourcesButtons.png: Added.
31871         * page/inspector/Images/resourceDocumentIconSmall.png: Added.
31872         * page/inspector/Images/resourcePlainIconSmall.png: Added.
31873         * page/inspector/ResourcesPanel.js:
31874         (WebInspector.ResourcesPanel): Create the status bar button and
31875         setup the event listener to call _toggleLargerResources.
31876         (WebInspector.ResourcesPanel.get statusBarItems): Return the status bar button.
31877         (WebInspector.ResourcesPanel._toggleLargerResources): Toggle the class names
31878         for the resources children list and the status bar button.
31879         * page/inspector/inspector.css: New style rules for small resources
31880         and the status bar item.
31881
31882 2008-04-14  Chris Fleizach  <cfleizach@apple.com>
31883
31884         Reviewed by Darin Adler
31885
31886         <rdar://problem/5854572> REGRESSION: AXPosition seems to be flipped in nightly build
31887         AX was using the wrong method to determine the view to use to create the screen position 
31888
31889         * page/AccessibilityObject.cpp:
31890         (WebCore::AccessibilityObject::documentFrameView):
31891         * page/mac/AccessibilityObjectWrapper.mm:
31892         (-[AccessibilityObjectWrapper position]):
31893
31894 2008-04-14  David Smith  <catfish.man@gmail.com>
31895
31896         Reviewed by Timothy Hatcher.
31897         
31898         - Fix https://bugs.webkit.org/show_bug.cgi?id=14258
31899         Response time vs. download time should be shown in the network profile
31900
31901         * page/inspector/Resource.js: Change the sorting function to sort by response received time.
31902         * page/inspector/ResourcesPanel.js: Hook up the existing infrastructure to two bars instead of one; one for the total time, one for the time post-response.
31903         * page/inspector/inspector.css: Add a new rule to make the waiting bar have a lower opacity, and change the total bar opacity to handle the overlap
31904
31905 2008-04-14  Julien Chaffraix  <jchaffraix@webkit.org>
31906
31907         Reviewed by Ap.
31908
31909         Bug 17403: WebKit Creates Invalid Xhtml Links with Ajax
31910         http://bugs.webkit.org/show_bug.cgi?id=17403
31911
31912         The previous code had callbacks for the normal parsing (full document) and fragment parsing.
31913         The difference was induced by the method we were using which did not accept a xmlParserCtxt.
31914         The code has been refactored to allow us to share the callbacks between the different cases.
31915         A drawback is that we have to use xmlParseContent which is an internal libxml method and thus
31916         some internal intialization is done in WebCore.
31917
31918         Test: fast/parser/ampersand-escaped-parseXMLFragment.xhtml
31919
31920         * dom/XMLTokenizer.cpp:
31921         (WebCore::createStringParser): Moved didInit in the global scope as it is shared by the
31922         2 create methods.
31923
31924         (WebCore::createMemoryParser): Create a memory parser similar to the previous code.
31925         Initialize the xmlParserContext to call xmlParseContent in parseXMLDocumentFragment.
31926
31927         (WebCore::XMLTokenizer::initializeParserContext): Check m_parsingFragment to know
31928         which create method to call.
31929
31930         * dom/XMLTokenizer.h: Added parseXMLDocumentFragment as a friend of XMLTokenizer.
31931
31932 2008-04-14  Rob Buis  <buis@kde.org>
31933
31934         Reviewed by Eric.
31935
31936         http://bugs.webkit.org/show_bug.cgi?id=18230
31937         tspan in link not working
31938
31939         Implement SVG Errata: "The 'a' element may contain any
31940         element that its parent may contain, except itself."
31941
31942         * svg/SVGAElement.cpp:
31943         (WebCore::SVGAElement::childShouldCreateRenderer):
31944
31945 2008-04-13  David Hyatt  <hyatt@apple.com>
31946
31947         Fix for bug 18466, WebKit exhibits slow performance on Opera DHTML benchmark.  Improve layout's rect
31948         invalidation code to only invalidate a single unioned rect once enough individual little rects have
31949         been detected.
31950
31951         Reviewed by olliej
31952
31953         * page/FrameView.cpp:
31954         (WebCore::FrameViewPrivate::reset):
31955         (WebCore::FrameView::layout):
31956         (WebCore::FrameView::repaintRectangle):
31957         (WebCore::FrameView::beginDeferredRepaints):
31958         (WebCore::FrameView::endDeferredRepaints):
31959         * page/FrameView.h:
31960
31961 2008-04-13  Eric Seidel  <eric@webkit.org>
31962
31963         Reviewed by Oliver.
31964
31965         Fix spelling error in function name, no test case.
31966
31967         * svg/SVGTextContentElement.cpp:
31968         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
31969
31970 2008-04-13  Eric Seidel  <eric@webkit.org>
31971
31972         Reviewed by Oliver.
31973
31974         Build fix for +SVG_ANIMATION -SVG_FOREIGN_OBJECT build, no tests.
31975
31976         * svg/SVGAnimateMotionElement.cpp:
31977         (WebCore::SVGAnimateMotionElement::hasValidTarget):
31978
31979 2008-04-13  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
31980
31981         Reviewed by Oliver Hunt.
31982
31983         http://bugs.webkit.org/show_bug.cgi?id=18239
31984         [Gtk] Build breaks if SVG is enabled but SVG Fonts disabled
31985
31986         * svg/SVGAltGlyphElement.idl: Add SVG_FONTS in Conditional
31987
31988 2008-04-13  Julien Chaffraix  <jchaffraix@webkit.org>
31989
31990         Reviewed by David.
31991
31992         More SVG filters build fix.
31993
31994         * svg/graphics/filters/SVGFEImage.cpp:
31995         (WebCore::SVGFEImage::~SVGFEImage):
31996         (WebCore::SVGFEImage::setCachedImage):
31997
31998 2008-04-13  David Hyatt  <hyatt@apple.com>
31999
32000         Fix build bustage on the filters SVG code path (not built by default).
32001
32002         * svg/SVGFEImageElement.cpp:
32003         (WebCore::SVGFEImageElement::~SVGFEImageElement):
32004         (WebCore::SVGFEImageElement::parseMappedAttribute):
32005
32006 2008-04-13  Dan Winship  <danw@gnome.org>
32007
32008         Reviewed by Alp Toker.
32009
32010         http://bugs.webkit.org/show_bug.cgi?id=18391
32011         return body data incrementally from libsoup backend
32012
32013         Fix libsoup backend to pass data to the loader incrementally
32014         rather than all at once at the end.
32015
32016         * platform/network/soup/ResourceHandleSoup.cpp
32017         (ResourceHandle::start): connect to "got-headers" and "got-chunk"
32018         signals on the message
32019         (gotHeadersCallback): call client->didReceiveResponse() from here
32020         (gotChunkCallback): call client->didReceiveData() from here
32021         (finishedCallback): renamed from dataCallback. mostly just calls
32022         client->didFinishLoading() now.
32023
32024 2008-04-13  Dan Bernstein  <mitz@apple.com>
32025
32026         Reviewed by Jessica Kahn.
32027
32028         - remove duplicate condition in canHaveChildrenForEditing()
32029
32030         * editing/htmlediting.cpp:
32031         (WebCore::canHaveChildrenForEditing):
32032
32033 2008-04-13  Dan Bernstein  <mitz@apple.com>
32034
32035         Reviewed by Darin Adler.
32036
32037         - fix http://bugs.webkit.org/show_bug.cgi?id=18307
32038           <rdar://problem/5842546> REGRESSION (r31620): Incorrect Hiragino Kaku Gothic, font-weight:500
32039
32040         Test: fast/css/font-weight-1.html
32041
32042         * platform/graphics/mac/FontCacheMac.mm:
32043         (WebCore::toAppKitFontWeight): Adjusted the mapping to cover the AppKit
32044         weight range from 2 to 12, because AppKit weight 1 never occurs. The
32045         new mapping matches font-weight: n00 to ISO weight Wn.
32046         * platform/mac/WebFontCache.mm:
32047         (betterChoice): Changed the midpoint used when deciding between two
32048         candidates that deviate from the desired weight by the same amount.
32049
32050 2008-04-12  David Hyatt  <hyatt@apple.com>
32051
32052         Memory management cleanup for the new StyleCachedImage and StyleGeneratedImage classes.  Make the back end
32053         values hold refptrs to cached front end values.  This will avoid malloc churn as RenderStyles get
32054         re-resolved.
32055
32056         Reviewed by olliej
32057
32058         * css/CSSCursorImageValue.cpp:
32059         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
32060         (WebCore::CSSCursorImageValue::cachedImage):
32061         * css/CSSCursorImageValue.h:
32062         * css/CSSImageGeneratorValue.cpp:
32063         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
32064         (WebCore::CSSImageGeneratorValue::generatedImage):
32065         * css/CSSImageGeneratorValue.h:
32066         * css/CSSImageValue.cpp:
32067         (WebCore::CSSImageValue::CSSImageValue):
32068         (WebCore::CSSImageValue::~CSSImageValue):
32069         (WebCore::CSSImageValue::cachedImage):
32070         * css/CSSImageValue.h:
32071         * css/CSSStyleSelector.cpp:
32072         (WebCore::CSSStyleSelector::applyProperty):
32073         (WebCore::CSSStyleSelector::createStyleImage):
32074         * css/CSSStyleSelector.h:
32075         * rendering/RenderStyle.h:
32076         (WebCore::StyleCachedImage::cachedImage):
32077         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
32078         (WebCore::StyleGeneratedImage::data):
32079
32080 2008-04-12  Julien Chaffraix  <jchaffraix@webkit.org>
32081
32082         Not reviewed, Qt build fix.
32083
32084         * dom/XMLTokenizer.cpp:
32085        (WebCore::XMLTokenizer::parseEndElement):
32086         * platform/graphics/qt/GraphicsContextQt.cpp:
32087         (WebCore::GraphicsContext::clip):
32088         * platform/qt/ClipboardQt.cpp:
32089         (WebCore::ClipboardQt::setDragImage):
32090
32091 2008-04-12  David Hyatt  <hyatt@apple.com>
32092
32093         Add support for list-style-image gradients.  Also improve the image comparisons between two RenderStyles        
32094         to not mistakenly believe that images have changed.
32095
32096         Reviewed by olliej
32097
32098         Added fast/gradients/list-item-gradient.html
32099
32100         * css/CSSComputedStyleDeclaration.cpp:
32101         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
32102         * css/CSSParser.cpp:
32103         (WebCore::CSSParser::parseValue):
32104         * css/CSSStyleSelector.cpp:
32105         (WebCore::CSSStyleSelector::applyProperty):
32106         (WebCore::CSSStyleSelector::createStyleImage):
32107         * rendering/RenderListMarker.cpp:
32108         (WebCore::RenderListMarker::RenderListMarker):
32109         (WebCore::RenderListMarker::paint):
32110         (WebCore::RenderListMarker::imageChanged):
32111         (WebCore::RenderListMarker::calcPrefWidths):
32112         * rendering/RenderListMarker.h:
32113         * rendering/RenderStyle.cpp:
32114         (WebCore::imagesEquivalent):
32115         (WebCore::BorderImage::operator==):
32116         (WebCore::StyleCachedImage::errorOccurred):
32117         (WebCore::BackgroundLayer::operator==):
32118         (WebCore::StyleInheritedData::StyleInheritedData):
32119         (WebCore::cursorDataEquivalent):
32120         (WebCore::StyleInheritedData::operator==):
32121         (WebCore::RenderStyle::diff):
32122         * rendering/RenderStyle.h:
32123         (WebCore::StyleImage::errorOccurred):
32124         (WebCore::RenderStyle::listStyleImage):
32125         (WebCore::RenderStyle::setListStyleImage):
32126         (WebCore::RenderStyle::initialListStyleImage):
32127
32128 2008-04-12  Dan Bernstein  <mitz@apple.com>
32129
32130         - Windows build fix
32131
32132         * platform/win/ClipboardWin.cpp:
32133         (WebCore::ClipboardWin::setDragImage):
32134
32135 2008-04-12  Kevin Ollivier  <kevino@theolliviers.com>
32136
32137         wx build fix. Update clip to take a FloatRect.
32138
32139         * platform/graphics/wx/GraphicsContextWx.cpp:
32140         (WebCore::GraphicsContext::clip):
32141
32142 2008-04-12  David Hyatt  <hyatt@apple.com>
32143
32144         Add gradient support to border-image (even though it's mostly just weird).
32145
32146         Reviewed by Dan
32147
32148         Added fast/gradients/border-image-gradient.html
32149               fast/gradients/border-image-gradient-sides-and-corners.html
32150
32151         * css/CSSBorderImageValue.h:
32152         (WebCore::CSSBorderImageValue::imageValue):
32153         * css/CSSStyleSelector.cpp:
32154         (WebCore::CSSStyleSelector::applyProperty):
32155         * platform/graphics/GeneratedImage.cpp:
32156         (WebCore::GeneratedImage::draw):
32157         * rendering/InlineFlowBox.cpp:
32158         (WebCore::InlineFlowBox::paintBoxDecorations):
32159         * rendering/RenderBox.cpp:
32160         (WebCore::RenderBox::imageChanged):
32161         * rendering/RenderObject.cpp:
32162         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
32163         (WebCore::RenderObject::paintBorderImage):
32164         (WebCore::RenderObject::paintBorder):
32165         (WebCore::RenderObject::updateBackgroundImages):
32166         (WebCore::RenderObject::arenaDelete):
32167         * rendering/RenderStyle.cpp:
32168         (WebCore::StyleCachedImage::isLoaded):
32169         * rendering/RenderStyle.h:
32170         (WebCore::StyleImage::isLoaded):
32171         (WebCore::BorderImage::image):
32172
32173 2008-04-11  Dan Bernstein  <mitz@apple.com>
32174
32175         Reviewed by Dave Hyatt.
32176
32177         - fix a regression from r31324 which caused most Arabic text to render
32178           as missing glyphs
32179
32180         Test: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg
32181
32182         * svg/SVGFont.cpp:
32183         (WebCore::SVGTextRunWalker::walk): Changed to always process characters
32184         in logical order and therefore dispatch the callbacks with a logically-
32185         ordered glyph stream. Changed the call to isCompatibleGlyph() to check
32186         for compatibility only with the range of characters the candidate glyph
32187         is derived from rather than with the entire lookup range. Changed to
32188         mark the <missing-glyph> glyph identifier as valid, to facilitate the
32189         use of invalid glyph identifiers to mark font fallback.
32190         (WebCore::drawTextUsingSVGFontCallback): Changed to only append the
32191         glyph identifier to a vector.
32192         (WebCore::drawTextMissingGlyphCallback): Changed to only append the
32193         character to a vector and append an invalid glyph identifier to the
32194         glyph vector.
32195         (WebCore::Font::drawTextUsingSVGFont): Moved the drawing from the
32196         callbacks into this function, iterating over the glyph and fallback
32197         characters vector in visual order.
32198
32199 2008-04-11  Dirk Schulze <vbs85@gmx.de>
32200
32201         Reviewed by eseidel.
32202
32203         Attempt to fix Cairo build.
32204
32205         * platform/graphics/cairo/GraphicsContextCairo.cpp:
32206         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
32207
32208 2008-04-11  David Hyatt  <hyatt@apple.com>
32209
32210         Rename CachedResource's ref/deref methods to addClient/removeClient.  This matches the new
32211         StyleImage class and is a more accurate description of what those methods really do.
32212
32213         Reviewed by olliej
32214
32215         * WebCore.base.exp:
32216         * css/CSSCursorImageValue.cpp:
32217         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
32218         * css/CSSFontFaceSource.cpp:
32219         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
32220         (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
32221         * css/CSSImageValue.cpp:
32222         (WebCore::CSSImageValue::~CSSImageValue):
32223         (WebCore::CSSImageValue::image):
32224         * css/CSSImportRule.cpp:
32225         (WebCore::CSSImportRule::~CSSImportRule):
32226         (WebCore::CSSImportRule::insertedIntoParent):
32227         * dom/ProcessingInstruction.cpp:
32228         (WebCore::ProcessingInstruction::~ProcessingInstruction):
32229         (WebCore::ProcessingInstruction::checkStyleSheet):
32230         (WebCore::ProcessingInstruction::parseStyleSheet):
32231         * dom/XMLTokenizer.cpp:
32232         (WebCore::XMLTokenizer::~XMLTokenizer):
32233         (WebCore::XMLTokenizer::endElementNs):
32234         (WebCore::XMLTokenizer::notifyFinished):
32235         * html/CanvasPattern.cpp:
32236         (WebCore::CanvasPattern::CanvasPattern):
32237         (WebCore::CanvasPattern::~CanvasPattern):
32238         * html/HTMLImageLoader.cpp:
32239         (WebCore::HTMLImageLoader::~HTMLImageLoader):
32240         (WebCore::HTMLImageLoader::setImage):
32241         (WebCore::HTMLImageLoader::updateFromElement):
32242         * html/HTMLLinkElement.cpp:
32243         (WebCore::HTMLLinkElement::~HTMLLinkElement):
32244         (WebCore::HTMLLinkElement::process):
32245         * html/HTMLScriptElement.cpp:
32246         (WebCore::HTMLScriptElement::~HTMLScriptElement):
32247         (WebCore::HTMLScriptElement::parseMappedAttribute):
32248         (WebCore::HTMLScriptElement::insertedIntoDocument):
32249         (WebCore::HTMLScriptElement::removedFromDocument):
32250         (WebCore::HTMLScriptElement::notifyFinished):
32251         * html/HTMLTokenizer.cpp:
32252         (WebCore::HTMLTokenizer::reset):
32253         (WebCore::HTMLTokenizer::scriptHandler):
32254         (WebCore::HTMLTokenizer::notifyFinished):
32255         * loader/CachedCSSStyleSheet.cpp:
32256         (WebCore::CachedCSSStyleSheet::addClient):
32257         * loader/CachedCSSStyleSheet.h:
32258         * loader/CachedFont.cpp:
32259         (WebCore::CachedFont::addClient):
32260         * loader/CachedFont.h:
32261         * loader/CachedImage.cpp:
32262         (WebCore::CachedImage::addClient):
32263         * loader/CachedImage.h:
32264         * loader/CachedResource.cpp:
32265         (WebCore::CachedResource::addClient):
32266         (WebCore::CachedResource::removeClient):
32267         * loader/CachedResource.h:
32268         * loader/CachedScript.cpp:
32269         (WebCore::CachedScript::addClient):
32270         * loader/CachedScript.h:
32271         * loader/CachedXBLDocument.h:
32272         * loader/CachedXSLStyleSheet.cpp:
32273         (WebCore::CachedXSLStyleSheet::addClient):
32274         * loader/CachedXSLStyleSheet.h:
32275         * loader/mac/UserStyleSheetLoader.cpp:
32276         (UserStyleSheetLoader::UserStyleSheetLoader):
32277         (UserStyleSheetLoader::~UserStyleSheetLoader):
32278         * platform/mac/ClipboardMac.mm:
32279         (WebCore::ClipboardMac::setDragImage):
32280         * rendering/RenderImage.cpp:
32281         (WebCore::RenderImage::~RenderImage):
32282         (WebCore::RenderImage::setCachedImage):
32283         * rendering/RenderListMarker.cpp:
32284         (WebCore::RenderListMarker::~RenderListMarker):
32285         (WebCore::RenderListMarker::setStyle):
32286         * rendering/RenderObject.cpp:
32287         (WebCore::RenderObject::updateBackgroundImages):
32288         (WebCore::RenderObject::arenaDelete):
32289         * rendering/RenderStyle.cpp:
32290         (WebCore::StyleCachedImage::addClient):
32291         (WebCore::StyleCachedImage::removeClient):
32292         * svg/SVGImageLoader.cpp:
32293         (WebCore::SVGImageLoader::updateFromElement):
32294         * xml/XSLImportRule.cpp:
32295         (WebCore::XSLImportRule::~XSLImportRule):
32296         (WebCore::XSLImportRule::loadSheet):
32297
32298 2008-04-11  David Hyatt  <hyatt@apple.com>
32299
32300         This patch adds support for CSS gradients as background images.  RenderStyles now hold a StyleImage
32301         RefPtr, which is a wrapper for two types of images: CachedImages (loaded from URLs) and generated images
32302         (patterns created on the fly such as gradients).
32303
32304         All of the features of <canvas> are supported: gradients can be linear or radial, have multiple stops, and
32305         can specify their points as percentages (for reusable gradients across different box sizes).
32306
32307         Reviewed by olliej
32308
32309         Added fast/gradients/simple-gradients.html
32310
32311         * WebCore.xcodeproj/project.pbxproj:
32312         * css/CSSBorderImageValue.cpp:
32313         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
32314         * css/CSSBorderImageValue.h:
32315         (WebCore::CSSBorderImageValue::imageValue):
32316         (WebCore::CSSBorderImageValue::generatorValue):
32317         * css/CSSComputedStyleDeclaration.cpp:
32318         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
32319         * css/CSSGradientValue.cpp: Added.
32320         (WebCore::CSSGradientValue::cssText):
32321         (WebCore::CSSGradientValue::createGradient):
32322         (WebCore::CSSGradientValue::image):
32323         (WebCore::compareStops):
32324         (WebCore::CSSGradientValue::sortStopsIfNeeded):
32325         (WebCore::CSSGradientValue::resolvePoint):
32326         (WebCore::CSSGradientValue::resolveRadius):
32327         * css/CSSGradientValue.h: Added.
32328         (WebCore::CSSGradientColorStop::CSSGradientColorStop):
32329         (WebCore::CSSGradientValue::CSSGradientValue):
32330         (WebCore::CSSGradientValue::type):
32331         (WebCore::CSSGradientValue::setType):
32332         (WebCore::CSSGradientValue::setFirstX):
32333         (WebCore::CSSGradientValue::setFirstY):
32334         (WebCore::CSSGradientValue::setSecondX):
32335         (WebCore::CSSGradientValue::setSecondY):
32336         (WebCore::CSSGradientValue::setFirstRadius):
32337         (WebCore::CSSGradientValue::setSecondRadius):
32338         (WebCore::CSSGradientValue::addStop):
32339         * css/CSSImageGeneratorValue.cpp: Added.
32340         (WebCore::CSSImageGeneratorValue::~CSSImageGeneratorValue):
32341         (WebCore::CSSImageGeneratorValue::addClient):
32342         (WebCore::CSSImageGeneratorValue::removeClient):
32343         (WebCore::CSSImageGeneratorValue::getImage):
32344         (WebCore::CSSImageGeneratorValue::putImage):
32345         * css/CSSImageGeneratorValue.h: Added.
32346         (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
32347         * css/CSSImageValue.h:
32348         (WebCore::CSSImageValue::isImageValue):
32349         * css/CSSParser.cpp:
32350         (WebCore::CSSParser::parseBackgroundImage):
32351         (WebCore::BorderImageParseContext::commitImage):
32352         (WebCore::CSSParser::parseBorderImage):
32353         (WebCore::parseGradientPoint):
32354         (WebCore::parseGradientColorStop):
32355         (WebCore::CSSParser::parseGradient):
32356         * css/CSSParser.h:
32357         * css/CSSStyleSelector.cpp:
32358         (WebCore::CSSStyleSelector::applyProperty):
32359         (WebCore::CSSStyleSelector::createStyleImage):
32360         (WebCore::CSSStyleSelector::mapBackgroundImage):
32361         * css/CSSStyleSelector.h:
32362         * css/CSSValue.h:
32363         (WebCore::CSSValue::isImageValue):
32364         (WebCore::CSSValue::isImageGeneratorValue):
32365         * html/CanvasRenderingContext2D.cpp:
32366         (WebCore::CanvasRenderingContext2D::isPointInPath):
32367         * platform/graphics/BitmapImage.cpp:
32368         (WebCore::BitmapImage::BitmapImage):
32369         (WebCore::BitmapImage::dataChanged):
32370         (WebCore::BitmapImage::frameCount):
32371         * platform/graphics/BitmapImage.h:
32372         * platform/graphics/GraphicsContext.cpp:
32373         (WebCore::GraphicsContext::clipToImageBuffer):
32374         * platform/graphics/GraphicsContext.h:
32375         * platform/graphics/ImageBuffer.h:
32376         (WebCore::ImageBuffer::cgImage):
32377         (WebCore::ImageBuffer::image):
32378         * platform/graphics/cg/GraphicsContextCG.cpp:
32379         (WebCore::GraphicsContext::clipToImageBuffer):
32380         (WebCore::GraphicsContext::paintBuffer):
32381         (WebCore::GraphicsContext::drawImage):
32382         * platform/graphics/cg/ImageBufferCG.cpp:
32383         (WebCore::ImageBuffer::create):
32384         (WebCore::ImageBuffer::ImageBuffer):
32385         (WebCore::ImageBuffer::~ImageBuffer):
32386         (WebCore::ImageBuffer::image):
32387         (WebCore::ImageBuffer::getImageData):
32388         (WebCore::ImageBuffer::putImageData):
32389         (WebCore::ImageBuffer::toDataURL):
32390         * platform/graphics/cg/ImageCG.cpp:
32391         (WebCore::BitmapImage::BitmapImage):
32392         (WebCore::BitmapImage::draw):
32393         (WebCore::Image::drawPattern):
32394         * platform/graphics/qt/ImageQt.cpp:
32395         (WebCore::BitmapImage::BitmapImage):
32396         * rendering/InlineFlowBox.cpp:
32397         (WebCore::InlineFlowBox::paintBackground):
32398         * rendering/RenderBox.cpp:
32399         (WebCore::RenderBox::calculateBackgroundSize):
32400         (WebCore::RenderBox::imageChanged):
32401         (WebCore::RenderBox::paintBackgroundExtended):
32402         * rendering/RenderObject.cpp:
32403         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
32404         (WebCore::RenderObject::updateBackgroundImages):
32405         (WebCore::RenderObject::arenaDelete):
32406         * rendering/RenderStyle.cpp:
32407         (WebCore::StyleCachedImage::cssValue):
32408         (WebCore::StyleCachedImage::canRender):
32409         (WebCore::StyleCachedImage::imageSize):
32410         (WebCore::StyleCachedImage::setImageContainerSize):
32411         (WebCore::StyleCachedImage::addClient):
32412         (WebCore::StyleCachedImage::removeClient):
32413         (WebCore::StyleCachedImage::image):
32414         (WebCore::StyleGeneratedImage::cssValue):
32415         (WebCore::StyleGeneratedImage::imageSize):
32416         (WebCore::StyleGeneratedImage::setImageContainerSize):
32417         (WebCore::StyleGeneratedImage::addClient):
32418         (WebCore::StyleGeneratedImage::removeClient):
32419         (WebCore::StyleGeneratedImage::image):
32420         * rendering/RenderStyle.h:
32421         (WebCore::StyleImage::StyleImage):
32422         (WebCore::StyleImage::~StyleImage):
32423         (WebCore::StyleImage::operator==):
32424         (WebCore::StyleImage::canRender):
32425         (WebCore::StyleImage::isCachedImage):
32426         (WebCore::StyleImage::isGeneratedImage):
32427         (WebCore::StyleCachedImage::StyleCachedImage):
32428         (WebCore::StyleCachedImage::data):
32429         (WebCore::StyleCachedImage::isCachedImage):
32430         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
32431         (WebCore::StyleGeneratedImage::data):
32432         (WebCore::StyleGeneratedImage::isGeneratedImage):
32433         (WebCore::BackgroundLayer::backgroundImage):
32434         (WebCore::BackgroundLayer::setBackgroundImage):
32435         (WebCore::BackgroundLayer::containsImage):
32436         (WebCore::RenderStyle::backgroundImage):
32437         (WebCore::RenderStyle::initialBackgroundImage):
32438         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
32439         (WebCore::SVGPaintServerGradient::teardown):
32440         * svg/graphics/cg/SVGResourceMaskerCg.mm:
32441         (WebCore::SVGResourceMasker::applyMask):
32442
32443 2008-04-11  Dan Bernstein  <mitz@apple.com>
32444
32445         Reviewed by Oliver Hunt.
32446
32447         - add SVGGlyphMap.h to project files
32448
32449         * WebCore.vcproj/WebCore.vcproj:
32450         * WebCore.xcodeproj/project.pbxproj:
32451
32452 2008-04-11  Anders Carlsson  <andersca@apple.com>
32453
32454         Fix release build.
32455         
32456         * WebCore.base.exp:
32457         
32458         * loader/archive/ArchiveResource.h:
32459         (WebCore::ArchiveResource::response):
32460         This should be const.
32461
32462 2008-04-11  Antti Koivisto  <antti@apple.com>
32463
32464         Try to fix Qt build.
32465
32466         * svg/animation/SMILTime.cpp:
32467
32468 2008-04-11  Anders Carlsson  <andersca@apple.com>
32469
32470         Reviewed by Brady.
32471
32472         Don't create the ArchiveResource response lazily.
32473         
32474         * loader/archive/ArchiveResource.cpp:
32475         (WebCore::ArchiveResource::ArchiveResource):
32476         * loader/archive/ArchiveResource.h:
32477         (WebCore::ArchiveResource::response):
32478
32479 2008-04-11  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
32480
32481         Reviewed by Mark Rowe.
32482
32483         Added missing '\' in the svg include path
32484
32485         * GNUmakefile.am:
32486
32487 2008-04-11  Antti Koivisto  <antti@apple.com>
32488
32489         Another attempted Qt build fix.
32490
32491         * WebCore.pro:
32492
32493 2008-04-11  Antti Koivisto  <antti@apple.com>
32494
32495         Reviewed by Oliver.
32496
32497         Fix build when SVG is enabled but SVG_ANIMATION is not.
32498
32499         * ChangeLog:
32500         * bindings/js/JSSVGElementWrapperFactory.cpp:
32501         * bindings/objc/DOM.mm:
32502         (WebCore::createElementClassMap):
32503         * svg/SVGAElement.cpp:
32504         (WebCore::SVGAElement::defaultEventHandler):
32505         * svg/SVGAnimateColorElement.cpp:
32506         * svg/SVGAnimateColorElement.h:
32507         * svg/SVGAnimateColorElement.idl:
32508         * svg/SVGAnimateMotionElement.h:
32509         * svg/SVGAnimationElement.cpp:
32510         (WebCore::SVGAnimationElement::animationMode):
32511         * svg/SVGAnimationElement.h:
32512         * svg/SVGAnimationElement.idl:
32513         * svg/SVGSetElement.cpp:
32514         * svg/SVGSetElement.h:
32515         * svg/SVGSetElement.idl:
32516         * svg/animation/SMILTimeContainer.cpp:
32517         (WebCore::SMILTimeContainer::begin):
32518         (WebCore::SMILTimeContainer::pause):
32519         (WebCore::SMILTimeContainer::resume):
32520         (WebCore::SMILTimeContainer::elapsed):
32521         (WebCore::SMILTimeContainer::isPaused):
32522         (WebCore::SMILTimeContainer::timerFired):
32523         * svg/animation/SMILTimeContainer.h:
32524         * svg/animation/SVGSMILElement.cpp:
32525         * svg/animation/SVGSMILElement.h:
32526         * svg/svgtags.in:
32527
32528 2008-04-11  Anders Carlsson  <andersca@apple.com>
32529
32530         Reviewed by Brady.
32531
32532         Move archive loading from FrameLoader to DocumentLoader.
32533         
32534         * loader/DocumentLoader.cpp:
32535         (WebCore::DocumentLoader::DocumentLoader):
32536         (WebCore::DocumentLoader::clearArchiveResources):
32537         (WebCore::DocumentLoader::deliverArchivedResourcesAfterDelay):
32538         (WebCore::DocumentLoader::archiveResourceDeliveryTimerFired):
32539         (WebCore::DocumentLoader::isArchiveLoadPending):
32540         (WebCore::DocumentLoader::cancelPendingArchiveLoad):
32541         (WebCore::DocumentLoader::scheduleArchiveLoad):
32542         (WebCore::DocumentLoader::setDefersLoading):
32543         * loader/DocumentLoader.h:
32544         * loader/FrameLoader.cpp:
32545         (WebCore::FrameLoader::FrameLoader):
32546         (WebCore::FrameLoader::setDefersLoading):
32547         (WebCore::FrameLoader::stopAllLoaders):
32548         * loader/FrameLoader.h:
32549         * loader/ResourceLoader.cpp:
32550         (WebCore::ResourceLoader::load):
32551         (WebCore::ResourceLoader::didCancel):
32552
32553 2008-04-11  Timothy Hatcher  <timothy@apple.com>
32554
32555         Fixes the regression where the DOM tree does not update when navigating
32556         to another page with the Inspector open.
32557
32558         https://bugs.webkit.org/show_bug.cgi?id=18418
32559
32560         Reviewed by Adam Roben.
32561
32562         * page/inspector/ElementsPanel.js:
32563         (WebInspector.ElementsPanel.prototype.reset): If the inspected document does not have a
32564         firstChild yet, add an event listener for DOMContentLoaded. The event listener just sets
32565         a proeprty that a polling functions looks for then triggers the reset.
32566         (WebInspector.ElementsPanel.prototype._focusedNodeChanged): Always call updateStyles with
32567         forceUpdate as true. This makes sure the Styles pane clears when there isn't a focused node.
32568
32569 2008-04-11  Dan Bernstein  <mitz@apple.com>
32570
32571         Reviewed by Timothy Hatcher.
32572
32573         - fix http://bugs.webkit.org/show_bug.cgi?id=18412
32574           Inspector truncates text when editing a CSS property
32575
32576         * page/inspector/inspector.css:
32577
32578 2008-04-11  Antti Koivisto  <antti@apple.com>
32579
32580         Try to fix Qt build by including some headers.
32581
32582         * ChangeLog:
32583         * platform/graphics/UnitBezier.h:
32584         * svg/SVGAnimationElement.cpp:
32585         * svg/animation/SMILTime.h:
32586         * svg/animation/SVGSMILElement.cpp:
32587
32588 2008-04-11  Antti Koivisto  <antti@apple.com>
32589
32590         Try to fix Windows build by switching to std::sort().
32591
32592         * svg/animation/SVGSMILElement.cpp:
32593         (WebCore::sortTimeList):
32594
32595 2008-04-11  Rob Buis  <buis@kde.org>
32596
32597         Reviewed by Eric.
32598
32599         http://bugs.webkit.org/show_bug.cgi?id=18340
32600         Elements with display="none" in a <clipPath> still contribute to clipping path
32601
32602         Skip elements in clip-path container that have display=none specified.
32603
32604         * svg/SVGClipPathElement.cpp:
32605         (WebCore::SVGClipPathElement::canvasResource):
32606
32607 2008-04-10  Antti Koivisto  <antti@apple.com>
32608
32609         Reviewed by Eric.
32610
32611         Redo the SVG animation support.
32612         
32613         It does
32614         - Full SMIL interval timing model including syncbase and event base timing (the hard part).
32615         - CSS and XML attribute animation.
32616         - Linear, discrete and spline calcModes.
32617         - Values animation with keyTimes and keySplines.
32618         - Link activated animations.
32619         - Pretty good support for <animate> and <set> animations
32620         - Basic support for <animateColor>, <animateMotion> and <animateTransform>.
32621
32622         This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
32623         with some subtest failures.
32624
32625         What is still missing
32626         - Additive animation with multiple animations operating on the same property. This is a
32627           major architectural feature in animation code. It shouldn't be too hard to add.
32628         - Only <animate> implements accumulate.
32629         - <animateMotion> does not do paths, keypoints, rotate.
32630         - <animateTransform> does not work correctly in all cases
32631         - calcMode paced is missing.
32632         - repeat, beginEvent, endEvent are missing.
32633         - accesskey() is missing.
32634         - JS does not see correct values for baseVal/animVal, changing values that are being
32635           animted for a script produces wrong results. This problem needs to be solved outside
32636           the animation code.
32637         - Some other stuff I forgot or do not know about.
32638
32639         * GNUmakefile.am:
32640         * WebCore.pro:
32641         * WebCore.vcproj/WebCore.vcproj:
32642         * WebCore.xcodeproj/project.pbxproj:
32643         * dom/Document.cpp:
32644         * history/CachedPage.cpp:
32645         (WebCore::CachedPage::CachedPage):
32646         
32647         Use cache notification mechanism to start/stop animations.
32648
32649         * svg/SVGAElement.cpp:
32650         (WebCore::SVGAElement::defaultEventHandler):
32651         
32652         Start target animation on link activation.
32653         
32654         * svg/SVGAnimateColorElement.cpp:
32655         (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
32656         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
32657         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
32658         (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
32659         * svg/SVGAnimateColorElement.h:
32660         * svg/SVGAnimateElement.cpp:
32661         (WebCore::SVGAnimateElement::SVGAnimateElement):
32662         (WebCore::parseNumberValueAndUnit):
32663         (WebCore::SVGAnimateElement::applyAnimatedValueToElement):
32664         (WebCore::SVGAnimateElement::updateAnimatedValue):
32665         (WebCore::isColorAttribute):
32666         (WebCore::SVGAnimateElement::calculateFromAndToValues):
32667         (WebCore::SVGAnimateElement::calculateFromAndByValues):
32668         * svg/SVGAnimateElement.h:
32669         (WebCore::SVGAnimateElement::):
32670         * svg/SVGAnimateMotionElement.cpp:
32671         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
32672         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
32673         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
32674         (WebCore::parsePoint):
32675         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
32676         (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
32677         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
32678         (WebCore::SVGAnimateMotionElement::startedActiveInterval):
32679         * svg/SVGAnimateMotionElement.h:
32680         * svg/SVGAnimateTransformElement.cpp:
32681         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
32682         (WebCore::SVGAnimateTransformElement::hasValidTarget):
32683         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
32684         (WebCore::transformListFor):
32685         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
32686         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
32687         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
32688         (WebCore::SVGAnimateTransformElement::startedActiveInterval):
32689         (WebCore::SVGAnimateTransformElement::parseTransformValue):
32690         * svg/SVGAnimateTransformElement.h:
32691         
32692         Concrete anmation element classes.
32693         
32694         * svg/SVGAnimationElement.cpp:
32695         (WebCore::SVGAnimationElement::SVGAnimationElement):
32696         (WebCore::SVGAnimationElement::~SVGAnimationElement):
32697         (WebCore::parseKeyTimes):
32698         (WebCore::parseKeySplines):
32699         (WebCore::SVGAnimationElement::parseMappedAttribute):
32700         (WebCore::SVGAnimationElement::attributeChanged):
32701         (WebCore::SVGAnimationElement::getStartTime):
32702         (WebCore::SVGAnimationElement::getCurrentTime):
32703         (WebCore::SVGAnimationElement::getSimpleDuration):
32704         (WebCore::SVGAnimationElement::beginElement):
32705         (WebCore::SVGAnimationElement::beginElementAt):
32706         (WebCore::SVGAnimationElement::endElement):
32707         (WebCore::SVGAnimationElement::endElementAt):
32708         (WebCore::SVGAnimationElement::animationMode):
32709         (WebCore::SVGAnimationElement::calcMode):
32710         (WebCore::SVGAnimationElement::attributeType):
32711         (WebCore::SVGAnimationElement::toValue):
32712         (WebCore::SVGAnimationElement::byValue):
32713         (WebCore::SVGAnimationElement::fromValue):
32714         (WebCore::SVGAnimationElement::attributeName):
32715         (WebCore::SVGAnimationElement::isAdditive):
32716         (WebCore::SVGAnimationElement::isAccumulated):
32717         (WebCore::SVGAnimationElement::hasValidTarget):
32718         (WebCore::SVGAnimationElement::targetAttributeIsCSS):
32719         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
32720         (WebCore::SVGAnimationElement::targetAttributeBaseValue):
32721         (WebCore::solveEpsilon):
32722         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
32723         (WebCore::SVGAnimationElement::startedActiveInterval):
32724         (WebCore::SVGAnimationElement::applyAnimation):
32725         (WebCore::SVGAnimationElement::unapplyAnimation):
32726         (WebCore::SVGAnimationElement::endedActiveInterval):
32727         * svg/SVGAnimationElement.h:
32728         (WebCore::SVGAnimationElement::):
32729         
32730         This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
32731         was refactored to SMILTimingElement class that this class now inherits.
32732         
32733         * svg/SVGDocumentExtensions.cpp:
32734         (WebCore::SVGDocumentExtensions::startAnimations):
32735         * svg/SVGElement.cpp:
32736         (WebCore::SVGElement::ownerSVGElement):
32737         * svg/SVGSVGElement.cpp:
32738         
32739         We need to reach the <svg> element from <use> too so go out from the shadow tree.
32740         
32741         (WebCore::SVGSVGElement::SVGSVGElement):
32742         (WebCore::SVGSVGElement::~SVGSVGElement):
32743         (WebCore::SVGSVGElement::pauseAnimations):
32744         (WebCore::SVGSVGElement::unpauseAnimations):
32745         (WebCore::SVGSVGElement::animationsPaused):
32746         (WebCore::SVGSVGElement::getCurrentTime):
32747         (WebCore::SVGSVGElement::willSaveToCache):
32748         (WebCore::SVGSVGElement::willRestoreFromCache):
32749         * svg/SVGSVGElement.h:
32750         (WebCore::SVGSVGElement::timeContainer):
32751         * svg/SVGSetElement.cpp:
32752         (WebCore::SVGSetElement::applyAnimatedValueToElement):
32753         (WebCore::SVGSetElement::calculateFromAndToValues):
32754         (WebCore::SVGSetElement::calculateFromAndByValues):
32755         (WebCore::SVGSetElement::updateAnimatedValue):
32756         * svg/SVGSetElement.h:
32757         
32758         Concrete anmation element classes.
32759         
32760         * svg/SVGTimer.cpp: Removed.
32761         * svg/SVGTimer.h: Removed.
32762         * svg/SVGUseElement.cpp:
32763         (WebCore::SVGUseElement::removedFromDocument):
32764         * svg/TimeScheduler.cpp: Removed.
32765         * svg/TimeScheduler.h: Removed.
32766         
32767         Replaced these with SMILTimeContainer class.
32768         
32769         * svg/animation: Added.
32770         * svg/animation/SMILTime.cpp: Added.
32771         (WebCore::operator+):
32772         (WebCore::operator-):
32773         (WebCore::operator*):
32774         * svg/animation/SMILTime.h: Added.
32775         (WebCore::SMILTime::SMILTime):
32776         (WebCore::SMILTime::unresolved):
32777         (WebCore::SMILTime::indefinite):
32778         (WebCore::SMILTime::operator=):
32779         (WebCore::SMILTime::value):
32780         (WebCore::SMILTime::isFinite):
32781         (WebCore::SMILTime::isIndefinite):
32782         (WebCore::SMILTime::isUnresolved):
32783         (WebCore::operator==):
32784         (WebCore::operator!=):
32785         (WebCore::operator>):
32786         (WebCore::operator<):
32787         (WebCore::operator>=):
32788         (WebCore::operator<=):
32789         (WebCore::max):
32790         (WebCore::min):
32791         
32792         A floating point number with special values "indefinite" and "unresolved". Defines math for those.
32793         
32794         * svg/animation/SMILTimeContainer.cpp: Added.
32795         (WebCore::SMILTimeContainer::SMILTimeContainer):
32796         (WebCore::SMILTimeContainer::schedule):
32797         (WebCore::SMILTimeContainer::unschedule):
32798         (WebCore::SMILTimeContainer::elapsed):
32799         (WebCore::SMILTimeContainer::isActive):
32800         (WebCore::SMILTimeContainer::isPaused):
32801         (WebCore::SMILTimeContainer::begin):
32802         (WebCore::SMILTimeContainer::pause):
32803         (WebCore::SMILTimeContainer::resume):
32804         (WebCore::SMILTimeContainer::startTimer):
32805         (WebCore::SMILTimeContainer::timerFired):
32806         (WebCore::SMILTimeContainer::updateAnimations):
32807         * svg/animation/SMILTimeContainer.h: Added.
32808         
32809         Manages the clock and time line for active animations in a document.
32810         
32811         * svg/animation/SVGSMILElement.cpp: Added.
32812         (WebCore::ConditionEventListener::ConditionEventListener):
32813         (WebCore::ConditionEventListener::handleEvent):
32814         (WebCore::SVGSMILElement::Condition::Condition):
32815         (WebCore::SVGSMILElement::SVGSMILElement):
32816         (WebCore::SVGSMILElement::~SVGSMILElement):
32817         (WebCore::SVGSMILElement::insertedIntoDocument):
32818         (WebCore::SVGSMILElement::removedFromDocument):
32819         (WebCore::SVGSMILElement::finishParsingChildren):
32820         (WebCore::SVGSMILElement::parseOffsetValue):
32821         (WebCore::SVGSMILElement::parseClockValue):
32822         (WebCore::smilTimeSortFunction):
32823         (WebCore::sortTimeList):
32824         (WebCore::SVGSMILElement::parseCondition):
32825         (WebCore::SVGSMILElement::isTimingElement):
32826         (WebCore::SVGSMILElement::parseBeginOrEnd):
32827         (WebCore::SVGSMILElement::parseMappedAttribute):
32828         (WebCore::SVGSMILElement::attributeChanged):
32829         (WebCore::SVGSMILElement::connectConditions):
32830         (WebCore::SVGSMILElement::disconnectConditions):
32831         (WebCore::SVGSMILElement::reschedule):
32832         (WebCore::SVGSMILElement::targetElement):
32833         (WebCore::SVGSMILElement::elapsed):
32834         (WebCore::SVGSMILElement::restart):
32835         (WebCore::SVGSMILElement::fill):
32836         (WebCore::SVGSMILElement::xlinkHref):
32837         (WebCore::SVGSMILElement::dur):
32838         (WebCore::SVGSMILElement::repeatDur):
32839         (WebCore::SVGSMILElement::repeatCount):
32840         (WebCore::SVGSMILElement::maxValue):
32841         (WebCore::SVGSMILElement::minValue):
32842         (WebCore::SVGSMILElement::simpleDuration):
32843         (WebCore::SVGSMILElement::addBeginTime):
32844         (WebCore::SVGSMILElement::addEndTime):
32845         (WebCore::SVGSMILElement::findInstanceTime):
32846         (WebCore::SVGSMILElement::repeatingDuration):
32847         (WebCore::SVGSMILElement::resolveActiveEnd):
32848         (WebCore::SVGSMILElement::resolveInterval):
32849         (WebCore::SVGSMILElement::resolveFirstInterval):
32850         (WebCore::SVGSMILElement::resolveNextInterval):
32851         (WebCore::SVGSMILElement::nextProgressTime):
32852         (WebCore::SVGSMILElement::beginListChanged):
32853         (WebCore::SVGSMILElement::endListChanged):
32854         (WebCore::SVGSMILElement::checkRestart):
32855         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
32856         (WebCore::SVGSMILElement::calculateNextProgressTime):
32857         (WebCore::SVGSMILElement::determineActiveState):
32858         (WebCore::SVGSMILElement::progress):
32859         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
32860         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
32861         (WebCore::SVGSMILElement::addTimeDependent):
32862         (WebCore::SVGSMILElement::removeTimeDependent):
32863         (WebCore::SVGSMILElement::handleConditionEvent):
32864         (WebCore::SVGSMILElement::beginByLinkActivation):
32865         * svg/animation/SVGSMILElement.h: Added.
32866         (WebCore::SVGSMILElement::timeContainer):
32867         (WebCore::SVGSMILElement::):
32868         (WebCore::SVGSMILElement::intervalBegin):
32869         (WebCore::SVGSMILElement::intervalEnd):
32870         (WebCore::SVGSMILElement::Condition::):
32871         
32872             This abstract class implements the SMIL timing model. As an output it produces calls
32873             to these virtual functions:
32874         
32875             virtual void startedActiveInterval() = 0;
32876             virtual void applyAnimation(float percent, unsigned repeat) = 0;
32877             virtual void unapplyAnimation() = 0;
32878             virtual void endedActiveInterval() = 0;
32879
32880 2008-04-10  Antti Koivisto  <antti@apple.com>
32881
32882         Reviewed by Eric.
32883
32884         Move CurveData out from AnimationController.cpp and rename
32885         it to UnitBezier. This makes it possible to reuse this nice class from the 
32886         SVG animation code.
32887
32888         * WebCore.vcproj/WebCore.vcproj:
32889         * WebCore.xcodeproj/project.pbxproj:
32890         * page/AnimationController.cpp:
32891         (WebCore::solveCubicBezierFunction):
32892         * platform/graphics/UnitBezier.h: Added.
32893         (WebCore::UnitBezier::UnitBezier):
32894         (WebCore::UnitBezier::sampleCurveX):
32895         (WebCore::UnitBezier::sampleCurveY):
32896         (WebCore::UnitBezier::sampleCurveDerivativeX):
32897         (WebCore::UnitBezier::solveCurveX):
32898         (WebCore::UnitBezier::solve):
32899
32900 2008-04-10  Brady Eidson  <beidson@apple.com>
32901
32902         Reviewed by Sam Weinig
32903
32904         The name "OriginStorage" never felt right to a few of us.  The HTML5 spec refers to our 
32905         concept of "OriginStorage" as a "storage area", which makes more sense here.
32906
32907         This patch is basically:
32908         s/OriginStorage/StorageArea/
32909
32910         * GNUmakefile.am:
32911         * WebCore.pro:
32912         * WebCore.vcproj/WebCore.vcproj:
32913         * WebCore.xcodeproj/project.pbxproj:
32914         * WebCoreSources.bkl:
32915
32916         * loader/FrameLoader.cpp:
32917
32918         * page/DOMWindow.cpp:
32919         (WebCore::DOMWindow::sessionStorage):
32920         * page/Page.cpp:
32921
32922         * storage/OriginStorage.cpp: Removed.
32923         * storage/OriginStorage.h: Removed.
32924
32925         * storage/SessionStorage.cpp:
32926         (WebCore::SessionStorage::copy):
32927         (WebCore::SessionStorage::storageArea):
32928         * storage/SessionStorage.h:
32929
32930         * storage/Storage.cpp:
32931         (WebCore::Storage::create):
32932         (WebCore::Storage::Storage):
32933         (WebCore::Storage::length):
32934         (WebCore::Storage::key):
32935         (WebCore::Storage::getItem):
32936         (WebCore::Storage::setItem):
32937         (WebCore::Storage::removeItem):
32938         (WebCore::Storage::contains):
32939         * storage/Storage.h:
32940
32941         * storage/StorageArea.cpp: Copied from storage/OriginStorage.cpp.
32942         (WebCore::StorageArea::create):
32943         (WebCore::StorageArea::StorageArea):
32944         (WebCore::StorageArea::~StorageArea):
32945         (WebCore::StorageArea::copy):
32946         (WebCore::StorageArea::length):
32947         (WebCore::StorageArea::key):
32948         (WebCore::StorageArea::getItem):
32949         (WebCore::StorageArea::setItem):
32950         (WebCore::StorageArea::removeItem):
32951         (WebCore::StorageArea::contains):
32952         (WebCore::StorageArea::dispatchStorageEvent):
32953         * storage/StorageArea.h: Copied from storage/OriginStorage.h.
32954
32955 2008-04-10  Xan Lopez  <xan@gnome.org>
32956
32957         Reviewed by Alp Toker.
32958
32959         http://bugs.webkit.org/show_bug.cgi?id=18342
32960         Bug #18342 - Add logging to HTTP soup backend
32961         
32962         Add soup logging facilities to HTTP soup backend.
32963         Enable defining WEBKIT_SOUP_LOGGING, with values from
32964         0 to 3 for more verbosity.
32965         
32966         * platform/network/soup/ResourceHandleSoup.cpp:
32967         (WebCore::ResourceHandle::start):
32968
32969 2008-04-10  Timothy Hatcher  <timothy@apple.com>
32970
32971         Fixes floating point precision in the Resources graph labels by using String.sprintf to
32972         format the values. Also makes the image view use Number.bytesToString when showing the file
32973         size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
32974         so the Inspector can pass WebInspector.UIString, so the format strings can be localized.
32975
32976         https://bugs.webkit.org/show_bug.cgi?id=18381
32977         https://bugs.webkit.org/show_bug.cgi?id=14333
32978
32979         Reviewed by Adam Roben.
32980
32981         * English.lproj/InspectorLocalizedStrings.js: Added the new strings.
32982         * page/inspector/ImageView.js:
32983         (WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.
32984         * page/inspector/ResourcesPanel.js:
32985         (WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
32986         to Number.secondsToString.
32987         (WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
32988         to Number.bytesToString.
32989         * page/inspector/utilities.js:
32990         (Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
32991         to control the number precision.
32992         (Number.bytesToString): Ditto.
32993
32994 2008-04-010  Alice Liu  <alice.liu@apple.com>
32995
32996         Reviewed by Dan Bernstein.
32997
32998         Fixed <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6
32999
33000         Test: fast/events/mouseout-dead-subframe.html
33001
33002         * page/EventHandler.cpp:
33003         dispatching a mouse event can change the document structure, necessitating
33004         a check for whether we still want to pass the event to the pre-determined subframe 
33005         (WebCore::EventHandler::handleMouseMoveEvent):
33006
33007 2008-04-10  Antti Koivisto  <antti@apple.com>
33008
33009         Reviewed by Eric.
33010
33011         Fix scale transform. This will be tested by the animation test suite when
33012         SVG animation support lands.
33013
33014         * svg/SVGTransformDistance.cpp:
33015         (WebCore::SVGTransformDistance::SVGTransformDistance):
33016
33017 2008-04-10  David Hyatt  <hyatt@apple.com>
33018
33019         Add a gradient fillRect method to GraphicsContext.  This is implemented only in the CG port.  I stubbed
33020         out a method in GraphicsContext.cpp with notImplemented().  Other platforms will need to add their own
33021         gradient fill methods.
33022
33023         Reviewed by aroben
33024
33025         * platform/graphics/GraphicsContext.cpp:
33026         (WebCore::GraphicsContext::fillRect):
33027         * platform/graphics/GraphicsContext.h:
33028         * platform/graphics/cg/GraphicsContextCG.cpp:
33029         (WebCore::GraphicsContext::fillRect):
33030
33031 2008-04-10  David Hyatt  <hyatt@apple.com>
33032
33033         Gradient improvements.  Support for adding color stops by Color and not just by String.  Add the ability to mark
33034         stops as already being sorted.
33035
33036         Reviewed by aroben
33037
33038         * platform/graphics/Gradient.cpp:
33039         (WebCore::Gradient::addColorStop):
33040         * platform/graphics/Gradient.h:
33041         (WebCore::Gradient::setStopsSorted):
33042
33043 2008-04-10  Timothy Hatcher  <timothy@apple.com>
33044
33045         Fixes the build where some wtf headers would not be copied due
33046         to a bug in some older versions of Xcode.
33047
33048         Rubber-stamped by Adam Roben.
33049
33050         * WebCore.xcodeproj/project.pbxproj: Adds a new script phase to handle
33051         the copying of the icu and ForwardingHeaders folder to WebCore's PrivateHeaders.
33052         Removes the old copy files phase and the icu and ForwardingHeaders folder references.
33053
33054 2008-04-09  Brady Eidson  <beidson@apple.com>
33055
33056         Reviewed by Mitz Pettel
33057
33058         Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.
33059
33060         Tests: storage/domstorage/sessionstorage/onstorage-attribute-markup.html
33061                storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
33062
33063         * html/HTMLAttributeNames.in: Added "onstorage"
33064         * html/HTMLBodyElement.cpp:
33065         (WebCore::HTMLBodyElement::parseMappedAttribute): Handle this attribute on the body element *only*
33066           because that's where the HTML5 spec says StorageEvents go.  This might change in the future
33067
33068 2008-04-09  Antti Koivisto  <antti@apple.com>
33069
33070         Reviewed by Mitz.
33071
33072         Remove a less-than-critical bit from Node and replace it with a hash. Those bits are valuable!
33073
33074         Also moved setting of the guard to dispatchSimulatedClick for better consistency. 
33075         No one else calls dispatchSimulatedMouseEvent() currently and this is really a click() specific behavior.
33076
33077         * dom/EventTargetNode.cpp:
33078         (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
33079         (WebCore::EventTargetNode::dispatchSimulatedClick):
33080         * dom/Node.cpp:
33081         (WebCore::Node::Node):
33082         * dom/Node.h:
33083
33084 2008-04-09  Sam Weinig  <sam@webkit.org>
33085
33086         Reviewed by Geoffrey Garen.
33087
33088         Fix for https://bugs.webkit.org/show_bug.cgi?id=18389
33089         Crash in JSDOMWindowWrapper::mark loading digg.com
33090
33091         - Add a null check to JSDOMWindowWrapper::mark for the case when the collector
33092           runs during its allocation.
33093         - Cleans up the creation of the window to be a little more straight forward.
33094
33095         * bindings/js/JSDOMWindowBase.cpp:
33096         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
33097         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
33098         (WebCore::JSDOMWindowBase::clear):
33099         (WebCore::JSDOMWindowBase::wrapper):
33100         * bindings/js/JSDOMWindowBase.h:
33101         * bindings/js/JSDOMWindowWrapper.cpp:
33102         (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
33103         (WebCore::JSDOMWindowWrapper::mark):
33104         * bindings/js/JSDOMWindowWrapper.h:
33105         * bindings/js/kjs_proxy.cpp:
33106         (WebCore::KJSProxy::initScript):
33107         * bindings/scripts/CodeGeneratorJS.pm:
33108
33109 2008-04-09  Brady Eidson  <beidson@apple.com>
33110
33111         Rubberstamped by Mitzpettel
33112
33113         Added HTMLAttributeNames.in and HTMLTagNames.in to the xcodeproj for easy editing, 
33114         and sorted the html group
33115
33116         * WebCore.xcodeproj/project.pbxproj:
33117
33118 2008-04-09  Brent Fulgham  <bfulgham@gmail.com>
33119
33120         Reviewed by Mitz.
33121
33122         Correct build regression in Windows (Cairo) build due to changes
33123         in FontDescription.h signature.  (see http://bugs.webkit.org/show_bug.cgi?id=18394)
33124
33125         * rendering/RenderThemeWin.cpp:  Change for new font methods.
33126         (WebCore::RenderThemeWin::systemFont):
33127
33128 2008-04-09  Brady Eidson  <beidson@apple.com>
33129
33130         Reviewed by Sam Weinig
33131
33132         When enumerating a Storage object, the Storage built-ins should not be included, but the 
33133         prototype chain SHOULD be included.
33134
33135         * bindings/js/JSStorageCustom.cpp:
33136         (WebCore::JSStorage::customGetPropertyNames): Return false so the prototype chain is walked
33137
33138         * storage/Storage.idl: Mark all built-ins as "DontEnum"
33139
33140 2008-04-09  Brady Eidson  <beidson@apple.com>
33141
33142         Reviewed by Adam Roben
33143
33144         Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area, 
33145         and should not return the built-in properties.
33146
33147         Test: storage/domstorage/sessionstorage/enumerate-storage.html
33148
33149         * bindings/js/JSLocationCustom.cpp:
33150         (WebCore::JSLocation::customGetPropertyNames): Removed the name from an unused parameter
33151
33152         * bindings/js/JSStorageCustom.cpp:
33153         (WebCore::JSStorage::customGetPropertyNames): Copy all of the keys into the property names array
33154
33155         * storage/Storage.idl: Add CustomGetPropertyNames
33156
33157 2008-04-09  Timothy Hatcher  <timothy@apple.com>
33158
33159         Fixes the regression where resource time/size pills do not
33160         update during a load in the Inspector.
33161
33162         http://bugs.webkit.org/show_bug.cgi?id=18374
33163
33164         Reviewed by John Sullivan.
33165
33166         * page/inspector/ResourcesPanel.js:
33167         (ResourcesPanel.prototype.show): Remove an unneeded call to _updateGraphBars,
33168         since _updateSidebarWidth already calls _updateGraphBars.
33169         (ResourcesPanel.prototype.addResource): Call updateGraphSideWidth.
33170         (ResourcesPanel.prototype._updateGraphBars): Ditto.
33171         (ResourceSidebarTreeElement.prototype.updateGraphSideWidth): Update the
33172         style for graphSideElement with the passed in width.
33173
33174 2008-04-09  Antti Koivisto  <antti@apple.com>
33175
33176         Reviewed by Mitz.
33177
33178         Avoid unnecessary calls to virtual updateStyleAttributeIfNeeded() method.
33179         - do the the checking in call sites instead of inside the function
33180         - rename to updateStyleAttribute()
33181         - use namedAttrMap directly (for getting id attribute) in insertedIntoDocument/removedFromDocument 
33182           to avoid calling attributes() which may trigger style attribute update.
33183         
33184         * dom/Element.cpp:
33185         (WebCore::Element::attributes):
33186         (WebCore::Element::getAttribute):
33187         (WebCore::Element::hasAttributes):
33188         (WebCore::Element::insertedIntoDocument):
33189         (WebCore::Element::removedFromDocument):
33190         * dom/Element.h:
33191         (WebCore::Element::updateStyleAttribute):
33192         * dom/NamedAttrMap.cpp:
33193         (WebCore::NamedAttrMap::addAttribute):
33194         * dom/StyledElement.cpp:
33195         (WebCore::StyledElement::updateStyleAttribute):
33196         * dom/StyledElement.h:
33197
33198 2008-04-09  Timothy Hatcher  <timothy@apple.com>
33199
33200         A more complete fix for: can't drag the Web Inspector when grabbing
33201         in the toolbar area. Makes dragging under the search field in the
33202         empty space work again.
33203
33204         http://bugs.webkit.org/show_bug.cgi?id=18373
33205
33206         Reviewed by Adam Roben.
33207
33208         * page/inspector/inspector.js:
33209         (WebInspector.toolbarDragStart): Prevent dragging if the event target
33210         is a toggleable toolbar item. Allow dragging when the target is a
33211         normal toolbar item.
33212
33213 2008-04-08  Sam Weinig  <sam@webkit.org>
33214
33215         Reviewed by Timothy Hatcher.
33216
33217         Fix for http://bugs.webkit.org/show_bug.cgi?id=18373
33218         REGRESSION: Can't drag the Web Inspector when grabbing in the toolbar area
33219
33220         * page/inspector/inspector.css:
33221
33222 2008-04-08  Christian Persch  <chpe@gnome.org>
33223
33224         Reviewed by Alp Toker.
33225
33226         http://bugs.webkit.org/show_bug.cgi?id=18360
33227         "missing sentinel" warnings in PluginDatabaseGtk.cpp
33228
33229         Use NULL, not 0 as sentinel in varargs calls.
33230
33231         * plugins/gtk/PluginDatabaseGtk.cpp:
33232         (WebCore::PluginDatabase::getPluginPathsInDirectories):
33233         (WebCore::PluginDatabase::defaultPluginDirectories):
33234
33235 2008-04-04  Sam Weinig  <sam@webkit.org>
33236
33237         Reviewed by Geoffrey Garen.
33238
33239         First step in implementing the "split window"
33240
33241         - This patch takes the first step in changing the window navigation model
33242           from clearing the window properties on navigation, to replacing
33243           an inner window.  This is necessary to safely perform security checks
33244           using the lexical global object.
33245
33246           This first step adds a new class called JSDOMWindowWrapper, which wraps
33247           the real window object.  All JS calls that would go to the window object
33248           now go to it, which it forwards to the current inner window.  To accomplish
33249           this, the wrapper window is used as the ThisValue wherever the window was used
33250           before.
33251
33252         * WebCore.base.exp:
33253         * WebCore.xcodeproj/project.pbxproj:
33254         * bindings/js/JSDOMWindowBase.cpp:
33255         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
33256         (WebCore::JSDOMWindowBase::clear): Reset the wrapper windows prototype too.
33257         (WebCore::JSDOMWindowBase::toThisObject):
33258         (WebCore::JSDOMWindowBase::wrapper):
33259         (WebCore::windowProtoFuncAToB):
33260         (WebCore::windowProtoFuncBToA):
33261         (WebCore::windowProtoFuncOpen):
33262         (WebCore::windowProtoFuncSetTimeout):
33263         (WebCore::windowProtoFuncClearTimeout):
33264         (WebCore::windowProtoFuncSetInterval):
33265         (WebCore::windowProtoFuncAddEventListener):
33266         (WebCore::windowProtoFuncRemoveEventListener):
33267         (WebCore::windowProtoFuncShowModalDialog):
33268         (WebCore::windowProtoFuncNotImplemented):
33269         (WebCore::toJS):
33270         * bindings/js/JSDOMWindowBase.h:
33271         Fix to expect the wrapper as the thisObj.
33272         * bindings/js/JSDOMWindowCustom.cpp:
33273         (WebCore::JSDOMWindow::postMessage):
33274         (WebCore::toDOMWindow):
33275         * bindings/js/JSDOMWindowWrapper.cpp: Added.
33276         (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
33277         (WebCore::JSDOMWindowWrapper::~JSDOMWindowWrapper):
33278         (WebCore::JSDOMWindowWrapper::mark):
33279         (WebCore::JSDOMWindowWrapper::className):
33280         (WebCore::JSDOMWindowWrapper::getOwnPropertySlot):
33281         (WebCore::JSDOMWindowWrapper::put):
33282         (WebCore::JSDOMWindowWrapper::deleteProperty):
33283         (WebCore::JSDOMWindowWrapper::getPropertyNames):
33284         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
33285         (WebCore::JSDOMWindowWrapper::defineGetter):
33286         (WebCore::JSDOMWindowWrapper::defineSetter):
33287         (WebCore::JSDOMWindowWrapper::lookupGetter):
33288         (WebCore::JSDOMWindowWrapper::lookupSetter):
33289         (WebCore::JSDOMWindowWrapper::toGlobalObject):
33290         (WebCore::JSDOMWindowWrapper::impl):
33291         (WebCore::JSDOMWindowWrapper::disconnectFrame):
33292         (WebCore::JSDOMWindowWrapper::clear):
33293         (WebCore::toJS):
33294         * bindings/js/JSDOMWindowWrapper.h: Added.
33295         (WebCore::JSDOMWindowWrapper::innerWindow):
33296         (WebCore::JSDOMWindowWrapper::setInnerWindow):
33297         (WebCore::JSDOMWindowWrapper::classInfo):
33298         Forward methods to the innerWindow.
33299         * bindings/js/JSHTMLDocumentCustom.cpp:
33300         (WebCore::JSHTMLDocument::open):
33301         * bindings/js/ScheduledAction.cpp:
33302         (WebCore::ScheduledAction::execute):
33303         * bindings/js/kjs_events.cpp:
33304         (WebCore::JSAbstractEventListener::handleEvent):
33305         * bindings/js/kjs_proxy.cpp:
33306         (WebCore::KJSProxy::~KJSProxy):
33307         (WebCore::KJSProxy::evaluate):
33308         (WebCore::KJSProxy::clear):
33309         (WebCore::KJSProxy::initScript):
33310         (WebCore::KJSProxy::clearDocumentWrapper):
33311         (WebCore::KJSProxy::processingUserGesture):
33312         (WebCore::KJSProxy::attachDebugger):
33313         * bindings/js/kjs_proxy.h:
33314         (WebCore::KJSProxy::haveWindowWrapper):
33315         (WebCore::KJSProxy::windowWrapper):
33316         (WebCore::KJSProxy::globalObject):
33317         (WebCore::KJSProxy::initScriptIfNeeded):
33318         Hold onto the wrapper window instead of global object.  As a convenience,
33319         keep the globalObject() as a forward to the inner window.
33320         * bindings/objc/DOMUtility.mm:
33321         (KJS::createDOMWrapper):
33322         * bindings/scripts/CodeGeneratorJS.pm:
33323         * dom/Document.cpp:
33324         (WebCore::Document::domWindow):
33325         * dom/Document.h:
33326         (WebCore::Document::defaultView):
33327         * loader/FrameLoader.cpp:
33328         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
33329         * page/DOMWindow.idl:
33330         * page/Frame.cpp:
33331         (WebCore::Frame::~Frame):
33332         (WebCore::Frame::pageDestroyed):
33333
33334 2008-04-08  Brady Eidson  <beidson@apple.com>
33335
33336         Encourage Windows to rebuild - AGAIN...
33337
33338         * WebCore.vcproj/build-generated-files.sh:
33339         * bindings/scripts/CodeGenerator.pm:
33340         * bindings/scripts/CodeGeneratorJS.pm:
33341         * config.h:
33342
33343 2008-04-08  Brady Eidson  <beidson@apple.com>
33344
33345         OMG release builds didn't have this flag Windows build bots I'm so 
33346         sorry will you ever forgive me?
33347
33348         (Found by Stephanie, rubberstamped and landed by Brady)
33349
33350         * WebCore.vcproj/WebCore.vcproj: Add ENABLE_DOM_STORAGE for release builds
33351
33352 2008-04-08  Timothy Hatcher  <timothy@apple.com>
33353
33354         Fixes a crash in KJS::JSValue::toObject when closing
33355         Safari with Inspector open.
33356
33357         http://bugs.webkit.org/show_bug.cgi?id=18371
33358
33359         Reviewed by Adam Roben.
33360
33361         * page/InspectorController.cpp:
33362         (WebCore::inspectedWindow): NULL check the result of toJSDOMWindow.
33363         Return JSNull if JSDOMWindow is 0.
33364         * page/inspector/ElementsPanel.js:
33365         (ElementsPanel.prototype.reset): NULL check the result of
33366         InspectorController.inspectedWindow.
33367
33368 2008-04-08  Adam Roben  <aroben@apple.com>
33369
33370         Wx build fix
33371
33372         * webcore-wx.bkl: Removed entry for non-existent file.
33373
33374 2008-04-08  Adam Roben  <aroben@apple.com>
33375
33376         qmake build fixes
33377
33378         * WebCore.pro: Removed entries for non-existent files.
33379
33380 2008-04-08  Brady Eidson  <beidson@apple.com>
33381
33382         Rubberstamped by Adam Roben
33383         
33384         Touch some files to *strongly* encourage Windows to rebuilt with DOM_STORAGE enabled
33385
33386         * WebCore.vcproj/build-generated-files.sh:
33387         * bindings/scripts/CodeGenerator.pm:
33388         * config.h:
33389
33390 2008-04-08  Timothy Hatcher  <timothy@apple.com>
33391
33392         Implements the majority of the Inspector UI refresh as shown at:
33393         http://trac.webkit.org/projects/webkit/wiki/ProposedWebInspectorUIRefresh
33394
33395         http://bugs.webkit.org/show_bug.cgi?id=17773
33396
33397         A few areas that have not been re-implemented with the new UI are:
33398         * Search and search results.
33399         * Request and response headers in the Resources panel.
33400         * Changing the sorting, grouping or toggling small rows in Resources.
33401         * Image and font previews in the icon of resources.
33402
33403         Reviewed by Adam Roben.
33404
33405         * English.lproj/InspectorLocalizedStrings.js: Updated to match actual strings.
33406         * WebCore.vcproj/WebCore.vcproj: Added new files.
33407         * page/InspectorController.cpp:
33408         (WebCore::InspectorController::setWindowVisible): Call resetScriptObjects()
33409         instead of individual clear functions.
33410         (WebCore::InspectorController::populateScriptObjects): Renamed from
33411         populateScriptResources.
33412         (WebCore::InspectorController::addDatabaseScriptResource): Call
33413         addDatabase instead of addResource.
33414         (WebCore::InspectorController::removeDatabaseScriptResource): Call
33415         removeDatabase instead of removeResource.
33416         (WebCore::InspectorController::resetScriptObjects): Renamed from
33417         clearScriptResources.
33418         (WebCore::InspectorController::didCommitLoad): Call resetScriptObjects()
33419         instead of individual clear functions.
33420         * page/InspectorController.h: Rename functions.
33421         * page/inspector/Console.js: Changed the object name to Console from
33422         ConsolePanel. Made it inherit the prototype from View. Added code
33423         to animate in and out.
33424         * page/inspector/Database.js: Removed title updating and Resource
33425         pseudo-subclassing. Made more of a Model object that just encapsulates
33426         data. Add a getter for table names.
33427         * page/inspector/DatabaseQueryView.js: Added. Implements the view seen
33428         when selecting a Database in the DatabasesPanel. Implemented as an
33429         interactive console-like area.
33430         * page/inspector/DatabaseTableView.js: Added. Implements the view seen
33431         when selecting a Database Table in the DatabasesPanel. Matches the old
33432         Browse view of Database panels.
33433         * page/inspector/DatabasesPanel.js: Changed the object name to DatabasesPanel
33434         from DatabasePanel. Implements a panel that shows a sidebar of Databases
33435         and Database Tables.
33436         * page/inspector/ElementsPanel.js:  Changed the object name to ElementsPanel
33437         from DocumentPanel. Implements the DOM tree that shows the DOM rooted at the
33438         main resource.
33439         * page/inspector/FontView.js: Use this.contentElement instead of this.element.
33440         * page/inspector/ImageView.js: Ditto.
33441         * page/inspector/Images/clearConsoleButtons.png: Added.
33442         * page/inspector/Images/consoleButtons.png: Added.
33443         * page/inspector/Images/darkShadow.png: Flipped.
33444         * page/inspector/Images/database.png: Modified to be 32x32.
33445         * page/inspector/Images/databaseTable.png: Added.
33446         * page/inspector/Images/databasesIcon.png: Added.
33447         * page/inspector/Images/disclosureTriangleSmallDown.png: Added.
33448         * page/inspector/Images/disclosureTriangleSmallDownBlack.png: Added.
33449         * page/inspector/Images/disclosureTriangleSmallDownWhite.png: Added.
33450         * page/inspector/Images/disclosureTriangleSmallRight.png: Added.
33451         * page/inspector/Images/disclosureTriangleSmallRightBlack.png: Added.
33452         * page/inspector/Images/disclosureTriangleSmallRightDown.png: Added.
33453         * page/inspector/Images/disclosureTriangleSmallRightDownBlack.png: Added.
33454         * page/inspector/Images/disclosureTriangleSmallRightDownWhite.png: Added.
33455         * page/inspector/Images/disclosureTriangleSmallRightWhite.png: Added.
33456         * page/inspector/Images/dockButtons.png: Added.
33457         * page/inspector/Images/elementsIcon.png: Added.
33458         * page/inspector/Images/gradientHighlightBottom.png:
33459         * page/inspector/Images/resourceCSSIcon.png: Added.
33460         * page/inspector/Images/resourceDocumentIcon.png: Added.
33461         * page/inspector/Images/resourcePlainIcon.png: Added.
33462         * page/inspector/Images/resourcesIcon.png: Added.
33463         * page/inspector/Images/resourcesSizeGraphIcon.png: Added.
33464         * page/inspector/Images/resourcesTimeGraphIcon.png: Added.
33465         * page/inspector/Images/scriptsIcon.png: Added.
33466         * page/inspector/Images/segment.png: Modified to fit the taller status bar.
33467         * page/inspector/Images/segmentEnd.png: Ditto.
33468         * page/inspector/Images/segmentHover.png: Ditto.
33469         * page/inspector/Images/segmentHoverEnd.png: Ditto.
33470         * page/inspector/Images/segmentSelected.png: Ditto.
33471         * page/inspector/Images/segmentSelectedEnd.png: Ditto.
33472         * page/inspector/Images/sidebarSelectionBackground.png: Added.
33473         * page/inspector/Images/sidebarSelectionBackgroundFocused.png: Added.
33474         * page/inspector/Images/sidebarSelectionBackgroundInactive.png: Added.
33475         * page/inspector/Images/sidebarSmallSelectionBackground.png: Added.
33476         * page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Added.
33477         * page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Added.
33478         * page/inspector/Images/statusbarBackground.png: Added.
33479         * page/inspector/Images/statusbarBottomBackground.png: Added.
33480         * page/inspector/Images/statusbarButtons.png: Added.
33481         * page/inspector/Images/statusbarResizerVertical.png: Added.
33482         * page/inspector/Images/toolbarItemSelected.png: Added.
33483         * page/inspector/Panel.js: Added support for toolbar items and status bar items.
33484         Inherits from the View prototype.
33485         * page/inspector/Resource.js: Removed title updating and the ResourceTreeElement.
33486         Made more of a Model object that just encapsulates data.
33487         * page/inspector/ResourceCategory.js: Removed the ResourceCategoryTreeElement.
33488         Made more of a Model object that just encapsulates data.
33489         * page/inspector/ResourceView.js: A simple base object for Resource views
33490         shown in ResourcesPanel. Inherits from the View prototype.
33491         * page/inspector/ResourcesPanel.js: Changed the object name to ResourcesPanel
33492         from NetworkPanel. Implements the timeline graph, size graph and resource
33493         viewing by using ResourceViews.
33494         * page/inspector/SidebarTreeElement.js: Added. Inherits from TreeElement and implements
33495         a section element and a regular element that has an icon, title and optional subtitle.
33496         * page/inspector/SourceView.js: Use this.contentElement instead of this.element.
33497         * page/inspector/StylesSidebarPane.js: Null check WebInspector.mainResource.
33498         * page/inspector/View.js: Added. A simple object to manage showing and hiding an element.
33499         * page/inspector/WebKit.qrc: Added new files.
33500         * page/inspector/inspector.css: New and changed style rules to support the new UI.
33501         * page/inspector/inspector.html: New and changed HTML for the UI. The search field
33502         is disabled until search is reimplemented.
33503         * page/inspector/inspector.js: Removed code related to the sidebar and back-forward lists.
33504         Also removed code related to navigation to panels. Added code to instantiate the new
33505         panels and setup the toolbar.
33506
33507 2008-04-08  Dan Bernstein  <mitz@apple.com>
33508
33509         Reviewed by Antti Koivisto.
33510
33511         - fix a regression from r31313 which made the inspector highlight and
33512           yellow find highlight for table cells with extra top appear in the
33513           wrong position
33514
33515         * rendering/LayoutState.cpp:
33516         (WebCore::LayoutState::LayoutState): Changed absolutePosition() to
33517         absolutePositionForContent(), to get the right position for children of
33518         table cells. This is the correct fix for this part of r31313.
33519         * rendering/RenderBox.cpp:
33520         (WebCore::RenderBox::absolutePosition): Reverted the change from r31313
33521         by changing absolutePosition() to absolutePositionForContent() here too.
33522         * rendering/RenderObject.h:
33523         (WebCore::RenderObject::absolutePositionForContent): Changed to return
33524         the result from absolutePosition().
33525         * rendering/RenderTableCell.cpp:
33526         (WebCore::RenderTableCell::absoluteClippedOverflowRect): Turned the
33527         "else" case into an early return.
33528         (WebCore::RenderTableCell::absolutePosition): Reverted the change from
33529         r31313.
33530
33531 2008-04-08  Dan Bernstein  <mitz@apple.com>
33532
33533         Reviewed by Antti Koivisto.
33534
33535         - fix http://bugs.webkit.org/show_bug.cgi?id=18172
33536           REGRESSION (r31114-31132): Page renders structured almost horizontally (at flickr.com)
33537
33538         Test: fast/block/float/br-with-clear-2.html
33539
33540         * rendering/bidi.cpp:
33541         (WebCore::RenderBlock::layoutInlineChildren): The existing code for
33542         handling a float-clearing <br> in incremental layout had several bugs in
33543         it: it only applied when the <br> was on the last line of the block; it
33544         assumed that the <br> was always the rightmost box on the line (which is
33545         false in right-to-left runs); and in some places it looked at the last
33546         child of the block instead of the last box on the line. Fixed these
33547         bugs.
33548
33549 2008-04-08  Adam Roben  <aroben@apple.com>
33550
33551         Mac build fix
33552
33553         * WebCore.xcodeproj/project.pbxproj: Removed MainThread* files which
33554         were moved to WTF.
33555
33556 2008-04-08  Timothy Hatcher  <timothy@apple.com>
33557
33558         Change WebInspector.elementDragStart and WebInspector.elementDragEnd to have more
33559         state, so calling elementDragEnd does not need the listener functions. Also makes
33560         calling elementDragStart again without elementDragEnd work correctly.
33561
33562         Reviewed by Adam Roben.
33563
33564         * page/inspector/ElementsPanel.js:
33565         (DocumentPanel.prototype.rightSidebarResizerDragStart): Just call WebInspector.elementDragStart.
33566         Removed code that stored away the listeners now that elementDragStart does it.
33567         (DocumentPanel.prototype.rightSidebarResizerDragEnd): Just call WebInspector.elementDragEnd.
33568         Removed code that deleted listeners properties now that elementDragEnd does it.
33569         * page/inspector/inspector.js:
33570         (WebInspector.sidebarResizerDragEnd): Pass less arguments to elementDragEnd.
33571         (WebInspector.searchResultsResizerDragEnd): Ditto.
33572         (WebInspector.elementDragStart): Store the listeners as private properties on WebInspector.
33573         If the properties are already defined, call elementDragEnd first.
33574         (WebInspector.elementDragEnd): Remove the event listeners using the stored properties.
33575         Delete the private listener properties.
33576
33577 2008-04-08  Adam Roben  <aroben@apple.com>
33578
33579         Build fix
33580
33581         * ForwardingHeaders/wtf/MainThread.h: Added. Forgot to commit this.
33582
33583 2008-04-08  Adam Roben  <aroben@apple.com>
33584
33585         Move callOnMainThread to WTF
33586
33587         Reviewed by Alexey Proskuryakov.
33588
33589         * GNUmakefile.am:
33590         * WebCore.pro:
33591         * WebCore.vcproj/WebCore.vcproj:
33592         * WebCoreSources.bkl:
33593         Removed MainThread files.
33594
33595         * bindings/js/JSCustomSQLTransactionCallback.cpp:
33596         * loader/icon/IconDatabase.cpp:
33597         (WebCore::iconDatabase):
33598         * storage/Database.cpp:
33599         (WebCore::Database::Database):
33600         * storage/DatabaseTracker.cpp:
33601         Updated #includes and replaced calls to
33602         WebCore::initializeThreadingAndMainThread with calls to
33603         KJS::initializeThreading.
33604
33605         * platform/MainThread.cpp: Removed.
33606         * platform/MainThread.h: Removed.
33607         * platform/gtk/MainThreadGtk.cpp: Removed.
33608         * platform/mac/MainThreadMac.mm: Removed.
33609         * platform/qt/MainThreadQt.cpp: Removed.
33610         * platform/win/MainThreadWin.cpp: Removed.
33611         * platform/wx/MainThreadWx.cpp: Removed.
33612
33613 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33614
33615         Makes the Network timeline graph resource sizes on the bar graph
33616         when Transfer Size is selected.
33617
33618         http://bugs.webkit.org/show_bug.cgi?id=18351
33619
33620         Reviewed by Adam Roben.
33621
33622         * page/inspector/Resource.js:
33623         (WebInspector.Resource.CompareByTime): Array sorting function for time.
33624         Copied from WebInspector.NetworkPanel.timelineEntryCompare.
33625
33626         * page/inspector/ResourcesPanel.js:
33627         (WebInspector.NetworkPanel): Set the selectedIndex of graphModeSelectElement to
33628         make Transfer Time the default graph.
33629         (WebInspector.NetworkPanel.prototype.changeGraphMode): Call calculator.reset,
33630         _refreshAllResources and _updateGraphDividersIfNeeded.
33631         (WebInspector.NetworkPanel.prototype.get totalDuration): Removed.
33632         (WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded): Removed boundary
33633         checking code and just call calculator.updateBoundries.
33634         (WebInspector.NetworkPanel.prototype._updateGraphDividersIfNeeded): Add a force argument.
33635         Use calculator.boundarySpan when computing the slice. If the slice is NaN, don't make a label.
33636         Ask the calculator to format the label values for each slice.
33637         (WebInspector.NetworkPanel.prototype.clearTimeline): Call calculator.reset.
33638         (WebInspector.NetworkPanel.timelineEntryCompare): Call WebInspector.Resource.CompareByTime.
33639
33640         (WebInspector.NetworkTimelineEntry.prototype.refresh): Ask the panel's calculator to compute
33641         bar graph percentages for a resource. Use those percentages to change the bar style.
33642
33643         (WebInspector.ResourceCalculator): Renamed from WebInspector.TimelineValueCalculator.
33644         (WebInspector.ResourceCalculator.prototype.computeSummaryValues): Changed the Array.forEach
33645         to a normal for loop. Work with resources instead of TimelineEntries.
33646         (WebInspector.ResourceCalculator.prototype.computeBarGraphPercentages): Return basic bar graph
33647         percents with start always being zero.
33648         (WebInspector.ResourceCalculator.prototype.get boundarySpan): Return the difference between
33649         maximumBoundary and minimumBoundary.
33650         (WebInspector.ResourceCalculator.prototype.updateBoundries): Update maximumBoundary based on _value.
33651         The minimumBoundary is always zero.
33652         (WebInspector.ResourceCalculator.prototype.reset): Delete maximumBoundary and minimumBoundary.
33653         (WebInspector.ResourceCalculator.prototype._value): Takes a Resource instead of TimelineEntry.
33654
33655         (WebInspector.ResourceTransferTimeCalculator): Renamed from TransferTimeCalculator.
33656         (WebInspector.ResourceTransferTimeCalculator.prototype.computeSummaryValues): Work with resources
33657         instead of entries. Changed the Array.forEach to a normal for loop.
33658         (WebInspector.ResourceTransferTimeCalculator.prototype.computeBarGraphPercentages): Return percents
33659         just like WebInspector.NetworkTimelineEntry.prototype.refresh was doing before.
33660         (WebInspector.ResourceTransferTimeCalculator.prototype.updateBoundries): Update minimumBoundary and
33661         maximumBoundary just like the checks WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded was doing.
33662
33663         (WebInspector.ResourceTransferSizeCalculator): Renamed from TransferSizeCalculator.
33664         (WebInspector.ResourceTransferSizeCalculator.prototype._value): Takes a Resource instead of TimelineEntry.
33665
33666 2008-04-08  Rob Buis  <buis@kde.org>
33667
33668         Fix the SVG build.
33669
33670         * svg/SVGFEFloodElement.cpp:
33671         (WebCore::SVGFEFloodElement::filterEffect):
33672
33673 2008-04-08  Alice Liu  <alice.liu@apple.com>
33674
33675         Reviewed by Dan Bernstein.
33676         
33677         fixed http://bugs.webkit.org/show_bug.cgi?id=18329
33678         REGRESSION: Assertion failure in -[WebViewFactory endOfTextMarkerRange:] 
33679         when invoking the Dictionary pop-up
33680
33681         * page/mac/AccessibilityObjectWrapper.mm:
33682         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
33683         In the section of code where WebCore-equivalents of mac-specific types are
33684         prepared, some functions weren't meant to operate on the default initialized
33685         values.  Checking for nil in certain places will better maintain the original
33686         pre-refactoring code path. 
33687
33688 2008-04-08  Dan Bernstein  <mitz@apple.com>
33689
33690         Reviewed by Maciej Stachowiak.
33691
33692         - fix most of the Windows layout test regressions from the font-weight patch
33693
33694         * platform/graphics/win/FontCacheWin.cpp:
33695         (WebCore::matchImprovingEnumProc): Changed to be symmetric with respect
33696         to italics: always prefer (reject) a candidate that changes the italics
33697         trait to (from) the desired value.
33698         (WebCore::createGDIFont): Added code to set more members of the LOGFONT
33699         structure before creating the font.
33700
33701 2008-04-07  Rob Buis  <buis@kde.org>
33702
33703         Reviewed by Ollie.
33704
33705         http://bugs.webkit.org/show_bug.cgi?id=18354
33706         feFlood in attribute should be removed according to SVG 1.1 Errata
33707
33708         Remove the in attribute from SVGFEFlood DOM.
33709
33710         * svg/SVGFEFloodElement.cpp:
33711         (WebCore::SVGFEFloodElement::parseMappedAttribute):
33712         * svg/SVGFEFloodElement.h:
33713         * svg/SVGFEFloodElement.idl:
33714
33715 2008-04-07  Brady Eidson  <beidson@apple.com>
33716
33717         Touch JSStorageCustom.cpp to try to FORCE a recompile on bots that haven't gotten the message
33718
33719         * bindings/js/JSStorageCustom.cpp:
33720         (WebCore::JSStorage::customPut):
33721
33722 2008-04-07  Brady Eidson  <beidson@apple.com>
33723
33724         Reviewed by John Honeycutt
33725
33726         ENABLE_DOM_STORAGE for Windows
33727
33728         * WebCore.vcproj/WebCore.vcproj:
33729         * WebCore.vcproj/build-generated-files.sh:
33730
33731 2008-04-07  Brady Eidson  <beidson@apple.com>
33732
33733         Fix build for builds without DOM_STORAGE enabled
33734
33735         * dom/EventTargetNode.cpp:
33736         (WebCore::EventTargetNode::dispatchStorageEvent):
33737         * dom/EventTargetNode.h:
33738
33739 2008-04-07  Alice Liu  <alice.liu@apple.com>
33740
33741         Reviewed by Beth Dakin.
33742
33743         * WebCore.vcproj/WebCore.vcproj:
33744             Added a few cross-platform accessibility source files
33745             
33746         * WebCore.xcodeproj/project.pbxproj:
33747             Added AXObjectCache.cpp
33748             
33749         * page/AXObjectCache.cpp: Added.
33750             These were made cross-platform:
33751         (WebCore::AXObjectCache::~AXObjectCache):
33752         (WebCore::AXObjectCache::get):
33753         (WebCore::AXObjectCache::remove):
33754         (WebCore::AXObjectCache::childrenChanged):
33755         
33756         * page/AXObjectCache.h:
33757             These were made platform-specific
33758         (WebCore::AXObjectCache::isIDinUse):
33759         (WebCore::AXObjectCache::detachWrapper):
33760         (WebCore::AXObjectCache::attachWrapper):
33761         (WebCore::AXObjectCache::postNotificationToElement):
33762         
33763         * page/AccessibilityObject.cpp:
33764         (WebCore::AccessibilityObject::detach):
33765             Since only the mac has a wrapper for now, so temporarily 
33766             wrapping this line in #if PLATFORM(MAC)
33767             
33768         (WebCore::AccessibilityObject::removeAXObjectID):
33769             Since only the mac has uses Accessibility Object IDs,
33770             wrap this line in #if PLATFORM(MAC)
33771             
33772         * page/mac/AXObjectCacheMac.mm:
33773             Detaching and attaching the wrapper is platform-specific 
33774             since each wrapper class is platform-specific.
33775         (WebCore::AXObjectCache::detachWrapper):
33776         (WebCore::AXObjectCache::attachWrapper):        
33777
33778 2008-04-07  Brady Eidson  <beidson@apple.com>
33779
33780         Lovingly reviewed by Sam Weinig
33781
33782         <rdar://problem/5797684> - HTML5 SessionStorage and underpinnings for LocalStorage
33783
33784         Tests: storage/domstorage/sessionstorage/iframe-events.html
33785                storage/domstorage/sessionstorage/index-get-and-set.html
33786                storage/domstorage/sessionstorage/simple-events.html
33787                storage/domstorage/sessionstorage/simple-usage.html
33788                storage/domstorage/sessionstorage/window-open.html
33789                storage/domstorage/window-attributes-exist.html
33790
33791         * Configurations/WebCore.xcconfig: Define to enable DOM_STORAGE
33792
33793         * bindings/js/JSDOMWindowCustom.cpp:
33794         (WebCore::JSDOMWindow::mark): Add optionalSessionStorage case
33795
33796         * bindings/js/JSEventCustom.cpp:
33797         (WebCore::toJS): Add StorageEvent case
33798
33799         * bindings/js/JSStorageCustom.cpp:
33800         (WebCore::JSStorage::canGetItemsForName):
33801         (WebCore::JSStorage::nameGetter): If the property doesn't exist on the object, call through to getItem()
33802         (WebCore::JSStorage::customPut): If the property doesn't exist on the object, call through to setItem()
33803
33804         * dom/Event.cpp:
33805         (WebCore::Event::isStorageEvent):
33806         * dom/Event.h:
33807
33808         * dom/EventNames.h: Add "storage"
33809
33810         * dom/EventTargetNode.cpp:
33811         (WebCore::EventTargetNode::dispatchStorageEvent):
33812         * dom/EventTargetNode.h:
33813
33814         * loader/FrameLoader.cpp:
33815         (WebCore::FrameLoader::createWindow): After a new page has been created, set its SessionStorage object
33816           to a copy of the previous Page's
33817
33818         * page/DOMWindow.cpp:
33819         (WebCore::DOMWindow::sessionStorage): Accessor to pull the appropriate OriginStorage out of the Page's
33820           SessionStorage.
33821         (WebCore::DOMWindow::localStorage): To be filled in later
33822         * page/DOMWindow.h:
33823         (WebCore::DOMWindow::optionalSessionStorage): Return the session Storage object for this window to mark, 
33824           if any exists
33825         * page/DOMWindow.idl:
33826
33827         * page/Page.cpp:
33828         (WebCore::Page::sessionStorage):  Create and/or return the SessionStorage for this Page.
33829         (WebCore::Page::setSessionStorage): Set the SessionStorage for this Page - used in FrameLoader after a
33830           Window.open();
33831         * page/Page.h:
33832
33833         * storage/OriginStorage.cpp: Intermediate layer between individual Storage objects, and shared StorageMap 
33834           objects.  There is one OriginStorage object per SecurityOrigin in each "unique set of storage areas", such
33835           as the SessionStorage.  This layer forwards DOM-level calls down to the backing StorageMap, handles 
33836           copy-on-write along with the StorageMap, fires StorageEvents to the DOM when a value is changed, and will
33837           eventually handle quota enforcement.
33838         (WebCore::OriginStorage::create):
33839         (WebCore::OriginStorage::OriginStorage):
33840         (WebCore::OriginStorage::~OriginStorage):
33841         (WebCore::OriginStorage::copy):
33842         (WebCore::OriginStorage::length):
33843         (WebCore::OriginStorage::key):
33844         (WebCore::OriginStorage::getItem):
33845         (WebCore::OriginStorage::setItem):
33846         (WebCore::OriginStorage::removeItem):
33847         (WebCore::OriginStorage::contains):
33848         (WebCore::OriginStorage::dispatchStorageEvent):
33849         * storage/OriginStorage.h:
33850
33851         * storage/SessionStorage.cpp: From the HTML5 spec:
33852           "Each top-level browsing context has a unique set of session storage areas, one for each origin."
33853           This object represents that "unique set of session storage areas", and creates or returns the Storage
33854           object for the requested SecurityOrigin
33855         (WebCore::SessionStorage::create):
33856         (WebCore::SessionStorage::SessionStorage):
33857         (WebCore::SessionStorage::copy):
33858         (WebCore::SessionStorage::originStorage):
33859         * storage/SessionStorage.h:
33860         (WebCore::SessionStorage::page):
33861
33862         * storage/Storage.cpp: Representation of the DOM-level object, wrapped by JSStorage.  There is a unique
33863           Storage object per Window (per-Frame) that wraps a specific shared OriginStorage object.
33864         (WebCore::Storage::create):
33865         (WebCore::Storage::Storage):
33866         (WebCore::Storage::length):
33867         (WebCore::Storage::key):
33868         (WebCore::Storage::getItem):
33869         (WebCore::Storage::setItem):
33870         (WebCore::Storage::removeItem):
33871         (WebCore::Storage::contains):
33872         * storage/Storage.h:
33873         * storage/Storage.idl:
33874
33875         * storage/StorageEvent.cpp:
33876         (WebCore::StorageEvent::StorageEvent):
33877         (WebCore::StorageEvent::initStorageEvent):
33878         * storage/StorageEvent.h:
33879         (WebCore::StorageEvent::isStorageEvent):
33880
33881         * storage/StorageMap.cpp: The physical map of key/value pairs that is shared between OriginStorage objects, 
33882           and implements copy-on-write semantics whenever a value is changed
33883         (WebCore::StorageMap::create):
33884         (WebCore::StorageMap::StorageMap):
33885         (WebCore::StorageMap::copy):
33886         (WebCore::StorageMap::invalidateIterator): Used to support the key(unsigned i) part of the API
33887         (WebCore::StorageMap::setIteratorToIndex): Ditto
33888         (WebCore::StorageMap::length):
33889         (WebCore::StorageMap::key):
33890         (WebCore::StorageMap::getItem):
33891         (WebCore::StorageMap::setItem):
33892         (WebCore::StorageMap::removeItem):
33893         (WebCore::StorageMap::contains):
33894         * storage/StorageMap.h:
33895
33896 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33897
33898         Renamed various functions that are internal to the Console
33899         object to have an underscore prefix.
33900
33901         Rubber-stamped by Adam Roben.
33902
33903         * page/inspector/Console.js:
33904
33905 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33906
33907         Renamed various functions and properties that are internal
33908         to an object to have an underscore prefix.
33909
33910         Rubber-stamped by Adam Roben.
33911
33912         * page/inspector/Resource.js:
33913         * page/inspector/ResourcesPanel.js:
33914
33915 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33916
33917         Fixes coding style for two utility getters.
33918
33919         * page/inspector/utilities.js: Fix coding style for the
33920         totalOffsetLeft and totalOffsetTop getters.
33921
33922 2008-04-07  Dan Bernstein  <mitz@apple.com>
33923
33924         Reviewed by Dave Hyatt.
33925
33926         - fix http://bugs.webkit.org/show_bug.cgi?id=18311
33927           <rdar://problem/5842980> REGRESSION (r31620): Font variants (e.g. Helvetica Neue *Light*) don't render correctly
33928
33929         * platform/mac/WebFontCache.mm:
33930         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to
33931         match by family name first, and only if that fails, look for a match by
33932         full (PostScript) name. Reverted the full name-based match logic to only
33933         distinguish between the broad categories of "bold" and "not bold".
33934
33935 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33936
33937         When the WebInspector.currentFocusElement changes, move the caret
33938         selection to be inside the focused element. This makes sure the
33939         caret moves in and out of the console when the focus changes.
33940
33941         Reviewed by Adam Roben.
33942
33943         * page/inspector/TextPrompt.js:
33944         (TextPrompt.prototype.isCaretInsidePrompt): Just call isInsertionCaretInside.
33945         * page/inspector/inspector.js: 
33946         (WebInspector.set currentFocusElement): Make a caret selection inside
33947         the focused element if there isn't a range selection and there isn't
33948         already a caret selection inside.
33949         * page/inspector/utilities.js:
33950         (Element.prototype.isInsertionCaretInside): Added. Tests if the
33951         selection is collapsed and is inside the element.
33952
33953 2008-04-07  Brady Eidson  <beidson@apple.com>
33954
33955         Reviewed by Tim Hatcher
33956
33957         Add 1 more empty file for upcoming work, as a separate step, to keep all build-systems working
33958
33959         * GNUmakefile.am:
33960         * WebCore.pro:
33961         * WebCore.vcproj/WebCore.vcproj:
33962         * WebCore.xcodeproj/project.pbxproj:
33963         * WebCoreSources.bkl:
33964
33965         * bindings/js/JSStorageCustom.cpp: Added.
33966
33967 2008-04-07  Alexey Proskuryakov  <ap@webkit.org>
33968
33969         Reviewed by Dan Bernstein.
33970
33971         <rdar://problem/5574946> Inline frame ISO-8859-1 even though parent character set is UTF-8
33972
33973         Test: fast/loader/inherit-charset-to-empty-frame.html
33974
33975         * loader/FrameLoader.cpp:
33976         (WebCore::FrameLoader::write): Treat an empty m_encoding the same as null one.
33977
33978 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33979
33980         Rename some Inspector panel objects to facilitate the up-coming
33981         UI refresh changes.
33982
33983         Reviewed by Adam Roben.
33984
33985         * page/inspector/DatabasesPanel.js: Renamed ResourcePanel to ResourceView.
33986         * page/inspector/ElementsPanel.js: Renamed SourcePanel to SourceView.
33987         * page/inspector/FontView.js: Renamed FontPanel to FontView.
33988         * page/inspector/ImageView.js: Renamed ImagePanel to ImageView.
33989         * page/inspector/Resource.js: Instantiate the new "View" named objects.
33990         * page/inspector/ResourceView.js: Renamed ResourcePanel to ResourceView.
33991         * page/inspector/SourceView.js: Renamed SourcePanel to SourceView.
33992
33993 2008-04-07  Timothy Hatcher  <timothy@apple.com>
33994
33995         Fix an exception and remove code that was missed when TextPrompt
33996         was added. This makes the Console work again.
33997         
33998         Reviewed by Adam Roben.
33999         
34000         * page/inspector/Console.js: Removed code that used non-existent
34001         properties.
34002
34003 2008-04-07  Timothy Hatcher  <timothy@apple.com>
34004
34005         Remove the workaround for bug 11399 now that it is fixed.
34006
34007         Reviewed by Adam Roben.
34008
34009         * page/inspector/Console.js: Removed the 'with' statement
34010         around the eval and call eval directly on the inspected window.
34011
34012 2008-04-07  Luca Bruno  <lethalman88@gmail.com>
34013
34014         Reviewed by Alp Toker.
34015
34016         http://bugs.webkit.org/show_bug.cgi?id=18297
34017         Bug #18297 - Acid2/Acid3 -tests don't load load with soup.
34018
34019         Fixes in the libsoup backend: data url parsing, acid tests, redirects,
34020         response headers handling and re-entrancy issues on job cancellation.
34021         Thanks to Dan Winship for libsoup hints.
34022
34023         * platform/network/ResourceHandleInternal.h:
34024         (WebCore::ResourceHandleInternal::ResourceHandleInternal): add m_cancelled and remove unuseful m_session
34025         * platform/network/soup/ResourceHandleSoup.cpp:
34026         (WebCore::restartedCallback): added to route redirects to webkit
34027         (WebCore::dataCallback): add response headers, some checks and fix re-entrancy
34028         (WebCore::parseDataUrl): be an idle callback for the main loop
34029         (WebCore::ResourceHandle::start):
34030         (WebCore::ResourceHandle::cancel): fixed re-entrancy
34031
34032 2008-04-07  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
34033
34034         Build fix, rubber-stamped and landed by ap.
34035
34036         * GNUmakefile.am: Fix dom_storage conditional and typo: ENABLE_DOM_STORAG
34037
34038 2008-04-07  Brady Eidson  <beidson@apple.com>
34039
34040         Whoops, idls don't go in the vcproj!
34041
34042         * WebCore.vcproj/WebCore.vcproj:
34043
34044 2008-04-06  Brady Eidson <beidson@apple.com>
34045
34046         Attempt to tickle Windows build into accepting this idl
34047
34048         * storage/StorageEvent.idl:
34049
34050 2008-04-06  Brady Eidson <beidson@apple.com>
34051
34052         Reviewed by Sam
34053
34054         HTML5 Session and Local Storage
34055
34056         Land a bunch of empty files and interfaces to keep things building while 
34057         I finish off the rest of the implementation of SessionStorage
34058
34059         * DerivedSources.make:
34060         * GNUmakefile.am:
34061         * WebCore.pro:
34062         * WebCore.vcproj/WebCore.vcproj:
34063         * WebCore.xcodeproj/project.pbxproj:
34064         * WebCoreSources.bkl:
34065
34066         * storage/OriginStorage.cpp: Added.
34067         * storage/OriginStorage.h: Added.
34068
34069         * storage/SessionStorage.cpp: Added.
34070         * storage/SessionStorage.h: Added.
34071
34072         * storage/Storage.cpp: Added.
34073         (WebCore::Storage::length):
34074         (WebCore::Storage::key):
34075         (WebCore::Storage::getItem):
34076         (WebCore::Storage::setItem):
34077         (WebCore::Storage::removeItem):
34078         * storage/Storage.h: Added.
34079         * storage/Storage.idl: Added.
34080
34081         * storage/StorageEvent.cpp: Added.
34082         * storage/StorageEvent.h: Added.
34083         (WebCore::StorageEvent::key):
34084         (WebCore::StorageEvent::oldValue):
34085         (WebCore::StorageEvent::newValue):
34086         (WebCore::StorageEvent::uri):
34087         (WebCore::StorageEvent::source):
34088         (WebCore::StorageEvent::initStorageEvent):
34089         * storage/StorageEvent.idl: Added.
34090
34091         * storage/StorageMap.cpp: Added.
34092         * storage/StorageMap.h: Added.
34093
34094 2008-04-05  Kevin Ollivier  <kevino@theolliviers.com>
34095
34096         Reviewed by Mark Rowe.
34097
34098         Add CSS to the MIMETypeRegistry, which ensures CSS files get
34099         the right MIMEType when loaded from disk.
34100
34101         * platform/gtk/MIMETypeRegistryGtk.cpp:
34102         * platform/wx/MimeTypeRegistryWx.cpp:
34103
34104 2008-04-05  Rob Buis  <buis@kde.org>
34105
34106         Reviewed by Eric.
34107
34108         http://bugs.webkit.org/show_bug.cgi?id=17129
34109         Incorrect style resolution in CSS styled SVG, with multiple style sheets
34110
34111         Fix the style resolution on the svg by ensuring xml-stylesheet pseudo
34112         attributes title and alternate are transferred to the stylesheet
34113         created from the ProcessingInstruction.
34114
34115         * dom/ProcessingInstruction.cpp:
34116         (WebCore::ProcessingInstruction::ProcessingInstruction):
34117         (WebCore::ProcessingInstruction::checkStyleSheet):
34118         (WebCore::ProcessingInstruction::setCSSStyleSheet):
34119         * dom/ProcessingInstruction.h:
34120
34121 2008-04-05  Dan Bernstein  <mitz@apple.com>
34122
34123         Reviewed by Darin Adler.
34124
34125         - fix <rdar://problem/5843719> Excessive repainting of cells in tables with non-auto height
34126
34127         Test: fast/repaint/table-two-pass-layout-overpaint.html
34128
34129         * rendering/RenderTable.cpp:
34130         (WebCore::RenderTable::layout): Changed the first pass over the sections
34131         to only call calcRowHeight() and recalcOuterBorder() but not
34132         layoutRows(), because the section's final height is unknown yet.
34133         Removed caching of m_height before the call to calcHeight(), because
34134         for non-positioned tables, calcHeight() only calculates the vertical
34135         margins and does not change m_height.
34136         Added a second pass over the sections, after the table height is known,
34137         to call layoutRows() on each section, with additional height if needed.
34138         Did minimal cleanup including caching the value of collapseBorders() in
34139         a local variable and changing a while loop into a for loop.
34140         * rendering/RenderTableSection.cpp:
34141         (WebCore::RenderTableSection::calcRowHeight): Changed to return the
34142         height of the section based on row height calculations.
34143         (WebCore::RenderTableSection::layoutRows): Removed a call to
34144         recalcOuterBorder(), which is now done by RenderTable::layout().
34145         * rendering/RenderTableSection.h: Changed calcRowHeight() to have a
34146         return value.
34147
34148 2008-04-05  Simon Hausmann  <shausman@trolltech.com>
34149
34150         Reviewed by Holger.
34151
34152         Fixes: Disable "unimplemented" warnings when building WebKit inside Qt.
34153
34154         * WebCore.pro:
34155         * platform/NotImplemented.h:
34156
34157 2008-04-05  Simon Hausmann  <hausmann@webkit.org>
34158
34159         Rubber-stamped by Holger
34160
34161         Revert "* Load images incrementally. This will show warnings on the console"
34162         This rolls out -r29739.
34163
34164         This unfortunately caused some crashes and drawing errors. Backing out for now.
34165
34166         * platform/graphics/qt/ImageDecoderQt.cpp:
34167         (WebCore::ImageDecoderQt::setData):
34168
34169 2008-04-04  Kevin Ollivier  <kevino@theolliviers.com>
34170
34171         Add GradientWx.cpp to the wx build process. 
34172
34173         * webcore-wx.bkl:
34174
34175 2008-04-04  Dan Bernstein  <mitz@apple.com>
34176
34177         Reviewed by Sam Weinig.
34178
34179         - speed up CSSFontSelector::getFontData()
34180
34181         * css/CSSFontSelector.cpp:
34182         (WebCore::fontDataForGenericFamily): Factored out of getFontData().
34183         (WebCore::CSSFontSelector::getFontData): Changed to call
34184         fontDataForGenericFamily() directly if the map is empty.
34185
34186 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
34187
34188         Reviewed by Oliver.
34189
34190         Replace AccessibilityObject::isRenderImage() with a virtual
34191         RenderObject::isRenderImage().
34192
34193         * page/AccessibilityObject.cpp:
34194         (WebCore::AccessibilityObject::accessibilityIsIgnored):
34195         (WebCore::AccessibilityObject::addChildren):
34196         * page/AccessibilityObject.h:
34197         (WebCore::AccessibilityObject::isDetached):
34198         * rendering/RenderImage.h:
34199         (WebCore::RenderImage::isRenderImage):
34200         * rendering/RenderObject.h:
34201         (WebCore::RenderObject::isRenderImage):
34202
34203 2008-04-04  Dan Bernstein  <mitz@apple.com>
34204
34205         - try to fix the wx build
34206
34207         * platform/graphics/wx/FontPlatformDataWx.cpp:
34208         (WebCore::fontWeightToWxFontWeight):
34209         (WebCore::FontPlatformData::FontPlatformData):
34210
34211 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
34212
34213         Reviewed by Beth.
34214
34215         Some more clean-up of AccessibilityObject:
34216         - Rearranged/grouped methods.
34217         - Marked many methods const.
34218         - Changed many methods to take args by const ref instead of by val.
34219         - Made headingLevel() static.
34220         - Renamed detached() to isDetached(), loaded() to isLoaded(),
34221           documentLinks to getDocumentLinks().
34222         - Made clearChildren(), removeAXObjectID(), isDetached() private.
34223         - Added notImplemented() calls for unimplemented methods.
34224         - Replaced stringForReplacedNode method with static function.
34225
34226         * page/AccessibilityObject.cpp:
34227         (WebCore::AccessibilityObject::~AccessibilityObject):
34228         (WebCore::AccessibilityObject::firstChild):
34229         (WebCore::AccessibilityObject::lastChild):
34230         (WebCore::AccessibilityObject::previousSibling):
34231         (WebCore::AccessibilityObject::nextSibling):
34232         (WebCore::AccessibilityObject::parentObject):
34233         (WebCore::AccessibilityObject::parentObjectUnignored):
34234         (WebCore::AccessibilityObject::headingLevel):
34235         (WebCore::AccessibilityObject::anchorElement):
34236         (WebCore::AccessibilityObject::actionElement):
34237         (WebCore::AccessibilityObject::mouseButtonListener):
34238         (WebCore::AccessibilityObject::helpText):
34239         (WebCore::AccessibilityObject::textUnderElement):
34240         (WebCore::AccessibilityObject::hasIntValue):
34241         (WebCore::AccessibilityObject::intValue):
34242         (WebCore::AccessibilityObject::stringValue):
34243         (WebCore::AccessibilityObject::title):
34244         (WebCore::AccessibilityObject::accessibilityDescription):
34245         (WebCore::AccessibilityObject::boundingBoxRect):
34246         (WebCore::AccessibilityObject::size):
34247         (WebCore::AccessibilityObject::linkedUIElement):
34248         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
34249         (WebCore::AccessibilityObject::accessibilityIsIgnored):
34250         (WebCore::AccessibilityObject::isLoaded):
34251         (WebCore::AccessibilityObject::layoutCount):
34252         (WebCore::AccessibilityObject::textLength):
34253         (WebCore::AccessibilityObject::selectedText):
34254         (WebCore::AccessibilityObject::selection):
34255         (WebCore::AccessibilityObject::selectedTextRange):
34256         (WebCore::AccessibilityObject::setSelectedText):
34257         (WebCore::AccessibilityObject::setSelectedTextRange):
34258         (WebCore::AccessibilityObject::makeRangeVisible):
34259         (WebCore::AccessibilityObject::url):
34260         (WebCore::AccessibilityObject::isVisited):
34261         (WebCore::AccessibilityObject::isFocused):
34262         (WebCore::AccessibilityObject::setValue):
34263         (WebCore::AccessibilityObject::isEnabled):
34264         (WebCore::AccessibilityObject::topRenderer):
34265         (WebCore::AccessibilityObject::textControl):
34266         (WebCore::AccessibilityObject::widget):
34267         (WebCore::AccessibilityObject::axObjectCache):
34268         (WebCore::AccessibilityObject::getDocumentLinks):
34269         (WebCore::AccessibilityObject::documentFrameView):
34270         (WebCore::AccessibilityObject::widgetForAttachmentView):
34271         (WebCore::AccessibilityObject::frameViewIfRenderView):
34272         (WebCore::AccessibilityObject::visiblePositionRange):
34273         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
34274         (WebCore::AccessibilityObject::doAXTextMarkerRangeForUnorderedTextMarkers):
34275         (WebCore::AccessibilityObject::doAXLeftWordTextMarkerRangeForTextMarker):
34276         (WebCore::AccessibilityObject::doAXRightWordTextMarkerRangeForTextMarker):
34277         (WebCore::AccessibilityObject::doAXLeftLineTextMarkerRangeForTextMarker):
34278         (WebCore::AccessibilityObject::doAXRightLineTextMarkerRangeForTextMarker):
34279         (WebCore::AccessibilityObject::doAXSentenceTextMarkerRangeForTextMarker):
34280         (WebCore::AccessibilityObject::doAXParagraphTextMarkerRangeForTextMarker):
34281         (WebCore::AccessibilityObject::doAXStyleTextMarkerRangeForTextMarker):
34282         (WebCore::AccessibilityObject::textMarkerRangeForRange):
34283         (WebCore::stringForReplacedNode):
34284         (WebCore::AccessibilityObject::doAXStringForTextMarkerRange):
34285         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
34286         (WebCore::AccessibilityObject::doAXLengthForTextMarkerRange):
34287         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
34288         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
34289         (WebCore::AccessibilityObject::doAXNextTextMarkerForTextMarker):
34290         (WebCore::AccessibilityObject::doAXPreviousTextMarkerForTextMarker):
34291         (WebCore::AccessibilityObject::doAXNextWordEndTextMarkerForTextMarker):
34292         (WebCore::AccessibilityObject::doAXPreviousWordStartTextMarkerForTextMarker):
34293         (WebCore::AccessibilityObject::doAXNextLineEndTextMarkerForTextMarker):
34294         (WebCore::AccessibilityObject::doAXPreviousLineStartTextMarkerForTextMarker):
34295         (WebCore::AccessibilityObject::doAXNextSentenceEndTextMarkerForTextMarker):
34296         (WebCore::AccessibilityObject::doAXPreviousSentenceStartTextMarkerForTextMarker):
34297         (WebCore::AccessibilityObject::doAXNextParagraphEndTextMarkerForTextMarker):
34298         (WebCore::AccessibilityObject::doAXPreviousParagraphStartTextMarkerForTextMarker):
34299         (WebCore::AccessibilityObject::textMarkerForIndex):
34300         (WebCore::AccessibilityObject::doAXUIElementForTextMarker):
34301         (WebCore::AccessibilityObject::doAXLineForTextMarker):
34302         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
34303         (WebCore::AccessibilityObject::indexForTextMarker):
34304         (WebCore::AccessibilityObject::doAXRangeForLine):
34305         (WebCore::AccessibilityObject::doAXRangeForPosition):
34306         (WebCore::AccessibilityObject::doAXRangeForIndex):
34307         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
34308         (WebCore::AccessibilityObject::doAXStringForRange):
34309         (WebCore::AccessibilityObject::doAXBoundsForRange):
34310         (WebCore::AccessibilityObject::doAccessibilityHitTest):
34311         (WebCore::AccessibilityObject::focusedUIElement):
34312         (WebCore::AccessibilityObject::observableObject):
34313         (WebCore::AccessibilityObject::roleValue):
34314         (WebCore::AccessibilityObject::canSetFocusAttribute):
34315         (WebCore::AccessibilityObject::canSetValueAttribute):
34316         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
34317         (WebCore::AccessibilityObject::hasChildren):
34318         (WebCore::AccessibilityObject::axObjectID):
34319         * page/AccessibilityObject.h:
34320         (WebCore::VisiblePositionRange::VisiblePositionRange):
34321         (WebCore::AccessibilityObject::PlainTextRange::PlainTextRange):
34322         (WebCore::AccessibilityObject::areaElement):
34323         (WebCore::AccessibilityObject::renderer):
34324         (WebCore::AccessibilityObject::children):
34325         (WebCore::AccessibilityObject::wrapper):
34326         (WebCore::AccessibilityObject::isDetached):
34327         * page/mac/AccessibilityObjectWrapper.mm:
34328         (AXAttributeStringSetHeadingLevel):
34329         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
34330
34331 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34332
34333         Restore the user entered text when clearing the auto-completion.
34334         This is important when the user typed text that is a different
34335         case than the completion. This has no affect on the Console, since
34336         it matches completions case-sensitively. This is used in the up-coming
34337         Database Query view for words like "SELECT" and "INSERT".
34338
34339         Reviewed by Adam Roben.
34340
34341         * page/inspector/TextPrompt.js:
34342         (WebInspector.TextPrompt.prototype.clearAutoComplete): Restore the user typed
34343         text in the original DOM range that complete() saved away.
34344         (WebInspector.TextPrompt.prototype.complete): Store away the fullWordRange
34345         and it's text content so clearAutoComplete can restore it.
34346
34347 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34348
34349         Don't trim whitespace when looking for the current match, this prevents
34350         tabbing through matches in the up-coming Database Query view.
34351
34352         Reviewed by Adam Roben.
34353
34354         * page/inspector/TextPrompt.js: Removed a trimTrailingWhitespace() call.
34355
34356 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34357
34358         Factor out the Console text completion and command history into
34359         a new TextPrompt object. This TextPrompt object will be used later
34360         other parts of the Inspector that need text completion and history.
34361         Not functionality changed, just moved code around.
34362
34363         Reviewed by Adam Roben.
34364
34365         * WebCore.vcproj/WebCore.vcproj: Add TextPrompt.js.
34366         * page/inspector/Console.js: Call the new prompt object and
34367           delete all the code that moved.
34368         * page/inspector/TextPrompt.js: Added. Moved code from Console.js.
34369         * page/inspector/WebKit.qrc: Add TextPrompt.js.
34370         * page/inspector/inspector.html: Add TextPrompt.js.
34371
34372 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34373
34374         Makes setting shouldRefreshChildren on a TreeElement perform the refresh
34375         immediately if the element is already expanded.
34376
34377         Reviewed by Adam Roben.
34378
34379         * page/inspector/treeoutline.js:
34380         (TreeElement.prototype.get shouldRefreshChildren): Return this._shouldRefreshChildren.
34381         (TreeElement.prototype.set shouldRefreshChildren): If changing to true, and
34382         already expanded,
34383         call expand again to trigger the refresh. Sets this._shouldRefreshChildren.
34384         (TreeElement.prototype._attach): Check for this._shouldRefreshChildren.
34385         (TreeElement.prototype.expand): Ditto.
34386
34387 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
34388
34389         Reviewed by Beth.
34390
34391         Some clean up of AccessibilityObject:
34392         - Use existing isImage() in more places.
34393         - Use existing isTextControl() in more places.
34394         - Added isRenderImage(). Check this before casting to RenderImage,
34395           since other, non-RenderImage derived RenderObjects (e.g.
34396           RenderListMarker) can return true for isImage().
34397         - Fix two copy/paste errors with improper semicolons.
34398
34399         * page/AccessibilityObject.cpp:
34400         (WebCore::AccessibilityObject::isImageButton): Use isImage().
34401         (WebCore::AccessibilityObject::isRenderImage): Added.
34402         (WebCore::AccessibilityObject::isAnchor): Use isImage().
34403         (WebCore::AccessibilityObject::isAttachment): Same.
34404         (WebCore::AccessibilityObject::accessibilityDescription): Same.
34405         (WebCore::AccessibilityObject::accessibilityIsIgnored): Use
34406         isRenderImage() instead of isImage().
34407         (WebCore::AccessibilityObject::url): Use isImage().
34408         (WebCore::AccessibilityObject::textControl): Remove improper semicolon, 
34409         and use isTextControl().
34410         (WebCore::AccessibilityObject::textMarkerForIndex): Same.
34411         (WebCore::AccessibilityObject::indexForTextMarker): Use isTextControl().
34412         (WebCore::AccessibilityObject::doAXRangeForLine): Same.
34413         (WebCore::AccessibilityObject::doAXRangeForIndex): Same
34414         (WebCore::AccessibilityObject::doAXStringForRange): Same.
34415         (WebCore::AccessibilityObject::roleValue):  Use isImage().
34416         (WebCore::AccessibilityObject::addChildren): Use isRenderImage().
34417         * page/AccessibilityObject.h:
34418
34419 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34420
34421         Fixes a null exception when hovering in some areas of the DOM tree.
34422
34423         Reviewed by Adam Roben.
34424
34425         * page/inspector/treeoutline.js:
34426         (TreeOutline.prototype.treeElementFromPoint): Check listNode for null/undefined
34427         before accessing any properties. Return null if listNode is null.
34428
34429 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34430
34431         Changing WebInspector.currentFocusElement to/from an input element
34432         does not change the actual focus of that input element. You see this
34433         in the search field.
34434
34435         Reviewed by Adam Roben.
34436
34437         * page/inspector/inspector.js:
34438         (WebInspector.set currentFocusElement): Call blur and focus if the
34439         node implements them.
34440
34441 2008-04-04  David Hyatt  <hyatt@apple.com>
34442
34443         Improve the background size heuristic for SVGs used as background images with no intrinsic size specified.
34444         Treat them as having a background-size of 100%.  This means their maximal size will be the box established
34445         by background-origin.
34446
34447         Reviewed by Beth
34448
34449         * rendering/RenderBox.cpp:
34450         (WebCore::RenderBox::calculateBackgroundSize):
34451
34452 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34453
34454         Correctly show DOCTYPE in the breadcrumbs and match the CSS rules
34455         from view-source.css for the DOCTYPE in the DOM tree.
34456
34457         Reviewed by Adam Roben.
34458
34459         * css/view-source.css: Add and correct comments about keeping
34460         in-sync with inspector.css.
34461         * page/inspector/ElementsPanel.js:
34462         (WebInspector.DocumentPanel.prototype.updateBreadcrumb):
34463         Add a case for Node.DOCUMENT_TYPE_NODE.
34464         * page/inspector/inspector.css: Add a rule for .webkit-html-doctype.
34465         * page/inspector/utilities.js:
34466         (nodeTitleInfo): Use the webkit-html-doctype class for nodes
34467         with Node.DOCUMENT_TYPE_NODE.
34468
34469 2008-04-04  Dan Bernstein  <mitz@apple.com>
34470
34471         - try to fix the Tiger build
34472
34473         * icu/unicode/uscript.h: Copied from WebKit/mac/icu/unicode/uscript.h.
34474
34475 2008-04-04  Adam Roben  <aroben@apple.com>
34476
34477         Copy icu/ to PrivateHeaders for WebKit's benefit
34478
34479         Rubberstamped by Tim Hatcher.
34480
34481         * WebCore.xcodeproj/project.pbxproj: Renamed the Copy Forwarding
34482         Headers build phase to Copy Forwarding and ICU Headers, and added the
34483         icu/ directory to it.
34484
34485 2008-04-04  Adam Roben  <aroben@apple.com>
34486
34487         Fix <rdar://problem/5804776> Would like to use WebCore's
34488         ForwardingHeaders in WebKit without manually creating copies
34489
34490         Patch by Tim Hatcher, typed by me.
34491
34492         * WebCore.xcodeproj/project.pbxproj: Added a new build phase, Copy
34493         Forwarding Headers, that copies the ForwardingHeaders directory to
34494         WebCore's PrivateHeaders directory.
34495
34496 2008-04-04  Ada Chan  <adachan@apple.com>
34497
34498         Changed the signature of imageTitleForFilename so we can pass in the width
34499         and height as integers.
34500
34501         Reviewed by Dan.
34502
34503         * page/mac/WebCoreViewFactory.h:
34504         * platform/mac/LocalizedStringsMac.mm:
34505         (WebCore::imageTitle):
34506
34507 2008-04-03  Dan Bernstein  <mitz@apple.com>
34508
34509         - Windows build fix
34510
34511         * platform/graphics/win/FontCacheWin.cpp:
34512         (WebCore::matchImprovingEnumProc):
34513
34514 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
34515
34516         Fix PlatformGradient so that it's a pointer on all platforms.
34517
34518         * platform/graphics/Gradient.h:
34519
34520 2008-04-03  Dan Bernstein  <mitz@apple.com>
34521
34522         - 64-bit build fix
34523
34524         * platform/mac/WebFontCache.mm:
34525         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
34526
34527 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
34528
34529         wx build fix. Add stubs for gradient class platform functions.
34530
34531         * platform/graphics/wx/GradientWx.cpp: Added.
34532         (WebCore::Gradient::platformDestroy):
34533         (WebCore::Gradient::platformGradient):
34534
34535 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
34536
34537         Reviewed by Dan Bernstein.
34538
34539         Refactor Gradient.h to have the same API on platforms 
34540         without a gradient class.
34541
34542         * platform/graphics/Gradient.h:
34543
34544 2008-04-03  Dan Bernstein  <mitz@apple.com>
34545
34546         - Qt build fix
34547
34548         * platform/graphics/qt/FontQt.cpp:
34549         (WebCore::Font::Font):
34550
34551 2008-04-03  Dan Bernstein  <mitz@apple.com>
34552
34553         - Tiger build fix
34554
34555         * platform/mac/WebFontCache.mm:
34556         * rendering/RenderThemeMac.mm:
34557
34558 2008-04-03  Dan Bernstein  <mitz@apple.com>
34559
34560         - Gtk build fix
34561
34562         * platform/graphics/gtk/FontPlatformData.h:
34563         (WebCore::FontPlatformData::size):
34564         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
34565         (WebCore::FontPlatformData::FontPlatformData):
34566         * platform/graphics/gtk/FontPlatformDataPango.cpp:
34567         (WebCore::FontPlatformData::FontPlatformData):
34568
34569 2008-04-03  Dan Bernstein  <mitz@apple.com>
34570
34571         - project file updates in preparation for build fixes
34572
34573         * GNUmakefile.am:
34574         * WebCore.pro:
34575         * WebCoreSources.bkl:
34576
34577 2008-04-03  Nicholas Shanks  <webkit@nickshanks.com>
34578
34579         Updated by Dan Bernstein. Reviewed by Dave Hyatt.
34580
34581         - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=6484
34582           font-weight does not properly support graded weights
34583
34584         Tests to come: <http://bugs.webkit.org/show_bug.cgi?id=18306>
34585
34586         Build fixes for platforms other than Mac and Windows to come.
34587
34588         * WebCore.vcproj/WebCore.vcproj: Added FontDescription.cpp.
34589
34590         * WebCore.xcodeproj/project.pbxproj: Ditto.
34591
34592         * css/CSSComputedStyleDeclaration.cpp:
34593         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to
34594         return additional weight value keywords 100, 200, 300, 500, 600, 800
34595         and 900.
34596
34597         * css/CSSFontSelector.cpp:
34598         (WebCore::hashForFont): Changed the bold parameter into a weight
34599         parameter and added the weight to the string to be hashed.
34600         (WebCore::CSSFontSelector::addFontFaceRule): Changed to apply all CSS
34601         weight values to the font description.
34602         (WebCore::CSSFontSelector::getFontData): Updated the fallback logic to
34603         go through all weights equal or lighter from the desired weight. For
34604         SVG, to also consider heavier weights.
34605
34606         * css/CSSParser.cpp:
34607         (WebCore::CSSParser::parseValue): Cleaned up parsing of the font-weight
34608         property.
34609
34610         * css/CSSStyleSelector.cpp:
34611         (WebCore::CSSStyleSelector::applyProperty): Changed to apply all CSS
34612         weight values to the font description.
34613
34614         * platform/graphics/Font.h:
34615         (WebCore::Font::weight): Updated for the change to
34616         FontDescription::weight().
34617
34618         * platform/graphics/FontCache.cpp:
34619         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Replaced
34620         the bold component of the key with a weight component.
34621         (WebCore::FontPlatformDataCacheKey::operator==): Updated for the above.
34622         (WebCore::computeHash): Ditto.
34623         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue): Removed
34624         unnecessary parameters.
34625         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue): Ditto.
34626         (WebCore::FontCache::getCachedFontPlatformData): Updated for the change
34627         in FontPlatformDataCacheKey.
34628
34629         * platform/graphics/FontDescription.cpp: Added.
34630         (WebCore::FontDescription::lighterWeight): Added. Returns a lighter CSS
34631         font-weight value if there is one, or the lightest value.
34632         (WebCore::FontDescription::bolderWeight): Added. Returns a heavier CSS
34633         font-weight value if there is one, or the heaviest value.
34634
34635         * platform/graphics/FontDescription.h:
34636         (WebCore::FontWeight): Added this enumeration.
34637         (WebCore::FontDescription::FontDescription):
34638         (WebCore::FontDescription::bold): Removed.
34639         (WebCore::FontDescription::weight): Changed to return a FontWeight.
34640         (WebCore::FontDescription::setBold): Removed.
34641         (WebCore::FontDescription::setWeight): Changed to take a FontWeight.
34642
34643         * platform/graphics/mac/FontCacheMac.mm:
34644         (WebCore::toAppKitFontWeight): Added. Maps a FontWeight to the AppKit
34645         font weight scale of 0-15.
34646         (WebCore::isAppKitFontWeightBold): Added.
34647         (WebCore::FontCache::getFontDataForCharacters): Changed to use a weight
34648         instead of the bold trait for custom fonts, and to decide whether to
34649         synthesize bold based on the weights rather than the bold trait.
34650         (WebCore::FontCache::fontExists): Updated for the change in
34651         WebFontCache .
34652         (WebCore::FontCache::createFontPlatformData): Ditto. Also changed to
34653         decide whether to synthesize bold based on the weights rather than on
34654         the bold trait.
34655
34656         * platform/graphics/win/FontCacheWin.cpp:
34657         (WebCore::toGDIFontWeight): Added. Maps a FontWeight to a GDI font
34658         weight constant.
34659         (WebCore::isGDIFontWeightBold): Added.
34660         (WebCore::adjustedGDIFontWeight): Added.
34661         (WebCore::MatchImprovingProcData::MatchImprovingProcData): Added this
34662         data structure for use by the following callback.
34663         (WebCore::matchImprovingEnumProc): Added. The logic of this method is a
34664         simplification of the betterChoice() predicate in WebFontCache.mm, which
34665         considers only the italic trait and the weight.
34666         (WebCore::createGDIFont): Added. Similarly to
34667         +[WebFontCache fontWithFamily:traits:weight:size:], this function
34668         finds the closest match in the family for the desired italic bit and
34669         weight.
34670         (WebCore::FontCache::fontExists): Changed to call createGDIFont().
34671         (WebCore::FontCache::createFontPlatformData): Ditto. Also changed to
34672         compute the synthetic bold and synthetic italic flags based on weights
34673         and italic bits and pass them to the FontPlatformData constructor.
34674
34675         * platform/graphics/win/FontPlatformDataWin.cpp:
34676         (WebCore::FontPlatformData::FontPlatformData): Changed the bold and
34677         oblique parameters to mean whether these should be synthesized and
34678         removed the font enumeration code that used to decide that.
34679
34680         * platform/graphics/win/SimpleFontDataWin.cpp:
34681         (WebCore::SimpleFontData::smallCapsFontData): Changed to pass the
34682         synthetic bold and oblique flags from the full-size FontPlatformData to
34683         the FontPlatformData constructor for the small caps font.
34684
34685         * platform/mac/WebCoreTextRenderer.h:
34686         * platform/mac/WebCoreTextRenderer.mm:
34687         (WebCoreFindFont): Added a weight parameter, which is passed to
34688         +[WebFontCache fontWithFamily:traits:weight:size:].
34689
34690         * platform/mac/WebFontCache.h:
34691         * platform/mac/WebFontCache.mm:
34692         (acceptableChoice):
34693         (betterChoice): Changed to ignore the bold trait. Changed the logic for
34694         deciding based on weights to prefer the font whose weight is closer to
34695         the desired one, or, if both candidates' weights are the same distance
34696         from the desired weight, the one that is more "off-center". 
34697         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to
34698         check for weight when matching by full name. Changed to pass
34699         the actual desired weight instead of the constant 5 to
34700         acceptableChoice() and betterChoice(). Changed to use weights to decide
34701         whether to synthesize bold.
34702         (+[WebFontCache fontWithFamily:traits:weight:size:]): Added a weight
34703         parameter, which is passed to the internal method.
34704
34705         * platform/win/PopupMenuWin.cpp:
34706         (WebCore::PopupMenu::paint): Updated for the change to FontDescription.
34707
34708         * rendering/RenderListBox.cpp:
34709         (WebCore::RenderListBox::updateFromElement): Ditto.
34710         (WebCore::RenderListBox::paintItemForeground): Ditto.
34711
34712         * rendering/RenderThemeMac.mm:
34713         (WebCore::toFontWeight): Added. Maps the AppKit font weight range of
34714         0-15 to the FontWeight range.
34715         (WebCore::RenderThemeMac::systemFont): Updated for the change to
34716         FontDescription.
34717
34718         * rendering/RenderThemeSafari.cpp:
34719         (WebCore::RenderThemeSafari::systemFont): Ditto.
34720
34721 2008-04-03  Dan Bernstein  <mitz@apple.com>
34722
34723         - another Gtk build fix attempt
34724
34725         * platform/graphics/cairo/GradientCairo.cpp:
34726         (WebCore::Gradient::platformDestroy):
34727
34728 2008-04-03  Dan Bernstein  <mitz@apple.com>
34729
34730         - attempted Gtk build fix
34731
34732         * GNUmakefile.am:
34733
34734 2008-04-03  Dan Bernstein  <mitz@apple.com>
34735
34736         - attempted Qt build fix
34737
34738         * platform/graphics/qt/GradientQt.cpp:
34739         (WebCore::Gradient::platformDestroy):
34740
34741 2008-04-03  Dan Bernstein  <mitz@apple.com>
34742
34743         - attempted Gtk build fix
34744
34745         * html/CanvasRenderingContext2D.cpp:
34746         (WebCore::CanvasRenderingContext2D::stroke):
34747
34748 2008-04-03  Dan Bernstein  <mitz@apple.com>
34749
34750         - attempted Qt build fix
34751
34752         * html/CanvasRenderingContext2D.cpp:
34753         (WebCore::CanvasRenderingContext2D::stroke):
34754
34755 2008-04-03  Beth Dakin  <bdakin@apple.com>
34756
34757         Reviewed by Alice.
34758
34759         Build fix for non-Macs.
34760
34761         * page/AXObjectCache.h:
34762         (WebCore::AXObjectCache::isIDinUse):
34763
34764 2008-04-03  Brent Fulgham  <bfulgham@gmail.com>
34765
34766         Reviewed by Darin.
34767
34768         Correct build error due to incomplete merging of changes to project
34769         files from Issue 17985.  This small project file patch corrects
34770         the build issue (see http://bugs.webkit.org/show_bug.cgi?id=18195).
34771
34772         * WebCore.vcproj/WebCore.vcproj:
34773
34774 2008-04-02  Beth Dakin  <bdakin@apple.com>
34775
34776         Reviewed by Hyatt.
34777
34778         This patch eliminates AccessibilityObjectMac. All of the platform-
34779         specific code is now in AccessibilityObjectWrapper.
34780
34781         * WebCore.xcodeproj/project.pbxproj:
34782         * dom/Element.h:
34783         (WebCore::Element::isPasswordField):
34784         * html/HTMLInputElement.h:
34785         (WebCore::HTMLInputElement::isPasswordField):
34786         * page/AXObjectCache.h:
34787         (WebCore::AXObjectCache::isIDinUse):
34788         * page/AccessibilityObject.cpp:
34789         (WebCore::AccessibilityObject::isPasswordField):
34790         (WebCore::AccessibilityObject::press):
34791         (WebCore::AccessibilityObject::widgetForAttachmentView):
34792         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
34793         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
34794         * page/AccessibilityObject.h:
34795         (WebCore::AccessibilityObject::areaElement):
34796         (WebCore::AccessibilityObject::setWrapper):
34797         * page/mac/AXObjectCacheMac.mm:
34798         * page/mac/AccessibilityObjectMac.mm: Removed.
34799         * page/mac/AccessibilityObjectWrapper.h:
34800         * page/mac/AccessibilityObjectWrapper.mm:
34801         (-[AccessibilityObjectWrapper attachmentView]):
34802         (textMarkerForVisiblePosition):
34803         (visiblePositionForTextMarker):
34804         (visiblePositionForStartOfTextMarkerRange):
34805         (visiblePositionForEndOfTextMarkerRange):
34806         (textMarkerRangeFromMarkers):
34807         (AXAttributeStringSetFont):
34808         (CreateCGColorIfDifferent):
34809         (AXAttributeStringSetColor):
34810         (AXAttributeStringSetNumber):
34811         (AXAttributeStringSetStyle):
34812         (blockquoteLevel):
34813         (AXAttributeStringSetBlockquoteLevel):
34814         (AXAttributeStringSetSpelling):
34815         (AXAttributeStringSetHeadingLevel):
34816         (AXLinkElementForNode):
34817         (AXAttributeStringSetElement):
34818         (AXAttributedStringAppendText):
34819         (nsStringForReplacedNode):
34820         (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
34821         (textMarkerRangeFromVisiblePositions):
34822         (-[AccessibilityObjectWrapper accessibilityActionNames]):
34823         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
34824         (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
34825         (-[AccessibilityObjectWrapper textMarkerRangeForSelection]):
34826         (-[AccessibilityObjectWrapper position]):
34827         (createAccessibilityRoleMap):
34828         (RoleEntry::):
34829         (roleValueToNSString):
34830         (-[AccessibilityObjectWrapper role]):
34831         (-[AccessibilityObjectWrapper subrole]):
34832         (-[AccessibilityObjectWrapper roleDescription]):
34833         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
34834         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
34835         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
34836         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
34837         (-[AccessibilityObjectWrapper doAXRTFForRange:]):
34838         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
34839         (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
34840         * platform/ScrollView.h:
34841         * platform/mac/ScrollViewMac.mm:
34842         (WebCore::ScrollView::viewRectToScreen):
34843         (WebCore::ScrollView::absolutePointToView):
34844
34845 2008-04-03  David Hyatt  <hyatt@apple.com>
34846
34847         Create a new cross-platform Gradient abstraction and make CanvasGradient wrap it.  This first
34848         step just cleans up CanvasGradient.  The code that calls it remains ifdef'd however.
34849
34850         Reviewed by olliej
34851
34852         * WebCore.pro:
34853         * WebCore.vcproj/WebCore.vcproj:
34854         * WebCore.xcodeproj/project.pbxproj:
34855         * WebCoreSources.bkl:
34856         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
34857         (WebCore::toJS):
34858         * html/CanvasGradient.cpp:
34859         (WebCore::CanvasGradient::CanvasGradient):
34860         * html/CanvasGradient.h:
34861         (WebCore::CanvasGradient::gradient):
34862         (WebCore::CanvasGradient::addColorStop):
34863         (WebCore::CanvasGradient::getColor):
34864         * html/CanvasRenderingContext2D.cpp:
34865         (WebCore::CanvasRenderingContext2D::fill):
34866         (WebCore::CanvasRenderingContext2D::stroke):
34867         (WebCore::CanvasRenderingContext2D::fillRect):
34868         * html/CanvasStyle.h:
34869         (WebCore::CanvasStyle::canvasGradient):
34870         * platform/graphics/Gradient.cpp: Added.
34871         (WebCore::Gradient::Gradient):
34872         (WebCore::Gradient::~Gradient):
34873         (WebCore::Gradient::addColorStop):
34874         (WebCore::compareStops):
34875         (WebCore::Gradient::getColor):
34876         (WebCore::Gradient::findStop):
34877         * platform/graphics/Gradient.h: Added.
34878         (WebCore::Gradient::ColorStop::ColorStop):
34879         (WebCore::Gradient::platformInit):
34880         * platform/graphics/cairo/GradientCairo.cpp: Added.
34881         (WebCore::Gradient::platformDestroy):
34882         (WebCore::Gradient::platformGradient):
34883         * platform/graphics/cg/GradientCG.cpp: Added.
34884         (WebCore::Gradient::platformDestroy):
34885         (WebCore::gradientCallback):
34886         (WebCore::Gradient::platformGradient):
34887         * platform/graphics/qt/GradientQt.cpp: Added.
34888         (WebCore::Gradient::platformDestroy):
34889         (WebCore::Gradient::platformGradient):
34890
34891 2008-04-03  Simon Hausmann  <hausmann@webkit.org>
34892
34893         Reviewed by Mark Rowe.
34894
34895         Roll out r31599 and r31605 again after discussion with Mark Rowe.
34896
34897         * history/HistoryItem.cpp:
34898         * loader/FrameLoader.cpp:
34899         (WebCore::FrameLoader::startIconLoader):
34900         * loader/icon/IconDatabase.cpp:
34901         (WebCore::IconDatabase::iconForPageURL):
34902         (WebCore::IconDatabase::readIconForPageURLFromDisk):
34903         * loader/icon/IconDatabase.h:
34904         * loader/icon/IconDatabaseNone.cpp:
34905
34906 2008-04-03  David Hyatt  <hyatt@apple.com>
34907
34908         Fix for bug 18194, resizable text fields get messed up when resizing in the presence of zoom.
34909
34910         Reviewed by adele
34911
34912         * rendering/RenderLayer.cpp:
34913         (WebCore::RenderLayer::resize):
34914
34915 2008-04-03  Oliver Hunt  <oliver@apple.com>
34916
34917         Rollout r31566 as there were a few issues i missed during review (thanks to antti for pointing them out)
34918
34919         * dom/Element.h:
34920         * dom/NamedAttrMap.h:
34921         * rendering/SVGRootInlineBox.cpp:
34922         (WebCore::SVGRootInlineBox::buildLayoutInformation):
34923         (WebCore::SVGRootInlineBox::buildTextChunks):
34924         * svg/SVGAElement.h:
34925         (WebCore::SVGAElement::contextElement):
34926         * svg/SVGAltGlyphElement.h:
34927         (WebCore::SVGAltGlyphElement::contextElement):
34928         * svg/SVGAnimateColorElement.h:
34929         * svg/SVGAnimateElement.h:
34930         * svg/SVGAnimateMotionElement.h:
34931         * svg/SVGAnimateTransformElement.h:
34932         * svg/SVGAnimatedTemplate.h:
34933         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
34934         (WebCore::lookupOrCreateWrapper):
34935         * svg/SVGAnimationElement.h:
34936         * svg/SVGCircleElement.h:
34937         (WebCore::SVGCircleElement::contextElement):
34938         * svg/SVGClipPathElement.h:
34939         (WebCore::SVGClipPathElement::contextElement):
34940         * svg/SVGComponentTransferFunctionElement.cpp:
34941         * svg/SVGComponentTransferFunctionElement.h:
34942         * svg/SVGCursorElement.cpp:
34943         (WebCore::SVGCursorElement::SVGCursorElement):
34944         * svg/SVGCursorElement.h:
34945         (WebCore::SVGCursorElement::contextElement):
34946         * svg/SVGDefsElement.h:
34947         (WebCore::SVGDefsElement::contextElement):
34948         * svg/SVGElement.cpp:
34949         * svg/SVGElement.h:
34950         (WebCore::SVGElement::svgAttributeChanged):
34951         * svg/SVGEllipseElement.cpp:
34952         (WebCore::SVGEllipseElement::SVGEllipseElement):
34953         * svg/SVGEllipseElement.h:
34954         (WebCore::SVGEllipseElement::contextElement):
34955         * svg/SVGExternalResourcesRequired.h:
34956         * svg/SVGFEBlendElement.h:
34957         * svg/SVGFEColorMatrixElement.cpp:
34958         * svg/SVGFEColorMatrixElement.h:
34959         * svg/SVGFEComponentTransferElement.h:
34960         * svg/SVGFECompositeElement.h:
34961         * svg/SVGFEDiffuseLightingElement.h:
34962         * svg/SVGFEDisplacementMapElement.h:
34963         * svg/SVGFEFloodElement.h:
34964         * svg/SVGFEGaussianBlurElement.h:
34965         * svg/SVGFEImageElement.cpp:
34966         * svg/SVGFEImageElement.h:
34967         (WebCore::SVGFEImageElement::contextElement):
34968         * svg/SVGFELightElement.h:
34969         * svg/SVGFEMergeElement.h:
34970         * svg/SVGFEMergeNodeElement.h:
34971         * svg/SVGFEOffsetElement.h:
34972         * svg/SVGFESpecularLightingElement.h:
34973         * svg/SVGFETileElement.h:
34974         * svg/SVGFETurbulenceElement.h:
34975         * svg/SVGFilterElement.cpp:
34976         (WebCore::SVGFilterElement::SVGFilterElement):
34977         * svg/SVGFilterElement.h:
34978         (WebCore::SVGFilterElement::contextElement):
34979         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
34980         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
34981         * svg/SVGFilterPrimitiveStandardAttributes.h:
34982         * svg/SVGFitToViewBox.cpp:
34983         * svg/SVGFitToViewBox.h:
34984         * svg/SVGFontElement.h:
34985         * svg/SVGForeignObjectElement.cpp:
34986         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
34987         * svg/SVGForeignObjectElement.h:
34988         (WebCore::SVGForeignObjectElement::contextElement):
34989         * svg/SVGGElement.h:
34990         (WebCore::SVGGElement::contextElement):
34991         * svg/SVGGradientElement.cpp:
34992         * svg/SVGGradientElement.h:
34993         * svg/SVGImageElement.cpp:
34994         (WebCore::SVGImageElement::SVGImageElement):
34995         * svg/SVGImageElement.h:
34996         (WebCore::SVGImageElement::contextElement):
34997         * svg/SVGLength.cpp:
34998         * svg/SVGLength.h:
34999         * svg/SVGLengthList.cpp:
35000         * svg/SVGLengthList.h:
35001         * svg/SVGLineElement.cpp:
35002         (WebCore::SVGLineElement::SVGLineElement):
35003         * svg/SVGLineElement.h:
35004         (WebCore::SVGLineElement::contextElement):
35005         * svg/SVGLinearGradientElement.cpp:
35006         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
35007         (WebCore::SVGLinearGradientElement::collectGradientProperties):
35008         * svg/SVGLinearGradientElement.h:
35009         * svg/SVGMPathElement.h:
35010         * svg/SVGMarkerElement.cpp:
35011         (WebCore::SVGMarkerElement::SVGMarkerElement):
35012         * svg/SVGMarkerElement.h:
35013         (WebCore::SVGMarkerElement::contextElement):
35014         * svg/SVGMaskElement.cpp:
35015         (WebCore::SVGMaskElement::SVGMaskElement):
35016         * svg/SVGMaskElement.h:
35017         * svg/SVGNumberList.cpp:
35018         * svg/SVGNumberList.h:
35019         * svg/SVGPathElement.h:
35020         (WebCore::SVGPathElement::contextElement):
35021         * svg/SVGPatternElement.cpp:
35022         (WebCore::SVGPatternElement::SVGPatternElement):
35023         (WebCore::SVGPatternElement::collectPatternProperties):
35024         * svg/SVGPatternElement.h:
35025         * svg/SVGPolyElement.h:
35026         (WebCore::SVGPolyElement::contextElement):
35027         * svg/SVGPreserveAspectRatio.cpp:
35028         * svg/SVGPreserveAspectRatio.h:
35029         * svg/SVGRadialGradientElement.cpp:
35030         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
35031         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
35032         (WebCore::SVGRadialGradientElement::collectGradientProperties):
35033         * svg/SVGRadialGradientElement.h:
35034         * svg/SVGRectElement.cpp:
35035         (WebCore::SVGRectElement::SVGRectElement):
35036         * svg/SVGRectElement.h:
35037         (WebCore::SVGRectElement::contextElement):
35038         * svg/SVGSVGElement.cpp:
35039         (WebCore::SVGSVGElement::SVGSVGElement):
35040         (WebCore::SVGSVGElement::currentView):
35041         * svg/SVGSVGElement.h:
35042         * svg/SVGScriptElement.h:
35043         (WebCore::SVGScriptElement::contextElement):
35044         * svg/SVGSetElement.h:
35045         * svg/SVGStyledElement.h:
35046         * svg/SVGStyledTransformableElement.cpp:
35047         * svg/SVGStyledTransformableElement.h:
35048         * svg/SVGSwitchElement.h:
35049         (WebCore::SVGSwitchElement::contextElement):
35050         * svg/SVGSymbolElement.h:
35051         (WebCore::SVGSymbolElement::contextElement):
35052         * svg/SVGTRefElement.h:
35053         (WebCore::SVGTRefElement::contextElement):
35054         * svg/SVGTSpanElement.h:
35055         * svg/SVGTextContentElement.cpp:
35056         (WebCore::SVGTextContentElement::SVGTextContentElement):
35057         * svg/SVGTextContentElement.h:
35058         * svg/SVGTextElement.cpp:
35059         * svg/SVGTextElement.h:
35060         (WebCore::SVGTextElement::contextElement):
35061         * svg/SVGTextPathElement.cpp:
35062         (WebCore::SVGTextPathElement::SVGTextPathElement):
35063         * svg/SVGTextPathElement.h:
35064         (WebCore::SVGTextPathElement::contextElement):
35065         * svg/SVGTextPositioningElement.cpp:
35066         * svg/SVGTextPositioningElement.h:
35067         * svg/SVGTransformList.cpp:
35068         * svg/SVGTransformList.h:
35069         * svg/SVGURIReference.h:
35070         * svg/SVGUseElement.cpp:
35071         (WebCore::SVGUseElement::SVGUseElement):
35072         * svg/SVGUseElement.h:
35073         (WebCore::SVGUseElement::contextElement):
35074         * svg/SVGViewElement.h:
35075         (WebCore::SVGViewElement::contextElement):
35076         * svg/SVGViewSpec.cpp:
35077         * svg/SVGViewSpec.h:
35078
35079 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
35080
35081         Reviewed by Simon.
35082
35083         * Change IconDatabase::iconForPageURL to return more information. E.g. if
35084         an image has been found, or if the loading of an image has been scheduled.
35085         * Update FrameLoader to use another method to trigger reading from disk
35086         * Update the QWebFrame and QWebSettings
35087
35088         * history/HistoryItem.cpp:
35089         * loader/FrameLoader.cpp:
35090         * loader/icon/IconDatabase.cpp:
35091         (WebCore::IconDatabase::iconForPageURL):
35092         (WebCore::IconDatabase::readIconForPageURLFromDisk):
35093         (WebCore::IconDatabase::iconURLForPageURL):
35094         (WebCore::IconDatabase::defaultIcon):
35095         * loader/icon/IconDatabase.h:
35096
35097 2008-04-03  Dan Bernstein  <mitz@apple.com>
35098
35099         - Mac build fix
35100
35101         * WebCore.base.exp:
35102
35103 2008-04-03  Simon Hausmann  <hausmann@webkit.org>
35104
35105         Fix the build when building without icondatabase.
35106
35107         * loader/icon/IconDatabaseNone.cpp: Fix the function signature, no
35108         bool cache anymore.
35109
35110 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
35111
35112         Reviewed by Simon.
35113
35114         * Remove the unused 'cache' parameter
35115
35116         * loader/icon/IconDatabase.cpp:
35117         (WebCore::IconDatabase::iconForPageURL):
35118         * loader/icon/IconDatabase.h:
35119
35120 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
35121
35122         Reviewed by Simon.
35123
35124         * Add WebCore/loader/icon to the DEPENDPATH as well
35125
35126         * WebCore.pro:
35127
35128 2008-04-02  Brady Eidson  <beidson@apple.com>
35129
35130         Reviewed by Mitz Pettel
35131
35132         <rdar://problem/5838347> and http://bugs.webkit.org/show_bug.cgi?id=11839
35133         Webarchive fails to save CSS files in @import statements
35134
35135         * css/CSSStyleSheet.cpp:
35136         (WebCore::CSSStyleSheet::addSubresourceURLStrings): Recursively add the URL each @import rule under the current style sheet.
35137         * css/CSSStyleSheet.h:
35138         * css/StyleSheet.h:
35139         (WebCore::StyleSheet::addSubresourceURLStrings):
35140
35141         * html/HTMLLinkElement.cpp:
35142         (WebCore::HTMLLinkElement::getSubresourceAttributeStrings): Add the linked URL as well as all @import
35143           rules rooted at the linked stylesheet.
35144
35145         * html/HTMLStyleElement.cpp:
35146         (WebCore::HTMLStyleElement::getSubresourceAttributeStrings): Walk all @import rules rooted at this
35147           stylesheet to add to the list.
35148         * html/HTMLStyleElement.h:
35149
35150 2008-04-02  Mark Rowe  <mrowe@apple.com>
35151
35152         Reviewed by Oliver Hunt.
35153
35154         Ensure that debug symbols are generated for x86_64 and ppc64 builds.
35155
35156         * Configurations/Base.xcconfig:
35157
35158 2008-04-02  Christian Persch  <chpe@gnome.org>
35159
35160         Reviewed by Alp Toker.
35161
35162         GTK+/Pango font backend build fix.
35163
35164         * platform/graphics/gtk/FontCustomPlatformDataPango.cpp:
35165         (WebCore::FontCustomPlatformData::fontPlatformData):
35166
35167 2008-04-02  Eric Seidel  <eric@webkit.org>
35168
35169         No review, build fix only.
35170
35171         Speculative build fix for no-svg build.
35172         Use #if ENABLE(SVG) instead of #if ENABLE_SVG
35173
35174         * css/CSSMutableStyleDeclaration.cpp:
35175         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
35176
35177 2008-04-02  Adam Roben  <aroben@apple.com>
35178
35179         Rename instances of ExecState from "state" to "exec" in
35180         JavaScriptDebugServer
35181
35182         Rename requested by Darin Adler.
35183
35184         * page/JavaScriptDebugServer.cpp:
35185
35186 2008-04-02  Adam Roben  <aroben@apple.com>
35187
35188         Make it possible for JavaScriptDebugListeners to listen to specific Pages
35189
35190         JavaScriptDebugServer now has overloads of its
35191         addListener/removeListener methods that take a Page* to indicate for
35192         which Page the JavaScriptDebugListener wishes to receive messages.
35193
35194         Reviewed by Darin.
35195
35196         * page/JavaScriptDebugServer.cpp:
35197         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all
35198         ListenerSets being held in m_pageListenersMap.
35199         (WebCore::JavaScriptDebugServer::addListener): Changed to call
35200         hasListeners().
35201         (WebCore::JavaScriptDebugServer::removeListener): Ditto.
35202         (WebCore::JavaScriptDebugServer::addListener): Added. This overload
35203         takes a Page* and puts the listener in the appropriate ListenerSet
35204         within m_pageListenersMap. The ListenerSet is allocated and added to
35205         m_pageListenersMap when its first listener is added.
35206         (WebCore::JavaScriptDebugServer::removeListener): Added. This overload
35207         takes a Page* and removes the listener from the appropriate
35208         ListenerSet in m_pageListenersMap. The ListenerSet is deleted and
35209         removed from m_pageListenersMap when its last listener is removed.
35210         (WebCore::toPage): Added. Retrieves the parent Page from an ExecState.
35211         (WebCore::JavaScriptDebugServer::sourceParsed): Changed to call
35212         dispatchDidParseSource/dispatchDidFailToParseSource for both the
35213         global listeners and the Page listeners.
35214         (WebCore::dispatchFunctionToListeners): Added. This code was extracted
35215         from the JavaScriptDebugServer method of the same name.
35216         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Call
35217         dispatchFunctionToListeners for both the global listeners and the Page
35218         listeners.
35219         * page/JavaScriptDebugServer.h:
35220           - Added declarations for new methods.
35221           - Made JavaScriptExecutionCallback typedef public so that it could
35222             be used by a helper method.
35223           - Added new m_pageListenersMap member.
35224 2008-04-02  Simon Hausmann  <hausmann@webkit.org>
35225
35226         Fix compilation on case-sensitive file systems.
35227
35228         * svg/SVGGradientElement.h: Include SVGTransformList.h instead of
35229         SVGTRansformlist.h
35230
35231 2008-04-02  Nikolas Zimmermann  <zimmermann@kde.org>
35232
35233         Reviewed by Oliver.
35234
35235         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
35236
35237         SVG Errata states: "All SVG DOM objects that directly correspond to an
35238         attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
35239         means that any changes made to the attribute are immediately reflected in the
35240         corresponding SVG DOM object." (see linked URL on bug report)
35241
35242         Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
35243         element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).
35244
35245         Add a new synchronization layer to handle SVG DOM -> XML changes.
35246
35247         Added Test: svg/custom/svg-xml-dom-sync.html
35248
35249         * dom/Element.h:
35250         * dom/NamedAttrMap.h:
35251         * rendering/SVGRootInlineBox.cpp:
35252         (WebCore::nodeToTextContentElement):
35253         (WebCore::nodeToTextPositioningElement):
35254         (WebCore::SVGRootInlineBox::buildLayoutInformation):
35255         (WebCore::SVGRootInlineBox::buildTextChunks):
35256         * svg/SVGAElement.h:
35257         (WebCore::SVGAElement::contextElement):
35258         * svg/SVGAltGlyphElement.h:
35259         (WebCore::SVGAltGlyphElement::contextElement):
35260         * svg/SVGAnimateColorElement.h:
35261         (WebCore::SVGAnimateColorElement::contextElement):
35262         * svg/SVGAnimateElement.h:
35263         (WebCore::SVGAnimateElement::contextElement):
35264         * svg/SVGAnimateMotionElement.h:
35265         (WebCore::SVGAnimateMotionElement::contextElement):
35266         * svg/SVGAnimateTransformElement.h:
35267         (WebCore::SVGAnimateTransformElement::contextElement):
35268         * svg/SVGAnimatedTemplate.h:
35269         (WebCore::SVGAnimatedTemplate::toString):
35270         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
35271         (WebCore::lookupOrCreateWrapper):
35272         (WebCore::SVGAnimatedAngle::SVGAnimatedAngle):
35273         (WebCore::SVGAnimatedAngle::toString):
35274         (WebCore::SVGAnimatedBoolean::SVGAnimatedBoolean):
35275         (WebCore::SVGAnimatedBoolean::toString):
35276         (WebCore::SVGAnimatedEnumeration::SVGAnimatedEnumeration):
35277         (WebCore::SVGAnimatedEnumeration::toString):
35278         (WebCore::SVGAnimatedInteger::SVGAnimatedInteger):
35279         (WebCore::SVGAnimatedInteger::toString):
35280         (WebCore::SVGAnimatedLength::SVGAnimatedLength):
35281         (WebCore::SVGAnimatedLength::toString):
35282         (WebCore::SVGAnimatedLengthList::SVGAnimatedLengthList):
35283         (WebCore::SVGAnimatedLengthList::toString):
35284         (WebCore::SVGAnimatedNumber::SVGAnimatedNumber):
35285         (WebCore::SVGAnimatedNumber::toString):
35286         (WebCore::SVGAnimatedNumberList::SVGAnimatedNumberList):
35287         (WebCore::SVGAnimatedNumberList::toString):
35288         (WebCore::SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio):
35289         (WebCore::SVGAnimatedPreserveAspectRatio::toString):
35290         (WebCore::SVGAnimatedRect::SVGAnimatedRect):
35291         (WebCore::SVGAnimatedRect::toString):
35292         (WebCore::SVGAnimatedString::SVGAnimatedString):
35293         (WebCore::SVGAnimatedString::toString):
35294         (WebCore::SVGAnimatedTransformList::SVGAnimatedTransformList):
35295         (WebCore::SVGAnimatedTransformList::toString):
35296         (WebCore::SVGAnimatedType::SVGAnimatedType):
35297         * svg/SVGAnimationElement.h:
35298         * svg/SVGCircleElement.h:
35299         (WebCore::SVGCircleElement::contextElement):
35300         * svg/SVGClipPathElement.h:
35301         (WebCore::SVGClipPathElement::contextElement):
35302         * svg/SVGComponentTransferFunctionElement.cpp:
35303         * svg/SVGComponentTransferFunctionElement.h:
35304         * svg/SVGCursorElement.cpp:
35305         (WebCore::SVGCursorElement::SVGCursorElement):
35306         * svg/SVGCursorElement.h:
35307         (WebCore::SVGCursorElement::contextElement):
35308         * svg/SVGDefsElement.h:
35309         (WebCore::SVGDefsElement::contextElement):
35310         * svg/SVGElement.cpp:
35311         (WebCore::SVGElement::getAttribute):
35312         * svg/SVGElement.h:
35313         (LazilyUpdatedType::LazilyUpdatedType):
35314         (LazilyUpdatedType::operator=):
35315         (LazilyUpdatedType::operator==):
35316         (LazilyUpdatedType::operator!=):
35317         (LazilyUpdatedType::operator StoredType):
35318         (WebCore::SVGElement::invokeSVGPropertySynchronizer):
35319         (WebCore::SVGElement::addSVGPropertySynchronizer):
35320         * svg/SVGEllipseElement.cpp:
35321         (WebCore::SVGEllipseElement::SVGEllipseElement):
35322         * svg/SVGEllipseElement.h:
35323         (WebCore::SVGEllipseElement::contextElement):
35324         * svg/SVGExternalResourcesRequired.h:
35325         * svg/SVGFEBlendElement.h:
35326         (WebCore::SVGFEBlendElement::contextElement):
35327         * svg/SVGFEColorMatrixElement.cpp:
35328         * svg/SVGFEColorMatrixElement.h:
35329         (WebCore::SVGFEColorMatrixElement::contextElement):
35330         * svg/SVGFEComponentTransferElement.h:
35331         (WebCore::SVGFEComponentTransferElement::contextElement):
35332         * svg/SVGFECompositeElement.h:
35333         (WebCore::SVGFECompositeElement::contextElement):
35334         * svg/SVGFEDiffuseLightingElement.h:
35335         (WebCore::SVGFEDiffuseLightingElement::contextElement):
35336         * svg/SVGFEDisplacementMapElement.h:
35337         (WebCore::SVGFEDisplacementMapElement::contextElement):
35338         * svg/SVGFEFloodElement.h:
35339         (WebCore::SVGFEFloodElement::contextElement):
35340         * svg/SVGFEGaussianBlurElement.h:
35341         (WebCore::SVGFEGaussianBlurElement::contextElement):
35342         * svg/SVGFEImageElement.cpp:
35343         * svg/SVGFEImageElement.h:
35344         (WebCore::SVGFEImageElement::contextElement):
35345         * svg/SVGFELightElement.h:
35346         * svg/SVGFEMergeElement.h:
35347         (WebCore::SVGFEMergeElement::contextElement):
35348         * svg/SVGFEMergeNodeElement.h:
35349         (WebCore::SVGFEMergeNodeElement::contextElement):
35350         * svg/SVGFEOffsetElement.h:
35351         (WebCore::SVGFEOffsetElement::contextElement):
35352         * svg/SVGFESpecularLightingElement.h:
35353         (WebCore::SVGFESpecularLightingElement::contextElement):
35354         * svg/SVGFETileElement.h:
35355         (WebCore::SVGFETileElement::contextElement):
35356         * svg/SVGFETurbulenceElement.h:
35357         (WebCore::SVGFETurbulenceElement::contextElement):
35358         * svg/SVGFilterElement.cpp:
35359         (WebCore::SVGFilterElement::SVGFilterElement):
35360         * svg/SVGFilterElement.h:
35361         (WebCore::SVGFilterElement::contextElement):
35362         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
35363         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
35364         * svg/SVGFilterPrimitiveStandardAttributes.h:
35365         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement):
35366         * svg/SVGFitToViewBox.cpp:
35367         * svg/SVGFitToViewBox.h:
35368         * svg/SVGFontElement.h:
35369         (WebCore::SVGFontElement::contextElement):
35370         * svg/SVGForeignObjectElement.cpp:
35371         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
35372         * svg/SVGForeignObjectElement.h:
35373         (WebCore::SVGForeignObjectElement::contextElement):
35374         * svg/SVGGElement.h:
35375         (WebCore::SVGGElement::contextElement):
35376         * svg/SVGGradientElement.cpp:
35377         * svg/SVGGradientElement.h:
35378         * svg/SVGImageElement.cpp:
35379         (WebCore::SVGImageElement::SVGImageElement):
35380         * svg/SVGImageElement.h:
35381         (WebCore::SVGImageElement::contextElement):
35382         * svg/SVGLength.cpp:
35383         (WebCore::SVGLength::SVGLength):
35384         (WebCore::SVGLength::operator=):
35385         (WebCore::SVGLength::operator==):
35386         (WebCore::SVGLength::operator!=):
35387         * svg/SVGLength.h:
35388         * svg/SVGLengthList.cpp:
35389         (WebCore::SVGLengthList::valueAsString):
35390         * svg/SVGLengthList.h:
35391         * svg/SVGLineElement.cpp:
35392         (WebCore::SVGLineElement::SVGLineElement):
35393         * svg/SVGLineElement.h:
35394         (WebCore::SVGLineElement::contextElement):
35395         * svg/SVGLinearGradientElement.cpp:
35396         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
35397         (WebCore::SVGLinearGradientElement::collectGradientProperties):
35398         * svg/SVGLinearGradientElement.h:
35399         (WebCore::SVGLinearGradientElement::contextElement):
35400         * svg/SVGMPathElement.h:
35401         (WebCore::SVGMPathElement::contextElement):
35402         * svg/SVGMarkerElement.cpp:
35403         (WebCore::SVGMarkerElement::SVGMarkerElement):
35404         * svg/SVGMarkerElement.h:
35405         (WebCore::SVGMarkerElement::contextElement):
35406         * svg/SVGMaskElement.cpp:
35407         (WebCore::SVGMaskElement::SVGMaskElement):
35408         * svg/SVGMaskElement.h:
35409         (WebCore::SVGMaskElement::contextElement):
35410         * svg/SVGNumberList.cpp:
35411         (WebCore::SVGNumberList::valueAsString):
35412         * svg/SVGNumberList.h:
35413         * svg/SVGPathElement.h:
35414         (WebCore::SVGPathElement::contextElement):
35415         * svg/SVGPatternElement.cpp:
35416         (WebCore::SVGPatternElement::SVGPatternElement):
35417         (WebCore::SVGPatternElement::collectPatternProperties):
35418         * svg/SVGPatternElement.h:
35419         (WebCore::SVGPatternElement::contextElement):
35420         * svg/SVGPolyElement.h:
35421         (WebCore::SVGPolyElement::contextElement):
35422         * svg/SVGPreserveAspectRatio.cpp:
35423         (WebCore::SVGPreserveAspectRatio::valueAsString):
35424         * svg/SVGPreserveAspectRatio.h:
35425         * svg/SVGRadialGradientElement.cpp:
35426         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
35427         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
35428         (WebCore::SVGRadialGradientElement::collectGradientProperties):
35429         * svg/SVGRadialGradientElement.h:
35430         (WebCore::SVGRadialGradientElement::contextElement):
35431         * svg/SVGRectElement.cpp:
35432         (WebCore::SVGRectElement::SVGRectElement):
35433         * svg/SVGRectElement.h:
35434         (WebCore::SVGRectElement::contextElement):
35435         * svg/SVGSVGElement.cpp:
35436         (WebCore::SVGSVGElement::SVGSVGElement):
35437         (WebCore::SVGSVGElement::currentView):
35438         * svg/SVGSVGElement.h:
35439         (WebCore::SVGSVGElement::contextElement):
35440         * svg/SVGScriptElement.h:
35441         (WebCore::SVGScriptElement::contextElement):
35442         * svg/SVGSetElement.h:
35443         (WebCore::SVGSetElement::contextElement):
35444         * svg/SVGStyledElement.h:
35445         * svg/SVGStyledTransformableElement.cpp:
35446         * svg/SVGStyledTransformableElement.h:
35447         * svg/SVGSwitchElement.h:
35448         (WebCore::SVGSwitchElement::contextElement):
35449         * svg/SVGSymbolElement.h:
35450         (WebCore::SVGSymbolElement::contextElement):
35451         * svg/SVGTRefElement.h:
35452         (WebCore::SVGTRefElement::contextElement):
35453         * svg/SVGTSpanElement.h:
35454         (WebCore::SVGTSpanElement::contextElement):
35455         * svg/SVGTextContentElement.cpp:
35456         (WebCore::SVGTextContentElement::SVGTextContentElement):
35457         * svg/SVGTextContentElement.h:
35458         * svg/SVGTextElement.cpp:
35459         * svg/SVGTextElement.h:
35460         (WebCore::SVGTextElement::contextElement):
35461         * svg/SVGTextPathElement.cpp:
35462         (WebCore::SVGTextPathElement::SVGTextPathElement):
35463         * svg/SVGTextPathElement.h:
35464         (WebCore::SVGTextPathElement::contextElement):
35465         * svg/SVGTextPositioningElement.cpp:
35466         * svg/SVGTextPositioningElement.h:
35467         * svg/SVGTransformList.cpp:
35468         (SVGTransformList::valueAsString):
35469         * svg/SVGTransformList.h:
35470         * svg/SVGURIReference.h:
35471         * svg/SVGUseElement.cpp:
35472         (WebCore::SVGUseElement::SVGUseElement):
35473         * svg/SVGUseElement.h:
35474         (WebCore::SVGUseElement::contextElement):
35475         * svg/SVGViewElement.h:
35476         (WebCore::SVGViewElement::contextElement):
35477         * svg/SVGViewSpec.cpp:
35478         (WebCore::SVGViewSpec::SVGViewSpec):
35479         (WebCore::SVGViewSpec::contextElement):
35480         * svg/SVGViewSpec.h:
35481
35482 2008-04-02  Darin Adler  <darin@apple.com>
35483
35484         Reviewed by Alexey.
35485
35486         - fix storage leak seen on buildbot
35487
35488         * platform/graphics/cg/ImageBufferCG.cpp:
35489         (WebCore::utiFromMIMEType): Put the result of createCFString() into a RetainPtr. Changed
35490         result to be a RetainPtr.
35491         (WebCore::ImageBuffer::toDataURL): Tweak a little bit, removing one local variable and
35492         some unneeded explicit conversions.
35493
35494 2008-04-01  Darin Adler  <darin@apple.com>
35495
35496         * WebCore.vcproj/WebCore.vcproj: Added RangeBoundaryPoint.h -- not required, but convenient.
35497
35498 2008-04-01  Darin Adler  <darin@apple.com>
35499
35500         Reviewed by Sam and Antti.
35501
35502         - fix <rdar://problem/5829565> paste performance slowed down with the Range Acid3 changes
35503
35504         Added a new class, RangeBoundaryPoint, to use for range boundary points. The "truth" of
35505         the offset is now stored as a node pointer, and the offset is computed as and when needed.
35506         This allows us to efficiently update when the DOM tree is changed -- computation of the
35507         node offsets is deferred until the Range is used later.
35508
35509         * WebCore.base.exp: Export nodeIndex().
35510
35511         * WebCore.xcodeproj/project.pbxproj: Added RangeBoundaryPoint.h, removed NodeWithIndexBefore.h
35512         and NodeWIthIndexAfter.h. Also let Xcode tweak the file formatting.
35513
35514         * dom/ContainerNode.cpp:
35515         (WebCore::ContainerNode::childrenChanged): Pass fewer arguments to Document.
35516
35517         * dom/Document.cpp:
35518         (WebCore::Document::nodeChildrenChanged): Pass fewer arguments to Range.
35519         (WebCore::Document::nodeWillBeRemoved): Pass node to range as a raw node pointer; no need for
35520         the index.
35521         * dom/Document.h: Take fewer arguments.
35522
35523         * dom/NodeWithIndexAfter.h: Removed.
35524         * dom/NodeWithIndexBefore.h: Removed.
35525
35526         * dom/Range.cpp:
35527         (WebCore::Range::Range): Changed to use the new RangeBoundaryPoint constructor.
35528         (WebCore::Range::create): Updated to use RangeBoundaryPoint instead of Position.
35529         (WebCore::Range::~Range): Ditto.
35530         (WebCore::Range::startContainer): Ditto.
35531         (WebCore::Range::startOffset): Ditto.
35532         (WebCore::Range::endContainer): Ditto.
35533         (WebCore::Range::endOffset): Ditto.
35534         (WebCore::Range::commonAncestorContainer): Ditto.
35535         (WebCore::Range::collapsed): Ditto.
35536         (WebCore::Range::setStart): Ditto.
35537         (WebCore::Range::setEnd): Ditto.
35538         (WebCore::Range::collapse): Ditto.
35539         (WebCore::Range::isPointInRange): Ditto.
35540         (WebCore::Range::comparePoint): Ditto.
35541         (WebCore::Range::compareNode): Ditto.
35542         (WebCore::Range::compareBoundaryPoints): Ditto.
35543         (WebCore::Range::boundaryPointsValid): Ditto.
35544         (WebCore::Range::intersectsNode): Ditto.
35545         (WebCore::Range::processContents): Ditto.
35546         (WebCore::Range::cloneContents): Ditto.
35547         (WebCore::Range::insertNode): Updated to use RangeBoundaryPoint. Also simplified the code
35548         at the end that updates the range -- not all of it is needed now since most of the fixup
35549         is done automatically by the range document mutation machinery. The one bit that remains
35550         is arguably a bug, but we need to keep it to keep passing Acid3 until we get clarification
35551         that it is indeed a bug (and then Acid3 will probably have to change).
35552         (WebCore::Range::toString): Update to use RangeBoundaryPoint instead of Position.
35553         (WebCore::Range::text): Ditto.
35554         (WebCore::Range::createContextualFragment): Ditto.
35555         (WebCore::Range::detach): Ditto.
35556         (WebCore::Range::checkNodeWOffset): Changed case where the offset is a node offset to
35557         be more efficient by using childNode instead of childNodeCount, and also return the node
35558         before which is needed to set the value of a RangeBoundaryPoint.
35559         (WebCore::Range::cloneRange): Ditto.
35560         (WebCore::Range::setStartAfter): Ditto.
35561         (WebCore::Range::setEndBefore): Ditto.
35562         (WebCore::Range::setEndAfter): Ditto.
35563         (WebCore::Range::selectNode): Ditto.
35564         (WebCore::Range::selectNodeContents): Ditto.
35565         (WebCore::Range::surroundContents): Ditto.
35566         (WebCore::Range::setStartBefore): Ditto.
35567         (WebCore::Range::checkDeleteExtract): Ditto.
35568         (WebCore::Range::containedByReadOnly): Ditto.
35569         (WebCore::Range::firstNode): Ditto.
35570         (WebCore::Range::editingStartPosition): Ditto.
35571         (WebCore::Range::pastLastNode): Ditto.
35572         (WebCore::Range::addLineBoxRects): Ditto.
35573         (WebCore::Range::formatForDebugger): Ditto.
35574         (WebCore::Range::maxStartOffset): Ditto.
35575         (WebCore::Range::maxEndOffset): Ditto.
35576         (WebCore::boundaryNodeChildrenChanged): Updated to use RangeBoundaryPoint instead of
35577         Position. Also changed name and changed to just call invalidateOffset.
35578         (WebCore::Range::nodeChildrenChanged): Changed to take just a container node.
35579         (WebCore::boundaryNodeWillBeRemoved): Updated to use RangeBoundaryPoint instead of
35580         Position. Also changed name and changed to update childBefore.
35581         (WebCore::Range::nodeWillBeRemoved): Changed to just take a Node*.
35582         (WebCore::boundaryTextInserted): Updated to use RangeBoundaryPoint instead of
35583         Position. Also changed name.
35584         (WebCore::Range::textInserted): Ditto.
35585         (WebCore::boundaryTextRemoved): Ditto.
35586         (WebCore::Range::textRemoved): Ditto.
35587         (WebCore::boundaryTextNodesMerged): Ditto.
35588         (WebCore::Range::textNodesMerged): Ditto.
35589         (WebCore::boundaryTextNodesSplit): Ditto.
35590         (WebCore::Range::textNodeSplit): Ditto.
35591
35592         * dom/Range.h: Updated to use RangeBoundaryPoint instead of Position.
35593
35594         * dom/RangeBoundaryPoint.h: Added.
35595
35596 2008-04-01  Anders Carlsson  <andersca@apple.com>
35597
35598         Reviewed by Sam.
35599
35600         Get rid of old "bindings" forwarding headers.
35601
35602         * ForwardingHeaders/bindings: Removed.
35603         * ForwardingHeaders/bindings/NP_jsobject.h: Removed.
35604         * ForwardingHeaders/bindings/npruntime.h: Removed.
35605         * ForwardingHeaders/bindings/npruntime_impl.h: Removed.
35606         * ForwardingHeaders/bindings/npruntime_internal.h: Removed.
35607         * ForwardingHeaders/bindings/runtime.h: Removed.
35608         * ForwardingHeaders/bindings/runtime_object.h: Removed.
35609         * ForwardingHeaders/bindings/runtime_root.h: Removed.
35610
35611 2008-04-01  Timothy Hatcher  <timothy@apple.com>
35612
35613         Rename DatabasePanel.js to DatabasesPanel.js to facilitate the up-coming UI refresh changes.
35614
35615         http://bugs.webkit.org/show_bug.cgi?id=17773
35616
35617         Rubber-stamped by Brady Eidson.
35618
35619         * WebCore.vcproj/WebCore.vcproj: Reference DatabasesPanel.js.
35620         * page/inspector/DatabasePanel.js: Removed.
35621         * page/inspector/DatabasesPanel.js: Copied from page/inspector/DatabasePanel.js.
35622         * page/inspector/WebKit.qrc: Reference DatabasesPanel.js.
35623         * page/inspector/inspector.html: Reference DatabasesPanel.js.
35624
35625 2008-04-01  Brady Eidson  <beidson@apple.com>
35626
35627         Touch a file to get Windows to rebuild WebCore
35628
35629         * platform/ContextMenu.cpp: Alphabetize headers
35630
35631 2008-04-01  Brady Eidson  <beidson@apple.com>
35632
35633         Reviewed by Adam Roben
35634
35635         Export loader/archive and loader/archive/cf headers for WebKitWin to use
35636
35637         * WebCore.vcproj/WebCore.vcproj:
35638
35639 2008-04-01  Brady Eidson  <beidson@apple.com>
35640
35641         Reviewed by Darin
35642
35643         WebArchives need to load on Windows the same way as on Mac, and this change in the 
35644         finished-loading code path was a big part of that
35645
35646         * loader/FrameLoader.cpp:
35647         (WebCore::FrameLoader::finishedLoadingDocument): Only call the client's finishedLoading()
35648           for non-archive loads
35649
35650 2008-04-01  Dan Bernstein  <mitz@apple.com>
35651
35652         - Mac build fix
35653
35654         * WebCore.xcodeproj/project.pbxproj: Made FontRenderingMode.h private.
35655
35656 2008-04-01  Dan Bernstein  <mitz@apple.com>
35657
35658         Reviewed by Darin Adler.
35659
35660         - move the FontRenderingMode enumeration into its own header file
35661
35662         * WebCore.vcproj/WebCore.vcproj:
35663         * WebCore.xcodeproj/project.pbxproj:
35664         * loader/CachedFont.h:
35665         * platform/graphics/FontDescription.h:
35666         * platform/graphics/FontRenderingMode.h: Added.
35667         * platform/graphics/gtk/FontCustomPlatformData.h:
35668         * platform/graphics/mac/FontCustomPlatformData.h:
35669         * platform/graphics/qt/FontCustomPlatformData.h:
35670         * platform/graphics/win/FontCustomPlatformData.h:
35671
35672 2008-04-01  Darin Adler  <darin@apple.com>
35673
35674         Reviewed by Mitz.
35675
35676         - fix <rdar://problem/5833351> REGRESSION: Leak in JSCustomXPathNSResolver::create
35677         - fix <rdar://problem/5833216> REGRESSION: Leak in CSSStyleSelector::addViewportDependentMediaQueryResult
35678
35679         * bindings/js/JSCustomXPathNSResolver.cpp:
35680         (WebCore::JSCustomXPathNSResolver::create): Added a missing adoptRef.
35681         * css/CSSStyleSelector.cpp:
35682         (WebCore::CSSStyleSelector::~CSSStyleSelector): Added a missing call to deleteAllValues.
35683
35684 2008-04-01  Darin Adler  <darin@apple.com>
35685
35686         Reviewed by Sam.
35687
35688         - speed up hasChildNodes, which does not need to be virtual
35689
35690         * dom/ContainerNode.cpp: Removed hasChildNodes.
35691         * dom/ContainerNode.h: Added non-virtual inline hasChildNodes.
35692         * dom/Node.cpp: Removed hasChildNodes.
35693         * dom/Node.h: Added non-vritual inline hasChildNodes.
35694
35695 2008-04-01  Simon Hausmann  <hausmann@webkit.org>
35696
35697         Fix the non-mac build.
35698
35699         * page/AXObjectCache.h: Don't reference AccessibilityObjects when
35700         building without accessibility.
35701         * page/AccessibilityObject.h: Don't include RetainPtr.h for non-mac
35702         builds.
35703
35704 2008-04-01  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
35705
35706         Reviewed by Simon.
35707
35708         * Do not store the QWebFrame associated with a ScrollView/FrameView
35709         in the WebCore::Widget.
35710         * Instead of asking the Widget for the QWebFrame use the QWebFramePrivate::core
35711         and QWebFramePrivate::kit function to convert from and to QWebFrame.
35712
35713         * platform/Widget.h:
35714         * platform/qt/WidgetQt.cpp:
35715         (WebCore::WidgetPrivate::WidgetPrivate):
35716         (WebCore::Widget::containingWindow):
35717
35718 2008-04-01  Alice Liu  <alice.liu@apple.com>
35719         Patch by Beth Dakin <bdakin@apple.com> and Alice Liu
35720
35721         Reviewed by Darin.
35722
35723         Refactored WebCore Accessibility code.  Prior to this patch, WebCore
35724         accessibility was implemented in an ObjC class named WebCoreAXObject,
35725         with much of the "guts" in C++.  This patch the next natural step of
35726         factoring out the C++ code into a class named AccessibilityObject, and 
35727         in order to maintain the required ObjC object ties, also implements an
35728         ObjC class named AccessibilityObjectWrapper as a thin wrapper around the
35729         C++ object.  Internally within WebCore we operate on the C++ object as
35730         much as possible, and the ObjC object gets used mostly when we need to
35731         return something to AppKit or call something implemented on NSObject.
35732         The AXObjectCache still keeps one HashMap, now of RenderObjects to
35733         AccessibilityObjects instead of WebCoreAXObjects, and the
35734         AccessibilityObject keeps track of its ObjC wrapper.
35735
35736         * WebCore.xcodeproj/project.pbxproj:
35737         * page/AXObjectCache.h:
35738         (WebCore::AXObjectCache::get):
35739         (WebCore::AXObjectCache::removeAXID):
35740         * page/AccessibilityObject.cpp: Added.
35741         (WebCore::AccessibilityObject::AccessibilityObject):
35742         (WebCore::AccessibilityObject::~AccessibilityObject):
35743         (WebCore::AccessibilityObject::create):
35744         (WebCore::AccessibilityObject::detach):
35745         (WebCore::AccessibilityObject::firstChild):
35746         (WebCore::AccessibilityObject::lastChild):
35747         (WebCore::AccessibilityObject::previousSibling):
35748         (WebCore::AccessibilityObject::nextSibling):
35749         (WebCore::AccessibilityObject::parentObject):
35750         (WebCore::AccessibilityObject::parentObjectUnignored):
35751         (WebCore::AccessibilityObject::isWebArea):
35752         (WebCore::AccessibilityObject::isImageButton):
35753         (WebCore::AccessibilityObject::isAnchor):
35754         (WebCore::AccessibilityObject::isTextControl):
35755         (WebCore::AccessibilityObject::isImage):
35756         (WebCore::AccessibilityObject::isAttachment):
35757         (WebCore::isPasswordFieldElement):
35758         (WebCore::AccessibilityObject::isPasswordField):
35759         (WebCore::AccessibilityObject::headingLevel):
35760         (WebCore::AccessibilityObject::isHeading):
35761         (WebCore::AccessibilityObject::anchorElement):
35762         (WebCore::isCheckboxOrRadio):
35763         (WebCore::AccessibilityObject::actionElement):
35764         (WebCore::AccessibilityObject::mouseButtonListener):
35765         (WebCore::AccessibilityObject::helpText):
35766         (WebCore::AccessibilityObject::textUnderElement):
35767         (WebCore::AccessibilityObject::hasIntValue):
35768         (WebCore::AccessibilityObject::intValue):
35769         (WebCore::AccessibilityObject::stringValue):
35770         (WebCore::labelForElement):
35771         (WebCore::AccessibilityObject::title):
35772         (WebCore::AccessibilityObject::accessibilityDescription):
35773         (WebCore::AccessibilityObject::boundingBoxRect):
35774         (WebCore::AccessibilityObject::size):
35775         (WebCore::AccessibilityObject::linkedUIElement):
35776         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
35777         (WebCore::AccessibilityObject::accessibilityIsIgnored):
35778         (WebCore::AccessibilityObject::loaded):
35779         (WebCore::AccessibilityObject::layoutCount):
35780         (WebCore::AccessibilityObject::textLength):
35781         (WebCore::AccessibilityObject::selectedText):
35782         (WebCore::AccessibilityObject::selection):
35783         (WebCore::AccessibilityObject::selectedTextRange):
35784         (WebCore::AccessibilityObject::setSelectedText):
35785         (WebCore::AccessibilityObject::setSelectedTextRange):
35786         (WebCore::AccessibilityObject::makeRangeVisible):
35787         (WebCore::AccessibilityObject::url):
35788         (WebCore::AccessibilityObject::isVisited):
35789         (WebCore::AccessibilityObject::isFocused):
35790         (WebCore::AccessibilityObject::setFocused):
35791         (WebCore::AccessibilityObject::setValue):
35792         (WebCore::AccessibilityObject::isEnabled):
35793         (WebCore::AccessibilityObject::press):
35794         (WebCore::AccessibilityObject::topRenderer):
35795         (WebCore::AccessibilityObject::textControl):
35796         (WebCore::AccessibilityObject::widget):
35797         (WebCore::AccessibilityObject::axObjectCache):
35798         (WebCore::AccessibilityObject::documentLinks):
35799         (WebCore::AccessibilityObject::documentFrameView):
35800         (WebCore::AccessibilityObject::frameViewIfRenderView):
35801         (WebCore::AccessibilityObject::visiblePositionRange):
35802         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
35803         (WebCore::AccessibilityObject::doAXTextMarkerRangeForUnorderedTextMarkers):
35804         (WebCore::AccessibilityObject::doAXLeftWordTextMarkerRangeForTextMarker):
35805         (WebCore::AccessibilityObject::doAXRightWordTextMarkerRangeForTextMarker):
35806         (WebCore::updateAXLineStartForVisiblePosition):
35807         (WebCore::AccessibilityObject::doAXLeftLineTextMarkerRangeForTextMarker):
35808         (WebCore::AccessibilityObject::doAXRightLineTextMarkerRangeForTextMarker):
35809         (WebCore::AccessibilityObject::doAXSentenceTextMarkerRangeForTextMarker):
35810         (WebCore::AccessibilityObject::doAXParagraphTextMarkerRangeForTextMarker):
35811         (WebCore::startOfStyleRange):
35812         (WebCore::endOfStyleRange):
35813         (WebCore::AccessibilityObject::doAXStyleTextMarkerRangeForTextMarker):
35814         (WebCore::AccessibilityObject::textMarkerRangeForRange):
35815         (WebCore::AccessibilityObject::stringForReplacedNode):
35816         (WebCore::AccessibilityObject::doAXStringForTextMarkerRange):
35817         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
35818         (WebCore::AccessibilityObject::doAXLengthForTextMarkerRange):
35819         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
35820         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
35821         (WebCore::AccessibilityObject::doAXNextTextMarkerForTextMarker):
35822         (WebCore::AccessibilityObject::doAXPreviousTextMarkerForTextMarker):
35823         (WebCore::AccessibilityObject::doAXNextWordEndTextMarkerForTextMarker):
35824         (WebCore::AccessibilityObject::doAXPreviousWordStartTextMarkerForTextMarker):
35825         (WebCore::AccessibilityObject::doAXNextLineEndTextMarkerForTextMarker):
35826         (WebCore::AccessibilityObject::doAXPreviousLineStartTextMarkerForTextMarker):
35827         (WebCore::AccessibilityObject::doAXNextSentenceEndTextMarkerForTextMarker):
35828         (WebCore::AccessibilityObject::doAXPreviousSentenceStartTextMarkerForTextMarker):
35829         (WebCore::AccessibilityObject::doAXNextParagraphEndTextMarkerForTextMarker):
35830         (WebCore::AccessibilityObject::doAXPreviousParagraphStartTextMarkerForTextMarker):
35831         (WebCore::AccessibilityObject::textMarkerForIndex):
35832         (WebCore::AccessibilityObject::doAXUIElementForTextMarker):
35833         (WebCore::AccessibilityObject::doAXLineForTextMarker):
35834         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
35835         (WebCore::AccessibilityObject::indexForTextMarker):
35836         (WebCore::AccessibilityObject::doAXRangeForLine):
35837         (WebCore::AccessibilityObject::doAXRangeForPosition):
35838         (WebCore::AccessibilityObject::doAXRangeForIndex):
35839         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
35840         (WebCore::AccessibilityObject::doAXStringForRange):
35841         (WebCore::AccessibilityObject::doAXBoundsForRange):
35842         (WebCore::AccessibilityObject::doAXLineForIndex):
35843         (WebCore::AccessibilityObject::doAccessibilityHitTest):
35844         (WebCore::AccessibilityObject::focusedUIElement):
35845         (WebCore::AccessibilityObject::observableObject):
35846         (WebCore::AccessibilityObject::roleValue):
35847         (WebCore::AccessibilityObject::canSetFocusAttribute):
35848         (WebCore::AccessibilityObject::canSetValueAttribute):
35849         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
35850         (WebCore::AccessibilityObject::childrenChanged):
35851         (WebCore::AccessibilityObject::clearChildren):
35852         (WebCore::AccessibilityObject::hasChildren):
35853         (WebCore::AccessibilityObject::addChildren):
35854         (WebCore::AccessibilityObject::axObjectID):
35855         (WebCore::AccessibilityObject::setAXObjectID):
35856         (WebCore::AccessibilityObject::removeAXObjectID):
35857         * page/AccessibilityObject.h: Added.
35858         (WebCore::VisiblePositionRange::VisiblePositionRange):
35859         (WebCore::VisiblePositionRange::isNull):
35860         (WebCore::AccessibilityObject::detached):
35861         (WebCore::AccessibilityObject::PlainTextRange::PlainTextRange):
35862         (WebCore::AccessibilityObject::PlainTextRange::isNull):
35863         (WebCore::AccessibilityObject::renderer):
35864         (WebCore::AccessibilityObject::children):
35865         (WebCore::AccessibilityObject::wrapper):
35866         (WebCore::AccessibilityObject::setWrapper):
35867         * page/mac/AXObjectCacheMac.mm:
35868         (WebCore::AXObjectCache::~AXObjectCache):
35869         (WebCore::AXObjectCache::get):
35870         (WebCore::AXObjectCache::remove):
35871         (WebCore::AXObjectCache::getAXID):
35872         (WebCore::AXObjectCache::removeAXID):
35873         (WebCore::AXObjectCache::textMarkerForVisiblePosition):
35874         (WebCore::AXObjectCache::childrenChanged):
35875         (WebCore::AXObjectCache::postNotification):
35876         (WebCore::AXObjectCache::postNotificationToElement):
35877         * page/mac/AccessibilityObjectMac.mm: Added.
35878         (createAccessibilityRoleMap):
35879         (RoleEntry::):
35880         (roleValueToNSString):
35881         (AccessibilityObject::attachmentView):
35882         (AccessibilityObject::performPressActionForAttachment):
35883         (AccessibilityObject::textMarkerRange):
35884         (AccessibilityObject::textMarkerForVisiblePosition):
35885         (AccessibilityObject::startTextMarker):
35886         (AccessibilityObject::visiblePositionForTextMarker):
35887         (AccessibilityObject::visiblePositionForStartOfTextMarkerRange):
35888         (AccessibilityObject::visiblePositionForEndOfTextMarkerRange):
35889         (AccessibilityObject::textMarkerRangeFromVisiblePositions):
35890         (AccessibilityObject::textMarkerRangeForSelection):
35891         (AccessibilityObject::textMarkerRangeFromMarkers):
35892         (AccessibilityObject::convertViewRectToScreenCoords):
35893         (AccessibilityObject::convertAbsolutePointToViewCoords):
35894         (AccessibilityObject::convertWidgetChildrenToNSArray):
35895         (AccessibilityObject::position):
35896         (AccessibilityObject::role):
35897         (AccessibilityObject::subrole):
35898         (AccessibilityObject::roleDescription):
35899         (blockquoteLevel):
35900         (AccessibilityObject::AXAttributeStringSetElement):
35901         (AXAttributeStringSetBlockquoteLevel):
35902         (CreateCGColorIfDifferent):
35903         (AXAttributeStringSetColor):
35904         (AXAttributeStringSetNumber):
35905         (AXAttributeStringSetFont):
35906         (AXAttributeStringSetStyle):
35907         (AccessibilityObject::AXAttributeStringSetHeadingLevel):
35908         (AccessibilityObject::AXLinkElementForNode):
35909         (AXAttributeStringSetSpelling):
35910         (AccessibilityObject::AXAttributedStringAppendText):
35911         (nsStringForReplacedNode):
35912         (AccessibilityObject::doAXAttributedStringForTextMarkerRange):
35913         (AccessibilityObject::doAXAttributedStringForRange):
35914         (AccessibilityObject::doAXRTFForRange):
35915         * page/mac/AccessibilityObjectWrapper.h: Added.
35916         * page/mac/AccessibilityObjectWrapper.mm: Added.
35917         (-[AccessibilityObjectWrapper initWithAccessibilityObject:]):
35918         (-[AccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
35919         (-[AccessibilityObjectWrapper detach]):
35920         (-[AccessibilityObjectWrapper accessibilityObject]):
35921         (-[AccessibilityObjectWrapper accessibilityActionNames]):
35922         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
35923         (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
35924         (-[AccessibilityObjectWrapper renderWidgetChildren]):
35925         (convertToNSArray):
35926         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
35927         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]):
35928         (-[AccessibilityObjectWrapper accessibilityHitTest:]):
35929         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
35930         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
35931         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
35932         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
35933         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
35934         (rendererForView):
35935         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
35936         (-[AccessibilityObjectWrapper accessibilityActionDescription:]):
35937         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
35938         (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
35939         * page/mac/WebCoreAXObject.h: Removed.
35940         * page/mac/WebCoreAXObject.mm: Removed.
35941         * rendering/RenderMenuList.cpp:
35942         (WebCore::RenderMenuList::selectElement):
35943         * rendering/RenderMenuList.h:
35944
35945 2008-03-31  Dan Bernstein  <mitz@apple.com>
35946
35947         - fix previous attempted fixes
35948
35949         * platform/qt/TemporaryLinkStubs.cpp:
35950         (PluginDatabase::getPluginPathsInDirectories):
35951         * platform/wx/TemporaryLinkStubs.cpp:
35952         (PluginDatabase::getPluginPathsInDirectories):
35953
35954 2008-03-31  Dan Bernstein  <mitz@apple.com>
35955
35956         - fix Qt link stubs
35957
35958         * platform/qt/TemporaryLinkStubs.cpp:
35959         (PluginDatabase::getPluginPathsInDirectories):
35960         (PluginDatabase::isPreferredPluginDirectory):
35961
35962 2008-03-31  Dan Bernstein  <mitz@apple.com>
35963
35964         - try to fix the Wx build
35965
35966         * platform/wx/TemporaryLinkStubs.cpp:
35967         (PluginDatabase::getPluginPathsInDirectories):
35968         (PluginDatabase::isPreferredPluginDirectory):
35969
35970 2008-03-31  Dan Bernstein  <mitz@apple.com>
35971
35972         - Gtk and Qt build fixes
35973
35974         * platform/graphics/gtk/FontCustomPlatformData.cpp:
35975         (WebCore::FontCustomPlatformData::fontPlatformData):
35976         * platform/graphics/gtk/FontCustomPlatformData.h:
35977         * platform/graphics/qt/FontCustomPlatformData.cpp:
35978         (WebCore::FontCustomPlatformData::fontPlatformData):
35979         * platform/graphics/qt/FontCustomPlatformData.h:
35980
35981 2008-03-31  Dan Bernstein  <mitz@apple.com>
35982
35983         - Mac build fix
35984
35985         * platform/graphics/mac/FontCustomPlatformData.cpp:
35986         (WebCore::FontCustomPlatformData::fontPlatformData):
35987         * platform/graphics/mac/FontCustomPlatformData.h:
35988
35989 2008-03-31  Dan Bernstein  <mitz@apple.com>
35990
35991         Reviewed by Darin Adler.
35992
35993         - fix <rdar://problem/5792638> @font-face with downloadable fonts doesn't work with GDI text
35994
35995         * WebCore.vcproj/WebCore.vcproj: Added GetEOTHeader.{h,cpp}
35996
35997         * css/CSSFontFaceSource.cpp:
35998         (WebCore::CSSFontFaceSource::getFontData): Changed to pass the rendering
35999         mode to CachedFont::platformDataFromCustomData().
36000
36001         * loader/CachedFont.cpp:
36002         (WebCore::CachedFont::platformDataFromCustomData): Added a rendering
36003         mode parameter which is passed down to
36004         FontCustomPlatformData::fontPlatformData().
36005
36006         * loader/CachedFont.h:
36007
36008         * platform/graphics/win/FontCacheWin.cpp:
36009         (WebCore::FontCache::fontExists): Changed the number 5 to the named
36010         constant CLEARTYPE_QUALITY.
36011
36012         * platform/graphics/win/FontCustomPlatformData.cpp:
36013         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added code
36014         to delete the embedded font reference.
36015         (WebCore::FontCustomPlatformData::fontPlatformData): Added code to
36016         create an HFONT from the embedded font reference and pass it along with
36017         the CGFontRef to the FontPlatformData constructor. Added a rendering
36018         mode parameter which is passed down to the FontPlatformData constructor.
36019         (WebCore::EOTStream::EOTStream): Added this helper class used to feed
36020         data to TTLoadEmbeddedFont().
36021         (WebCore::EOTStream::read): Added.
36022         (WebCore::readEmbedProc): Added this TTLoadEmbeddedFont() callback.
36023         (WebCore::createUniqueFontName): Added. Creates a unique GUID-derived
36024         font name. 
36025         (WebCore::createFontCustomPlatformData): Added code to make the font
36026         accessible to GDI by creating an Embedded OpenType stream and
36027         activating it in the process under a globally-unique name.
36028
36029         * platform/graphics/win/FontCustomPlatformData.h:
36030         Added a font reference data member which holds the embedded font.
36031         (WebCore::FontCustomPlatformData::FontCustomPlatformData): Added a
36032         rendering mode parameter.
36033
36034         * platform/graphics/win/FontPlatformData.h:
36035         (WebCore::FontPlatformData::FontPlatformData): Made this class always
36036         own the CGFontRef and the HFONT by turning these data members into a
36037         RetainPtr and a RefPtr around a RefCountedHFONT.
36038         Added an HFONT parameter to the CGFontRef-based constructor.
36039         Made platformDataInit() private.
36040         (WebCore::FontPlatformData::hfont):
36041         (WebCore::FontPlatformData::cgFont):
36042         (WebCore::FontPlatformData::hash):
36043         (WebCore::FontPlatformData::RefCountedHFONT::RefCountedHFONT): Added.
36044         (WebCore::FontPlatformData::RefCountedHFONT::~RefCountedHFONT):
36045         (WebCore::FontPlatformData::RefCountedHFONT::hfont):
36046         (WebCore::FontPlatformData::RefCountedHFONT::hash):
36047
36048         * platform/graphics/win/FontPlatformDataCGWin.cpp:
36049         (WebCore::FontPlatformData::platformDataInit): Changed to take
36050         ownership of the CGFontRef created here.
36051         (WebCore::FontPlatformData::FontPlatformData): Added an HFONT parameter
36052         and a useGDI flag.
36053
36054         * platform/graphics/win/FontPlatformDataWin.cpp:
36055         (WebCore::FontPlatformData::FontPlatformData): Changed to take ownership
36056         of the HFONT.
36057
36058         * platform/graphics/win/GetEOTHeader.cpp: Added.
36059         (WebCore::BigEndianUShort::operator unsigned short):
36060         (WebCore::BigEndianULong::operator unsigned):
36061         (WebCore::appendBigEndianStringToEOTHeader):
36062         (WebCore::getEOTHeader): Added. Creates an Embedded OpenType (.eot)
36063         header for the given font data, making it suitable as input for
36064         TTLoadEmbeddedFont.
36065
36066         * platform/graphics/win/GetEOTHeader.h: Added.
36067
36068         * platform/graphics/win/SimpleFontDataCGWin.cpp:
36069         (WebCore::SimpleFontData::platformDestroy): Removed code to delete parts
36070         of the FontPlatformData, since they are now always owned and managed
36071         by the FontPlatformData.
36072
36073 2008-03-31  Darin Adler  <darin@apple.com>
36074
36075         Reviewed by Anders.
36076
36077         - fix crash seen on buildbot (regression from a recent speedup)
36078
36079         * html/HTMLDocument.cpp:
36080         (WebCore::HTMLDocument::createElement): Check validity before calling isLower, since
36081         that takes care of the null string case.
36082
36083 2008-03-31  Dan Bernstein  <mitz@apple.com>
36084
36085         Reviewed by John Sullivan.
36086
36087         - fix <rdar://problem/5741075> Google Maps: cursor and placemarks don't match up
36088
36089         * platform/win/CursorWin.cpp:
36090         (WebCore::Cursor::Cursor): Set the 1-bit mask for full-alpha cursors
36091         to fully opaque. The mask is ignored and the alpha values from the
36092         32-bit image are used except in the case of a fully-transparent image,
36093         in which the fully-opaque 1-bit mask is required to get transparency.
36094
36095 2008-03-31  Brady Eidson  <beidson@apple.com>
36096
36097         Reviewed by Jon Honeycutt
36098
36099         Move a WebArchive loading check into WebCore
36100         
36101         * loader/FrameLoader.cpp:
36102         (WebCore::FrameLoader::committedLoad): Don't call the client method if currently loading a WebArchive
36103
36104 2008-03-31  Brady Eidson  <beidson@apple.com>
36105
36106         Reviewed by Oliver Hunt
36107
36108         "Turn on" WebArchives for Windows
36109         
36110         Thought I'd done this already, but I hadn't!
36111
36112         * platform/MIMETypeRegistry.cpp:
36113         (WebCore::initializeSupportedNonImageMimeTypes): Apply known ArchiveFactory MIME types
36114
36115 2008-03-31  Dan Bernstein  <mitz@apple.com>
36116
36117         Reviewed by Dave Hyatt.
36118
36119         - fix http://bugs.webkit.org/show_bug.cgi?id=18076
36120           Box disappears after CSS Transition completes
36121
36122         * page/AnimationController.cpp: Changed the BLEND_MAYBE_INVALID_COLOR
36123         macro to not blend two invalid colors.
36124         * rendering/RenderStyle.cpp:
36125         (WebCore::StyleBackgroundData::StyleBackgroundData): Added missing
36126         copying of the m_color data member.
36127
36128 2008-03-31  Julien Chaffraix  <jchaffraix@webkit.org>
36129
36130         Reviewed by Darin.
36131
36132         Bug 18177: m_encoding is used twice in XMLHttpRequest
36133         http://bugs.webkit.org/show_bug.cgi?id=18177
36134
36135         - Change XMLHttpRequest variable m_encoding to m_responseEncoding.
36136
36137         - Change send local variable m_encoding to encoding.
36138
36139         No test case (no functionnal change).
36140
36141         * platform/network/ResourceResponseBase.h: Removed unused variable.
36142         * xml/XMLHttpRequest.cpp:
36143         (WebCore::XMLHttpRequest::send): Changed local m_encoding to encoding.
36144         (WebCore::XMLHttpRequest::didReceiveResponse): m_encoding -> m_responseEncoding.
36145         (WebCore::XMLHttpRequest::didReceiveData): Ditto.
36146         * xml/XMLHttpRequest.h: Change m_encoding to m_responseEncoding to disambiguate
36147         the name as it is only used for response.
36148
36149 2008-03-27  Adam Roben  <aroben@apple.com>
36150
36151         Pass the right ExecStates to toJS when creating JS wrappers for
36152         objects from the inspected page
36153
36154         We now use an ExecState from the inspected page to create the JS
36155         wrappers for objects from the inspected page, rather than use an
36156         ExecState from the Inspector.
36157
36158         Reviewed by Tim Hatcher.
36159
36160         * page/InspectorController.cpp:
36161         (WebCore::getResourceDocumentNode):
36162         (WebCore::InspectorController::focusNode):
36163         (WebCore::InspectorController::addDatabaseScriptResource):
36164
36165 2008-03-31  Adam Roben  <aroben@apple.com>
36166
36167         Stop relying on functions added to prototypes in the Inspector being
36168         callable on objects from the inspected window
36169
36170         Reviewed by Tim Hatcher.
36171
36172         * page/inspector/Console.js:
36173         (WebInspector.ConsolePanel._formatnode): Use nodeTitleInfo.call(node)
36174         instead of node.titleInfo().
36175         * page/inspector/StylesSidebarPane.js: Changed uses of
36176         getShorthandValue, getShorthandPriority, getLonghandProperties, and
36177         getUniqueStyleProperties to call them as functions instead of as
36178         methods on the CSSStyleDeclaration objects.
36179         * page/inspector/utilities.js: Removed Node.prototype.titleInfo, and
36180         changed our CSSStyleDeclaration methods to just be standalone
36181         functions.
36182
36183 2008-03-26  Adam Roben  <aroben@apple.com>
36184
36185         Fix an exception while adding a message to the console
36186
36187         Reviewed by Mark Rowe.
36188
36189         * page/inspector/ConsolePanel.js: Don't call addMessageToSource if the
36190         panel has no such method. This can happen if we get a message for,
36191         e.g., a Database.
36192
36193 2008-03-31  Brady Eidson  <beidson@apple.com>
36194
36195         Reviewed by Darin and Mitz's rubber stamp
36196
36197         Remove dataForArchivedSelection(WebCore::Frame*) from the EditorClient - only usage is now directly in WebCore
36198
36199         * page/EditorClient.h:
36200         * svg/graphics/SVGImageEmptyClients.h:
36201
36202         * platform/mac/PasteboardMac.mm:
36203         (WebCore::Pasteboard::writeSelection): Make the archive and get the data directly
36204
36205 2008-03-31  Brady Eidson  <beidson@apple.com>
36206
36207         Reviewed by Mitz Pettel
36208
36209         Fix for http://bugs.webkit.org/show_bug.cgi?id=18183
36210
36211         Despite the bug reporter's instructions, I have still not been able to actually reproduce this crash and 
36212         therefore don't know how to make a layout test for it.
36213
36214         * loader/archive/ArchiveResource.cpp:
36215         (WebCore::ArchiveResource::response): Fix potential null dereference
36216
36217 2008-03-29  Adam Roben  <aroben@apple.com>
36218
36219         Fix Bug 18208: Acid3 test 65 takes >33ms due to plugin refreshing on
36220         Windows
36221
36222         <http://bugs.webkit.org/show_bug.cgi?id=18208>
36223
36224         We now keep track of all the plugin paths found each time refresh() is
36225         called. We'll only instantiate PluginPackages if there are new paths
36226         or paths with changed timestamps since the last time refresh() was
36227         called.
36228
36229         Reviewed by Darin Adler and Anders Carlsson.
36230
36231         * plugins/PluginDatabase.cpp:
36232         (WebCore::PluginDatabase::refresh):
36233           - Only instantiate PluginPackages if there is a new path or a path
36234             with a changed timestamp since we last ran refresh().
36235           - Cache the set of plugin paths found and their timestamps for the
36236             next call to refresh().
36237           - Only re-register MIME types if our set of plugins changed.
36238         * plugins/PluginDatabase.h: Added a new member to cache plugin paths
36239         and their timestamps.
36240
36241 2008-03-29  Adam Roben  <aroben@apple.com>
36242
36243         Separate filesystem crawling from PluginPackage instantiation
36244
36245         Part of Bug 18208: Acid3 test 65 takes >33ms due to plugin refreshing
36246         on Windows
36247         <http://bugs.webkit.org/show_bug.cgi?id=18208>
36248
36249         refresh() is now the only place where PluginPackages are instantiated.
36250         refresh() now asks for a set of plugins that no longer exist on disk,
36251         and the set of all plugin files in our plugin directories. Using these
36252         two sets we can update our instantiated plugins without copying any
36253         HashSets. The code in refresh() and in the platform-specific methods
36254         to crawl the filesystem is now quite a bit simpler.
36255
36256         PluginDatabase now stores both a PluginSet and a HashMap that maps
36257         plugin paths to PluginPackages. This allows us to quickly determine
36258         whether we already have a PluginPackage instantiated for a particular
36259         path. The new add/remove methods handle the modification of these two
36260         collections.
36261
36262         A nice side effect of all this is that refresh() no longer copies any
36263         HashSets.
36264
36265         Reviewed by Mitz Pettel.
36266
36267         * plugins/PluginDatabase.cpp:
36268         (WebCore::PluginDatabase::refresh): Unload any plugins that have been
36269         deleted from disk, and add any plugins that either weren't installed
36270         last time, or have changed since last time.
36271         (WebCore::PluginDatabase::getDeletedPlugins): Added.
36272         (WebCore::PluginDatabase::add): Added. Returns whether or not the
36273         PluginPackage was actually added to the database (duplicates won't be
36274         added).
36275         (WebCore::PluginDatabase::remove): Added.
36276         * plugins/PluginDatabase.h:
36277         * plugins/PluginPackage.h:
36278         (WebCore::PluginPackage::path): Added.
36279         (WebCore::PluginPackage::lastModified): Added.
36280         * plugins/gtk/PluginDatabaseGtk.cpp:
36281         (WebCore::PluginDatabase::getPluginPathsInDirectories): Renamed from
36282         getPluginsInDirectories. Now fills a HashSet of Strings instead of
36283         instantiated PluginPackages.
36284         * plugins/win/PluginDatabaseWin.cpp:
36285         (WebCore::addPluginPathsFromRegistry): Ditto.
36286         (WebCore::PluginDatabase::getPluginPathsInDirectories): Ditto.
36287
36288 2008-03-29  Adam Roben  <aroben@apple.com>
36289
36290         Change getPluginsInDirectories to use an out parameter
36291
36292         This avoids copying a HashSet.
36293
36294         Reviewed by Mitz Pettel.
36295
36296         * plugins/PluginDatabase.cpp:
36297         (WebCore::PluginDatabase::refresh):
36298         * plugins/PluginDatabase.h:
36299         * plugins/gtk/PluginDatabaseGtk.cpp:
36300         (WebCore::PluginDatabase::getPluginsInDirectories):
36301         * plugins/win/PluginDatabaseWin.cpp:
36302         (WebCore::PluginDatabase::getPluginsInDirectories):
36303
36304 2008-03-29  Adam Roben  <aroben@apple.com>
36305
36306         Make some PluginPackage methods return const String&
36307
36308         Reviewed by Mitz Pettel.
36309
36310         * plugins/PluginPackage.h:
36311
36312 2008-03-29  Adam Roben  <aroben@apple.com>
36313
36314         Rename PluginDatabase's "PluginPaths" to "PluginDirectories"
36315
36316         The code expects these paths to all be directories, so it seems good
36317         to refer to them as such.
36318
36319         This patch just changes "Paths" to "Directories" and "Path" to
36320         "Directory".
36321
36322         Reviewed by Mitz Pettel.
36323
36324         * platform/qt/TemporaryLinkStubs.cpp:
36325         * platform/wx/TemporaryLinkStubs.cpp:
36326         * plugins/PluginDatabase.cpp:
36327         (WebCore::PluginDatabase::installedPlugins):
36328         (WebCore::PluginDatabase::refresh):
36329         * plugins/PluginDatabase.h:
36330         (WebCore::PluginDatabase::setPluginDirectories):
36331         * plugins/gtk/PluginDatabaseGtk.cpp:
36332         (WebCore::PluginDatabase::getPluginsInDirectories):
36333         * plugins/win/PluginDatabaseWin.cpp:
36334         (WebCore::PluginDatabase::getPluginsInDirectories):
36335         (WebCore::safariPluginsDirectory):
36336         (WebCore::PluginDatabase::defaultPluginDirectories):
36337         (WebCore::PluginDatabase::isPreferredPluginDirectory):
36338         * plugins/win/PluginPackageWin.cpp:
36339         (WebCore::PluginPackage::compare):
36340
36341 2008-03-29  Adam Roben  <aroben@apple.com>
36342
36343         Remove PlatformFileTime
36344
36345         This typedef is time_t on all platforms, so we can just get rid of the
36346         typedef.
36347
36348         Reviewed by Mitz Pettel.
36349
36350         * platform/FileSystem.h:
36351         * plugins/PluginPackage.cpp:
36352         * plugins/PluginPackage.h:
36353
36354 2008-03-29  Adam Roben  <aroben@apple.com>
36355
36356         Change PlatformFileTime on Windows to be time_t
36357
36358         This matches other platforms and our existing functions in
36359         FileSystem.h. It will also let us get rid of PlatformFileTime
36360         altogether.
36361
36362         Reviewed by Mitz Pettel.
36363
36364         * platform/FileSystem.h: Change PlatformFileTime to time_t on Windows.
36365         * plugins/win/PluginDatabaseWin.cpp:
36366         (WebCore::addPluginsFromRegistry): Use getFileModificationTime to get
36367         the modification time to pass to PluginPackage::create.
36368         (WebCore::PluginDatabase::getPluginsInPaths): Ditto.
36369         * plugins/win/PluginPackageWin.cpp:
36370         (WebCore::PluginPackage::hash): Updated to use m_lastModified as a
36371         time_t.
36372         (WebCore::PluginPackage::equal): Ditto.
36373
36374 2008-03-29  Adam Roben  <aroben@apple.com>
36375
36376         Make PluginPackage work like our other RefCounted classes
36377
36378         PluginPackage now starts with a ref count of 1, and its createPackage
36379         method now returns a PassRefPtr instead of a raw pointer.
36380
36381         Reviewed by Darin Adler.
36382
36383         * plugins/PluginPackage.cpp:
36384         (WebCore::PluginPackage::PluginPackage): Removed explicit call to the
36385         RefCounted constructor so that we'll start with a ref count of 1.
36386         (WebCore::PluginPackage::createPackage): Changed to return a
36387         PassRefPtr.
36388         * plugins/PluginPackage.h:
36389         * plugins/gtk/PluginDatabaseGtk.cpp:
36390         (WebCore::PluginDatabase::getPluginsInPaths): Changed to store the
36391         newly-created PluginPackage in a RefPtr.
36392         * plugins/win/PluginDatabaseWin.cpp:
36393         (WebCore::addPluginsFromRegistry): Ditto.
36394         (WebCore::PluginDatabase::getPluginsInPaths): Ditto.
36395
36396 2008-03-29  Adam Roben  <aroben@apple.com>
36397
36398         Fix Bug 18214: WebKit will sometimes load duplicate plugins
36399
36400         <http://bugs.webkit.org/show_bug.cgi?id=18214>
36401
36402         We now compare 3 things to determine if two PluginPackages are equal:
36403           1) Name
36404           2) Description
36405           3) Supported MIME types
36406
36407         This matches Gecko's equality logic for plugins (implemented in
36408         nsPluginTag::Equals).
36409
36410         Reviewed by Darin Adler.
36411
36412         * plugins/win/PluginPackageWin.cpp:
36413         (WebCore::PluginPackage::hash): Use the above-mentioned 3 criteria to
36414         calculate the hash.
36415         (WebCore::PluginPackage::equal): Use the above-mentioned 3 criteria to
36416         determine equality.
36417
36418 2008-03-31  Simon Hausmann  <hausmann@webkit.org>
36419
36420         Fix the Qt build.
36421
36422         ResourceHandleInternal.h references ResourceHandle::fireFailure, so include
36423         ResourceHandle.h.
36424
36425         * platform/network/ResourceHandleInternal.h:
36426
36427 2008-03-31  Rob Buis  <buis@kde.org>
36428
36429         Reviewed by Darin.
36430
36431         http://bugs.webkit.org/show_bug.cgi?id=15595
36432         marker property doesn't show up correctly as "shorthand" in inspector
36433
36434         Make sure parsing the marker property sets the individual
36435         marker properties as implicit with marker as shorthand.
36436         Also let CSSStyleDecleration::getPropertyValue return
36437         the correct value for the marker property.
36438
36439         * css/CSSMutableStyleDeclaration.cpp:
36440         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
36441         * css/CSSParser.cpp:
36442         * css/CSSParser.h:
36443         (WebCore::ShorthandScope::ShorthandScope):
36444         (WebCore::ShorthandScope::~ShorthandScope):
36445         * css/SVGCSSParser.cpp:
36446         (WebCore::CSSParser::parseSVGValue):
36447
36448 2008-03-30  Eric Seidel  <eric@webkit.org>
36449
36450         Reviewed by Oliver.
36451
36452         Make AMatthews life easier -- fix the SVG_FILTERS build
36453
36454         Build fix only, no tests.
36455
36456         * svg/SVGComponentTransferFunctionElement.cpp:
36457         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
36458         * svg/SVGFEColorMatrixElement.cpp:
36459         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
36460         * svg/SVGFEDiffuseLightingElement.cpp:
36461         * svg/SVGFEGaussianBlurElement.cpp:
36462         * svg/SVGFEImageElement.cpp:
36463         (WebCore::SVGFEImageElement::SVGFEImageElement):
36464         * svg/SVGFESpecularLightingElement.cpp:
36465         * svg/SVGFETurbulenceElement.cpp:
36466         * svg/SVGFilterElement.cpp:
36467         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
36468         * svg/graphics/filters/SVGFEBlend.cpp:
36469         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
36470         * svg/graphics/filters/SVGFEComposite.cpp:
36471         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
36472         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
36473         * svg/graphics/filters/SVGFEImage.cpp:
36474         * svg/graphics/filters/SVGFEMerge.cpp:
36475         * svg/graphics/filters/SVGFEMorphology.cpp:
36476         * svg/graphics/filters/SVGFEOffset.cpp:
36477         * svg/graphics/filters/SVGFESpecularLighting.cpp:
36478         * svg/graphics/filters/SVGFETurbulence.cpp:
36479
36480 2008-03-30  Dan Bernstein  <mitz@apple.com>
36481
36482         Reviewed by Sam Weinig.
36483
36484         - fix http://bugs.webkit.org/show_bug.cgi?id=18115
36485           REGRESSION (r31250): Incomplete repaint of GoogleReader sidebar while reading unread posts
36486
36487         Test: fast/repaint/lines-with-layout-delta.html
36488
36489         * rendering/RenderObject.cpp:
36490         (WebCore::RenderObject::repaintRectangle): Made this method take layout
36491         delta into account.
36492
36493 2008-03-30  Dan Bernstein  <mitz@apple.com>
36494
36495         Reviewed by Maciej Stachowiak.
36496
36497         - fix assertion failure in CSSParser.cpp's equalIgnoringCase() when
36498           parsing certain transforms.
36499
36500         Test: fast/css/transform-function-lowercase-assert.html
36501
36502         * css/CSSParser.cpp:
36503         (WebCore::TransformOperationInfo::TransformOperationInfo): Changed to
36504         always pass a lowercase string as the second argument of
36505         equalIgnoringCase().
36506
36507 2008-03-30  Mark Rowe  <mrowe@apple.com>
36508
36509         ARM build fix.
36510
36511         * platform/text/AtomicString.cpp:
36512         (WebCore::equal): Use correct variable name.
36513
36514 2008-03-30  Hiroyuki Ikezoe  <poincare@ikezoe.net>
36515
36516         Reviewed by Alp Toker.
36517
36518         http://bugs.webkit.org/show_bug.cgi?id=18036
36519         Rendering invalid japanese characters with pango backend.
36520
36521         * platform/graphics/gtk/FontPlatformDataPango.cpp:
36522         (FontPlatformData::FontPlatformData): Set PangoFontDescription for
36523         PangoContext explicitly to use proper font.
36524
36525 2008-03-30  Rob Buis  <buis@kde.org>
36526
36527         Reviewed by Oliver.
36528
36529         http://bugs.webkit.org/show_bug.cgi?id=17633
36530         SVG: modifying x & y attribute of text element from JS fails
36531
36532         Make SVG text relayout when x, y attribute is changed from js.
36533
36534         * svg/SVGTextContentElement.cpp:
36535         (WebCore::SVGTextContentElement::isKnownAttribute):
36536         * svg/SVGTextContentElement.h:
36537         * svg/SVGTextElement.cpp:
36538         (WebCore::SVGTextElement::svgAttributeChanged):
36539         * svg/SVGTextElement.h:
36540         * svg/SVGTextPositioningElement.cpp:
36541         (WebCore::SVGTextPositioningElement::isKnownAttribute):
36542         * svg/SVGTextPositioningElement.h:
36543
36544 2008-03-28  Maciej Stachowiak  <mjs@apple.com>
36545
36546         Reviewed by Oliver.
36547
36548         - yet still more bindings speedup
36549         
36550         Make AtomicString straight from UString in handcoded bindings
36551
36552         * bindings/js/JSElementCustom.cpp:
36553         (WebCore::JSElement::setAttribute):
36554         (WebCore::JSElement::setAttributeNS):
36555         * dom/Document.cpp:
36556         (WebCore::Document::createElement):
36557         * dom/Document.h:
36558         * html/HTMLDocument.cpp:
36559         (WebCore::HTMLDocument::createElement):
36560         * html/HTMLDocument.h:
36561
36562 2008-03-29  Sam Weinig  <sam@webkit.org>
36563
36564         Reviewed by Darin Adler.
36565
36566         Fix for <rdar://problem/5828873>
36567
36568         Since NSURL is allowing invalid urls to be loaded, we need to
36569         check the URL validity at the ResourceHandle level and fire off
36570         a cannotShowURL error.
36571
36572         * loader/FrameLoader.cpp:
36573         (WebCore::FrameLoader::cannotShowURLError):
36574         * loader/FrameLoader.h:
36575         * loader/ResourceLoader.cpp:
36576         (WebCore::ResourceLoader::cannotShowURLError):
36577         (WebCore::ResourceLoader::wasBlocked):
36578         (WebCore::ResourceLoader::cannotShowURL):
36579         * loader/ResourceLoader.h:
36580         * platform/KURL.h:
36581         (WebCore::KURL::isValid):
36582         * platform/network/ResourceHandle.cpp:
36583         (WebCore::ResourceHandle::create):
36584         (WebCore::ResourceHandle::scheduleFailure):
36585         (WebCore::ResourceHandle::fireFailure):
36586         (WebCore::portAllowed):
36587         * platform/network/ResourceHandle.h:
36588         (WebCore::ResourceHandle::):
36589         * platform/network/ResourceHandleClient.h:
36590         (WebCore::ResourceHandleClient::cannotShowURL):
36591         * platform/network/ResourceHandleInternal.h:
36592         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
36593
36594 2008-03-29  Darin Adler  <darin@apple.com>
36595
36596         Reviewed by Mitz.
36597
36598         - more bindings speedup
36599
36600         When I changed the temporary variables to be UString that means that the
36601         valueToString functions also need to return UString to avoid converting
36602         from UString to String twice.
36603
36604         * bindings/js/kjs_binding.cpp:
36605         (WebCore::valueToStringWithNullCheck): Changed return value to UString.
36606         (WebCore::valueToStringWithUndefinedOrNullCheck): Ditto.
36607         * bindings/js/kjs_binding.h: Ditto.
36608
36609 2008-03-29  Darin Adler  <darin@apple.com>
36610
36611         Reviewed by Sam.
36612
36613         * DerivedSources.make: Removed temporary remove-stray-JSRGBColor build rule.
36614
36615 2008-03-29  Darin Adler  <darin@apple.com>
36616
36617         Reviewed by Sam.
36618
36619         - tweak handling of the class attribute to speed up code that
36620           sets it but never needs to parse it
36621
36622         6% speedup of Acid3 test 26
36623
36624         * css/CSSStyleSelector.cpp:
36625         (WebCore::CSSStyleSelector::matchRules): Change to use non-virtual
36626         classNames function since the hasClass bit can only be set for a
36627         StyledElement.
36628         (WebCore::CSSStyleSelector::checkOneSelector): Ditto. Also
36629         streamlined the code a bit for the tag matching as well.
36630
36631         * dom/ClassNames.cpp:
36632         (WebCore::hasNonASCIIOrUpper): Added. This function does what other
36633         callers seem to want isLower() to do. We should merge this with
36634         isLower() in a subsequent cleanup pass.
36635         (WebCore::ClassNamesData::createVector): Renamed from parseClassAttribute.
36636         Turns the string into a vector.
36637         (WebCore::ClassNamesData::containsAll): Added. Used by getElementsByClassName.
36638
36639         * dom/ClassNames.h: Added a separate ClassNameData class so we could hold
36640         the string and case folding flag as well as the vector. Changed ClassNames
36641         to have a set function rather than a parseClassAttribute function. Removed
36642         the "static" from isClassWhitespace. There's no reason to ask for internal linkage.
36643
36644         * dom/ClassNodeList.cpp:
36645         (WebCore::ClassNodeList::ClassNodeList): Use constructor instead of the
36646         parseClassAttribute function.
36647         (WebCore::ClassNodeList::nodeMatches): Get rid of unnneeded isElementNode
36648         check, since hasClass will only be true for StyledElement nodes. Use the new
36649         containsAll function in ClassNames instead of having a loop here.
36650
36651         * dom/ClassNodeList.h: Removed unneeded forward declaration.
36652
36653         * dom/Document.cpp: Removed unneeded include.
36654
36655         * dom/Element.cpp:
36656         (WebCore::Element::cloneNode): Changed code to copy attributes to use a
36657         function call instead of the assignment operator. This paves the way to
36658         making the function more efficient, using a virtual function.
36659         (WebCore::Element::setAttributeMap): Updated for PassRefPtr and for name change
36660         (element -> m_element).
36661         (WebCore::Element::createAttributeMap): Changed to use create function instead of
36662         calling the constructor directly.
36663         * dom/Element.h: Removed unneeded virtual getClassNames function.
36664         Changed the argument to setAttributeMap to be a PassRefPtr.
36665
36666         * dom/NamedAttrMap.cpp:
36667         (WebCore::NamedAttrMap::NamedAttrMap): Updated for name change (element -> m_element).
36668         (WebCore::NamedAttrMap::getNamedItem): Ditto.
36669         (WebCore::NamedAttrMap::removeNamedItem): Ditto.
36670         (WebCore::NamedAttrMap::setNamedItem): Ditto.
36671         (WebCore::NamedAttrMap::item): Ditto.
36672         (WebCore::NamedAttrMap::detachFromElement): Ditto.
36673         (WebCore::NamedAttrMap::setAttributes): Renamed this from the assignment operator.
36674         (WebCore::NamedAttrMap::addAttribute): Ditto.
36675         (WebCore::NamedAttrMap::removeAttribute): Ditto.
36676         (WebCore::NamedAttrMap::isReadOnlyNode): Ditto.
36677         * dom/NamedAttrMap.h: Removed the copy constructor and assignment operator and added
36678         a new function, setAttributes, possibly to be made virtual in the future. Made
36679         isReadOnlyNode non-virtual. Renamed element -> m_element. Made constructor protected
36680         and added a create function.
36681
36682         * dom/NamedMappedAttrMap.cpp:
36683         (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Changed constructor parameter to
36684         take a StyledElement.
36685         (WebCore::NamedMappedAttrMap::setClass): Changed to use the new set function.
36686
36687         * dom/NamedMappedAttrMap.h: Made constructor private and added a create function.
36688         Replaced theparseClassAttribute function with clearClass and setClass functions.
36689         Replaced the getClassNames function with a classNames function returning a reference
36690         instead of a pointer.
36691
36692         * dom/NamedNodeMap.h: Changed to start refcount at 1 instead of 0. Removed unneeded
36693         virtual function isReadOnlyNode.
36694
36695         * dom/StyledElement.cpp:
36696         (WebCore::StyledElement::parseMappedAttribute): Rewrote class attribute handling to
36697         use new function names and took out uneeded special case for null attribute.
36698         (WebCore::StyledElement::createAttributeMap): Changed to use create function instead
36699         of a direct call to new.
36700
36701         * dom/StyledElement.h: Replaced the virtual getClassNames function with a non-virtual
36702         inline classNames function.
36703
36704         * html/HTMLElement.cpp:
36705         (WebCore::HTMLElement::cloneNode): Changed code to copy attributes to use a
36706         function call instead of the assignment operator.
36707
36708         * html/HTMLTokenizer.cpp:
36709         (WebCore::Token::addAttribute): Use create function instead of a a direct call
36710         to new.
36711
36712         * html/HTMLViewSourceDocument.cpp:
36713         (WebCore::HTMLViewSourceDocument::createContainingTable): Use RefPtr and the new
36714         create function.
36715         (WebCore::HTMLViewSourceDocument::addViewSourceToken): Ditto.
36716         (WebCore::HTMLViewSourceDocument::addSpanWithClassName): Ditto.
36717         (WebCore::HTMLViewSourceDocument::addLine): Ditto.
36718         (WebCore::HTMLViewSourceDocument::addText): Ditto.
36719         (WebCore::HTMLViewSourceDocument::addLink): Ditto.
36720         * html/HTMLViewSourceDocument.h: Ditto.
36721
36722         * svg/SVGUseElement.cpp:
36723         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Changed code to copy
36724         attributes to use a function call instead of the assignment operator.
36725         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement): Ditto.
36726
36727 2008-03-29  Sam Weinig  <sam@webkit.org>
36728
36729         Reviewed by Brady Eidson.
36730
36731         Fix crash when canceling a resource load while port blocked failure
36732         timer is going.
36733
36734         Test: fast/loader/cancel-load-during-port-block-timer.html
36735
36736         * platform/network/ResourceHandle.cpp:
36737         (WebCore::ResourceHandle::scheduleBlockedFailure):
36738         (WebCore::ResourceHandle::fireBlockedFailure):
36739         * platform/network/ResourceHandleInternal.h:
36740         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
36741         Make the Timer a member variable of ResourceHandleInternal so
36742         that it can be canceled if the ResourceHandle is destroyed.
36743
36744 2008-03-28  Stephanie  <slewis@apple.com>
36745
36746         Fix 64bit build
36747
36748         * WebCore.LP64.exp:
36749         * loader/archive/cf/LegacyWebArchiveMac.mm:
36750         (WebCore::createResourceResponseFromMacArchivedData):
36751
36752 2008-03-28  Steve Falkenburg  <sfalken@apple.com>
36753
36754         Enabled LTCG on files within "page".
36755
36756         Rubber stamped by Oliver.
36757
36758         * WebCore.vcproj/WebCore.vcproj:
36759
36760 2008-03-28  Dan Bernstein  <mitz@apple.com>
36761
36762         Reviewed by Dave Hyatt.
36763
36764         - fix a percentage background position regression from r31389
36765
36766         Test: fast/backgrounds/background-position-1.html
36767
36768         * rendering/Length.h:
36769         (WebCore::Length::calcValue): Divide by 100.
36770         (WebCore::Length::calcMinValue): Ditto.
36771
36772 2008-03-28  David Hyatt  <hyatt@apple.com>
36773
36774         Back out the Ahem font antialiasing hack, since it is now no longer required for LCD antialiased text
36775         to match the reference rendering on Acid 3.
36776
36777         * platform/graphics/SimpleFontData.h:
36778         * platform/graphics/mac/FontMac.mm:
36779         (WebCore::Font::drawGlyphs):
36780         * platform/graphics/mac/SimpleFontDataMac.mm:
36781         (WebCore::SimpleFontData::platformInit):
36782         * platform/graphics/win/FontCGWin.cpp:
36783         (WebCore::Font::drawGlyphs):
36784         * platform/graphics/win/SimpleFontDataCGWin.cpp:
36785         (WebCore::SimpleFontData::platformInit):
36786         * rendering/RenderBlock.cpp:
36787         (WebCore::RenderBlock::positionNewFloats):
36788
36789 2008-03-28  Brady Eidson  <beidson@apple.com>
36790
36791         Reviewed by Darin Adler
36792
36793         More Kit->Core WebArchive changes.
36794
36795         Create an archive from the current selection in a frame
36796
36797         * WebCore.base.exp:
36798
36799         * loader/archive/cf/LegacyWebArchive.cpp:
36800         (WebCore::LegacyWebArchive::createFromSelection):
36801         * loader/archive/cf/LegacyWebArchive.h:
36802
36803 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
36804
36805         - Somehow managed to duplicate code :(
36806
36807         * xml/XMLHttpRequest.cpp:
36808         (WebCore::XMLHttpRequest::didFinishLoading):
36809
36810 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
36811
36812         - Missed some changes in previous checkin.
36813
36814         * xml/XMLHttpRequest.cpp:
36815         (WebCore::XMLHttpRequest::send): Get identifier from synchronous loader.
36816         (WebCore::XMLHttpRequest::didFinishLoading):
36817
36818 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
36819
36820         Reviewed by Adam.
36821
36822         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
36823         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
36824         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
36825         - Send the XMLHttpRequest data to the Inspector Controller.
36826
36827         * loader/FrameLoader.cpp: Return the identifier for this resource since we need it in the XHR case.
36828         (WebCore::FrameLoader::loadResourceSynchronously):
36829         * loader/FrameLoader.h: Ditto.
36830         * page/InspectorController.cpp:
36831         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource): We only need the data since the type will
36832         be XHR and the encoding is not used (we decoded earlier).
36833         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource): Locking is necessary when setting and clearing
36834         the KJS::UString::Rep.
36835         (WebCore::InspectorResource::setXMLHttpRequestProperties):
36836         (WebCore::InspectorResource::sourceString): Return the decoded source.
36837         (WebCore::addSourceToFrame): No longer do the decoding here, it has been encapsulated in the InspectorResource.
36838         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
36839         * page/InspectorController.h: Pass a UString instead of copying to a WebCore::String.  In case we
36840         never ask for the string's contents this will save us an extra copy.
36841         * xml/XMLHttpRequest.cpp:
36842         (WebCore::XMLHttpRequest::send): In the synchronous load case we normally do not keep the identifier
36843         but we need it to find the InspectorResource in order to tell it that it was loaded via XHR.
36844         (WebCore::XMLHttpRequest::didFinishLoading): Tell the InspectorController that its resource was loaded
36845         via XHR.
36846         * xml/XMLHttpRequest.h: Ditto.
36847
36848 2008-03-28  Brady Eidson  <beidson@apple.com>
36849
36850         Reviewed by Sam Weinig
36851
36852         WebArchive saga continues - Can now make archives from ranges in WebCore
36853
36854         Again, previous layout test coverage exercised this code
36855
36856         * WebCore.base.exp:
36857
36858         * editing/markup.cpp:
36859         (WebCore::createFullMarkup): Added a "markup from range" variant that copies the previous WebKit implementation
36860         * editing/markup.h:
36861
36862         * loader/archive/cf/LegacyWebArchive.cpp:
36863         (WebCore::LegacyWebArchive::create):
36864         * loader/archive/cf/LegacyWebArchive.h:
36865
36866 2008-03-28  Stephanie Lewis  <slewis@apple.com>
36867
36868         windows build fix.
36869
36870         * platform/win/MainThreadWin.cpp:
36871         (WebCore::initializeThreadingAndMainThread):
36872
36873 2008-03-28  Brady Eidson  <beidson@apple.com>
36874
36875         Reviewed by Sam Weinig
36876
36877         More Kit->Core webarchive code movement
36878
36879         * WebCore.base.exp:
36880         * editing/markup.cpp:
36881         (WebCore::createFullMarkup): Replacement for [DOMNode markupString], creating full markup at this node including 
36882           the document type string, which the WebKit implementation did indirectly
36883         * editing/markup.h:
36884
36885 2008-03-28  Darin Adler  <darin@apple.com>
36886
36887         Reviewed by Maciej.
36888
36889         - cut down on copying and refcount churn a little by using references a bit more for
36890           KURL and String
36891
36892         * bindings/js/JSXMLHttpRequest.cpp:
36893         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen): Use const KURL& instead of KURL.
36894         * css/StyleSheet.h:
36895         (WebCore::StyleSheet::href): Return const String& instead of String.
36896         (WebCore::StyleSheet::title): Ditto.
36897         * dom/Document.cpp:
36898         (WebCore::Document::completeURL): Use const KURL* for a local variable instead of
36899         KURL to avoid copying the KURL.
36900         * dom/Element.cpp:
36901         (WebCore::Element::baseURI): Use const KURL& instead of KURL.
36902         * html/HTMLAnchorElement.cpp:
36903         (WebCore::HTMLAnchorElement::hostname): Ditto.
36904         * html/HTMLFrameElementBase.cpp:
36905         (WebCore::HTMLFrameElementBase::isURLAllowed): Ditto.
36906         * html/HTMLKeygenElement.cpp: Removed unneeded include of KURL.
36907         * page/ContextMenuController.cpp:
36908         (WebCore::ContextMenuController::contextMenuItemSelected): Get rid of temporary
36909         KURL.
36910         * platform/SecurityOrigin.cpp:
36911         (WebCore::SecurityOrigin::createForFrame): Use const KURL& instead of KURL.
36912
36913 2008-03-28  Alexey Proskuryakov  <ap@webkit.org>
36914
36915         Reviewed by Sam Weinig.
36916
36917         Fix a dtoa thread safety issue.
36918
36919         * ForwardingHeaders/kjs/InitializeThreading.h: Added.
36920         * platform/MainThread.cpp:
36921         * platform/MainThread.h:
36922         (WebCore::initializeThreadingAndMainThread): Call KJS::initializeThreading instead of its
36923         WTF counterpart.
36924
36925 2008-03-28  Brent Fulgham  <bfulgham@gmail.com>
36926
36927         Reviewed by Maciej, landed by Brady
36928
36929         Correct build regression (http://bugs.webkit.org/show_bug.cgi?id=18148)
36930
36931         * platform/graphics/win/GraphicsContextCairoWin.cpp:
36932         (WebCore::GraphicsContext::getWindowsContext):
36933         (WebCore::GraphicsContext::releaseWindowsContext):
36934
36935 2008-03-28  Brady Eidson  <beidson@apple.com>
36936
36937         Reviewed by Darin
36938
36939         "Yet another transitional step" to empty out WebKit-based code for archiving.
36940
36941         With this patch, the key operation of "Creating a WebArchive rooted at a single Node" takes place
36942         entirely within WebCore, and opens the door to saving WebArchives on Windows.
36943
36944         This is another "zero behavior change" patch, and current editing/ and webarchive/ layout tests
36945         covered the relevant code
36946
36947         * WebCore.base.exp:
36948         * loader/archive/cf/LegacyWebArchive.cpp:
36949         (WebCore::LegacyWebArchive::create):
36950         * loader/archive/cf/LegacyWebArchive.h:
36951
36952 2008-03-28  Jasper Bryant-Greene  <jasper@unix.geek.nz>
36953
36954         Reviewed by Alp Toker.
36955
36956         http://bugs.webkit.org/show_bug.cgi?id=18061
36957         PlatformScrollBarGtk attempts to allocate negative width and/or height for widgets
36958
36959         Missing clampNegativeToZero() call meant that we tried to allocate widgets with negative width and/or height.
36960
36961         * platform/gtk/PlatformScrollBarGtk.cpp:
36962         (PlatformScrollbar::geometryChanged):
36963
36964 2008-03-28  Brady Eidson  <beidson@apple.com>
36965
36966         Reviewed by Darin
36967
36968         Using convertUTF16ToUTF8() from WTF, add a helper function that gives you a UTF8 SharedBuffer
36969         created from a String.
36970
36971         * ForwardingHeaders/wtf/unicode/UTF8.h: Added.
36972         * platform/text/PlatformString.h:
36973         * platform/text/String.cpp:
36974         (WebCore::utf8Buffer):
36975
36976 2008-03-28  Darin Adler  <darin@apple.com>
36977
36978         Reviewed by Adam.
36979
36980         - eliminate a tiny bit of unnecessary refcount churn
36981
36982         * bindings/js/JSEventTargetBase.cpp:
36983         (WebCore::eventNameForPropertyToken): Return const AtomicString&.
36984         * bindings/js/JSEventTargetBase.h:
36985         (WebCore::JSEventTargetBase::getValueProperty): Update for above change.
36986         (WebCore::JSEventTargetBase::putValueProperty): Ditto.
36987
36988 2008-03-28  Simon Hausmann  <hausmann@webkit.org>
36989
36990         Fix the Qt build.
36991
36992         * rendering/Length.h: Include wtf/MathExtras.h for round().
36993
36994 2008-03-28  David Hyatt  <hyatt@apple.com>
36995
36996         Fix a bug where background-position truncates instead of rounding when it evaluates to fractional
36997         pixel values.  This matches other browsers.
36998
36999         Reviewed by maciej
37000
37001         Added fast/backgrounds/background-position-rounding.html
37002
37003         * rendering/Length.h:
37004         (WebCore::Length::calcValue):
37005         (WebCore::Length::calcMinValue):
37006         * rendering/RenderBox.cpp:
37007         (WebCore::RenderBox::calculateBackgroundImageGeometry):
37008
37009 2008-03-27  Kevin Ollivier  <kevino@theolliviers.com>
37010
37011         wx build fix. Return a default value for operator == 
37012         when !USE(WXGC) (not implemented in that case).
37013
37014         * platform/graphics/wx/AffineTransformWx.cpp:
37015         (WebCore::AffineTransform::operator== ):
37016
37017 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
37018
37019         - fix build
37020
37021         * svg/SVGGlyphMap.h:
37022         (WebCore::GlyphMapNode::create):
37023
37024 2008-03-27  Brady Eidson  <beidson@apple.com>
37025
37026         Forgot a small requested change before committing
37027
37028         * loader/DocumentLoader.cpp:
37029         (WebCore::DocumentLoader::mainResource):
37030
37031 2008-03-27  Brady Eidson  <beidson@apple.com>
37032
37033         Reviewed by Adam Roben
37034
37035         Move [WebDataSource mainResource] and [WebDataSource subresources] down into WebCore
37036         as the push to core-ify WebArchives continues.
37037
37038         This patch also introduces a behavior change.  WebCore allows ArchiveResources with null or empty data.  
37039         WebKit has had the inexplicable distinction of allowing empty Data in a WebResource, but not null.  
37040         Since WebResource is API, I decided to leave it be to avoid a behavior change.  But internally created resources 
37041         (as in "while archiving a page") are accepting of null or empty data.
37042
37043         This actually fixes a bug where not all subframes are archived, and resulted in a layout test change.
37044
37045         * WebCore.base.exp:
37046         * loader/DocumentLoader.cpp:
37047         (WebCore::DocumentLoader::archiveResourceForURL): Make this const
37048         (WebCore::DocumentLoader::mainResource):
37049         (WebCore::DocumentLoader::subresource): Make this const and relocate
37050         (WebCore::DocumentLoader::getSubresources):
37051         * loader/DocumentLoader.h:
37052
37053 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
37054
37055         Reviewed by Darin.
37056
37057         - fixed many buildbot leaks in glyph map code
37058
37059         * svg/SVGGlyphMap.h:
37060         (WebCore::GlyphMapNode::create): Use explicit create pattern, to avoid overreffing and therefore leaking
37061         these objects.
37062         (WebCore::SVGGlyphMap::add): Call create instead of using new.
37063
37064 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
37065
37066         Rubber stamped by Oliver.
37067
37068         - re-fix Acid3, some code was incorrectly moved when fixing the Qt build
37069
37070         * rendering/SVGRootInlineBox.cpp:
37071         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
37072
37073 2008-03-27  Simon Hausmann  <hausmann@webkit.org>
37074
37075         Fix compilation against Qt 4.4 and one missing SVG_FONTS #ifdef.
37076
37077         * platform/graphics/qt/FontQt.cpp:
37078         (WebCore::Font::floatWidth): Forgot to adjust this signture for Qt 4.4.
37079         * bindings/js/JSSVGElementWrapperFactory.cpp: Added a missing #ifdef
37080         for SVG_FONTS
37081
37082 2008-03-27  Simon Hausmann  <hausmann@webkit.org>
37083
37084         Reviewed by Eric Seidel.
37085
37086         Fix the Qt build and the build without ENABLE(SVG_FONTS)
37087
37088         * WebCore.pro: Removed ElementTimeControl.idl as it's ObjC only and
37089         removed some SVG_FONTS specific idl files from IDL_BINDINGS for now
37090         * bindings/js/JSSVGElementWrapperFactory.cpp: altGlyph is
37091         ENABLE(SVG_FONTS) only
37092         * platform/graphics/qt/FontQt.cpp:
37093         (WebCore::Font::floatWidth): Adjust the function signature to Font.h
37094         * rendering/SVGRootInlineBox.cpp:
37095         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Fix
37096         compilation without SVG_FONTS
37097         * svg/SVGAltGlyphElement.cpp: Compile only if ENABLE(SVG_FONTS)
37098         * svg/SVGAltGlyphElement.h: Ditto
37099         * svg/svgtags.in: hkern and altGlyph are SVG_FONTS only.
37100         * svg/SVGTSpanElement.cpp:
37101         (WebCore::SVGTSpanElement::childShouldCreateRenderer): Compile without
37102         SVG_FONTS
37103         * svg/SVGTextElement.cpp:
37104         (WebCore::SVGTextElement::childShouldCreateRenderer): Ditto
37105         * svg/SVGTextPathElement.cpp:
37106         (WebCore::SVGTextPathElement::childShouldCreateRenderer):
37107
37108 2008-03-26  Timothy Hatcher  <timothy@apple.com>
37109
37110         Rename some Inspector files to facilitate the up-coming UI refresh changes.
37111
37112         http://bugs.webkit.org/show_bug.cgi?id=17773
37113
37114         Rubber-stamped by Adam Roben.
37115
37116         * WebCore.vcproj/WebCore.vcproj:
37117         * page/inspector/Console.js: Copied from page/inspector/ConsolePanel.js.
37118         * page/inspector/ConsolePanel.js: Removed.
37119         * page/inspector/DocumentPanel.js: Removed.
37120         * page/inspector/ElementsPanel.js: Copied from page/inspector/DocumentPanel.js.
37121         * page/inspector/FontPanel.js: Removed.
37122         * page/inspector/FontView.js: Copied from page/inspector/FontPanel.js.
37123         * page/inspector/ImagePanel.js: Removed.
37124         * page/inspector/ImageView.js: Copied from page/inspector/ImagePanel.js.
37125         * page/inspector/NetworkPanel.js: Removed.
37126         * page/inspector/ResourcePanel.js: Removed.
37127         * page/inspector/ResourceView.js: Copied from page/inspector/ResourcePanel.js.
37128         * page/inspector/ResourcesPanel.js: Copied from page/inspector/NetworkPanel.js.
37129         * page/inspector/SourcePanel.js: Removed.
37130         * page/inspector/SourceView.js: Copied from page/inspector/SourcePanel.js.
37131         * page/inspector/WebKit.qrc:
37132         * page/inspector/inspector.html:
37133
37134 2008-03-26  Steve Falkenburg  <sfalken@apple.com>
37135
37136         Enable LTCG on css, dom files in WebCore
37137
37138         Reviewed by Stephanie.
37139
37140         * WebCore.vcproj/WebCore.vcproj:
37141
37142 2008-03-26  Stephanie Lewis  <slewis@apple.com>
37143
37144         Fix Windows Build
37145
37146         * WebCore.vcproj/WebCore.vcproj:
37147
37148 2008-03-26  Mark Rowe  <mrowe@apple.com>
37149
37150         Speculative GTK build fix.
37151
37152         * GNUmakefile.am:
37153
37154 2008-03-26  Mark Rowe  <mrowe@apple.com>
37155
37156         Mac build fix.
37157
37158         * WebCore.base.exp:  Remove nonexistent symbol from the export file.
37159
37160 2008-03-26  Sam Weinig  <sam@webkit.org>
37161
37162         Try and fix Gtk+ again.
37163
37164         * GNUmakefile.am:
37165
37166 2008-03-26  Dan Bernstein  <mitz@apple.com>
37167
37168         Reviewed by Dave Hyatt.
37169
37170         - fix <rdar://problem/5816522> REGRESSION (r30111-30112): Tahoe web cam website has some text in Chinese or japanese
37171
37172         * html/HTMLParser.cpp:
37173         (WebCore::HTMLParser::insertNode): Added call to beginParsingChildren()
37174         on the new node.
37175         (WebCore::HTMLParser::handleError): Ditto.
37176         (WebCore::HTMLParser::reopenResidualStyleTags): Ditto.
37177         (WebCore::HTMLParser::pushBlock): Removed incorrect call to
37178         beginParsingChildren() on the current node.
37179         * manual-tests/applet-finish-parsing-children.html: Added.
37180         * manual-tests/resources/DrawMessage.class: Added.
37181
37182 2008-03-26  Brady Eidson  <beidson@apple.com>
37183
37184         Reviewed by Darin
37185
37186         When we create a WebArchive, we walk every node from some starting point, asking each node
37187         along the way "What are your subresource URLs?"
37188
37189         That logic is currently in DOMNode in WebKitMac - this patch moves that ability down into
37190         WebCore::Node
37191
37192         * WebCore.base.exp:
37193         
37194         * dom/Node.cpp:
37195         (WebCore::Node::getSubresourceURLs):
37196         (WebCore::Node::getSubresourceAttributeStrings):  Virtual and empty.  Subclasses of Node that have 
37197           subresources will override it.
37198
37199         * dom/ProcessingInstruction.cpp:
37200         (WebCore::ProcessingInstruction::getSubresourceAttributeStrings):
37201         * dom/ProcessingInstruction.h:
37202         * html/HTMLBodyElement.cpp:
37203         (WebCore::HTMLBodyElement::getSubresourceAttributeStrings):
37204         * html/HTMLBodyElement.h:
37205         * html/HTMLEmbedElement.cpp:
37206         (WebCore::HTMLEmbedElement::getSubresourceAttributeStrings):
37207         * html/HTMLEmbedElement.h:
37208         * html/HTMLImageElement.cpp:
37209         (WebCore::HTMLImageElement::getSubresourceAttributeStrings):
37210         * html/HTMLImageElement.h:
37211         * html/HTMLInputElement.cpp:
37212         (WebCore::HTMLInputElement::getSubresourceAttributeStrings):
37213         * html/HTMLInputElement.h:
37214         * html/HTMLLinkElement.cpp:
37215         (WebCore::HTMLLinkElement::getSubresourceAttributeStrings):
37216         * html/HTMLLinkElement.h:
37217         * html/HTMLObjectElement.cpp:
37218         (WebCore::HTMLObjectElement::getSubresourceAttributeStrings):
37219         * html/HTMLObjectElement.h:
37220         * html/HTMLParamElement.cpp:
37221         (WebCore::HTMLParamElement::getSubresourceAttributeStrings):
37222         * html/HTMLParamElement.h:
37223         * html/HTMLScriptElement.cpp:
37224         (WebCore::HTMLScriptElement::getSubresourceAttributeStrings):
37225         * html/HTMLScriptElement.h:
37226         * html/HTMLTableCellElement.cpp:
37227         (WebCore::HTMLTableCellElement::getSubresourceAttributeStrings):
37228         * html/HTMLTableCellElement.h:
37229         * html/HTMLTableElement.cpp:
37230         (WebCore::HTMLTableElement::getSubresourceAttributeStrings):
37231         * html/HTMLTableElement.h:
37232         * svg/SVGCursorElement.cpp:
37233         (WebCore::SVGCursorElement::getSubresourceAttributeStrings):
37234         * svg/SVGCursorElement.h:
37235         * svg/SVGFEImageElement.cpp:
37236         (WebCore::SVGFEImageElement::getSubresourceAttributeStrings):
37237         * svg/SVGFEImageElement.h:
37238         * svg/SVGImageElement.cpp:
37239         (WebCore::SVGImageElement::getSubresourceAttributeStrings):
37240         * svg/SVGImageElement.h:
37241         * svg/SVGScriptElement.cpp:
37242         (WebCore::SVGScriptElement::getSubresourceAttributeStrings):
37243         * svg/SVGScriptElement.h:
37244
37245 2008-03-26  Dan Bernstein  <mitz@apple.com>
37246
37247         Reviewed by Dave Hyatt.
37248
37249         - maintain subpixel-antialiasing when drawing text with a simple shadow
37250
37251         * platform/graphics/mac/FontMac.mm:
37252         (WebCore::Font::drawComplexText): If the shadow has a zero blur radius,
37253         draw the shadow by drawing the text at an offset instead of relying on
37254         Core Graphics shadows.
37255         (WebCore::Font::drawGlyphs): Ditto.
37256         * platform/graphics/win/FontCGWin.cpp:
37257         (WebCore::Font::drawGlyphs): Ditto.
37258
37259 2008-03-26  Brady Eidson  <beidson@apple.com>
37260
37261         Reviewed by Mark Rowe
37262
37263         Part of the continued push to move WebArchive-related code down to WebCore, this
37264         moves [WebDataSource subresourceForURL:] down to DocumentLoader->subresource()
37265
37266         * WebCore.base.exp:
37267         * loader/DocumentLoader.cpp:
37268         (WebCore::DocumentLoader::subresource): Create an ArchiveResource from a CachedResource if it exists
37269           Otherwise, fallback to an ArchiveResource from the current Archive if any.  Otherwise, return null
37270         * loader/DocumentLoader.h:
37271
37272         * loader/archive/ArchiveResource.cpp:
37273         (WebCore::ArchiveResource::create):
37274         (WebCore::ArchiveResource::ArchiveResource):
37275         * loader/archive/ArchiveResource.h:
37276
37277 2008-03-26  Sam Weinig  <sam@webkit.org>
37278
37279         Fix Gtk+ build.
37280
37281         * GNUmakefile.am:
37282
37283 2008-03-26  Mark Rowe  <mrowe@apple.com>
37284
37285         Rubber-stamped by Brady Eidson.
37286
37287         Update FEATURE_DEFINES to be consistent with the other locations in which it is defined.
37288
37289         * Configurations/WebCore.xcconfig:
37290
37291 2008-03-26  Brent Fulgham  <bfulgham@gmail.com>
37292
37293         Reviewed by Adam Roben.
37294
37295         Add necessary files and build commands to vcproj files to
37296         build a Curl-based Windows WebKit.  For details, see
37297         http://bugs.webkit.org/show_bug.cgi?id=17985
37298
37299         * WebCore.vcproj/WebCore.vcproj:
37300
37301 2008-03-26  Adam Roben  <aroben@apple.com>
37302
37303         Record JS exceptions triggered by the Inspector's use of JSC
37304
37305         We now dump all exceptions returned from JavaScriptCore into the
37306         Inspector's console.
37307
37308         The HANDLE_EXCEPTION macro records the line on which the exception was
37309         returned. It calls a new private handleException method on
37310         InspectorController.
37311
37312         Reviewed by Kevin McCullough.
37313
37314         * page/InspectorController.cpp:
37315         (WebCore::InspectorController::callSimpleFunction): Made this be a
37316         member of InspectorController so that it can call handleException.
37317         (WebCore::addSourceToFrame): Pass the exception pointer on to inner
37318         JSC calls, and check it after those calls return.
37319         (WebCore::getResourceDocumentNode): Ditto.
37320         (WebCore::search): Ditto. Also changed the name/type of an existing
37321         exception variable to ExceptionCode ec.
37322         (WebCore::databaseTableNames): Ditto.
37323         (WebCore::moveByUnrestricted): Ditto.
37324         (WebCore::InspectorController::~InspectorController): Check for and
37325         record exceptions as we call JSC.
37326         (WebCore::InspectorController::focusNode): Ditto.
37327         (WebCore::InspectorController::scriptObjectReady): Ditto.
37328         (WebCore::addHeaders): Added an exception parameter.
37329         (WebCore::scriptObjectForRequest): Ditto.
37330         (WebCore::scriptObjectForResponse): Ditto.
37331         (WebCore::InspectorController::addScriptResource): Check for and
37332         record exceptions as we call JSC.
37333         (WebCore::InspectorController::addAndUpdateScriptResource): Ditto.
37334         (WebCore::InspectorController::removeScriptResource): Ditto. Also
37335         moved the call to setScriptObject to before the JSC calls so that it
37336         will always be called even if we return early if JSC throws an
37337         exception.
37338         (WebCore::InspectorController::updateScriptResourceRequest): Check for
37339         and record exceptions as we call JSC.
37340         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
37341         (WebCore::InspectorController::updateScriptResource): Ditto.
37342         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
37343         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
37344         Also moved the call to setScriptObject to before the JSC calls so that
37345         it will always be called even if we return early if JSC throws an
37346         exception.
37347         (WebCore::InspectorController::addScriptConsoleMessage): Check for and
37348         record exceptions as we call JSC.
37349         (WebCore::InspectorController::handleException): Added.
37350         * page/InspectorController.h:
37351
37352 2008-03-26  Darin Adler  <darin@apple.com>
37353
37354         Rubber stamped by Maciej.
37355
37356         - removed a couple log messages in error cases that are handled internally
37357
37358         * platform/text/TextCodecICU.cpp:
37359         (WebCore::TextCodecICU::decode): Removed the LOG_ERROR.
37360         * platform/text/mac/TextCodecMac.cpp:
37361         (WebCore::TextCodecMac::decode): Ditto.
37362
37363 2008-03-26  Sam Weinig  <sam@webkit.org>
37364
37365         Reviewed by Adam Roben.
37366
37367         * page/Location.idl: Don't enumerate toString.
37368
37369 2008-03-26  Mark Rowe  <mrowe@apple.com>
37370
37371         Release build fix.
37372
37373         * rendering/SVGRootInlineBox.cpp:
37374         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Initialize svgFont to zero.
37375
37376 2008-03-26  Maciej Stachowiak  <mjs@apple.com>
37377
37378         Reviewed by Hyatt and Adam.
37379
37380         Coded by me and Darin.
37381         
37382         - SVG kerning support (horizontal kerning only for now since we don't do vertical text layout right yet) 
37383         
37384         Acid3 100/100
37385
37386         * DerivedSources.make:
37387         * WebCore.vcproj/WebCore.vcproj:
37388         * WebCore.xcodeproj/project.pbxproj:
37389         * platform/graphics/Font.cpp:
37390         (WebCore::Font::floatWidth):
37391         (WebCore::Font::isSVGFont):
37392         * platform/graphics/Font.h:
37393         * rendering/SVGInlineTextBox.cpp:
37394         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
37395         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
37396         * rendering/SVGInlineTextBox.h:
37397         * rendering/SVGRootInlineBox.cpp:
37398         (WebCore::cummulatedWidthOrHeightOfTextChunk):
37399         (WebCore::SVGRootInlineBox::buildLayoutInformation):
37400         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
37401         * rendering/SVGRootInlineBox.h:
37402         (WebCore::LastGlyphInfo::LastGlyphInfo):
37403         * svg/SVGFont.cpp:
37404         (WebCore::SVGTextRunWalker::walk):
37405         (WebCore::Font::svgFont):
37406         (WebCore::floatWidthOfSubStringUsingSVGFont):
37407         (WebCore::Font::floatWidthUsingSVGFont):
37408         (WebCore::Font::drawTextUsingSVGFont):
37409         (WebCore::Font::selectionRectForTextUsingSVGFont):
37410         * svg/SVGFontElement.cpp:
37411         (WebCore::SVGFontElement::invalidateGlyphCache):
37412         (WebCore::SVGFontElement::ensureGlyphCache):
37413         (WebCore::parseUnicodeRange):
37414         (WebCore::parseUnicodeRangeList):
37415         (WebCore::stringMatchesUnicodeRange):
37416         (WebCore::matches):
37417         (WebCore::SVGFontElement::getHorizontalKerningPairForStringsAndGlyphs):
37418         * svg/SVGFontElement.h:
37419         * svg/SVGGlyphElement.cpp:
37420         (WebCore::SVGGlyphElement::insertedIntoDocument):
37421         (WebCore::SVGGlyphElement::removedFromDocument):
37422         * svg/SVGHKernElement.cpp: Added.
37423         (WebCore::SVGHKernElement::SVGHKernElement):
37424         (WebCore::SVGHKernElement::~SVGHKernElement):
37425         (WebCore::SVGHKernElement::insertedIntoDocument):
37426         (WebCore::SVGHKernElement::removedFromDocument):
37427         (WebCore::SVGHKernElement::buildHorizontalKerningPair):
37428         * svg/SVGHKernElement.h: Added.
37429         (WebCore::SVGHorizontalKerningPair::SVGHorizontalKerningPair):
37430         (WebCore::SVGHKernElement::rendererIsNeeded):
37431         * svg/SVGHKernElement.idl: Added.
37432         * svg/SVGTextContentElement.cpp:
37433         (WebCore::cummulatedCharacterRangeLength):
37434         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
37435         * svg/svgtags.in:
37436
37437 2008-03-26  Sam Weinig  <sam@webkit.org>
37438
37439         Reviewed by Adam Roben.
37440
37441         Autogenerate JSLocation.
37442
37443         * GNUmakefile.am:
37444         * WebCore.pro:
37445         * WebCore.vcproj/WebCore.vcproj:
37446         * WebCore.xcodeproj/project.pbxproj:
37447         * WebCoreSources.bkl:
37448         Add files.
37449
37450         * DerivedSources.make: Add Location, remove JSLocation.lut.h
37451         * bindings/js/JSDOMWindowBase.cpp:
37452         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
37453         (WebCore::JSDOMWindowBase::getValueProperty):
37454         (WebCore::JSDOMWindowBase::put):
37455         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
37456         (WebCore::JSDOMWindowBase::disconnectFrame):
37457         * bindings/js/JSDOMWindowBase.h:
37458         Remove manuel management of the Location object.
37459
37460         * bindings/js/JSDOMWindowCustom.cpp:
37461         (WebCore::JSDOMWindow::mark): Add marking of JSLocation.
37462         (WebCore::JSDOMWindow::setLocation): Add custom setLocation as we only want to do this when
37463         safe and we need to keep Dashboard quirks.
37464
37465         * bindings/js/JSDocumentCustom.cpp:
37466         (WebCore::JSDocument::location):
37467         Fetch the location object using the normal toJS route.
37468
37469         * bindings/js/JSLocation.cpp: Removed.
37470         * bindings/js/JSLocation.h: Removed.
37471         * bindings/js/JSLocationCustom.cpp: Added.
37472         (WebCore::JSLocation::customGetOwnPropertySlot):
37473         (WebCore::JSLocation::customPut):
37474         (WebCore::JSLocation::deleteProperty):
37475         (WebCore::JSLocation::customGetPropertyNames):
37476         (WebCore::navigateIfAllowed):
37477         (WebCore::JSLocation::setHref):
37478         (WebCore::JSLocation::setProtocol):
37479         (WebCore::JSLocation::setHost):
37480         (WebCore::JSLocation::setHostname):
37481         (WebCore::JSLocation::setPort):
37482         (WebCore::JSLocation::setPathname):
37483         (WebCore::JSLocation::setSearch):
37484         (WebCore::JSLocation::setHash):
37485         (WebCore::JSLocation::replace):
37486         (WebCore::JSLocation::reload):
37487         (WebCore::JSLocation::assign):
37488         (WebCore::JSLocation::toString):
37489         Setter and Functions need custom implementations as they rely on the dynamic
37490         global object for determining the behavior of the navigation.
37491
37492         * history/CachedPage.cpp:
37493         (WebCore::CachedPage::CachedPage):
37494         (WebCore::CachedPage::restore):
37495         (WebCore::CachedPage::clear):
37496         * history/CachedPage.h:
37497         Removed all the special casing for location as it should be treated like all
37498         the other objects hanging off the window.
37499
37500         * page/DOMWindow.cpp:
37501         (WebCore::DOMWindow::clear):
37502         (WebCore::DOMWindow::location):
37503         * page/DOMWindow.h:
37504         (WebCore::DOMWindow::optionalLocation):
37505         * page/DOMWindow.idl:
37506         Add Location accessor and pointer getter for marking.
37507
37508         * page/Location.cpp: Added.
37509         (WebCore::Location::Location):
37510         (WebCore::Location::disconnectFrame):
37511         (WebCore::Location::url):
37512         (WebCore::Location::href):
37513         (WebCore::Location::protocol):
37514         (WebCore::Location::host):
37515         (WebCore::Location::hostname):
37516         (WebCore::Location::port):
37517         (WebCore::Location::pathname):
37518         (WebCore::Location::search):
37519         (WebCore::Location::hash):
37520         (WebCore::Location::toString):
37521         * page/Location.h: Added.
37522         (WebCore::Location::create):
37523         (WebCore::Location::frame):
37524         * page/Location.idl: Added.
37525
37526 2008-03-26  David Hyatt  <hyatt@apple.com>
37527
37528         Add support for the rendering and measurement of the <altGlyph> element in SVG.  This patch brings
37529         is half of what's needed to reach 100/100 on Acid3 and pass the test.  Maciej has coded up the other half. :)
37530
37531         Reviewed by mjs
37532
37533         Added svg/custom/altGlyph.svg
37534
37535         * svg/SVGAltGlyphElement.cpp:
37536         (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
37537         (WebCore::SVGAltGlyphElement::glyphElement):
37538         * svg/SVGAltGlyphElement.h:
37539         * svg/SVGFont.cpp:
37540         (WebCore::SVGTextRunWalker::walk):
37541         * svg/SVGFontFaceElement.cpp:
37542         (WebCore::SVGFontFaceElement::insertedIntoDocument):
37543         * svg/SVGGlyphElement.cpp:
37544         (WebCore::SVGGlyphElement::insertedIntoDocument):
37545         (WebCore::SVGGlyphElement::removedFromDocument):
37546
37547 2008-03-26  Adam Roben  <aroben@apple.com>
37548
37549         Turn on SVG animation on Windows
37550
37551         Also touched some files to force things to rebuild/regenerate.
37552
37553         * WebCore.vcproj/WebCore.vcproj: Added ENABLE_SVG_ANIMATION.
37554         * WebCore.vcproj/build-generated-files.sh: Ditto.
37555         * bindings/scripts/CodeGenerator.pm: Touched.
37556         * config.h: Touched.
37557         * svg/svgtags.in: Touched.
37558
37559 2008-03-26  Justin Garcia  <justin.garcia@apple.com>
37560
37561         Reviewed by Harrison.
37562
37563         <rdar://problem/5820749> REGRESSION (Safari 3.1): Mail's plain text reply omits blank line following the attribution
37564
37565         * editing/markup.cpp:
37566         (WebCore::createFragmentFromText): When asked to create a fragment from "Attribution:\n"
37567         with a context from [html, 0] to [html, 0], we'd return "<html>Attribution</html><br>".
37568         Don't enclose paragraphs in clones of the context's enclosing block if that block is the
37569         html or body element.  Currently no way to test [DOMHTMLElement createFragmentFromText:].
37570
37571 2008-03-26  Antti Koivisto  <antti@apple.com>
37572
37573         Reviewed by Anders.
37574
37575         http://bugs.webkit.org/show_bug.cgi?id=17077
37576         Bug 17077: SVG SMIL animation is currently broken (and turned off) (affects Acid3 tests 75 and 76)
37577
37578         - enable SVG animation support.
37579         - basic implementation of beginElement()/endElement().
37580         
37581         Animation definitely will need more work than this, but it is a start!
37582
37583         * Configurations/WebCore.xcconfig:
37584         * svg/SVGAnimationElement.cpp:
37585         (WebCore::SVGAnimationElement::SVGAnimationElement):
37586         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
37587         (WebCore::SVGAnimationElement::beginElement):
37588         (WebCore::SVGAnimationElement::beginElementAt):
37589         (WebCore::SVGAnimationElement::endElement):
37590         (WebCore::SVGAnimationElement::endElementAt):
37591         * svg/SVGAnimationElement.h:
37592
37593 2008-03-26  Mark Rowe  <mrowe@apple.com>
37594
37595         Reviewed by David Hyatt.
37596
37597         Make the Ahem font antialias correctly on Acid3 on Tiger.
37598
37599         * WebCore.Tiger.exp:
37600         * platform/graphics/mac/SimpleFontDataMac.mm:
37601         (WebCore::SimpleFontData::platformInit):
37602         * platform/mac/WebCoreSystemInterface.h:
37603         * platform/mac/WebCoreSystemInterface.mm:
37604
37605 2008-03-26  Simon Hausmann  <hausmann@webkit.org>
37606
37607         Attempt to fix the Qt build.
37608
37609         * platform/text/qt/TextCodecQt.cpp: Adjust function signature.
37610         (WebCore::TextCodecQt::decode):
37611         * platform/text/qt/TextCodecQt.h: Ditto.
37612
37613 2008-03-26  Dan Bernstein  <mitz@apple.com>
37614
37615         Reviewed by Anders Carlsson.
37616
37617         - fix http://bugs.webkit.org/show_bug.cgi?id=18104
37618           REGRESSION: LEAK: 2 InlineBox in editing/inserting/12882.html
37619
37620         * rendering/bidi.cpp:
37621         (WebCore::RenderBlock::layoutInlineChildren): When deciding to ditch
37622         old clean lines (due to changed or newly-added floats), keep the
37623         reference to those lines so they can be properly deleted in the end,
37624         and use a separate flag to signal that no matching should be attempted.
37625
37626 2008-03-26  Mark Rowe  <mrowe@apple.com>
37627
37628         Speculative Windows build fix.
37629
37630         * platform/graphics/win/SimpleFontDataCGWin.cpp:
37631
37632 2008-03-25  Steve Falkenburg  <sfalken@apple.com>
37633
37634         Turn on link-time-codegen in html and rendering related files.
37635
37636         Reviewed by Oliver.
37637
37638         * WebCore.vcproj/WebCore.vcproj:
37639
37640 2008-03-26  Maciej Stachowiak  <mjs@apple.com>
37641
37642         Reviewed by Darin.
37643
37644         - fixed "SVG multichar glyph matching matches longest instead of first (affects Acid3 test 79)"
37645         http://bugs.webkit.org/show_bug.cgi?id=18118
37646
37647         * svg/SVGFont.cpp:
37648         (WebCore::SVGTextRunWalker::walk):
37649         * svg/SVGFontElement.cpp:
37650         (WebCore::SVGFontElement::SVGFontElement):
37651         (WebCore::SVGFontElement::addGlyphToCache):
37652         (WebCore::SVGFontElement::removeGlyphFromCache):
37653         (WebCore::SVGFontElement::ensureGlyphCache):
37654         (WebCore::SVGFontElement::getGlyphIdentifiersForString):
37655         * svg/SVGFontElement.h:
37656         * svg/SVGGlyphElement.h:
37657         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
37658         * svg/SVGGlyphMap.h: Added. New radix tree based glyph map.
37659         (WebCore::GlyphMapNode::GlyphMapNode):
37660         (WebCore::SVGGlyphMap::SVGGlyphMap):
37661         (WebCore::SVGGlyphMap::add):
37662         (WebCore::SVGGlyphMap::compareGlyphPriority):
37663         (WebCore::SVGGlyphMap::get):
37664         (WebCore::SVGGlyphMap::clear):
37665
37666 2008-03-26  David Hyatt  <hyatt@apple.com>
37667
37668         Fix build bustage on Tiger.  Tiger will not have the bug fix.
37669
37670         * platform/graphics/mac/SimpleFontDataMac.mm:
37671         (WebCore::SimpleFontData::platformInit):
37672         * platform/graphics/win/SimpleFontDataCGWin.cpp:
37673         (WebCore::SimpleFontData::platformInit):
37674
37675 2008-03-26  David Hyatt  <hyatt@apple.com>
37676
37677         Make the Ahem font antialias correctly on Acid3.
37678
37679         Reviewed by Dan
37680
37681         * platform/graphics/SimpleFontData.h:
37682         * platform/graphics/mac/FontMac.mm:
37683         (WebCore::Font::drawGlyphs):
37684         * platform/graphics/mac/SimpleFontDataMac.mm:
37685         (WebCore::SimpleFontData::platformInit):
37686         * platform/graphics/win/FontCGWin.cpp:
37687         (WebCore::Font::drawGlyphs):
37688         * platform/graphics/win/SimpleFontDataCGWin.cpp:
37689         (WebCore::SimpleFontData::platformInit):
37690
37691 2008-03-26  Mark Rowe  <mrowe@apple.com>
37692
37693         Fix the Mac build.
37694
37695         * WebCore.xcodeproj/project.pbxproj:  Copy the newly generated header into the right place.
37696
37697 2008-03-26  Adam Roben  <aroben@apple.com>
37698
37699         Fix Bug 17768: REGRESSION (r30146): Inspector no longer shows elements
37700         properties
37701
37702         <http://bugs.webkit.org/show_bug.cgi?id=17768>
37703
37704         We were throwing an exception from Object.describe because of some
37705         undefined variables.
37706
37707         Reviewed by Tim Hatcher.
37708
37709         * page/inspector/utilities.js:
37710         (Object.describe): Reinstate the type1 and type2 variables that were
37711         removed in r30146. They're still used when formatting a function.
37712
37713 2008-03-26  Eric Seidel  <eric@webkit.org>
37714
37715         Reviewed by darin.
37716
37717         Forgot to add braces darin asked for during review.
37718
37719         * dom/XMLTokenizer.cpp:
37720         (WebCore::XMLTokenizer::write):
37721
37722 2008-03-26  Eric Seidel  <eric@webkit.org>
37723
37724         Reviewed by darin.
37725
37726         Fix, makes us pass Test 70
37727         XML documents should be strict about encoding checks
37728         http://bugs.webkit.org/show_bug.cgi?id=17079
37729
37730         Test: fast/encoding/invalid-xml.html
37731
37732         * WebCore.base.exp:
37733         * dom/XMLTokenizer.cpp:
37734         (WebCore::XMLTokenizer::write):
37735         * loader/CachedFont.cpp:
37736         (WebCore::CachedFont::ensureSVGFontData):
37737         * loader/TextResourceDecoder.cpp:
37738         (WebCore::TextResourceDecoder::TextResourceDecoder):
37739         (WebCore::TextResourceDecoder::decode):
37740         * loader/TextResourceDecoder.h:
37741         * platform/text/TextCodec.h:
37742         (WebCore::TextCodec::decode):
37743         * platform/text/TextCodecICU.cpp:
37744         (WebCore::TextCodecICU::decodeToBuffer):
37745         (WebCore::ErrorCallbackSetter::ErrorCallbackSetter):
37746         (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter):
37747         (WebCore::TextCodecICU::decode):
37748         * platform/text/TextCodecICU.h:
37749         * platform/text/TextCodecLatin1.cpp:
37750         * platform/text/TextCodecLatin1.h:
37751         * platform/text/TextCodecUTF16.cpp:
37752         * platform/text/TextCodecUTF16.h:
37753         * platform/text/TextCodecUserDefined.cpp:
37754         * platform/text/TextCodecUserDefined.h:
37755         * platform/text/TextDecoder.cpp:
37756         (WebCore::TextDecoder::checkForBOM):
37757         * platform/text/TextDecoder.h:
37758         (WebCore::TextDecoder::decode):
37759         * platform/text/TextEncoding.cpp:
37760         (WebCore::TextEncoding::decode):
37761         * platform/text/TextEncoding.h:
37762         (WebCore::TextEncoding::decode):
37763         * platform/text/mac/TextCodecMac.cpp:
37764         (WebCore::TextCodecMac::decode):
37765         * platform/text/mac/TextCodecMac.h:
37766
37767 2008-03-26  Antti Koivisto  <antti@apple.com>
37768
37769         Reviewed by Adam.
37770
37771         Add ElementTimeControl interface to SVGAnimationElement.
37772         Passes Acid3 test 75.
37773
37774         * DerivedSources.make:
37775         * WebCore.pro:
37776         * WebCore.vcproj/WebCore.vcproj:
37777         * WebCore.xcodeproj/project.pbxproj:
37778         * bindings/scripts/CodeGeneratorObjC.pm:
37779         * svg/ElementTimeControl.h: Added.
37780         (WebCore::ElementTimeControl::~ElementTimeControl):
37781         * svg/ElementTimeControl.idl: Added.
37782         * svg/SVGAnimationElement.cpp:
37783         (WebCore::SVGAnimationElement::beginElement):
37784         (WebCore::SVGAnimationElement::beginElementAt):
37785         (WebCore::SVGAnimationElement::endElement):
37786         (WebCore::SVGAnimationElement::endElementAt):
37787         * svg/SVGAnimationElement.h:
37788         * svg/SVGAnimationElement.idl:
37789
37790 2008-03-26  Kevin McCullough  <kmccullough@apple.com>
37791
37792         - LayoutTest fix.  Null check.
37793
37794         * xml/XMLHttpRequest.cpp:
37795         (WebCore::XMLHttpRequest::send):
37796
37797 2008-03-26  Dan Bernstein  <mitz@apple.com>
37798
37799         Reviewed by Darin Adler.
37800
37801         - fix http://bugs.webkit.org/show_bug.cgi?id=17994
37802           REGRESSION (523-525+) View not updated when changing CSS size via JavaScript
37803         - fix http://bugs.webkit.org/show_bug.cgi?id=18063
37804           REGRESSION (r31250): Small bug that just cropped up in WebKit r31275
37805
37806         Tests: fast/repaint/subtree-root-clip.html
37807                fast/repaint/subtree-root-clip-2.html
37808                fast/repaint/subtree-root-clip-3.html
37809
37810         * rendering/LayoutState.cpp:
37811         (WebCore::LayoutState::LayoutState): Changed to not set an initial clip.
37812         Since the root is clipping, there is no need to set a clip, and setting
37813         the clip based on the container was wrong because often the root was
37814         not included in the container's overflow rect because it had its own
37815         layer.
37816         * rendering/RenderBox.cpp:
37817         (WebCore::RenderBox::absolutePosition): Removed code that added table
37818         cell's extra top offset only in the slow (recursive) code path.
37819         * rendering/RenderTableCell.cpp:
37820         (WebCore::RenderTableCell::absolutePosition): Added code to add the
37821         extra top offset in both code paths.
37822
37823 2008-03-26  Simon Hausmann  <hausmann@webkit.org>
37824
37825         Fix the Qt build.
37826
37827         * platform/graphics/qt/FontQt.cpp:
37828         (WebCore::Font::floatWidth):
37829
37830 2008-03-24  Maciej Stachowiak  <mjs@apple.com>
37831
37832         Reviewed by Eric.
37833
37834         - fixed "SVGTextElement.getStartPositionOfChar does not correctly account for multichar glyphs"
37835         http://bugs.webkit.org/show_bug.cgi?id=18046
37836
37837         * platform/graphics/Font.cpp:
37838         (WebCore::Font::floatWidth): Allow expressing a run that has extra "context" characters beyond the end,
37839         and reporting of how many characters were actually consumed, to support multichar glyphs in SVG fonts.
37840         * platform/graphics/Font.h:
37841         * rendering/SVGInlineTextBox.cpp:
37842         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Pass along extra chars in argument and chars consumed out
37843         argument.
37844         (WebCore::SVGInlineTextBox::calculateGlyphHeight): Pass along extra chars in argument.
37845         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries): Add boilerplate; may not handle multichar glyphs
37846         right but I don't know what effects this would have.
37847         * rendering/SVGInlineTextBox.h:
37848         * rendering/SVGRootInlineBox.cpp:
37849         (WebCore::cummulatedWidthOrHeightOfTextChunk): Add boilerplate; may not handle multichar glyphs right
37850         but again I am not sure what effect this would have.
37851         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Account for multichar glyphs - let glyph
37852         selection consider extra chars, and account for the fact that a glyph may have consumed multiple chars.
37853         * rendering/SVGRootInlineBox.h:
37854         * svg/SVGFont.cpp:
37855         (WebCore::SVGTextRunWalker::walk): This is the place where glyph selection happens, so this is where
37856         we accout for multichar glyphs (both looking at extra chars past the end of the run, and reporting how
37857         many chars were consumed).
37858         (WebCore::floatWidthOfSubStringUsingSVGFont): Pass aforementioned info through the layers.
37859         (WebCore::Font::floatWidthUsingSVGFont): ditto
37860         (WebCore::Font::drawTextUsingSVGFont): ditto
37861         (WebCore::Font::selectionRectForTextUsingSVGFont): ditto
37862         * svg/SVGTextContentElement.cpp:
37863         (WebCore::cummulatedCharacterRangeLength): ditto
37864         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): ditto
37865
37866 2008-03-25  Beth Dakin  <bdakin@apple.com>
37867
37868         Reviewed by Oliver.
37869
37870         Fix for <rdar://problem/5811826> CSSValueList::item() does not 
37871         range-check index
37872
37873         Check bounds before accessing the item to avoid a crash. 
37874         itemWithoutBoundsCheck() is still inlined and not bounds-checked to 
37875         avoid slowing down our internal callers of item().
37876         * css/CSSValueList.cpp:
37877         (WebCore::CSSValueList::item):
37878         * css/CSSValueList.h:
37879         (WebCore::CSSValueList::itemWithoutBoundsCheck):
37880
37881         Call itemWithoutBoundsCheck() to avoid slowing down these internal 
37882         callers.
37883         * css/CSSFontSelector.cpp:
37884         (WebCore::CSSFontSelector::addFontFaceRule):
37885         * css/CSSMutableStyleDeclaration.cpp:
37886         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
37887         * css/CSSStyleSelector.cpp:
37888         (WebCore::applyCounterList):
37889         (WebCore::CSSStyleSelector::applyProperty):
37890         * css/MediaQueryEvaluator.cpp:
37891         (WebCore::parseAspectRatio):
37892         * svg/SVGFontFaceElement.cpp:
37893         (WebCore::SVGFontFaceElement::rebuildFontFace):
37894         * svg/graphics/SVGPaintServer.cpp:
37895         (WebCore::dashArrayFromRenderingStyle):
37896
37897 2008-03-25  Antti Koivisto  <antti@apple.com>
37898
37899         Reviewed by Oliver.
37900
37901         Fix http://bugs.webkit.org/show_bug.cgi?id=18082
37902         REGRESSION (r31287): GMail does not work if user stylesheet is set
37903         
37904         Oops, my cache refactoring patch was missing these rather essential lines for
37905         user stylesheets. They would get reloaded repeatedly.
37906
37907         * loader/Cache.cpp:
37908         (WebCore::Cache::requestUserCSSStyleSheet):
37909
37910 2008-03-25  Matt Lilek  <webkit@mattlilek.com>
37911
37912         Rubber stamped by Adam
37913
37914         Roll out r31300 since it causes assertion failures on page load.
37915         See http://bugs.webkit.org/show_bug.cgi?id=18093
37916
37917         * page/InspectorController.cpp:
37918         (WebCore::InspectorController::didFinishLoading):
37919         (WebCore::InspectorController::didFailLoading):
37920
37921 2008-03-25  Darin Adler  <darin@apple.com>
37922
37923         Reviewed by Anders.
37924
37925         - fix http://bugs.webkit.org/show_bug.cgi?id=17252
37926           Acid3 test removing Nodes during NodeIterator walk fails (affects Acid3 test 2)
37927
37928         Test: traversal/acid3-test-2.html
37929
37930         * bindings/js/JSNodeIteratorCustom.cpp:
37931         (WebCore::JSNodeIterator::nextNode): Update since result is PassRefPtr.
37932         (WebCore::JSNodeIterator::previousNode): Ditto.
37933         * dom/NodeIterator.cpp:
37934         (WebCore::NodeIterator::nextNode): Changed result to PassRefPtr. Added code to
37935         track both the current candidate (which needs to move along to the next node
37936         if current node is deleted) and the current provisional result (passed to acceptNode,
37937         and needs to be returned even if it's deleted).
37938         (WebCore::NodeIterator::previousNode): Ditto.
37939         (WebCore::NodeIterator::nodeWillBeRemoved): Call updateForNodeRemoval for
37940         m_candidateNode as well as m_referenceNode.
37941         * dom/NodeIterator.h: Use PassRefPtr for return values.
37942
37943 2008-03-25  Brady Eidson  <beidson@apple.com>
37944
37945         Reviewed by Anders
37946
37947         Add the ability to transform a CString into a SharedBuffer to avoid copying data
37948         This is valuable to avoid copying a block of data for an upcoming patch
37949
37950         * platform/SharedBuffer.cpp:
37951         (WebCore::SharedBuffer::adoptVector):
37952         * platform/SharedBuffer.h:
37953
37954         * platform/text/CString.cpp:
37955         (WebCore::CString::releaseBuffer):
37956         * platform/text/CString.h:
37957         (WebCore::CStringBuffer::releaseBuffer):
37958
37959 2008-03-25  Brady Eidson  <beidson@apple.com>
37960
37961         Attempt to fix .bkl build systems after recent archive additions
37962
37963         * webcore-base.bkl:
37964
37965 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
37966
37967         Reviewed by Adam.
37968
37969         - Cleaned up the needless use of RefPtrs, which we may someday no longer use for
37970         InspectorResources.
37971
37972         * page/InspectorController.cpp:
37973         (WebCore::InspectorController::didFinishLoading):
37974         (WebCore::InspectorController::didFailLoading):
37975
37976 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
37977
37978         Reviewed by Adam.
37979
37980         - Added a null check
37981
37982         * xml/XMLHttpRequest.cpp: Null check
37983         (WebCore::XMLHttpRequest::send):
37984
37985 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
37986
37987         Reviewed by Tim.
37988
37989         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
37990         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
37991         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
37992         - XMLHttpRequestResources now identify themselves to the inspector which caches the data related to
37993         the request since no one else caches it.  However this is just the plumbing and the Inspector's UI
37994         has not been changed to show XHR resources yet. 
37995
37996         * page/InspectorController.cpp: Add ability to set XHR data on an InspectorResource.
37997         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
37998         (WebCore::XMLHttpRequestResource::data):
37999         (WebCore::XMLHttpRequestResource::encoding):
38000         (WebCore::InspectorResource::): Add new type.
38001         (WebCore::InspectorResource::~InspectorResource): No longer virtual since we are not using inheritance.
38002         (WebCore::InspectorResource::type): Ditto.
38003         (WebCore::InspectorResource::setXMLHttpRequestResource):
38004         (WebCore::InspectorResource::isXHR):
38005         (WebCore::InspectorResource::xmlHttpRequestData):
38006         (WebCore::InspectorResource::xmlHttpRequestEncoding):
38007         (WebCore::InspectorResource::InspectorResource):
38008         (WebCore::addSourceToFrame):
38009         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
38010         * page/InspectorController.h: Add accessor for setting the XHR data.
38011         * page/inspector/Resource.js: Keep the XHR resource types in sync with the Inspector Controller.
38012         * xml/XMLHttpRequest.cpp: Give the InspectorController the XHR information to cache.
38013         (WebCore::XMLHttpRequest::send):
38014
38015 2008-03-25  Adam Roben  <aroben@apple.com>
38016
38017         Add an UnusedParam.h forwarding header for use by testapi
38018
38019         Reviewed by Steve Falkenburg.
38020
38021         * ForwardingHeaders/wtf/UnusedParam.h: Added.
38022
38023 2008-03-25  Brady Eidson  <beidson@apple.com>
38024
38025         Reviewed by Adam Roben
38026
38027         <rdar://problem/5819308> - View Source is empty when view webarchives
38028
38029         * WebCore.base.exp:
38030         * loader/DocumentLoader.cpp:
38031         (WebCore::DocumentLoader::setParsedArchiveData):
38032         (WebCore::DocumentLoader::parsedArchiveData):
38033         * loader/DocumentLoader.h:
38034
38035         * loader/FrameLoader.cpp:
38036         (WebCore::FrameLoader::finishedLoadingDocument): Set the archive's MainResource data as the parsedArchiveData
38037           in the DocumentLoader
38038
38039 2008-03-25  Eric Seidel  <eric@webkit.org>
38040
38041         Reviewed by Oliver.
38042
38043         Speculative crash fix for Acid3 crasher.
38044         I couldn't figure out how to make a test case for this?
38045         Suggestions welcome.
38046
38047         * css/CSSFontSelector.cpp: null check document->renderer()
38048
38049 2008-03-25  Antti Koivisto  <antti@apple.com>
38050
38051         Reviewed by Geoff Garen.
38052
38053         Some memory cache cleanups:
38054         - Separate CachedResource loading from construction, initiate load using a separate load() method.
38055         - Add special case function to Cache for loading user stylesheets. This allows removal
38056           of a bunch of parameters from several methods and CachedResource constructors.
38057         - Construct CachedResources with m_inCache set to false which is quite a bit more logical as they
38058           are not yet in the cache at that point.
38059         - Pass encoding around as const String& instead of const String*.
38060
38061         * css/CSSImageValue.cpp:
38062         (WebCore::CSSImageValue::image):
38063         * html/HTMLImageLoader.cpp:
38064         (WebCore::HTMLImageLoader::updateFromElement):
38065         * loader/Cache.cpp:
38066         (WebCore::createResource):
38067         (WebCore::Cache::requestResource):
38068         (WebCore::Cache::requestUserCSSStyleSheet):
38069         (WebCore::Cache::remove):
38070         * loader/Cache.h:
38071         * loader/CachedCSSStyleSheet.cpp:
38072         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
38073         * loader/CachedCSSStyleSheet.h:
38074         * loader/CachedFont.cpp:
38075         (WebCore::CachedFont::CachedFont):
38076         (WebCore::CachedFont::load):
38077         (WebCore::CachedFont::ref):
38078         * loader/CachedFont.h:
38079         * loader/CachedImage.cpp:
38080         (WebCore::CachedImage::CachedImage):
38081         (WebCore::CachedImage::load):
38082         * loader/CachedImage.h:
38083         * loader/CachedResource.cpp:
38084         (WebCore::CachedResource::CachedResource):
38085         (WebCore::CachedResource::~CachedResource):
38086         (WebCore::CachedResource::load):
38087         * loader/CachedResource.h:
38088         (WebCore::CachedResource::load):
38089         * loader/CachedScript.cpp:
38090         (WebCore::CachedScript::CachedScript):
38091         * loader/CachedScript.h:
38092         * loader/CachedXBLDocument.cpp:
38093         (WebCore::CachedXBLDocument::CachedXBLDocument):
38094         * loader/CachedXBLDocument.h:
38095         * loader/CachedXSLStyleSheet.cpp:
38096         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
38097         * loader/CachedXSLStyleSheet.h:
38098         * loader/DocLoader.cpp:
38099         (WebCore::DocLoader::requestImage):
38100         (WebCore::DocLoader::requestFont):
38101         (WebCore::DocLoader::requestCSSStyleSheet):
38102         (WebCore::DocLoader::requestUserCSSStyleSheet):
38103         (WebCore::DocLoader::requestScript):
38104         (WebCore::DocLoader::requestXSLStyleSheet):
38105         (WebCore::DocLoader::requestXBLDocument):
38106         (WebCore::DocLoader::requestResource):
38107         (WebCore::DocLoader::preload):
38108         * loader/DocLoader.h:
38109
38110 2008-03-25  Darin Adler  <darin@apple.com>
38111
38112         Reviewed by Anders.
38113
38114         - avoid converting UString to String and then later to AtomicString
38115
38116         1% speedup on Acid3 test 26
38117
38118         This is inefficient for the case where there's already an AtomicString.
38119         By first creating and destroying a String we waste time.
38120
38121         * bindings/scripts/CodeGeneratorJS.pm: Use const UString& for string
38122         arguments rather than using String; this uses the object as it's produced
38123         from toString rather than creating a new temporary object that might not
38124         be of the right type. The type conversion happens at the callsite instead.
38125         Also eliminate the ability to use the type AtomicString from IDL.
38126
38127         * dom/KeyboardEvent.idl: AtomicString -> DOMString.
38128         * dom/MouseEvent.idl: Ditto.
38129         * dom/MutationEvent.idl: Ditto.
38130         * dom/UIEvent.idl: Ditto.
38131         * svg/SVGStyleElement.idl: Ditto.
38132
38133 2008-03-25  Brady Eidson  <beidson@apple.com>
38134
38135         Build fix for non-CoreFoundation platforms
38136
38137         * loader/archive/ArchiveFactory.cpp:
38138
38139 2008-03-25  Brady Eidson  <beidson@apple.com>
38140
38141         Reviewed by Darin
38142
38143         Remove newly obsolete FrameLoaderClient methods
38144
38145         * loader/FrameLoaderClient.h:
38146         * svg/graphics/SVGImageEmptyClients.h:
38147         (WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
38148         (WebCore::SVGEmptyFrameLoaderClient::finishedLoading):
38149
38150 2008-03-25  Brady Eidson  <beidson@apple.com>
38151
38152         Reviewed by Darin
38153
38154         <rdar://problem/4516169> - Support WebArchives on Windows
38155         And pave the way for many future WebArchive bug fixes and enhancements
38156
38157         This patch accomplishes two main goals:
38158         1 - Consolidates much of the spread out WebKitMac archive code into one place in WebCore.  This allows for cleaner refactoring 
38159             in the future as well as adding more archive formats with ease.
38160         2 - Hooks up WebArchive support on Windows.  Safari-style .webarchive files are nothing more than property lists readable by
38161             CoreFoundation.  While there are still some outstanding issues, including an NSKeyedArchiver chunk of data for the 
38162             ResourceResponse for each resource, this patch manually parses through the property list on CoreFoundation platforms and
38163             gets many archives loading on Windows
38164
38165         My goal for this first cut was zero behavior change.  As such, I went for a direct port of the WebKitMac code.  There will be
38166         opportunities for redesign and refactoring as followups.
38167
38168         * WebCore.base.exp:
38169
38170         * loader/DocumentLoader.cpp:
38171         (WebCore::DocumentLoader::setupForReplaceByMIMEType): Ported from WebKitMac, WebDataSource
38172         (WebCore::DocumentLoader::addAllArchiveResources):
38173         (WebCore::DocumentLoader::addArchiveResource):
38174         (WebCore::DocumentLoader::archiveResourceForURL):
38175         (WebCore::DocumentLoader::popArchiveForSubframe):
38176         (WebCore::DocumentLoader::clearArchiveResources):
38177         * loader/DocumentLoader.h:
38178
38179         * loader/FrameLoader.cpp: Moved WebFrameLoaderClient and WebFrame code down into their more appropriate FrameLoader home
38180         (WebCore::FrameLoader::FrameLoader):
38181         (WebCore::FrameLoader::setDefersLoading):
38182         (WebCore::FrameLoader::deliverArchivedResourcesAfterDelay):
38183         (WebCore::FrameLoader::archiveResourceDeliveryTimerFired):
38184         (WebCore::FrameLoader::loadURLIntoChildFrame):
38185         (WebCore::FrameLoader::loadArchive):
38186         (WebCore::FrameLoader::scheduleArchiveLoad):
38187         (WebCore::FrameLoader::stopAllLoaders):
38188         (WebCore::FrameLoader::cancelPendingArchiveLoad):
38189         (WebCore::FrameLoader::isArchiveLoadPending):
38190         (WebCore::FrameLoader::finishedLoadingDocument):
38191         * loader/FrameLoader.h:
38192
38193         * loader/ResourceLoader.cpp:
38194         (WebCore::ResourceLoader::load):
38195
38196         * loader/archive/Archive.h: Generic "Archive of web resources" class that is only useful when subclassed.  
38197             Contains a MainResource, subresources, and Archives for subframes
38198         (WebCore::Archive::mainResource):
38199         (WebCore::Archive::subresources):
38200         (WebCore::Archive::subframeArchives):
38201         (WebCore::Archive::setMainResource):
38202         (WebCore::Archive::addSubresource):
38203         (WebCore::Archive::addSubframeArchive):
38204
38205         * loader/archive/ArchiveFactory.cpp: A class that will take raw archive data and the MIMEtype, and create the
38206             appropriate Archive class for it.  Additionally it handles registering the known MIMEtypes for all known archive formats
38207         (WebCore::archiveFactoryCreate):
38208         (WebCore::archiveMIMETypes):
38209         (WebCore::ArchiveFactory::isArchiveMimeType):
38210         (WebCore::ArchiveFactory::create):
38211         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
38212         * loader/archive/ArchiveFactory.h:
38213
38214         * loader/archive/ArchiveResource.cpp: Analog to "WebResource" in WebKitMac.  Contains the data and other important
38215             attributes of an archived resource
38216         (WebCore::ArchiveResource::create):
38217         (WebCore::ArchiveResource::ArchiveResource):
38218         (WebCore::ArchiveResource::response):
38219         * loader/archive/ArchiveResource.h:
38220         (WebCore::ArchiveResource::data):
38221         (WebCore::ArchiveResource::url):
38222         (WebCore::ArchiveResource::mimeType):
38223         (WebCore::ArchiveResource::textEncoding):
38224         (WebCore::ArchiveResource::frameName):
38225         (WebCore::ArchiveResource::ignoreWhenUnarchiving):
38226         (WebCore::ArchiveResource::shouldIgnoreWhenUnarchiving):
38227
38228         * loader/archive/ArchiveResourceCollection.cpp: Analog of "WebUnarchivingState" in WebKitMac.  Contains a hash of
38229             all the resources for every frame in an archive, and contains the archives for each subframe needed to load a multi-frame archive
38230         (WebCore::ArchiveResourceCollection::ArchiveResourceCollection):
38231         (WebCore::ArchiveResourceCollection::addAllResources):
38232         (WebCore::ArchiveResourceCollection::addResource):
38233         (WebCore::ArchiveResourceCollection::archiveResourceForURL):
38234         (WebCore::ArchiveResourceCollection::popSubframeArchive):
38235         * loader/archive/ArchiveResourceCollection.h:
38236
38237         * loader/archive/cf/LegacyWebArchive.cpp: Subclass of Archive specifically for Webkit's Objective-C based ".webarchive" format.
38238             Mostly a collection of static methods involved in parsing and serializing a WebKit-style .webarchive.  Is mostly supported
38239             for any CF platform.
38240         (WebCore::createPropertyListRepresentationFromResource):
38241         (WebCore::createPropertyListRep):
38242         (WebCore::createResourceResponseFromPropertyListData):
38243         (WebCore::createResource):
38244         (WebCore::LegacyWebArchive::create):
38245         (WebCore::LegacyWebArchive::LegacyWebArchive):
38246         (WebCore::LegacyWebArchive::init):
38247         (WebCore::LegacyWebArchive::extract):
38248         (WebCore::LegacyWebArchive::rawDataRepresentation):
38249         (WebCore::createResourceResponseFromMacArchivedData):
38250         (WebCore::propertyListDataFromResourceResponse):
38251         * loader/archive/cf/LegacyWebArchive.h:
38252         * loader/archive/cf/LegacyWebArchiveMac.mm:
38253         (WebCore::createResourceResponseFromMacArchivedData):
38254         (WebCore::propertyListDataFromResourceResponse):
38255
38256         * platform/network/mac/ResourceRequest.h:
38257         * platform/network/mac/ResourceRequestMac.mm:
38258         (WebCore::ResourceRequest::applyWebArchiveHackForMail): Tweak the resource request for Mac clients when loading WebArchives
38259
38260 2008-03-25  David Hyatt  <hyatt@apple.com>
38261
38262         Cut and paste error in the zoom code.  A width() should have been a height().  Regression tests caught this.
38263
38264         * page/DOMWindow.cpp:
38265         (WebCore::DOMWindow::innerHeight):
38266
38267 2008-03-24  Darin Adler  <darin@apple.com>
38268
38269         - try to fix broken Wx build
38270
38271         * platform/wx/TemporaryLinkStubs.cpp:
38272         (GraphicsContext::setPlatformShadow):
38273         (GraphicsContext::clearPlatformShadow):
38274
38275 2008-03-24  Darin Adler  <darin@apple.com>
38276
38277         Reviewed by Sam.
38278
38279         - use AtomicString more consistently for attribute values
38280
38281         1% speedup on Acid3 test 26
38282
38283         * dom/Element.cpp:
38284         (WebCore::Element::setAttribute): Changed value argument to AtomicString.
38285         Also fixed call to lower() to only be done if the name isn't already lowercase.
38286         Also took out one unneeded condition in a cascade of if statements.
38287         (WebCore::Element::createAttribute): Ditto.
38288         (WebCore::Element::setAttributeNS): Ditto.
38289         * dom/Element.h: Ditto.
38290         * dom/StyledElement.cpp:
38291         (WebCore::StyledElement::createAttribute): Ditto.
38292         * dom/StyledElement.h: Ditto.
38293
38294 2008-03-24  Darin Adler  <darin@apple.com>
38295
38296         Reviewed by Sam.
38297
38298         - get rid of extra level of function call in toJS functions for Node
38299
38300         0.6% speedup on Acid3 test 26
38301
38302         * bindings/js/JSNodeCustom.cpp:
38303         (WebCore::toJS): Take a raw pointer, not a PassRefPtr, like other toJS functions.
38304
38305         * bindings/scripts/CodeGeneratorJS.pm: Add an inlined toJS for EventTargetNode*
38306         to avoid ambiguity that otherwise exists between the toJS for EventTarget* and
38307         for Node*.
38308
38309 2008-03-24  Darin Adler  <darin@apple.com>
38310
38311         Reviewed by Hyatt.
38312
38313         - add fast path to isValidName that does not use advanced Unicode functions
38314
38315         2% speedup on Acid3 test 26
38316
38317         * dom/Document.cpp:
38318         (WebCore::isValidNameNonASCII): Added. Contains the old isValidName function.
38319         (WebCore::isValidNameASCII): Added. Contains a simpler function that returns
38320         true for most valid names that are also all ASCII.
38321         (WebCore::Document::isValidName): Changed to call both of the above functions.
38322         The common case is that isValidNameASCII returns true so isValidNameNonASCII
38323         is never called.
38324
38325 2008-03-24  David Hyatt  <hyatt@apple.com>
38326
38327         Fix for bug 18052, window properties need to respect zoom factor.
38328
38329         Reviewed by Beth
38330
38331         * page/DOMWindow.cpp:
38332         (WebCore::DOMWindow::innerHeight):
38333         (WebCore::DOMWindow::innerWidth):
38334         (WebCore::DOMWindow::scrollX):
38335         (WebCore::DOMWindow::scrollY):
38336         (WebCore::DOMWindow::scrollTo):
38337         * page/FrameView.cpp:
38338         (WebCore::FrameViewPrivate::reset):
38339         (WebCore::FrameView::layout):
38340         (WebCore::FrameView::performPostLayoutTasks):
38341
38342 2008-03-24  Sam Weinig  <sam@webkit.org>
38343
38344         Reviewed by Darin Adler.
38345
38346         Fix http://bugs.webkit.org/show_bug.cgi?id=18048
38347         The "thisObject" parameter to JSEvaluateScript is not used properly
38348
38349         * bindings/js/kjs_proxy.cpp:
38350         (WebCore::KJSProxy::evaluate): No need to pass a thisObject since we want the global object to be used.
38351         * bridge/jni/jni_jsobject.mm:
38352         (JavaJSObject::eval): To avoid any change to this function, don't pass a thisObject to keep the same
38353         behavior.
38354
38355 2008-03-24  Brady Eidson  <beidson@apple.com>
38356
38357         Reviewed by Darin's rubberstamp
38358
38359         Land a load of empty files for upcoming work to make sure I'm not breaking any platform's build
38360
38361         * GNUmakefile.am:
38362         * WebCore.pro:
38363         * WebCore.vcproj/WebCore.vcproj:
38364         * WebCore.xcodeproj/project.pbxproj:
38365         * WebCoreSources.bkl:
38366         * loader/archive: Added.
38367         * loader/archive/Archive.h: Added.
38368         * loader/archive/ArchiveFactory.cpp: Added.
38369         * loader/archive/ArchiveFactory.h: Added.
38370         * loader/archive/ArchiveResource.cpp: Added.
38371         * loader/archive/ArchiveResource.h: Added.
38372         * loader/archive/ArchiveResourceCollection.cpp: Added.
38373         * loader/archive/ArchiveResourceCollection.h: Added.
38374         * loader/archive/cf: Added.
38375         * loader/archive/cf/LegacyWebArchive.cpp: Added.
38376         * loader/archive/cf/LegacyWebArchive.h: Added.
38377         * loader/archive/cf/LegacyWebArchiveMac.mm: Added.
38378
38379 2008-03-24  David Hyatt  <hyatt@apple.com>
38380
38381         Fix for bug 18009. Make sure the IE offset/client/scroll*** extensions respect full page zoom.
38382
38383         Reviewed by Beth
38384
38385         * dom/Element.cpp:
38386         (WebCore::localZoomForRenderer):
38387         (WebCore::adjustForLocalZoom):
38388         (WebCore::adjustForAbsoluteZoom):
38389         (WebCore::Element::offsetLeft):
38390         (WebCore::Element::offsetTop):
38391         (WebCore::Element::offsetWidth):
38392         (WebCore::Element::offsetHeight):
38393         (WebCore::Element::clientLeft):
38394         (WebCore::Element::clientTop):
38395         (WebCore::Element::clientWidth):
38396         (WebCore::Element::clientHeight):
38397         (WebCore::Element::scrollLeft):
38398         (WebCore::Element::scrollTop):
38399         (WebCore::Element::setScrollLeft):
38400         (WebCore::Element::setScrollTop):
38401         (WebCore::Element::scrollWidth):
38402         (WebCore::Element::scrollHeight):
38403         * rendering/RenderBox.cpp:
38404         (WebCore::RenderBox::setStyle):
38405         * rendering/RenderObject.cpp:
38406         (WebCore::RenderObject::offsetParent):
38407         * rendering/RenderObject.h:
38408
38409 2008-03-24  Brady Eidson  <beidson@apple.com>
38410
38411         Reviewed by Darin
38412
38413         Some style cleanup and add a logging channel for upcoming work
38414
38415         * platform/Logging.cpp:
38416         * platform/Logging.h:
38417
38418         * platform/MIMETypeRegistry.cpp:
38419         (WebCore::initializeSupportedImageMIMETypes):
38420         (WebCore::initializeSupportedNonImageMimeTypes):
38421
38422 2008-03-24  Dan Bernstein  <mitz@apple.com>
38423
38424         Reviewed by Sam Weinig.
38425
38426         - fix <rdar://problem/5812292> CrashTracer: [REGRESSION] 60 crashes in Safari at com.apple.WebCore: WebCore::RenderObject::repaintRectangle + 47
38427
38428         Test: fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
38429
38430         * page/FrameView.cpp:
38431         (WebCore::FrameViewPrivate::reset): Removed repaintRects code.
38432         (WebCore::FrameView::layout): Ditto.
38433         (WebCore::FrameView::addRepaintInfo): Removed.
38434
38435         * page/FrameView.h: Removed addRepaintInfo().
38436
38437         * rendering/RenderBlock.cpp:
38438         (WebCore::RenderBlock::layoutBlock): Changed to call repaintRectangle
38439         instead of FrameView::addRepaintInfo().
38440         * rendering/RenderTable.cpp:
38441         (WebCore::RenderTable::layout): Ditto.
38442
38443 2008-03-24  Alp Toker  <alp@atoker.com>
38444
38445         GTK+/soup http backend build fix for breakage introduced in r31141.
38446         Fix suggested by Xan.
38447
38448         * platform/network/ResourceHandle.h:
38449
38450 2008-03-24  Dan Bernstein  <mitz@apple.com>
38451
38452         Reviewed by Sam Weinig.
38453
38454         - fix <rdar://problem/5792582> CSS opacity does not work with GDI text
38455         - fix <rdar://problem/5792619> non-opaque CSS colors do not work with GDI text (RGBA, HSLA)
38456         - fix <rdar://problem/5792624> GDI text can't be stroked/filled independently
38457         - make text-shadow work with GDI text
38458         - make -webkit-background-clip: text work with GDI text
38459
38460         * platform/graphics/GraphicsContext.cpp:
38461         (WebCore::GraphicsContext::setShadow): Made this a shared method that
38462         updates the state and calls the platform-specific method.
38463         (WebCore::GraphicsContext::clearShadow): Ditto.
38464         (WebCore::GraphicsContext::getShadow): Added.
38465
38466         * platform/graphics/GraphicsContext.h:
38467         (WebCore::GraphicsContext::WindowsBitmap): Added this class that
38468         represents a bitmap with a Windows device context that GDI can draw into.
38469
38470         * platform/graphics/GraphicsContextPrivate.h:
38471         (WebCore::GraphicsContextState::GraphicsContextState): Added the shadow
38472         parameters to the graphics state.
38473
38474         * platform/graphics/cairo/GraphicsContextCairo.cpp:
38475         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
38476         specific implementation to this.
38477         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
38478         specific implementation to this.
38479
38480         * platform/graphics/cg/GraphicsContextCG.cpp:
38481         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
38482         specific implementation to this.
38483         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
38484         specific implementation to this.
38485
38486         * platform/graphics/qt/GraphicsContextQt.cpp:
38487         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
38488         specific implementation to this.
38489         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
38490         specific implementation to this.
38491
38492         * platform/graphics/win/FontCGWin.cpp:
38493         (WebCore::toCGFloat): Added. Converts a Windows FIXED.
38494         (WebCore::createPathForGlyph): Added. Retrieves a glyph's hinted
38495         outline from GDI and creates a CGPath containing it.
38496         (WebCore::Font::drawGlyphs): Added two code paths in the GDI case.
38497         The existing code path, which uses GDI to draw text directly to the
38498         graphics context, is used for opaque-colored, non-transformed,
38499         non-stroked, non-shadowed text in a GDI-backed graphics context that is
38500         not in a transparency layer.
38501         An additional code path is used for non-stroked text in all other cases.
38502         It uses GDI to draw black text into an all-white Windows bitmap, then
38503         uses the green channel as a mask to create a bitmap with the desired
38504         fill color and alpha. The bitmap is then drawn into the graphics
38505         context, at which time transparency layers, transforms and shadows are
38506         handled properly.
38507         A third code path is used for stroked text. It constructs a path from
38508         hinted glyph outlines retrieved from GDI and strokes (and optionally
38509         fills) it.
38510
38511         * platform/graphics/win/GraphicsContextCGWin.cpp:
38512         (WebCore::GraphicsContext::getWindowsContext): Added a mayCreateBitmap
38513         parameter. When false, prevents this method from creating a Windows
38514         device context if the graphics context does not already have one.
38515         (WebCore::GraphicsContext::releaseWindowsContext): Added a
38516         mayCreateBitmap parameter to match getWindowsContext().
38517         (WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap):
38518         (WebCore::GraphicsContext::WindowsBitmap::~WindowsBitmap):
38519         (WebCore::GraphicsContext::createWindowsBitmap): Added.
38520         (WebCore::GraphicsContext::drawWindowsBitmap): Added. Draws the bitmap
38521         as a non-alpha-premultiplied image.
38522
38523 2008-03-24  Kevin McCullough <kmccullough@apple.com>
38524
38525           - Fixed Changelog
38526
38527 2008-03-24  Marco Barisione  <marco.barisione@collabora.co.uk>
38528
38529         Reviewed by Alp Toker.
38530
38531         http://bugs.webkit.org/show_bug.cgi?id=17845
38532         [GTK] combo box menu displayed in the wrong position
38533
38534         * platform/gtk/PopupMenuGtk.cpp:
38535         (WebCore::PopupMenu::show): Change the popup menu vertical position so
38536         that the active item is over the combo box.
38537         (WebCore::PopupMenu::menuPositionFunction): use the "push in" style
38538         like native GTK+ combo boxes to handle menus that don't fit in the
38539         screen.
38540
38541 2008-03-24  Adam Roben  <aroben@apple.com>
38542
38543         * WebCore.vcproj/WebCore.vcproj: Add files from WebCore/page/inspector
38544         to the project.
38545
38546 2008-03-24  Alexey Proskuryakov  <ap@webkit.org>
38547
38548         Build fix.
38549
38550         * WebCore.xcodeproj/project.pbxproj: Added DOMSVGAltGlyphElement.h and
38551         DOMSVGAltGlyphElementInternal.h to Copy Generated Headers phase.
38552
38553 2008-03-24  Eric Seidel  <eric@webkit.org>
38554
38555         Build fix, no review.
38556
38557         Fix project paths to be group relative instead of project relative
38558
38559         * WebCore.xcodeproj/project.pbxproj:
38560
38561 2008-03-23  Maciej Stachowiak  <mjs@apple.com>
38562
38563         Reviewed by Eric.
38564
38565         - fixed "SVGTextElement.getNumberOfChars is broken for altGlyph (affects Acid3 test 79)"
38566         http://bugs.webkit.org/show_bug.cgi?id=17062
38567
38568         * svg/SVGAltGlyphElement.cpp: Added. Implementation for new element.
38569         (WebCore::SVGAltGlyphElement::SVGAltGlyphElement):
38570         (WebCore::SVGAltGlyphElement::~SVGAltGlyphElement):
38571         (WebCore::SVGAltGlyphElement::setGlyphRef):
38572         (WebCore::SVGAltGlyphElement::glyphRef):
38573         (WebCore::SVGAltGlyphElement::setFormat):
38574         (WebCore::SVGAltGlyphElement::format):
38575         (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
38576         (WebCore::SVGAltGlyphElement::createRenderer): For now, this just renders as a tspan,
38577         which is right for everything besides the alternate glyph substitution itself.
38578         * svg/SVGAltGlyphElement.h: Added. Header for new element.
38579         (WebCore::SVGAltGlyphElement::contextElement):
38580         * svg/SVGAltGlyphElement.idl: Added. Interface for new element.
38581         * svg/SVGTSpanElement.cpp:
38582         (WebCore::SVGTSpanElement::childShouldCreateRenderer): Allow altGlyph to render here.
38583         * svg/SVGTextElement.cpp:
38584         (WebCore::SVGTextElement::childShouldCreateRenderer): ditto
38585         * svg/SVGTextPathElement.cpp:
38586         (WebCore::SVGTextPathElement::childShouldCreateRenderer): ditto
38587         * svg/svgtags.in: Add altGlyph
38588         * DerivedSources.make: Add new files
38589         * GNUmakefile.am: ditto
38590         * WebCore.SVG.exp: Add new ObjC DOM class
38591         * WebCore.pro: Add new files
38592         * WebCore.vcproj/WebCore.vcproj: ditto
38593         * WebCore.xcodeproj/project.pbxproj: ditto
38594         * bindings/js/JSSVGElementWrapperFactory.cpp: Handle altGlyph
38595         * bindings/objc/DOM.mm:
38596         (WebCore::createElementClassMap): ditto
38597         * bindings/objc/DOMInternal.h: Include altGlyph header
38598         * bindings/objc/DOMSVG.h: Include altGlyph header
38599
38600 2008-03-23  Robert Blaut  <webkit@blaut.biz>
38601
38602         Reviewed by eseidel.  Landed by eseidel.
38603
38604         Bug 17685: [~=] attribute selector failing to match empty string
38605         <http://bugs.webkit.org/show_bug.cgi?id=17685>
38606
38607         Test: fast/css/attribute-selector-empty-value.html
38608
38609         * css/CSSStyleSelector.cpp:
38610         (WebCore::CSSStyleSelector::checkOneSelector):
38611
38612 2008-03-22  Marco Barisione  <marco.barisione@collabora.co.uk>
38613
38614         Reviewed by Darin Adler.
38615
38616         http://bugs.webkit.org/show_bug.cgi?id=16339
38617         Frame scrollbar positions are not updated on page scroll
38618
38619         Widget::geometryChanged() was called instead of
38620         ScrollViewScrollbar::geometryChanged() because of a missing const.
38621
38622         * platform/gtk/ScrollViewGtk.cpp:
38623         (WebCore::ScrollViewScrollbar::geometryChanged): add the missing
38624         const.
38625
38626 2008-03-22  Rodney Dawes  <dobey@wayofthemonkey.com>
38627
38628         Reviewed by Mark Rowe.
38629
38630         Bug 17974: REGRESSION: npfunctions.h should not import npruntime_internal.h
38631         <http://bugs.webkit.org/show_bug.cgi?id=17974>
38632         <rdar://problem/5782310>
38633
38634         Include npapi.h and npruntime.h directly in npfunctions.h.
38635         Add npfunctions.h and npapi.h to npruntime_internal.h.
38636         Replace includes of npfunctions.h with npruntime_internal.h.
38637
38638         * bridge/npruntime_internal.h:
38639         * plugins/PluginPackage.h:
38640         * plugins/PluginStream.h:
38641         * plugins/npapi.cpp:
38642         * plugins/npfunctions.h:
38643
38644 2008-03-22  Mark Rowe  <mrowe@apple.com>
38645
38646         Qt build fix.
38647
38648         * bridge/qt/qt_runtime.cpp:
38649         (KJS::Bindings::valueRealType):
38650
38651 2008-03-22  Eric Seidel  <eric@webkit.org>
38652
38653         Reviewed by mjs.
38654
38655         Unify handling of NAMESPACE_ERR and fix Acid3 test 25
38656         http://bugs.webkit.org/show_bug.cgi?id=16693
38657
38658         Test: fast/dom/DOMImplementation/createDocumentType-err.html
38659
38660         * dom/DOMImplementation.cpp:
38661         (WebCore::DOMImplementation::createDocumentType):
38662         (WebCore::DOMImplementation::createDocument):
38663         * dom/DOMImplementation.idl:
38664         * dom/Document.cpp:
38665         (WebCore::Document::hasPrefixNamespaceMismatch):
38666         (WebCore::Document::createElementNS):
38667         (WebCore::Document::parseQualifiedName):
38668         (WebCore::Document::createAttributeNS):
38669         * dom/Document.h:
38670         * dom/Element.cpp:
38671         (WebCore::Element::setAttributeNS):
38672         * editing/FormatBlockCommand.cpp:
38673         (WebCore::FormatBlockCommand::doApply):
38674
38675 2008-03-22  Eric Seidel  <eric@webkit.org>
38676
38677         Reviewed by mjs.
38678
38679         Fix createElementNS to throw exceptions for invalid qualified names
38680         Fixes Acid3 sub-test 23
38681         http://bugs.webkit.org/show_bug.cgi?id=16833
38682
38683         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
38684                fast/dom/Document/createElementNS-namespace-err.html
38685
38686         * dom/Document.cpp:
38687         (WebCore::Document::createElement):
38688         (WebCore::hasNamespaceError):
38689         (WebCore::Document::createElementNS):
38690         (WebCore::Document::createAttributeNS):
38691         * dom/Document.idl:
38692
38693 2008-03-21  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
38694
38695         Reviewed by Oliver Hunt.
38696
38697         Bug 13693: REGRESSION (r13615): Acid2 Test Eyes render improperly after a page refresh
38698         <http://bugs.webkit.org/show_bug.cgi?id=13693>
38699
38700         Do not create bogus history items for unloaded <object> elements, because they
38701         cause fallback content to be ignored on reload.
38702
38703         * loader/FrameLoader.cpp:
38704         (WebCore::FrameLoader::createHistoryItemTree):
38705
38706 2008-03-21  Dan Bernstein  <mitz@apple.com>
38707
38708         Reviewed by Oliver Hunt.
38709
38710         - fix http://bugs.webkit.org/show_bug.cgi?id=17988
38711           REGRESSION (r31114-31132): Crash in InlineBox::isDirty() opening chowhound.com
38712
38713         Test: fast/css-generated-content/empty-content-with-float-crash.html
38714
38715         * rendering/bidi.cpp:
38716         (WebCore::RenderBlock::layoutInlineChildren): Added a null check for
38717         the case where the block contains no in-flow elements but still lays
38718         out as a line flow, which can happen as a result of empty generated
38719         content.
38720
38721 2008-03-21  Sam Weinig  <sam@webkit.org>
38722
38723         Reviewed by Oliver Hunt.
38724
38725         Fix <rdar://problem/5788451>
38726         toDataURL not implemented for Windows (need mapping of MIME type to UTI)
38727
38728         Hard code support for just PNG's on windows, the minimum the spec requires.
38729
38730         * platform/MIMETypeRegistry.cpp:
38731         (WebCore::initializeSupportedImageMIMETypesForEncoding):
38732         * platform/graphics/cg/ImageBufferCG.cpp:
38733         (WebCore::utiFromMIMEType):
38734         (WebCore::ImageBuffer::toDataURL):
38735
38736 2008-03-21  Matt Lilek  <webkit@mattlilek.com>
38737
38738         Not reviewed, Mac build fix.
38739
38740         * bindings/objc/WebScriptObject.mm:
38741         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
38742         * bridge/jni/jni_utility.cpp:
38743         (KJS::Bindings::convertValueToJValue):
38744         * bridge/objc/objc_runtime.mm:
38745         (ObjcFallbackObjectImp::callAsFunction):
38746
38747 2008-03-21  Adam Roben  <aroben@apple.com>
38748
38749         Attempt to fix the Mac build
38750
38751         * bindings/objc/DOMUtility.mm:
38752         (KJS::createDOMWrapper):
38753
38754 2008-03-21  Adam Roben  <aroben@apple.com>
38755
38756         Rename static info members to s_info
38757
38758         This avoids conflicts with custom "info" methods, such as the one that
38759         will soon be added to Console.
38760
38761         Reviewed by Ada Chan and Sam Weinig.
38762
38763 2008-03-21  David Hyatt  <hyatt@apple.com>
38764
38765         <rdar://problem/5808863> Zooming should not let non-zero border width become zero
38766
38767         Make sure zoomed values that begin >= 1 are not allowed to fall below 1.
38768
38769         Reviewed by adele
38770
38771         * css/CSSPrimitiveValue.cpp:
38772         (WebCore::CSSPrimitiveValue::computeLengthDouble):
38773         * loader/CachedImage.cpp:
38774         (WebCore::CachedImage::imageSize):
38775         (WebCore::CachedImage::imageRect):
38776
38777 2008-03-21  Kevin McCullough  <kmccullough@apple.com>
38778
38779         Reviewed by Sam.
38780
38781         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
38782         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
38783         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
38784         - Instrument the InspectorController to cache XHR resrouces since they are not cached by WebCore.
38785         The resources will be kept in the same map as all other resources so they will have the exact
38786         same lifecycle. 
38787
38788         * ChangeLog:
38789         * page/InspectorController.cpp:
38790         (WebCore::InspectorCachedXMLHttpRequestResource::type):
38791         (WebCore::InspectorCachedXMLHttpRequestResource::setType):
38792         (WebCore::InspectorCachedXMLHttpRequestResource::data):
38793         (WebCore::InspectorCachedXMLHttpRequestResource::setData):
38794         (WebCore::InspectorCachedXMLHttpRequestResource::encoding):
38795         (WebCore::InspectorCachedXMLHttpRequestResource::setEncoding):
38796         (WebCore::InspectorCachedXMLHttpRequestResource::create):
38797         (WebCore::InspectorCachedXMLHttpRequestResource::InspectorCachedXMLHttpRequestResource):
38798
38799 2008-03-21  Rodney Dawes  <dobey@wayofthemonkey.com>
38800
38801         Reviewed by Holger.
38802
38803         http://bugs.webkit.org/show_bug.cgi?id=17981
38804
38805         Remove WebCore/ForwardingHeaders from cppflags as it is not needed,
38806         and causes build problems with GTK+.
38807
38808         * GNUmakefile.am:
38809
38810 2008-03-21  Dan Bernstein  <mitz@apple.com>
38811
38812         Reviewed by Adele Peterson.
38813
38814         - fix http://bugs.webkit.org/show_bug.cgi?id=17966
38815           REGRESSION (r31114-r31132): Clearing via br behaves unpredictably
38816
38817         Test: fast/block/float/br-with-clear.html
38818
38819         * rendering/bidi.cpp:
38820         (WebCore::RenderBlock::layoutInlineChildren): Fixed the logic for the
38821         very special case of an all-lines-clean block that ends with a float-
38822         clearing <br> by looking for the <br> at the end of the line rather
38823         than at its beginning.
38824
38825 2008-03-21  Adam Roben  <aroben@apple.com>
38826
38827         Don't allow any newly-scheduled plugin requests to be serviced when JS is paused
38828
38829         This is a followup to r31199.
38830
38831         Reviewed by Tim Hatcher.
38832
38833         * plugins/PluginView.cpp:
38834         (WebCore::PluginView::requestTimerFired): Added an assertion that JS
38835         is not paused.
38836         (WebCore::PluginView::scheduleRequest): Don't start the request timer
38837         if JS is paused. This is the bug fix.
38838         (WebCore::PluginView::setJavaScriptPaused): Replaced the use of
38839         m_requestTimerWasActive with a check to see if we have any pending
38840         requests. m_requestTimerWasActive would not be accurate if a new
38841         request had been scheduled while JS was paused.
38842         (WebCore::PluginView::PluginView): Removed initialization of
38843         m_requestTimerWasActive.
38844         * plugins/PluginView.h: Removed m_requestTimerWasActive.
38845
38846 2008-03-20  Dan Bernstein  <mitz@apple.com>
38847
38848         Reviewed by Anders Carlsson.
38849
38850         - fix an assertion failure due to a line being marked dirty during
38851           computeVerticalPositionsForLine() due to temporary box destruction
38852
38853         Test: fast/inline/clean-after-removing-temp-boxes.html
38854
38855         * rendering/RenderText.cpp:
38856         (WebCore::RenderText::setTextWithOffset): Added code to dirty lines
38857         when this method is called on an empty text node, which has no line
38858         boxes.
38859         * rendering/bidi.cpp:
38860         (WebCore::RenderBlock::computeVerticalPositionsForLine): Mark the line
38861         clean in the end.
38862
38863 2008-03-20  Anders Carlsson  <andersca@apple.com>
38864
38865         Reviewed by Maciej.
38866
38867         Make some member variables private.
38868         
38869         * loader/ResourceLoader.cpp:
38870         (WebCore::ResourceLoader::ResourceLoader):
38871         * loader/ResourceLoader.h:
38872
38873 2008-03-20  Anders Carlsson  <andersca@apple.com>
38874
38875         Reviewed by Maciej.
38876
38877         Get rid of m_originalURL in ResourceLoader.
38878
38879         * loader/ResourceLoader.cpp:
38880         (WebCore::ResourceLoader::load):
38881         Don't store m_originalURL.
38882         
38883         * loader/ResourceLoader.h:
38884         * loader/SubresourceLoader.cpp:
38885         (WebCore::SubresourceLoader::willSendRequest):
38886         Use the url of the current request instead of the original URL.
38887
38888 2008-03-20  Anders Carlsson  <andersca@apple.com>
38889
38890         Reviewed by Maciej.
38891
38892         Small loader cleanups.
38893         
38894         * loader/MainResourceLoader.cpp:
38895         (WebCore::MainResourceLoader::willSendRequest):
38896         No need to call setRequest here, ResourceLoader::willSendRequest takes care of that. 
38897         Also, there is no need to check that newRequest is null here, because we assert earlier that it is not.
38898         
38899         * loader/ResourceLoader.h:
38900         Get rid of setRequest, it is no longer needed.
38901
38902 2008-03-20  Anders Carlsson  <andersca@apple.com>
38903
38904         Get rid of a couple of unnecessary class declarations.
38905         
38906         * loader/SubresourceLoader.h:
38907
38908 2008-03-20  David Hyatt  <hyatt@apple.com>
38909
38910         Add a new value to background-clip, "text", that allows backgrounds to be clipped to foreground text (and
38911         associated text decorations like shadows and underlines).
38912
38913         Reviewed by Beth
38914
38915         * css/CSSParser.cpp:
38916         (WebCore::CSSParser::parseBackgroundProperty):
38917         * css/CSSPrimitiveValueMappings.h:
38918         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38919         (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
38920         * platform/graphics/GraphicsContext.cpp:
38921         (WebCore::GraphicsContext::clipToImageBuffer):
38922         * platform/graphics/GraphicsContext.h:
38923         * platform/graphics/cg/GraphicsContextCG.cpp:
38924         (WebCore::GraphicsContext::clipToImageBuffer):
38925         * rendering/InlineBox.cpp:
38926         (WebCore::InlineBox::paint):
38927         * rendering/InlineFlowBox.cpp:
38928         (WebCore::InlineFlowBox::paintBackgrounds):
38929         (WebCore::InlineFlowBox::paintBackground):
38930         (WebCore::InlineFlowBox::paintBoxDecorations):
38931         * rendering/InlineFlowBox.h:
38932         * rendering/InlineTextBox.cpp:
38933         (WebCore::InlineTextBox::paint):
38934         * rendering/RenderBlock.cpp:
38935         (WebCore::RenderBlock::paintColumns):
38936         (WebCore::RenderBlock::paintObject):
38937         (WebCore::RenderBlock::paintFloats):
38938         * rendering/RenderBlock.h:
38939         * rendering/RenderBox.cpp:
38940         (WebCore::RenderBox::paintRootBoxDecorations):
38941         (WebCore::RenderBox::paintBoxDecorations):
38942         (WebCore::RenderBox::paintBackgrounds):
38943         (WebCore::RenderBox::paintBackground):
38944         (WebCore::RenderBox::paintBackgroundExtended):
38945         * rendering/RenderBox.h:
38946         * rendering/RenderFieldset.cpp:
38947         (WebCore::RenderFieldset::paintBoxDecorations):
38948         * rendering/RenderFlow.cpp:
38949         (WebCore::RenderFlow::paintLines):
38950         * rendering/RenderObject.h:
38951         (WebCore::RenderObject::paintBackgroundExtended):
38952         * rendering/RenderStyle.h:
38953         * rendering/RenderTable.cpp:
38954         (WebCore::RenderTable::paintBoxDecorations):
38955         * rendering/RenderTableCell.cpp:
38956         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
38957
38958 2008-03-20  Adam Roben  <aroben@apple.com>
38959
38960         Allow pausing/blocking of JS execution by plugins
38961
38962         Part of Bug 17133: Should support pausing JavaScript execution without
38963         hanging the process
38964
38965         <http://bugs.webkit.org/show_bug.cgi?id=17133>
38966         <rdar://problem/5719551>
38967
38968         This patch doesn't affect Mac, which doesn't use the shared PluginView
38969         code.
38970
38971         Note that this patch doesn't prevent plugins from executing JS via an
38972         NPObject they've already gotten hold of. It just blocks obtaining new
38973         NPObjects and pauses any requests to evaluate javascript: URIs. This
38974         is probably good enough for now because most plugins seem to always
38975         obtain the Window object each time they want to execute JS.
38976
38977         Reviewed by Tim Hatcher.
38978
38979         * plugins/PluginView.cpp:
38980         (WebCore::PluginView::getValue): Return an error if JS is paused.
38981         (WebCore::PluginView::setJavaScriptPaused): Stop the request timer if
38982         we're pausing, and resume it if we're unpausing.
38983         (WebCore::PluginView::PluginView): Initialize new members.
38984         * plugins/PluginView.h:
38985
38986 2008-03-20  Adam Roben  <aroben@apple.com>
38987
38988         Allow pausing of callOnMainThread callbacks
38989
38990         Part of Bug 17133: Should support pausing JavaScript execution without
38991         hanging the process
38992
38993         <http://bugs.webkit.org/show_bug.cgi?id=17133>
38994         <rdar://problem/5719551>
38995
38996         Reviewed by Tim Hatcher.
38997
38998         * platform/MainThread.cpp:
38999         (WebCore::dispatchFunctionsFromMainThread): If callbacks are paused,
39000         don't dispatch the functions.
39001         (WebCore::setMainThreadCallbacksPaused): Added. If we're being
39002         unpaused, call scheduleDispatchFunctionsOnMainThread so that any
39003         queued callbacks will get dispatched in the near future.
39004         * platform/MainThread.h:
39005
39006 2008-03-20  Adam Roben  <aroben@apple.com>
39007
39008         Allow blocking of JS event handlers/javascript: URIs per-Frame
39009
39010         Part of Bug 17133: Should support pausing JavaScript execution without
39011         hanging the process
39012
39013         <http://bugs.webkit.org/show_bug.cgi?id=17133>
39014         <rdar://problem/5719551>
39015
39016         Two new methods are added to KJSProxy: setPaused and isPaused. When
39017         setPaused(true) is called, JS event handlers are blocked and
39018         javascript: URIs will not be evaluated.
39019
39020         Reviewed by Tim Hatcher.
39021
39022         * bindings/js/kjs_events.cpp:
39023         (WebCore::JSAbstractEventListener::handleEvent):
39024           - Removed some old KJS_DEBUGGER code
39025           - Don't run the handler if the KJSProxy is paused.
39026         * bindings/js/kjs_proxy.cpp:
39027         (WebCore::KJSProxy::KJSProxy): Initialize new member.
39028         * bindings/js/kjs_proxy.h: Added new methods.
39029         * loader/FrameLoader.cpp:
39030         (WebCore::FrameLoader::executeScript): Don't execute the script if the
39031         KJSProxy is paused.
39032
39033 2008-03-20  Jon Honeycutt  <jhoneycutt@apple.com>
39034
39035         Reviewed by Anders.
39036
39037         Fix Windows warning / leak: warning C4150: deletion of pointer to
39038         incomplete type 'WebCore::PluginRequest'; no destructor called
39039
39040         * plugins/PluginView.cpp: Move PluginRequest class to PluginView.h so
39041         Windows PluginView destructor can use WTF::deleteAllValues to clean up
39042         m_requests.
39043         * plugins/PluginView.h:
39044         (WebCore::PluginRequest::PluginRequest):
39045         (WebCore::PluginRequest::frameLoadRequest):
39046         (WebCore::PluginRequest::notifyData):
39047         (WebCore::PluginRequest::sendNotification):
39048         (WebCore::PluginRequest::shouldAllowPopups):
39049
39050 2008-03-20  Mark Rowe  <mrowe@apple.com>
39051
39052         Reviewed by Sam Weinig.
39053
39054         Ensure that the defines in FEATURE_DEFINES are sorted so that they will match the default settings of build-webkit.
39055         This will prevent the world from being rebuilt if you happen to switch between building in Xcode and with build-webkit on the
39056         command-line.
39057
39058         * Configurations/WebCore.xcconfig:
39059
39060 2008-03-20  Jon Honeycutt  <jhoneycutt@apple.com>
39061
39062         Reviewed by Anders.
39063
39064         <rdar://problem/5809600> REGRESSION:
39065         http/tests/plugins/cross-frame-object-access.html hangs Windows Layout
39066         Tests
39067
39068         r30897 changed the way we conditionalize this feature.
39069
39070         * plugins/PluginView.cpp:
39071         (WebCore::PluginView::getValue): Test ENABLE(NETSCAPE_PLUGIN_API)
39072         instead of USE(NPOBJECT).
39073         (WebCore::PluginView::bindingInstance): Same.
39074
39075 2008-03-20  Adam Roben  <aroben@apple.com>
39076
39077         Highlight nodes when you hover over them in the Console
39078
39079         Part of Bug 16532: Inspector should highlight nodes in page when
39080         hovering over nodes in Inspector's interface
39081
39082         <http://bugs.webkit.org/show_bug.cgi?id=16532>
39083         <rdar://problem/5712896>
39084
39085         Reviewed by Tim Hatcher.
39086
39087         * page/inspector/ConsolePanel.js:
39088         (WebInspector.ConsolePanel._formatnode): Add mouseover/mouseout event
39089         listeners to highlight the node and clear the highlight.
39090
39091 2008-03-20  Adam Roben  <aroben@apple.com>
39092
39093         Highlight nodes in the page when you hover over their DOM breadcrumbs
39094
39095         Part of Bug 16532: Inspector should highlight nodes in page when
39096         hovering over nodes in Inspector's interface
39097
39098         <http://bugs.webkit.org/show_bug.cgi?id=16532>
39099         <rdar://problem/5712896>
39100
39101         Reviewed by Tim Hatcher.
39102
39103         * page/inspector/DocumentPanel.js:
39104         (WebInspector.DocumentPanel): Add an mouseout event listener to the
39105         breadcrumbs element to clear the highlighted node.
39106         (WebInspector.DocumentPanel.updateBreadcrumbs): Change the mouseover
39107         event listener to highlight the node represented by the hovered
39108         breadcrumb.
39109
39110 2008-03-20  Adam Roben  <aroben@apple.com>
39111
39112         Highlight nodes in the page when you hover over them in the DOM tree
39113
39114         Part of Bug 16532: Inspector should highlight nodes in page when
39115         hovering over nodes in Inspector's interface
39116
39117         <http://bugs.webkit.org/show_bug.cgi?id=16532>
39118         <rdar://problem/5712896>
39119
39120         The inspected node is no longer highlighted (unless, of course, you
39121         hover over it).
39122
39123         Reviewed by Tim Hatcher.
39124
39125         * page/inspector/DocumentPanel.js:
39126         (WebInspector.DocumentPanel):
39127           - Don't highlight the focused node when the DOM tree is shown
39128           - Added mousemove/mouseout event listeners to set/clear the
39129             highlighted node. These are added to the root of the DOM tree
39130             instead of to each individual list item to avoid flashing as the
39131             mouse moves between nodes.
39132         (WebInspector.DocumentPanel.set focusedDOMNode): Don't highlight the
39133         focused node.
39134         (WebInspector.DocumentPanel._onmousemove): Highlight the node under
39135         the mouse.
39136
39137 2008-03-20  Adam Roben  <aroben@apple.com>
39138
39139         Show nodes' content/padding/border/margin boxes in the node highlight
39140
39141         Part of Bug 17221: Node highlight should show node metrics
39142
39143         <http://bugs.webkit.org/show_bug.cgi?id=17221>
39144         <rdar://problem/5732822>
39145
39146         Outstanding issues:
39147           1) We don't show padding/border/margins for inlines
39148           2) We don't show any numeric metrics, we just draw the boxes
39149           3) We'll probably want to tweak the look of the highlight some, at
39150              least to make the boxes better distinguishable
39151
39152         Reviewed by Tim Hatcher.
39153
39154         * page/InspectorController.cpp:
39155         (WebCore::drawOutlinedRect): Added. Just draws a single rect.
39156         (WebCore::drawHighlightForBoxes): Added. Takes the rects we calculated
39157         for the node and draws the highlight.
39158         (WebCore::InspectorController::drawNodeHighlight): Calculates the
39159         content/padding/border/margin boxes for blocks and passes them off to
39160         drawHighlightForBoxes. The behavior for inlines is for now unchanged.
39161
39162 2008-03-20  Adam Roben  <aroben@apple.com>
39163
39164         Fix RenderContainer's override of addLineBoxRects to match RenderObject's
39165
39166         RenderContainer::addLineBoxRects was never getting called because its
39167         parameters didn't match those of RenderObject::addLineBoxRects.
39168
39169         Reviewed by Mitz Pettel.
39170
39171         No test possible.
39172
39173         * rendering/RenderContainer.cpp: Added an optional bool
39174         useSelectionHeight parameter to match RenderObject's method.
39175         * rendering/RenderContainer.h: Ditto.
39176
39177 2008-03-20  Marco Barisione  <marco.barisione@collabora.co.uk>
39178
39179         Reviewed by Alp Toker.
39180
39181         http://bugs.webkit.org/show_bug.cgi?id=17946
39182         [GTK] Widgets are not clipped
39183
39184         * platform/gtk/RenderThemeGtk.cpp:
39185         (WebCore::paintMozWidget): pass the clipping rectangle to
39186         moz_gtk_widget_paint() instead of just the widget rectangle.
39187
39188 2008-03-20  David Hyatt  <hyatt@apple.com>
39189
39190         Fix for http://bugs.webkit.org/show_bug.cgi?id=9279
39191
39192         Make :hover work with the adjacent sibling selector.  This fix makes all forms of dynamic changes
39193         (class name changes, :hover, :focus, etc.) work properly when used with the + selector.
39194
39195         Reviewed by weinig
39196
39197         Added fast/css/dynamic-sibling-selector.html
39198
39199         * dom/Element.cpp:
39200         (WebCore::Element::recalcStyle):
39201
39202 2008-03-20  Aaron Golden  <aegolden@gmail.com>
39203
39204         Reviewed by Darin and David Kilzer.
39205
39206         Addresses <http://bugs.webkit.org/show_bug.cgi?id=15263>, which caused certain marquees to not display.
39207
39208         Test: fast/html/marquee-scroll.html
39209
39210         * html/HTMLMarqueeElement.cpp:
39211         (WebCore::HTMLMarqueeElement::parseMappedAttribute):
39212
39213 2008-03-20  Adam Roben  <aroben@apple.com>
39214
39215         Export InspectorController::drawNodeHighlight
39216
39217         Reviewed by Tim Hatcher.
39218
39219         * WebCore.base.exp: Also sorted this file.
39220
39221 2008-03-19  Stephanie Lewis  <slewis@apple.com>
39222
39223         Rubber-stamped by Anders.
39224
39225         Fix Windows Build
39226
39227         * platform/cf/SharedBufferCF.cpp:
39228         (WebCore::SharedBuffer::createCFData):
39229
39230 2008-03-19  Stephanie Lewis <slewis@apple.com>
39231
39232         Rubber-stamped by Anders.
39233
39234         Fix Windows Build
39235
39236         * platform/SharedBuffer.h:
39237
39238 2008-03-19  Justin Garcia  <justin.garcia@apple.com>
39239
39240         Reviewed by Oliver.
39241         
39242         <rdar://problem/5780697> Copying content with CSS property values that are percentages can cause fidelity issues
39243          
39244         Elements with height: x%; overflow: visible; overlap what's below them when they are copied from
39245         a document in quirksmode and pasted into to one in standards mode.  This fix uses the computed 
39246         the value for a property if its value is a percentage.
39247         
39248         * css/CSSMutableStyleDeclaration.cpp:
39249         (WebCore::CSSMutableStyleDeclaration::addParsedProperty): Added so that we don't have to use
39250         setProperty from appendStartMarkup.  We already have a parsed property value, so we shouldn't
39251         use setProperty, since it takes in a String.  If we did, we would have to call CSSValue::cssText()
39252         for a String only to re-parse it in setProperty.  This wasn't extremely important now, but it will 
39253         be as we compute more properties to fix the rest of the copy/paste fidelity bugs.
39254         * css/CSSMutableStyleDeclaration.h:
39255         * editing/markup.cpp:
39256         (WebCore::appendStartMarkup): Compute values for properties that have percentage values.  We could
39257         perhaps narrow this special case to only include properties that are effected by quirksmode.
39258
39259 2008-03-19  Sam Weinig  <sam@webkit.org>
39260
39261         Reviewed by Anders Carlsson.
39262
39263         Fix for <rdar://problem/5785694>
39264         Crash occurs at KJS::Collector::collect() when loading web clip widgets with a PAC file
39265
39266         Make the activeExecStates stack per JSGlobalObject instead of static to ensure
39267         thread safety.
39268
39269         * bindings/objc/WebScriptObject.mm:
39270         (+[WebScriptObject throwException:]): Change to throw an exception on the current
39271         GlobalObject instead of the top of the static activeExecStates stack.
39272         (-[WebScriptObject setException:]): Change to use the top of the rootObjects GlobalObject
39273         instead of the top of the static activeExecStates stack.
39274
39275         * bridge/c/c_instance.cpp:
39276         * bridge/c/c_instance.h:
39277         * bridge/jni/jni_instance.cpp:
39278         (JavaInstance::virtualBegin):
39279         (JavaInstance::virtualEnd):
39280         * bridge/jni/jni_instance.h:
39281         * bridge/objc/objc_instance.h:
39282         * bridge/objc/objc_instance.mm:
39283         (ObjcInstance::~ObjcInstance):
39284         (ObjcInstance::virtualBegin):
39285         (ObjcInstance::virtualEnd):
39286         * bridge/runtime.cpp:
39287         (KJS::Bindings::Instance::setDidExecuteFunction):
39288         (KJS::Bindings::Instance::didExecuteFunction):
39289         (KJS::Bindings::Instance::setCurrentGlobalObject): Added.
39290         (KJS::Bindings::Instance::currentGlobalObject): Added.
39291         (KJS::Bindings::Instance::begin):
39292         (KJS::Bindings::Instance::end):
39293         * bridge/runtime.h:
39294         (KJS::Bindings::Instance::virtualBegin): Renamed from begin().
39295         (KJS::Bindings::Instance::virtualEnd): Renamed from end().
39296         We now store the currently active globalObject everytime we cross the runtime
39297         object boundary.  To do this, we take advantage of the existing begin/end
39298         methods that are called when crossing this boundary, making begin set the current
39299         globalObject and then call the old begin, now called virtualBegin.
39300
39301 2008-03-19  Brady Eidson  <beidson@apple.com>
39302
39303         Reviewed by Anders
39304
39305         Change SharedBuffer so the wrapping platform data aspect can be shared with all CoreFoundation platforms
39306         (Mac and Windows instead of just Mac)
39307
39308         * WebCore.vcproj/WebCore.vcproj: Add SharedBufferCF.cpp
39309         * WebCore.xcodeproj/project.pbxproj: Ditto
39310
39311         * platform/SharedBuffer.cpp:
39312         * platform/SharedBuffer.h: Change the private c'tor from NSData to CFDataRef, other PLATFORM tweaks
39313
39314         * platform/cf/SharedBufferCF.cpp: Added.
39315         (WebCore::SharedBuffer::SharedBuffer):
39316         (WebCore::SharedBuffer::createCFData): Non-Mac version of createCFData
39317         (WebCore::SharedBuffer::hasPlatformData):
39318         (WebCore::SharedBuffer::platformData):
39319         (WebCore::SharedBuffer::platformDataSize):
39320         (WebCore::SharedBuffer::maybeTransferPlatformData):
39321         (WebCore::SharedBuffer::clearPlatformData):
39322
39323         * platform/mac/SharedBufferMac.mm:
39324         (WebCore::SharedBuffer::wrapNSData): Use the CFDataRef constructor via toll-free bridging
39325         (WebCore::SharedBuffer::createCFData): Mac-specific version of createCFData
39326
39327 2008-03-19  Oliver Hunt  <oliver@apple.com>
39328
39329         Reviewed by Antti.
39330
39331         Bug 17954: Canvas arc() with radius of 0 throws exception
39332         http://bugs.webkit.org/show_bug.cgi?id=17954
39333
39334         Simple fix -- use >= instead of > when validating the radius.
39335
39336         * html/CanvasRenderingContext2D.cpp:
39337         (WebCore::CanvasRenderingContext2D::arc):
39338
39339 2008-03-19  Justin Garcia  <justin.garcia@apple.com>
39340
39341         Reviewed by Oliver.
39342
39343         <rdar://problem/5794920> Acid3: Assertion failure in VisiblePosition::previous when clicking on results (17004)
39344         
39345         The position inside an empty inline-block was a candidate, but upstream and downstream
39346         would move across it without stopping.  This confused canonicalPosition, since no more
39347         than two candidates should have the same upstream/downstream (be visually equivalent).
39348         
39349         Code was added intentionally in isCandidate to make VisiblePositions inside empty 
39350         inline-blocks, so we need to make upstream/downstream understand that.
39351
39352         * dom/Position.cpp:
39353         (WebCore::endsOfNodeAreVisuallyDistinctPositions): upstream and downstream used to only
39354         stop when entering or leaving a non-inline element (referred to as a "block").  We must also 
39355         avoid entering or leaving an empty inline-block.  This will allow a VisiblePosition there, to 
39356         match up with what the code in isCandidate intended.
39357         (WebCore::enclosingVisualBoundary): Removed enclosingBlock and replaced it with this.
39358         (WebCore::Position::upstream): Added better comments, called the new functions.
39359         (WebCore::Position::downstream): Ditto.
39360         * dom/Position.h:
39361
39362 2008-03-19  Dan Bernstein  <mitz@apple.com>
39363
39364         Rubber-stamped by John Sullivan.
39365
39366         - change CSS property and value keyword constants from all-caps with
39367           underscores to intra-caps.
39368
39369         * css/makeprop.pl:
39370         * css/makevalues.pl:
39371         * All files using the constants
39372
39373 2008-03-19  Adam Roben  <aroben@apple.com>
39374
39375         Make clicking anywhere in a row in the DOM tree select that row's node
39376
39377         We now have mousedown and dblclick event listeners on the root of the
39378         tree that forward the event to the node on the row the mouse is over.
39379
39380         Reviewed by Tim Hatcher.
39381
39382         * page/inspector/DocumentPanel.js:
39383         (WebInspector.DocumentPanel): Added a dblclick and mousedown event
39384         listeners to the root of the tree.
39385         (WebInspector.DocumentPanel._treeElementFromEvent): Added. Finds the
39386         tree element for the row underneath the mouse.
39387         (WebInspector.DocumentPanel._ondblclick): Added. Sends the dblclick
39388         event on to the tree element in the current row.
39389         (WebInspector.DocumentPanel._onmousedown): Added. Selects the tree
39390         element in the current row.
39391         * page/inspector/treeoutline.js:
39392         (TreeOutline.treeElementFromPoint): Added.
39393         (TreeElement.treeElementSelected): Changed to call
39394         TreeElement.isEventWithinDisclosureTriangle, and added an early return.
39395         (TreeElement.treeElementToggled): Ditto.
39396         (TreeElement.isEventWithinDisclosureTriangle): Added.
39397         * page/inspector/utilities.js:
39398         (Node.enclosingNodeOrSelfWithNodeNameInArray): Added.
39399         (Node.enclosingNodeOrSelfWithNodeName): Now just calls
39400         enclosingNodeOrSelfWithNodeNameInArray.
39401         (Elemnt.get totalOffsetLeft): Added.
39402         (Elemnt.get totalOffsetTop): Added.
39403
39404 2008-03-19  Dan Bernstein  <mitz@apple.com>
39405
39406         Reviewed by Sam Weinig.
39407
39408         - fix assertion failure in RenderBlock::determineStartPosition() at http://www.wired.com/techbiz/it/magazine/16-04/bz_apple
39409
39410         Test: fast/repaint/line-flow-with-floats-10.html
39411
39412         * rendering/bidi.cpp:
39413         (WebCore::RenderBlock::determineStartPosition): Removed bogus assertion.
39414         If the float's top margin has changed and it has not been repositioned
39415         yet, we do not have its new y position.
39416
39417 2008-03-19  David Hyatt  <hyatt@apple.com>
39418
39419         New implementation of full page zoom.  Because of how much doesn't transform when zooming, and because
39420         of the need to obey viewport constraints, I decided to take a completely different approach.  Now CSS
39421         lengths and intrinsic sizes are simply adjusted by the zoom factor.  This approach works much better and
39422         avoids pixel cracks more than the old approach.   In addition widgets "just work", namely plugins zoom
39423         and scrollbars do not.
39424
39425         This patch also implements the IE zoom CSS property.  This property allows fine-grained control over
39426         zooming at the element level.  It takes values of normal | <number> | <percentage> to match WinIE.  In
39427         addition, in the vein of text-size-adjust for text zooming, I have extended the zoom property with an
39428         extra value, reset.  The reset keyword can be used to prevent a section of the page from scaling at all
39429         when a zoom is applied.
39430
39431         Reviewed by olliej
39432
39433         * css/CSSComputedStyleDeclaration.cpp:
39434         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
39435         Support the new 'zoom' property for getComputedStyle.
39436
39437         * css/CSSParser.cpp:
39438         (WebCore::CSSParser::parseValue):
39439         Code that parses the 'zoom' property.
39440
39441         * css/CSSPrimitiveValue.cpp:
39442         (WebCore::CSSPrimitiveValue::computeLengthInt):
39443         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
39444         (WebCore::CSSPrimitiveValue::computeLengthShort):
39445         (WebCore::CSSPrimitiveValue::computeLengthFloat):
39446         (WebCore::CSSPrimitiveValue::computeLengthDouble):
39447         * css/CSSPrimitiveValue.h:
39448         Extend all of the computeLength methods to take a multiplier so that lengths can be adjusted by the
39449         zoom factor.
39450
39451         * css/CSSPropertyNames.in:
39452         Add the new zoom property to the list of properties we understand.
39453
39454         * css/CSSStyleSelector.cpp:
39455         (WebCore::CSSStyleSelector::applyDeclarations):
39456         (WebCore::CSSStyleSelector::applyProperty):
39457         (WebCore::CSSStyleSelector::mapBackgroundSize):
39458         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
39459         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
39460         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
39461         * css/CSSStyleSelector.h:
39462         (WebCore::CSSStyleSelector::setStyle):
39463         Pass in the zoom factor when computing all lengths in CSS.
39464
39465         * css/CSSValueKeywords.in:
39466         Add support for the 'reset' keyword of the zoom property.
39467
39468         * dom/Document.cpp:
39469         (WebCore::Document::recalcStyle):
39470         Set the 'zoom' CSS property on the RenderView.  This is how we implement full page zoom.
39471
39472         * html/CanvasRenderingContext2D.cpp:
39473         (WebCore::size):
39474         Make sure the back end canvas size ignores zooming when rendering images.
39475
39476         * html/HTMLImageElement.cpp:
39477         (WebCore::HTMLImageElement::width):
39478         (WebCore::HTMLImageElement::height):
39479         (WebCore::HTMLImageElement::naturalWidth):
39480         (WebCore::HTMLImageElement::naturalHeight):
39481         Use the unzoomed width/height if we have no style information in HTMLImageElement.cpp.
39482
39483         * loader/CachedImage.cpp:
39484         (WebCore::CachedImage::ref):
39485         (WebCore::CachedImage::imageSize):
39486         (WebCore::CachedImage::imageRect):
39487         * loader/CachedImage.h:
39488         (WebCore::CachedImage::canRender):
39489         Force access to the CachedImage metrics to take a multiplier so that people have to think about
39490         the zoom factor.  The "intrinsic size" of the image then takes that into account.
39491
39492         * loader/ImageDocument.cpp:
39493         (WebCore::ImageTokenizer::finish):
39494         (WebCore::ImageDocument::scale):
39495         (WebCore::ImageDocument::resizeImageToFit):
39496         (WebCore::ImageDocument::imageChanged):
39497         (WebCore::ImageDocument::restoreImageSize):
39498         (WebCore::ImageDocument::imageFitsInWindow):
39499         Make sure image documents respect the zoom.
39500
39501         * page/AnimationController.cpp:
39502         (WebCore::ImplicitAnimation::animate):
39503         Make the 'zoom' CSS property work with CSS transitions.
39504
39505         * page/Frame.h:
39506         (WebCore::Frame::pageZoomFactor):
39507         (WebCore::Frame::textZoomFactor):
39508         Add accessors for obtaining the pageZoom vs. textZoom.
39509
39510         * page/FrameView.cpp:
39511         (WebCore::FrameView::adjustViewSize):
39512         Remove the old zoom implementation that used transforms.
39513
39514         * page/mac/WebCoreAXObject.mm:
39515         (-[WebCoreAXObject accessibilityIsIgnored]):
39516         Pass in the zoom factor.
39517
39518         * rendering/InlineFlowBox.cpp:
39519         (WebCore::InlineFlowBox::paintBackground):
39520         (WebCore::InlineFlowBox::paintBoxDecorations):
39521         Pass in the zoom factor when testing for size.
39522
39523         * rendering/RenderBox.cpp:
39524         (WebCore::RenderBox::calculateBackgroundSize):
39525         (WebCore::RenderBox::imageChanged):
39526         (WebCore::RenderBox::paintBackgroundExtended):
39527         (WebCore::RenderBox::calcHeight):
39528         * rendering/RenderFrameSet.cpp:
39529         (WebCore::RenderFrameSet::layout):
39530         * rendering/RenderHTMLCanvas.cpp:
39531         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
39532         * rendering/RenderHTMLCanvas.h:
39533         (WebCore::RenderHTMLCanvas::renderName):
39534         (WebCore::RenderHTMLCanvas::intrinsicSizeChanged):
39535         * rendering/RenderImage.cpp:
39536         (WebCore::RenderImage::setImageSizeForAltText):
39537         (WebCore::RenderImage::imageChanged):
39538         (WebCore::RenderImage::calcReplacedWidth):
39539         (WebCore::RenderImage::calcReplacedHeight):
39540         * rendering/RenderImage.h:
39541         (WebCore::RenderImage::intrinsicSizeChanged):
39542         * rendering/RenderListMarker.cpp:
39543         (WebCore::RenderListMarker::layout):
39544         (WebCore::RenderListMarker::imageChanged):
39545         (WebCore::RenderListMarker::getRelativeMarkerRect):
39546         * rendering/RenderObject.cpp:
39547         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
39548         (WebCore::RenderObject::paintBorder):
39549         Pass in the zoom factor when testing for size.
39550
39551         * rendering/RenderReplaced.cpp:
39552         (WebCore::RenderReplaced::RenderReplaced):
39553         (WebCore::RenderReplaced::setStyle):
39554         (WebCore::RenderReplaced::intrinsicSizeChanged):
39555         * rendering/RenderReplaced.h:
39556         Added a new call when the zoom factor changes, intrinsicSizeChanged().  Replaced element subclasses
39557         respond to this via overrides.
39558
39559         * rendering/RenderStyle.cpp:
39560         (WebCore::StyleVisualData::StyleVisualData):
39561         (WebCore::StyleInheritedData::StyleInheritedData):
39562         (WebCore::StyleInheritedData::operator==):
39563         (WebCore::RenderStyle::diff):
39564         * rendering/RenderStyle.h:
39565         (WebCore::StyleVisualData::operator==):
39566         (WebCore::RenderStyle::zoom):
39567         (WebCore::RenderStyle::zoomInEffect):
39568         (WebCore::RenderStyle::setZoom):
39569         (WebCore::RenderStyle::setZoomInEffect):
39570         (WebCore::RenderStyle::initialZoom):
39571         Support for 'zoom' in the RenderStyle.  "zoomInEffect" represents the computed zoom taking into account
39572         all the zooms specified on ancestors.
39573
39574         * rendering/RenderTableCol.cpp:
39575         (WebCore::RenderTableCol::imageChanged):
39576         * rendering/RenderTableRow.cpp:
39577         (WebCore::RenderTableRow::imageChanged):
39578         * rendering/RenderTableSection.cpp:
39579         (WebCore::RenderTableSection::imageChanged):
39580         * rendering/RenderVideo.h:
39581         (WebCore::RenderVideo::intrinsicSizeChanged):
39582         Pass in the zoom factor.
39583
39584         * rendering/RenderView.cpp:
39585         (WebCore::RenderView::calcHeight):
39586         (WebCore::RenderView::calcWidth):
39587         (WebCore::RenderView::layout):
39588         (WebCore::RenderView::viewHeight):
39589         (WebCore::RenderView::viewWidth):
39590         * rendering/RenderView.h:
39591         (WebCore::RenderView::zoomFactor):
39592         Back out the old implementation.
39593
39594 2008-03-19  Adam Roben  <aroben@apple.com>
39595
39596         Rename firstParent* methods to enclosingNode*
39597
39598         Rubberstamped by John Sullivan.
39599
39600         * page/inspector/ConsolePanel.js:
39601         * page/inspector/DocumentPanel.js:
39602         * page/inspector/NetworkPanel.js:
39603         * page/inspector/inspector.js:
39604         * page/inspector/utilities.js:
39605
39606 2008-03-19  Dan Bernstein  <mitz@apple.com>
39607
39608         Reviewed by John Sullivan.
39609
39610         - fix <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431
39611
39612         Test: fast/dynamic/subtree-parent-static-y.html
39613
39614         * rendering/RenderObject.cpp:
39615         (WebCore::RenderObject::markContainingBlocksForLayout): Avoid calling
39616         this method on the parent if the parent is the new layout subtree root,
39617         which would result in marking all the way to the top, when it should
39618         actually do nothing.
39619
39620 2008-03-19  Mark Rowe  <mrowe@apple.com>
39621
39622         Reviewed by Oliver Hunt.
39623
39624         Use WTF::Unicode abstraction rather than using ICU functions directly.
39625
39626         * html/PreloadScanner.cpp:
39627         (WebCore::PreloadScanner::tokenize):
39628
39629 2008-03-19  Mark Rowe  <mrowe@apple.com>
39630
39631         Attempt to fix the Gtk build.
39632
39633         * platform/network/curl/ResourceHandleCurl.cpp:
39634         (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
39635
39636 2008-03-18  Darin Adler  <darin@apple.com>
39637
39638         Reviewed by Maciej.
39639
39640         - Speed up JavaScript built-in properties by changing the
39641           hash table to take advantage of the identifier objects
39642
39643         5% speedup for Acid3 test 26
39644
39645         * bindings/js/JSDOMWindowBase.cpp:
39646         (WebCore::JSDOMWindowBase::getOwnPropertySlot): Update for change to HashTable.
39647         (WebCore::JSDOMWindowBase::put): Ditto.
39648         * bindings/js/JSDOMWindowCustom.cpp:
39649         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Ditto.
39650         * bindings/js/JSHTMLInputElementBase.cpp:
39651         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot): Ditto.
39652         * bindings/js/JSHistoryCustom.cpp:
39653         (WebCore::JSHistory::customGetOwnPropertySlot): Ditto.
39654         * bindings/js/JSLocation.cpp:
39655         (WebCore::JSLocation::customGetOwnPropertySlot): Ditto.
39656         (WebCore::JSLocation::put): Ditto.
39657         * bindings/js/kjs_binding.cpp:
39658         (WebCore::nonCachingStaticFunctionGetter): Ditto.
39659
39660         * bindings/scripts/CodeGeneratorJS.pm: Same changes as in the
39661         create_hash_table script.
39662
39663 2008-03-18  Matt Lilek  <webkit@mattlilek.com>
39664
39665         Fix the Gtk build for real this time.
39666
39667         * platform/network/curl/AuthenticationChallenge.h:
39668
39669 2008-03-18  Sam Weinig  <sam@webkit.org>
39670
39671         Reviewed by Anders Carlsson.
39672
39673         Fix for http://bugs.webkit.org/show_bug.cgi?id=17057
39674         REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
39675         <rdar://problem/5725058>
39676
39677         Tests: fast/dom/NodeList/5725058-crash-scenario-1.html
39678                fast/dom/NodeList/5725058-crash-scenario-2.html
39679                fast/dom/NodeList/5725058-crash-scenario-3.html
39680
39681         * dom/ChildNodeList.cpp: 
39682         (WebCore::ChildNodeList::ChildNodeList):
39683         * dom/ChildNodeList.h:
39684         Remove rootNodeChildrenChanged() method and fix the constructor to not 
39685         pass in a needsNotifications argument to DynamicNodeList, as it no longer
39686         takes one.
39687
39688         * dom/ClassNodeList.cpp:
39689         (WebCore::ClassNodeList::ClassNodeList):
39690         Don't pass the needsNotifications argument to DynamicNodeList.
39691
39692         * dom/ContainerNode.cpp:
39693         (WebCore::ContainerNode::childrenChanged):
39694         Rename call to hasNodeLists() to hasNodeListCaches().
39695
39696         * dom/Document.cpp:
39697         (WebCore::Document::Document):
39698         (WebCore::Document::~Document): Zero out the m_document variable to signify
39699         to destructors down the destruction chain that this is a Document type node
39700         being destructed, and thus, accessing document() is prohibited.
39701         * dom/Document.h:
39702         (WebCore::Document::addNodeListCache): Renamed from addNodeList.
39703         (WebCore::Document::removeNodeListCache): Renamed from removeNodeList, adds assertion.
39704         (WebCore::Document::hasNodeListCaches): Renamed from hasNodeListCaches.
39705         Rename m_numNodeLists to m_numNodeListCaches.
39706
39707         * dom/DynamicNodeList.cpp:
39708         (WebCore::DynamicNodeList::DynamicNodeList):
39709         (WebCore::DynamicNodeList::~DynamicNodeList):
39710         (WebCore::DynamicNodeList::invalidateCache):
39711         (WebCore::DynamicNodeList::Caches::Caches):
39712         * dom/DynamicNodeList.h:
39713         (WebCore::DynamicNodeList::hasOwnCaches):
39714         Remove the needsNotifications concept from DynamicNodeList, instead, manually
39715         invalidate the cache for lists that own their own cache.
39716
39717         * dom/NameNodeList.cpp:
39718         (WebCore::NameNodeList::NameNodeList):
39719         * dom/NameNodeList.h:
39720         Remove rootNodeAttributeChanged() method and fix the constructor to not 
39721         pass in a needsNotifications argument to DynamicNodeList, as it no longer
39722         takes one.
39723
39724         * dom/Node.cpp:
39725         (WebCore::Node::~Node): Decrement the document's nodeListCache count
39726         if we had a NodeListsNodeData cache and this is not the Document being
39727         destructor, as tagged by a null m_document.
39728         (WebCore::Node::childNodes): Increment the document's nodeListCache count 
39729         if we need create the NodeListsNodeData.
39730         (WebCore::Node::registerDynamicNodeList): Increment the document's nodeListCache count 
39731         if we need create the NodeListsNodeData.  Change to invalidate all the caches, instead 
39732         of just the ChildNodeList, if document has had no NodeListCaches.
39733         (WebCore::Node::unregisterDynamicNodeList): Change to remove the cache from the m_listsWithCaches
39734         set if it is owned by the NodeList and clear the m_nodeLists if it is empty.
39735         (WebCore::Node::notifyLocalNodeListsAttributeChanged): Move logic to 
39736         NodeListsNodeData::invalidateAttributeCaches and clear the cache pointer if it is empty.
39737         (WebCore::Node::notifyLocalNodeListsChildrenChanged): Move logic to 
39738         NodeListsNodeData::invalidateCaches and clear the cache pointer if it is empty.
39739         (WebCore::Node::notifyNodeListsChildrenChanged): Cleanup.
39740         (WebCore::Node::getElementsByName): Increment the document's nodeListCache count 
39741         if we need create the NodeListsNodeData.
39742         (WebCore::Node::getElementsByClassName): Increment the document's nodeListCache count 
39743         if we need create the NodeListsNodeData.
39744
39745         (WebCore::NodeListsNodeData::invalidateCaches): Added.
39746         (WebCore::NodeListsNodeData::invalidateAttributeCaches): Added.
39747         (WebCore::NodeListsNodeData::isEmpty): Added.
39748
39749         * dom/TagNodeList.cpp:
39750         (WebCore::TagNodeList::TagNodeList):
39751         Don't pass the needsNotifications argument to DynamicNodeList.
39752
39753 2008-03-18  Matt Lilek  <webkit@mattlilek.com>
39754
39755         Not reviewed, build fix.
39756
39757         * platform/network/curl/AuthenticationChallenge.h:
39758
39759 2008-03-18  Brent Fulgham  <bfulgham@gmail.com>
39760
39761         Reviewed by Adam Roben.
39762
39763         Provide some stub implementations for things that WebKit
39764         uses for performing authentication/challenge activities.  This
39765         is in support of http://bugs.webkit.org/show_bug.cgi?id=17837
39766
39767         * platform/network/ResourceHandle.h:
39768         * platform/network/curl/AuthenticationChallenge.h:
39769         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
39770         (WebCore::AuthenticationChallenge::sourceHandle):
39771
39772 2008-03-18  Eric Seidel  <eric@webkit.org>
39773
39774         Reviewed by Oliver.
39775
39776         Fix SVGImage crash seen once, and obvious via code inspection.
39777         
39778         I was not able to find a test case for this.
39779
39780         * svg/graphics/SVGImage.cpp:
39781         (WebCore::SVGImage::setContainerSize):
39782         (WebCore::SVGImage::usesContainerSize):
39783         (WebCore::SVGImage::hasRelativeWidth):
39784         (WebCore::SVGImage::hasRelativeHeight):
39785
39786 2008-03-18  Rodney Dawes  <dobey@wayofthemonkey.com>
39787
39788         Fix Qt build after r31123.
39789
39790         Add PluginView methods to TemporaryLinkStubs.
39791
39792         * platform/qt/TemporaryLinkStubs.cpp:
39793
39794 2008-03-18  Sam Weinig  <sam@webkit.org>
39795
39796         Reviewed by Darin Adler.
39797
39798         - Speed up JavaScript prototype and constructor object creation
39799           using a static Identifier in the self() methods to avoid the
39800           cost of creating one from a c-string each time.
39801
39802         5% speedup for Acid3 test 26
39803
39804         * bindings/scripts/CodeGeneratorJS.pm:
39805
39806 2008-03-18  Antti Koivisto  <antti@apple.com>
39807
39808         Reviewed by Mark Rowe.
39809
39810         Enable preloading for other platforms besides Mac.
39811
39812         * GNUmakefile.am:
39813         * WebCore.pro:
39814         * WebCore.vcproj/WebCore.vcproj:
39815         * WebCoreSources.bkl:
39816         * html/HTMLTokenizer.cpp:
39817         * html/HTMLTokenizer.h:
39818         * html/PreloadScanner.cpp:
39819         (WebCore::PreloadScanner::tokenize):
39820
39821 2008-03-18  Dan Bernstein  <mitz@apple.com>
39822
39823         Reviewed by Adele Peterson.
39824
39825         - fix <rdar://problem/5805127> REGRESSION (r31116): Assertion failure (floatIndex < floats.size()) in RenderBlock::determineStartPosition() at digg.com
39826
39827         Test: fast/dynamic/floating-to-positioned.html
39828
39829         * rendering/RenderObject.cpp:
39830         (WebCore::RenderObject::setStyle): Added code to remove a float from
39831         object lists if its position property changes to something other than
39832         static, since then it ceases to be a float.
39833
39834 2008-03-18  Adam Roben  <aroben@apple.com>
39835
39836         Windows build fix after r31123
39837
39838         * plugins/win/PluginViewWin.cpp: Add back MozillaUserAgent.
39839
39840 2008-03-18  Dan Bernstein  <mitz@apple.com>
39841
39842         Reviewed by Darin Adler.
39843
39844         - eliminate RenderFlow::m_clear
39845
39846         * rendering/RenderBlock.cpp:
39847         (WebCore::RenderBlock::layoutBlock): Removed code to set m_clear.
39848         (WebCore::RenderBlock::newLine): Added a 'clear' parameter.
39849         * rendering/RenderBlock.h:
39850         * rendering/RenderFlow.h:
39851         (WebCore::RenderFlow::RenderFlow): Removed initialization of m_clear.
39852         * rendering/bidi.cpp:
39853         (WebCore::RenderBlock::layoutInlineChildren): Added a local 'clear'
39854         variable, passing a pointer to it to findNextLineBreak() and its value
39855         to newLine(). 
39856         (WebCore::RenderBlock::findNextLineBreak): Added a 'clear' parameter,
39857         which this method adjusts when it encounters a <br>.
39858
39859 2008-03-18  Simon Hausmann  <hausmann@webkit.org>
39860
39861         Reviewed by Holger.
39862
39863         Fix the Qt build and clean up the invoke mechanism for dispatching
39864         functions in the main thread by using QMetaObject::invokeMethod
39865         instead of posting a null event.
39866
39867         * platform/qt/MainThreadQt.cpp:
39868
39869 2008-03-18  Rodney Dawes  <dobey@wayofthemonkey.com>
39870
39871         Fix Mac build from commit of r31123.
39872
39873         Add a typedef for NSView* to PlatformWidget, remove duplicate PluginMessageThrottlerWin definition.
39874
39875         * platform/Widget.h:
39876         * WebCore.vcproj/WebCore.vcproj:
39877
39878 2008-03-18  Rodney Dawes  <dobey@wayofthemonkey.com>
39879
39880         Reviewed by Jon Honeycutt.
39881
39882         Add PluginView.cpp and npapi.cpp to build files.
39883         Copy win/PluginViewWin.cpp to PluginView.cpp for shared code.
39884         Split Windows specific code out of PluginView.cpp.
39885         Add #if USE(NPOBJECT) around dependant code.
39886         Use npruntime_internal.h instead of npapi.h.
39887         Add PlatformWidget typedef to Widget.h.
39888         Update WidgetGtk.cpp for the PlatformWidget usage.
39889         Add needed methods to TemporaryLinkStubs for GTK+ port.
39890
39891         * GNUmakefile.am:
39892         * WebCore.pro:
39893         * WebCoreSources.bkl:
39894         * WebCore.vcproj/WebCore.vcproj:
39895         * plugins/win/PluginViewWin.cpp:
39896         * plugins/PluginView.cpp:
39897         * plugins/PluginView.h:
39898         * plugins/npapi.cpp:
39899         * platform/Widget.h:
39900         * platform/gtk/WidgetGtk.cpp:
39901         * platform/gtk/TemporaryLinkStubs.cpp:
39902
39903 2008-03-17  Darin Adler  <darin@apple.com>
39904
39905         Reviewed by Maciej.
39906
39907         - speed up document property fetching (eliminate the AtomicString
39908           objects made during document property lookup)
39909
39910         3% speedup for Acid3 test 26
39911
39912         * bindings/js/JSDOMWindowBase.cpp:
39913         (WebCore::JSDOMWindowBase::getOwnPropertySlot): Use AtomicString::find to
39914         locate the AtomicString, only if already present. Also call the new faster
39915         versions of the hasNamedItem and hasElementWithId functions that don't
39916         ref/deref the AtomicStringImpl, get inlined, etc.
39917         * bindings/js/JSHTMLDocumentCustom.cpp:
39918         (WebCore::JSHTMLDocument::canGetItemsForName): Ditto.
39919         (WebCore::writeHelper): Use a Vector instead of a String to build up
39920         the string to avoid the bad performance of string append.
39921
39922         * dom/Document.cpp: Tweaked code and comments a bit. Nothing substantive.
39923         * dom/Document.h: Added new hasElementWithId function that's faster than
39924         getElementById because it doesn't ref/deref the AtomicStringImpl*, gets
39925         inlined, doesn't have to handle the 0 case, and doesn't try to return the
39926         element pointer (just a boolean).
39927
39928         * html/HTMLAppletElement.cpp:
39929         (WebCore::HTMLAppletElement::parseMappedAttribute): Use AtomicString
39930         consistently. Also renamed the data member for clarity.
39931         (WebCore::HTMLAppletElement::insertedIntoDocument): Ditto.
39932         (WebCore::HTMLAppletElement::removedFromDocument): Ditto.
39933         * html/HTMLAppletElement.h: Ditto.
39934
39935         * html/HTMLDocument.cpp:
39936         (WebCore::addItemToMap): Use AtomicString instead of String.
39937         (WebCore::removeItemFromMap): Ditto.
39938         (WebCore::HTMLDocument::addNamedItem): Updated for member name change.
39939         (WebCore::HTMLDocument::removeNamedItem): Ditto.
39940         (WebCore::HTMLDocument::addExtraNamedItem): Ditto.
39941         (WebCore::HTMLDocument::removeExtraNamedItem): Ditto.
39942         (WebCore::HTMLDocument::clear): Added. Moved code here from the JavaScript
39943         bindings. If we're going to have an empty placeholder function, there's no
39944         reason to have it in the bindings instead of here.
39945         * html/HTMLDocument.h: Added clear. Changed the named item function
39946         arguments to AtomicString insted of String. Changed the NameCountMap to
39947         use AtomicStringImpl* instead of StringImpl*. Renamed the data members
39948         to add a m_ prefix and remove the needless doc prefix. Added hasNamedItem
39949         and hasExtraNamedItem functions that are inlined and faster than the old
39950         idiom because they doesn't ref/deref the AtomicStringImpl*, get inlined,
39951         and don't have to handle the 0 case.
39952         * html/HTMLDocument.idl: Removed the [Custom] attribute on clear and took
39953         it out of the JavaScript-specific section.
39954
39955         * html/HTMLEmbedElement.cpp:
39956         (WebCore::HTMLEmbedElement::parseMappedAttribute): Use AtomicString
39957         consistently. Also renamed the data member for clarity.
39958         (WebCore::HTMLEmbedElement::insertedIntoDocument): Ditto.
39959         (WebCore::HTMLEmbedElement::removedFromDocument): Ditto.
39960         * html/HTMLFormElement.cpp:
39961         (WebCore::HTMLFormElement::insertedIntoDocument): Ditto.
39962         (WebCore::HTMLFormElement::removedFromDocument): Ditto.
39963         (WebCore::HTMLFormElement::parseMappedAttribute): Ditto.
39964         * html/HTMLFormElement.h: Ditto.
39965
39966         * html/HTMLFrameElementBase.cpp:
39967         (WebCore::HTMLFrameElementBase::openURL): Renamed m_name to m_frameName for
39968         clarity, since the frame name is not the same as the name attribute.
39969         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Ditto.
39970         (WebCore::HTMLFrameElementBase::setNameAndOpenURL): Ditto.
39971         * html/HTMLFrameElementBase.h: Ditto.
39972
39973         * html/HTMLIFrameElement.cpp:
39974         (WebCore::HTMLIFrameElement::parseMappedAttribute): Use AtomicString
39975         consistently. Also renamed the data member for clarity.
39976         (WebCore::HTMLIFrameElement::insertedIntoDocument): Ditto.
39977         (WebCore::HTMLIFrameElement::removedFromDocument): Ditto.
39978         * html/HTMLIFrameElement.h: Ditto.
39979         * html/HTMLImageElement.cpp:
39980         (WebCore::HTMLImageElement::parseMappedAttribute): Ditto.
39981         (WebCore::HTMLImageElement::insertedIntoDocument): Ditto.
39982         (WebCore::HTMLImageElement::removedFromDocument): Ditto.
39983         * html/HTMLImageElement.h: Ditto.
39984         * html/HTMLObjectElement.cpp:
39985         (WebCore::HTMLObjectElement::parseMappedAttribute): Ditto.
39986         (WebCore::HTMLObjectElement::insertedIntoDocument): Ditto.
39987         (WebCore::HTMLObjectElement::removedFromDocument): Ditto.
39988         (WebCore::HTMLObjectElement::updateDocNamedItem): Ditto.
39989         * html/HTMLObjectElement.h: Ditto.
39990
39991         * html/HTMLParamElement.cpp:
39992         (WebCore::HTMLParamElement::isURLAttribute): Use equalIgnoringCase instead
39993         of callling lower().
39994
39995         * html/HTMLPlugInElement.h: Changed the type of m_name. The code that
39996         uses this is in HTMLAppletElement, HTMLEmbedElement, and HTMLObjectElement.
39997
39998         * platform/text/AtomicString.cpp:
39999         (WebCore::equal): Moved to an inline so we can share this code between a
40000         few different functions. It could move to a header too if we want to use
40001         it elsewhere.
40002         (WebCore::UCharBufferTranslator::equal): Change to use inline.
40003         (WebCore::HashAndCharactersTranslator::hash): Added.
40004         (WebCore::HashAndCharactersTranslator::equal): Added.
40005         (WebCore::HashAndCharactersTranslator::translate): Added.
40006         (WebCore::AtomicString::add): Improved the Identifier and UString overloads
40007         to use the already-computed hash code instead of rehashing the string.
40008         (WebCore::AtomicString::find): Added.
40009         * platform/text/AtomicString.h: Added a find function so we can avoid
40010         allocating memory just to look up a string in an atomic string set or map.
40011
40012         * platform/text/StringImpl.h: Added declarations needed for the
40013         AtomicString changes.
40014
40015 2008-03-17  Timothy Hatcher  <timothy@apple.com>
40016
40017         Reviewed by Mark Rowe.
40018
40019         Bug 17908: Various bugs in the Console completion code
40020         http://bugs.webkit.org/show_bug.cgi?id=17908
40021
40022         * page/inspector/ConsolePanel.js:
40023         (WebInspector.ConsolePanel.complete): Moved the code that checked for the caret being at the end
40024         of the prompt into the _caretAtEndOfPrompt helper function.
40025         (WebInspector.ConsolePanel.messagesSelectStart): Clear and redo the auto complete when the selection changes.
40026         (WebInspector.ConsolePanel._caretInsidePrompt): Fixed a logic error that always caused a false result.
40027         (WebInspector.ConsolePanel._caretAtEndOfPrompt): Added. Tests if the selection is a caret at the
40028         end of the prompt.
40029         (WebInspector.ConsolePanel._moveCaretToEndOfPrompt): Changed the offset to use the childNodes length.
40030         This makes sure the caret is at the end when there are multiple text nodes in the prompt.
40031
40032 2008-03-17  Dan Bernstein  <mitz@apple.com>
40033
40034         Rubber-stamped by Dave Hyatt.
40035
40036         - FloatingObject cleanup
40037
40038         Renamed FloatingObject's data members as follows: node -> m_renderer,
40039         startY -> m_top, endY -> m_bottom, left -> m_left, width -> m_width,
40040         and noPaint -> !m_shouldPaint, reversing the meaning of the flag.
40041
40042         Also addressed the FIXME in RenderBlock::containsFloat().
40043
40044         * rendering/RenderBlock.cpp:
40045         (WebCore::RenderBlock::repaintOverhangingFloats):
40046         (WebCore::RenderBlock::paintFloats):
40047         (WebCore::RenderBlock::insertFloatingObject):
40048         (WebCore::RenderBlock::removeFloatingObject):
40049         (WebCore::RenderBlock::positionNewFloats):
40050         (WebCore::RenderBlock::leftRelOffset):
40051         (WebCore::RenderBlock::rightRelOffset):
40052         (WebCore::RenderBlock::nextFloatBottomBelow):
40053         (WebCore::RenderBlock::floatBottom):
40054         (WebCore::RenderBlock::floatRect):
40055         (WebCore::RenderBlock::lowestPosition):
40056         (WebCore::RenderBlock::rightmostPosition):
40057         (WebCore::RenderBlock::leftmostPosition):
40058         (WebCore::RenderBlock::leftBottom):
40059         (WebCore::RenderBlock::rightBottom):
40060         (WebCore::RenderBlock::clearFloats):
40061         (WebCore::RenderBlock::addOverhangingFloats):
40062         (WebCore::RenderBlock::addIntrudingFloats):
40063         (WebCore::RenderBlock::containsFloat): Changed to return false if the
40064         floats lists exists but is empty, since line layout code no longer
40065         relies on the buggy behavior.
40066         (WebCore::RenderBlock::nodeAtPoint):
40067         (WebCore::RenderBlock::adjustForBorderFit):
40068         * rendering/RenderBlock.h:
40069         (WebCore::RenderBlock::containsFloats):
40070         (WebCore::RenderBlock::FloatingObject::FloatingObject):
40071         * rendering/bidi.cpp:
40072         (WebCore::RenderBlock::layoutInlineChildren):
40073         (WebCore::RenderBlock::matchedEndLine):
40074
40075 2008-03-17  Dan Bernstein  <mitz@apple.com>
40076
40077         Reviewed by Dave Hyatt.
40078
40079         - allow incremental relayout of blocks that contain floats
40080
40081         Tests: fast/repaint/line-flow-with-floats-[1-9].html
40082
40083         * rendering/RenderBlock.cpp:
40084         (WebCore::RenderBlock::clearFloatsIfNeeded): Cleaned up by moving most
40085         of the function body out of an if statement which was replaced with an
40086         early return.
40087         (WebCore::RenderBlock::insertFloatingObject): Cleaned up by moving most
40088         of the function body out of an if statement and moving the ASSERT, which
40089         is a crash in release builds, to the beginning. Made this function set
40090         the m_isDescendant flag of floating objects it creates.
40091         (WebCore::RenderBlock::removeFloatingObject): Added a call to
40092         markLinesDirtyInVerticalRange() when removing a float from a block with
40093         inline children.
40094         (WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added. Marks the
40095         lines in the given range as dirty.
40096         (WebCore::RenderBlock::clearFloats): Added code to detect changes to
40097         the geometry of floats intruding into this block from other blocks and
40098         mark any lines whose available width has changed as a result as dirty.
40099
40100         * rendering/RenderBlock.h:
40101         (WebCore::RenderBlock::FloatWithRect::FloatWithRect): Added a structure
40102         to cache a float with its position and size.
40103         (WebCore::RenderBlock::FloatingObject::FloatingObject): Added an
40104         m_isDescendant flag, used by clearFloats() to distinguish between floats
40105         entering the block from outside and floats internal to the block.
40106
40107         * rendering/RootInlineBox.h:
40108         (WebCore::RootInlineBox::floats): Added.
40109         (WebCore::RootInlineBox::floatsPtr): Added.
40110         (WebCore::RootInlineBox::Overflow::Overflow): Added a data member to
40111         hold the floats originating on the line.
40112
40113         * rendering/bidi.cpp:
40114         (WebCore::RenderBlock::layoutInlineChildren): Made the existence of
40115         floats not force a full layout. Changed to cache the geometry of floats
40116         in the block and detect changes to it. If a float's size or position
40117         changes, all lines from that point on are treated as dirty. An exception
40118         is a change in the dimensions of a float on an otherwise-clean line,
40119         which only dirties lines potentially affected by the change (see
40120         determineStartPosition()). Added code to update each RootInlineBox's
40121         set of floats as lines are laid out. Added code to shift floats
40122         belonging to clean lines in the end along with the lines.
40123         (WebCore::RenderBlock::determineStartPosition): Made this function look
40124         for changes to floats' dimensions and mark lines as dirty accordingly.
40125         Also look for new floats and if found, cause a full layout. Added code
40126         to re-add floats belonging to clean lines.
40127         (WebCore::RenderBlock::matchedEndLine): Added checking that the clean
40128         lines in the end can be shifted vertically as needed, i.e. that the
40129         available width along the way is uniform.
40130
40131 2008-03-17  Eric Seidel  <eric@webkit.org>
40132
40133         Reviewed by darin.
40134
40135         Fix _NPN_IntFromIdentifier (and export the symbol for use!)
40136
40137         Test: plugins/netscape-identifier-conversion.html
40138
40139         * WebCore.NPAPI.exp:
40140         * bridge/npruntime.cpp:
40141         (_NPN_IntFromIdentifier):
40142
40143 2008-03-17  Sam Weinig  <sam@webkit.org>
40144
40145         Reviewed by Dan Bernstein.
40146
40147         Add HTMLCollection constructor to the Window object. (Omission noticed by Harri Porten)
40148
40149         * page/DOMWindow.idl: 
40150
40151 2008-03-17  Holger Hans Peter Freyther  <zecke@selfish.org>
40152
40153         Unreviewed Gtk+ build fix.
40154
40155         * platform/gtk/ScrollViewGtk.cpp: remove const
40156
40157 2008-03-17  Julien Chaffraix  <julien.chaffraix@gmail.com>
40158
40159         Reviewed by Holger.
40160
40161         <http://bugs.webkit.org/show_bug.cgi?id=17754>
40162
40163         - Implement ResourceHandle::loadResourceSynchronously to dispatch synchronous
40164           requests.
40165
40166         - Implement WebCoreSynchronousLoader, the ResourceHandleClient which holds
40167           the network data, response and error for us during the transfert.
40168
40169         * platform/network/ResourceHandleInternal.h: Remove trailing white space.
40170         * platform/network/curl/ResourceHandleCurl.cpp: Add WebCoreSynchronousLoader
40171         (WebCore::WebCoreSynchronousLoader::resourceResponse):
40172         (WebCore::WebCoreSynchronousLoader::resourceError):
40173         (WebCore::WebCoreSynchronousLoader::data):
40174         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
40175         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
40176         (WebCore::WebCoreSynchronousLoader::didReceiveData):
40177         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
40178         (WebCore::WebCoreSynchronousLoader::didFail):
40179         (WebCore::ResourceHandle::loadResourceSynchronously): Implement method
40180         using WebCoreSynchronousLoader.
40181
40182         * platform/network/curl/ResourceHandleManager.cpp:
40183         (WebCore::ResourceHandleManager::dispatchSynchronousJob):
40184         (WebCore::ResourceHandleManager::startJob):
40185         (WebCore::ResourceHandleManager::initializeHandle): Handle initialization
40186         method used both for synchronous and asynchronous job.
40187
40188         * platform/network/curl/ResourceHandleManager.h:
40189
40190 2008-03-17  Darin Adler  <darin@apple.com>
40191
40192         - try to fix GTK build
40193
40194         * platform/ScrollView.h: Make setGtkAdjustments adjustment.
40195         And non-virtual (why was it virtual?).
40196
40197 2008-03-17  Rodney Dawes  <dobey@wayofthemonkey.com>
40198
40199         Fix Bug 17898: Split PluginMessageThrottlerWin into its own files
40200
40201         <http://bugs.webkit.org/show_bug.cgi?id=17898>
40202
40203         Move the PluginMessageThrottlerWin class into its own files, in
40204         preparation for refactoring PluginView code to be shared.
40205
40206         Reviewed and tweaked by Adam Roben.
40207
40208         * WebCore.vcproj/WebCore.vcproj:
40209         * plugins/PluginView.h:
40210         * plugins/win/PluginMessageThrottlerWin.cpp: Added.
40211         * plugins/win/PluginMessageThrottlerWin.h: Added.
40212         * plugins/win/PluginViewWin.cpp:
40213
40214 2008-03-17  Adam Roben  <aroben@apple.com>
40215
40216         More Windows build fixes after r31098
40217
40218         * platform/ScrollView.h: Make some more methods public.
40219
40220 2008-03-17  Adam Roben  <aroben@apple.com>
40221
40222         Windows and Qt build fixes after r31098
40223
40224         * platform/ScrollView.h: Mark methods public that still need to be so.
40225
40226 2008-03-16  Timothy Hatcher  <timothy@apple.com>
40227
40228         Reviewed by Darin Adler.
40229
40230         Bug 17883: Console completion should support bracket notation
40231         http://bugs.webkit.org/show_bug.cgi?id=17883
40232
40233         Also fixes a bug where the Inspector's window object was used instead of the
40234         inspected window object.
40235
40236         * page/inspector/ConsolePanel.js:
40237         (WebInspector.ConsolePanel.complete): Add a comment about the _backwardsRange call.
40238         (WebInspector.ConsolePanel.completions): Add a comment about the _backwardsRange call.
40239         Check the last character of the expression for a dot or bracket. Fallback
40240         to the InspectorController.inspectedWindow() instead of window, this was a bad bug.
40241         If the expression caused an exception, just consider the prefix a window property.
40242         When bracket notation is used remember what quote was used and compared property names
40243         with that quote surrounding it. Also escape the property name for the quote and backslash.
40244
40245 2008-03-17  Robert Blaut  <webkit@blaut.biz>
40246
40247         Reviewed by Darin.
40248
40249         Fix for bug http://bugs.webkit.org/show_bug.cgi?id=17696
40250         Set default margin-bottom for form element in quirk mode
40251         and be compatible with Gecko.
40252
40253         Tests: fast/css/margin-bottom-form-element-quirk.html
40254                fast/css/margin-bottom-form-element-strict.html
40255
40256         * css/html4.css:
40257         * css/quirks.css:
40258
40259 2008-03-17  Antti Koivisto  <antti@apple.com>
40260
40261         Reviewed by Darin.
40262
40263         Speculative fix for http://bugs.webkit.org/show_bug.cgi?id=17878
40264         Bug 17878: REGRESSION: Acid3 sometimes crashes Webkit under WebCore::Loader::Host::cancelRequests
40265         
40266         I can't reproduce the crash or make a test case for this one but I'm pretty sure this
40267         is the problem. Essentially the same bug as http://bugs.webkit.org/show_bug.cgi?id=17862
40268         except in didFail() instead of didFinishLoading().
40269
40270         * loader/loader.cpp:
40271         (WebCore::Loader::Host::didFail):
40272
40273 2008-03-17  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
40274
40275         Reviewed and tweaked by Darin.
40276
40277         http://bugs.webkit.org/show_bug.cgi?id=17172
40278         Refactor platform checks in ScrollView.h
40279
40280         * platform/ScrollView.h: Change #ifs around.
40281
40282 2008-03-17  Yuzhu Shen  <yuzhu.shen@gmail.com>
40283
40284         Reviewed by Darin.
40285
40286         Fix the bug: http://bugs.webkit.org/show_bug.cgi?id=17760
40287         It is necessary to load the image even when src="".
40288
40289         Test: fast/images/load-img-with-empty-src.html
40290
40291         * html/HTMLImageLoader.cpp:
40292         (WebCore::HTMLImageLoader::updateFromElement): isNull rather than isEmpty.
40293
40294 2008-03-17  Rodney Dawes  <dobey@wayofthemonkey.com>
40295
40296         Fix GTK+ build from r31094.
40297
40298         * plugins/gtk/PluginDatabaseGtk.cpp:
40299         (PluginDatabase::getPluginsInPaths):
40300
40301 2008-03-17  Adam Roben  <aroben@apple.com>
40302
40303         Fix Bug 17876: REGRESSION (r31060): Attempting to visit Ofcom page causes crash
40304
40305         <http://bugs.webkit.org/show_bug.cgi?id=17876>
40306
40307         Reviewed by John.
40308
40309         Test: fast/dom/remove-named-attribute-crash.html
40310
40311         * dom/NamedAttrMap.cpp:
40312         (WebCore::NamedAttrMap::removeAttribute): Store the Attribute we're
40313         going to remove from the m_attributes Vector in a RefPtr so it doesn't
40314         get deleted when it is removed from the Vector.
40315
40316 2008-03-17  Rodney Dawes  <dobey@wayofthemonkey.com>
40317
40318         Reviewed by Adam Roben.
40319
40320         Implement PluginDatabase for GTK+ with PluginDatabaseGtk.cpp.
40321         Remove implemented methods from TemporaryLinkStubs.
40322
40323         * GNUmakefile.am:
40324         * plugins/gtk:
40325         * plugins/gtk/PluginDatabaseGtk.cpp:
40326         * platform/gtk/TemporaryLinkStubs.cpp:
40327
40328 2008-03-17  Simon Hausmann  <hausmann@webkit.org>
40329
40330         Fix the Qt build.
40331
40332         * platform/text/qt/TextCodecQt.cpp:
40333         (WebCore::TextCodecQt::encode):
40334         * platform/text/qt/TextCodecQt.h:
40335
40336 2008-03-16  Maciej Stachowiak  <mjs@apple.com>
40337
40338         Not reviewed, just fixing an incomplete comment from the last commit.
40339
40340         * dom/Range.cpp:
40341         (WebCore::Range::surroundContents):
40342
40343 2008-03-16  Maciej Stachowiak  <mjs@apple.com>
40344
40345         Reviewed by Darin.
40346
40347         - fixed "Acid3 expects different exceptions for surroundContents calls involving comment nodes (affects Acid3 test 11)"
40348         http://bugs.webkit.org/show_bug.cgi?id=17509
40349         
40350         This gets us to 92/100
40351
40352         * dom/Range.cpp:
40353         (WebCore::Range::surroundContents): Check for
40354         HIERARCHY_REQUEST_ERR before BAD_BOUNDARYPOINTS_ERR, since Acid3
40355         expects exceptional conditions to be tested in the order that the
40356         spec lists them. Also, adjust the HIERARCHY_REQUEST_ERR check. If
40357         the start point of the range is in a comment node, the node that
40358         would be the parent of a partial replacement is actually the
40359         comment node's parent (since comment nodes have character
40360         indices), so we should do the HIERARCHY_REQUEST_ERR check based on
40361         the parent of the comment node, as for text nodes, even though it
40362         will fail later with a different exception because it is not
40363         allowed to surround a partially selected non-text node.
40364
40365 2008-03-16  Brett Wilson  <brettw@chromium.org>
40366
40367         Reviewed by Darin.
40368
40369         Fix bug 15119: URL query characters that are unencodable in the
40370         request's character set should be converted to XML entities with
40371         non-alphanumeric characters escaped.
40372
40373         Test: http/tests/uri/escaped-entity.html
40374
40375         * html/FormDataList.cpp:
40376         (WebCore::FormDataList::appendString):
40377         * html/HTMLFormElement.cpp:
40378         (WebCore::HTMLFormElement::formData):
40379         * platform/KURL.cpp:
40380         (WebCore::encodeRelativeString):
40381         * platform/text/String.cpp:
40382         (WebCore::String::latin1):
40383         (WebCore::String::utf8):
40384         * platform/text/TextCodec.cpp:
40385         (WebCore::TextCodec::unencodableCharReplacement):
40386         * platform/text/TextCodec.h:
40387         * platform/text/TextCodecICU.cpp:
40388         (WebCore::urlEscapedEntityCallback):
40389         (WebCore::gbkUrlEscapedEntityCallack):
40390         (WebCore::TextCodecICU::encode):
40391         * platform/text/TextCodecICU.h:
40392         (WebCore::TextCodecICU::setNeedsGBKFallbacks):
40393         * platform/text/TextCodecLatin1.cpp:
40394         (WebCore::encodeComplexWindowsLatin1):
40395         (WebCore::TextCodecLatin1::encode):
40396         * platform/text/TextCodecLatin1.h:
40397         * platform/text/TextCodecUTF16.cpp:
40398         (WebCore::TextCodecUTF16::encode):
40399         * platform/text/TextCodecUTF16.h:
40400         * platform/text/TextCodecUserDefined.cpp:
40401         (WebCore::encodeComplexUserDefined):
40402         (WebCore::TextCodecUserDefined::encode):
40403         * platform/text/TextCodecUserDefined.h:
40404         * platform/text/TextEncoding.cpp:
40405         (WebCore::TextEncoding::encode):
40406         * platform/text/TextEncoding.h:
40407         * platform/text/mac/TextCodecMac.cpp:
40408         (WebCore::TextCodecMac::encode):
40409         * platform/text/mac/TextCodecMac.h:
40410         * xml/XMLHttpRequest.cpp:
40411         (WebCore::XMLHttpRequest::send):
40412
40413 2008-03-16  Kevin Ollivier  <kevino@theolliviers.com>
40414
40415         Rubber stamped by Darin.
40416
40417         Add set-webkit-configuration support for wx port, and centralize
40418         build dir location setting.
40419
40420         http://bugs.webkit.org/show_bug.cgi?id=17790
40421
40422         * webcore-base.bkl:
40423
40424 2008-03-16  Darin Adler  <darin@apple.com>
40425
40426         Reviewed by Mark Rowe.
40427
40428         - http://bugs.webkit.org/show_bug.cgi?id=17881
40429           a little cleanup for HTMLTextAreaElement
40430
40431         Tests: fast/forms/textarea-default-value-leading-newline.html
40432                fast/forms/textarea-linewrap-dynamic.html
40433
40434         * html/HTMLTextAreaElement.cpp:
40435         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Tweaked names/
40436         (WebCore::HTMLTextAreaElement::selectionStart): Ditto, also use early return
40437         and check for < 0 rather than -1 specifically.
40438         (WebCore::HTMLTextAreaElement::selectionEnd): Ditto.
40439         (WebCore::HTMLTextAreaElement::setSelectionStart): Early return.
40440         (WebCore::HTMLTextAreaElement::setSelectionEnd): Ditto.
40441         (WebCore::HTMLTextAreaElement::select): Ditto.
40442         (WebCore::HTMLTextAreaElement::setSelectionRange): Ditto.
40443         (WebCore::HTMLTextAreaElement::parseMappedAttribute): Changed value parsing
40444         to treat unknown values as meaning "default" rather than "leave value as-is".
40445         Only call setNeedsLayoutAndPrefWidthsRecalc when mode changed.
40446         (WebCore::HTMLTextAreaElement::createRenderer): Removed name of unused argument.
40447         (WebCore::HTMLTextAreaElement::appendFormData): Updated for name changes.
40448         (WebCore::HTMLTextAreaElement::isKeyboardFocusable): Got rid of unnneeded explicit
40449         class name in isFocusable call.
40450         (WebCore::HTMLTextAreaElement::isMouseFocusable): Ditto.
40451         (WebCore::HTMLTextAreaElement::updateFocusAppearance): Tweaked formatting.
40452         (WebCore::HTMLTextAreaElement::defaultEventHandler): Ditto.
40453         (WebCore::HTMLTextAreaElement::updateValue): Early return.
40454         (WebCore::HTMLTextAreaElement::setValue): Got rid of intermediate value to
40455         eliminate on small refcount churn.
40456         (WebCore::HTMLTextAreaElement::defaultValue): Got rid of unneeded redundant
40457         string length checks, since String already checks all indexing and returns 0.
40458         (WebCore::HTMLTextAreaElement::setDefaultValue): Added code to normalize
40459         line endings and add a leading line ending to fix cases where the first
40460         character is a newline.
40461         (WebCore::HTMLTextAreaElement::accessKeyAction): Removed name of unused arg.
40462         (WebCore::HTMLTextAreaElement::accessKey): Changed return value to avoid
40463         refcount churn.
40464         (WebCore::HTMLTextAreaElement::selection): Updated names and use < 0 instead
40465         of -1 specifically.
40466
40467         * html/HTMLTextAreaElement.h: Replaced wrap function with more-specific
40468         shouldWrapText one. Changed return value of accessKey. Made WrapMethod enum
40469         provate and renamed the values. Renamed cachedSelStart and cachedSelEnd to
40470         m_cachedSelectionStart and m_cachedSelectionEnd.
40471
40472         * rendering/RenderTextControl.cpp:
40473         (WebCore::RenderTextControl::createInnerTextStyle): Updated for change to
40474         HTMLTextAreaElement wrap function.
40475
40476 2008-03-16  Antti Koivisto  <antti@apple.com>
40477
40478         Reviewed by Mitz.
40479
40480         Fix http/tests/security/frame-loading-via-document-write.html
40481         which was broken by the preload patch.
40482         
40483         Don't print error message when preload fails local file security check.
40484         Some minor refactoring.
40485
40486         * html/PreloadScanner.cpp:
40487         (WebCore::PreloadScanner::emitTag):
40488         (WebCore::PreloadScanner::emitCSSRule):
40489         * loader/Cache.cpp:
40490         (WebCore::Cache::requestResource):
40491         * loader/Cache.h:
40492         * loader/DocLoader.cpp:
40493         (WebCore::DocLoader::requestResource):
40494         (WebCore::DocLoader::preload):
40495         (WebCore::DocLoader::printPreloadStats):
40496         * loader/DocLoader.h:
40497
40498 2008-03-16  Antti Koivisto  <antti@apple.com>
40499
40500         Reviewed by Darin.
40501         
40502         Fix http://bugs.webkit.org/show_bug.cgi?id=17862
40503         REGRESSION (r31038): Reproducible crash under DocLoader::checkForReload() at marware.com
40504         
40505         This was a memory smasher introduced by the preloading patch. 
40506         If a script resource was marked uncacheable, early deletion of the 
40507         Request object would cause deletion of the CachedResource too if
40508         it was referred more than once in a single document.
40509
40510         Test: http/tests/misc/uncacheable-script-repeated.html
40511
40512         * loader/loader.cpp:
40513         (WebCore::Loader::Host::servePendingRequests):
40514         (WebCore::Loader::Host::didFinishLoading):
40515
40516 2008-03-16  Yuzhu Shen  <yuzhu.shen@gmail.com>
40517
40518         Reviewed by Darin.
40519
40520         Fix bug http://bugs.webkit.org/show_bug.cgi?id=17714
40521         <img href="#"> should go to top of the page.
40522
40523         Test: fast/html/empty-fragment-id-goto-top.html
40524
40525         * loader/FrameLoader.cpp:
40526         (WebCore::FrameLoader::gotoAnchor):
40527
40528 2008-03-16  Thiago Macieira  <thiago.macieira@trolltech.com>
40529
40530         Reviewed by Darin.
40531
40532         Don't use RefPtr in classes you haven't seen the implementation of.
40533
40534         Forward-declaration and declaration of RefPtr<Foo> is ok. But you
40535         cannot *use* said objects until Foo is defined. This is true even for
40536         initialisation with a 0.
40537
40538         Seems the HP aCC compiler is more strict here than gcc.
40539
40540         * editing/SplitTextNodeCommand.h:
40541         * page/FrameTree.h:
40542         * xml/XPathExpressionNode.h:
40543
40544 2008-03-16  Darin Adler  <darin@apple.com>
40545
40546         Reviewed by Mitz.
40547
40548         - fix http://bugs.webkit.org/show_bug.cgi?id=14941
40549           <rdar://problem/5404093> textarea value from JavaScript includes extra newline
40550
40551         Test: fast/forms/textarea-trailing-newline.html
40552
40553         * rendering/RenderTextControl.cpp:
40554         (WebCore::RenderTextControl::finishText): Added code to strip the trailing
40555         newline. It's possible there are some obscure cases where this is not wanted,
40556         but I couldn't find any. If someone finds a case where this is bad, we can
40557         make the code conditional.
40558
40559 2008-03-16  Darin Adler  <darin@apple.com>
40560
40561         Reviewed by Mitz.
40562
40563         - fix http://bugs.webkit.org/show_bug.cgi?id=17876
40564           Attempting to visit Ofcom page causes crash
40565
40566         This is causing intermittent crashes on some existing test cases on the buildbot
40567         too; I don't have a 100% test case right now, but it should be easy to add one later
40568         and this does fix a crash in a test we already have.
40569
40570         * dom/CharacterData.cpp:
40571         (WebCore::CharacterData::CharacterData): Initialize m_data to the empty string,
40572         not the null string. The class assumes the string can never being null.
40573         (WebCore::CharacterData::setData): If asked to set the data to the null string,
40574         set it to the empty string instead. This matches what the (non-empty) constructor
40575         has always done.
40576
40577 2008-03-15  Timothy Hatcher  <timothy@apple.com>
40578
40579         Reviewed by Adam Roben.
40580
40581         Bug 17870: Web Inspector console should feel more like a terminal
40582         http://bugs.webkit.org/show_bug.cgi?id=17870
40583
40584         Bug 14390: Console input area should be more noticeable
40585         http://bugs.webkit.org/show_bug.cgi?id=14390
40586         <rdar://5712831>
40587
40588         Bug 17237: Inspector should tab-complete object properties in the Console
40589         http://bugs.webkit.org/show_bug.cgi?id=17237
40590         <rdar://5732842>
40591
40592         Adds tab completion, auto completion and a blended input prompt.
40593         The prompt is also focused when the console is shown.
40594            Implements a new look, that will be part of the UI refresh.
40595
40596         * page/inspector/ConsolePanel.js: 
40597         (WebInspector.ConsolePanel): Renamed a few properties.
40598         (WebInspector.ConsolePanel.get/set promptText): Property to set
40599         and get the current prompt text. Does not affect command history.
40600         (WebInspector.ConsolePanel.show): Make the prompt focus on show.
40601         (WebInspector.ConsolePanel.acceptAutoComplete): Accepts any
40602         pending auto complete text.
40603         (WebInspector.ConsolePanel.clearAutoComplete): Cancels any pending
40604         auto complete text.
40605         (WebInspector.ConsolePanel.autoCompleteSoon): Sets a timeout to auto
40606         complete in 250 ms, only if there isn't a pending auto complete.
40607         (WebInspector.ConsolePanel.complete): 
40608         (WebInspector.ConsolePanel.completions): Generate a list of possible
40609         completions based on the prefix and the previous expression ranges.
40610         (WebInspector.ConsolePanel._backwardsRange): Helper to scan backwards
40611         from a node and offset to find a start node and offset of the first
40612         character found in the characters string.
40613         (WebInspector.ConsolePanel._evalInInspectedWindow): Helper to eval in the
40614         inspected window.
40615         (WebInspector.ConsolePanel._caretInsidePrompt): Returns true if the selection
40616         is collapsed and is inside the prompt element.
40617         (WebInspector.ConsolePanel._moveCaretToEndOfPrompt): Moves the selection
40618         to the end of the prompt.
40619         (WebInspector.ConsolePanel._onTabPressed): Calls complete on
40620         tab press.
40621         (WebInspector.ConsolePanel._onEnterPressed): Call clearAutoComplete so the
40622         autocompletion text is not evaluated.
40623
40624         * page/inspector/Images/errorIcon.png: New image.
40625         * page/inspector/Images/userInputIcon.png: Added.
40626         * page/inspector/Images/userInputPreviousIcon.png: Added.
40627         * page/inspector/Images/warningIcon.png: New image.
40628         * page/inspector/inspector.css: New refreshed UI.
40629
40630 2008-03-15  Mark Mentovai  <mark@moxienet.com>
40631
40632         Reviewed and landed by Darin.
40633
40634         - http://bugs.webkit.org/show_bug.cgi?id=17833
40635           use file extensions instead of explicit file types in WebCore's Xcode project
40636
40637         * WebCore.xcodeproj/project.pbxproj: Remove unnecessary
40638           uses of explicitFileType, preferring lastKnownFileType ("File Type:
40639           Default for File" in Xcode's File Info's General tab).  Files below
40640           that relied on an explicit file type setting other than what would
40641           be implied by their extensions have been renamed to have correct
40642           extensions.
40643         * bridge/jni/jni_jsobject.cpp: Removed.
40644         * bridge/jni/jni_jsobject.mm: Copied from bridge/jni/jni_jsobject.cpp.
40645         * loader/mac/LoaderNSURLExtras.m: Removed.
40646         * loader/mac/LoaderNSURLExtras.mm: Copied from loader/mac/LoaderNSURLExtras.m.
40647         * platform/mac/SharedTimerMac.cpp: Removed.
40648         * platform/mac/SharedTimerMac.mm: Copied from platform/mac/SharedTimerMac.cpp.
40649
40650 2008-03-15  Darin Adler  <darin@apple.com>
40651
40652         Reviewed by Sam.
40653
40654         - fix http://bugs.webkit.org/show_bug.cgi?id=11997
40655           Ranges are not fixed after mutation (affects Acid3 test 13)
40656
40657         Test: fast/dom/Range/mutation.html
40658
40659         * WebCore.xcodeproj/project.pbxproj: Added NodeWithIndex.h, NodeWithIndexAfter.h,
40660         and NodeWithIndexBefore.h.
40661
40662         * dom/CharacterData.cpp:
40663         (WebCore::CharacterData::setData): Replaced call to Document::removeMarkers
40664         with call to Document::textRemoved.
40665         (WebCore::CharacterData::insertData): Replaced call to Document::shiftMarkers
40666         with call to Document::textInserted.
40667         (WebCore::CharacterData::deleteData): Replaced call to Document::removeMarkers
40668         and Document::shiftMarkers with call to Document::textRemoved.
40669         (WebCore::CharacterData::replaceData): Replaced call to Document::removeMarkers
40670         and Document::shiftMarkers with call to Document::textRemoved and
40671         Document::textInserted.
40672         (WebCore::CharacterData::containsOnlyWhitespace): Tweaked a bit.
40673
40674         * dom/ContainerNode.cpp:
40675         (WebCore::ContainerNode::childrenChanged): Added a call to
40676         Document::nodeChildrenChanged when the nmber of children was changed (and not
40677         by the parser).
40678         (WebCore::dispatchChildRemovalEvents): Updated for name change.
40679
40680         * dom/Document.cpp:
40681         (WebCore::Document::~Document): Assert that all ranges are gone.
40682         (WebCore::Document::nodeChildrenChanged): Added. Calls nodeChildrenChanged on
40683         all ranges.
40684         (WebCore::Document::nodeWillBeRemoved): Renamed from notifyBeforeNodeRemoval.
40685         Added code to call nodeWillBeRemoved on all ranges.
40686         (WebCore::Document::textInserted): Added. Calls textInserted on all ranges and
40687         also calls shiftMarkers.
40688         (WebCore::Document::textRemoved): Added. Calls textRemoved on all ranges and also
40689         calls removeMarkers and shiftMarkers.
40690         (WebCore::Document::textNodesMerged): Added. Calls textNodesMerged on all ranges.
40691         (WebCore::Document::textNodeSplit): Added. Calls textNodeSplit on all ranges.
40692         (WebCore::Document::attachRange): Added. Adds range to the HashSet of all ranges
40693         for this document.
40694         (WebCore::Document::detachRange): Added. Removes range from the HashSet.
40695         * dom/Document.h: Added the new functions and the data member.
40696
40697         * dom/Element.cpp:
40698         (WebCore::Element::normalizeAttributes): Added. Contains the part of the
40699         normalize function that's specific to Element. Better encapsulation to have it
40700         here rather than in Node::normalize.
40701         * dom/Element.h: Added the new function.
40702
40703         * dom/Node.cpp:
40704         (WebCore::Node::normalize): Rewrote so it's no longer recursive. Also added
40705         a call to textNodesMerged after each pair of nodes is merged but before the
40706         second node is removed.
40707         (WebCore::Node::traverseNextNodePostOrder): Added. Helper function used by
40708         normalize, but also useful elsewhere.
40709         * dom/Node.h: Added the new function.
40710
40711         * dom/NodeIterator.cpp:
40712         (WebCore::NodeIterator::nodeWillBeRemoved): Renamed from notifyBeforeNodeRemoval.
40713         * dom/NodeIterator.h: Ditto.
40714
40715         * dom/ProcessingInstruction.cpp:
40716         (WebCore::ProcessingInstruction::setData): Call textRemoved.
40717
40718         * dom/Range.cpp:
40719         (WebCore::NodeWithIndex::index): Added. Computes and stores index.
40720         (WebCore::NodeWithIndexBefore::indexBefore): Added. Computes and stores index.
40721         (WebCore::NodeWithIndexAfter::indexAfter): Added. Computes and stores index.
40722         (WebCore::Range::Range): Call attachRange.
40723         (WebCore::Range::~Range): Call detachRange unless the range is already detached.
40724         (WebCore::Range::commonAncestorContainer): Removed check for WRONG_DOCUMENT_ERR.
40725         It's no longer possible to create a range where the two containers are non-zero
40726         and have no common ancestor.
40727         (WebCore::Range::isPointInRange): Rewrote expression to be more readable.
40728         (WebCore::Range::compareNode): Changed local variable to use int for consistency.
40729         (WebCore::Range::compareBoundaryPoints): Replaced ASSERT with ASSERT_NOT_REACHED.
40730         (WebCore::Range::deleteContents): Removed check for INVALID_STATE_ERR and
40731         initialization of ec to 0; both are now inside checkDeleteExtract.
40732         (WebCore::Range::intersectsNode): Changed local variable to use int for consistency.
40733         Also changed comparison to use < 0 and >= 0 rather than checking explicitly for 1
40734         and -1.
40735         (WebCore::Range::processContents): Changed code to not get the nodeType multiple
40736         times on the same node, and tweaked formatting. Removed code to update the range
40737         on deletion, because the normal delete logic will take care of that now.
40738         (WebCore::Range::extractContents): Removed check for INVALID_STATE_ERR and
40739         initialization of ec to 0; both are now inside checkDeleteExtract.
40740         (WebCore::Range::insertNode): Changed local variable to use int for consistency.
40741         (WebCore::Range::toString): Changed variable name to pastLast.
40742         (WebCore::Range::detach): Call detachRange.
40743         (WebCore::Range::checkDeleteExtract): Added check for detached range and code to
40744         set ec to 0; moved here from the two callers. Also changed variable name to pastLast.
40745         (WebCore::endpointNodeChildrenChanged): Added.
40746         (WebCore::Range::nodeChildrenChanged): Added.
40747         (WebCore::endpointNodeWillBeRemoved): Added.
40748         (WebCore::Range::nodeWillBeRemoved): Added.
40749         (WebCore::endpointTextInserted): Added.
40750         (WebCore::Range::textInserted): Added.
40751         (WebCore::endpointTextRemoved): Added.
40752         (WebCore::Range::textRemoved): Added.
40753         (WebCore::endpointTextNodesMerged): Added.
40754         (WebCore::Range::textNodesMerged): Added.
40755         (WebCore::endpointTextNodesSplit): Added.
40756         (WebCore::Range::textNodeSplit): Added.
40757
40758         * dom/Range.h: Added new member functions.
40759
40760         * dom/NodeWithIndex.h: Added. Makes it so we won't find the index for the same
40761         node more than once.
40762         * dom/NodeWithIndexAfter.h: Added. Similar to NodeWithIndex but gives the index after a
40763         node and treats a node pointer of 0 as meaning "before first node in parent container".
40764         * dom/NodeWithIndexBefore.h: Added.  Similar to NodeWithIndex but treats a node pointer of 0
40765         as meaning "after last node in parent container".
40766
40767         * dom/Text.cpp:
40768         (WebCore::Text::splitText): Call textNodeSplit.
40769
40770         * editing/ApplyStyleCommand.cpp:
40771         (WebCore::ApplyStyleCommand::applyInlineStyle): Changed variable name to pastLast.
40772
40773 2008-03-15  Julien Chaffraix  <julien.chaffraix@gmail.com>
40774
40775         Reviewed by Holger.
40776
40777         [CURL] Crash below ResourceHandleManager::setupPOST when job->request().httpBody() is NULL
40778         http://bugs.webkit.org/show_bug.cgi?id=16906
40779
40780         Add null checks for httpBody() to match other ports.
40781
40782         Test: http/tests/xmlhttprequest/xmlhttprequest-post-crash.html
40783
40784         * platform/network/curl/ResourceHandleManager.cpp:
40785         (WebCore::readCallback): Add null check.
40786         (WebCore::ResourceHandleManager::setupPOST): Ditto.
40787
40788 2008-03-14  Steve Falkenburg  <sfalken@apple.com>
40789
40790         PGO build fixes.
40791
40792         * WebCore.vcproj/WebCore.vcproj:
40793
40794 2008-03-14  Anders Carlsson  <andersca@apple.com>
40795
40796         Reviewed by Sam.
40797
40798         <rdar://problem/5794989>
40799         https://bugs.webkit.org/show_bug.cgi?id=17792
40800         REGRESSION (Safari 3.0.4-3.1): Ordering tickets from Sweden's biggest train operator doesn't work
40801
40802         Pass the frame loader that should be used for looking up the frame name to FrameLoader::createWindow
40803         so that somewindow.open calls where the active window and 'somewindow' differ return the correct frame.
40804         
40805         * bindings/js/JSDOMWindowBase.cpp:
40806         (WebCore::createWindow):
40807         * loader/FrameLoader.cpp:
40808         (WebCore::FrameLoader::createWindow):
40809         * loader/FrameLoader.h:
40810
40811 2008-03-14  Dan Bernstein  <mitz@apple.com>
40812
40813         Reviewed by Mark Rowe.
40814
40815         - fix <rdar://problem/5797836> shadow offsets are smaller than specified
40816
40817         * platform/graphics/cg/GraphicsContextCG.cpp:
40818         (WebCore::GraphicsContext::setShadow): Made the workaround for
40819         <rdar://problem/5539388> unconditional.
40820
40821 2008-03-14  Adam Roben  <aroben@apple.com>
40822
40823         Fix it right this time
40824
40825         * platform/MainThread.cpp: Cast to unsigned so we can use %u in the
40826         format string.
40827         * platform/mac/MainThreadMac.mm:
40828
40829 2008-03-14  Adam Roben  <aroben@apple.com>
40830
40831         Mac build fix
40832
40833         * platform/mac/MainThreadMac.mm: Corrected a typo.
40834
40835 2008-03-14  Dan Bernstein  <mitz@apple.com>
40836
40837         Reviewed by Darin Adler.
40838
40839         - fix http://bugs.webkit.org/show_bug.cgi?id=17834
40840           REGRESSION: floated first-letter does not work when included in table
40841
40842         Test: fast/css/first-letter-float.html
40843
40844         * rendering/RenderBlock.cpp:
40845         (WebCore::RenderBlock::updateFirstLetter): Changed the search for the
40846         first text node to stop at a float if that float is an existing first-
40847         letter.
40848
40849 2008-03-14  Sam Weinig  <sam@webkit.org>
40850
40851         Fix Mac build
40852
40853         * WebCore.xcodeproj/project.pbxproj:
40854
40855 2008-03-13  Adam Roben  <aroben@apple.com>
40856
40857         Make most of callOnMainThread's implementation be cross-platform
40858
40859         I took the non-platform-specific parts of MainThreadWin.cpp and moved
40860         them to a new MainThread.cpp. Each platform is now responsible for
40861         implementing one function, scheduleDispatchFunctionsOnMainThread,
40862         which is supposed to set things up so that
40863         dispatchFunctionsFromMainThread gets called from the main thread in
40864         the near future.
40865
40866         Reviewed by Alexey.
40867
40868         * GNUmakefile.am: Added MainThread.cpp to the project.
40869         * WebCore.pro: Ditto.
40870         * WebCore.vcproj/WebCore.vcproj: Ditto.
40871         * WebCore.xcodeproj/project.pbxproj: Ditto.
40872         * WebCoreSources.bkl: Ditto.
40873         * platform/MainThread.cpp:
40874           - Copied from WebCore/platform/win/MainThreadWin.cpp.
40875           - Removed the Windows-specific parts.
40876         (WebCore::callOnMainThread): Changed to call
40877         scheduleDispatchFunctionsOnMainThread instead of PostMessage.
40878         * platform/gtk/MainThreadGtk.cpp:
40879         (WebCore::timeoutFired): Renamed from callFunctionOnMainThread. Now
40880         just calls dispatchFunctionsFromMainThread.
40881         (WebCore::scheduleDispatchFunctionsOnMainThread): Added. Calls through
40882         to g_timeout_add.
40883         * platform/mac/MainThreadMac.mm: Renamed WebCoreFunctionWrapper to
40884         WebCoreMainThreadCaller.
40885         (-[WebCoreMainThreadCaller call]): Calls through to
40886         dispatchFunctionsFromMainThread.
40887         (WebCore::scheduleDispatchFunctionsOnMainThread): Makes a new
40888         WebCoreMainThreadCaller and calls performSelectorOnMainThread on it.
40889         * platform/qt/MainThreadQt.cpp: Removed PerformFunctionEvent.
40890         (WebCore::MainThreadInvoker::event): Chagned to call through to
40891         dispatchFunctionsFromMainThread.
40892         (WebCore::scheduleDispatchFunctionsOnMainThread): Sends an empty event
40893         to the MainThreadInvoker.
40894         * platform/win/MainThreadWin.cpp:
40895           - Removed the non-Windows-specific parts.
40896           - Removed some unnecessary initialization of static variables to 0.
40897         (WebCore::ThreadingWindowWndProc): Changed to call
40898         dispatchFunctionsFromMainThread.
40899         (WebCore::scheduleDispatchFunctionsOnMainThread): Calls through to
40900         PostMessage.
40901         * platform/wx/MainThreadWx.cpp:
40902         (WebCore::scheduleDispatchFunctionsOnMainThread): Added.
40903
40904 2008-03-14  Beth Dakin  <bdakin@apple.com>
40905
40906         Reviewed by Geoff.
40907
40908         Fix for <rdar://problem/5728171> Potential PLT speedup: don't 
40909         realloc every time inside NamedAttrMap::addAttribute
40910
40911         The speed-up for this turned out to be so small that it is mostly 
40912         imperceptible. It is likely that it is a tiny boost, though, and 
40913         the new code is much cleaner.
40914
40915         * dom/Element.cpp:
40916         (WebCore::Element::setAttributeMap): attrs is now called 
40917         m_attributes
40918         * dom/NamedAttrMap.cpp: The array attrs is now the Vector of 
40919         RefPtrs called m_attributes, and there is no longer any need for 
40920         the len member variable. 
40921         (WebCore::NamedAttrMap::NamedAttrMap): 
40922         (WebCore::NamedAttrMap::item):
40923         (WebCore::NamedAttrMap::getAttributeItem):
40924         (WebCore::NamedAttrMap::clearAttributes):
40925         (WebCore::NamedAttrMap::operator=):
40926         (WebCore::NamedAttrMap::addAttribute):
40927         (WebCore::NamedAttrMap::removeAttribute):
40928         (WebCore::NamedAttrMap::mapsEquivalent):
40929         * dom/NamedAttrMap.h: Same.
40930         (WebCore::NamedAttrMap::length):
40931         (WebCore::NamedAttrMap::attributeItem):
40932         (WebCore::NamedAttrMap::shrinkToLength):
40933         (WebCore::NamedAttrMap::reserveCapacity):
40934         * html/HTMLTokenizer.cpp: One of the benefits of the old array was 
40935         that it never took up more memory than it needed to. So the 
40936         tokenizer utilizes new member functions on NamedAttrMap 
40937         (shrinkToLength and reserveCapacity) to try to keep memory usage at 
40938         a minimum. 
40939         (WebCore::Token::addAttribute):
40940         (WebCore::HTMLTokenizer::processToken):
40941
40942 2008-03-14  David D. Kilzer  <ddkilzer@apple.com>
40943
40944         BUILD FIX when ENABLE(MAC_JAVA_BRIDGE) set to 0.
40945
40946         * page/mac/FrameMac.mm: Move up #if ENABLE(MAC_JAVA_BRIDGE) guard
40947         to comment out unused code.
40948
40949 2008-03-14  David D. Kilzer  <ddkilzer@apple.com>
40950
40951         Unify concept of enabling the Mac Java bridge.
40952
40953         Reviewed by Darin and Anders.
40954
40955         No test cases added since there is no change in functionality.
40956
40957         * DerivedSources.make: Added check for ENABLE_MAC_JAVA_BRIDGE macro.
40958         If defined as "1", add WebCore.JNI.exp to WEBCORE_EXPORT_DEPENDENCIES.
40959         * WebCore.JNI.exp: Added.
40960         * WebCore.base.exp: Moved exported JNI methods to WebCore.JNI.exp.
40961
40962         * bridge/jni/jni_class.cpp: Added #if ENABLE(MAC_JAVA_BRIDGE) guard.
40963         * bridge/jni/jni_class.h: Ditto.
40964         * bridge/jni/jni_instance.cpp: Ditto.
40965         * bridge/jni/jni_instance.h: Ditto.
40966         * bridge/jni/jni_jsobject.cpp: Ditto.
40967         * bridge/jni/jni_jsobject.h: Ditto.
40968         * bridge/jni/jni_objc.mm: Ditto.
40969         * bridge/jni/jni_runtime.cpp: Ditto.
40970         * bridge/jni/jni_runtime.h: Ditto.
40971         * bridge/jni/jni_utility.cpp: Ditto.
40972         * bridge/jni/jni_utility.h: Ditto.
40973
40974         * bridge/runtime.cpp: Removed unused #include statements.
40975         * bridge/runtime.h:
40976         (KJS::Bindings::Instance::BindingLanguage): Added #if ENABLE(MAC_JAVA_BRIDGE)
40977         guard for JavaLanguage enum.  Also added #if PLATFORM(MAC) guard for
40978         ObjectiveCLanguage enum to match corresponding code in runtime.cpp.
40979
40980         * config.h: Removed definition of HAVE_JNI.
40981
40982         * loader/FrameLoaderClient.h:
40983         (WebCore::FrameLoaderClient::javaApplet): Added #if ENABLE(MAC_JAVA_BRIDGE) guard.
40984         * page/Frame.cpp:
40985         (WebCore::Frame::Frame): Ditto.
40986         * page/Frame.h:
40987         (WebCore::Frame::initJavaJSBindings): Ditto.
40988         * page/mac/FrameMac.mm:
40989         (WebCore::Frame::createScriptInstanceForWidget): Ditto.
40990         (WebCore::Frame::initJavaJSBindings): Ditto.
40991
40992 2008-03-13  Darin Adler  <darin@apple.com>
40993
40994         * html/PreloadScanner.h: Corrected license.
40995         * html/PreloadScanner.cpp: Corrected license.
40996
40997 2008-03-13  Mark Mentovai  <mark@moxienet.com>
40998
40999         Reviewed by darin.  Landed by eseidel.
41000
41001         * platform/FloatConversion.h: Include a header to get CoreGraphics
41002         types when using CoreGraphics types.
41003
41004 2008-03-13  Mark Mentovai  <mark@moxienet.com>
41005
41006         Reviewed by eseidel.  Landed by eseidel.
41007
41008         * WebCore.xcodeproj/project.pbxproj:
41009         * css/CSSParser.cpp:
41010         * css/makeprop.pl:
41011         Move CSSPropertyNames.c to CSSPropertyNames.cpp
41012
41013 2008-03-13  Mark Mentovai  <mark@moxienet.com>
41014
41015         Reviewed by eseidel.  Landed by eseidel.
41016
41017         * platform/Arena.h: Use statement1;statement2 instead of
41018         (statement1,statement2) in CLEAR_UNUSED.
41019
41020 2008-03-13  Tommi Komulainen  <tommi.komulainen@iki.fi>
41021
41022         Reviewed by Alp Toker.
41023
41024         http://bugs.webkit.org/show_bug.cgi?id=17821
41025         [SOUP] POST requests are empty
41026
41027         Send the HTTP request body as well.
41028
41029         * platform/network/soup/ResourceHandleSoup.cpp:
41030         (WebCore::ResourceHandle::start):
41031
41032 2008-03-13  Dan Bernstein  <mitz@apple.com>
41033
41034         Reviewed by Dave Hyatt.
41035
41036         - fix http://bugs.webkit.org/show_bug.cgi?id=17819
41037           Border-collapse: collapse later cell wins on PC, earlier cell on Mac
41038
41039         Test: fast/table/border-collapsing/equal-precedence-resolution.html
41040
41041         * rendering/RenderTableCell.cpp:
41042         (WebCore::RenderTableCell::collapsedLeftBorder): When calling
41043         compareBorders() with borders that may have the same precedence, made
41044         sure to pass the border belonging to the earlier (in document order)
41045         element first, since compareBorders() prefers the first argument when
41046         there is a tie.
41047         (WebCore::RenderTableCell::collapsedRightBorder): Ditto.
41048         (WebCore::RenderTableCell::collapsedTopBorder): Ditto.
41049
41050 2008-03-13  Adam Roben  <aroben@apple.com>
41051
41052         wx build fix and Windows leak fix after r31034
41053
41054         * platform/graphics/wx/ImageWx.cpp:
41055         (WebCore::Image::loadPlatformResource): Use SharedBuffer::create.
41056         * platform/win/SharedBufferWin.cpp:
41057         (WebCore::SharedBuffer::createWithContentsOfFile): Ditto (we were
41058         leaking the SharedBuffer here before).
41059
41060 2008-03-13  Antti Koivisto  <antti@apple.com>
41061
41062         Reviewed by Eric.
41063
41064         Correct a few issues spotted by Mike Belshe. 
41065
41066         * html/PreloadScanner.cpp:
41067         (WebCore::PreloadScanner::tokenize):
41068         * loader/loader.cpp:
41069         (WebCore::Loader::cancelRequests):
41070
41071 2008-03-13  Rodney Dawes  <dobey@wayofthemonkey.com>
41072
41073         Fix GTK+ build for SharedBuffer changes.
41074
41075         * platform/graphics/gtk/ImageGtk.cpp:
41076         (Image::loadPlatformResource):
41077
41078 2008-03-13  Steve Falkenburg  <sfalken@apple.com>
41079
41080         More PGO build fixes.
41081
41082         * WebCorePrefix.cpp:
41083
41084 2008-03-13  Antti Koivisto  <antti@apple.com>
41085
41086         Reviewed by Darin.
41087         
41088         Make page loads go fast.
41089         
41090         http://bugs.webkit.org/show_bug.cgi?id=17480
41091
41092         - Implement speculative preloading. When a script load blocks the main parser, use a side 
41093           parser to pick up more resources.
41094         - Implement per-host load queues, prioritize scripts and stylesheets over images.
41095         
41096         Depending on content and network latency this may speed things up quite a bit.
41097
41098         * WebCore.xcodeproj/project.pbxproj:
41099         * dom/Document.cpp:
41100         (WebCore::Document::implicitClose):
41101         Clear the preloads after laoding completes.
41102         
41103         * html/HTMLLinkElement.cpp:
41104         (WebCore::HTMLLinkElement::parseMappedAttribute):
41105         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
41106         * html/HTMLLinkElement.h:
41107         Make tokenizeRelAttribute() public static so it can be used from elsewhere.
41108         Eliminate a pointless bitfield so I can get references.
41109         
41110         * html/HTMLTokenizer.cpp:
41111         (WebCore::HTMLTokenizer::scriptHandler):
41112         (WebCore::HTMLTokenizer::scriptExecution):
41113         (WebCore::HTMLTokenizer::write):
41114         * html/HTMLTokenizer.h:
41115         Spin up the preload scanner whenever a script load blocks the parser. One scanner tracks the end of 
41116         the document while temporary ones are created as needed to scan document.write() output.
41117         
41118         * html/PreloadScanner.cpp: Added.
41119         (WebCore::PreloadScanner::PreloadScanner):
41120         (WebCore::PreloadScanner::~PreloadScanner):
41121         (WebCore::PreloadScanner::begin):
41122         (WebCore::PreloadScanner::end):
41123         (WebCore::PreloadScanner::reset):
41124         (WebCore::PreloadScanner::write):
41125         (WebCore::isWhitespace):
41126         (WebCore::PreloadScanner::clearLastCharacters):
41127         (WebCore::PreloadScanner::rememberCharacter):
41128         (WebCore::PreloadScanner::lastCharactersMatch):
41129         (WebCore::legalEntityFor):
41130         (WebCore::PreloadScanner::consumeEntity):
41131         (WebCore::PreloadScanner::tokenize):
41132         (WebCore::PreloadScanner::processAttribute):
41133         (WebCore::PreloadScanner::emitCharacter):
41134         (WebCore::PreloadScanner::tokenizeCSS):
41135         (WebCore::PreloadScanner::emitTag):
41136         (WebCore::PreloadScanner::emitCSSRule):
41137         * html/PreloadScanner.h: Added.
41138         (WebCore::PreloadScanner::inProgress):
41139         (WebCore::PreloadScanner::):
41140         HTML5 tokenization plus some glue code. Fake CSS parsing thrown in just for fun.
41141         
41142         * loader/Cache.cpp:
41143         (WebCore::Cache::pruneDeadResources):
41144         Preloads have zero refcount, avoid kicking them out too early.
41145         
41146         * loader/CachedResource.cpp:
41147         (WebCore::CachedResource::CachedResource):
41148         (WebCore::CachedResource::ref):
41149         * loader/CachedResource.h:
41150         (WebCore::CachedResource::):
41151         (WebCore::CachedResource::preloadResult):
41152         (WebCore::CachedResource::setRequestedFromNetworkingLayer):
41153         (WebCore::CachedResource::canDelete):
41154         (WebCore::CachedResource::isPreloaded):
41155         (WebCore::CachedResource::increasePreloadCount):
41156         (WebCore::CachedResource::decreasePreloadCount):
41157         Keep track which resources are preloads. Avoid deleting them. Track
41158         at which point of the loading preloads get utilized to enable some interesting 
41159         statistics.
41160         
41161         * loader/DocLoader.cpp:
41162         (WebCore::DocLoader::~DocLoader):
41163         (WebCore::DocLoader::checkForReload):
41164         (WebCore::DocLoader::registerPreload):
41165         (WebCore::DocLoader::clearPreloads):
41166         (WebCore::DocLoader::printPreloadStats):
41167         * loader/DocLoader.h:
41168         Ensure we utilize preloaded resources during reloads.
41169         Keep a list of all preloads in the document. Clear the preloads after
41170         parsing is complete. Some debug statistics.
41171         
41172         * loader/DocumentLoader.cpp:
41173         (WebCore::DocumentLoader::isLoadingInAPISense):
41174         Avoid signaling that loading is complete too early. 
41175         
41176         * loader/loader.cpp:
41177         (WebCore::Loader::Loader):
41178         (WebCore::Loader::~Loader):
41179         (WebCore::Loader::determinePriority):
41180         (WebCore::Loader::load):
41181         (WebCore::Loader::scheduleServePendingRequests):
41182         (WebCore::Loader::requestTimerFired):
41183         (WebCore::Loader::servePendingRequests):
41184         (WebCore::Loader::cancelRequests):
41185         (WebCore::Loader::Host::Host):
41186         (WebCore::Loader::Host::~Host):
41187         (WebCore::Loader::Host::addRequest):
41188         (WebCore::Loader::Host::hasRequests):
41189         (WebCore::Loader::Host::servePendingRequests):
41190         (WebCore::Loader::Host::didFinishLoading):
41191         (WebCore::Loader::Host::didFail):
41192         (WebCore::Loader::Host::didReceiveResponse):
41193         (WebCore::Loader::Host::didReceiveData):
41194         (WebCore::Loader::Host::cancelPendingRequests):
41195         (WebCore::Loader::Host::cancelRequests):
41196         * loader/loader.h:
41197         (WebCore::Loader::):
41198         Distribute load requests to per-host priority queues. Limit the number of loads issued to the 
41199         networking layer so we have better changes of getting important requests through first.
41200         Prioritize scripts > stylesheets > images.
41201
41202 2008-03-13  David Hyatt  <hyatt@apple.com>
41203
41204         This patch makes full page zoom work pretty well. It fixes repainting so that it works when transforms
41205         are set on the RenderView. It also implements the "smart layout" behavior that other browsers support when
41206         zooming. The page will still try to constrain to the viewport size even when zoomed.
41207
41208         Reviewed by john
41209
41210         * dom/Document.cpp:
41211         (WebCore::Document::recalcStyle):
41212         Make sure to test for transform changes even when there is no zoom.  This fixes repainting issues
41213         caused by jumping from a zoomed state back to the standard size.
41214
41215         * page/FrameView.cpp:
41216         (WebCore::FrameView::adjustViewSize):
41217         Adjust for the zoom factor (the render tree is in unzoomed coordinates, but the scrollbars of the view
41218         need to handle zoomed coordinates).
41219
41220         * rendering/RenderBox.cpp:
41221         (WebCore::RenderBox::calcHeight):
41222         Fix the body-sizing-to-the-view-height quirk so that it takes the zoom factor into account when
41223         stretching to fill the viewport.
41224
41225         * rendering/RenderLayer.cpp:
41226         (WebCore::RenderLayer::updateLayerPositions):
41227         (WebCore::RenderLayer::setHasVisibleContent):
41228         Remove the FIXMEs now that absoluteClippedOverflowRect works with transforms on the RenderView.
41229
41230         * rendering/RenderView.cpp:
41231         (WebCore::RenderView::calcHeight):
41232         (WebCore::RenderView::calcWidth):
41233         Make sure the calculated width/height take the zoom factor into account in order to get the "smart layout"
41234         behavior.
41235
41236         (WebCore::RenderView::layout):
41237         When deciding whether children have to get a relayout, we need to check the zoomed width/height and not just
41238         the viewport size.
41239
41240         (WebCore::RenderView::computeAbsoluteRepaintRect):
41241         Patched to take into account transforms set on the RenderView.
41242
41243         (WebCore::RenderView::docHeight):
41244         (WebCore::RenderView::docWidth):
41245         Patched to just always use m_width and m_height initially, since those have already been adjusted for
41246         the zoom factor.
41247
41248         (WebCore::RenderView::zoomedHeight):
41249         (WebCore::RenderView::zoomedWidth):
41250         * rendering/RenderView.h:
41251         New helper methods for obtaining the adjusted width/height of the viewport taking into account the
41252         zoom factor.
41253
41254 2008-03-13  Anders Carlsson  <andersca@apple.com>
41255
41256         Build fix.
41257
41258         * WebCore.base.exp:
41259
41260 2008-03-13  Anders Carlsson  <andersca@apple.com>
41261
41262         Reviewed by Adam.
41263
41264         Get rid of actualRequest, it is not used anymore. Also, get rid of 
41265         initialRequest and replace all uses with originalRequest because those are
41266         the same thing.
41267         
41268         * loader/DocumentLoader.cpp:
41269         * loader/DocumentLoader.h:
41270         * loader/FrameLoader.cpp:
41271         (WebCore::FrameLoader::initialRequest):
41272         (WebCore::FrameLoader::originalRequestURL):
41273
41274 2008-03-13  Brady Eidson  <beidson@apple.com>
41275
41276         Reviewed by Anders
41277
41278         Convert SharedBuffer to start with a refCount of 1
41279
41280         * loader/ImageDocument.cpp:
41281         (WebCore::ImageTokenizer::finish):
41282
41283         * loader/ResourceLoader.cpp:
41284         (WebCore::ResourceLoader::addData):
41285         (WebCore::ResourceLoader::willStopBufferingData):
41286
41287         * loader/icon/IconDatabase.cpp:
41288         (WebCore::IconDatabase::defaultIcon):
41289         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
41290
41291         * loader/loader.cpp:
41292         (WebCore::Loader::didReceiveData):
41293
41294         * platform/SharedBuffer.h:
41295         (WebCore::SharedBuffer::create): Make all constructors private, add ::create() calls
41296         * platform/SharedBuffer.cpp:
41297         (WebCore::SharedBuffer::SharedBuffer): Revert to default RefCounted constructor to start with a ref count of 1
41298         (WebCore::SharedBuffer::copy):
41299         * platform/mac/SharedBufferMac.mm:
41300         (WebCore::SharedBuffer::wrapNSData):
41301         (WebCore::SharedBuffer::SharedBuffer): Revert to default RefCounted constructor to start with a ref count of 1
41302
41303 2008-03-13  Steve Falkenburg  <sfalken@apple.com>
41304
41305         PGO build fixes.
41306         
41307         Disable PGO for normal release builds.
41308         Added work-in-progress Release_PGOInstrument/Release_PGOOptimize targets.
41309
41310         * WebCore.vcproj/WebCore.vcproj:
41311
41312 2008-03-13  Anders Carlsson  <andersca@apple.com>
41313
41314         Reviewed by Darin.
41315
41316         Make a bunch of DocumentLoader setters/getters inline.
41317         
41318         * loader/DocumentLoader.cpp:
41319         * loader/DocumentLoader.h:
41320         (WebCore::DocumentLoader::isStopping):
41321         (WebCore::DocumentLoader::setCommitted):
41322         (WebCore::DocumentLoader::isCommitted):
41323         (WebCore::DocumentLoader::isLoading):
41324         (WebCore::DocumentLoader::setLoading):
41325         (WebCore::DocumentLoader::response):
41326         (WebCore::DocumentLoader::mainDocumentError):
41327         (WebCore::DocumentLoader::setResponse):
41328         (WebCore::DocumentLoader::isClientRedirect):
41329         (WebCore::DocumentLoader::setIsClientRedirect):
41330         (WebCore::DocumentLoader::overrideEncoding):
41331         (WebCore::DocumentLoader::responses):
41332         (WebCore::DocumentLoader::triggeringAction):
41333         (WebCore::DocumentLoader::setTriggeringAction):
41334         (WebCore::DocumentLoader::setOverrideEncoding):
41335         (WebCore::DocumentLoader::setLastCheckedRequest):
41336         (WebCore::DocumentLoader::lastCheckedRequest):
41337         (WebCore::DocumentLoader::title):
41338         (WebCore::DocumentLoader::setLoadingFromCachedPage):
41339         (WebCore::DocumentLoader::isLoadingFromCachedPage):
41340
41341 2008-03-13  Rodney Dawes  <dobey@wayofthemonkey.com>
41342
41343         Fix builds without SVG enabled.
41344
41345         * page/Frame.cpp:
41346         (Frame::shouldApplyTextZoom):
41347         (Frame::shouldApplyPageZoom):
41348
41349 2008-03-13  Simon Hausmann  <hausmann@webkit.org>
41350
41351         Fix the Qt build.
41352
41353         * bridge/qt/qt_instance.cpp:
41354         (KJS::Bindings::QtInstance::getQtInstance):
41355         (KJS::Bindings::QtInstance::getRuntimeObject):
41356         * bridge/qt/qt_instance.h:
41357         (KJS::Bindings::QtInstance::create):
41358         * bridge/qt/qt_runtime.cpp:
41359         (KJS::Bindings::convertQVariantToValue):
41360         (KJS::Bindings::QtConnectionObject::execute):
41361         * page/qt/FrameQt.cpp:
41362         (WebCore::Frame::createScriptInstanceForWidget):
41363
41364 2008-03-12  Sam Weinig  <sam@webkit.org>
41365
41366         Reviewed by Darin Adler.
41367
41368         Fix <rdar://problem/5784773>
41369         Crash loading QT movies @ apple.com/ipodtouch/features.html with a PAC file (WebKitThreadingException)
41370
41371         Make bridged RuntimeObjects get collected on the main thread only. This is necessary
41372         because clients of the bridged objects are unlikely to prepared for a collection on 
41373         non-main thread, which can happen with a PAC file.
41374
41375         * bridge/runtime_object.cpp:
41376         (RuntimeObjectImp::RuntimeObjectImp):
41377
41378 2008-03-12  Adam Roben  <aroben@apple.com>
41379
41380         Fix Bug 17815: Inspector's DOM tree should descend into subframes
41381
41382         <http://bugs.webkit.org/show_bug.cgi?id=17815>
41383
41384         Reviewed by Tim.
41385
41386         * page/inspector/DocumentPanel.js:
41387         (WebInspector.DocumentPanel.revealNode): Changed to provide
41388         _isAncestorIncludingParentFramesWithinPanel and
41389         _parentNodeOrFrameElementWithinPanel for the isAncestor and getParent
41390         parameters to findTreeElement so that parent frames will be searched.
41391         (WebInspector.DocumentPanel.updateBreadcrumb):
41392           - Changed while loop to for loop
41393           - Use _parentNodeOrFrameElementWithinPanel instead of
41394             Node.parentNode to move to the next node
41395           - The loop now ends when we reach the DocumentPanel's document node
41396           - Traversal past other Document nodes is now allowed
41397           - We add the "start" class to the final crumb after the loop exits
41398         (WebInspector.DocumentPanel._getDocumentForNode): Added. Simple helper
41399         that returns the node itself if the node is a Document node, or the
41400         node's ownerDocument otherwise.
41401         (WebInspector.DocumentPanel._parentNodeOrFrameElementWithinPanel):
41402         Added. Returns the node's parent node or, in the case of a Document
41403         node, the node's window's owning frame element, but will not return a
41404         node that is in a parent frame of the DocumentPanel's Document.
41405         (WebInspector.DocumentPanel._isAncestorIncludingParentFramesWithinPanel):
41406         Added. Returns true if a is an ancestor of b if a is an ancestor of a
41407         frame element whose subframe(s) contain b.
41408         (WebInspector.DOMNodeTreeElement): We now consider ourselves to have
41409         children if we have a contentDocument.
41410         (WebInspector.DOMNodeTreeElement.onpopulate): Moved the appendChild
41411         loop into a function so that we can add both children of our
41412         contentDocument and children of our node to the tree.
41413         (WebInspector.DOMNodeTreeElement.ondblclick): Changed so that we get
41414         the rootDOMNode by traversing the tree outline hierarchy instead of
41415         the DOM hierarchy so that we can easily jump up to a parent frame.
41416
41417 2008-03-12  Adam Roben  <aroben@apple.com>
41418
41419         Update the styles/metrics panes and breadcrumb after editing DOM
41420         attributes
41421
41422         Reviewed by Tim.
41423
41424         * page/inspector/DocumentPanel.js:
41425         (WebInspector.DocumentPanel.set focusedDOMNode): Moved code to update
41426         the parts of the DocumentPanel other than the DOM tree into a new
41427         function, _focusedNodeChanged.
41428         (WebInspector.DocumentPanel._focusedNodeChanged): Added. The
41429         forceUpdate parameter specifies whether the update should occur even
41430         if the focused node hasn't changed since the last update.
41431         (WebInspector.DocumentPanel.updateBreadcrumb): Added a forceUpdate
41432         parameter. If forceUpdate is true, we always rebuild the breadcrumbs.
41433         (WebInspector.DocumentPanel.updateStyles): Added a forceUpdate
41434         parameter. If forceUpdate is true, we always rebuild the styles pane.
41435         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Added a
41436         call to DocumentPanel._focusedNodeChanged. We have to force the update
41437         because we haven't changed the focused node (the attributes of the
41438         node have changed).
41439         * page/inspector/StylesSidebarPane.js:
41440         (WebInspector.StylesSidebarPane.update): Added a forceUpdate
41441         parameter. If forceUpdate is true we always rebuild the styles.
41442
41443 2008-03-12  Mark Rowe  <mrowe@apple.com>
41444
41445         Further Gtk and Qt build fixes.
41446
41447         * bridge/runtime.cpp:
41448         (KJS::Bindings::Instance::createRuntimeObject): Adapt Qt-only code for change to PassRefPtr.
41449         * page/gtk/FrameGtk.cpp: Add missing include.
41450
41451 2008-03-12  Mark Rowe  <mrowe@apple.com>
41452
41453         Fix Gtk and Qt builds.
41454
41455         * page/gtk/FrameGtk.cpp:
41456         * page/qt/FrameQt.cpp:
41457
41458 2008-03-12  Mark Rowe  <mrowe@apple.com>
41459
41460         Mac build fix.
41461
41462         * WebCore.base.exp:  Remove symbol.
41463
41464 2008-03-12  Steve Falkenburg  <sfalken@apple.com>
41465
41466         Build fix.
41467
41468         * page/win/FrameWin.cpp:
41469
41470 2008-03-12  Steve Falkenburg  <sfalken@apple.com>
41471
41472         Build fix.
41473
41474         * plugins/win/PluginViewWin.cpp:
41475         (WebCore::PluginView::bindingInstance):
41476
41477 2008-03-12  Darin Adler  <darin@apple.com>
41478
41479         Reviewed by Anders.
41480
41481         - http://bugs.webkit.org/show_bug.cgi?id=17640
41482           eliminate WebCoreFrameBridge
41483
41484         * WebCore.base.exp: Added more exports, needed by code moved from WebCoreFrameBridge
41485         to WebFrame in WebKit.
41486         * WebCore.xcodeproj/project.pbxproj: Added more headers, same reason. Also deleted
41487         WebCoreFrameBridge.h and WebCoreFrameBridge.mm.
41488
41489         * page/Frame.cpp:
41490         (WebCore::Frame::Frame): Added call to initJavaJSBindings(), formerly handled by
41491         the WebCoreFrameBridge.
41492         * page/Frame.h: Added initJavaJSBindings function.
41493
41494         * page/mac/FrameMac.mm:
41495         (WebCore::updateRenderingForBindings): Moved here from WebCoreFrameBridge.
41496         (WebCore::Frame::initJavaJSBindings): Ditto; code was in the init function.
41497
41498         * page/mac/WebCoreFrameBridge.h: Removed.
41499         * page/mac/WebCoreFrameBridge.mm: Removed.
41500
41501 2008-03-12  Sam Weinig  <sam@webkit.org>
41502
41503         Reviewed by Anders Carlsson.
41504
41505         Don't go through the Document just to get the frame Element.
41506
41507         * page/DOMWindow.cpp:
41508         (WebCore::DOMWindow::frameElement):
41509
41510 2008-03-12  Anders Carlsson  <andersca@apple.com>
41511
41512         Reviewed by Geoff and Sam.
41513
41514         More Instance cleanup:
41515         
41516         * Make Instance inherit from RefCounted instead of doing its own refcounting.        
41517         * Make all Instance subclasses private, add static create methods.         
41518         * Have Instance start out with a refcount of 1.
41519         * Get rid of Instance::createBindingForLanguageInstance and call the individual 
41520           instance constructor methods instead.
41521         * Fix many methods to take and return PassRefPtr<Instance> to ensure that the
41522           refcounting is done correctly.
41523          
41524         * bridge/c/c_instance.h:
41525         (KJS::Bindings::CInstance::create):
41526         * bridge/c/c_utility.cpp:
41527         (KJS::Bindings::convertNPVariantToValue):
41528         * bridge/jni/jni_instance.cpp:
41529         (JavaInstance::invokeMethod):
41530         * bridge/jni/jni_instance.h:
41531         (KJS::Bindings::JavaInstance::create):
41532         * bridge/jni/jni_jsobject.cpp:
41533         (JavaJSObject::convertJObjectToValue):
41534         * bridge/jni/jni_runtime.cpp:
41535         (JavaField::valueFromInstance):
41536         (JavaArray::valueAt):
41537         * bridge/objc/objc_instance.h:
41538         (KJS::Bindings::ObjcInstance::create):
41539         * bridge/objc/objc_utility.mm:
41540         (KJS::Bindings::convertObjcValueToValue):
41541         * bridge/qt/qt_instance.cpp:
41542         (KJS::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp):
41543         (KJS::Bindings::QtInstance::getQtInstance):
41544         (KJS::Bindings::QtInstance::getRuntimeObject):
41545         * bridge/qt/qt_instance.h:
41546         * bridge/runtime.cpp:
41547         (KJS::Bindings::Instance::Instance):
41548         (KJS::Bindings::Instance::createRuntimeObject):
41549         * bridge/runtime.h:
41550         * bridge/runtime_object.cpp:
41551         (RuntimeObjectImp::RuntimeObjectImp):
41552         * bridge/runtime_object.h:
41553         * page/Frame.h:
41554         * page/mac/FrameMac.mm:
41555         (WebCore::Frame::createScriptInstanceForWidget):
41556         * page/win/FrameWin.cpp:
41557         (WebCore::Frame::createScriptInstanceForWidget):
41558         * plugins/PluginView.h:
41559         * plugins/win/PluginViewWin.cpp:
41560         (WebCore::PluginView::bindingInstance):
41561
41562 2008-03-12  Dan Bernstein  <mitz@apple.com>
41563
41564         Suggested by Darin Adler. Reviewed by Dave Hyatt.
41565
41566         - speed up BidiIterator::direction()
41567
41568         * rendering/bidi.cpp:
41569         (WebCore::BidiIterator::current): Made inline and corrected the
41570         out-of-bounds condition to work with 0-length text and offsets beyond
41571         the end of the text.
41572         (WebCore::BidiIterator::direction): Changed to call current() and not
41573         call the virtual method isListMarker() most of the time.
41574         (WebCore::addMidpoint): Removed unnecessary null-check of smidpoints.
41575         (WebCore::appendRunsForObject): Ditto.
41576
41577 2008-03-12  Adam Roben  <aroben@apple.com>
41578
41579         Make URLs not be underlined while editing them in the DOM view
41580
41581         Reviewed by Tim.
41582
41583         * page/inspector/inspector.css:
41584
41585 2008-03-12  Adam Roben  <aroben@apple.com>
41586
41587         Part of Bug 17224: DOM nodes/attributes should be editable
41588
41589         <http://bugs.webkit.org/show_bug.cgi?id=17224>
41590         <rdar://problem/5732825>
41591
41592         We now start editing if the user single-clicks on an attribute,
41593         attribute value, or text node while the parent element is selected.
41594         Previously, we started editing on double-click regardless of the
41595         selection state of the element.
41596
41597         URLs in the DOM tree are now followed on Alt/Option-click, rather than
41598         on just click.
41599
41600         Reviewed by Tim.
41601
41602         * English.lproj/InspectorLocalizedStrings.js: Added four new localized
41603         strings.
41604         * page/inspector/DocumentPanel.js:
41605         (WebInspector.DOMNodeTreeElement.onattach): Call new
41606         _makeURLSActivateOnModifiedClick.
41607         (WebInspector.DOMNodeTreeElement._makeURLsActivateOnModifiedClick):
41608         Added. Changes the tooltip of each link in this element to indicate
41609         that Alt/Option-click will follow the URL, and sets the
41610         followOnAltClick property on each link.
41611         (WebInspector.DOMNodeTreeElement.onselect): Mark that we're being
41612         selected.
41613         (WebInspector.DOMNodeTreeElement.onmousedown): If we're not currently
41614         being selected, start editing.
41615         (WebInspector.DOMNodeTreeElement.ondblclick): We no longer start
41616         editing here. We block re-rooting of the tree if we're currently
41617         editing.
41618         (WebInspector.DOMNodeTreeElement._startEditing):
41619           - Don't do anything if we're not focused
41620           - Pass the event down to _startEditingAttribute.
41621         (WebInspector.DOMNodeTreeElement._startEditingAttribute): Don't do
41622         anything if the event target is a URL and the Alt/Option key is
41623         pressed -- in this case we want to follow the link.
41624         (WebInspector.DOMNodeTreeElement._updateTitle): Call
41625         _makeURLsActivateOnClick again since the anchor elements have all been
41626         recreated.
41627         * page/inspector/inspector.js:
41628         (WebInspector.documentClick): If the anchor as a followOnAltClick
41629         property and the Alt/Option key is not pressed, do nothing.
41630
41631 2008-03-12  Ada Chan  <adachan@apple.com>
41632
41633         Fixed the initial value of zoom factor.
41634
41635         Reviewed by Adam.
41636
41637         * page/Frame.cpp:
41638         (WebCore::FramePrivate::FramePrivate):
41639
41640 2008-03-12  David Hyatt  <hyatt@apple.com>
41641
41642         Make full page zoom vaguely work.  This patch uses the CSS transform system to turn on full page zoom at the
41643         document level.  There are many many bugs that I'm going to file to track all the issues (most of the issues
41644         are just bugs with transforms themselves).
41645
41646         Reviewed by Adam Roben
41647
41648         * css/CSSStyleSelector.cpp:
41649         (WebCore::CSSStyleSelector::applyProperty):
41650         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
41651         * dom/Document.cpp:
41652         (WebCore::Document::recalcStyle):
41653         * page/Frame.cpp:
41654         (WebCore::Frame::shouldApplyTextZoom):
41655         (WebCore::Frame::shouldApplyPageZoom):
41656         * page/Frame.h:
41657         * rendering/RenderLayer.cpp:
41658         (WebCore::RenderLayer::updateLayerPositions):
41659         (WebCore::RenderLayer::setHasVisibleContent):
41660         (WebCore::RenderLayer::paintLayer):
41661         (WebCore::RenderLayer::hitTestLayer):
41662         * rendering/RenderLayer.h:
41663
41664 2008-03-12  David Hyatt  <hyatt@apple.com>
41665
41666         Make the zoom factor a float and not a percent.
41667
41668         Reviewed by antti
41669
41670         * WebCore.base.exp:
41671         * css/CSSStyleSelector.cpp:
41672         (WebCore::CSSStyleSelector::applyProperty):
41673         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
41674         * page/Frame.cpp:
41675         (WebCore::Frame::zoomFactor):
41676         (WebCore::Frame::setZoomFactor):
41677         * page/Frame.h:
41678         * page/FramePrivate.h:
41679         * svg/SVGSVGElement.cpp:
41680         (WebCore::SVGSVGElement::currentScale):
41681         (WebCore::SVGSVGElement::setCurrentScale):
41682
41683 2008-03-12  David Hyatt  <hyatt@apple.com>
41684
41685         Eliminate setTextMultiplier from the bridge.  Make Webkit just call setZoomFactor on the frame directly.
41686
41687         Reviewed by Tim H.
41688
41689         * WebCore.base.exp:
41690         * page/mac/WebCoreFrameBridge.h:
41691         * page/mac/WebCoreFrameBridge.mm:
41692
41693 2008-03-12  Dan Bernstein  <mitz@apple.com>
41694
41695         Reviewed by Darin Adler and Sam Weinig.
41696
41697         - <rdar://problem/4433248> use CoreText API instead of SPI on Leopard
41698
41699         Use CTFontCopyGraphicsFont and CTFontGetPlatformFont on Leopard instead
41700         of wkGetCGFontFromNSFont and wkGetNSFontATSUFontId, relying on NSFont
41701         and CTFontRef being toll-free bridged.
41702
41703         * WebCore.Tiger.exp:
41704         * WebCore.base.exp:
41705         * platform/graphics/mac/FontMac.mm:
41706         (WebCore::Font::drawGlyphs): Changed to use the cgFont() accessor.
41707         * platform/graphics/mac/FontPlatformData.h:
41708         Made m_cgFont a RetainPtr on Leopard.
41709         (WebCore::toCTFontRef): Added a function that encapsulates the
41710         toll-free bridging.
41711         (WebCore::FontPlatformData::FontPlatformData):
41712         (WebCore::FontPlatformData::cgFont): Added this accessor method.
41713         * platform/graphics/mac/FontPlatformDataMac.mm:
41714         (WebCore::FontPlatformData::FontPlatformData): Changed to use
41715         CoreText API on Leopard.
41716         (WebCore::FontPlatformData::setFont): Ditto.
41717         * platform/graphics/mac/SimpleFontDataMac.mm:
41718         (WebCore::initFontData):
41719         (WebCore::pathFromFont):
41720         (WebCore::SimpleFontData::platformInit):
41721         (WebCore::SimpleFontData::platformWidthForGlyph):
41722         * platform/mac/WebCoreSystemInterface.mm:
41723
41724 2008-03-12  David Harrison  <harrison@apple.com>
41725
41726         Reviewed by Darin.
41727
41728         <rdar://problem/5607382> CrashTracer: [REGRESSION] 2290 crashes in Safari at com.apple.WebCore: -[WebCoreAXObject isWebArea] + 8
41729
41730         The problem was that we lost track of the AX cache for a subframe when Frame::disconnectOwnerElement() was
41731         called, so we were unable to locate the AXObjects to de-register from AppKit's accessibility registry.
41732         Also saw that cache clearing was missing from Document::detach(), and fixed that.
41733         
41734         Also added a debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
41735         
41736         Lastly, RenderWidget::destroy() now skips trying to remove the AXObject if accessibility has never been enabled.
41737        
41738         * dom/Document.cpp:
41739         (WebCore::Document::attach):
41740         Assert that there is no AX cache (since there is no renderer).
41741         
41742         (WebCore::Document::detach):
41743         Destroy the AX cache installed on this document.
41744         
41745         (WebCore::Document::clearAXObjectCache):
41746         New. Destroy the AX cache associated with this document.
41747         
41748         (WebCore::Document::axObjectCache):
41749         Added some comments.
41750         
41751         * dom/Document.h:
41752         Declare clearAXObjectCache().
41753         
41754         * page/Frame.cpp:
41755         (WebCore::Frame::disconnectOwnerElement):
41756         Destroy the AX cache associated with this frame's document.
41757         
41758         * page/mac/AXObjectCacheMac.mm:
41759         (WebCore::AXObjectCache::remove):        
41760         * page/mac/WebCoreAXObject.mm:
41761         (-[WebCoreAXObject initWithRenderer:]):
41762         (-[WebCoreAXObject detach]):
41763         * rendering/RenderObject.cpp:
41764         (WebCore::RenderObject::RenderObject):
41765         (WebCore::RenderObject::~RenderObject):
41766         * rendering/RenderObject.h:
41767         (WebCore::RenderObject::setHasAXObject):
41768         (WebCore::RenderObject::hasAXObject):
41769         Add debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
41770         
41771         * rendering/RenderWidget.cpp:
41772         (WebCore::RenderWidget::destroy):
41773         Skip call to remove the AXObject if accessibility has never been enabled. A simple speed optimization in the
41774         very common case that the accessibility APIs are not being used. Same as in RenderObject::destroy().
41775
41776 2008-03-12  Xan Lopez  <xan@gnome.org>
41777
41778         Reviewed by Alp Toker.
41779
41780         http://bugs.webkit.org/show_bug.cgi?id=15229
41781
41782         Add Pango font backend.
41783
41784         Original patch by Sven Herzberg <sven@imendio.com>
41785
41786         * GNUmakefile.am:
41787         * platform/graphics/gtk/FontCacheGtk.cpp:
41788         (WebCore::FontCache::fontExists):
41789         * platform/graphics/gtk/FontCustomPlatformDataPango.cpp: Added.
41790         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
41791         (WebCore::FontCustomPlatformData::fontPlatformData):
41792         (WebCore::releaseData):
41793         (WebCore::createFontCustomPlatformData):
41794         * platform/graphics/gtk/FontPlatformData.h:
41795         (WebCore::FontPlatformData::FontPlatformData):
41796         (WebCore::FontPlatformData::hash):
41797         * platform/graphics/gtk/FontPlatformDataPango.cpp: Added.
41798         (WebCore::FontPlatformData::FontPlatformData):
41799         (WebCore::FontPlatformData::init):
41800         (WebCore::FontPlatformData::~FontPlatformData):
41801         (WebCore::FontPlatformData::isFixedPitch):
41802         (WebCore::FontPlatformData::setFont):
41803         (WebCore::FontPlatformData::operator==):
41804         * platform/graphics/gtk/GlyphPageTreeNodePango.cpp: Added.
41805         (WebCore::pango_font_get_glyph):
41806         (WebCore::GlyphPage::fill):
41807         * platform/graphics/gtk/SimpleFontDataPango.cpp: Added.
41808         (WebCore::SimpleFontData::platformInit):
41809         (WebCore::SimpleFontData::platformDestroy):
41810         (WebCore::SimpleFontData::smallCapsFontData):
41811         (WebCore::SimpleFontData::containsCharacters):
41812         (WebCore::SimpleFontData::determinePitch):
41813         (WebCore::SimpleFontData::platformWidthForGlyph):
41814         (WebCore::SimpleFontData::setFont):
41815
41816 2008-03-12  Justin Garcia  <justin.garcia@apple.com>
41817
41818         Reviewed by Oliver.
41819         
41820         <rdar://problem/5770834> Crash at InsertTextCommand::prepareForTextInsertion() doing RemoveFormat in a certain list
41821         
41822         Fixes some (but not all) of the instances of:
41823         <rdar://problem/5659795> CrashTracer: [REGRESSION] 187 crashes in Safari at com.apple.WebCore: WebCore::InsertTextCommand::prepareForTextInsertion + 241
41824         <rdar://problem/5779631> CrashTracer: [USER] 25 crashes in Mail at WebCore::InsertTextCommand::prepareForTextInsertion
41825
41826         * editing/InsertLineBreakCommand.cpp:
41827         (WebCore::InsertLineBreakCommand::doApply): applyStyle may have destroyed content that held
41828         the old endingSelection(), so we must recompute it.  Added a FIXME.  Added a few comments.
41829         * editing/RemoveFormatCommand.cpp:
41830         (WebCore::RemoveFormatCommand::doApply): Added a FIXME.
41831
41832 2008-03-11  Alexey Proskuryakov  <ap@webkit.org>
41833
41834         Reviewed by Darin.
41835
41836         <rdar://problem/5640615> REGRESSION (Safari 2-3): Changing subframe encoding rules broke
41837         some sites.
41838
41839         Other browsers' behavior keeps changing; let's implement what Firefox and Opera do now:
41840         if the frame and subframe belong to the same site, then the encoding is inherited from parent
41841         frame to subframe. Otherwise, it is not.
41842
41843         Always inheriting the encoding would cause a security problem.
41844
41845         Tests: http/tests/misc/frame-default-enc-different-domain.html
41846                http/tests/misc/frame-default-enc-same-domain.html
41847                fast/encoding/frame-default-enc.html
41848
41849         * loader/FrameLoader.cpp:
41850         (WebCore::FrameLoader::write): Also removed a check for m_frame->document() being non-null -
41851         this function also has code that uses it without checking, so it must be safe.
41852
41853 2008-03-12  Mark Rowe  <mrowe@apple.com>
41854
41855         Gtk build fix.
41856
41857         * page/Frame.h: Forward-declare FramePrivate.
41858
41859 2008-03-11  Steve Falkenburg  <sfalken@apple.com>
41860
41861         Disable LTCG/PGO for all of WebCore for now.
41862         We'll re-enable this as part of follow-on PGO work.
41863         
41864         Reviewed by Oliver.
41865
41866         * WebCore.vcproj/WebCore.vcproj:
41867
41868 2008-03-11  Darin Adler  <darin@apple.com>
41869
41870         Reviewed by Sam.
41871
41872         - remove all bridge-related things from WebCore except the bridge itself
41873
41874         * WebCore.base.exp: Removed the bridge and setBridge functions.
41875
41876         * loader/FrameLoader.cpp:
41877         (WebCore::FrameLoader::detachFromParent): Removed call to the bridge's
41878         close method.
41879
41880         * page/Frame.cpp:
41881         (WebCore::Frame::~Frame): Removed call to setBridge(0).
41882         (WebCore::FramePrivate::FramePrivate): Removed initialization of m_bridge.
41883         * page/Frame.h: Removed setBridge and bridge functions.
41884         * page/FramePrivate.h: Removed m_bridge pointer.
41885         * page/mac/FrameMac.mm: Removed setBridge and bridge functions.
41886
41887         * page/mac/WebCoreFrameBridge.h: Added setWebCoreFrame: method.
41888         Removed bridgeForDOMDocument: and clearFrame methods.
41889         * page/mac/WebCoreFrameBridge.mm: Ditto.
41890         (-[WebCoreFrameBridge close]): Changed to set m_frame to 0 directly.
41891         (-[WebCoreFrameBridge setWebCoreFrame:]): Added.
41892
41893 2008-03-11  Darin Adler  <darin@apple.com>
41894
41895         - restored some code I removed in the Range change; this code can't go
41896           until the rest of the Range fix is in
41897
41898         * dom/Range.cpp:
41899         (WebCore::Range::commonAncestorContainer): Added back the check for 0
41900         that I removed erroneously in the Range patch.
41901         (WebCore::Range::processContents): Left in assertions I used to debug
41902         this.
41903
41904 2008-03-11  Darin Adler  <darin@apple.com>
41905
41906         - fix Release build
41907
41908         * platform/mac/ScrollViewMac.mm:
41909         (WebCore::ScrollView::setContentsPos): Don't use NSMakePoint.
41910
41911 2008-03-11  Darin Adler  <darin@apple.com>
41912
41913         Reviewed by Anders.
41914
41915         - simplify Mac code for ScrollView, since it's used only for FrameView
41916           and not in two different modes like it was historically
41917         - remove code depending on the bridge to get from an NSView to a WebCore::Frame
41918
41919         * bindings/objc/DOMHTML.mm:
41920         (-[DOMHTMLInputElement _rectOnScreen]): getDocumentView -> documentView.
41921
41922         * bridge/jni/jni_jsobject.cpp:
41923         (createRootObject): Instead of using WebCoreViewFactory to find the frame given
41924         and NSView, use the WebCoreFrameView interface to do it.
41925
41926         * editing/mac/EditorMac.mm:
41927         (WebCore::Editor::paste): getDocumentView -> documentView.
41928         * editing/mac/SelectionControllerMac.mm:
41929         (WebCore::SelectionController::notifyAccessibilityForSelectionChange): Ditto.
41930
41931         * page/FrameView.h: Fixed comment.
41932
41933         * page/InspectorController.cpp:
41934         (WebCore::InspectorController::drawNodeHighlight): Removed uneeded typecasts
41935         to ScrollView* since FrameView is derived from ScrollView.
41936
41937         * page/mac/EventHandlerMac.mm:
41938         (WebCore::EventHandler::focusDocumentView): getDocumentView -> documentView.
41939         * page/mac/FrameMac.mm:
41940         (WebCore::Frame::imageFromRect): Ditto.
41941         * page/mac/WebCoreAXObject.mm:
41942         (-[WebCoreAXObject position]): Ditto.
41943         (-[WebCoreAXObject doAXTextMarkerForPosition:]): Ditto.
41944         (-[WebCoreAXObject rendererForView:]): Updated code that used to use
41945         WebCoreBridgeHolder to use WebCoreFrameView instead.
41946
41947         * page/mac/WebCoreFrameBridge.mm:
41948         (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
41949         getDocumentView -> documentView.
41950
41951         * page/mac/WebCoreFrameView.h: Removed the WebCoreScrollbarMode type; we just
41952         use WebCore::ScrollbarMode directly. Renamed the WebCoreFrameView protocol to
41953         WebCoreFrameScrollView, since it's a protocol for the scroll view, not the
41954         frame view itself. Replaced WebCoreBridgeHolder protocol with WebCoreFrameView
41955         protocol, which returns a WebCore::Frame directly rather than a bridge.
41956
41957         * page/mac/WebCoreViewFactory.h: Eliminated the bridgeForView method.
41958
41959         * platform/ScrollView.h: Moved the constructor and destructor out of the
41960         class-specific #if blocks. Renamed Mac-specific function that gets the
41961         NSView for from getDocumentView to documentView and a scrollView function
41962         that returns an appropriately classed NSScrollView.
41963
41964         * platform/graphics/MediaPlayer.h: Changed type of parentWidget to FrameView
41965         instead of Widget.
41966         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
41967         (WebCore::MediaPlayerPrivate::createQTMovieView): Removed unnecessary cast.
41968
41969         * platform/mac/PopupMenuMac.mm:
41970         (WebCore::PopupMenu::show): getDocumentView -> documentView.
41971         * platform/mac/ScrollViewMac.mm:
41972         (WebCore::ScrollView::ScrollView): Added.
41973         (WebCore::ScrollView::~ScrollView): Added.
41974         (WebCore::ScrollView::scrollView): Added.
41975         (WebCore::ScrollView::visibleWidth): Removed unused non-NSScrollView case.
41976         (WebCore::ScrollView::visibleHeight): Ditto.
41977         (WebCore::ScrollView::visibleContentRect): Ditto.
41978         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers): Ditto.
41979         (WebCore::ScrollView::contentsWidth): Ditto.
41980         (WebCore::ScrollView::contentsHeight): Ditto.
41981         (WebCore::ScrollView::contentsX): Ditto.
41982         (WebCore::ScrollView::contentsY): Ditto.
41983         (WebCore::ScrollView::scrollOffset): Ditto.
41984         (WebCore::ScrollView::scrollRectIntoViewRecursively): Ditto.
41985         (WebCore::ScrollView::setContentsPos): Ditto.
41986         (WebCore::ScrollView::setVScrollbarMode): Ditto.
41987         (WebCore::ScrollView::setHScrollbarMode): Ditto.
41988         (WebCore::ScrollView::setScrollbarsMode): Ditto.
41989         (WebCore::ScrollView::vScrollbarMode): Ditto.
41990         (WebCore::ScrollView::hScrollbarMode): Ditto.
41991         (WebCore::ScrollView::suppressScrollbars): Ditto.
41992         (WebCore::ScrollView::addChild): Ditto.
41993         (WebCore::ScrollView::resizeContents): Ditto.
41994         (WebCore::ScrollView::updateContents): Ditto.
41995         (WebCore::ScrollView::contentsToWindow): Ditto.
41996         (WebCore::ScrollView::windowToContents): Ditto.
41997         (WebCore::ScrollView::setStaticBackground): Ditto.
41998         (WebCore::ScrollView::documentView): Renamed and removed unused case.
41999         (WebCore::ScrollView::scrollbarUnderMouse): Removed incorrect comment.
42000
42001         * platform/mac/WidgetMac.mm:
42002         (WebCore::Widget::getOuterView): Update for protocol name change.
42003
42004         * rendering/RenderThemeMac.mm:
42005         (WebCore::RenderThemeMac::paintCheckbox): getDocumentView -> documentView.
42006         (WebCore::RenderThemeMac::paintRadio): Ditto.
42007         (WebCore::RenderThemeMac::paintButton): Ditto.
42008         (WebCore::RenderThemeMac::paintMenuList): Ditto.
42009         (WebCore::RenderThemeMac::paintSliderThumb): Ditto.
42010         (WebCore::RenderThemeMac::paintSearchField): Ditto.
42011         (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Ditto.
42012         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): Ditto.
42013         (WebCore::RenderThemeMac::paintSearchFieldResultsButton): Ditto.
42014
42015 2008-03-11  Brent Fulgham  <bfulgham@gmail.com>
42016
42017         Reviewed by Adam Roben.
42018
42019         Split CookieJarWin.cpp into CFNet and non-CFNet versions to
42020         reduce the massive amount of conditionalization in the file.
42021         (see http://bugs.webkit.org/show_bug.cgi?id=17788)
42022
42023         * WebCore.vcproj/WebCore.vcproj:
42024         * platform/network/win/CookieJarCFNetWin.cpp: Copied from WebCore/platform/network/win/CookieJarWin.cpp.
42025         (WebCore::setCookies):
42026         (WebCore::cookies):
42027         (WebCore::cookiesEnabled):
42028         * platform/network/win/CookieJarWin.cpp:
42029         (WebCore::setCookies):
42030         (WebCore::cookies):
42031         (WebCore::cookiesEnabled):
42032
42033 2008-03-11  Darin Adler  <darin@apple.com>
42034
42035         Reviewed by Sam.
42036
42037         - eliminate the remaining parts of WebCoreBridge used for calls to WebKit from WebCore
42038
42039         * page/ChromeClient.h: Added new client functions to replace calls up to WebKit
42040         that were formerly handled by the bridge.
42041
42042         * page/Frame.h: Removed unneeded declarations. Moved declarations of script-specific
42043         functions to a ScriptController section. Removed willPopupMenu.
42044
42045         * page/mac/ChromeMac.mm:
42046         (WebCore::Chrome::focusNSView): Changed to call firstResponder and makeFirstResponder
42047         via the client instead of the bridge.
42048
42049         * page/mac/EventHandlerMac.mm:
42050         (WebCore::EventHandler::passMouseDownEventToWidget): Changed to call firstResponder
42051         and makeFirstResponder via the chrome client instead of the bridge.
42052
42053         * page/mac/FrameMac.mm: Removed willPopupMenu.
42054
42055         * page/mac/WebCoreFrameBridge.h: Removed WebCoreFrameBridge protocol and
42056         SubclassResponsibility category. Also removed some unneeded imports.
42057
42058         * platform/mac/PopupMenuMac.mm:
42059         (WebCore::PopupMenu::show): Call willPopUpMenu on chrome client instead of frame.
42060
42061         * platform/mac/WidgetMac.mm:
42062         (WebCore::Widget::setIsSelected): Call functions directly on the view rather than
42063         calling via the bridge.
42064
42065 2008-03-11  Darin Adler  <darin@apple.com>
42066
42067         Reviewed by Mitz.
42068
42069         - make some Range improvements (preparation for Range support for DOM mutation)
42070
42071         Made constructors private, added create functions.
42072         Made refcount start at 1 rather than starting at 0 and being incremented.
42073         Made Range use two Position objects for the start/end container/offset pairs.
42074
42075         * WebCore.base.exp: Updated.
42076
42077         * dom/Document.cpp:
42078         (WebCore::Document::createRange): Changed to use Range::create.
42079         (WebCore::Document::removeMarkers): Updated for Range::first/pastLastNode name change.
42080
42081         * dom/Position.cpp:
42082         (WebCore::Position::formatForDebugger): Updated for member variable name change.
42083         (WebCore::Position::showTreeForThis): Ditto.
42084         (WebCore::startPosition): Changed to use Range::startPosition.
42085         (WebCore::endPosition): Changed to use Range::endPosition.
42086
42087         * dom/Position.h: Made the data members public and renamed them to container
42088         and offset. But since offset() is already a function, temporarily used posOffset
42089         for the data member. Later we'll get rid of offset(). Made more functions inline.
42090         Removed the constructor that takes a PositionIterator.
42091
42092         * dom/PositionIterator.cpp:
42093         (WebCore::PositionIterator::operator Position): Added. Replaces the constructor
42094         that used to be in Position.
42095         * dom/PositionIterator.h: Added conversion operator to produce a Position.
42096         Removed friend declaration for Position.
42097
42098         * dom/Range.cpp:
42099         (WebCore::Range::Range): Updated constructors for data member changes and made
42100         them use a refcount of 1.
42101         (WebCore::Range::create): Added.
42102         (WebCore::Range::startContainer): Updated to eliminate use of m_detached; detached
42103         is now indicated by m_start.container of 0. Also updated to use m_start instead
42104         of the old m_startContainer.
42105         (WebCore::Range::startOffset): Ditto.
42106         (WebCore::Range::endContainer): Ditto.
42107         (WebCore::Range::endOffset): Ditto.
42108         (WebCore::Range::commonAncestorContainer): Ditto.
42109         (WebCore::Range::collapsed): Ditto.
42110         (WebCore::Range::setStart): Ditto.
42111         (WebCore::Range::setEnd): Ditto.
42112         (WebCore::Range::collapse): Ditto.
42113         (WebCore::Range::isPointInRange): Ditto.
42114         (WebCore::Range::comparePoint): Ditto.
42115         (WebCore::Range::compareNode): Ditto.
42116         (WebCore::Range::compareBoundaryPoints): Ditto.
42117         (WebCore::Range::boundaryPointsValid): Ditto.
42118         (WebCore::Range::deleteContents): Ditto.
42119         (WebCore::Range::intersectsNode): Ditto.
42120         (WebCore::Range::processContents): Ditto.
42121         (WebCore::Range::extractContents): Ditto.
42122         (WebCore::Range::cloneContents): Ditto.
42123         (WebCore::Range::insertNode): Ditto.
42124         (WebCore::Range::toString): Ditto.
42125         (WebCore::Range::text): Ditto.
42126         (WebCore::Range::createContextualFragment): Ditto.
42127         (WebCore::Range::detach): Ditto.
42128         (WebCore::Range::checkNodeBA): Changed to use switch statements instead of
42129         multiple calls to the virtual nodeType() function.
42130         (WebCore::Range::cloneRange): Ditto.
42131         (WebCore::Range::setStartAfter): Ditto.
42132         (WebCore::Range::setEndBefore): Ditto.
42133         (WebCore::Range::setEndAfter): Ditto.
42134         (WebCore::Range::selectNode): Ditto.
42135         (WebCore::Range::selectNodeContents): Ditto.
42136         (WebCore::Range::surroundContents): Ditto.
42137         (WebCore::Range::setStartBefore): Ditto.
42138         (WebCore::Range::checkDeleteExtract): Ditto.
42139         (WebCore::Range::containedByReadOnly): Ditto.
42140         (WebCore::Range::firstNode): Ditto.
42141         (WebCore::Range::editingStartPosition): Ditto.
42142         (WebCore::Range::pastLastNode): Ditto.
42143         (WebCore::Range::addLineBoxRects): Ditto.
42144         (WebCore::Range::formatForDebugger): Ditto.
42145         (WebCore::operator==): Ditto.
42146         (WebCore::rangeOfContents): Ditto.
42147         (WebCore::Range::maxStartOffset): Ditto.
42148         (WebCore::Range::maxEndOffset): Ditto.
42149
42150         * dom/Range.h: Made constructors private. Added create functions.
42151         Added getters for startContainer/Offset and endContainer/Offset that
42152         return 0 instead of an exception for detached ranges that are inline
42153         and don't require an ExceptionCode out parameter. Changed the parameters
42154         to setStart and setEnd to PassRefPtr. Removed isDetached function.
42155         Made ActionType and processContents private. Made startPosition and
42156         endPosition inlines and have then return const&. Renamed startNode and
42157         pastEndNode to firstNode and pastLastNode to reduce the chance of
42158         confusion with startContainer/endContainer. Used Position for m_start
42159         and m_end instead of separate container and offset members. Changed
42160         maxStartOffset and maxEndOffset into int to match other offsets.
42161
42162         * editing/ApplyStyleCommand.cpp:
42163         (WebCore::ApplyStyleCommand::applyBlockStyle): Changed to use Range::create.
42164         (WebCore::ApplyStyleCommand::applyInlineStyle): Ditto.
42165         * editing/CompositeEditCommand.cpp:
42166         (WebCore::CompositeEditCommand::inputText): Ditto.
42167         (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
42168         * editing/DeleteSelectionCommand.cpp:
42169         (WebCore::DeleteSelectionCommand::mergeParagraphs): Ditto.
42170         * editing/Editor.cpp:
42171         (WebCore::Editor::fontForSelection): Changed for pastLastNode name change.
42172         (WebCore::Editor::setComposition): Changed to use Range::create.
42173         (WebCore::paragraphAlignedRangeForRange): Ditto.
42174         (WebCore::markMisspellingsOrBadGrammar): Changed to get rid of check for
42175         isDetached and check for 0 from startContainer instead.
42176         (WebCore::Editor::compositionRange): Changed to use Range::create.
42177         * editing/EditorCommand.cpp:
42178         (WebCore::unionDOMRanges): Ditto.
42179         * editing/Selection.cpp:
42180         (WebCore::Selection::toRange): Ditto.
42181         * editing/TextIterator.cpp:
42182         (WebCore::TextIterator::TextIterator): Changed for firstNode and pastLastNode
42183         name change.
42184         (WebCore::TextIterator::range): Changed to use Range::create.
42185         (WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
42186         (WebCore::TextIterator::subrange): Ditto.
42187         * editing/VisiblePosition.cpp:
42188         (WebCore::makeRange): Ditto.
42189         * editing/VisiblePosition.h: Added now-needed include.
42190         * editing/htmlediting.cpp:
42191         (WebCore::indexForVisiblePosition): Changed to use Range::create.
42192         (WebCore::avoidIntersectionWithNode): Changed to get rid of check for
42193         isDetached and check for 0 instead and to use Range::create.
42194         * editing/markup.cpp:
42195         (WebCore::renderedText): Changed to use Range::create.
42196         (WebCore::createMarkup): Changed to no longer use isDetached and also
42197         for new firstNode/pastEndNode names.
42198         (WebCore::createFragmentFromText): Ditto.
42199         * editing/visible_units.cpp:
42200         (WebCore::previousBoundary): Changed to use Range::create.
42201         * page/mac/WebCoreFrameBridge.mm:
42202         (-[WebCoreFrameBridge convertToNSRange:]): Changed to no longer use
42203         isDetached().
42204         * rendering/RenderTextControl.cpp:
42205         (WebCore::RenderTextControl::visiblePositionForIndex): Changed to use Range::create.
42206         (WebCore::RenderTextControl::indexForVisiblePosition): Ditto.
42207
42208 2008-03-11  Daniel Zucker <zucker@wake3.com>
42209
42210         Reviewed by Adam Roben.
42211
42212         There are a handful of placed where the use of CFNetwork-specific
42213         calls are protected by PLATFORM(CF).  Revise to use the more specific
42214         USE(CFNETWORK) macro.  (See http://bugs.webkit.org/show_bug.cgi?id=17783) 
42215
42216         * platform/network/ProtectionSpace.cpp:  Change PLATFORM(CF) to USE(CFNETWORK)
42217         * platform/network/ResourceHandle.cpp: Change PLATFORM(CF) to USE(CFNETWORK)
42218         * platform/network/win/CookieJarWin.cpp:  Correct error in
42219           InternetGetCookie call.  Conditionalize 'cookiesEnabled' the same
42220           as all other implementations in this file.
42221
42222 2008-03-11  Xan Lopez  <xan@gnome.org>
42223
42224         Reviewed by Alp Toker.
42225
42226         http://bugs.webkit.org/show_bug.cgi?id=16476
42227
42228         Add libsoup HTTP backend.
42229         
42230         * GNUmakefile.am:
42231         * platform/network/ResourceHandleInternal.h:
42232         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
42233         * platform/network/soup/AuthenticationChallenge.h: Added.
42234         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
42235         * platform/network/soup/ResourceError.h: Added.
42236         (WebCore::ResourceError::ResourceError):
42237         * platform/network/soup/ResourceHandleSoup.cpp: Added.
42238         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
42239         (WebCore::ResourceHandle::~ResourceHandle):
42240         (WebCore::dataCallback):
42241         (WebCore::parseDataUrl):
42242         (WebCore::ResourceHandle::start):
42243         (WebCore::ResourceHandle::cancel):
42244         (WebCore::ResourceHandle::bufferedData):
42245         (WebCore::ResourceHandle::supportsBufferedData):
42246         (WebCore::ResourceHandle::setDefersLoading):
42247         (WebCore::ResourceHandle::loadsBlocked):
42248         (WebCore::ResourceHandle::willLoadFromCache):
42249         * platform/network/soup/ResourceRequest.h: Copied from WebCore/platform/network/curl/ResourceRequest.h.
42250         (WebCore::ResourceRequest::ResourceRequest):
42251         (WebCore::ResourceRequest::doUpdatePlatformRequest):
42252         * platform/network/soup/ResourceResponse.h: Added.
42253         (WebCore::ResourceResponse::ResourceResponse):
42254         (WebCore::ResourceResponse::setResponseFired):
42255         (WebCore::ResourceResponse::responseFired):
42256         (WebCore::ResourceResponse::doUpdateResourceResponse):
42257
42258 2008-03-11  Rodney Dawes  <dobey@wayofthemonkey.com>
42259
42260         Fix Qt build.
42261
42262         * plugins/qt/PluginDataQt.cpp:
42263         (PluginData::initPlugins)
42264
42265 2008-03-11  Adam Roben  <aroben@apple.com>
42266
42267         Make attribute quoting in DOM view more consistent with source view
42268
42269         Two changes which make the DOM view more consistent with source view:
42270          1) We now quote all attribute values, including URLs
42271          2) The quotes around the values are now purple, matching the left and
42272             right angle brackets that surround the tag
42273
42274         One bug fixed by these changes:
42275          1) The entire URL is selected for editing when you double-click a URL
42276             that is an attribute value. Previously, the first and last
42277             characters were not included in the selection.
42278
42279         Reviewed by Darin.
42280
42281         * page/inspector/DocumentPanel.js:
42282         (WebInspector.DOMNodeTreeElement._startEditingAttribute): Don't need
42283         to account for the quotes around attribute values anymore because the
42284         quotes are now outside the webkit-html-attribute-value span.
42285         * page/inspector/utilities.js:
42286         (nodeTitleInfo): Quote all attribute values, including URLs, and place
42287         the quotes outside the webkit-html-attribute-value span.
42288
42289 2008-03-11  Adam Roben  <aroben@apple.com>
42290
42291         Stop including pthread.h in WebCore on Windows
42292
42293         Reviewed by Darin.
42294
42295         * WebCore.vcproj/WebCore.vcproj:
42296           - Changed the include path to not contain pthreads/
42297           - Let VS remove a duplicate FileConfiguration element
42298           - Let VS have its way with the file ordering
42299         * WebCorePrefix.h: Made the #include of pthread.h be compiled out on
42300         Windows.
42301         * loader/FTPDirectoryDocument.cpp: Added a Windows-specific #define of
42302         localtime_r (pthread.h was providing a macro that substituted plain
42303         old localtime before, but localtime_s is "more secure", so I went with
42304         that).
42305         * loader/FTPDirectoryParser.cpp: Ditto for gmtime_r.
42306
42307 2008-03-11  Adam Roben  <aroben@apple.com>
42308
42309         Roll out r30961 since it broke the default site icon on Windows
42310
42311         * loader/icon/IconDatabase.cpp:
42312         (WebCore::IconDatabase::defaultIcon):
42313
42314 2008-03-11  Dan Bernstein  <mitz@apple.com>
42315
42316         Reviewed by Darin Adler.
42317
42318         - clean up line layout code
42319
42320         * platform/graphics/GraphicsContext.cpp:
42321         (WebCore::TextRunIterator::increment): Removed the resolver parameter.
42322         (WebCore::GraphicsContext::drawBidiText): Adjusted for changes to
42323         createBidiRunsForLine(), which no longer takes a start parameter.
42324         * platform/text/BidiResolver.h:
42325         (WebCore::BidiResolver::): Made Noncopyable and removed the
42326         m_adjustEmbedding member variable.
42327         (WebCore::BidiResolver::position): Added. Returns the resolver's current
42328         position.
42329         (WebCore::BidiResolver::setPosition): Added. Sets the resolver's current
42330         position without changing any other state.
42331         (WebCore::BidiResolver::increment): Added. Advances the resolver to the
42332         next position, allowing the iterator to push and pop embedding.
42333         (WebCore::BidiResolver::appendRun): Removed the resolver parameter in
42334         the call to increment().
42335         (WebCore::BidiResolver::embed): Removed code to save, set and restore
42336         m_adjustEmbedding.
42337         (WebCore::BidiResolver::createBidiRunsForLine): Changed to not take a
42338         'start' iterator. Instead, start at the current position. Removed code
42339         to set m_adjustEmbedding. Changed for noncopyability.
42340         * rendering/RenderBlock.h:
42341         * rendering/bidi.cpp:
42342         (WebCore::bidiNext): Made the resolver parameter optional. Changed to
42343         null-check the 'end of inline' pointer only twice.
42344         (WebCore::bidiFirst): Made the resolver parameter optional.
42345         (WebCore::BidiIterator::increment): Ditto.
42346         (WebCore::BidiState::increment): Added. Overrides the default
42347         BidiResolver::increment() method by passing the resolver to
42348         BidiIterator::increment().
42349         (WebCore::checkMidpoints): Removed the resolver parameter.
42350         (WebCore::BidiState::appendRun): Removed code to save, set and restore
42351         m_adjustEmbedding. Adjusted for change to increment().
42352         (WebCore::RenderBlock::bidiReorderLine): Removed the 'start' parameter
42353         and unreachable code.
42354         (WebCore::buildCompactRuns): Adjusted for changes to BidiResolver/
42355         (WebCore::RenderBlock::layoutInlineChildren): Moved code to initialize
42356         the resolver from this method to determineStartPosition(). Unified the
42357         resolver with the 'start' iterator. Removed unreachable code. Moved one
42358         statement from the beginning of the while loop to the end.
42359         (WebCore::RenderBlock::determineStartPosition): Moved code to initialize
42360         the resolver from layoutInlineChildren() into this method.
42361         (WebCore::RenderBlock::matchedEndLine): Adjusted for the resolver and
42362         the 'start' iterator being one object.
42363         (WebCore::skipNonBreakingSpace): Made the parameter const.
42364         (WebCore::requiresLineBox): Ditto.
42365         (WebCore::RenderBlock::generatesLineBoxesForInlineChild): Adjusted for
42366         the change to BidiIterator::increment().
42367         (WebCore::RenderBlock::skipWhitespace): Made two versions of this
42368         method, one for BidiIterator and one for BidiState.
42369         (WebCore::shouldSkipWhitespaceAfterStartObject): Removed the resolver
42370         parameter.
42371         (WebCore::RenderBlock::findNextLineBreak): Removed the resolver
42372         parameter. Removed calls to setAdjustEmbedding(). Removed the 'previous'
42373         variable and changed the 'last' variable to do its job.
42374         * rendering/bidi.h:
42375
42376 2008-03-10  Adam Roben  <aroben@apple.com>
42377
42378         Part of Bug 17224: DOM nodes/attributes should be editable
42379
42380         <http://bugs.webkit.org/show_bug.cgi?id=17224>
42381         <rdar://problem/5732825>
42382
42383         This patch makes text nodes editable via double-click.
42384
42385         Reviewed by Tim.
42386
42387         * page/inspector/DocumentPanel.js:
42388         (WebInspector.DOMNodeTreeElement._startEditing):
42389           - Moved most of this code to _startEditingAttribute
42390           - Calls _startEditingTextNode or _startEditingAttribute as
42391             appropriate
42392         (WebInspector.DOMNodeTreeElement._startEditingAttribute): Added. Code
42393         came from _startEditing.
42394         (WebInspector.DOMNodeTreeElement._startEditingTextNode): Added.
42395         (WebInspector.DOMNodeTreeElement._textNodeEditingCommitted): Added.
42396         (WebInspector.DOMNodeTreeElement._editingCancelled): Renamed from
42397         _attributeEditingCancelled.
42398         * page/inspector/utilities.js:
42399         (nodeTitleInfo): Wrap text nodes in a webkit-html-text-node span so
42400         that we can easily recognize/edit them.
42401
42402 2008-03-11  Holger Hans Peter Freyther  <zecke@selfish.org>
42403
42404         Reviewed by Darin.
42405
42406         r25512 inlined the urlIcon to improve the startup time of Safari on Mac. Inlining is
42407         not suitable for platforms where this icon is themable. E.g. the Qt platform is allowing
42408         to theme this icon and the Gtk+ platform will probably end up with themable icons
42409         as well.
42410         
42411         Remove dead code from the windows port and move the urlIcon from the windows
42412         directory to the Resource directory to be used by Qt and other ports.
42413         
42414         Ifdef the usage of the built-in icon in IconDatabase.cpp and for Qt do not use
42415         it. Gtk+ currently has no proper implementation of Image::loadPlatformResource but
42416         once it does it wants to use this for getting the urlIcon as well.
42417
42418         * Resources/urlIcon.png: Renamed from WebKit/win/WebKit.vcproj/urlIcon.png.
42419         * loader/icon/IconDatabase.cpp:
42420         (WebCore::IconDatabase::defaultIcon):
42421
42422 2008-03-11  Tor Arne Vestbø  <tavestbo@trolltech.com>
42423
42424         Reviewed by Darin.
42425
42426         Implemented HTML media element support for QtWebKit, using Phonon.
42427
42428         http://bugs.webkit.org/show_bug.cgi?id=17766
42429
42430         * WebCore.pro:
42431         * platform/graphics/MediaPlayer.cpp:
42432         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: Added.
42433         (debugMediaObject):
42434         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
42435         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
42436         (WebCore::MediaPlayerPrivate::getSupportedTypes):
42437         (WebCore::MediaPlayerPrivate::hasVideo):
42438         (WebCore::MediaPlayerPrivate::load):
42439         (WebCore::MediaPlayerPrivate::cancelLoad):
42440         (WebCore::MediaPlayerPrivate::play):
42441         (WebCore::MediaPlayerPrivate::pause):
42442         (WebCore::MediaPlayerPrivate::paused):
42443         (WebCore::MediaPlayerPrivate::seek):
42444         (WebCore::MediaPlayerPrivate::seeking):
42445         (WebCore::MediaPlayerPrivate::duration):
42446         (WebCore::MediaPlayerPrivate::currentTime):
42447         (WebCore::MediaPlayerPrivate::setEndTime):
42448         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
42449         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
42450         (WebCore::MediaPlayerPrivate::bytesLoaded):
42451         (WebCore::MediaPlayerPrivate::totalBytesKnown):
42452         (WebCore::MediaPlayerPrivate::totalBytes):
42453         (WebCore::MediaPlayerPrivate::setRate):
42454         (WebCore::MediaPlayerPrivate::setVolume):
42455         (WebCore::MediaPlayerPrivate::setMuted):
42456         (WebCore::MediaPlayerPrivate::dataRate):
42457         (WebCore::MediaPlayerPrivate::networkState):
42458         (WebCore::MediaPlayerPrivate::readyState):
42459         (WebCore::MediaPlayerPrivate::updateStates):
42460         (WebCore::MediaPlayerPrivate::setVisible):
42461         (WebCore::MediaPlayerPrivate::setRect):
42462         (WebCore::MediaPlayerPrivate::loadStateChanged):
42463         (WebCore::MediaPlayerPrivate::rateChanged):
42464         (WebCore::MediaPlayerPrivate::sizeChanged):
42465         (WebCore::MediaPlayerPrivate::timeChanged):
42466         (WebCore::MediaPlayerPrivate::volumeChanged):
42467         (WebCore::MediaPlayerPrivate::didEnd):
42468         (WebCore::MediaPlayerPrivate::loadingFailed):
42469         (WebCore::MediaPlayerPrivate::naturalSize):
42470         (WebCore::MediaPlayerPrivate::eventFilter):
42471         (WebCore::MediaPlayerPrivate::repaint):
42472         (WebCore::MediaPlayerPrivate::paint):
42473         (WebCore::MediaPlayerPrivate::stateChanged):
42474         (WebCore::MediaPlayerPrivate::tick):
42475         (WebCore::MediaPlayerPrivate::metaDataChanged):
42476         (WebCore::MediaPlayerPrivate::seekableChanged):
42477         (WebCore::MediaPlayerPrivate::hasVideoChanged):
42478         (WebCore::MediaPlayerPrivate::bufferStatus):
42479         (WebCore::MediaPlayerPrivate::finished):
42480         (WebCore::MediaPlayerPrivate::currentSourceChanged):
42481         (WebCore::MediaPlayerPrivate::aboutToFinish):
42482         (WebCore::MediaPlayerPrivate::prefinishMarkReached):
42483         (WebCore::MediaPlayerPrivate::totalTimeChanged):
42484         * platform/graphics/qt/MediaPlayerPrivatePhonon.h: Added.
42485         (WebCore::MediaPlayerPrivate::):
42486         (WebCore::MediaPlayerPrivate::isAvailable):
42487
42488 2008-03-10  Sam Weinig  <sam@webkit.org>
42489
42490         Reviewed by Beth Dakin.
42491
42492         Throw a SECURITY_ERR when accessing a tainted canvas
42493         by CanvasRenderingContext2D::getImageData() and
42494         HTMLCanvasElement::toDataURL().
42495
42496         * html/CanvasRenderingContext2D.cpp:
42497         (WebCore::CanvasRenderingContext2D::getImageData):
42498         * html/CanvasRenderingContext2D.h:
42499         * html/CanvasRenderingContext2D.idl:
42500         * html/HTMLCanvasElement.cpp:
42501         (WebCore::HTMLCanvasElement::toDataURL):
42502         * html/HTMLCanvasElement.h:
42503         * html/HTMLCanvasElement.idl:
42504
42505 2008-03-10  Justin Garcia  <justin.garcia@apple.com>
42506
42507         Reviewed by Sam.
42508
42509         <rdar://problem/5779984> REGRESSION (r30391): GMail: Safari won't display the Edit Link dialog
42510
42511         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
42512         (WebCore::hasCSSPropertyNamePrefix): Fixed a typo.  The code was only
42513         comparing the first character of the prefix to the first character
42514         of the property name.
42515
42516 2008-03-10  Andre Boule  <aboule@apple.com>
42517
42518         Reviewed by Beth.
42519
42520         Hold off on initializing the frame to avoid the RenderView getting 
42521         a null FrameView. This could potentially cause problems.
42522
42523         * svg/graphics/SVGImage.cpp:
42524         (WebCore::SVGImage::dataChanged):
42525
42526 2008-03-10  Darin Adler  <darin@apple.com>
42527
42528         - try to fix Qt build
42529
42530         * bridge/qt/qt_runtime.cpp:
42531         (KJS::Bindings::convertQVariantToValue): Change KJS::UChar to UChar.
42532
42533 2008-03-10  Darin Adler  <darin@apple.com>
42534
42535         Reviewed by Antti.
42536
42537         - fix <rdar://problem/3059610> VIP: links opened in new frame, window, or tab
42538           should be redrawn as visited immediately
42539         - fix <rdar://problem/4382809> Going "back" a page doesn't change the color of
42540           the visited URL at directory.umi
42541         - fix http://bugs.webkit.org/show_bug.cgi?id=4941
42542           Visited links should be marked as visited
42543         - fix http://bugs.webkit.org/show_bug.cgi?id=7960
42544           REGRESSION: Visited link color doesn't displayed after loading page from cache
42545
42546         We now mark all links on a page as "changed" at the appropriate times.
42547
42548         * WebCore.base.exp: Update since I made completeURL be a const member function.
42549
42550         * css/CSSStyleSelector.cpp: Got rid of some unneeded globals that could be turned
42551         into locals. Also changed some static data members to file-scoped globals with
42552         internal linkage. Renamed the globals to get rid of the m_ prefix. Changed the
42553         prefix on m_styleNotYetAvailable to s_styleNotYetAvailable.
42554         (WebCore::CSSStyleSelector::CSSStyleSelector): Updated for name changes.
42555         (WebCore::parseUASheet): Tweak the comment.
42556         (WebCore::CSSStyleSelector::loadDefaultStyle): Updated for name changes and to
42557         use local variables instead of globals where possible.
42558         (WebCore::CSSStyleSelector::checkPseudoState): Made this a member function so
42559         it can store the link in a hash. Also changed it to have a return value instead
42560         of having it modify a global variable. Added code to put the hash into a set so
42561         we can tell later if this is one of the links that affects this page.
42562         (WebCore::CSSStyleSelector::canShareStyleWithElement): Updated for the change to
42563         checkPseudoState.
42564         (WebCore::CSSStyleSelector::matchUARules): Updated for name changes.
42565         (WebCore::CSSStyleSelector::styleForElement): Ditto.
42566         (WebCore::CSSStyleSelector::adjustRenderStyle): Ditto.
42567         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): Changed code to read
42568         the SVG style sheet to use a boolean global and put it right here in the function
42569         since this is the only code that needs to know about it.
42570         (WebCore::CSSStyleSelector::checkOneSelector): Updated for name changes.
42571         (WebCore::colorForCSSValue): Moved code inside the function that is not needed
42572         anywhere else.
42573         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Updaed for the change
42574         to checkPseudoState.
42575         (WebCore::CSSStyleSelector::allVisitedStateChanged): Added. Calls setChanged on
42576         all links if there were any in the set.
42577         (WebCore::CSSStyleSelector::visitedStateChanged): Added. Calls setChanged on all
42578         links if the one that changed is in the set.
42579
42580         * css/CSSStyleSelector.h: Removed unused StyleSelector class and State enum. Made
42581         CSSStyleSelector derive from Noncopyable. Made lots of member functions private that
42582         didn't need to be public, and removed others that could be made into non-member
42583         functions. Changed pseudoStyleRulesForElement to take a const String& instead of
42584         a StringImpl*. Added new allVisitedStateChanged and visitedStateChanged functions.
42585         Got rid of unneeded friend declarations.
42586
42587         * dom/Document.cpp:
42588         (WebCore::Document::completeURL): Made const.
42589         (WebCore::findSlashDotDotSlash): Moved here from PageGroup.
42590         (WebCore::findSlashSlash): Ditto.
42591         (WebCore::findSlashDotSlash): Ditto.
42592         (WebCore::containsColonSlashSlash):
42593         (WebCore::cleanPath): Ditto.
42594         (WebCore::matchLetter): Ditto.
42595         (WebCore::needsTrailingSlash): Ditto.
42596         (WebCore::Document::visitedLinkHash): Moved this here from PageGroup. This is
42597         the poor-man's completeURL function. The idea of putting it here is that this
42598         way it can be alongside the real completeURL function. Later we should figure out
42599         a way to make this function share more code with the real thing and match behavior.
42600
42601         * dom/Document.h: Marked completeURL function const. Added visitedLinkHash function.
42602
42603         * page/DOMWindow.cpp:
42604         (WebCore::DOMWindow::getMatchedCSSRules): Updated for change to CSSStyleSelector.
42605
42606         * page/Page.cpp:
42607         (WebCore::Page::allVisitedStateChanged): Added. Calls allVisitedStateChanged on all
42608         style selectors.
42609         (WebCore::Page::visitedStateChanged): Ditto.
42610         * page/Page.h: Added the above functions.
42611
42612         * page/PageGroup.cpp:
42613         (WebCore::PageGroup::isLinkVisited): Changed to take a visitedLinkHash parameter.
42614         The CSSStyleSelector now handles actually computing the hash, and it does so by
42615         calling code in Document.
42616         (WebCore::PageGroup::addVisitedLink): Refactored so the two overloaded copies share
42617         a bit more code. Added code that calls visitedStateChanged if a new link was added.
42618         (WebCore::PageGroup::removeVisitedLinks): Added code to call allVisitedStateChanged
42619         if any visited links are removed.
42620         * page/PageGroup.h: Include StringHash.h instead of having the AlreadyHashed struct
42621         definition here.
42622
42623         * platform/text/StringHash.h:
42624         (WebCore::CaseFoldingHash::hash): Tweaked to make this a bit more consistent with
42625         the StringImpl::computeHash function, using the same technique for avoiding 0.
42626         (WebCore::AlreadyHashed::hash): Added. Was formerly in PageGroup.h.
42627         (WebCore::AlreadyHashed::avoidDeletedValue): Added. Was formerly in PageGroup.cpp.
42628
42629         * rendering/RenderStyle.cpp:
42630         (WebCore::RenderStyle::isStyleAvailable): Changed to use an inline function instead
42631         of getting directly at a data member so the data member could be made private.
42632
42633         * loader/FrameLoader.cpp:
42634         (WebCore::FrameLoader::scrollToAnchor): Added call to updateHistoryForAnchorScroll.
42635         (WebCore::FrameLoader::updateHistoryForAnchorScroll): Added.
42636         * loader/FrameLoader.h: Added updateHistoryForAnchorScroll.
42637
42638 2008-03-10  Adam Roben  <aroben@apple.com>
42639
42640         Part of Bug 17224: DOM nodes/attributes should be editable
42641
42642         <http://bugs.webkit.org/show_bug.cgi?id=17224>
42643         <rdar://problem/5732825>
42644
42645         This patch makes DOM attributes editable via double-click.
42646
42647         Reviewed by Tim.
42648
42649         * page/inspector/DocumentPanel.js:
42650         (WebInspector.DOMNodeTreeElement.onmousedown): Don't do anything if
42651         we're being edited, since we want default editing behaviors to work.
42652         (WebInspector.DOMNodeTreeElement.ondblclick): Try to start editing
42653         before doing anything else.
42654         (WebInspector.DOMNodeTreeElement._startEditing): Added. Currently only
42655         lets you edit attributes.
42656         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Added.
42657         Uses a scratch element to get the new attribute(s) parsed, then sets
42658         the attribute(s) on the node in the inspected document.
42659         (WebInspector.DOMNodeTreeElement._attributeEditingCancelled): Added.
42660         (WebInspector.DOMNodeTreeElement._updateTitle): Added. Refreshes the
42661         representation of the node in the Inspector's DOM tree to reflect
42662         the node's current state.
42663         * page/inspector/inspector.css: Made the .editing class apply
42664         everywhere.
42665         * page/inspector/utilities.js:
42666         (nodeTitleInfo): Changed to surround attribute name/value pairs in a
42667         webkit-html-attribute span so that we can easily edit the pair as a
42668         whole.
42669
42670 2008-03-10  David Kilzer  <ddkilzer@apple.com>
42671
42672         Fix 64-bit builds.
42673
42674         Reviewed by Stephanie.
42675
42676         WebCore.exp only gets generated once for both 32-bit and 64-bit builds,
42677         so we must exclude the _NPN symbols when creating WebCore.LP64.exp.
42678
42679         * WebCore.xcodeproj/project.pbxproj: Reverted build phase shell code to
42680         r30826 to remove _NPN symbols from 64-bit builds in WebCore.LP64.exp.
42681
42682 2008-03-10  Eric Seidel  <eric@webkit.org>
42683
42684         Reviewed by Darin.
42685
42686         Remove KJS::UChar, use ::UChar instead
42687         http://bugs.webkit.org/show_bug.cgi?id=17017
42688
42689         To functional changes, thus no tests.
42690
42691         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
42692         (WebCore::hasCSSPropertyNamePrefix):
42693         (WebCore::cssPropertyName):
42694         * bindings/js/JSDOMWindowBase.cpp:
42695         (WebCore::windowProtoFuncAToB):
42696         (WebCore::windowProtoFuncBToA):
42697         * bindings/js/JSSVGPODTypeWrapper.h:
42698         * bindings/js/kjs_proxy.cpp:
42699         (WebCore::KJSProxy::evaluate):
42700         * bridge/objc/objc_utility.mm:
42701         (KJS::Bindings::throwError):
42702         * dom/Document.cpp:
42703         (WebCore::Document::parseQualifiedName):
42704         * platform/text/AtomicString.cpp:
42705         (WebCore::AtomicString::add):
42706         * platform/text/String.cpp:
42707         (WebCore::String::String):
42708         (WebCore::String::operator Identifier):
42709         (WebCore::String::operator UString):
42710         * platform/text/TextCodecICU.cpp:
42711         (WebCore::TextCodecICU::decode):
42712         * svg/SVGAnimatedTemplate.h:
42713
42714 2008-03-10  Darin Adler  <darin@apple.com>
42715
42716         Reviewed by Sam.
42717
42718         - eliminate keyboard UI mode method from WebCoreFrameBridge
42719
42720         * page/ChromeClient.h: Added keyboardUIMode function.
42721         (WebCore::ChromeClient::keyboardUIMode): Ditto.
42722         * page/mac/EventHandlerMac.mm:
42723         (WebCore::EventHandler::tabsToAllControls): Call chrome client function instead
42724         of bridge function.
42725         * page/mac/WebCoreFrameBridge.h: Removed keyboardUIMode method, and other unused
42726         ones.
42727
42728         * WebCore.xcodeproj/project.pbxproj: Allowed Xcode to change the project.
42729         Do not try to fight the Xcode.
42730
42731 2008-03-10  Darin Adler  <darin@apple.com>
42732
42733         - oops, forgot to save last couple changes from the editor
42734
42735         * bindings/js/JSDOMWindowCustom.cpp:
42736         (WebCore::markDOMObjectWrapper): Tweaked a tiny bit.
42737         (WebCore::JSDOMWindow::mark): Sorted alphabetically.
42738
42739 2008-03-10  Darin Adler  <darin@apple.com>
42740
42741         Reviewed by Geoff.
42742
42743         - fix failing regression test (window.navigator is getting garbage
42744           collected and thus losing its custom properties)
42745
42746         * bindings/js/JSDOMWindowCustom.cpp:
42747         (WebCore::markDOMObject): Added helper function.
42748         (WebCore::JSDOMWindow::mark): Added. Marks the wrappers for all the objects that hang
42749         off the window object.
42750
42751         * page/DOMWindow.h:
42752         (WebCore::DOMWindow::optionalScreen): Added so we can get the Screen object without
42753         creating it if it's already there.
42754         (WebCore::DOMWindow::optionalSelection): Ditto.
42755         (WebCore::DOMWindow::optionalHistory): Ditto.
42756         (WebCore::DOMWindow::optionalLocationbar): Ditto.
42757         (WebCore::DOMWindow::optionalMenubar): Ditto.
42758         (WebCore::DOMWindow::optionalPersonalbar): Ditto.
42759         (WebCore::DOMWindow::optionalScrollbars): Ditto.
42760         (WebCore::DOMWindow::optionalStatusbar): Ditto.
42761         (WebCore::DOMWindow::optionalToolbar): Ditto.
42762         (WebCore::DOMWindow::optionalConsole): Ditto.
42763         (WebCore::DOMWindow::optionalNavigator): Ditto.
42764
42765         * page/DOMWindow.idl: Added the CustomMarkFunction flag. Sorted the flags in
42766         alphabetical order since there are a lot of them.
42767
42768 2008-03-10  Darin Adler  <darin@apple.com>
42769
42770         Reviewed by Sam.
42771
42772         - eliminate Java applet methods from WebCoreFrameBridge
42773
42774         * loader/FrameLoaderClient.h: Added a javaApplet function.
42775         * page/mac/FrameMac.mm:
42776         (WebCore::Frame::createScriptInstanceForWidget): Streamlined the code.
42777         Use the loader client instead of the bridge to get the applet.
42778         * page/mac/WebCoreFrameBridge.h: Removed the getAppletInView and
42779         pollForAppletInView methods. Also removed other unused things.
42780
42781 2008-03-10  Marc-Antoine Ruel  <maruel@gmail.com>
42782
42783         Reviewed by Eric, landed by Darin.
42784
42785         http://bugs.webkit.org/show_bug.cgi?id=16095
42786         Move GraphicsContextPrivate to its own header file.
42787
42788         Moves GraphicsContextState and GraphicsContextPrivate to its
42789         own header
42790
42791         * WebCore.vcproj/WebCore.vcproj:
42792         * platform/graphics/GraphicsContext.cpp:
42793         * platform/graphics/GraphicsContextPrivate.h: Added.
42794         (WebCore::GraphicsContextState::GraphicsContextState):
42795         (WebCore::GraphicsContextPrivate::GraphicsContextPrivate):
42796
42797 2008-03-10  Julien Chaffraix  <julien.chaffraix@gmail.com>
42798
42799         Reviewed and landed by Darin.
42800
42801         bug 12182 : XMLHttpRequest should raise SECURITY_ERR for same-origin policy violations
42802
42803         Removed reference to PERMISSION_DENIED (previous non standard exception) and replaced it
42804         by DOM exception SECURITY_ERR. Updated XMLHttpRequest::open to raise SECURITY_ERR.
42805
42806         * bindings/js/kjs_binding.cpp:
42807         (WebCore::setDOMException): Removed PERMISSION_DENIED code.
42808         * dom/ExceptionCode.cpp: Added SECURITY_ERR exception.
42809         * dom/ExceptionCode.h: Ditto.
42810         * xml/XMLHttpRequest.cpp:
42811         (WebCore::XMLHttpRequest::open): Returns SECURITY_ERR now.
42812         * xml/XMLHttpRequestException.h: Removed PERMISSION_DENIED.
42813
42814 2008-03-09  Adam Roben  <aroben@apple.com>
42815
42816         Refactor CSS editing code so we can share it with DOM editing
42817
42818         Add WebInspector.startEditing, which takes the element to be edited, a
42819         committedCallback, a cancelledCallback, and a context parameter. This
42820         function takes care of setting up the element for editing, and calls
42821         either the cancelledCallback or committedCallback when editing ends.
42822
42823         Reviewed by Tim.
42824
42825         * page/inspector/StylesSidebarPane.js:
42826         (WebInspector.StylePropertyTreeElement.startEditing):
42827           - Call WebInspector.isBeingEdited and WebInspector.startEditing
42828           - Removed code now handled by WebInspector.startEditing
42829         (WebInspector.StylePropertyTreeElement.editingEnded):
42830           - Renamed from endEditing
42831           - Removed code now handled by WebInspector.startEditing
42832         (WebInspector.StylePropertyTreeElement.editingCancelled):
42833           - Renamed from cancelEditing
42834           - Changed parameters to match WebInspector.startEditing's
42835             cancelledCallback
42836         (WebInspector.StylePropertyTreeElement.editingCommitted):
42837           - Renamed from commitEditing
42838           - Changed parameters to match WebInspector.startEditing's
42839             committedCallback
42840         * page/inspector/inspector.js:
42841         (WebInspector.changeFocus): Changed a call to firstParentWithClassName
42842         to firstParentOrSelfWithClassName so that if the focusable element
42843         itself is the target it will be recognized. I don't know why this
42844         change wasn't needed before this.
42845         (WebInspector.isBeingEdited): Added.
42846         (WebInspector.startEditing): Added.
42847
42848 2008-03-10  Adam Roben  <aroben@apple.com>
42849
42850         Windows build fix
42851
42852         * WebCore.vcproj/WebCore.vcproj: Pick up generated source files out of
42853         $(WebKitOutputDir) instead of hard-coding WebKitBuild.
42854
42855 2008-03-10  Darin Adler  <darin@apple.com>
42856
42857         * DerivedSources.make: Merge plug-in-related changes with the new way of handling
42858         autogenerated DOM classes.
42859
42860 2008-03-10  Johnny Ding  <johnnyding.webkit@gmail.com>
42861
42862         Reviewed, tweaked and landed by Alexey.
42863
42864         - fix http://bugs.webkit.org/show_bug.cgi?id=17732        
42865
42866         We didn't have a fallback to frame encoding in the case of loading a script via
42867         changing its src attribute.
42868
42869         Test: fast/dom/HTMLScriptElement/script-decoding-error-after-setting-src.html
42870
42871         * html/HTMLScriptElement.cpp:
42872         (WebCore::HTMLScriptElement::parseMappedAttribute): Use a helper function to get proper
42873         charset for correct decoding of script content.
42874         (WebCore::HTMLScriptElement::insertedIntoDocument):
42875         (WebCore::HTMLScriptElement::scriptCharset): A helper function for getting proper charset
42876         for the script (as much as can be determined prior to loading it).
42877         * html/HTMLScriptElement.h:
42878         * html/HTMLTokenizer.cpp:
42879         (WebCore::HTMLTokenizer::parseTag): Use a helper function to get proper charset for correct
42880         decoding of script content.
42881
42882 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
42883
42884         Reviewed by Lars.
42885
42886         Fix reference counting of returned MimeType and Plugin objects
42887         created in the array wrappers.
42888
42889         * plugins/MimeTypeArray.cpp:
42890         * plugins/MimeTypeArray.h:
42891         * plugins/Plugin.cpp:
42892         * plugins/Plugin.h:
42893         * plugins/PluginArray.cpp:
42894         * plugins/PluginArray.h:
42895
42896 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
42897
42898         Wx linking fix.
42899
42900         Added missing stubs for PluginData.
42901
42902         * platform/wx/TemporaryLinkStubs.cpp:
42903
42904 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
42905
42906         Windows build fix that I forgot to merge earlier ;(
42907
42908         Forward declare Page as class, not struct.
42909
42910         * plugins/PluginData.h:
42911
42912 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
42913
42914         Attempt to fix the Wx build.
42915
42916         * WebCoreSources.bkl:
42917
42918 2008-03-07  Simon Hausmann  <hausmann@webkit.org>
42919
42920         Reviewed by Darin.
42921
42922         Done with Lars.
42923
42924         http://bugs.webkit.org/show_bug.cgi?id=16815
42925
42926         Ported the manually written JS bindings of window.navigator,
42927         window.navigator.plugins and window.navigator.mimeTypes to
42928         auto-generated bindings.
42929
42930         Moved the globally cached plugin and mimetype information to a
42931         per WebCore::Page shared PluginData structure.
42932
42933         Implemented window.navigator.plugins.refresh() in a
42934         platform-independent way.
42935
42936         * DerivedSources.make:
42937         * GNUmakefile.am:
42938         * WebCore.pro:
42939         * WebCore.vcproj/WebCore.vcproj:
42940         * WebCore.xcodeproj/project.pbxproj:
42941         * bindings/js/JSDOMWindowBase.cpp:
42942         (WebCore::JSDOMWindowBase::getValueProperty):
42943         * bindings/js/JSMimeTypeArrayCustom.cpp: Added.
42944         (WebCore::JSMimeTypeArray::canGetItemsForName):
42945         (WebCore::JSMimeTypeArray::nameGetter):
42946         * bindings/js/JSNavigatorCustom.cpp: Added.
42947         (WebCore::needsYouTubeQuirk):
42948         (WebCore::JSNavigator::appVersion):
42949         * bindings/js/JSPluginArrayCustom.cpp: Added.
42950         (WebCore::JSPluginArray::canGetItemsForName):
42951         (WebCore::JSPluginArray::nameGetter):
42952         * bindings/js/JSPluginCustom.cpp: Added.
42953         (WebCore::JSPlugin::canGetItemsForName):
42954         (WebCore::JSPlugin::nameGetter):
42955         * bindings/js/kjs_navigator.cpp: Removed.
42956         * bindings/js/kjs_navigator.h: Removed.
42957         * dom/Clipboard.cpp:
42958         * dom/DOMImplementation.cpp:
42959         (WebCore::DOMImplementation::createDocument):
42960         * loader/FrameLoader.cpp:
42961         (WebCore::FrameLoader::shouldUsePlugin):
42962         * page/DOMWindow.cpp:
42963         (WebCore::DOMWindow::clear):
42964         (WebCore::DOMWindow::navigator):
42965         * page/DOMWindow.h:
42966         * page/DOMWindow.idl:
42967         * page/DragController.cpp:
42968         * page/Frame.cpp:
42969         * page/Frame.h:
42970         * page/Navigator.cpp: Added.
42971         (WebCore::Navigator::Navigator):
42972         (WebCore::Navigator::~Navigator):
42973         (WebCore::Navigator::disconnectFrame):
42974         (WebCore::Navigator::appCodeName):
42975         (WebCore::Navigator::appName):
42976         (WebCore::Navigator::appVersion):
42977         (WebCore::Navigator::language):
42978         (WebCore::Navigator::userAgent):
42979         (WebCore::Navigator::platform):
42980         (WebCore::Navigator::plugins):
42981         (WebCore::Navigator::mimeTypes):
42982         (WebCore::Navigator::product):
42983         (WebCore::Navigator::productSub):
42984         (WebCore::Navigator::vendor):
42985         (WebCore::Navigator::vendorSub):
42986         (WebCore::Navigator::cookieEnabled):
42987         (WebCore::Navigator::javaEnabled):
42988         * page/Navigator.h: Added.
42989         (WebCore::Navigator::create):
42990         (WebCore::Navigator::frame):
42991         * page/Navigator.idl: Added.
42992         * page/Page.cpp:
42993         (WebCore::Page::refreshPlugins):
42994         (WebCore::Page::pluginData):
42995         * page/Page.h:
42996         * page/Plugin.h: Removed.
42997         * page/mac/FrameMac.mm:
42998         * page/mac/WebCoreFrameBridge.mm:
42999         (-[WebCoreFrameBridge canProvideDocumentSource]):
43000         * page/mac/WebCoreViewFactory.h:
43001         * page/qt/FrameQt.cpp:
43002         * page/win/FrameWin.cpp:
43003         * platform/gtk/TemporaryLinkStubs.cpp:
43004         * platform/mac/PlugInInfoStoreMac.mm: Removed.
43005         * platform/qt/MIMETypeRegistryQt.cpp:
43006         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
43007         * plugins/MimeType.cpp: Added.
43008         (WebCore::MimeType::MimeType):
43009         (WebCore::MimeType::~MimeType):
43010         (WebCore::MimeType::type):
43011         (WebCore::MimeType::suffixes):
43012         (WebCore::MimeType::description):
43013         (WebCore::MimeType::enabledPlugin):
43014         * plugins/MimeType.h: Added.
43015         (WebCore::MimeType::create):
43016         * plugins/MimeType.idl: Added.
43017         * plugins/MimeTypeArray.cpp: Added.
43018         (WebCore::MimeTypeArray::MimeTypeArray):
43019         (WebCore::MimeTypeArray::~MimeTypeArray):
43020         (WebCore::MimeTypeArray::length):
43021         (WebCore::MimeTypeArray::item):
43022         (WebCore::MimeTypeArray::canGetItemsForName):
43023         (WebCore::MimeTypeArray::nameGetter):
43024         (WebCore::MimeTypeArray::getPluginData):
43025         * plugins/MimeTypeArray.h: Added.
43026         (WebCore::MimeTypeArray::create):
43027         (WebCore::MimeTypeArray::disconnectFrame):
43028         * plugins/MimeTypeArray.idl: Added.
43029         * plugins/Plugin.cpp: Added.
43030         (WebCore::Plugin::Plugin):
43031         (WebCore::Plugin::~Plugin):
43032         (WebCore::Plugin::name):
43033         (WebCore::Plugin::filename):
43034         (WebCore::Plugin::description):
43035         (WebCore::Plugin::length):
43036         (WebCore::Plugin::item):
43037         (WebCore::Plugin::canGetItemsForName):
43038         (WebCore::Plugin::nameGetter):
43039         * plugins/Plugin.h: Added.
43040         (WebCore::Plugin::create):
43041         * plugins/Plugin.idl: Added.
43042         * plugins/PluginArray.cpp: Added.
43043         (WebCore::PluginArray::PluginArray):
43044         (WebCore::PluginArray::~PluginArray):
43045         (WebCore::PluginArray::length):
43046         (WebCore::PluginArray::item):
43047         (WebCore::PluginArray::canGetItemsForName):
43048         (WebCore::PluginArray::nameGetter):
43049         (WebCore::PluginArray::refresh):
43050         (WebCore::PluginArray::getPluginData):
43051         * plugins/PluginArray.h: Added.
43052         (WebCore::PluginArray::create):
43053         (WebCore::PluginArray::disconnectFrame):
43054         * plugins/PluginArray.idl: Added.
43055         * plugins/PluginData.cpp: Added.
43056         (WebCore::PluginData::PluginData):
43057         (WebCore::PluginData::~PluginData):
43058         (WebCore::PluginData::supportsMimeType):
43059         (WebCore::PluginData::pluginNameForMimeType):
43060         * plugins/PluginData.h: Added.
43061         (WebCore::PluginData::create):
43062         (WebCore::PluginData::disconnectPage):
43063         (WebCore::PluginData::page):
43064         (WebCore::PluginData::plugins):
43065         (WebCore::PluginData::mimes):
43066         * plugins/mac/PluginDataMac.mm: Added.
43067         (WebCore::PluginData::initPlugins):
43068         (WebCore::PluginData::refresh):
43069         * plugins/qt/PluginDataQt.cpp: Added.
43070         (WebCore::PluginData::initPlugins):
43071         * plugins/win/PluginDataWin.cpp: Added.
43072         (WebCore::PluginData::initPlugins):
43073         (WebCore::PluginData::refresh):
43074
43075 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
43076
43077         Reviewed by Holger.
43078
43079         Replace two printfs() in the Qt port with notImplemented().
43080
43081         * html/CanvasRenderingContext2D.cpp:
43082         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
43083         (WebCore::CanvasRenderingContext2D::applyFillPattern):
43084
43085 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
43086
43087         Reviewed by Alp.
43088
43089         Compilation fix with gcc 4.3: Include stdio.h for printf.
43090
43091         * html/CanvasRenderingContext2D.cpp:
43092         * html/HTMLCanvasElement.cpp:
43093
43094 2008-03-09  Steve Falkenburg  <sfalken@apple.com>
43095
43096         Stop Windows build if an error occurs in a prior project.
43097
43098         Rubber stamped by Darin.
43099
43100         * WebCore.vcproj/WebCore.vcproj:
43101         * WebCore.vcproj/WebCoreGenerated.vcproj:
43102
43103 2008-03-09  Darin Adler  <darin@apple.com>
43104
43105         * DerivedSources.make: Third try at fixing the build.
43106         * bindings/js/JSRGBColor.cpp: And touching this file.
43107
43108 2008-03-09  Darin Adler  <darin@apple.com>
43109
43110         * DerivedSources.make: One *more* try at fixing the build.
43111
43112 2008-03-09  Darin Adler  <darin@apple.com>
43113
43114         * DerivedSources.make: One more try at fixing the build.
43115
43116 2008-03-09  Darin Adler  <darin@apple.com>
43117
43118         * DerivedSources.make: Re-land the change, fixed, and with an attempt to fix the
43119         bots by removing the incorrect file.
43120
43121 2008-03-09  Oliver Hunt  <oliver@apple.com>
43122
43123         RS=Mark Rowe
43124
43125         Roll out r30909 -- it breaks the build and is a non-trivial fix (according to weinig)
43126
43127         * DerivedSources.make:
43128
43129 2008-03-09  Darin Adler  <darin@apple.com>
43130
43131         Reviewed by Adam.
43132
43133         * DerivedSources.make: Put the list of DOM classes into its own
43134         variable, and generate the JavaScript bindings and Objective-C
43135         bindings dependencies from that. Added some separators to make it
43136         a little easier to see the sections of the file. Moved all the
43137         Mac-specific rules (except for the SVG conditional part) down
43138         to the bottom of the file in a separate section.
43139
43140 2008-03-09  Adam Roben  <aroben@apple.com>
43141
43142         Windows build fix
43143
43144         * WebCore.vcproj/WebCore.vcproj: Make sure all Cairo files are
43145         excluded from all three CG-based configurations: Debug, Release, and
43146         Debug_Internal.
43147
43148 2008-03-08  Mark Rowe  <mrowe@apple.com>
43149
43150         Attempt to fix the Qt build.
43151
43152         * platform/MIMETypeRegistry.cpp:  Add missing include.
43153
43154 2008-03-08  Oliver Hunt  <oliver@apple.com>
43155
43156         Reviewed by Sam W.
43157
43158         Bug 16516: canvas image patterns stop working with some transformations
43159
43160         Simple fix.  We used x/yStep of FLT_MAX to fake a no-repeat-x/y pattern
43161         with CG.  However any transforms involving FLT_MAX immediately get
43162         consumed by the introduced floating point error.  yStep had already been
43163         clamped to a much smaller arbitrary value, and this patch makes us use
43164         that clamp value for xStep as well.
43165
43166         * html/CanvasPattern.cpp:
43167         (WebCore::CanvasPattern::createPattern):
43168
43169 2008-03-08  Oliver Hunt  <oliver@apple.com>
43170
43171         Reviewed by Mitz.
43172
43173         Bug 17728: Canvas.createPattern with null repeat argument throws an exception
43174
43175         Trivial fix, we were calling toString on null which produces the string "null",
43176         we just needed to switch to using valueToStringWithNullCheck rather than 
43177         JSValue::toString directly
43178
43179         Test: fast/canvas/canvas-pattern-behaviour.html
43180
43181         * WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp:
43182         (WebCore::JSCanvasRenderingContext2D::createPattern):
43183
43184 2008-03-08  Mark Rowe  <mrowe@apple.com>
43185
43186         Reviewed by Darin Adler.
43187
43188         Fix 64-bit build with GCC 4.2.
43189
43190         * bindings/objc/WebScriptObject.mm: Use NSUInteger in place of unsigned where required.
43191         * platform/mac/SharedBufferMac.mm: Ditto.
43192
43193 2008-03-08  Dan Bernstein  <mitz@apple.com>
43194
43195         Reviewed by Oliver Hunt.
43196
43197         - fix garbage in transparent areas in canvas.toDataURL results
43198
43199         * platform/graphics/cg/ImageBufferCG.cpp:
43200         (WebCore::ImageBuffer::toDataURL): Clear the bitmap context before
43201         painting the canvas image onto it.
43202
43203 2008-03-08  Darin Adler  <darin@apple.com>
43204
43205         Reviewed by Adele.
43206
43207         - eliminate custom highlight methods from WebCoreFrameBridge
43208
43209         * page/Chrome.cpp:
43210         (WebCore::ChromeClient::customHighlightRect): Added.
43211         (WebCore::ChromeClient::paintCustomHighlight): Added.
43212         * page/ChromeClient.h: Added custom highlight functions.
43213         * page/Frame.h: Removed custom highlight functions.
43214         * page/mac/FrameMac.mm: Ditto.
43215         * page/mac/WebCoreFrameBridge.h: Removed custom highlight methods.
43216         * rendering/InlineTextBox.cpp:
43217         (WebCore::InlineTextBox::paintCustomHighlight): Changed code to use
43218         the ChromeClient instead of WebCoreFrameBridge to do the custom highlight.
43219         * rendering/RenderBox.cpp:
43220         (WebCore::RenderBox::paintCustomHighlight): Ditto.
43221         * rendering/RootInlineBox.cpp:
43222         (WebCore::RootInlineBox::addHighlightOverflow): Ditto.
43223         (WebCore::RootInlineBox::paintCustomHighlight): Ditto.
43224
43225 2008-03-07  Stephanie Lewis  <slewis@apple.com>
43226
43227         Reviewed by Oliver.
43228
43229         Fix Windows build.
43230
43231         * platform/graphics/cg/ImageBufferCG.cpp:
43232         (WebCore::ImageBuffer::toDataURL):
43233
43234 2008-03-07  David D. Kilzer  <ddkilzer@apple.com>
43235
43236         Unify concept of enabling Netscape Plug-in API (NPAPI).
43237
43238         Reviewed by Darin.
43239
43240         No test cases since there is no change in functionality.
43241
43242         * DerivedSources.make: Added check for ENABLE_NETSCAPE_PLUGIN_API macro.
43243         If defined as "1", add WebCore.NPAPI.exp to WEBCORE_EXPORT_DEPENDENCIES.
43244         * WebCore.NPAPI.exp: Added.
43245         * WebCore.base.exp: Moved exported NPAPI methods to WebCore.NPAPI.exp.
43246         * WebCore.xcodeproj/project.pbxproj: Removed changes in r30826 (except
43247         comments) since we now handle exported NPAPI methods via DerivedSources.make.
43248
43249         * config.h: Removed USE(NPOBJECT) since we now use ENABLE(NETSCAPE_PLUGIN_API) as
43250         defined in Platform.h.
43251
43252         * bindings/objc/DOM.mm: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
43253         (-[DOMElement _NPObject]):
43254
43255         * bridge/NP_jsobject.cpp: Replaced !PLATFORM(DARWIN) || !defined(__LP64__) with
43256         ENABLE(NETSCAPE_PLUGIN_API).
43257         * bridge/NP_jsobject.h: Ditto.
43258         * bridge/c/c_class.cpp: Ditto.
43259         * bridge/c/c_class.h: Ditto.
43260         * bridge/c/c_instance.cpp: Ditto.
43261         * bridge/c/c_instance.h: Ditto.
43262         * bridge/c/c_runtime.cpp: Ditto.
43263         * bridge/c/c_runtime.h: Ditto.
43264         * bridge/c/c_utility.cpp: Ditto.
43265         * bridge/c/c_utility.h: Ditto.
43266         * bridge/npruntime.cpp: Ditto.
43267         * bridge/npruntime_impl.h: Ditto.
43268         * bridge/npruntime_priv.h: Ditto.
43269         * bridge/runtime.cpp: Ditto.
43270         (KJS::Bindings::Instance::createBindingForLanguageInstance):
43271
43272         * html/HTMLPlugInElement.cpp: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
43273         (WebCore::HTMLPlugInElement::HTMLPlugInElement):
43274         (WebCore::HTMLPlugInElement::~HTMLPlugInElement):
43275         * html/HTMLPlugInElement.h: Ditto.
43276
43277         * page/Frame.cpp: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
43278         (WebCore::Frame::clearScriptObjects):
43279         (WebCore::FramePrivate::FramePrivate): Also added #if ENABLE(NETSCAPE_PLUGIN_API)
43280         guard around m_windowScriptNPObject.
43281         * page/Frame.h: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
43282         * page/FramePrivate.h: Added #if ENABLE(NETSCAPE_PLUGIN_API) guard around
43283         m_windowScriptNPObject.
43284         * page/mac/FrameMac.mm: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
43285         (WebCore::Frame::createScriptInstanceForWidget):
43286
43287 2008-03-07  Alexey Proskuryakov  <ap@webkit.org>
43288
43289         Reviewed by Darin.
43290
43291         REGRESSION: Korean decoding doesn't support extended EUC-KR.
43292
43293         Test: fast/encoding/char-decoding.html
43294
43295         * platform/text/TextCodecICU.cpp:
43296         (WebCore::TextCodecICU::registerExtendedEncodingNames): Untangle the system of duplicate ICU
43297         encoding names by manually registering windows-939-2000, and mapping all other related
43298         encodings to it.
43299
43300 2008-03-07  Dan Bernstein  <mitz@apple.com>
43301
43302         Reviewed by Stephanie.
43303
43304         - try to fix leaks seen on Tiger after r30840
43305
43306         * css/CSSStyleSelector.cpp:
43307         (WebCore::CSSStyleSelector::~CSSStyleSelector): Use the default operator
43308         delete, rather than arena delete, to deallocate the root default style.
43309
43310 2008-03-07  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
43311
43312         Reviewed by Alp Toker.
43313
43314         http://bugs.webkit.org/show_bug.cgi?id=17681
43315         GtkLauncher fails to render an element with position: fixed
43316
43317         Implement the required parts of PlatformScreenGtk.
43318
43319         * ChangeLog:
43320         * platform/gtk/PlatformScreenGtk.cpp:
43321         (WebCore::screenDepth):
43322         (WebCore::screenIsMonochrome):
43323         (WebCore::screenRect):
43324
43325 2008-03-07  Oliver Hunt  <oliver@apple.com>
43326
43327         Reviewed by Darin Adler.
43328
43329         Bug 16610: <canvas> restore() removes path segments created before it
43330
43331         The problem here is that WebKit stored the Path as part of the state, so
43332         restore would incorrectly lose changes made to the canvas path.  To match
43333         Firefox and HTML5 we make two real changes:
43334           * Move the context path from the state object directly onto the context.
43335             This is responsible for all the changes to the path manipulation functions
43336           * Add transform tracking to each state -- this is needed to correctly transform
43337             the current path when restore()-ing to a prior state.
43338
43339         Test: fast/canvas/canvas-save-restore-with-path.html
43340
43341         * html/CanvasRenderingContext2D.cpp:
43342         (WebCore::CanvasRenderingContext2D::restore):
43343         (WebCore::CanvasRenderingContext2D::scale):
43344         (WebCore::CanvasRenderingContext2D::rotate):
43345         (WebCore::CanvasRenderingContext2D::translate):
43346         (WebCore::CanvasRenderingContext2D::transform):
43347         (WebCore::CanvasRenderingContext2D::beginPath):
43348         (WebCore::CanvasRenderingContext2D::closePath):
43349         (WebCore::CanvasRenderingContext2D::moveTo):
43350         (WebCore::CanvasRenderingContext2D::lineTo):
43351         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
43352         (WebCore::CanvasRenderingContext2D::arcTo):
43353         (WebCore::CanvasRenderingContext2D::arc):
43354         (WebCore::CanvasRenderingContext2D::rect):
43355         (WebCore::CanvasRenderingContext2D::clearPathForDashboardBackwardCompatibilityMode):
43356         (WebCore::CanvasRenderingContext2D::fill):
43357         (WebCore::CanvasRenderingContext2D::stroke):
43358         (WebCore::CanvasRenderingContext2D::clip):
43359         (WebCore::CanvasRenderingContext2D::isPointInPath):
43360         * html/CanvasRenderingContext2D.h:
43361
43362 2008-03-07  Oliver Hunt  <oliver@apple.com>
43363
43364         Reviewed by Ada.
43365
43366         Fix for crash caused by FrameLoader incorrectly assuming it has
43367         a RenderWidget
43368
43369         In some circumstances an application embedding a WebView may 
43370         choose to prevent a webview from loading a resource.  If that
43371         resource was requested by an <object> element then we may 
43372         fallback to different content which may not produce a RenderWidget.
43373         Unfortunately FrameLoader::loadSubframe was assuming that if a
43374         renderer was produced it would always be a RenderWidget, and arbitrarily
43375         performed what could be an incorrect cast.  This could then lead to
43376         a crash.
43377
43378         We currently don't have anyway of making a test for this.
43379
43380         * loader/FrameLoader.cpp:
43381         (WebCore::FrameLoader::loadSubframe):
43382
43383 2008-03-07  Samuel Weinig  <sam@webkit.org>
43384
43385         Reviewed by Oliver Hunt.
43386
43387         Fix for http://bugs.webkit.org/show_bug.cgi?id=16673
43388         <canvas> lacks toDataURL()
43389
43390         Tests: fast/canvas/toDataURL-noData.html
43391                fast/canvas/toDataURL-supportedTypes.html
43392
43393         * html/CanvasRenderingContext2D.cpp:
43394         (WebCore::CanvasRenderingContext2D::printSecurityExceptionMessage): Make message non-global.
43395         * html/HTMLCanvasElement.cpp:
43396         (WebCore::HTMLCanvasElement::printSecurityExceptionMessage): Log error message indicating that toDataURL has
43397         been called on a tainted canvas. 
43398         (WebCore::HTMLCanvasElement::toDataURL): This does the tainted canvas check, ensures that the canvas has pixel
43399         data, checks to see if the MIME type is supported.  Unsupported MIME types and the null string (which is made
43400         by passing no argument/null/undefined in JavaScript) are treated as being PNG, as per the spec.  The actual 
43401         toDataURL logic is actually done in the ImageBuffer class.
43402         * html/HTMLCanvasElement.h: Add function declarations.
43403         * html/HTMLCanvasElement.idl: Add function declaration.
43404
43405         * platform/MIMETypeRegistry.cpp:
43406         (WebCore::initializeSupportedImageMIMETypes):
43407         (WebCore::initializeSupportedImageMIMETypesForEncoding):
43408         (WebCore::initializeSupportedJavaScriptMIMETypes):
43409         (WebCore::initializeSupportedNonImageMimeTypes):
43410         (WebCore::initializeSupportedMediaMIMETypes):
43411         (WebCore::initializeMIMETypeRegistry):
43412         (WebCore::MIMETypeRegistry::getMIMETypeForPath):
43413         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
43414         (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
43415         (WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
43416         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
43417         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
43418         (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
43419         (WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
43420         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
43421         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
43422         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypesForEncoding):
43423         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
43424         (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
43425         * platform/MIMETypeRegistry.h:
43426         Clean up and add new supportedImageMIMETypesForEncoding set which contains the set of
43427         MIME types the platform knows how to encode. Currently only implemented for CG and Qt.
43428
43429         * platform/graphics/ImageBuffer.h: Add toDataURL method.
43430         * platform/graphics/cairo/ImageBufferCairo.cpp:
43431         (WebCore::ImageBuffer::toDataURL): Add stub.
43432         * platform/graphics/cg/ImageBufferCG.cpp:
43433         (WebCore::ImageBuffer::create):
43434         (WebCore::ImageBuffer::getImageData):
43435         (WebCore::ImageBuffer::putImageData):
43436         (WebCore::ImageBuffer::toDataURL):
43437         Converts the current context to a data: url of the specified MIME type.  This method
43438         unfortunately has to flip the context, resulting in less than optimal code.
43439
43440         * platform/graphics/qt/ImageBufferQt.cpp:
43441         (WebCore::ImageBuffer::toDataURL): Add stub.
43442         * platform/graphics/wx/ImageBufferWx.cpp:
43443         (WebCore::ImageBuffer::toDataURL): Add stub.
43444
43445 2008-03-07  Steve Falkenburg  <sfalken@apple.com>
43446
43447         Build fix.
43448
43449         * WebCore.vcproj/WebCore.vcproj:
43450
43451 2008-03-07  Brent Fulgham  <bfulgham@gmail.com>
43452
43453         Reviewed by Mark Rowe.
43454
43455         Correct build intermediary output
43456         (http://bugs.webkit.org/show_bug.cgi?id=17713)
43457
43458         * WebCore/WebCore.vcproj:  Correct intermediary paths
43459
43460 2008-03-07  Brent Fulgham  <bfulgham@gmail.com>
43461
43462         Reviewed by Steve Falkenburg.
43463
43464         Add Cairo build requirements to WebCore.vcproj under a new
43465         set of targets.  Exclude Cairo elements from normal CG build.
43466         Exclude CG elements from Cairo builds.
43467         (http://bugs.webkit.org/show_bug.cgi?id=17300)
43468
43469         * WebCore.vcproj/WebCore.vcproj:
43470         * WebCore.vcproj/webcore.vsprops: Added.
43471
43472 2008-03-07  Darin Adler  <darin@apple.com>
43473
43474         Reviewed by Adam.
43475
43476         - eliminated WebCoreFrameBridge runOpenPanel
43477
43478         * page/ChromeClient.h: Added runOpenPanel function.
43479         * page/mac/ChromeMac.mm:
43480         (WebCore::ChromeClient::runOpenPanel): Added.
43481         * platform/FileChooser.cpp:
43482         (WebCore::FileChooser::FileChooser): Moved this here. It's no longer platform-specific.
43483         Also start the refcount at 1.
43484         (WebCore::FileChooser::create): Added adoptRef since the refcount no starts at one.
43485         (WebCore::FileChooser::~FileChooser): Moved here. No longer platform-specific.
43486         * platform/FileChooser.h: Removed m_controller, which was Macintosh-specific.
43487         * platform/gtk/FileChooserGtk.cpp: Removed FileChooser constructor and destructor,
43488         since they are no longer platform-specific.
43489         * platform/qt/FileChooserQt.cpp: Ditto.
43490         * platform/win/FileChooserWin.cpp: Ditto.
43491         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
43492         * platform/mac/FileChooserMac.mm:
43493         (WebCore::FileChooser::openFileChooser): Call the chrome client instead of the
43494         bridge to run the open panel. Allows us to get rid of the WebCoreOpenPanelController
43495         class and m_controller data member and move the cosntrutor/destructor to platform-
43496         independent code.
43497
43498 2008-03-07  Adam Roben  <aroben@apple.com>
43499
43500         Add JavaScriptDebugServer
43501
43502         This class is a singleton which allows one or more
43503         JavaScriptDebugListeners to receive callbacks during JavaScript
43504         execution.
43505
43506         Right now all listeners receive callbacks for all Pages in the
43507         process. Eventually we will want to support listeners registering for
43508         callbacks for specific Pages (e.g., the Inspector will want to listen
43509         for execution in just the Page it's inspecting).
43510
43511         Pages notify the JavaScriptDebugServer when they are created so that
43512         it can install itself as the Page's debugger.
43513
43514         Reviewed by Darin.
43515
43516         * GNUMakefile.am: Added new files to project.
43517         * WebCore.pro: Ditto.
43518         * WebCore.vcproj/WebCore.vcproj: Ditto.
43519         * WebCore.xcodeproj/project.pbxproj: Ditto.
43520         * WebCoreSources.bkl: Ditto.
43521         * page/JavaScriptDebugListener.h: Added.
43522         * page/JavaScriptDebugServer.cpp: Added.
43523         (WebCore::toFrame):
43524         (WebCore::JavaScriptDebugServer::shared):
43525         (WebCore::JavaScriptDebugServer::JavaScriptDebugServer):
43526         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
43527         (WebCore::JavaScriptDebugServer::addListener): Registers as the
43528         debugger for all Pages if we're adding our first listener.
43529         (WebCore::JavaScriptDebugServer::removeListener): Deregisters as the
43530         debugger for all Pages if we're removing our last listner.
43531         (WebCore::JavaScriptDebugServer::pageCreated): Registers as the
43532         debugger for the newly created Page if we have any listeners.
43533         (WebCore::dispatchDidParseSource): Helper function.
43534         (WebCore::dispatchFailedToParseSource): Ditto.
43535         (WebCore::JavaScriptDebugServer::sourceParsed): Call
43536         dispatchDidParseSource or dispatchFailedToParseSource depending on
43537         whether there was an error or not.
43538         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Calls
43539         the passed-in JavaScriptExecutionCallback on each listener, guarding
43540         against re-entry.
43541         (WebCore::JavaScriptDebugServer::callEvent): Dispatch didEnterCallFrame.
43542         (WebCore::JavaScriptDebugServer::atStatement): Dispatch willExecuteStatement.
43543         (WebCore::JavaScriptDebugServer::returnEvent): Dispatch willLeaveCallFrame.
43544         (WebCore::JavaScriptDebugServer::exception): Dispatch exceptionWasRaised.
43545         * page/JavaScriptDebugServer.h: Added.
43546         * page/Page.cpp:
43547         (WebCore::Page::Page): Tell the shared JavaScriptDebugServer we were
43548         created so it can register as our debugger if needed.
43549
43550 2008-03-07  Darin Adler  <darin@apple.com>
43551
43552         Reviewed by Brady.
43553
43554         - fix a theoretical problem with the visited-link hash table by avoiding collision
43555           with the special "deleted" value
43556         - improve efficiency of with the visited-link hash table by not hashing twice
43557
43558         * page/PageGroup.cpp:
43559         (WebCore::avoidDeletedValue): Added. Makes sure we never try to use the "all ones"
43560         value, since the hash table uses that for deleted hash table entries.
43561         (WebCore::PageGroup::isLinkVisited): Call avoidDeletedValue before using the hash
43562         value with the HashSet.
43563         (WebCore::PageGroup::addVisitedLink): Ditto.
43564
43565         * page/PageGroup.h: Added a new hash function, AlreadyHashed, for unsigned integer
43566         values. This assumes that the value is already a hash value, and doesn't try to
43567         hash it again. Used this for m_visitedLinkHashes.
43568
43569 2008-03-07  Simon Hausmann  <hausmann@webkit.org>
43570
43571         Fix the Qt build.
43572
43573         * WebCore.pro:
43574
43575 2008-03-06  Sam Weinig  <sam@webkit.org> with a little help from Oliver Hunt  <oliver@apple.com>
43576
43577         Reviewed by Mitz.
43578
43579         Implement the HTML5 canvas tainting rules to prevent potential data leakage
43580
43581         Added originClean to HTMLCanvasElement and CanvasPattern
43582         to track whether a canvas (or pattern) is tainted by remote
43583         data.
43584         Use originClean flag to determine whether getImageData should
43585         return, well, image data.
43586
43587         Test: http/tests/security/canvas-remote-read-remote-image.html
43588
43589         * html/CanvasPattern.cpp:
43590         (WebCore::CanvasPattern::CanvasPattern):
43591         * html/CanvasPattern.h:
43592         * html/CanvasRenderingContext2D.cpp:
43593         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
43594         (WebCore::CanvasRenderingContext2D::setFillStyle):
43595         (WebCore::CanvasRenderingContext2D::checkOrigin):
43596         (WebCore::CanvasRenderingContext2D::drawImage):
43597         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
43598         (WebCore::CanvasRenderingContext2D::createPattern):
43599         (WebCore::CanvasRenderingContext2D::printSecurityExceptionMessage):
43600         (WebCore::CanvasRenderingContext2D::getImageData):
43601         * html/CanvasRenderingContext2D.h:
43602         * html/HTMLCanvasElement.cpp:
43603         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
43604         * html/HTMLCanvasElement.h:
43605         (WebCore::HTMLCanvasElement::setOriginTainted):
43606         (WebCore::HTMLCanvasElement::originClean):
43607
43608 2008-03-06  Anders Carlsson  <andersca@apple.com>
43609
43610         Reviewed by Jon.
43611
43612         Templatize the JNI call code to reduce the amount of code that has
43613         to be duplicated.
43614
43615         * bridge/jni/jni_class.cpp:
43616         (JavaClass::JavaClass):
43617         * bridge/jni/jni_instance.cpp:
43618         (JavaInstance::stringValue):
43619         (JavaInstance::numberValue):
43620         (JavaInstance::booleanValue):
43621         (JavaInstance::invokeMethod):
43622         * bridge/jni/jni_jsobject.cpp:
43623         (JavaJSObject::convertJObjectToValue):
43624         * bridge/jni/jni_runtime.cpp:
43625         (JavaField::JavaField):
43626         (JavaMethod::JavaMethod):
43627         * bridge/jni/jni_utility.cpp:
43628         * bridge/jni/jni_utility.h:
43629         (KJS::Bindings::):
43630         (KJS::Bindings::callJNIMethodIDA):
43631         (KJS::Bindings::callJNIMethodV):
43632         (KJS::Bindings::callJNIMethod):
43633         (KJS::Bindings::callJNIStaticMethod):
43634
43635 2008-03-06  Darin Adler  <darin@apple.com>
43636
43637         Reviewed by Mitz.
43638
43639         - fix regression test failures from the visited-link change
43640
43641         * WebCore.base.exp: Export PageGroup::setShouldTrackVisitedLinks.
43642         * page/PageGroup.cpp:
43643         (WebCore::PageGroup::addVisitedLink): Do nothing and return early
43644         if shouldTrackVisitedLinks is false.
43645         (WebCore::PageGroup::removeVisitedLinks): Reset m_visitedLinksPopulated
43646         so the next time a link is queried this will be populated from history.
43647         (WebCore::PageGroup::setShouldTrackVisitedLinks): Added.
43648         * page/PageGroup.h: Added setShouldTrackVisitedLinks. This is global
43649         for now, but it would be better if it was per-page-group instead.
43650
43651 2008-03-06  Adele Peterson  <adele@apple.com>
43652
43653         Reviewed by Darin.
43654
43655         Fixes for for <rdar://problem/5785892> Implement activeElement attribute for HTMLDocument (HTML5)
43656         and <rdar://problem/5785895> Implement hasFocus() for HTMLDocument (HTML5)
43657
43658         Tests: fast/dom/HTMLDocument/activeElement.html
43659                fast/dom/HTMLDocument/hasFocus.html
43660
43661         * html/HTMLDocument.cpp:
43662         (WebCore::HTMLDocument::activeElement): Added. Returns the focused element, or the body element if nothing's focused.
43663         (WebCore::HTMLDocument::hasFocus): Added. Returns whether or not the document has focus (inclusive of sub-frames).
43664         * html/HTMLDocument.h: Added methods for activeElement and hasFocus.
43665         * html/HTMLDocument.idl: Added definitions for activeElement and hasFocus.
43666
43667 2008-03-06  Dan Bernstein  <mitz@apple.com>
43668
43669         Reviewed by Darin Adler.
43670
43671         - fix <rdar://problem/5741981> 154008 WebKit: Some asian language font glyphs are not shown (in Mail and Entourage)
43672
43673         Test: fast/text/soft-hyphen-3.html
43674
43675         * rendering/bidi.cpp:
43676         (WebCore::checkMidpoints):
43677         (WebCore::RenderBlock::findNextLineBreak): Made 'pos' unsigned. Made the
43678         midpoint after a hyphen always be a valid iterator, not allowing an
43679         offset past the end of a text node. Changed the check for consecutive
43680         soft hyphens to account for that.
43681
43682 2008-03-06  Darin Adler  <darin@apple.com>
43683
43684         - try to fix Wx build
43685
43686         * WebCoreSources.bkl: Added PageGroup.cpp.
43687
43688 2008-03-06  Darin Adler  <darin@apple.com>
43689
43690         - fix some builds
43691
43692         * GNUmakefile.am: Added PageGroup.cpp.
43693         * WebCore.base.exp: Removed WebCoreHistory.
43694         * WebCore.pro: Added PageGroup.cpp.
43695
43696 2008-03-06  Alexey Proskuryakov  <ap@webkit.org>
43697
43698         Reviewed by Darin.
43699
43700         <rdar://problem/5687269> Need to create a Collator abstraction for WebCore and JavaScriptCore
43701         
43702         * ForwardingHeaders/wtf/unicode/Collator.h: Added.
43703         * xml/XSLTUnicodeSort.cpp:
43704         (WebCore::xsltUnicodeSortFunction):
43705         * xml/XSLTUnicodeSort.h:
43706
43707 2008-03-06  Darin Adler  <darin@apple.com>
43708
43709         Reviewed by Mitz.
43710
43711         - fix http://bugs.webkit.org/show_bug.cgi?id=17526
43712           REGRESSION: iframes are added to Safari's History menu
43713           by separating the visited link machinery from global history
43714
43715         This should also make page loading faster due to more efficient visited link coloring.
43716
43717         * WebCore.base.exp: Updated.
43718         * WebCore.vcproj/WebCore.vcproj: Added PageGroup.h/cpp, removed GlobalHistory.h/cpp.
43719         * WebCore.xcodeproj/project.pbxproj: Ditto. Also removed WebCoreHistory.h/m.
43720
43721         * css/CSSStyleSelector.cpp: Updated includes.
43722         (WebCore::CSSStyleSelector::initElementAndPseudoState): Eliminated code to set
43723         currentEncodedURL.
43724         (WebCore::checkPseudoState): Moved most of the code inside a new
43725         PageGroup::isLinkVisited function.
43726         (WebCore::CSSStyleSelector::canShareStyleWithElement): Tightened code a bit by using
43727         references and only getting colors when needed.
43728         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
43729         * css/CSSStyleSelector.h: Removed EncodedURL, m_encodedURL, and setEncodedURL.
43730
43731         * dom/Document.cpp:
43732         (WebCore::Document::attach): Removed call to setEncodedURL.
43733         (WebCore::Document::setURL): Ditto.
43734         (WebCore::Document::recalcStyleSelector): Ditto.
43735
43736         * loader/FrameLoader.cpp:
43737         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Changed code to use
43738         early exit idiom to be a little more readable.
43739         (WebCore::FrameLoader::urlsMatchItem): Change to use a reference for slightly
43740         better efficiency.
43741         (WebCore::FrameLoader::goToItem): Use early exit idiom to be a little more
43742         readable.
43743         (WebCore::FrameLoader::updateHistoryForStandardLoad): Moved history code back
43744         in here and got rid of the helper function updateGlobalHistory, restoring the
43745         logic before r30549. Also added a call to the new addVisitedLink function.
43746         (WebCore::FrameLoader::updateHistoryForClientRedirect): Added code to call
43747         addVisitedLink here.
43748         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation): Removed comment.
43749         (WebCore::FrameLoader::updateHistoryForReload): Removed call to
43750         updateGlobalHistory; we can just go without updating global history or
43751         visited links here, at least for now, since it's not clear that a reload
43752         is a "history event".
43753         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Moved
43754         history code back where it was, and added the call to addVisitedLink, just
43755         as in updateHistoryForStandardLoad above.
43756         * loader/FrameLoader.h: Removed updateGlobalHistory function.
43757
43758         * page/Chrome.cpp:
43759         (WebCore::ChromeClient::populateVisitedLinks): Added. Empty placeholder so we
43760         don't have to implement this for every port all at once.
43761         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): Changed to use the
43762         new PageGroup class.
43763         * page/ChromeClient.h: Added populateVisitedLinks function, used to fill the
43764         visited links set from the global history at application startup time.
43765
43766         * page/FrameTree.cpp:
43767         (WebCore::FrameTree::find): Updated to use the new PageGroup class.
43768
43769         * page/GlobalHistory.h: Removed.
43770         * page/win/GlobalHistoryWin.cpp: Removed.
43771         * page/mac/GlobalHistoryMac.mm: Removed.
43772         * platform/mac/WebCoreHistory.h: Removed.
43773         * platform/mac/WebCoreHistory.m: Removed.
43774         * platform/win/WebCoreHistory.cpp: Removed.
43775         * platform/win/WebCoreHistory.h: Removed.
43776
43777         * page/Page.cpp:
43778         (WebCore::Page::Page): Set m_group to 0.
43779         (WebCore::Page::setGroupName): Set up m_group. If the page is not in any
43780         group, set it to 0 for now to postpone the cost of creating a group.
43781         (WebCore::Page::initGroup): Added. Sets m_group to point to a single-page
43782         group; used when getting a group.
43783         (WebCore::Page::removeAllVisitedLinks): Added. Calls removeVisitedLinks
43784         on all page groups.
43785         * page/Page.h: Moved enums inside the WebCore namespace. Removed the
43786         frameNamespace function and instead added the group and groupPtr functions.
43787
43788         * page/PageGroup.cpp: Added. Contains all the visited code from the
43789         CSSStyleSelector in the isVisitedLink function, but more efficient because
43790         we don't allocate memory for the buffer.
43791         * page/PageGroup.h: Added.
43792
43793         * platform/gtk/TemporaryLinkStubs.cpp: Removed historyContains.
43794         * platform/qt/TemporaryLinkStubs.cpp: Removed unneeded include.
43795         * platform/wx/TemporaryLinkStubs.cpp: Removed historyContains.
43796
43797 2008-03-06  Mark Rowe  <mrowe@apple.com>
43798
43799         Fix 64-bit Mac build.
43800
43801         * WebCore.xcodeproj/project.pbxproj:  Exclude _NPN symbols from the exports list as they
43802         are compiled out of 64-bit builds.
43803
43804 2008-03-06  Mark Rowe  <mrowe@apple.com>
43805
43806         Leopard build fix.
43807
43808         * WebCore.base.exp:
43809
43810 2008-03-05  Kevin Ollivier  <kevino@theolliviers.com>
43811
43812         Fix the wx build after the bindings move.
43813
43814         * WebCoreSources.bkl:
43815         * webcore-base.bkl:
43816         * webcore-wx.bkl:
43817
43818 2008-03-05  Dan Bernstein  <mitz@apple.com>
43819
43820         Reviewed by Adele Peterson.
43821
43822         - fix "background-position: inherit"
43823
43824         * css/CSSStyleSelector.cpp:
43825         Made HANDLE_MULTILAYER_INHERIT_AND_INITIAL fall through and added
43826         a return statement in HANDLE_MULTILAYER_VALUE. Also removed an unused
43827         macro.
43828
43829 2008-03-05  Alp Toker  <alp@atoker.com>
43830
43831         Add a missing make dependency for derived sources to improve
43832         autotools build dependency tracking.
43833
43834         Issue spotted by Ori Bernstein.
43835
43836         * GNUmakefile.am:
43837
43838 2008-03-05  Alp Toker  <alp@atoker.com>
43839
43840         GTK+ build fix for breakage introduced in r30800.
43841
43842         Track moved bridge sources from JavaScriptCore to WebCore.
43843
43844         * GNUmakefile.am:
43845
43846 2008-03-05  Justin Garcia  <justin.garcia@apple.com>
43847
43848         Reviewed by Darin.
43849
43850         One part of fix for:
43851         <rdar://problem/5780697> Copying content with percentage based rules in a style sheet will cause fidelity issues
43852
43853         * editing/markup.cpp:
43854         (WebCore::appendStartMarkup): Styles from matched rules should take precedence over those in
43855         inline style declarations, not the other way around. 
43856
43857 2008-03-05  Anders Carlsson  <andersca@apple.com>
43858
43859         Reviewed by Darin.
43860
43861         Move JNI specific code from runtime_root over to jni_jsobject, where it is used.
43862
43863         * bridge/jni/jni_jsobject.cpp:
43864         (completedJavaScriptAccess):
43865         (initializeJavaScriptAccessLock):
43866         (lockJavaScriptAccess):
43867         (unlockJavaScriptAccess):
43868         (dispatchToJavaScriptThread):
43869         (performJavaScriptAccess):
43870         (JavaJSObject::initializeJNIThreading):
43871         (isJavaScriptThread):
43872         (JavaJSObject::invoke):
43873         * bridge/jni/jni_jsobject.h:
43874         * bridge/runtime_root.cpp:
43875         * bridge/runtime_root.h:
43876         * page/mac/WebCoreFrameBridge.mm:
43877         (-[WebCoreFrameBridge init]):
43878
43879 2008-03-05  Darin Adler  <darin@apple.com>
43880
43881         Reviewed by Sam.
43882
43883         - add functions giving offsets within a KURL, slated to replace the
43884           EncodedURL object in CSSStyleSelector (in a future "visited link" change)
43885         - changed all KURL data members names to use the traditional m_ prefix
43886         - initialize all members to 0 in invalid KURLs rather than having all
43887           functions check m_isValid
43888
43889         * platform/KURL.cpp:
43890         (WebCore::KURL::invalidate): Added. Initializes all the fields except for
43891         m_string to the "invalid" values. For use in the empty constructor and
43892         in the init and parse functions.
43893         (WebCore::KURL::init): Tweaked comments. Changed all code paths that return
43894         early to use the invalidate() function. Updated for member variable name
43895         changes.
43896         (WebCore::KURL::hasPath): Updated for member variable name changes.
43897         Remove now-unneeded check of m_isValid.
43898         (WebCore::KURL::lastPathComponent): Ditto.
43899         (WebCore::KURL::protocol): Ditto.
43900         (WebCore::KURL::host): Ditto.
43901         (WebCore::KURL::port): Ditto.
43902         (WebCore::KURL::pass): Ditto.
43903         (WebCore::KURL::user): Ditto.
43904         (WebCore::KURL::ref): Ditto.
43905         (WebCore::KURL::hasRef): Ditto.
43906         (WebCore::KURL::protocolIs): Ditto.
43907         (WebCore::KURL::query): Ditto.
43908         (WebCore::KURL::path): Ditto.
43909         (WebCore::KURL::setProtocol): Ditto.
43910         (WebCore::KURL::setHost): Ditto.
43911         (WebCore::KURL::setPort): Ditto.
43912         (WebCore::KURL::setHostAndPort): Ditto.
43913         (WebCore::KURL::setUser): Ditto.
43914         (WebCore::KURL::setPass): Ditto.
43915         (WebCore::KURL::setRef): Ditto.
43916         (WebCore::KURL::setQuery): Ditto.
43917         (WebCore::KURL::setPath): Ditto.
43918         (WebCore::KURL::prettyURL): Ditto.
43919         (WebCore::copyPathRemovingDots): Removed braces to match our code style.
43920         (WebCore::KURL::parse): Changed all code paths that return early to use
43921         the invalidate function. Moved code to set m_isValid to true to the very
43922         end of the function. Removed braces to match our code style. Removed an
43923         extra copy of the path/query/fragment code (there were two identical copies
43924         in the two sides of an if statement). Removed some commented-out code.
43925         Reversed an if statment. Added code to set the new m_pathAfterLastSlash
43926         field. Updated for member variable name changes.
43927         (WebCore::equalIgnoringRef): Updated for member variable name changes.
43928         (WebCore::KURL::isHierarchical): Ditto.
43929
43930         * platform/KURL.h: Added a FIXME about ref vs. fragment. Made the empty
43931         constructor inline and called the new invalidate function. Added new
43932         pathStart, pathEnd, and pathAfterLastSlash functions, for use in the
43933         new visited link code. Added an invalidate function. Renamed all the
43934         data members to use the m_ prefix.
43935
43936         * WebCore.base.exp: Updated.
43937
43938 2008-03-05  Anders Carlsson  <andersca@apple.com>
43939
43940         Reviewed by Sam.
43941
43942         * WebCore.xcodeproj/project.pbxproj:
43943         Change jni_jsobject.cpp to be Obj-C++ for now. The plan is to merge 
43944         this with jni_objc.mm and create jni_jsobject.mm.
43945         
43946         * bridge/jni/jni_jsobject.cpp:
43947         (createRootObject):
43948         Move createRootObject here from WebCoreFrameBridge.
43949         
43950         (JavaJSObject::createNative):
43951         Call the newly added createRootObject function.
43952         
43953         * bridge/runtime_root.cpp:
43954         (KJS::Bindings::RootObject::initializeJNIThreading):
43955         * bridge/runtime_root.h:
43956         setCreateRootObject no longer takes a root object, rename it to initializeJNIThreading.
43957
43958         * page/mac/FrameMac.mm:
43959         (WebCore::Frame::createScriptInstanceForWidget):
43960         Just call Frame::createRootObject here.
43961         
43962         * page/mac/WebCoreFrameBridge.mm:
43963         (-[WebCoreFrameBridge init]):
43964         Call initializeJNIThreading.
43965
43966 2008-03-05  Anders Carlsson  <andersca@apple.com>
43967
43968         Reviewed by Sam.
43969
43970         Change some static class variables to be regular static variables,
43971         making it easier to move the chunk of mac-specific code out of runtime_root.[cpp|h]
43972
43973         * bridge/runtime_root.cpp:
43974         (KJS::Bindings::completedJavaScriptAccess):
43975         (KJS::Bindings::RootObject::dispatchToJavaScriptThread):
43976         (KJS::Bindings::performJavaScriptAccess):
43977         (KJS::Bindings::RootObject::createRootObject):
43978         (KJS::Bindings::RootObject::runLoop):
43979         (KJS::Bindings::RootObject::setCreateRootObject):
43980         * bridge/runtime_root.h:
43981
43982 2008-03-05  Brent Fulgham <bfulgham@gmail.com>
43983
43984         Reviewed by Adam Roben.
43985
43986         Modify source files to use the USE(SAFARI_THEME) macro, rather than
43987         USE_SAFARI_THEME.  (http://bugs.webkit.org/show_bug.cgi?id=17683)
43988
43989         * WebCore/platform/win/PlatformScrollBarSafari.cpp
43990         * WebCore/rendering/RenderThemeSafari.cpp
43991         * WebCore/rendering/RenderThemeSafari.h
43992         * config.h: Move definition of WTF_USE_SAFARI_THEME here 
43993
43994 2008-03-05  Brady Eidson  <beidson@apple.com>
43995
43996         Reviewed by Alexey and Mark Rowe
43997
43998         Fix for <rdar://problem/5778247> - Reproducible crash on storage/execute-sql-args.html
43999
44000         DatabaseThread::unscheduleDatabaseTasks() manually filters through a MessageQueue,
44001         removing particular items for Databases that were shutting down.
44002
44003         This filtering operation is not atomic, and therefore causes a race condition with the
44004         database thread waking up and reading from the message queue.  
44005
44006         The end result was an attempt to dereference a null DatabaseTask.  Timing-wise, this never
44007         seemed to happen in a debug build, otherwise an assertion would've caught it.  Replacing that
44008         assertion with a crash in a release build is what revealed this bug.
44009
44010         The fix for the above symptom was entirely in WTF::MessageQueue in JSCore.  With this fix in 
44011         place, another crash popped up in the layout tests that was related to dereferencing a 
44012         deallocated object - simply because SQLTransaction had a raw pointer to it's Database object 
44013         when it needed to be a ref pointer.
44014
44015         * storage/SQLTransaction.cpp:
44016         (WebCore::SQLTransaction::runCurrentStatement):
44017         * storage/SQLTransaction.h: Change m_database to be a RefPtr
44018         (WebCore::SQLTransaction::database):
44019
44020 2008-03-05  Mark Rowe  <mrowe@apple.com>
44021
44022         Build fix.
44023
44024         * WebCore.base.exp:  Remove symbol that no longer exists from the exports file.
44025
44026 2008-03-05  Adam Roben  <aroben@apple.com>
44027
44028         Export a header/symbol for WebKit
44029
44030         Reviewed by Kevin M.
44031
44032         * WebCore.base.exp:
44033         * WebCore.xcodeproj/project.pbxproj:
44034
44035 2008-03-05  Adam Roben  <aroben@apple.com>
44036
44037         Move WebCoreScriptDebugger up to WebKit
44038
44039         Reviewed by Darin.
44040
44041         * WebCore.base.exp: Exported some functions used by
44042         WebCoreScriptDebugger, and sorted the list.
44043         * WebCore.xcodeproj/project.pbxproj: Removed
44044         WebCoreScriptDebugger.{h,mm} from the project and marked
44045         a few headers private so that WebKit can use them.
44046         * page/mac/WebCoreScriptDebugger.h: Removed.
44047         * page/mac/WebCoreScriptDebugger.mm: Removed.
44048
44049 2008-03-05  Anders Carlsson  <andersca@apple.com>
44050
44051         Build bridge/. Copy some headers over to WebKit as part of the post-build step.
44052         
44053         * WebCore.vcproj/WebCore.vcproj:
44054
44055 2008-03-05  Anders Carlsson  <andersca@apple.com>
44056
44057         Reviewed by Geoff.
44058
44059         * WebCore.base.exp:
44060         Add the NPN and KJS methods.
44061         
44062         * WebCore.xcodeproj/project.pbxproj:
44063         Bring in bridge/
44064
44065         * config.h:
44066         Add HAVE_JNI define.
44067         
44068         * bindings/js/kjs_html.cpp:
44069         * bindings/objc/DOMInternal.mm:
44070         * bindings/objc/DOMUtility.mm:
44071         * bindings/objc/WebScriptObject.mm:
44072         * html/HTMLAppletElement.cpp:
44073         * html/HTMLEmbedElement.cpp:
44074         * html/HTMLObjectElement.cpp:
44075         * html/HTMLPlugInElement.cpp:
44076         * page/Frame.cpp:
44077         * page/mac/FrameMac.mm:
44078         * page/mac/WebCoreFrameBridge.mm:
44079         * page/mac/WebCoreScriptDebugger.mm:
44080         * plugins/win/PluginViewWin.cpp:
44081         Include file changes.
44082
44083 2008-03-04  Anders Carlsson  <andersca@apple.com>
44084
44085         Reviewed by Sam.
44086
44087         Rewrite NPRuntime string conversion routines to use WebCore::String
44088         
44089         * bridge/NP_jsobject.cpp:
44090         (_NPN_Evaluate):
44091         * bridge/c/c_utility.cpp:
44092         (KJS::Bindings::convertUTF8ToUTF16WithLatin1Fallback):
44093         (KJS::Bindings::convertNPVariantToValue):
44094         (KJS::Bindings::convertNPStringToUTF16):
44095         (KJS::Bindings::identifierFromNPIdentifier):
44096         * bridge/c/c_utility.h:
44097
44098 2008-03-05  Oliver Hunt  <oliver@apple.com>
44099
44100         Reviewed by Alexey P.
44101
44102         Small performance improvement to putImageData (3-5% on assignment in my tests)
44103
44104         * html/CanvasPixelArray.h:
44105         (WebCore::CanvasPixelArray::set):
44106
44107 2008-03-04  Sam Weinig  <sam@webkit.org>
44108
44109         Reviewed by Adele.
44110
44111         * bindings/js/JSXMLHttpRequest.h: Remove unnecessary override of toBoolean.
44112
44113 2008-03-04  Maciej Stachowiak  <mjs@apple.com>
44114
44115         Reviewed by Sam and Oliver.
44116
44117         - fixed http://bugs.webkit.org/show_bug.cgi?id=16289
44118         - fixed Acid3 tests 26 and 27 (not exactly the same issue but related)
44119
44120         * bindings/js/JSNodeCustom.cpp:
44121         (WebCore::JSNode::mark): When marking a node that's in-document,
44122         mark the owner document if it hasn't been already. This means holding on
44123         to a single node from an unreferenced document now keeps the whole document alive.
44124         
44125         We are now at 90/100 on Acid3.
44126
44127 2008-03-04  Sam Weinig  <sam@webkit.org>
44128
44129         Qt build fix.
44130
44131         * page/qt/FrameQt.cpp:
44132
44133 2008-03-04  Sam Weinig  <sam@webkit.org>
44134
44135         Reviewed by Mark Rowe.
44136
44137         Rename kjs_window to JSDOMWindowBase.
44138
44139         - Remove all unnecessary includes of JSDOMWindowBase.h, we prefer including
44140           JSDOMWindow.h
44141
44142         * ChangeLog:
44143         * DerivedSources.make:
44144         * GNUmakefile.am:
44145         * WebCore.pro:
44146         * WebCore.vcproj/WebCore.vcproj:
44147         * WebCore.xcodeproj/project.pbxproj:
44148         * WebCoreSources.bkl:
44149         * bindings/js/JSCustomVoidCallback.cpp:
44150         * bindings/js/JSCustomXPathNSResolver.cpp:
44151         * bindings/js/JSDOMWindowBase.cpp: Copied from bindings/js/kjs_window.cpp.
44152         * bindings/js/JSDOMWindowBase.h: Copied from bindings/js/kjs_window.h.
44153         * bindings/js/JSDOMWindowCustom.cpp:
44154         * bindings/js/JSDatabaseCustom.cpp:
44155         * bindings/js/JSEventTargetBase.cpp:
44156         * bindings/js/JSEventTargetBase.h:
44157         * bindings/js/JSEventTargetNode.cpp:
44158         * bindings/js/JSHTMLDocumentCustom.cpp:
44159         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
44160         * bindings/js/JSHistoryCustom.cpp:
44161         * bindings/js/JSLocation.cpp:
44162         * bindings/js/JSSQLTransactionCustom.cpp:
44163         * bindings/js/JSXMLHttpRequest.cpp:
44164         * bindings/js/ScheduledAction.cpp:
44165         * bindings/js/kjs_binding.cpp:
44166         * bindings/js/kjs_events.cpp:
44167         * bindings/js/kjs_navigator.cpp:
44168         * bindings/js/kjs_proxy.cpp:
44169         * bindings/js/kjs_window.cpp: Removed.
44170         * bindings/js/kjs_window.h: Removed.
44171         * bindings/scripts/CodeGeneratorJS.pm:
44172         * history/CachedPage.cpp:
44173         * loader/FrameLoader.cpp:
44174         * page/Chrome.cpp:
44175         * page/InspectorController.cpp:
44176         * page/mac/FrameMac.mm:
44177         * page/mac/WebCoreFrameBridge.mm:
44178         * page/qt/FrameQt.cpp:
44179         * page/win/FrameWin.cpp:
44180         * plugins/win/PluginViewWin.cpp:
44181
44182 2008-03-04  Mark Rowe  <mrowe@apple.com>
44183
44184         Speculative Qt build fix.
44185
44186         * platform/qt/PasteboardQt.cpp:
44187
44188 2008-03-04  Anders Carlsson  <andersca@apple.com>
44189
44190         Reviewed by Sam.
44191
44192         Update include paths. This code is not used yet.
44193
44194         * bridge/NP_jsobject.cpp:
44195         * bridge/c/c_class.cpp:
44196         * bridge/c/c_instance.cpp:
44197         * bridge/c/c_utility.cpp:
44198         (KJS::Bindings::convertUTF8ToUTF16WithLatin1Fallback):
44199         #if 0 this out for now. 
44200         
44201         * bridge/jni/jni_class.cpp:
44202         * bridge/jni/jni_jsobject.cpp:
44203         * bridge/jni/jni_objc.mm:
44204         * bridge/jni/jni_runtime.cpp:
44205         * bridge/jni/jni_utility.cpp:
44206         * bridge/jni/jni_utility.h:
44207         * bridge/npruntime.cpp:
44208         * bridge/objc/WebScriptObject.h:
44209         * bridge/objc/objc_class.h:
44210         * bridge/objc/objc_instance.h:
44211         * bridge/objc/objc_runtime.h:
44212         * bridge/objc/objc_utility.h:
44213         * bridge/objc/objc_utility.mm:
44214         * bridge/runtime.cpp:
44215         * bridge/runtime.h:
44216         * bridge/runtime_array.cpp:
44217         * bridge/runtime_array.h:
44218         * bridge/runtime_method.cpp:
44219         * bridge/runtime_method.h:
44220         * bridge/runtime_object.cpp:
44221         * bridge/runtime_object.h:
44222         * bridge/runtime_root.cpp:
44223         * bridge/runtime_root.h:
44224
44225 2008-03-04  Dan Bernstein  <mitz@apple.com>
44226
44227         Reviewed by Darin Adler.
44228
44229         - fix http://bugs.webkit.org/show_bug.cgi?id=17676
44230           <rdar://problem/5781091> REGRESSION (r30240-r30267): href attribute values with non-ASCII characters in the host part do not work
44231
44232         Test: fast/encoding/url-host-name-non-ascii.html
44233
44234         * platform/KURL.cpp:
44235         (WebCore::appendEncodedHostname): Added an early return in the all-ASCII
44236         case to avoid copying the host name twice and corrected the error
44237         checking after calling uidna_IDNToASCII().
44238
44239 2008-03-04  Sam Weinig  <sam@webkit.org>
44240
44241         Reviewed by Dan Bernstein.
44242
44243         Use JSDOMWindow exclusively instead of JSDOMWindowBase.
44244
44245         * bindings/js/ScheduledAction.cpp:
44246         (WebCore::ScheduledAction::execute):
44247         * bindings/js/ScheduledAction.h:
44248         * bindings/js/kjs_window.cpp:
44249         (WebCore::JSDOMWindowBase::timerFired):
44250
44251 2008-03-04  Timothy Hatcher  <timothy@apple.com>
44252
44253         Reviewed by Darin Adler.
44254
44255         <rdar://problem/5720160> Browser windows "do nothing" while modal
44256         dialog or menu is up due to run loop modes (or while scrolling)
44257
44258         Adds a new SchedulePair object that holds a runloop and the mode to use.
44259         A HashSet of SchedulePairs is tracked by Page so it can be used for resource
44260         loading and, in the future, maybe SharedTimerMac.
44261
44262         * WebCore.base.exp: Add new exports for WebKit.
44263         * WebCore.xcodeproj/project.pbxproj: Add new files.
44264         * loader/mac/DocumentLoaderMac.cpp: Added.
44265         (WebCore::scheduleAll): Call schedule all the ResourceLoader handles.
44266         (WebCore::unscheduleAll): Call unschedule all the ResourceLoader handles.
44267         (WebCore::DocumentLoader::schedule): Schedule all the ResourceLoaders owned by the DocumentLoader.
44268         (WebCore::DocumentLoader::unschedule): Unschedule all the ResourceLoaders owned by the DocumentLoader.
44269         * loader/DocumentLoader.h:
44270         * page/Page.h:
44271         (WebCore::Page::scheduledRunLoopPairs): Return m_scheduledRunLoopPairs.
44272         * page/mac/PageMac.cpp:
44273         (WebCore::Page::addSchedulePair): Add a SchedulePair to m_scheduledRunLoopPairs.
44274         (WebCore::Page::removeSchedulePair): Removes a SchedulePair from m_scheduledRunLoopPairs.
44275         * platform/cf/SchedulePair.cpp: Added.
44276         * platform/cf/SchedulePair.h: Added.
44277         * platform/mac/SchedulePairMac.mm: Added.
44278         * platform/network/ResourceHandle.h:
44279         * platform/network/mac/FormDataStreamMac.mm:
44280         (WebCore::advanceCurrentStream): Use the new SchedulePair.
44281         (WebCore::formCreate): Ditto.
44282         (WebCore::formFinalize): Ditto.
44283         (WebCore::formSchedule): Ditto.
44284         (WebCore::formUnschedule): Ditto.
44285         * platform/network/mac/ResourceHandleMac.mm:
44286         (WebCore::ResourceHandle::start): Schedule the connection with all the SchedulePairs
44287         that Page holds. If Page has no SchedulePairs, schedule with the current runloop, and
44288         pick the mode based on ResourceHandle::loadsDuringCommonRunLoopModes.
44289         (WebCore::ResourceHandle::schedule):
44290         (WebCore::ResourceHandle::unschedule):
44291
44292 2008-03-04  Sam Weinig  <sam@webkit.org>
44293
44294         Reviewed by Darin Adler.
44295
44296         Rename kjs_css to JSRGBColor.
44297
44298         * DerivedSources.make:
44299         * GNUmakefile.am:
44300         * WebCore.pro:
44301         * WebCore.vcproj/WebCore.vcproj:
44302         * WebCore.xcodeproj/project.pbxproj:
44303         * WebCoreSources.bkl:
44304         * bindings/js/JSRGBColor.cpp: Copied from bindings/js/kjs_css.cpp.
44305         * bindings/js/JSRGBColor.h: Copied from bindings/js/kjs_css.h.
44306         * bindings/js/kjs_css.cpp: Removed.
44307         * bindings/js/kjs_css.h: Removed.
44308         * bindings/js/kjs_window.cpp:
44309         * bindings/objc/DOMUtility.mm:
44310         * bindings/scripts/CodeGeneratorJS.pm:
44311
44312 2008-03-04  Anders Carlsson  <andersca@apple.com>
44313
44314         Fix 64-bit build.
44315         
44316         * html/HTMLPlugInElement.cpp:
44317
44318 2008-03-04  Nikolas Zimmermann  <zimmermann@kde.org>
44319
44320         Reviewed by Eric & David.
44321
44322         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17078
44323
44324         Fix getSubStringLength() handling, verified by Acid3 test 77.
44325         Brings up Acid3 score to 88/100.
44326
44327         Added test: svg/custom/acid3-test-77.html
44328                     svg/custom/getSubStringLength.html
44329
44330         * svg/SVGTextContentElement.cpp:
44331         (WebCore::cummulatedCharacterRangeLength): Simplify some code.
44332         (WebCore::SVGTextContentElement::getSubStringLength):
44333
44334 2008-03-04  Anders Carlsson  <andersca@apple.com>
44335
44336         Mac build fix. Neither me, Sam nor Adam know why we need to do this though :(
44337
44338         * bindings/js/kjs_proxy.cpp:
44339         (WebCore::KJSProxy::attachDebugger):
44340         * page/Page.cpp:
44341         (WebCore::Page::setDebuggerForAllPages):
44342         (WebCore::Page::setDebugger):
44343
44344 2008-03-04  Adam Roben  <aroben@apple.com>
44345
44346         Add ExecState.h to ForwardingHeaders
44347
44348         Reviewed by Anders.
44349
44350         * ForwardingHeaders/kjs/ExecState.h: Added.
44351         * page/Page.cpp: Touch this to force WebCore to build and the headers
44352         to be copied.
44353
44354 2008-03-04  Adam Roben  <aroben@apple.com>
44355
44356         Make it possible to set a KJS::Debugger on all Frames in a Page and
44357         all Pages in the process
44358
44359         Reviewed by Kevin M.
44360
44361         * ForwardingHeaders/kjs/debugger.h: Added.
44362         * bindings/js/kjs_proxy.cpp:
44363         (WebCore::KJSProxy::initScript): Attach the Page's debugger if there
44364         is one.
44365         (WebCore::KJSProxy::attachDebugger): Attach the passed-in debugger, or
44366         detach any existing debugger if none was passed in.
44367         * bindings/js/kjs_proxy.h:
44368         * page/Page.cpp:
44369         (WebCore::Page::Page): Initialize new member.
44370         (WebCore::Page::setDebuggerForAllPages): Call setDebugger on each Page
44371         in the process.
44372         (WebCore::Page::setDebugger): Store the debugger and pass it off to
44373         all our Frames.
44374         * page/Page.h:
44375
44376 2008-03-04  Sam Weinig  <sam@webkit.org>
44377
44378         Reviewed by Darin Adler.
44379
44380         Add ClassInfo to custom constructors so that they toString properly
44381
44382         - Take this chance to remove the "Imp" from the end of JSXMLHttpRequestConstructorImp,
44383           and XSLTProcessorConstructorImp and prefix all the classes with JS. 
44384
44385         * bindings/js/JSAudioConstructor.cpp:
44386         (WebCore::): Added ClassInfo definition.
44387         (WebCore::JSAudioConstructor::JSAudioConstructor):
44388         (WebCore::JSAudioConstructor::construct): Cleanup.
44389         * bindings/js/JSAudioConstructor.h: Rename m_doc to m_document.
44390         (WebCore::JSAudioConstructor::classInfo): Added.
44391
44392         * bindings/js/JSHTMLInputElementBase.cpp: Rename HTMLInputElementBasePrototype 
44393         to JSHTMLInputElementBasePrototype as seen if toString'ed.
44394
44395         * bindings/js/JSHTMLOptionElementConstructor.cpp:
44396         (WebCore::): Added ClassInfo definition.
44397         * bindings/js/JSHTMLOptionElementConstructor.h:
44398         (WebCore::JSHTMLOptionElementConstructor::classInfo): Added.
44399
44400         * bindings/js/JSImageConstructor.cpp:
44401         (WebCore::): Added ClassInfo definition.
44402         (WebCore::JSImageConstructor::implementsConstruct): Moved here from header.
44403         * bindings/js/JSImageConstructor.h:
44404         (WebCore::JSImageConstructor::classInfo): Added.
44405
44406         * bindings/js/JSXMLHttpRequest.cpp:
44407         (WebCore::): Rename XMLHttpRequestPrototype  to JSXMLHttpRequestPrototype 
44408         as seen if toString'ed.
44409         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
44410         (WebCore::JSXMLHttpRequestConstructor::implementsConstruct):
44411         (WebCore::JSXMLHttpRequestConstructor::construct):
44412         * bindings/js/JSXMLHttpRequest.h: Renamed JSXMLHttpRequestConstructorImp to
44413         JSXMLHttpRequestConstructor and doc to m_document and 
44414         (WebCore::JSXMLHttpRequestConstructor::classInfo): Added.
44415
44416         * bindings/js/JSXSLTProcessor.cpp:
44417         (WebCore::): Renamed XSLTProcessorPrototype to JSXSLTProcessorPrototype and 
44418         XSLTProcessorConstructorImp to JSXSLTProcessorConstructor.
44419         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
44420         (WebCore::JSXSLTProcessorConstructor::implementsConstruct):
44421         (WebCore::JSXSLTProcessorConstructor::construct):
44422         * bindings/js/JSXSLTProcessor.h:
44423         (WebCore::JSXSLTProcessorConstructor::classInfo): Added.
44424
44425         * bindings/js/kjs_window.cpp:
44426         (WebCore::JSDOMWindowBase::getValueProperty): Fixed to work with the new class names.
44427
44428 2008-03-04  Dan Bernstein  <mitz@apple.com>
44429
44430         Reviewed by Oliver Hunt and Geoffrey Garen.
44431
44432         - fix http://bugs.webkit.org/show_bug.cgi?id=17667
44433           <rdar://problem/5779658> REGRESSION (r30587): Document::implicitClose() not called when done loading page (Image does not get scaled to fit)
44434
44435         * loader/loader.cpp:
44436         (WebCore::Loader::didFinishLoading): Changed to call
44437         setLoadInProgress(false) even for 4xx errors, because that triggers
44438         load completion check.
44439
44440 2008-03-04  Adele Peterson  <adele@apple.com>
44441
44442         Reviewed by Beth.
44443
44444         Fix for <rdar://problem/5779718> focus() does not work for anchor elements with no content
44445
44446         If an anchor has zero size, don't exclude it from being focusable from JS, just exclude it
44447         from being keyboard focusable (using the tab key).
44448
44449         * html/HTMLAnchorElement.cpp:
44450         (WebCore::HTMLAnchorElement::isFocusable):
44451         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
44452
44453 2008-03-04  Chris Fleizach  <cfleizach@apple.com>
44454
44455         Reviewed by Darin Adler.
44456
44457         - fix <rdar://problem/5119360> ER - Seed: Google results do not have AXHeading information
44458
44459         * page/mac/WebCoreAXObject.mm:
44460         (headingLevel):
44461         (-[WebCoreAXObject accessibilityIsIgnored]):
44462
44463 2008-03-04  Sam Weinig  <sam@webkit.org>
44464
44465         GTK+ build fix.
44466
44467         * GNUmakefile.am:
44468
44469 2008-03-04  Sam Weinig  <sam@webkit.org>
44470
44471         Reviewed by Darin Adler.
44472
44473         Remame ImageConstructorImp to JSImageConstructor and move it into its
44474         own file.
44475
44476         * GNUmakefile.am:
44477         * WebCore.pro:
44478         * WebCore.vcproj/WebCore.vcproj:
44479         * WebCore.xcodeproj/project.pbxproj:
44480         * WebCoreSources.bkl:
44481         * bindings/js/JSImageConstructor.cpp: Copied from bindings/js/kjs_html.cpp.
44482         (WebCore::JSImageConstructor::JSImageConstructor):
44483         (WebCore::JSImageConstructor::construct):
44484         * bindings/js/JSImageConstructor.h: Copied from bindings/js/kjs_html.h.
44485         * bindings/js/kjs_html.cpp:
44486         (WebCore::getRuntimeObject): Make this function static since it is only used
44487         in this file.
44488         * bindings/js/kjs_html.h:
44489         * bindings/js/kjs_window.cpp:
44490         (WebCore::JSDOMWindowBase::getValueProperty):
44491
44492 2008-03-04  Adam Roben  <aroben@apple.com>
44493
44494         Fix an uninitialized value warning in CodeGeneratorJS.pm
44495
44496         * bindings/scripts/CodeGeneratorJS.pm: Remove reference to
44497         non-existent $maybeOkParam (this was removed in r30753).
44498
44499 2008-03-04  Sam Weinig  <sam@webkit.org>
44500
44501         Reviewed by Darin Adler.
44502
44503         Remove kjs_dom.{h,cpp}.
44504
44505         - Removed custom toAttr, which took a boolean ok, and teach CodeGeneratorJS.pm
44506           to us a null return value as an indication of failure. (This new logic is used
44507           for toVoidCallback as well.)
44508         - Move getRuntimeObject to kjs_html where a bunch of other runtime object related
44509           functions currently live.
44510         - Move checkNodeSecurity to kjs_binding, where other frame security functions 
44511           currently live.
44512         - Remove getNodeConstructor.  It had no implementation.
44513
44514         * GNUmakefile.am:
44515         * WebCore.pro:
44516         * WebCore.vcproj/WebCore.vcproj:
44517         * WebCore.xcodeproj/project.pbxproj:
44518         * WebCoreSources.bkl:
44519         * bindings/js/JSAttrCustom.cpp:
44520         * bindings/js/JSCustomVoidCallback.cpp:
44521         (WebCore::toVoidCallback):
44522         * bindings/js/JSCustomVoidCallback.h:
44523         * bindings/js/JSDatabaseCustom.cpp:
44524         (WebCore::JSDatabase::changeVersion):
44525         (WebCore::JSDatabase::transaction):
44526         * bindings/js/JSElementCustom.cpp:
44527         (WebCore::JSElement::setAttributeNode):
44528         (WebCore::JSElement::setAttributeNodeNS):
44529         * bindings/js/JSEventTargetBase.cpp:
44530         (WebCore::toJS):
44531         * bindings/js/JSEventTargetBase.h:
44532         * bindings/js/JSHTMLAppletElementCustom.cpp:
44533         * bindings/js/JSHTMLElementCustom.cpp:
44534         * bindings/js/JSHTMLEmbedElementCustom.cpp:
44535         * bindings/js/JSHTMLFormElementCustom.cpp:
44536         * bindings/js/JSHTMLFrameElementCustom.cpp:
44537         * bindings/js/JSHTMLIFrameElementCustom.cpp:
44538         * bindings/js/JSHTMLObjectElementCustom.cpp:
44539         * bindings/js/JSNamedNodeMapCustom.cpp:
44540         * bindings/js/JSNamedNodesCollection.cpp:
44541         * bindings/js/JSNodeFilterCustom.cpp:
44542         * bindings/js/JSXSLTProcessor.cpp:
44543         * bindings/js/kjs_binding.cpp:
44544         (WebCore::checkNodeSecurity):
44545         * bindings/js/kjs_binding.h:
44546         * bindings/js/kjs_css.cpp:
44547         * bindings/js/kjs_dom.cpp: Removed.
44548         * bindings/js/kjs_dom.h: Removed.
44549         * bindings/js/kjs_events.cpp:
44550         * bindings/js/kjs_html.cpp:
44551         (WebCore::getRuntimeObject):
44552         * bindings/js/kjs_html.h:
44553         * bindings/js/kjs_window.cpp:
44554         * bindings/scripts/CodeGeneratorJS.pm:
44555         * dom/Attr.idl:
44556         * html/HTMLPlugInElement.cpp:
44557         * page/InspectorController.cpp:
44558
44559 2008-03-04  Adam Roben  <aroben@apple.com>
44560
44561         Win/Qt/GTK+/wx build fix after r30740
44562
44563         * editing/Editor.cpp: Added missing #include.
44564         * page/qt/FrameQt.cpp: Removed Frame::dashboardRegionsChanged.
44565         * page/win/FrameWin.cpp: Ditto.
44566         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
44567
44568 2008-03-04  Alp Toker  <alp@atoker.com>
44569
44570         GTK+ build fix for breakage introduced in r30740.
44571
44572         Remove Frame::dashboardRegionsChanged(). There's now a default
44573         implementation at ChromeClient::dashboardRegionsChanged().
44574
44575         * page/gtk/FrameGtk.cpp:
44576
44577 2008-03-04  Alp Toker  <alp@atoker.com>
44578
44579         GTK+ build fix suggested by aroben. Remove an unused Mac-specific
44580         included introduced in r30740.
44581
44582         * page/ChromeClient.h:
44583
44584 2008-03-04  Dan Bernstein  <mitz@apple.com>
44585
44586         Reviewed by Sam Weinig.
44587
44588         - fix <rdar://problem/5622336> Burmese text does not render on http://www.myanmarbible.com/bible/Judson/html/index.html
44589
44590         Test: platform/win/fast/text/uniscribe-missing-glyph.html
44591
44592         Note that default installations of Windows do not have Myanmar fonts.
44593         What this patch does is ensure that the Myanmar and other complex
44594         scripts are rendered as missing glyphs rather than not rendered at all.
44595         The particular page in the bug measures the relative widths of two
44596         rendered strings and, if they are rendered as missing glyphs, detects
44597         that a Myanmar fonts is not available and substitutes the text with
44598         images. By not rendering (and measuring) missing glyphs, WebKit was
44599         throwing the page's detection code off.
44600
44601         * platform/graphics/win/UniscribeController.cpp:
44602         (WebCore::UniscribeController::shape): Removed an early return in case
44603         shaping resulted in missing glyphs. This is now expected if font
44604         fallback failed to produce a font containing glyphs for the character.
44605         Also changed two resize()s to shrink()s.
44606
44607 2008-03-04  Darin Adler  <darin@apple.com>
44608
44609         Reviewed by Adam.
44610
44611         - remove WebCoreFrameBridge reapplyStyles method
44612
44613         * WebCore.base.exp: Added exports.
44614         * page/mac/WebCoreFrameBridge.h: Removed WebCoreDeviceType and
44615         reapplyStylesForDeviceType: method.
44616         * page/mac/WebCoreFrameBridge.mm: Ditto.
44617
44618 2008-03-04  Darin Adler  <darin@apple.com>
44619
44620         Reviewed by Adam.
44621
44622         - eliminate WebCoreFrameBridge createFrameViewWithNSView
44623
44624         * WebCore.base.exp: Added some more exports.
44625         * page/mac/WebCoreFrameBridge.h: Deleted createFrameViewWithNSView.
44626         * page/mac/WebCoreFrameBridge.mm: Ditto.
44627
44628 2008-03-04  Darin Adler  <darin@apple.com>
44629
44630         Reviewed by Adam.
44631
44632         - removed WebCoreFrameBridge scrollOverflowInDirection
44633
44634         * WebCore.base.exp: Export function needed by WebKit.
44635         * page/mac/WebCoreFrameBridge.h: Removed WebScrollDirection, WebScrollGranularity,
44636         and scrollOverflowInDirection.
44637         * page/mac/WebCoreFrameBridge.mm: Removed method.
44638
44639 2008-03-04  Darin Adler  <darin@apple.com>
44640
44641         Reviewed by Adam.
44642
44643         - remove WebCoreFrameBridge installInFrame: method
44644
44645         * WebCore.base.exp: Export a few symbols.
44646         * WebCore.xcodeproj/project.pbxproj: Export a few files.
44647         * page/mac/WebCoreFrameBridge.h: Remove installInFrame:.
44648         * page/mac/WebCoreFrameBridge.mm: Ditto.
44649
44650 2008-03-04  Darin Adler  <darin@apple.com>
44651
44652         Reviewed by Adam.
44653
44654         - remove WebCoreFrameBridge window method
44655
44656         * page/mac/EventHandlerMac.mm:
44657         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): Get the window by calling
44658         window on the NSView instead of using the bridge. The WebKit side wasn't doing anything
44659         special, so a call to -[NSView window] is fine.
44660
44661         * page/mac/WebCoreFrameBridge.h: Removed the window method.
44662
44663 2008-03-04  Darin Adler  <darin@apple.com>
44664
44665         Reviewed by Adam.
44666
44667         - remove -[WebCoreFrameBridge dashboardRegionsChanged:]
44668
44669         * WebCore.base.exp: Updated.
44670         * page/Chrome.cpp:
44671         (WebCore::ChromeClient::dashboardRegionsChanged): Added.
44672         * page/ChromeClient.h: Added virtual function for dashboardRegionsChanged.
44673         * page/Frame.h: Removed dashboardRegionsChanged function.
44674         * page/FrameView.cpp:
44675         (WebCore::FrameView::updateDashboardRegions): Changed to call dashboardRegionsChanged
44676         on ChromeClient and to only call it when the regions actually changed.
44677         * page/mac/FrameMac.mm: Removed dashboardRegionsChanged function.
44678         * page/mac/WebCoreFrameBridge.h: Removed dashboardRegionsChanged: method.
44679
44680 2008-03-04  Darin Adler  <darin@apple.com>
44681
44682         Reviewed by Adam.
44683
44684         - remove WebCoreFrameBridge issuePasteComand method
44685
44686         * editing/Editor.cpp:
44687         (WebCore::Editor::paste): Moved the Mac-specific part of this to EditorMac.
44688         * editing/mac/EditorMac.mm:
44689         (WebCore::Editor::paste): Added. Calls paste: on the document view (normally a
44690         WebHTMLView). We should get rid of this eventually.
44691         * page/Frame.h: Removed issuePasteCommand.
44692         * page/mac/FrameMac.mm: Ditto.
44693         * page/mac/WebCoreFrameBridge.h: Ditto.
44694
44695 2008-03-04  Alexey Proskuryakov  <ap@webkit.org>
44696
44697         Suggested by Darin, rubber-stamped by Mark.
44698
44699         http://bugs.webkit.org/show_bug.cgi?id=17569
44700         REGRESSION (r30571): Buzzword.com doesn't load
44701
44702         Rolling out r30571, as determining what is wrong with it proved tricky.
44703
44704         * loader/FrameLoader.cpp:
44705         (WebCore::FrameLoader::load):
44706         (WebCore::FrameLoader::tokenizerProcessedData):
44707         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
44708
44709 2008-03-04  Sam Weinig  <sam@webkit.org>
44710
44711         Build fix.
44712
44713         * bindings/js/kjs_events.cpp:
44714
44715 2008-03-03  Sam Weinig  <sam@webkit.org>
44716
44717         Reviewed by Mark Rowe.
44718
44719         Move JSClipboard into its own file.
44720
44721         * DerivedSources.make:
44722         * GNUmakefile.am:
44723         * WebCore.pro:
44724         * WebCore.vcproj/WebCore.vcproj:
44725         * WebCore.xcodeproj/project.pbxproj:
44726         * WebCoreSources.bkl:
44727         * bindings/js/JSAttrCustom.cpp:
44728         * bindings/js/JSClipboardCustom.cpp: Added.
44729         (WebCore::JSClipboard::types):
44730         (WebCore::JSClipboard::clearData):
44731         (WebCore::JSClipboard::getData):
44732         (WebCore::JSClipboard::setData):
44733         (WebCore::JSClipboard::setDragImage):
44734         * bindings/js/JSElementCustom.cpp:
44735         * bindings/js/JSEventCustom.cpp:
44736         * bindings/js/JSHTMLFrameElementCustom.cpp:
44737         * bindings/js/JSHTMLIFrameElementCustom.cpp:
44738         * bindings/js/kjs_events.cpp:
44739         * bindings/js/kjs_events.h:
44740         * bindings/js/kjs_window.cpp:
44741         * bindings/scripts/CodeGeneratorJS.pm:
44742         * dom/Clipboard.cpp:
44743         (WebCore::Clipboard::setDropEffect):
44744         (WebCore::Clipboard::setEffectAllowed):
44745         * dom/Clipboard.idl: Added.
44746
44747 2008-03-03  Sam Weinig  <sam@webkit.org>
44748
44749         Windows build-fix.
44750
44751         * page/Chrome.cpp:
44752         * plugins/win/PluginViewWin.cpp:
44753
44754 2008-03-03  Sam Weinig  <sam@webkit.org>
44755
44756         Reviewed by Darin Adler.
44757
44758         Cleanup and plumbing in preparation for the great Window split.
44759
44760         - Rename KJS::Window to WebCore::JSDOMWindowBase.
44761         - Remove KJS::Window::retrieve() and KJS::Window::retrieveWindow() and replace
44762           with the new toJSDOMWindow().
44763         - Remove KJS::Window::retrieveActive() and replace with explicit call to 
44764           exec->dynamicGlobalObject() and toJSDOMWindow().
44765
44766         * bindings/js/JSCustomVoidCallback.cpp:
44767         (WebCore::toVoidCallback):.
44768         * bindings/js/JSCustomXPathNSResolver.cpp:
44769         (WebCore::JSCustomXPathNSResolver::create):
44770         * bindings/js/JSDatabaseCustom.cpp:
44771         (WebCore::JSDatabase::changeVersion):
44772         (WebCore::JSDatabase::transaction):
44773         * bindings/js/JSDocumentCustom.cpp:
44774         (WebCore::JSDocument::location):
44775         (WebCore::toJS):
44776         * bindings/js/JSEventTargetBase.cpp:
44777         (WebCore::jsEventTargetAddEventListener):
44778         (WebCore::jsEventTargetRemoveEventListener):
44779         * bindings/js/JSEventTargetNode.cpp:
44780         (WebCore::JSEventTargetNode::setListener):
44781         * bindings/js/JSHTMLDocumentCustom.cpp:
44782         (WebCore::JSHTMLDocument::nameGetter):
44783         (WebCore::JSHTMLDocument::open):
44784         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
44785         (WebCore::JSHTMLFrameSetElement::nameGetter):
44786         * bindings/js/JSLocation.cpp:
44787         (WebCore::JSLocation::put):
44788         (WebCore::jsLocationProtoFuncReplace):
44789         (WebCore::jsLocationProtoFuncReload):
44790         (WebCore::jsLocationProtoFuncAssign):
44791         * bindings/js/JSLocation.h:
44792         * bindings/js/JSSQLTransactionCustom.cpp:
44793         (WebCore::JSSQLTransaction::executeSql):
44794         * bindings/js/JSSVGLazyEventListener.cpp:
44795         (WebCore::JSSVGLazyEventListener::JSSVGLazyEventListener):
44796         (WebCore::JSSVGLazyEventListener::eventParameterName):
44797         * bindings/js/JSSVGLazyEventListener.h:
44798         * bindings/js/JSXMLHttpRequest.cpp:
44799         (WebCore::JSXMLHttpRequest::putValueProperty):
44800         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen):
44801         (WebCore::jsXMLHttpRequestPrototypeFunctionAddEventListener):
44802         (WebCore::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
44803         * bindings/js/ScheduledAction.cpp:
44804         (WebCore::ScheduledAction::execute):
44805         * bindings/js/ScheduledAction.h:
44806         * bindings/js/kjs_binding.cpp:
44807         (WebCore::allowsAccessFromFrame):
44808         (WebCore::printErrorMessageForFrame):
44809         * bindings/js/kjs_events.cpp:
44810         (WebCore::JSAbstractEventListener::handleEvent):
44811         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
44812         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
44813         (WebCore::JSUnprotectedEventListener::windowObj):
44814         (WebCore::JSEventListener::JSEventListener):
44815         (WebCore::JSEventListener::~JSEventListener):
44816         (WebCore::JSEventListener::windowObj):
44817         (WebCore::JSLazyEventListener::JSLazyEventListener):
44818         (WebCore::JSLazyEventListener::parseCode):
44819         * bindings/js/kjs_events.h:
44820         * bindings/js/kjs_navigator.cpp:
44821         (WebCore::MimeType::getValueProperty):
44822         * bindings/js/kjs_proxy.cpp:
44823         (WebCore::KJSProxy::evaluate):
44824         (WebCore::KJSProxy::createHTMLEventHandler):
44825         (WebCore::KJSProxy::createSVGEventHandler):
44826         * bindings/js/kjs_window.cpp:
44827         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
44828         (WebCore::DOMWindowTimer::DOMWindowTimer):
44829         (WebCore::DOMWindowTimer::action):
44830         (WebCore::DOMWindowTimer::takeAction):
44831         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
44832         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
44833         (WebCore::JSDOMWindowBase::location):
44834         (WebCore::JSDOMWindowBase::mark):
44835         (WebCore::allowPopUp):
44836         (WebCore::createWindow):
44837         (WebCore::showModalDialog):
44838         (WebCore::JSDOMWindowBase::getValueProperty):
44839         (WebCore::JSDOMWindowBase::childFrameGetter):
44840         (WebCore::JSDOMWindowBase::indexGetter):
44841         (WebCore::JSDOMWindowBase::namedItemGetter):
44842         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
44843         (WebCore::JSDOMWindowBase::put):
44844         (WebCore::JSDOMWindowBase::allowsAccessFrom):
44845         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
44846         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
44847         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
44848         (WebCore::JSDOMWindowBase::printErrorMessage):
44849         (WebCore::JSDOMWindowBase::globalExec):
44850         (WebCore::JSDOMWindowBase::shouldInterruptScript):
44851         (WebCore::JSDOMWindowBase::setListener):
44852         (WebCore::JSDOMWindowBase::getListener):
44853         (WebCore::JSDOMWindowBase::findJSEventListener):
44854         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
44855         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
44856         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
44857         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
44858         (WebCore::JSDOMWindowBase::clear):
44859         (WebCore::JSDOMWindowBase::setCurrentEvent):
44860         (WebCore::JSDOMWindowBase::currentEvent):
44861         (WebCore::windowProtoFuncAToB):
44862         (WebCore::windowProtoFuncBToA):
44863         (WebCore::windowProtoFuncOpen):
44864         (WebCore::windowProtoFuncSetTimeout):
44865         (WebCore::windowProtoFuncClearTimeout):
44866         (WebCore::windowProtoFuncSetInterval):
44867         (WebCore::windowProtoFuncAddEventListener):
44868         (WebCore::windowProtoFuncRemoveEventListener):
44869         (WebCore::windowProtoFuncShowModalDialog):
44870         (WebCore::windowProtoFuncNotImplemented):
44871         (WebCore::JSDOMWindowBase::setReturnValueSlot):
44872         (WebCore::JSDOMWindowBase::clearAllTimeouts):
44873         (WebCore::JSDOMWindowBase::installTimeout):
44874         (WebCore::JSDOMWindowBase::pauseTimeouts):
44875         (WebCore::JSDOMWindowBase::resumeTimeouts):
44876         (WebCore::JSDOMWindowBase::clearTimeout):
44877         (WebCore::JSDOMWindowBase::timerFired):
44878         (WebCore::JSDOMWindowBase::disconnectFrame):
44879         (WebCore::JSDOMWindowBase::jsEventListeners):
44880         (WebCore::JSDOMWindowBase::jsHTMLEventListeners):
44881         (WebCore::JSDOMWindowBase::jsUnprotectedEventListeners):
44882         (WebCore::JSDOMWindowBase::jsUnprotectedHTMLEventListeners):
44883         (WebCore::toJS):
44884         (WebCore::toJSDOMWindow):
44885         (WebCore::toJSDOMWindow):
44886         * bindings/js/kjs_window.h:
44887         (WebCore::JSDOMWindowBase::impl):
44888         (WebCore::JSDOMWindowBase::classInfo):
44889         (WebCore::JSDOMWindowBase::):
44890         * bindings/objc/DOMUtility.mm:
44891         (KJS::createDOMWrapper):
44892         * bindings/scripts/CodeGeneratorJS.pm:
44893         * history/CachedPage.cpp:
44894         (WebCore::CachedPage::CachedPage):
44895         (WebCore::CachedPage::restore):
44896         * page/Chrome.cpp:
44897         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
44898         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
44899         * page/DOMWindow.idl:
44900         * page/Frame.cpp:
44901         (WebCore::Frame::~Frame):
44902         (WebCore::Frame::windowScriptNPObject):
44903         (WebCore::Frame::pageDestroyed):
44904         * page/InspectorController.cpp:
44905         (WebCore::inspectedWindow):
44906         * page/mac/FrameMac.mm:
44907         (WebCore::Frame::windowScriptObject):
44908         * page/mac/WebCoreFrameBridge.mm:
44909         (updateRenderingForBindings):
44910         * platform/SecurityOrigin.cpp:
44911         (WebCore::SecurityOrigin::canAccess):
44912
44913 2008-03-03  Kevin Ollivier  <kevino@theolliviers.com>
44914
44915         wx build fixes after recent Frame-related changes.
44916
44917         * platform/wx/PasteboardWx.cpp:
44918         * platform/wx/TemporaryLinkStubs.cpp:
44919
44920 2008-03-03  Dan Bernstein  <mitz@apple.com>
44921
44922         Reviewed by Darin Adler.
44923
44924         - make :first-letter apply to the first letter in normal flow, skipping
44925           floats and positioned objects
44926
44927         Test: fast/css/first-letter-skip-out-of-flow.html
44928
44929         * rendering/RenderBlock.cpp:
44930         (WebCore::RenderBlock::updateFirstLetter):
44931
44932 2008-03-03  Ada Chan  <adachan@apple.com>
44933
44934         Fix build.
44935
44936         * plugins/win/PluginViewWin.cpp:
44937
44938 2008-03-03  Mark Rowe  <mrowe@apple.com>
44939
44940         Reviewed by Dan Bernstein.
44941
44942         Fix http://bugs.webkit.org/show_bug.cgi?id=17313
44943         Bug 17313: querySelectorAll() causing crashes when called via dojo.query() wrapper
44944
44945         Node::querySelector and SelectorNodeList were not sufficiently initializing the CSSStyleSelector
44946         before using it to resolve styles, which lead to it having a stale m_style member in some situations.
44947         This stale m_style member resulted in a wild store that would write over whatever object now resided
44948         at the location m_style pointed to.
44949
44950         Test: fast/dom/SelectorAPI/bug-17313.html
44951
44952         * dom/Node.cpp:
44953         (WebCore::Node::querySelector): Call initForStyleResolve to further initialize the CSSStyleSelector.
44954         * dom/SelectorNodeList.cpp:
44955         (WebCore::SelectorNodeList::SelectorNodeList): Ditto.
44956
44957 2008-03-03  Anders Carlsson  <andersca@apple.com>
44958
44959         Reviewed by Darin and Sam.
44960
44961         Include fixes, in preparation of using the headers in WebCore/bridge.
44962         
44963         * bindings/js/kjs_binding.h:
44964         * bindings/js/kjs_dom.cpp:
44965         * bindings/objc/DOMInternal.mm:
44966         * bindings/objc/DOMUtility.mm:
44967         * bindings/objc/WebScriptObject.mm:
44968         * bindings/objc/WebScriptObjectPrivate.h:
44969         * bridge/objc/objc_class.h:
44970         * bridge/objc/objc_instance.h:
44971         * bridge/objc/objc_runtime.h:
44972         * bridge/objc/objc_utility.h:
44973         * bridge/runtime.h:
44974         * bridge/runtime_object.h:
44975         * bridge/runtime_root.h:
44976         * html/HTMLAppletElement.cpp:
44977         * html/HTMLAppletElement.h:
44978         * html/HTMLEmbedElement.cpp:
44979         * html/HTMLEmbedElement.h:
44980         * html/HTMLObjectElement.cpp:
44981         * html/HTMLPlugInElement.cpp:
44982         * html/HTMLPlugInElement.h:
44983         * page/mac/FrameMac.mm:
44984         * page/mac/WebCoreFrameBridge.h:
44985         * page/mac/WebCoreFrameBridge.mm:
44986         * page/mac/WebCoreScriptDebugger.mm:
44987
44988 2008-03-03  David Hyatt  <hyatt@apple.com>
44989
44990         Full page zoom plumbing.  Add a notion of whether or not a zoom is text only or a full zoom to the
44991         Frame.  setTextSizeMultiplier does a text only zoom.
44992
44993         Reviewed by Tim H.
44994
44995         * page/Frame.cpp:
44996         (WebCore::Frame::zoomFactor):
44997         (WebCore::Frame::isZoomFactorTextOnly):
44998         (WebCore::Frame::setZoomFactor):
44999         (WebCore::FramePrivate::FramePrivate):
45000         * page/Frame.h:
45001         * page/FramePrivate.h:
45002         * page/mac/WebCoreFrameBridge.mm:
45003         (-[WebCoreFrameBridge setTextSizeMultiplier:]):
45004         * svg/SVGSVGElement.cpp:
45005         (WebCore::SVGSVGElement::setCurrentScale):
45006
45007 2008-03-03  David Hyatt  <hyatt@apple.com>
45008
45009         Fix for <rdar://problem/5776161> REGRESSION: Google Docs Spreadsheet crash
45010
45011         This is also http://bugs.webkit.org/show_bug.cgi?id=17543, fixed table layout corrupts heap.
45012
45013         Make sure not to access position -1 of the size 0 vectors.
45014
45015         Reviewed by ggaren
45016
45017         * rendering/FixedTableLayout.cpp:
45018         (WebCore::FixedTableLayout::layout):
45019
45020 2008-03-03  David D. Kilzer  <ddkilzer@webkit.org>
45021
45022         Dynamically inserting CSS rule with @media query fails with DOM Exception 12
45023         <http://bugs.webkit.org/show_bug.cgi?id=15986>
45024
45025         Reviewed by Darin.
45026
45027         Allow any valid rule (@font-face, @import, @media, @page or style) to be
45028         parsed when using CSSStyleSheet.insertRule().  Previously only import and
45029         style rules were allowed.  Note that @page rules always throw an exception
45030         because they're not implemented yet, so no test case was added for them.
45031
45032         Tests: fast/css/insertRule-font-face.html
45033                fast/css/insertRule-media.html
45034
45035         * css/CSSGrammar.y: Extracted 'valid_rule' out of 'rule'.  Renamed
45036         'ruleset_or_import' to 'valid_rule_or_import' and changed its definition.
45037
45038 2008-03-03  Anders Carlsson  <andersca@apple.com>
45039
45040         Reviewed by Sam.
45041
45042         Copy JSC bindings directory over to WebCore/bridge.
45043
45044         * bridge: Copied from ../JavaScriptCore/bindings.
45045
45046 2008-03-03  Dan Bernstein  <mitz@apple.com>
45047
45048         Reviewed by Darin Adler.
45049
45050         - remove CSSMutableStyleDeclaration::setChanged()'s change type
45051           parameter
45052
45053         * css/CSSMutableStyleDeclaration.cpp:
45054         (WebCore::CSSMutableStyleDeclaration::setChanged): Removed the change
45055         type parameter and made this function determine the correct change type
45056         based on whether this is an inline style declaration.
45057         (WebCore::CSSMutableStyleDeclaration::setProperty):
45058         * css/CSSMutableStyleDeclaration.h:
45059         (WebCore::CSSMutableStyleDeclaration::clear): Removed this unused
45060         method.
45061         (WebCore::CSSMutableStyleDeclaration::setChanged): Made private.
45062
45063 2008-03-03  Darin Adler  <darin@apple.com>
45064
45065         Reviewed by Adam.
45066
45067         - some "cleanup" on the path to removing WebCoreFrameBridge
45068
45069         * WebCore.base.exp: Exported some stuff we either already use or
45070         I am about to use in an upcoming patch.
45071
45072         * WebCore.xcodeproj/project.pbxproj: Made FileChooser.h private rather
45073         than project, for future use in WebKit.
45074
45075         * bindings/objc/WebScriptObject.mm: Removed some dead code.
45076
45077         * dom/ContainerNode.cpp: Added a now-needed or soon-to-be-needed include.
45078         * editing/Editor.cpp: Ditto.
45079
45080         * editing/Editor.h: Removed many unneeded declarations and includes.
45081         Removed the unused userVisibleString function.
45082
45083         * editing/EditorCommand.cpp:
45084         (WebCore::executeYank): Added parameter for triggeringEvent, which no
45085         longer has a default value.
45086         (WebCore::executeYankAndSelect): Ditto.
45087
45088         * editing/mac/EditorMac.mm: Removed userVisibleString.
45089
45090         * page/mac/EventHandlerMac.mm:
45091         (WebCore::isKeyboardOptionTab): Tweaked formattin.
45092
45093         * page/mac/WebCoreFrameBridge.mm:
45094         (-[WebCoreFrameBridge dragSourceMovedTo:]): Get window from -[NSView window]
45095         rather than from the bridge. There's no special value in the bridge's window
45096         method and we can use NSView directly.
45097         (-[WebCoreFrameBridge dragSourceEndedAt:operation:]): Ditto.
45098
45099         * platform/graphics/mac/ImageMac.mm:
45100         (WebCore::Image::loadPlatformResource): Use a new WebCoreBundleFinder class to
45101         find the bundle rather than using WebCoreFrameBridge.
45102
45103         * platform/mac/ClipboardMac.mm: Added a now-needed or soon-to-be-needed include.
45104         * platform/mac/PasteboardMac.mm: Ditto.
45105
45106         * rendering/RenderObject.h:
45107         (WebCore::DashboardRegionValue::operator==): Fixed mistake where this wasn't
45108         comparing the clip rectangle.
45109         (WebCore::DashboardRegionValue::operator!=): Added. Needed by my future work.
45110
45111 2008-03-03  Oliver Hunt  <oliver@apple.com>
45112
45113         Reviewed by Mark Rowe.
45114
45115         Bug 17620: getImageData lies
45116         http://bugs.webkit.org/show_bug.cgi?id=17620
45117
45118         Correct logic to actually iterate over the source row
45119
45120         * platform/graphics/cg/ImageBufferCG.cpp:
45121         (WebCore::ImageBuffer::getImageData):
45122
45123 2008-03-03  Oliver Hunt  <oliver@apple.com>
45124
45125         Reviewed by Mark Rowe.
45126
45127         Correct incorrect assertion
45128
45129         * platform/graphics/cg/ImageBufferCG.cpp:
45130         (WebCore::ImageBuffer::putImageData):
45131
45132 2008-03-02  Alp Toker  <alp@atoker.com>
45133
45134         Another fix for non-database builds after changes in r30331.
45135
45136         Conditionalize a stopDatabases() call.
45137
45138         * loader/FrameLoader.cpp:
45139         (WebCore::FrameLoader::stopLoading):
45140
45141 2008-03-02  Kevin Ollivier  <kevino@theolliviers.com>
45142
45143         Reviewed by Alp Toker.
45144
45145         Scrolling fixes. Implement page scrolling, initialize mouse wheel
45146         event variables, and remove duplicate event binding for TOP
45147         scrolling event.
45148
45149         http://bugs.webkit.org/show_bug.cgi?id=17643
45150
45151         * platform/wx/MouseWheelEventWx.cpp:
45152         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
45153         * platform/wx/ScrollViewWx.cpp:
45154         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
45155         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
45156
45157 2008-03-02  Alp Toker  <alp@atoker.com>
45158
45159         Fix building without database support after changes in r30331.
45160
45161         * dom/Document.cpp:
45162
45163 2008-03-02  Kevin Ollivier  <kevino@theolliviers.com>
45164
45165         wx build fix for Windows after PageWin.cpp move.
45166
45167         * webcore-wx.bkl:
45168
45169 2008-03-02  Kevin Ollivier  <kevino@theolliviers.com>
45170
45171         Reviewed by Dave Hyatt.
45172
45173         Gracefully handle a CSS rule containing an invalid value.
45174         (Fixes http://bugs.webkit.org/show_bug.cgi?id=16898)
45175
45176         * css/CSSGrammar.y:
45177
45178 2008-03-02  Alp Toker  <alp@atoker.com>
45179
45180         Reviewed by Mark Rowe.
45181
45182         Improve the Cairo Path::isEmpty() function
45183
45184         Use cairo_has_current_point() where available.
45185
45186         * platform/graphics/cairo/PathCairo.cpp:
45187         (WebCore::Path::isEmpty):
45188
45189 2008-03-01  Mark Rowe  <mrowe@apple.com>
45190
45191         Reviewed by Tim Hatcher.
45192
45193         Update Xcode configuration to support building debug and release from the mysterious future.
45194
45195         * Configurations/DebugRelease.xcconfig:
45196
45197 2008-03-01  Oliver Hunt  <oliver@apple.com>
45198
45199         Reviewed by Sam Weinig.
45200
45201         Bug 16954: Support putImageData
45202         
45203         Implement support for HTML5's putImageData for the CG port.  All other ports
45204         are currently just using stubs for the final blit.
45205
45206         Test: fast/canvas/canvas-putImageData.html
45207
45208         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
45209         (WebCore::JSCanvasRenderingContext2D::putImageData):
45210         * html/CanvasRenderingContext2D.cpp:
45211         (WebCore::CanvasRenderingContext2D::putImageData):
45212         * html/CanvasRenderingContext2D.h:
45213         * platform/graphics/ImageBuffer.h:
45214         * platform/graphics/cairo/ImageBufferCairo.cpp:
45215         * platform/graphics/cg/ImageBufferCG.cpp:
45216         (WebCore::ImageBuffer::putImageData):
45217         * platform/graphics/qt/ImageBufferQt.cpp:
45218         * platform/graphics/wx/ImageBufferWx.cpp:
45219
45220 2008-03-01  Jon Honeycutt  <jhoneycutt@apple.com>
45221
45222         Reviewed by Darin.
45223
45224         <rdar://problem/5772987> Crashing viewing page with two VLC plug-in
45225         instances
45226
45227         The VLC Netscape plug-in crashes if more than one instance is created.
45228
45229         Added a quirk that disallows a plug-in from having more than one
45230         instance and set this for the VLC plug-in.
45231
45232         In addition, we now sort plug-ins that handle the same MIME
45233         type to choose the most appropriate one. This sorting first sorts by
45234         whether a plug-in has an issue that should put it at the end of the
45235         list, then whether it appears in a "preferred" plug-in directory.
45236
45237         * plugins/PluginQuirkSet.h: Added PluginQuirkDontAllowMultipleInstances.
45238         * plugins/PluginDatabase.cpp:
45239         (WebCore::PluginDatabase::preferredPluginCompare): Comparator for
45240         sorting plug-ins; calls PluginPackage::compare().
45241         (WebCore::PluginDatabase::pluginForMIMEType): Add all of the plug-ins
45242         that handle this MIME type to a list, sort the list, and return the
45243         first item.
45244         (WebCore::PluginDatabase::MIMETypeForExtension): Add all of the plug-ins
45245         that handle this extension to a list, sort the list, and return the MIME
45246         type used by the plug-in at the beginning of the list.
45247         * plugins/PluginDatabase.h:
45248         * plugins/PluginPackage.h:
45249         (WebCore::PluginPackage::version): Added; returns the module version.
45250         * plugins/win/PluginDatabaseWin.cpp:
45251         (WebCore::PluginDatabase::isPreferredPluginPath): Made static; removed
45252         const.
45253         * plugins/win/PluginPackageWin.cpp:
45254         (WebCore::PluginPackage::compare): Sorts plug-ins with known issues to
45255         the end, then plug-ins in preferred directories to the beginning, then
45256         alphabetically by file name, numerically by version, and alphabetically
45257         by parent directory.
45258         (WebCore::PluginPackage::determineQuirks): Set the "don't allow multiple
45259         instances" quirk for VLC.
45260         (WebCore::PluginPackage::load): Return false if the plug-in library has
45261         already been loaded and the "don't allow multiple instances" quirk is
45262         set.
45263         * platform/gtk/TemporaryLinkStubs.cpp:
45264         (PluginPackage::compare): Added stub.
45265         (PluginDatabase::IsPreferredPluginPath): Update the GTK stub.
45266         * platform/qt/TemporaryLinkStubs.cpp:
45267         (PluginPackage::compare): Added stub.
45268         (PluginDatabase::IsPreferredPluginPath): Update the Qt stub.
45269         * platform/wx/TemporaryLinkStubs.cpp:
45270         (PluginPackage::compare): Added stub.
45271         (PluginDatabase::IsPreferredPluginPath): Update the wx stub.
45272
45273 2008-03-01  Sam Weinig  <sam@webkit.org>
45274
45275         Rubber-stamped by Mark Rowe.
45276
45277         Remove reference to the now non-existent bridge directory.
45278
45279         * WebCore.xcodeproj/project.pbxproj:
45280
45281 2008-03-01  Sam Weinig  <sam@webkit.org>
45282
45283         Reviewed by Darin Adler.
45284
45285         Search the entire prototype chain when doing early prototype lookup in
45286         the Window's getOwnPropertySlot method.
45287
45288         Makes fast/dom/Window/window-function-name-getter-precedence.html pass all tests.
45289
45290         * bindings/js/kjs_window.cpp:
45291         (KJS::Window::getOwnPropertySlot):
45292
45293 2008-03-01  Nikolas Zimmermann  <zimmermann@kde.org>
45294
45295         Reviewed by Oliver.
45296
45297         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17568 (SVGForeignObjectElement can't react to width/height SVG DOM changes)
45298
45299         As the bug title says, fix all dynamic update problems that occour with SVGForeignObjectElement.
45300
45301         Tests: svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr.html
45302                svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr.html
45303                svg/dynamic-updates/SVGForeignObjectElement-dom-x-attr.html
45304                svg/dynamic-updates/SVGForeignObjectElement-dom-y-attr.html
45305                svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop.html
45306                svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop.html
45307                svg/dynamic-updates/SVGForeignObjectElement-svgdom-x-prop.html
45308                svg/dynamic-updates/SVGForeignObjectElement-svgdom-y-prop.html
45309
45310         * svg/SVGForeignObjectElement.cpp:
45311         (WebCore::SVGForeignObjectElement::parseMappedAttribute):
45312         (WebCore::addCSSPropertyAndNotifyAttributeMap):
45313         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
45314         * svg/SVGForeignObjectElement.h:
45315
45316 2008-02-29  Brady Eidson  <beidson@apple.com>
45317
45318         Reviewed by build-fix karma
45319
45320         Bonehead mistake.  Revert function to previous version for all non-Windows+CFNetwork platforms
45321
45322         * platform/network/ProtectionSpace.cpp:
45323         (WebCore::ProtectionSpace::receivesCredentialSecurely): Make my previous change conditionally
45324
45325 2008-02-29  Brady Eidson  <beidson@apple.com>
45326
45327         Reviewed by Darin
45328         
45329         <rdar://problem/5771227> - Incorrect password handling text in credential sheet
45330
45331         * platform/network/ProtectionSpace.cpp:
45332         (WebCore::ProtectionSpace::receivesCredentialSecurely): Call functional CFNetwork method to
45333           get "secureness" of the auth challenge instead of figuring it out ourselves
45334
45335 2008-02-29  Brent Fulgham  <bfulgham@gmail.com>
45336
45337         http://bugs.webkit.org/show_bug.cgi?id=17483
45338         Implement scrollbars on Windows (Cairo)
45339
45340         Reviewed by Adam Roben.
45341
45342         * platform/win/PlatfromScrollBarWin.cpp: Duplicate implementation
45343           from PlatformScrollBarWinSafari.cpp, then modify to use the
45344           native Windows theme engine.  Use SOFT_LINK.  Use platform
45345           'GetSystemMetrics' call to decide size of scrollbars and buttons.
45346
45347 2008-02-29  Adam Roben  <aroben@apple.com>
45348
45349         Windows build fix
45350
45351         * WebCore.vcproj/WebCore.vcproj: Remove bridge/* from the include path
45352         and the post-build event, and add page/win to each. Also let VS have
45353         its way with the order of the files.
45354         * page/win/PageWin.cpp: Copied from bridge/win/PageWin.cpp in r30673
45355         * page/win/GlobalHistoryWin.cpp: Copied from
45356         bridge/win/GlobalHistoryWin.cpp in r30673
45357
45358 2008-02-29  Anders Carlsson  <andersca@apple.com>
45359
45360         Build fix.
45361
45362         * WebCore.xcodeproj/project.pbxproj:
45363
45364 2008-02-29  Mark Rowe  <mrowe@apple.com>
45365
45366         Reviewed by Tim Hatcher.
45367
45368         64-bit build fix.
45369
45370         * platform/graphics/mac/SimpleFontDataMac.mm:
45371         (WebCore::pathFromFont): Provide stub implementation of pathFromFont for 64-bit as
45372         FMGetATSFontRefFromFont is not available.
45373
45374 2008-02-29  Mark Rowe  <mrowe@apple.com>
45375
45376         Build fix.  Only declare pathFromFont in debug builds as it is unused in release builds.
45377
45378         * platform/graphics/mac/SimpleFontDataMac.mm:
45379
45380 2008-02-29  Anders Carlsson  <andersca@apple.com>
45381
45382         Reviewed by Adam.
45383         
45384         Copy the remaining files in bridge/ over to page/
45385
45386         * WebCore.vcproj/WebCore.vcproj:
45387         * WebCore.xcodeproj/project.pbxproj:
45388         * bridge: Removed.
45389         * bridge/AXObjectCache.h: Removed.
45390         * bridge/EditorClient.h: Removed.
45391         * bridge/GlobalHistory.h: Removed.
45392         * bridge/win: Removed.
45393         * bridge/win/FrameCGWin.cpp: Removed.
45394         * bridge/win/FrameCairoWin.cpp: Removed.
45395         * bridge/win/FrameWin.cpp: Removed.
45396         * bridge/win/FrameWin.h: Removed.
45397         * bridge/win/GlobalHistoryWin.cpp: Removed.
45398         * bridge/win/PageWin.cpp: Removed.
45399         * page/AXObjectCache.h: Copied from bridge/AXObjectCache.h.
45400         * page/EditorClient.h: Copied from bridge/EditorClient.h.
45401         * page/GlobalHistory.h: Copied from bridge/GlobalHistory.h.
45402         * page/win/FrameCGWin.cpp: Copied from bridge/win/FrameCGWin.cpp.
45403         * page/win/FrameCairoWin.cpp: Copied from bridge/win/FrameCairoWin.cpp.
45404         * page/win/FrameWin.cpp: Copied from bridge/win/FrameWin.cpp.
45405         * page/win/FrameWin.h: Copied from bridge/win/FrameWin.h.
45406
45407 2008-02-29  Robert Blaut  <webkit@blaut.biz>
45408
45409         Reviewed by Darin Adler.
45410
45411         - fix http://bugs.webkit.org/show_bug.cgi?id=17532
45412           Webkit imports styles from <link> element which doesn't have rel=stylesheet defined
45413
45414         Test: fast/html/link-rel-stylesheet.html
45415
45416         * html/HTMLLinkElement.cpp:
45417         (WebCore::HTMLLinkElement::process):
45418
45419 2008-02-29  Mark Rowe  <mrowe@apple.com>
45420
45421         Reviewed by Anders Carlsson.
45422
45423         Replace use of WKPathFromFont with implementation in terms of public API.
45424
45425         * WebCore.base.exp: Remove unused symbol.
45426         * platform/graphics/mac/SimpleFontDataMac.mm:
45427         (WebCore::initFontData):
45428         (WebCore::pathFromFont): Implement pathFromFont in terms of public API.
45429         (WebCore::SimpleFontData::platformInit):
45430         * platform/mac/WebCoreSystemInterface.h: Remove unused symbol.
45431         * platform/mac/WebCoreSystemInterface.mm: Ditto.
45432
45433 2008-02-29  Anders Carlsson  <andersca@apple.com>
45434
45435         Reviewed by Adam.
45436
45437         Move a bunch of files from bridge/mac to page/mac.
45438         
45439         * WebCore.xcodeproj/project.pbxproj:
45440         * bridge/mac: Removed.
45441         * bridge/mac/AXObjectCacheMac.mm: Removed.
45442         * bridge/mac/GlobalHistoryMac.mm: Removed.
45443         * bridge/mac/WebCoreAXObject.h: Removed.
45444         * bridge/mac/WebCoreAXObject.mm: Removed.
45445         * bridge/mac/WebCoreScriptDebugger.h: Removed.
45446         * bridge/mac/WebCoreScriptDebugger.mm: Removed.
45447         * page/mac/AXObjectCacheMac.mm: Copied from bridge/mac/AXObjectCacheMac.mm.
45448         * page/mac/GlobalHistoryMac.mm: Copied from bridge/mac/GlobalHistoryMac.mm.
45449         * page/mac/WebCoreAXObject.h: Copied from bridge/mac/WebCoreAXObject.h.
45450         * page/mac/WebCoreAXObject.mm: Copied from bridge/mac/WebCoreAXObject.mm.
45451         * page/mac/WebCoreScriptDebugger.h: Copied from bridge/mac/WebCoreScriptDebugger.h.
45452         * page/mac/WebCoreScriptDebugger.mm: Copied from bridge/mac/WebCoreScriptDebugger.mm.
45453
45454 2008-02-29  David Hyatt  <hyatt@apple.com>
45455
45456         Fix for http://bugs.webkit.org/show_bug.cgi?id=17559, media query tests crashing under
45457         guard malloc.  Pass along the style selector so it can be accessed, since it has not yet
45458         been assigned into the document's member variable.
45459
45460         Reviewed by aroben
45461
45462         * css/CSSStyleSelector.cpp:
45463         (WebCore::CSSRuleSet::addRulesFromSheet):
45464         * css/MediaQueryEvaluator.cpp:
45465         (WebCore::MediaQueryEvaluator::eval):
45466         * css/MediaQueryEvaluator.h:
45467
45468 2008-02-29  David Hyatt  <hyatt@apple.com>
45469
45470         <rdar://problem/5755916> REGRESSION: Loading HTML5 spec is 5x slower on TOT than in 3.0.4
45471
45472         Improve the performance of dynamic sibling and CSS3 selectors so that there is no slowdown any more.
45473         Be more precise in terms of what nodes we mark dirty.
45474
45475         Reviewed by Beth
45476
45477         * css/CSSStyleSelector.cpp:
45478         (WebCore::CSSStyleSelector::checkSelector):
45479         * dom/Element.cpp:
45480         (WebCore::Element::recalcStyle):
45481         (WebCore::checkForSiblingStyleChanges):
45482         (WebCore::Element::childrenChanged):
45483         (WebCore::Element::finishParsingChildren):
45484         * rendering/RenderStyle.cpp:
45485         (WebCore::RenderStyle::RenderStyle):
45486         * rendering/RenderStyle.h:
45487         (WebCore::RenderStyle::childrenAffectedByPositionalRules):
45488         (WebCore::RenderStyle::childrenAffectedByDirectAdjacentRules):
45489         (WebCore::RenderStyle::setChildrenAffectedByDirectAdjacentRules):
45490
45491 2008-02-29  Alexey Proskuryakov  <ap@webkit.org>
45492
45493         Reviewed by Darin.
45494
45495         <rdar://problem/5766352> REGRESSION (r27151): XMLHttpRequest.abort() resets response status
45496
45497         Test: http/tests/xmlhttprequest/status-after-abort.html
45498
45499         * xml/XMLHttpRequest.cpp:
45500         (WebCore::XMLHttpRequest::getStatus):
45501         (WebCore::XMLHttpRequest::getStatusText):
45502         Changed to match Firefox more closely (IE just raises an exception in most of those cases).
45503
45504 2008-02-29  Dan Bernstein  <mitz@apple.com>
45505
45506         Reviewed by Darin Adler.
45507
45508         - fix a bug where explicit embedding past the end of a line could
45509           affect text that line
45510
45511         Test: fast/text/embed-at-end-of-pre-wrap-line.html
45512
45513         * rendering/bidi.cpp:
45514         (WebCore::RenderBlock::skipWhitespace): Removed calls to
45515         setAdjustEmbedding().
45516         (WebCore::RenderBlock::findNextLineBreak): Added calls to
45517         setAdjustEmbedding() around skipWhitespace() only where needed.
45518
45519 2008-02-29  Mark Rowe  <mrowe@apple.com>
45520
45521         Reviewed by Oliver Hunt.
45522
45523         Don't use WKSupportsMultipartXMixedReplace on Leopard as multipart/x-mixed-replace is always handled by NSURLRequest.
45524
45525         * platform/mac/WebCoreSystemInterface.h: Don't declare WKSupportsMultipartXMixedReplace on Leopard.
45526         * platform/mac/WebCoreSystemInterface.mm: Ditto.
45527         * platform/network/mac/ResourceRequestMac.mm:
45528         (WebCore::ResourceRequest::doUpdatePlatformRequest): Don't call WKSupportsMultipartXMixedReplace on Leopard.
45529         * WebCore.Tiger.exp: Move Tiger-only symbol here.
45530         * WebCore.base.exp:
45531
45532 2008-02-29  Mark Rowe  <mrowe@apple.com>
45533
45534         Rubber-stamped by Eric Seidel.
45535
45536         Remove unneeded includes of WebCoreSystemInterface.h.
45537
45538         * loader/mac/LoaderNSURLExtras.m:
45539         * page/mac/FrameMac.mm:
45540         * page/mac/WebCoreFrameBridge.mm:
45541         * platform/MIMETypeRegistry.cpp:
45542         * platform/graphics/mac/ImageMac.mm:
45543         * platform/mac/PasteboardMac.mm:
45544
45545 2008-02-29  Mark Rowe  <mrowe@apple.com>
45546
45547         Reviewed by Oliver Hunt and Oliver Hunt.
45548
45549         <rdar://problem/4753845> WebKit should use CGEventSourceSecondsSinceLastEventType in place of WKSecondsSinceLastInputEvent SPI.
45550
45551         * platform/mac/SystemTimeMac.cpp:  Replace use of WKSecondsSinceLastInputEvent with CGEventSourceSecondsSinceLastEventType.
45552         * platform/mac/WebCoreSystemInterface.h:  Remove unused symbol.
45553         * platform/mac/WebCoreSystemInterface.mm:  Ditto.
45554         * WebCore.base.exp:  Ditto.
45555
45556 2008-02-28  Mark Rowe  <mrowe@apple.com>
45557
45558         Reviewed by Dave Hyatt.
45559
45560         Make use of new CGFont APIs on Leopard rather than making a WebKitSystemInterface call.
45561
45562         * DerivedSources.make:  Add Tiger-only symbols to the export file when running on Tiger.
45563         * WebCore.Tiger.exp:  Added.  Move Tiger-only symbol here from WebCore.base.exp.
45564         * WebCore.base.exp:
45565         * platform/graphics/mac/SimpleFontDataMac.mm:
45566         (WebCore::SimpleFontData::platformInit):  Use Leopard APIs when building on Leopard.
45567         * platform/mac/WebCoreSystemInterface.h:  Don't declare wkGetFontMetrics on Leopard as it is unused.
45568         * platform/mac/WebCoreSystemInterface.mm:  Ditto.
45569
45570 2008-02-28  Matt Lilek  <webkit@mattlilek.com>
45571
45572         Reviewed by Tim Hatcher.
45573
45574         Bug 16535: Stylesheets loaded with @import are not editable
45575         http://bugs.webkit.org/show_bug.cgi?id=16535
45576         <rdar://problem/5712899>
45577
45578         Sheets loaded using @import were incorrectly being flagged as non-editable
45579         user agent sheets because their parent sheet doesn't have an ownerNode. We now
45580         check to make sure sheets also don't have a href before restricting their editability.
45581
45582         * page/inspector/StylesSidebarPane.js:
45583
45584 2008-02-28  Rodney Dawes  <dobey@wayofthemonkey.com>
45585
45586         Reviewed by Adam Roben.
45587
45588         Copy PluginPackageWin.cpp to shared PluginPackage.cpp.
45589         Add PluginPackage.cpp to build configurations.
45590         Remove PluginPackage destructor from TemporaryLinkStubs.cpp.
45591         Use cross-platform pathGetFilename method.
45592         Remove platform-specific code from shared PluginPackage implementation.
45593         Remove shared code from PluginPackageWin.cpp.
45594
45595         * GNUmakefile.am:
45596         * WebCore.pro:
45597         * WebCoreSources.bkl:
45598         * WebCore.vcproj/WebCore.vcproj:
45599         * platform/gtk/TemporaryLinkStubs.cpp:
45600         * platform/qt/TemporaryLinkStubs.cpp:
45601         * platform/wx/TemporaryLinkStubs.cpp:
45602         * plugins/PluginPackage.cpp:
45603         * plugins/win/PluginPackageWin.cpp:
45604
45605 2008-02-28  Justin Garcia  <justin.garcia@apple.com>
45606
45607         Reviewed by Darin Adler.
45608
45609         <rdar://problem/4930986> REGRESSION: Paste As Quotation pastes black text instead of blue
45610         
45611         Add a second style span at copy time to hold document default styles.  This helps us
45612         differentiate between those and user applied styles at paste time, where we'll want
45613         to let Mail's Paste As Quotation blockquote override document default styles, but
45614         not others.
45615
45616         * css/CSSComputedStyleDeclaration.cpp:
45617         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed the unit type used 
45618         for -webkit-text-stroke-width from CSS_NUMBER to CSS_PX, to match other properties that 
45619         are thick | medium | thin | <length>.  Before, there was a mismatch between the unit 
45620         type of -webkit-text-stroke-width property values in a CSSComputedStyleDeclaration for 
45621         an element and that element's inlineStyleDecl(), causing identical values to always appear 
45622         different to diff().
45623         * editing/ReplaceSelectionCommand.cpp:
45624         (WebCore::ReplaceSelectionCommand::handlePasteAsQuotationNode): Fixed.  Don't just change
45625         the class to an empty string, completely remove it, it's no longer needed.
45626         (WebCore::handleStyleSpansBeforeInsertion): Moved the optimization from doApply here.
45627         (WebCore::ReplaceSelectionCommand::handleStyleSpans): 
45628         Added, replaces removeRedundantStyles.
45629         We aren't (yet) removing all redundant styles, just those on style spans, so I removed the
45630         unused code and renamed the function.
45631         There won't be more than two style spans that we need to consider, the one with the 
45632         source document's default styles and styles on the commonAncestor of the copied Range, 
45633         so don't look for more than two.
45634         Let elements that wrap the incoming fragment override the source document's styles.
45635         (WebCore::ReplaceSelectionCommand::doApply): Moved code to handleStyleSpansBeforeInsertion
45636         and call the renamed handleStyleSpans.
45637         * editing/ReplaceSelectionCommand.h:
45638         * editing/markup.cpp:
45639         (WebCore::removeDefaultStyles): Added.  Don't add document defaults to the style span
45640         that holds user applied styles, since they'll be added to their own style span.
45641         (WebCore::createMarkup):
45642         Add a second style span that holds just the document defaults. This lets us differentiate
45643         between those and user applied styles at paste time.
45644         Mail blockquotes are just another type of special element, moved their handling there. This
45645         also lets paste code make assumptions about the position of the two style spans (they are 
45646         *always* parent-child).
45647
45648 2008-02-28  Brent Fulgham <bfulgham@gmail.com>
45649
45650         http://bugs.webkit.org/show_bug.cgi?id=17576
45651         Modify RenderThemeWin to use SOFT_LINK
45652
45653         Reviewed by Adam Roben.
45654
45655         * rendering/RenderThemeWin.h: Remove unneeded library handle
45656         * rendering/RenderThemeWin.cpp: Change to use SOFT_LINK
45657           rather than hand-coded load library calls.
45658
45659 2008-02-28  Dan Bernstein  <mitz@apple.com>
45660
45661         Reviewed by Darin Adler.
45662
45663         - fix http://bugs.webkit.org/show_bug.cgi?id=17590
45664           ASSERTION FAILED: subject in jsRegExpExecute()
45665
45666         * page/mac/FrameMac.mm:
45667         (WebCore::Frame::matchLabelsAgainstElement): Added an early return in
45668         case the element name is empty.
45669
45670 2008-02-28  Justin Garcia  <justin.garcia@apple.com>
45671
45672         Reviewed by Dan Bernstein
45673         
45674         Small editing speed up.
45675         
45676         * dom/Position.cpp:
45677         (WebCore::Position::upstream): Don't check for a change in editability
45678         if the current node hasn't changed.
45679         (WebCore::Position::downstream): Ditto.
45680
45681 2008-02-27  Dan Bernstein  <mitz@apple.com>
45682
45683         Reviewed by John Sullivan.
45684
45685         - fix <rdar://problem/5607547> Single letter surrounded by soft hyphens can disappear
45686
45687         Test: fast/text/soft-hyphen-2.html
45688
45689         * rendering/bidi.cpp:
45690         (WebCore::chopMidpointsAt): Changed to iterate midpoints backwards, so
45691         that if there are two midpoints at the given position, only the last one
45692         will be chopped off.
45693
45694 2008-02-27  Dan Bernstein  <mitz@apple.com>
45695
45696         Reviewed by Darin Adler.
45697
45698         - make centered text in right-to-left blocks spill over to the left
45699
45700         Test: fast/text/align-center-rtl-spill.html
45701
45702         * rendering/bidi.cpp:
45703         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
45704
45705 2008-02-27  Dan Bernstein  <mitz@apple.com>
45706
45707         Reviewed by Darin Adler.
45708
45709         - more bidi.cpp cleanup
45710
45711         * platform/text/BidiResolver.h:
45712         (WebCore::BidiCharacterRun::destroy): Added. Overridden by BidiRun .
45713         (WebCore::BidiResolver<Iterator, Run>::addRun): Moved BidiState::addRun()
45714         here.
45715         (WebCore::BidiResolver<Iterator, Run>::appendRun): Changed to use
45716         addRun().
45717         (WebCore::BidiResolver<Iterator, Run>::deleteRuns): Changed to use
45718         destroy(), avoiding the need to specialize this method in BidiState.
45719         * rendering/bidi.cpp:
45720         (WebCore::BidiRun::destroy): Removed the RenderArena parameter.
45721         (WebCore::BidiState::deleteRuns): Removed now-unnecessary specialization.
45722         (WebCore::BidiState::addRun): Removed now-unnecessary specialization.
45723         (WebCore::RenderBlock::createLineBoxes): 
45724         (WebCore::RenderBlock::constructLine):
45725         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Added a FIXME.
45726         (WebCore::RenderBlock::computeVerticalPositionsForLine):
45727         (WebCore::buildCompactRuns):
45728         (WebCore::RenderBlock::layoutInlineChildren):
45729         (WebCore::RenderBlock::determineStartPosition):
45730         (WebCore::RenderBlock::determineEndPosition):
45731         (WebCore::RenderBlock::matchedEndLine):
45732         (WebCore::skipNonBreakingSpace):
45733         (WebCore::RenderBlock::skipWhitespace):
45734         (WebCore::shouldSkipWhitespaceAfterStartObject):
45735         * rendering/bidi.h:
45736         (WebCore::BidiRun): Added m_ prefixes to several member variables. 
45737
45738 2008-02-27  Sam Weinig  <sam@webkit.org>
45739
45740         Reviewed by Darin.
45741
45742         Fix for <rdar://problem/5768769>
45743
45744         - Don't allow cross-origin calls using window.functionName.call(otherFrame)
45745           syntax.
45746
45747         * bindings/js/JSLocation.cpp:
45748         (WebCore::jsLocationProtoFuncToString): Do same-origin check.
45749         * bindings/js/kjs_window.cpp:
45750         (KJS::windowProtoFuncAToB): Ditto.
45751         (KJS::windowProtoFuncBToA): Ditto.
45752         (KJS::windowProtoFuncOpen): Ditto.
45753         (KJS::windowProtoFuncClearTimeout): Ditto.
45754         * bindings/scripts/CodeGeneratorJS.pm: Ditto.
45755
45756 2008-02-27  David Hyatt  <hyatt@apple.com>
45757
45758         More cleanup in preparation for fixing the HTML5 spec performance regression.
45759
45760         Reviewed by Sam Weinig
45761
45762         * dom/Attr.cpp:
45763         (WebCore::Attr::childrenChanged):
45764         * dom/Attr.h:
45765         * dom/ContainerNode.cpp:
45766         (WebCore::ContainerNode::insertBefore):
45767         (WebCore::ContainerNode::replaceChild):
45768         (WebCore::ContainerNode::removeChild):
45769         (WebCore::ContainerNode::removeChildren):
45770         (WebCore::ContainerNode::appendChild):
45771         (WebCore::ContainerNode::addChild):
45772         (WebCore::ContainerNode::childrenChanged):
45773         * dom/ContainerNode.h:
45774         * dom/Document.cpp:
45775         (WebCore::Document::childrenChanged):
45776         * dom/Document.h:
45777         * dom/Element.cpp:
45778         (WebCore::Element::childrenChanged):
45779         * dom/Element.h:
45780         * dom/Node.h:
45781         (WebCore::Node::childrenChanged):
45782         * html/HTMLObjectElement.cpp:
45783         (WebCore::HTMLObjectElement::childrenChanged):
45784         * html/HTMLObjectElement.h:
45785         * html/HTMLOptGroupElement.cpp:
45786         (WebCore::HTMLOptGroupElement::childrenChanged):
45787         * html/HTMLOptGroupElement.h:
45788         * html/HTMLOptionElement.cpp:
45789         (WebCore::HTMLOptionElement::childrenChanged):
45790         * html/HTMLOptionElement.h:
45791         * html/HTMLScriptElement.cpp:
45792         (WebCore::HTMLScriptElement::childrenChanged):
45793         * html/HTMLScriptElement.h:
45794         * html/HTMLSelectElement.cpp:
45795         (WebCore::HTMLSelectElement::childrenChanged):
45796         * html/HTMLSelectElement.h:
45797         * html/HTMLStyleElement.cpp:
45798         (WebCore::HTMLStyleElement::childrenChanged):
45799         * html/HTMLStyleElement.h:
45800         * html/HTMLTextAreaElement.cpp:
45801         (WebCore::HTMLTextAreaElement::childrenChanged):
45802         * html/HTMLTextAreaElement.h:
45803         * html/HTMLTitleElement.cpp:
45804         (WebCore::HTMLTitleElement::childrenChanged):
45805         * html/HTMLTitleElement.h:
45806         * svg/SVGClipPathElement.cpp:
45807         (WebCore::SVGClipPathElement::childrenChanged):
45808         * svg/SVGClipPathElement.h:
45809         * svg/SVGDefinitionSrcElement.cpp:
45810         (WebCore::SVGDefinitionSrcElement::childrenChanged):
45811         * svg/SVGDefinitionSrcElement.h:
45812         * svg/SVGFontFaceElement.cpp:
45813         (WebCore::SVGFontFaceElement::childrenChanged):
45814         * svg/SVGFontFaceElement.h:
45815         * svg/SVGFontFaceFormatElement.cpp:
45816         (WebCore::SVGFontFaceFormatElement::childrenChanged):
45817         * svg/SVGFontFaceFormatElement.h:
45818         * svg/SVGFontFaceSrcElement.cpp:
45819         (WebCore::SVGFontFaceSrcElement::childrenChanged):
45820         * svg/SVGFontFaceSrcElement.h:
45821         * svg/SVGFontFaceUriElement.cpp:
45822         (WebCore::SVGFontFaceUriElement::childrenChanged):
45823         * svg/SVGFontFaceUriElement.h:
45824         * svg/SVGGElement.cpp:
45825         (WebCore::SVGGElement::childrenChanged):
45826         * svg/SVGGElement.h:
45827         * svg/SVGGradientElement.cpp:
45828         (WebCore::SVGGradientElement::childrenChanged):
45829         * svg/SVGGradientElement.h:
45830         * svg/SVGMarkerElement.cpp:
45831         (WebCore::SVGMarkerElement::childrenChanged):
45832         * svg/SVGMarkerElement.h:
45833         * svg/SVGMaskElement.cpp:
45834         (WebCore::SVGMaskElement::childrenChanged):
45835         * svg/SVGMaskElement.h:
45836         * svg/SVGPatternElement.cpp:
45837         (WebCore::SVGPatternElement::childrenChanged):
45838         * svg/SVGPatternElement.h:
45839         * svg/SVGStyleElement.cpp:
45840         (WebCore::SVGStyleElement::childrenChanged):
45841         * svg/SVGStyleElement.h:
45842         * svg/SVGStyledElement.cpp:
45843         (WebCore::SVGStyledElement::childrenChanged):
45844         * svg/SVGStyledElement.h:
45845         * svg/SVGTitleElement.cpp:
45846         (WebCore::SVGTitleElement::childrenChanged):
45847         * svg/SVGTitleElement.h:
45848         * svg/SVGUseElement.cpp:
45849         (WebCore::SVGUseElement::childrenChanged):
45850         * svg/SVGUseElement.h:
45851
45852 2008-02-27  Julien Chaffraix <julien.chaffraix@gmail.com>
45853
45854         Reviewed by Alexey.
45855
45856         http://bugs.webkit.org/show_bug.cgi?id=17481
45857         Several consecutive calls to XMLHttpRequest::open should dispatch only one readyState event
45858
45859         Test: http/tests/xmlhttprequest/xmlhttprequest-multiple-open.html
45860
45861         * xml/XMLHttpRequest.cpp:
45862         (WebCore::XMLHttpRequest::open):
45863
45864 2008-02-27  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
45865
45866         Reviewed, tweaked and landed by ap.
45867
45868         http://bugs.webkit.org/show_bug.cgi?id=17487
45869         HTMLInput mysteriously fails to work if ICU dat file is missing
45870
45871         * platform/text/TextBreakIteratorICU.cpp: (WebCore::setUpIterator): Assert that the iterator
45872         has been opened.
45873
45874 2008-02-27  Adam Roben  <aroben@apple.com>
45875
45876         Windows build fix after r30616
45877
45878         * platform/win/ClipboardWin.cpp:
45879
45880 2008-02-27  Nikolas Zimmermann  <zimmermann@kde.org>
45881
45882         Reviewed by Simon.
45883
45884         Small style cleanup, and obvious fix: SVGGElement reacted on
45885         'clipPathUnits' changes, which is a funny copy&paste error.
45886
45887         * svg/SVGGElement.cpp:
45888         (WebCore::SVGGElement::parseMappedAttribute):
45889         (WebCore::SVGGElement::svgAttributeChanged):
45890         (WebCore::SVGGElement::createRenderer):
45891
45892 2008-02-27  Nikolas Zimmermann  <zimmermann@kde.org>
45893
45894         Reviewed by Simon.
45895
45896         Cleanup coding style. Still on my way to fix dynamic updates of all SVG elements.
45897         Currently at SVGF*. SVGDefs/DescElement don't need any dyn update fixes but cleanups.
45898
45899         * svg/SVGDefsElement.cpp:
45900         (WebCore::SVGDefsElement::createRenderer):
45901         * svg/SVGDefsElement.h:
45902         * svg/SVGDescElement.h:
45903
45904 2008-02-26  Antti Koivisto  <antti@apple.com>
45905
45906         Reviewed by Darin.
45907
45908         Fix <rdar://problem/5761326>
45909         REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
45910         
45911         Generate better code with VS:
45912         - Use ALWAYS_INLINE macro to guarantee versions of allowsAccessFrom() are reduced to single functions
45913         - Refactor error reporting so that there is no need to construct/destruct Strings in common cases
45914         - Add a separate version of the function for cases where error messages are not wanted
45915
45916         * bindings/js/JSDOMWindowCustom.cpp:
45917         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
45918         * bindings/js/kjs_window.cpp:
45919         (KJS::Window::allowsAccessFrom):
45920         (KJS::Window::allowsAccessFromNoErrorMessage):
45921         (KJS::Window::allowsAccessFromPrivate):
45922         (KJS::Window::crossDomainAccessErrorMessage):
45923         * bindings/js/kjs_window.h:
45924
45925 2008-02-26  Sam Weinig  <sam@webkit.org>
45926
45927         Reviewed by Dave Hyatt.
45928
45929         - remove DeprecatedCString, DeprecatedArray, and ArrayImpl.
45930
45931         * GNUmakefile.am:
45932         * WebCore.pro:
45933         * WebCore.vcproj/WebCore.vcproj:
45934         * WebCore.xcodeproj/project.pbxproj:
45935         * WebCoreSources.bkl:
45936         * platform/ArrayImpl.cpp: Removed.
45937         * platform/ArrayImpl.h: Removed.
45938         * platform/DeprecatedArray.h: Removed.
45939         * platform/DeprecatedCString.cpp: Removed.
45940         * platform/DeprecatedCString.h: Removed.
45941         * platform/text/CString.cpp:
45942         (WebCore::CString::length):
45943         * platform/text/CString.h:
45944
45945 2008-02-26  David Hyatt  <hyatt@apple.com>
45946
45947         Cleanup of childrenChanged in preparation for fixing the HTML5 spec slowdown.
45948
45949         Reviewed by Sam Weinig
45950
45951         * dom/Attr.cpp:
45952         (WebCore::Attr::childrenChanged):
45953         * dom/ContainerNode.cpp:
45954         (WebCore::ContainerNode::insertBefore):
45955         (WebCore::ContainerNode::replaceChild):
45956         (WebCore::ContainerNode::removeChild):
45957         (WebCore::ContainerNode::removeChildren):
45958         (WebCore::ContainerNode::appendChild):
45959         (WebCore::ContainerNode::addChild):
45960         (WebCore::ContainerNode::childrenChanged):
45961         * dom/ContainerNode.h:
45962         * dom/EventTargetNode.cpp:
45963         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
45964         * dom/EventTargetNode.h:
45965         * dom/NamedAttrMap.cpp:
45966         (WebCore::NamedAttrMap::addAttribute):
45967         (WebCore::NamedAttrMap::removeAttribute):
45968
45969 2008-02-26  Darin Adler  <darin@apple.com>
45970
45971         Reviewed by Sam.
45972
45973         - remove use of DeprecatedCString from Windows pasteboard code
45974
45975         * platform/win/ClipboardUtilitiesWin.cpp:
45976         (WebCore::createGlobalData): Added an overload for Vector<char>.
45977         Streamlined the logic a bit.
45978         (WebCore::append): Added. Helper functions for appending to a
45979         Vector<char>.
45980         (WebCore::markupToCF_HTML): Rewrote to use Vector<char> instead
45981         of DeprecatedCString. Also simplified the logic a bit and used
45982         macros to handle the integer width.
45983         (WebCore::urlToMarkup): Use Vector<UChar> instead of String.
45984         (WebCore::replaceNewlinesWithWindowsStyleNewlines): Tweaked.
45985         * platform/win/ClipboardUtilitiesWin.h: Update type of return
45986         value from markupToCF_HTML. Did a bit of streamlining too.
45987         * platform/win/ClipboardWin.cpp:
45988         (WebCore::writeURL): Update for above changes.
45989         (WebCore::ClipboardWin::declareAndWriteDragImage): Ditto.
45990         (WebCore::ClipboardWin::writeRange): Ditto.
45991         * platform/win/PasteboardWin.cpp:
45992         (WebCore::Pasteboard::writeSelection): Ditto.
45993         (WebCore::Pasteboard::writeURL): Ditto.
45994
45995 2008-02-26  Timothy Hatcher  <timothy@apple.com>
45996
45997         Reviewed by Adam Roben.
45998
45999         <rdar://problem/5712777> REGRESSION: Arrow up/down in inspector
46000         source list does not scroll when item at edge is reached (16572)
46001
46002         Use scrollIntoViewIfNeeded() instead of the hand-rolled scrollToElement
46003         we were using in utilities.js.
46004
46005         * page/inspector/DocumentPanel.js: Use scrollIntoViewIfNeeded instead of scrollToElement.
46006         * page/inspector/Resource.js: Ditto.
46007         * page/inspector/inspector.js: Ditto.
46008         * page/inspector/SourcePanel.js: Use scrollIntoViewIfNeeded instead
46009         of scrollIntoView, so the source line is centered in the view if needed.
46010         * page/inspector/utilities.js: Removed scrollToElement().
46011
46012 2008-02-26  David Hyatt  <hyatt@apple.com>
46013
46014         Reviewed by Dan
46015
46016         http://bugs.webkit.org/show_bug.cgi?id=17485
46017
46018         Refine our behavior for empty inlines so that they work more correctly with margins/borders/padding.
46019         Fixes a regression on huffingtonpost.com.
46020
46021         New tests added to fast/inline
46022
46023         * rendering/InlineFlowBox.cpp:
46024         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
46025         (WebCore::InlineFlowBox::placeBoxesVertically):
46026         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
46027         * rendering/RenderFlow.cpp:
46028         (WebCore::RenderFlow::calcMargins):
46029         * rendering/RenderFlow.h:
46030         * rendering/RenderObject.h:
46031         (WebCore::RenderObject::hasHorizontalBordersPaddingOrMargin):
46032         (WebCore::RenderObject::hasHorizontalBordersOrPadding):
46033         * rendering/bidi.cpp:
46034         (WebCore::getBorderPaddingMargin):
46035         (WebCore::RenderBlock::layoutInlineChildren):
46036         (WebCore::inlineFlowRequiresLineBox):
46037
46038 2008-02-26  Sam Weinig  <sam@webkit.org>
46039
46040         Fix Windows build.
46041
46042         * platform/text/PlatformString.h:
46043         (WebCore::reverseFind):
46044
46045 2008-02-26  Dan Bernstein  <mitz@apple.com>
46046
46047         Reviewed by Darin Adler.
46048
46049         - fix http://bugs.webkit.org/show_bug.cgi?id=17555
46050           <rdar://problem/5766016> REGRESSION (r27351): Thumbnails positioned wrong on Getty Images results page
46051
46052         Test: fast/dynamic/subtree-table-cell-height.html
46053
46054         * rendering/RenderObject.cpp:
46055         (WebCore::objectIsRelayoutBoundary): Exclude table cells, since their
46056         height depends on their contents even if the CSS height property is
46057         fixed.
46058
46059 2008-02-25  Sam Weinig  <sam@webkit.org>
46060
46061         Reviewed by Dan Bernstein.
46062
46063         Make the cleanPath function in CSSStyleSelector more efficient by using
46064         a Vector<UChar>.
46065
46066         * css/CSSStyleSelector.cpp:
46067         (WebCore::cleanPath): Make this function work on a Vector<UChar> instead
46068         of a String.  Also remove unnecessary reverseFind call that could be acomplished
46069         with two compares.
46070         (WebCore::checkPseudoState): Remove reserveCapacity calls now that we are using
46071         a stack buffer.
46072         * platform/text/PlatformString.h:
46073         (WebCore::find): Make this find generic enough that it can be used for
46074         String::find.
46075         (WebCore::reverseFind): Implement reverseFind so that it can be used
46076         for with a UChar* and length.
46077         * platform/text/StringImpl.cpp:
46078         (WebCore::StringImpl::find): Use implementation in PlatformString.cpp
46079         (WebCore::StringImpl::reverseFind): Ditto,
46080
46081 2008-02-26  Satoshi Nakagawa  <artension@gmail.com>
46082
46083         Reviewed by Darin. Tweaked and landed by Alexey.
46084
46085         http://bugs.webkit.org/show_bug.cgi?id=17411
46086         Ideographic comma and full stop should be treated as line-breakable characters
46087
46088         Test: fast/text/line-breaks-after-ideographic-comma-or-full-stop.html
46089
46090         * platform/text/CharacterNames.h: Added ideographicComma and ideographicFullStop.
46091         * rendering/break_lines.cpp: (WebCore::shouldBreakAfter): Added a workaround for an issue in
46092         Unicode 5.0 that is causing this.
46093
46094 2008-02-26  Darin Fisher  <darin@chromium.org>
46095
46096         Reviewed by eseidel.  Landed by eseidel
46097
46098         Fix improperly initialized m_isUpToDate member variable.
46099         Fixs 50+ layout tests when run on Tiger.
46100         http://bugs.webkit.org/show_bug.cgi?id=17549
46101
46102         * platform/network/cf/ResourceResponse.h:
46103         (WebCore::ResourceResponse::ResourceResponse):
46104         * platform/network/mac/ResourceResponse.h:
46105         (WebCore::ResourceResponse::ResourceResponse):
46106
46107 2008-02-25  Dan Bernstein  <mitz@apple.com>
46108
46109         Reviewed by Sam Weinig.
46110
46111         - fix http://bugs.webkit.org/show_bug.cgi?id=17152
46112           Paragraphs indented with :first-letter and text-align CSS render incorrectly
46113
46114         Test: fast/text/apply-start-width-after-skipped-text.html
46115
46116         * rendering/bidi.cpp:
46117         (WebCore::RenderBlock::findNextLineBreak): Improved the logic for when
46118         to figure in the padding, border and margin before a text node when the
46119         line begins inside a text node.
46120
46121 2008-02-25  Kevin Ollivier  <kevino@theolliviers.com>
46122
46123         Windows build fix for wx port.
46124
46125         * loader/FTPDirectoryDocument.cpp:
46126
46127 2008-02-25  Mark Rowe  <mrowe@apple.com>
46128
46129         Windows build fix.
46130
46131         * platform/network/cf/ResourceResponseCFNet.cpp:
46132         (WebCore::ResourceResponse::platformCompare):  Implement platformCompare for ResourceResponseCFNet.cpp.
46133
46134 2008-02-25  Beth Dakin  <bdakin@apple.com>
46135
46136         Reviewed by Geoff.
46137
46138         Fixed for <rdar://problem/5760530> REGRESSION: Assertion failure in 
46139         Document::removePendingSheet() from r30438
46140
46141         r30438 added a call to CachedResource::error() from inside 
46142         Loader::didReceiveData() if a CSS file 4xxs. There was an 
46143         assumption in the loader, though, that either error() would be 
46144         called, or didFinishLoading() would be called, so some work is 
46145         duplicated in each. Now that we are calling an error() on files 
46146         that will also make it to didFinishLoading() (since they succeeded 
46147         in the network layer), we need to make sure we do not duplicate the 
46148         work. CachedCSSStyleSheet::error() calls checkNotify, which ends up 
46149         decrementing the document's pending style sheet counter. 
46150         checkNotify() was still getting called, though, through the normal  
46151         didFinishLoading code path, and the counter was being decremented 
46152         twice. Bad!
46153
46154         * loader/loader.cpp:
46155         (WebCore::Loader::didFinishLoading):
46156         (WebCore::Loader::didReceiveData):
46157
46158 2008-02-25  Mark Rowe  <mrowe@apple.com>
46159
46160         Fix the Gtk, wx and Qt builds.
46161
46162         * GNUmakefile.am: Add new files.
46163         * WebCore.pro: Ditto.
46164         * WebCoreSources.bkl: Ditto.
46165         * platform/network/AuthenticationChallengeBase.h: Fix up argument types.
46166
46167 2008-02-25  Darin Fisher  <darin@chromium.org>
46168
46169         Reviewed by Darin Adler.
46170
46171         Eliminate some #ifdefs from headers in platform/network.
46172         http://bugs.webkit.org/show_bug.cgi?id=17210
46173
46174         * WebCore.base.exp:
46175         * WebCore.order:
46176         * WebCore.vcproj/WebCore.vcproj:
46177         * WebCore.xcodeproj/project.pbxproj:
46178         * dom/XMLTokenizer.cpp:
46179         * loader/ResourceLoader.h:
46180         * platform/network/AuthenticationChallenge.cpp: Removed.
46181         * platform/network/AuthenticationChallenge.h: Removed.
46182         * platform/network/AuthenticationChallengeBase.cpp: Copied from platform/network/AuthenticationChallenge.cpp.
46183         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
46184         (WebCore::AuthenticationChallengeBase::previousFailureCount):
46185         (WebCore::AuthenticationChallengeBase::proposedCredential):
46186         (WebCore::AuthenticationChallengeBase::protectionSpace):
46187         (WebCore::AuthenticationChallengeBase::failureResponse):
46188         (WebCore::AuthenticationChallengeBase::error):
46189         (WebCore::AuthenticationChallengeBase::isNull):
46190         (WebCore::AuthenticationChallengeBase::nullify):
46191         (WebCore::AuthenticationChallengeBase::compare):
46192         * platform/network/AuthenticationChallengeBase.h: Copied from platform/network/AuthenticationChallenge.h.
46193         (WebCore::AuthenticationChallengeBase::platformCompare):
46194         (WebCore::operator==):
46195         (WebCore::operator!=):
46196         * platform/network/ResourceError.cpp: Removed.
46197         * platform/network/ResourceError.h: Removed.
46198         * platform/network/ResourceErrorBase.cpp: Copied from platform/network/ResourceError.cpp.
46199         (WebCore::ResourceErrorBase::lazyInit):
46200         (WebCore::ResourceErrorBase::compare):
46201         * platform/network/ResourceErrorBase.h: Copied from platform/network/ResourceError.h.
46202         (WebCore::ResourceErrorBase::isNull):
46203         (WebCore::ResourceErrorBase::domain):
46204         (WebCore::ResourceErrorBase::errorCode):
46205         (WebCore::ResourceErrorBase::failingURL):
46206         (WebCore::ResourceErrorBase::localizedDescription):
46207         (WebCore::ResourceErrorBase::ResourceErrorBase):
46208         (WebCore::ResourceErrorBase::platformLazyInit):
46209         (WebCore::ResourceErrorBase::platformCompare):
46210         (WebCore::operator==):
46211         * platform/network/ResourceResponseBase.cpp:
46212         (WebCore::ResourceResponseBase::isHTTP):
46213         (WebCore::ResourceResponseBase::url):
46214         (WebCore::ResourceResponseBase::setUrl):
46215         (WebCore::ResourceResponseBase::mimeType):
46216         (WebCore::ResourceResponseBase::setMimeType):
46217         (WebCore::ResourceResponseBase::expectedContentLength):
46218         (WebCore::ResourceResponseBase::setExpectedContentLength):
46219         (WebCore::ResourceResponseBase::textEncodingName):
46220         (WebCore::ResourceResponseBase::setTextEncodingName):
46221         (WebCore::ResourceResponseBase::suggestedFilename):
46222         (WebCore::ResourceResponseBase::setSuggestedFilename):
46223         (WebCore::ResourceResponseBase::httpStatusCode):
46224         (WebCore::ResourceResponseBase::setHTTPStatusCode):
46225         (WebCore::ResourceResponseBase::httpStatusText):
46226         (WebCore::ResourceResponseBase::setHTTPStatusText):
46227         (WebCore::ResourceResponseBase::httpHeaderField):
46228         (WebCore::ResourceResponseBase::setHTTPHeaderField):
46229         (WebCore::ResourceResponseBase::httpHeaderFields):
46230         (WebCore::ResourceResponseBase::isAttachment):
46231         (WebCore::ResourceResponseBase::setExpirationDate):
46232         (WebCore::ResourceResponseBase::expirationDate):
46233         (WebCore::ResourceResponseBase::setLastModifiedDate):
46234         (WebCore::ResourceResponseBase::lastModifiedDate):
46235         (WebCore::ResourceResponseBase::lazyInit):
46236         (WebCore::ResourceResponseBase::compare):
46237         * platform/network/ResourceResponseBase.h:
46238         (WebCore::ResourceResponseBase::ResourceResponseBase):
46239         (WebCore::ResourceResponseBase::platformLazyInit):
46240         (WebCore::ResourceResponseBase::platformCompare):
46241         (WebCore::operator==):
46242         * platform/network/cf/AuthenticationCF.cpp:
46243         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
46244         (WebCore::AuthenticationChallenge::platformCompare):
46245         * platform/network/cf/AuthenticationChallenge.h: Added.
46246         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
46247         (WebCore::AuthenticationChallenge::sourceHandle):
46248         (WebCore::AuthenticationChallenge::cfURLAuthChallengeRef):
46249         * platform/network/cf/ResourceError.h: Added.
46250         (WebCore::ResourceError::ResourceError):
46251         * platform/network/cf/ResourceErrorCF.cpp:
46252         (WebCore::ResourceError::ResourceError):
46253         (WebCore::ResourceError::platformLazyInit):
46254         (WebCore::ResourceError::platformCompare):
46255         (WebCore::ResourceError::operator CFStreamError):
46256         * platform/network/cf/ResourceResponse.h:
46257         (WebCore::ResourceResponse::ResourceResponse):
46258         * platform/network/cf/ResourceResponseCFNet.cpp:
46259         (WebCore::ResourceResponse::platformLazyInit):
46260         * platform/network/curl/AuthenticationChallenge.h: Added.
46261         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
46262         * platform/network/curl/ResourceError.h: Added.
46263         (WebCore::ResourceError::ResourceError):
46264         * platform/network/curl/ResourceResponse.h:
46265         (WebCore::ResourceResponse::ResourceResponse):
46266         * platform/network/mac/AuthenticationChallenge.h: Added.
46267         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
46268         (WebCore::AuthenticationChallenge::sender):
46269         (WebCore::AuthenticationChallenge::nsURLAuthenticationChallenge):
46270         * platform/network/mac/AuthenticationMac.mm:
46271         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
46272         (WebCore::AuthenticationChallenge::platformCompare):
46273         * platform/network/mac/ResourceError.h: Added.
46274         (WebCore::ResourceError::ResourceError):
46275         * platform/network/mac/ResourceErrorMac.mm:
46276         (WebCore::ResourceError::platformLazyInit):
46277         (WebCore::ResourceError::platformCompare):
46278         * platform/network/mac/ResourceResponse.h:
46279         (WebCore::ResourceResponse::ResourceResponse):
46280         * platform/network/mac/ResourceResponseMac.mm:
46281         (WebCore::ResourceResponse::platformLazyInit):
46282         (WebCore::ResourceResponse::platformCompare):
46283         * platform/network/qt/AuthenticationChallenge.h: Added.
46284         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
46285         * platform/network/qt/ResourceError.h: Added.
46286         (WebCore::ResourceError::ResourceError):
46287         * platform/network/qt/ResourceResponse.h:
46288         (WebCore::ResourceResponse::ResourceResponse):
46289         * xml/XSLTProcessor.cpp:
46290
46291 2008-02-25  Anders Carlsson  <andersca@apple.com>
46292
46293         Reviewed by Darin.
46294
46295         Move remaining render style objects over to start with a refcount of 1 and get
46296         rid of DeprecatedDataRef.
46297         
46298         * rendering/DataRef.h:
46299         (WebCore::DataRef::operator*):
46300         (WebCore::DataRef::operator->):
46301         * rendering/RenderStyle.h:
46302         * rendering/SVGRenderStyle.cpp:
46303         (WebCore::SVGRenderStyle::SVGRenderStyle):
46304         * rendering/SVGRenderStyle.h:
46305         (WebCore::SVGRenderStyle::create):
46306         (WebCore::SVGRenderStyle::copy):
46307         * rendering/SVGRenderStyleDefs.cpp:
46308         (StyleFillData::StyleFillData):
46309         (StyleStrokeData::StyleStrokeData):
46310         (StyleStopData::StyleStopData):
46311         (StyleTextData::StyleTextData):
46312         (StyleClipData::StyleClipData):
46313         (StyleMaskData::StyleMaskData):
46314         (StyleMarkerData::StyleMarkerData):
46315         (StyleMiscData::StyleMiscData):
46316         * rendering/SVGRenderStyleDefs.h:
46317         (WebCore::StyleFillData::create):
46318         (WebCore::StyleFillData::copy):
46319         (WebCore::StyleStrokeData::create):
46320         (WebCore::StyleStrokeData::copy):
46321         (WebCore::StyleStopData::create):
46322         (WebCore::StyleStopData::copy):
46323         (WebCore::StyleTextData::create):
46324         (WebCore::StyleTextData::copy):
46325         (WebCore::StyleClipData::create):
46326         (WebCore::StyleClipData::copy):
46327         (WebCore::StyleMaskData::create):
46328         (WebCore::StyleMaskData::copy):
46329         (WebCore::StyleMarkerData::create):
46330         (WebCore::StyleMarkerData::copy):
46331         (WebCore::StyleMiscData::create):
46332         (WebCore::StyleMiscData::copy):
46333
46334 2008-02-25  Dan Bernstein  <mitz@apple.com>
46335
46336         Reviewed by Dave Hyatt.
46337
46338         - remove file-static BidiRun variables from bidi.cpp
46339
46340         * platform/text/BidiResolver.h:
46341         (WebCore::BidiResolver::): Initialize m_logicallyLastRun.
46342         (WebCore::BidiResolver::logicallyLastRun): Added.
46343         (WebCore::BidiResolver::runCount): Made unsigned.
46344         (WebCore::::reverseRuns): Changed ints to unsigned.
46345         (WebCore::::createBidiRunsForLine): Made this function set
46346         m_logicallyLastRun.
46347         * rendering/RenderBlock.h:
46348         * rendering/bidi.cpp:
46349         (WebCore::BidiState::addRun): Removed setting of sLogicallyLastBidiRun.
46350         (WebCore::RenderBlock::constructLine): Removed unused start parameter
46351         and added run count and first and last run parameters. Replaced end
46352         parameter with lastLine boolean and endObject pointer.
46353         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Added first
46354         and logically last run parameters.
46355         (WebCore::RenderBlock::computeVerticalPositionsForLine): Added firstRun
46356         parameter.
46357         (WebCore::RenderBlock::bidiReorderLine): Removed setting of static
46358         variables.
46359         (WebCore::RenderBlock::layoutInlineChildren): Changed to use BidiState
46360         accessors instead of file statics.
46361
46362 2008-02-25  Rodney Dawes  <dobey@wayofthemonkey.com>
46363
46364         Reviewed by Jon Honeycutt.
46365
46366         http://bugs.webkit.org/show_bug.cgi?id=16924
46367         Bug 16924: Shared PluginDatabase, PluginPackage, and PlugInInfoStore implementations
46368
46369         Add PluginInfoStore.cpp and new PluginDatabase.cpp to GTK+ and Qt ports.
46370         Remove old PlugInInfoStoreQt.cpp as it is obsoleted by shared code.
46371         Add PluginInfoStore, PluginDatabase, and PluginStream files to Wx build.
46372         Add new PluginDatabase.cpp to Windows build.
46373         Add temporary stubs for new PluginDatabase and PluginPackage.
46374         shared classes to GTK+, Qt, and Wx ports.
46375         Copy PluginDatabaseWin.cpp to PluginDatabase.cpp to preserve history.
46376         Remove shared code from PluginDatabaseWin.cpp.
46377         Remove Windows-specific code from PluginDatabase.cpp.
46378         Use PlatformModule and PlatformFileTime instead of HMODULE and FILETIME.
46379         Remove extraneous PluginPackage:: from hash() class method prototype.
46380         Subsume storeFileVersion into PluginPackage::fetchInfo.
46381         Add cross-platform PlatformModuleVersion type definition.
46382         Use PlatformModuleVersion to store the module version.
46383         Rename m_fileVersion[ML]S to m_moduleVersion.
46384         Change compareFileVersion to use PlatformModuleVersion as the argument.
46385         Move PluginView::determineQuirks and m_quirks to PluginPackage.
46386         Updated determineQuirks for the PlatformModuleVersion.
46387
46388         * GNUmakefile.am:
46389         * WebCore.pro:
46390         * WebCoreSources.bkl:
46391         * webcore-base.bkl:
46392         * WebCore.vcproj/WebCore.vcproj:
46393         * Platform/FileSystem.h:
46394         * platform/qt/PlugInInfoStoreQt.cpp:
46395         * platform/gtk/TemporaryLinkStubs.cpp:
46396         * platform/qt/TemporaryLinkStubs.cpp:
46397         * platform/wx/TemporaryLinkStubs.cpp:
46398         * plugins/PluginDatabase.cpp:
46399         * plugins/PluginDatabase.h:
46400         * plugins/win/PluginDatabaseWin.cpp:
46401         * plugins/PluginPackage.h:
46402         * plugins/win/PluginPackageWin.cpp:
46403         * plugins/PluginView.h:
46404         * plugins/win/PluginViewWin.cpp:
46405
46406 2008-02-25  Anders Carlsson  <andersca@apple.com>
46407
46408         Reviewed by Darin.
46409
46410         Make more style objects start out with a refcount of 1.
46411         
46412         * rendering/RenderStyle.cpp:
46413         (WebCore::StyleSurroundData::StyleSurroundData):
46414         (WebCore::StyleBoxData::StyleBoxData):
46415         (WebCore::StyleVisualData::StyleVisualData):
46416         (WebCore::StyleBackgroundData::StyleBackgroundData):
46417         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
46418         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
46419         (WebCore::StyleInheritedData::StyleInheritedData):
46420         * rendering/RenderStyle.h:
46421         (WebCore::StyleSurroundData::create):
46422         (WebCore::StyleSurroundData::copy):
46423         (WebCore::StyleBoxData::create):
46424         (WebCore::StyleBoxData::copy):
46425         (WebCore::StyleVisualData::create):
46426         (WebCore::StyleVisualData::copy):
46427         (WebCore::StyleBackgroundData::create):
46428         (WebCore::StyleBackgroundData::copy):
46429         (WebCore::StyleBackgroundData::~StyleBackgroundData):
46430         (WebCore::StyleRareNonInheritedData::create):
46431         (WebCore::StyleRareNonInheritedData::copy):
46432         (WebCore::StyleRareInheritedData::create):
46433         (WebCore::StyleRareInheritedData::copy):
46434         (WebCore::StyleInheritedData::create):
46435         (WebCore::StyleInheritedData::copy):
46436
46437 2008-02-25  Anders Carlsson  <andersca@apple.com>
46438
46439         Reviewed by Darin.
46440
46441         Make some of the refcounted style objects start out with a refcount of 1.
46442
46443         * rendering/DataRef.h:
46444         Make a DeprecatedDataRef class which is just a copy of the old DataRef class.
46445         Change DataRef to use ::create() and ::copy() instead of the constructors.
46446         Change DataRef's pointer to be a RefPtr instead.
46447
46448         * rendering/RenderStyle.cpp:
46449         (WebCore::StyleMarqueeData::StyleMarqueeData):
46450         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
46451         (WebCore::StyleMultiColData::StyleMultiColData):
46452         (WebCore::StyleTransformData::StyleTransformData):
46453         Start with a RefCount of 1.
46454         
46455         * rendering/RenderStyle.h:
46456         * rendering/SVGRenderStyle.h:
46457         Add ::create() and ::copy() methods. Make not yet converted classes use DeprecatedDataRef.
46458
46459 2008-02-25  Darin Adler  <darin@apple.com>
46460
46461         Reviewed by Anders.
46462         Based on a patch by Tim Steele <timsteele41@gmail.com>.
46463
46464         - fix http://bugs.webkit.org/show_bug.cgi?id=17186
46465           Fragment navigation within a page permanently cancels meta refresh
46466
46467         Test: fast/loader/meta-refresh-anchor-click.html
46468
46469         * loader/FrameLoader.cpp:
46470         (WebCore::FrameLoader::load): When load type is FrameLoadTypeRedirectWithLockedHistory,
46471         always do a real load. This makes sure that meta refresh loads are treated as real loads
46472         rather than anchor scrolls. Also tweaked formatting a bit.
46473         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): This function is
46474         an alternate way to complete a load, so it needs to start the redirection timer if
46475         redirection has already been scheduled.
46476
46477 2008-02-25  Dan Bernstein  <mitz@apple.com>
46478
46479         Reviewed by Darin Adler.
46480
46481         - avoid counting spaces in non-justified text
46482
46483         * rendering/bidi.cpp:
46484         Removed file-static numSpaces.
46485         (WebCore::BidiState::addRun): Removed space counting.
46486         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Added space
46487         counting, conditional on the block having the text-align: justify
46488         property value.
46489         (WebCore::RenderBlock::bidiReorderLine): Removed initialization of
46490         numSpaces.
46491
46492 2008-02-25  Darin Adler  <darin@apple.com>
46493
46494         Requested by Steve.
46495
46496         * platform/graphics/cg/ImageSourceCG.cpp:
46497         (WebCore::ImageSource::createFrameAtIndex): Put the string into a global
46498         variable (because CFSTR is inefficient on Windows).
46499
46500 2008-02-25  Darin Adler  <darin@apple.com>
46501
46502         Reviewed by Adam.
46503
46504         * WebCore.base.exp: Export blankURL, and sort the file.
46505
46506 2008-02-25  Simon Hausmann  <hausmann@webkit.org>
46507
46508         Reviewed by Mark Rowe.
46509
46510         Fix compilation with gcc 4.3, added stdio.h and unistd.h inclusions.
46511
46512         * dom/Position.cpp:
46513         * dom/Range.cpp:
46514         * editing/Selection.cpp:
46515         * editing/SelectionController.cpp:
46516         * editing/VisiblePosition.cpp:
46517         * history/HistoryItem.cpp:
46518         * loader/Cache.cpp:
46519         * loader/FTPDirectoryParser.cpp:
46520         * platform/KURL.cpp:
46521         * platform/gtk/FileSystemGtk.cpp:
46522         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
46523         * platform/text/TextCodecLatin1.cpp:
46524         * platform/text/TextCodecUserDefined.cpp:
46525         * rendering/CounterNode.cpp:
46526         * rendering/RenderObject.cpp:
46527
46528 2008-02-25  Johnny Ding  <johnnyding.webkit@gmail.com>
46529
46530         Reviewed by Darin Adler.
46531
46532         - fix http://bugs.webkit.org/show_bug.cgi?id=17444
46533
46534         In HTMLTokenizer::write, the code checks 'pendingScripts.isEmpty()' to decide
46535         whether to save prependingSrc or not. However, in HTMLTokenizer::scriptHandler
46536         and HTMLTokenizer::scriptExecution, the code checks testBit:LoadingExtScript
46537         to decide whether to save prependingSrc or not. The later behavior is not right
46538         because, in scriptHandler and scriptExecution, even the pendingScripts queue is
46539         empty, the testBit:LoadingExtScript might be TRUE.
46540
46541         Test: fast/tokenizer/nested-multiple-scripts.html
46542
46543         * html/HTMLTokenizer.cpp:
46544         (WebCore::HTMLTokenizer::scriptHandler): check pendingScripts.isEmpty() instead of
46545         checking state.loadingExtScript().
46546         (WebCore::HTMLTokenizer::scriptExecution): check pendingScripts.isEmpty() instead of
46547         checking state.loadingExtScript().
46548
46549 2008-02-24  Darin Adler  <darin@apple.com>
46550
46551         * dom/Document.h: Removed stray duplicate declaration of
46552         RegisteredEventListenerList.
46553
46554 2008-02-24  Darin Adler  <darin@apple.com>
46555
46556         * dom/Range.cpp:
46557         (WebCore::Range::surroundContents): Removed incorrect comment.
46558         I added it a while ago, and I was just mixed up.
46559
46560 2008-02-24  Darin Adler  <darin@apple.com>
46561
46562         - quick follow-up to that last check-in
46563
46564         * platform/graphics/cg/ImageSourceCG.cpp:
46565         (WebCore::ImageSource::createFrameAtIndex): Use CFEqual instead of
46566         WebCore::String's == for speed.
46567
46568 2008-02-24  Michael Knaup  <michael.knaup@mac.com>
46569
46570         Reviewed by Darin.
46571
46572         Bug 8749: XBM rendered incorrectly as black on white
46573
46574         xbm images are now created and rendered using black on a
46575         transparent background (same behavior as in Firefox)
46576
46577         Test: platform/mac/fast/canvas/canvas-draw-xbm-image.html
46578
46579         * platform/graphics/cg/ImageSourceCG.cpp:
46580         (WebCore::ImageSource::createFrameAtIndex):
46581
46582 2008-02-24  Dan Bernstein  <mitz@apple.com>
46583
46584         Reviewed by Darin Adler.
46585
46586         - fix http://bugs.webkit.org/show_bug.cgi?id=17471
46587           REGRESSION (r30438): Crash in deleteLineBoxes in cursor-adjusting code browsing Acid3
46588
46589         Test: http/tests/misc/object-image-error.html
46590
46591         * html/HTMLObjectElement.cpp:
46592         (WebCore::HTMLObjectElement::attach): Added an early return in case
46593         updateFromElement() has changed the object to use fallback content.
46594
46595 2008-02-24  Dan Bernstein  <mitz@apple.com>
46596
46597         Reviewed by Darin Adler.
46598
46599         - fix float positioning when a float that does not fit on the line is
46600           followed by a float that does
46601
46602         Test: fast/block/float/narrow-after-wide.html
46603
46604         * rendering/bidi.cpp:
46605         (WebCore::RenderBlock::findNextLineBreak): Changed to not position any
46606         more floats on the line once a float that does not fit is encountered.
46607         That float should be pushed to the next line, and so should all floats
46608         that follow, regardless of whether they can fit on the current line.
46609
46610 2008-02-24  Darin Adler  <darin@apple.com>
46611
46612         Reviewed by Sam.
46613
46614         - fix http://bugs.webkit.org/show_bug.cgi?id=16770
46615           Acid3 expects :visited styled links to restyle on iframe load
46616
46617         Disentangle global history updating from the back/forward history.
46618         There are many cases where we don't want to create a new back/forward
46619         item, but we do still want to add to the global history (used for visited
46620         link coloring) in those cases.
46621
46622         Test: fast/history/subframe-is-visited.html
46623
46624         * loader/FrameLoader.cpp:
46625         (WebCore::FrameLoader::updateGlobalHistory): Renamed from
46626         addHistoryForCurrentLocation and removed the back/forward handling.
46627         (WebCore::FrameLoader::updateHistoryForStandardLoad): Streamlined logic a
46628         bit. Replaced call to addHistoryForCurrentLocation with a call to
46629         addBackForwardItemClippedAtTarget. Added an unconditional call to
46630         updateGlobalHistory.
46631         (WebCore::FrameLoader::updateHistoryForClientRedirect): Added a FIXME;
46632         why doesn't this function update global history?
46633         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation): Ditto.
46634         (WebCore::FrameLoader::updateHistoryForReload): Replaced the direct call
46635         the client with a call to the new updateGlobalHistory function.
46636         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Did
46637         the same changes as for updateHistoryForStandardLoad.
46638         * loader/FrameLoader.h: More of the same.
46639
46640         * loader/FrameLoaderClient.h: Removed updateGlobalHistoryForReload and
46641         renamed updateGlobalHistoryForStandardLoad to updateGlobalHistory.
46642
46643         * svg/graphics/SVGImageEmptyClients.h:
46644         (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistory): Updated to
46645         match the above.
46646
46647 2008-02-23  Darin Adler  <darin@apple.com>
46648
46649         Reviewed by Sam.
46650
46651         - fix http://bugs.webkit.org/show_bug.cgi?id=17508
46652           REGRESSION (r30535): mailto regression tests failing
46653
46654         * html/HTMLFormElement.cpp:
46655         (WebCore::HTMLFormElement::submit): Restore the old logic, with its unpleasant
46656         trip through String do to the replace operation. It's inefficient, but there's
46657         no real reason to worry about the efficiency of mailto forms, since that feature
46658         is nearly obsolete.
46659
46660 2008-02-23  Darin Adler  <darin@apple.com>
46661
46662         Reviewed by Sam.
46663
46664         - replace SegmentedString's use of DeprecatedValueList with Deque
46665
46666         Testing indicates this is a slight speed-up for page loading.
46667
46668         * platform/text/SegmentedString.cpp:
46669         (WebCore::SegmentedString::length): Update to use Deque.
46670         (WebCore::SegmentedString::setExcludeLineNumbers): Ditto.
46671         (WebCore::SegmentedString::append): Ditto.
46672         (WebCore::SegmentedString::prepend): Ditto.
46673         (WebCore::SegmentedString::advanceSubstring): Ditto.
46674         (WebCore::SegmentedString::toString): Ditto.
46675         * platform/text/SegmentedString.h: Tweak formatting. Don't bother making an entire
46676         class private with a single friend. Change m_sbstrings from a DeprecatedValueList
46677         to a Deque.
46678
46679 2008-02-23  Darin Adler  <darin@apple.com>
46680
46681         Reviewed by Anders.
46682
46683         - fix http://bugs.webkit.org/show_bug.cgi?id=17506
46684           REGRESSION (r30535): ASSERTION FAILED: i < size()
46685
46686         * loader/TextResourceDecoder.cpp:
46687         (WebCore::findTextEncoding): Fix off-by-one in code that null-terminates
46688         the C string here.
46689
46690 2008-02-23  Matt Lilek  <webkit@mattlilek.com>
46691
46692         Not reviewed, build fix.
46693
46694         * platform/network/cf/FormDataStreamCFNet.cpp:
46695         (WebCore::httpBodyFromRequest):
46696         * plugins/win/PluginViewWin.cpp:
46697         (WebCore::PluginView::handlePost):
46698
46699 2008-02-23  Dan Bernstein  <mitz@apple.com>
46700
46701         - fix a typo
46702
46703         * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
46704         (WebCore::GlyphPage::fill):
46705         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
46706         (WebCore::GlyphPage::fill):
46707
46708 2008-02-23  Dan Bernstein  <mitz@apple.com>
46709
46710         Reviewed by Anders Carlsson.
46711
46712         - fix GlyphPage::fill() logic for partial page fills
46713
46714         * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
46715         (WebCore::GlyphPage::fill): Changed the test for non-BMP characters to
46716         work correctly when the length parameter is less than a full page size.
46717         Also updated the comment.
46718         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
46719         (WebCore::GlyphPage::fill): Ditto.
46720
46721 2008-02-23  Kevin Ollivier  <kevino@theolliviers.com>
46722
46723         Reviewed by Darin Adler.
46724
46725         Move text drawing into wxcode, as we need platform-dependent
46726         APIs for drawing non-kerned text, which wx doesn't yet have.
46727         (But hopefully will, once these APIs are fleshed out on all
46728         platforms!)
46729
46730         http://bugs.webkit.org/show_bug.cgi?id=17396
46731
46732         * platform/graphics/wx/FontWx.cpp:
46733         (WebCore::Font::drawGlyphs):
46734         * platform/wx/wxcode/gtk/non-kerned-drawing.cpp: Added.
46735         * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: Added.
46736         * platform/wx/wxcode/non-kerned-drawing.h: Added.
46737         * platform/wx/wxcode/win/non-kerned-drawing.cpp: Added.
46738         * webcore-wx.bkl:
46739
46740 2008-02-23  Darin Adler  <darin@apple.com>
46741
46742         Pointed out by Mitz.
46743
46744         * loader/TextResourceDecoder.cpp:
46745         (WebCore::find): Fix a "==" that was supposed to be ">".
46746         (WebCore::findIgnoringCase): Ditto.
46747
46748 2008-02-23  Darin Adler  <darin@apple.com>
46749
46750         Reviewed by Sam.
46751
46752         * html/HTMLFormElement.cpp:
46753         (WebCore::appendEncodedString): Fix buffer overrun in the code I just landed.
46754
46755 2008-02-23  Darin Adler  <darin@apple.com>
46756
46757         Reviewed by Sam.
46758
46759         - remove all but 1 remaining use of DeprecatedCString
46760         - change FormData to start refcount at 1
46761
46762         * html/HTMLFormElement.cpp:
46763         (WebCore::appendString): Added. Helpers for Vector<char>.
46764         (WebCore::appendEncodedString): Renamed from encodeCString and changed to
46765         append to an existing Vector<char> to cut down a bit on memory allocation.
46766         (WebCore::HTMLFormElement::formData): Replace the DeprecatedCString called
46767         enc_string with a Vector<char> called encodedData. Change to use the new
46768         FormData::create function.
46769         (WebCore::HTMLFormElement::submit): Same thing, for the mailto form code.
46770
46771         * loader/TextResourceDecoder.cpp:
46772         (WebCore::find): Added. Helper for searching in char* with length.
46773         (WebCore::findIgnoringCase): Ditto.
46774         (WebCore::findTextEncoding): Added. Helper for looking up a text encoding
46775         when we have a char* with length rather than a null-terminated char*.
46776         (WebCore::findXMLEncoding): Changed to use char* and length rather than
46777         DeprecatedCString. Also fixed some things that would be one-character
46778         buffer overruns in a string that's not null-terminated.
46779         (WebCore::TextResourceDecoder::checkForCSSCharset): Change to use
46780         findTextEncoding rather than constructing a CString to pass to the
46781         TextEncodingconstructor.
46782         (WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
46783
46784         * platform/network/FormData.cpp:
46785         (WebCore::FormData::FormData): Changed to start refcount at 1.
46786         (WebCore::FormData::create): Added.
46787         (WebCore::FormData::copy): Call adoptRef since refcount starts at 1.
46788         * platform/network/FormData.h: Made constructor private. Added create functions.
46789
46790         * platform/network/mac/ResourceRequestMac.mm:
46791         (WebCore::ResourceRequest::doUpdateResourceRequest): Call FormData::create.
46792         * xml/XMLHttpRequest.cpp:
46793         (WebCore::XMLHttpRequest::send): Ditto.
46794
46795 2008-02-23  Darin Adler  <darin@apple.com>
46796
46797         Reviewed by Anders.
46798
46799         - http://bugs.webkit.org/show_bug.cgi?id=17067
46800           eliminate attributes parameter from JSObject::put for speed/clarity
46801
46802         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
46803         (WebCore::JSCSSStyleDeclaration::customPut): Remove attributes argument.
46804
46805         * bindings/js/JSCanvasPixelArrayCustom.cpp:
46806         (WebCore::JSCanvasPixelArray::indexGetter): Use early exit idiom.
46807         (WebCore::JSCanvasPixelArray::indexSetter): Moved length check into the
46808         CanvasPixelArray object, for consistency with the getter. Removed attributes
46809         argument.
46810
46811         * bindings/js/JSDOMWindowCustom.cpp:
46812         (WebCore::JSDOMWindow::customPut): Removed special case for variable
46813         initialization, which is not needed since that does use put any more.
46814         Removed attributes argument.
46815
46816         * bindings/js/JSEventTargetBase.h:
46817         (WebCore::JSEventTargetBase::putValueProperty): Removed attributes argument.
46818         (WebCore::JSEventTargetBase::put): Ditto.
46819         (WebCore::JSEventTargetPrototype::self): Removed Internal flag.
46820         * bindings/js/JSEventTargetNode.cpp:
46821         (WebCore::JSEventTargetNode::put): Removed attributes argument.
46822         (WebCore::JSEventTargetNode::putValueProperty): Ditto.
46823         * bindings/js/JSEventTargetNode.h: Ditto.
46824         * bindings/js/JSHTMLAppletElementCustom.cpp:
46825         (WebCore::JSHTMLAppletElement::customPut): Ditto.
46826         * bindings/js/JSHTMLEmbedElementCustom.cpp:
46827         (WebCore::JSHTMLEmbedElement::customPut): Ditto.
46828         * bindings/js/JSHTMLInputElementBase.cpp:
46829         (WebCore::JSHTMLInputElementBase::put): Ditto.
46830         (WebCore::JSHTMLInputElementBase::putValueProperty): Ditto.
46831         * bindings/js/JSHTMLInputElementBase.h: Ditto.
46832         * bindings/js/JSHTMLObjectElementCustom.cpp:
46833         (WebCore::JSHTMLObjectElement::customPut): Ditto.
46834         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
46835         (WebCore::JSHTMLOptionsCollection::indexSetter): Ditto.
46836         * bindings/js/JSHTMLSelectElementCustom.cpp:
46837         (WebCore::JSHTMLSelectElement::indexSetter): Ditto.
46838         * bindings/js/JSHistoryCustom.cpp:
46839         (WebCore::JSHistory::customPut): Ditto.
46840         * bindings/js/JSLocation.cpp:
46841         (WebCore::JSLocation::put): Ditto.
46842         * bindings/js/JSLocation.h: Ditto.
46843         * bindings/js/JSXMLHttpRequest.cpp:
46844         (WebCore::JSXMLHttpRequest::put): Ditto.
46845         (WebCore::JSXMLHttpRequest::putValueProperty): Ditto.
46846         * bindings/js/JSXMLHttpRequest.h: Ditto.
46847
46848         * bindings/js/kjs_dom.cpp:
46849         (WebCore::getRuntimeObject): Changed return type to JSObject*.
46850         * bindings/js/kjs_dom.h: Ditto.
46851
46852         * bindings/js/kjs_events.cpp:
46853         (WebCore::JSClipboard::put): Removed attributes argument.
46854         (WebCore::JSClipboard::putValueProperty): Ditto.
46855         * bindings/js/kjs_events.h: Ditto.
46856
46857         * bindings/js/kjs_html.cpp:
46858         (WebCore::runtimeObjectGetter): Updated for change to getRuntimeObject to
46859         return a JSObject. Used early exit idiom.
46860         (WebCore::runtimeObjectPropertyGetter): Ditto.
46861         (WebCore::runtimeObjectCustomGetOwnPropertySlot): Ditto.
46862         (WebCore::runtimeObjectCustomPut): Use hasProperty to check for properties
46863         that we should put with the property syntax instead of canPut.
46864         (WebCore::runtimeObjectImplementsCall): Ditto.
46865         (WebCore::runtimeObjectCallAsFunction): Ditto.
46866         * bindings/js/kjs_html.h: Removed attributes argument to runtimeObjectCustomPut.
46867
46868         * bindings/js/kjs_window.cpp:
46869         (KJS::Window::put): Removed attributes argument.
46870         * bindings/js/kjs_window.h: Ditto.
46871
46872         * bindings/scripts/CodeGeneratorJS.pm: Removed attributes argument from put,
46873         putValueProperty, customPut, and indexSetter.
46874
46875         * html/CanvasPixelArray.h:
46876         (WebCore::CanvasPixelArray::set): Added index checking here, as in the get
46877         function. Before, the checking was done in the JavaScript bindings for set.
46878
46879 2008-02-23  Brent Fulgham  <bfulgham@gmail.com>
46880
46881         Reviewed by Adam and Darin.
46882
46883         http://bugs.webkit.org/show_bug.cgi?id=17442
46884         Correct the Windows Cairo implementation of GraphicsContext so
46885         that Windows 'WorldTransform' is kept in sync with the Cairo
46886         transormations.
46887
46888         Also corrects an uninitialized variable in the Cairo Windows
46889         image drag handler.
46890
46891         WARNING: NO TEST CASES ADDED OR CHANGED
46892
46893         * platform/graphics/cairo/GraphicsContextCairo.cpp:  Modify
46894           methods to call GraphicsContextPlatformPrivate calls, just
46895           as is done for the CoreGraphics version.  These calls are
46896           nop's for everything but Windows.
46897         (WebCore::GraphicsContext::savePlatformState):
46898         (WebCore::GraphicsContext::restorePlatformState):
46899         (WebCore::GraphicsContext::clip):
46900         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
46901         (WebCore::GraphicsContext::translate):
46902         (WebCore::GraphicsContext::concatCTM): Re-enable for Windows
46903         (WebCore::GraphicsContext::beginTransparencyLayer):
46904         (WebCore::GraphicsContext::endTransparencyLayer):
46905         (WebCore::GraphicsContext::rotate):
46906         (WebCore::GraphicsContext::scale):
46907         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
46908         * platform/graphics/win/GraphicsContextCGWin.cpp:  Move common
46909           code for handling WorldTransform calls to parent class.
46910         * platform/graphics/win/GraphicsContextCairoWin.cpp:  Add common
46911           code for handling WorldTransform calls.
46912           (WebCore::GraphicsContextPlatformPrivate::concatCTM):  Change
46913           implementation so that it only handles WorldTransform.  The
46914           Cairo update is done in GraphicsContextCairo.cpp
46915         * platform/graphics/win/GraphicsContextWin.cpp:  Call platform-private
46916           methods to keep WorldTransform in sync.
46917         (WebCore::GraphicsContextPlatformPrivate::save):
46918         (WebCore::GraphicsContextPlatformPrivate::restore):
46919         (WebCore::GraphicsContextPlatformPrivate::clip):
46920         (WebCore::GraphicsContextPlatformPrivate::scale):
46921         (WebCore::GraphicsContextPlatformPrivate::rotate):
46922         (WebCore::GraphicsContextPlatformPrivate::translate):
46923         * platform/win/DragImageCairoWin.cpp:
46924         (WebCore::createDragImageFromImage):  Correct uninitialized value
46925
46926 2008-02-23  Dan Bernstein  <mitz@apple.com>
46927
46928         Reviewed by Dave Hyatt.
46929
46930         - make non-autowrapping text clear floats
46931
46932         Test: fast/text/whitespace/nowrap-clear-float.html
46933
46934         * rendering/RenderBlock.cpp:
46935         (WebCore::RenderBlock::nextFloatBottomBelow): Renamed nearestFloat() to
46936         this and changed to avoid comparing bottom to 0 in each iteration.
46937         (WebCore::RenderBlock::getClearDelta): Updated comment for the rename.
46938         * rendering/RenderBlock.h:
46939         * rendering/bidi.cpp:
46940         (WebCore::RenderBlock::fitBelowFloats): Added. Factored out of
46941         findNextLineBreak() and simplified.
46942         (WebCore::RenderBlock::findNextLineBreak): Changed to call
46943         fitBelowFloats(). Fixed the bug by trying to fit below floats in the
46944         case of non-wrapping text. Removed some redundancy.
46945
46946 2008-02-23  Sam Weinig  <sam@webkit.org>
46947
46948         Reviewed by Oliver Hunt.
46949
46950         Fix for http://bugs.webkit.org/show_bug.cgi?id=17504
46951         Speed up DOM lists array subscription syntax by using the fast 
46952         getOwnPropertySlot and set paths
46953
46954         - 6x speed improvement on Oliver's ImageData put test.
46955
46956         * bindings/scripts/CodeGeneratorJS.pm: Add fast path for getOwnPropertySlot
46957         and put when an indexGetter or indexSetter is used.  We can not use the fast
46958         path if an overridingNameGetter is used as there would be no way to override.
46959
46960 2008-02-23  Kevin Ollivier  <kevino@theolliviers.com>
46961
46962         wx build fix after JSImageData.cpp was added.
46963
46964         * WebCoreSources.bkl:
46965
46966 2008-02-23  Alexey Proskuryakov  <ap@webkit.org>
46967
46968         Windows build fix - move ThreadCondition implementation from WebCore to WTF.
46969
46970         * WebCore.vcproj/WebCore.vcproj:
46971         * platform/win/ThreadConditionWin.cpp: Removed.
46972
46973 2008-02-23  Alexey Proskuryakov  <ap@webkit.org>
46974
46975         Reviewed by Darin.
46976
46977         Move basic threading support from WebCore to WTF.
46978
46979         One call that remains in WebCore is callOnMainThread(), and it has its own header now.
46980
46981         * ForwardingHeaders/wtf/Locker.h: Added.
46982         * ForwardingHeaders/wtf/MessageQueue.h: Added.
46983         * ForwardingHeaders/wtf/Threading.h: Added.
46984         * GNUmakefile.am:
46985         * WebCore.pro:
46986         * WebCore.vcproj/WebCore.vcproj:
46987         * WebCore.xcodeproj/project.pbxproj:
46988         * WebCoreSources.bkl:
46989         * bindings/js/JSCustomSQLTransactionCallback.cpp:
46990         * dom/XMLTokenizer.cpp:
46991         * loader/icon/IconDatabase.cpp:
46992         (WebCore::iconDatabase):
46993         * loader/icon/IconDatabase.h:
46994         * platform/Locker.h: Removed.
46995         * platform/MainThread.h: Copied from WebCore/platform/Threading.h.
46996         (WebCore::initializeThreadingAndMainThread):
46997         * platform/MessageQueue.h: Removed.
46998         * platform/SecurityOrigin.h:
46999         * platform/Threading.h: Removed.
47000         * platform/ThreadingNone.cpp: Removed.
47001         * platform/gtk/MainThreadGtk.cpp: Copied from WebCore/platform/gtk/ThreadingGtk.cpp.
47002         * platform/gtk/ThreadingGtk.cpp: Removed.
47003         * platform/mac/MainThreadMac.mm: Copied from WebCore/platform/mac/Threading.mm.
47004         * platform/mac/Threading.mm: Removed.
47005         * platform/pthreads: Removed.
47006         * platform/pthreads/ThreadingPthreads.cpp: Removed.
47007         * platform/qt/MainThreadQt.cpp: Copied from WebCore/platform/qt/ThreadingQt.cpp.
47008         * platform/qt/ThreadingQt.cpp: Removed.
47009         * platform/sql/SQLValue.h:
47010         * platform/sql/SQLiteAuthorizer.h:
47011         * platform/sql/SQLiteDatabase.h:
47012         * platform/win/MainThreadWin.cpp: Copied from WebCore/platform/win/ThreadingWin.cpp.
47013         (WebCore::initializeThreadingAndMainThread):
47014         * platform/win/MutexWin.cpp: Removed.
47015         * platform/win/ThreadingWin.cpp: Removed.
47016         * platform/wx/MainThreadWx.cpp: Copied from WebCore/platform/wx/ThreadingWx.cpp.
47017         * platform/wx/ThreadingWx.cpp: Removed.
47018         * storage/Database.cpp:
47019         (WebCore::Database::Database):
47020         * storage/Database.h:
47021         * storage/DatabaseTask.h:
47022         * storage/DatabaseThread.h:
47023         * storage/DatabaseTracker.cpp:
47024         * storage/OriginQuotaManager.h:
47025         * storage/SQLError.h:
47026         * storage/SQLResultSet.h:
47027         * storage/SQLStatement.h:
47028         * storage/SQLStatementCallback.h:
47029         * storage/SQLStatementErrorCallback.h:
47030         * storage/SQLTransaction.h:
47031         * storage/SQLTransactionCallback.h:
47032         * storage/SQLTransactionErrorCallback.h:
47033         * webcore-wx.bkl:
47034
47035 2008-02-23  David Kilzer  <ddkilzer@apple.com>
47036
47037         Please clarify licensing for some files
47038         <http://bugs.webkit.org/show_bug.cgi?id=14970>
47039
47040         Reviewed by Darin.
47041
47042         * bindings/objc/WebScriptObject.h: Added Apple BSD-style license.
47043         * bindings/objc/WebScriptObjectPrivate.h: Ditto.
47044         * platform/text/mac/ShapeArabic.c: Added ICU license from WebCore/icu/LICENSE.
47045
47046 2008-02-22  Justin Garcia  <justin.garcia@apple.com>
47047
47048         Reviewed by Anders Carlsson.
47049
47050         <rdar://problem/5714333> Add document.getSelection()
47051         
47052         Add a synonym for window.getSelection() that FF supports.  There were requests in
47053         this bugs dupes to also support the IE only document.selection, but IE's Selection
47054         object is too different than ours currently for that to be safe (specifically, we
47055         don't support enough of IE's TextRange methods on our DOM Range object yet). I
47056         filed <rdar://problem/5761233> to cover that.
47057
47058         * dom/Document.cpp:
47059         (WebCore::Document::getSelection): Added.
47060         * dom/Document.h:
47061         * dom/Document.idl: Ditto.  JS only since this is about web compatibility.
47062
47063 2008-02-22  Oliver Hunt  <oliver@apple.com>
47064
47065         WX build fixes
47066
47067         * WebCoreSources.bkl:
47068
47069 2008-02-22  Oliver Hunt  <oliver@apple.com>
47070
47071         Once more with the cairo/qt/wx build fixing
47072
47073         * platform/graphics/cairo/ImageBufferCairo.cpp:
47074         * platform/graphics/qt/ImageBufferQt.cpp:
47075         * platform/graphics/wx/ImageBufferWx.cpp:
47076
47077 2008-02-22  Mark Rowe  <mrowe@apple.com>
47078
47079         Windows build fix.  Add missing include of DeprecatedCString.h and sort existing includes.
47080
47081         * platform/win/PasteboardWin.cpp:
47082
47083 2008-02-22  Mark Rowe  <mrowe@apple.com>
47084
47085         Speculative Windows build fix.
47086
47087         * platform/win/ClipboardUtilitiesWin.cpp:  Add missing include of DeprecatedCString.h and sort existing includes.
47088         * platform/win/ClipboardWin.cpp:  Ditto.
47089
47090 2008-02-22  Oliver Hunt  <oliver@apple.com>
47091
47092         Build fix for windows, wx and qt
47093
47094         * html/CanvasPixelArray.h:
47095         (WebCore::CanvasPixelArray::set):
47096
47097 2008-02-22  Oliver Hunt  <oliver@apple.com>
47098
47099         Unbreak windows vcproj
47100
47101         * WebCore.vcproj/WebCore.vcproj:
47102
47103 2008-02-22  Oliver Hunt  <oliver@apple.com>
47104
47105         Reviewed by Sam W.
47106
47107         Support Canvas.getImageData and Canvas.createImageData
47108         
47109         This patch adds support for all the pixel reading portions
47110         of the HTML5 Canvas spec.  There are two new types ImageData
47111         and CanvasPixelArray which are used to provide the HTML5
47112         ImageData object, and the required semantics for assignment
47113         to the ImageData data array.
47114         
47115         We only implement the CG version of ImageBuffer::getImageData,
47116         but the logic is null safe, so this will not introduce any
47117         crashes into other platforms, unfortunately it will result in
47118         JS Object detection "lying" on non-CG platforms.
47119
47120         Tests: fast/canvas/canvas-ImageData-behaviour.html
47121                fast/canvas/canvas-getImageData.html
47122
47123         * DerivedSources.make:
47124         * GNUmakefile.am:
47125         * WebCore.pro:
47126         * WebCore.vcproj/WebCore.vcproj:
47127         * WebCore.xcodeproj/project.pbxproj:
47128         * bindings/js/JSCanvasPixelArrayCustom.cpp: Added.
47129         (WebCore::JSCanvasPixelArray::indexGetter):
47130         (WebCore::JSCanvasPixelArray::indexSetter):
47131         (WebCore::toJS):
47132         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
47133         * bindings/scripts/CodeGeneratorJS.pm:
47134         * html/CanvasPixelArray.cpp: Added.
47135         (WebCore::CanvasPixelArray::create):
47136         * html/CanvasPixelArray.h: Added.
47137         (WebCore::CanvasPixelArray::data):
47138         (WebCore::CanvasPixelArray::length):
47139         (WebCore::CanvasPixelArray::set):
47140         (WebCore::CanvasPixelArray::get):
47141         * html/CanvasPixelArray.idl: Added.
47142         * html/CanvasRenderingContext2D.cpp:
47143         (WebCore::createEmptyImageData):
47144         (WebCore::CanvasRenderingContext2D::createImageData):
47145         (WebCore::CanvasRenderingContext2D::getImageData):
47146         * html/CanvasRenderingContext2D.h:
47147         * html/CanvasRenderingContext2D.idl:
47148         * html/HTMLCanvasElement.cpp:
47149         (WebCore::HTMLCanvasElement::convertLogicalToDevice):
47150         (WebCore::HTMLCanvasElement::createImageBuffer):
47151         * html/HTMLCanvasElement.h:
47152         * html/ImageData.cpp: Added.
47153         (WebCore::ImageData::create):
47154         (WebCore::ImageData::ImageData):
47155         * html/ImageData.h: Added.
47156         (WebCore::ImageData::width):
47157         (WebCore::ImageData::height):
47158         (WebCore::ImageData::data):
47159         * html/ImageData.idl: Added.
47160         * platform/graphics/ImageBuffer.h:
47161         * platform/graphics/cairo/ImageBufferCairo.cpp:
47162         (WebCore::ImageBuffer::getImageData):
47163         * platform/graphics/cg/ImageBufferCG.cpp:
47164         (WebCore::ImageBuffer::getImageData):
47165         * platform/graphics/qt/ImageBufferQt.cpp:
47166         (WebCore::ImageBuffer::getImageData):
47167         * platform/graphics/wx/ImageBufferWx.cpp:
47168         (WebCore::ImageBuffer::getImageData):
47169
47170 2008-02-22  Sam Weinig  <sam@webkit.org>
47171
47172         Rubber-stamped by Adam Roben.
47173
47174         Rid the project of the Devil known as DeprecatedString!
47175
47176         * GNUmakefile.am:
47177         * WebCore.base.exp:
47178         * WebCore.pro:
47179         * WebCore.vcproj/WebCore.vcproj:
47180         * WebCore.xcodeproj/project.pbxproj:
47181         * WebCoreSources.bkl:
47182         * dom/Node.h:
47183         * html/HTMLFormElement.cpp:
47184         * platform/DeprecatedString.cpp: Removed.
47185         * platform/DeprecatedString.h: Removed.
47186         * platform/graphics/qt/IconQt.cpp:
47187         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
47188         * platform/gtk/CookieJarGtk.cpp:
47189         * platform/gtk/CursorGtk.cpp:
47190         * platform/gtk/KeyEventGtk.cpp:
47191         * platform/mac/DeprecatedStringMac.mm: Removed.
47192         * platform/network/qt/ResourceHandleQt.cpp:
47193         * platform/network/win/CookieJarWin.cpp:
47194         (WebCore::cookies):
47195         * platform/qt/ClipboardQt.cpp:
47196         * platform/qt/CookieJarQt.cpp:
47197         * platform/qt/CursorQt.cpp:
47198         * platform/symbian/DeprecatedStringSymbian.cpp: Removed.
47199         * platform/text/AtomicString.cpp:
47200         * platform/text/AtomicString.h:
47201         * platform/text/PlatformString.h:
47202         * platform/text/String.cpp:
47203         * platform/text/StringImpl.cpp:
47204         * platform/text/qt/StringQt.cpp:
47205         (WebCore::String::String):
47206         * platform/text/wx/StringWx.cpp:
47207         * platform/win/BString.cpp:
47208         * platform/win/BString.h:
47209         * platform/win/PasteboardWin.cpp:
47210
47211 2008-02-22  Sam Weinig  <sam@webkit.org>
47212
47213         Reviewed by Geoff Garen.
47214
47215         - Remove use of DeprecatedString in CSSStyleSelector.
47216
47217         * css/CSSStyleSelector.cpp:
47218         (WebCore::findHash): Removed.  Use find instead.
47219         (WebCore::findSlashDotDotSlash): Changed to take a UChar* and a length.
47220         (WebCore::findSlashSlash): Ditto.
47221         (WebCore::findSlashDotSlash): Ditto.
47222         (WebCore::containsColonSlashSlash): Ditto.
47223         (WebCore::cleanPath): Change to operate on a String.
47224         (WebCore::checkPseudoState): Changed to use a Vector as a buffer.
47225
47226 2008-02-22  Geoffrey Garen  <ggaren@apple.com>
47227
47228         Reviewed by Sam Weinig.
47229         
47230         Fixed <rdar://problem/5057509> Repro leak of JSXMLHttpRequest and
47231         associated objects @ www.viamichelin.it, which was probably an underlying
47232         cause of <rdar://problem/5744037> Gmail out of memory (17455)
47233         
47234         If SubresourceLoader::create returned NULL, we would ref() / gcProtect()
47235         the XMLHttpRequest but think we hadn't, therefore never
47236         calling deref() / gcUnprotect().
47237         
47238         This could happen at gmail.com, since gmail.com attempts to send
47239         XMLHttpRequests from unload handlers in order to gather usage statistics.
47240         (According to comments in the code, SubresourceLoader::create returns
47241         NULL when called from an unload handler.)
47242
47243         The solution is to ref() / gcProtect() only if SubresourceLoader::create
47244         doesn't return NULL. This make sense, since we only need to protect the
47245         request as long as it has an outstanding network transaction.
47246         
47247         * xml/XMLHttpRequest.cpp:
47248         (WebCore::XMLHttpRequest::XMLHttpRequest):
47249         (WebCore::XMLHttpRequest::send):
47250
47251 2008-02-22  Darin Adler  <darin@apple.com>
47252
47253         Reviewed, tweaked and landed by Sam.
47254
47255         - Make RegularExpression operate on Strings instead of DeprecatedStrings.
47256
47257         * dom/DOMImplementation.cpp:
47258         (WebCore::DOMImplementation::isXMLMIMEType): Use string instead of DeprecatedString
47259         to build up the RegularExpression.
47260         * page/Frame.cpp:
47261         (WebCore::createRegExpForLabels): Use String instead of DeprecatedString.
47262         (WebCore::Frame::searchForLabelsAboveCell): Ditto.
47263         (WebCore::Frame::searchForLabelsBeforeElement): Ditto.
47264         (WebCore::Frame::matchLabelsAgainstElement): Ditto.
47265         * page/Frame.h:
47266         * page/mac/FrameMac.mm:
47267         (WebCore::regExpForLabels): Ditto.
47268         (WebCore::Frame::searchForNSLabelsAboveCell): Ditto.
47269         (WebCore::Frame::searchForLabelsBeforeElement): Ditto.
47270         (WebCore::Frame::matchLabelsAgainstElement): Ditto.
47271
47272         * platform/text/RegularExpression.cpp:
47273         (WebCore::RegularExpression::Private::Private):
47274         (WebCore::RegularExpression::Private::compile):
47275         (WebCore::RegularExpression::RegularExpression):
47276         (WebCore::RegularExpression::operator=):
47277         (WebCore::RegularExpression::pattern):
47278         (WebCore::RegularExpression::match):
47279         (WebCore::RegularExpression::search):
47280         (WebCore::RegularExpression::searchRev):
47281         (WebCore::replace): Added.
47282         * platform/text/RegularExpression.h:
47283         Change functions to take Strings as input instead of DeprecatedStrings and
47284         reduce the complexity of the class by removing unneeded globbing support.
47285
47286 2008-02-22  Jon Honeycutt  <jhoneycutt@apple.com>
47287
47288         Reviewed by Anders.
47289
47290         <rdar://problem/5760360> REGRESSION(r30376): Crash loading plugin page
47291         during stress test (after only 5 min) - null dereference
47292
47293         Full-frame plug-ins create PluginStream objects without loaders, as the
47294         PluginView receives the loading callbacks. We were trying to call
47295         setDefersLoading on these null pointers.
47296
47297         * plugins/PluginStream.cpp:
47298         (WebCore::PluginStream::startStream): Add null check.
47299         (WebCore::PluginStream::destroyStream): Same.
47300         (WebCore::PluginStream::deliverData): Same.
47301
47302 2008-02-22  Darin Adler  <darin@apple.com>
47303
47304         Reviewed and tweaked by Jon Honeycutt. Reviewed and landed by Sam.
47305
47306         - Remove uses of DeprecatedString in Windows plugin code.
47307
47308         * plugins/win/PluginPackageWin.cpp:
47309         (WebCore::getVersionInfo): Cleanup formatting.
47310         (WebCore::PluginPackage::freeLibraryTimerFired): Remove un-needed variable name.
47311         (WebCore::PluginPackage::storeFileVersion): Move casts.
47312         (WebCore::PluginPackage::fetchInfo): Use OwnArrayPtr and switch to more efficient
47313         use of Vectors.
47314         (WebCore::PluginPackage::load): Fix whitespace.
47315         (WebCore::PluginPackage::hash): Make the hashCodes const
47316         * plugins/win/PluginViewWin.cpp:
47317         (WebCore::makeURL): Use String instead of DeprecatedString.
47318         (WebCore::parseRFC822HeaderFields): Ditto.
47319         (WebCore::PluginView::handlePost): Ditto.
47320         (WebCore::PluginView::status): Ditto.
47321
47322 2008-02-22  Darin Adler  <darin@apple.com>
47323
47324         Reviewed, tweaked and landed by Sam.
47325
47326         - Don't use DeprecatedString in HTMLTokenizer.
47327
47328         * html/HTMLTokenizer.cpp:
47329         (WebCore::HTMLTokenizer::finish):
47330         * platform/text/PlatformString.h:
47331         (WebCore::find):
47332
47333 2008-02-21  Sam Weinig  <sam@webkit.org>
47334
47335         Reviewed by Anders Carlsson.
47336
47337         Fix for <rdar://problem/5757946>
47338
47339         - Parse URLs before checking whether they are javascript: urls
47340           (which require security checks).
47341
47342         * bindings/js/JSAttrCustom.cpp:
47343         (WebCore::JSAttr::setValue):
47344         * bindings/js/JSElementCustom.cpp:
47345         (WebCore::allowSettingSrcToJavascriptURL):
47346         * bindings/js/JSHTMLFrameElementCustom.cpp:
47347         (WebCore::allowSettingJavascriptURL):
47348         * bindings/js/JSHTMLIFrameElementCustom.cpp:
47349         (WebCore::JSHTMLIFrameElement::setSrc):
47350
47351 2008-02-21  Ada Chan  <adachan@apple.com>
47352
47353         <rdar://problem/5757873> Buffer overrun in DeprecatedCString::find() in WebCore
47354         We could get a buffer overrun in DeprecatedCString::find() if the end of the
47355         string matches a beginning portion of the substring, for example, if string is
47356         "a" but the substring is "ab".
47357         The code as is also will not match things correctly under certain situations
47358         since the inner while loop increments the index. For example, we wouldn't find
47359         a match if the string is "aab..." and the substring is "ab".  Changed the 
47360         inner while loop to increment a temporary index into str.
47361         
47362         Test: fast/loader/charset-parse.html
47363
47364         Reviewed by Dan Berstein.
47365
47366         * platform/DeprecatedCString.cpp:
47367         (WebCore::DeprecatedCString::find):
47368
47369 2008-02-21  David Hyatt  <hyatt@apple.com>
47370
47371         Fix for bug 17301.  CSS media queries need to use the correct viewport
47372         when contained in documents inside iframes (rather than always using the
47373         top-level document's viewport).  CSS media queries based on the viewport
47374         also needed to be dynamic and update as you resize the window (this is
47375         a HOT feature). :)
47376
47377         This patch gets Acid3 up to 86/100 with 3 colored boxes filled in.
47378
47379         Reviewed by olliej
47380
47381         Added fast/media/viewport-media-query.html
47382
47383         * css/CSSStyleSelector.cpp:
47384         (WebCore::CSSStyleSelector::CSSStyleSelector):
47385         (WebCore::CSSStyleSelector::addViewportDependentMediaQueryResult):
47386         (WebCore::CSSStyleSelector::affectedByViewportChange):
47387         * css/CSSStyleSelector.h:
47388         (WebCore::MediaQueryResult::MediaQueryResult):
47389         * css/MediaQueryEvaluator.cpp:
47390         (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
47391         (WebCore::MediaQueryEvaluator):
47392         (WebCore::MediaQueryEvaluator::eval):
47393         (WebCore::colorMediaFeatureEval):
47394         (WebCore::monochromeMediaFeatureEval):
47395         (WebCore::device_aspect_ratioMediaFeatureEval):
47396         (WebCore::device_pixel_ratioMediaFeatureEval):
47397         (WebCore::gridMediaFeatureEval):
47398         (WebCore::device_heightMediaFeatureEval):
47399         (WebCore::device_widthMediaFeatureEval):
47400         (WebCore::heightMediaFeatureEval):
47401         (WebCore::widthMediaFeatureEval):
47402         (WebCore::min_colorMediaFeatureEval):
47403         (WebCore::max_colorMediaFeatureEval):
47404         (WebCore::min_monochromeMediaFeatureEval):
47405         (WebCore::max_monochromeMediaFeatureEval):
47406         (WebCore::min_device_aspect_ratioMediaFeatureEval):
47407         (WebCore::max_device_aspect_ratioMediaFeatureEval):
47408         (WebCore::min_device_pixel_ratioMediaFeatureEval):
47409         (WebCore::max_device_pixel_ratioMediaFeatureEval):
47410         (WebCore::min_heightMediaFeatureEval):
47411         (WebCore::max_heightMediaFeatureEval):
47412         (WebCore::min_widthMediaFeatureEval):
47413         (WebCore::max_widthMediaFeatureEval):
47414         (WebCore::min_device_heightMediaFeatureEval):
47415         (WebCore::max_device_heightMediaFeatureEval):
47416         (WebCore::min_device_widthMediaFeatureEval):
47417         (WebCore::max_device_widthMediaFeatureEval):
47418         * css/MediaQueryEvaluator.h:
47419         * css/MediaQueryExp.cpp:
47420         (WebCore::MediaQueryExp::~MediaQueryExp):
47421         * css/MediaQueryExp.h:
47422         (WebCore::MediaQueryExp::value):
47423         (WebCore::MediaQueryExp::isViewportDependent):
47424         * html/HTMLMediaElement.cpp:
47425         (WebCore::HTMLMediaElement::pickMedia):
47426         * page/FrameView.cpp:
47427         (WebCore::FrameView::layout):
47428
47429 2008-02-21  Anders Carlsson  <andersca@apple.com>
47430
47431         Reviewed by Sam.
47432
47433         Make more classes start out with a refcount of 1.
47434
47435         * dom/QualifiedName.cpp:
47436         (WebCore::QNameComponentsTranslator::translate):
47437         (WebCore::QualifiedName::QualifiedName):
47438         * dom/QualifiedName.h:
47439         (WebCore::QualifiedName::QualifiedNameImpl::create):
47440         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
47441         * history/BackForwardList.cpp:
47442         (WebCore::BackForwardList::BackForwardList):
47443         * history/BackForwardList.h:
47444         (WebCore::BackForwardList::create):
47445         * page/Page.cpp:
47446         (WebCore::Page::Page):
47447         * platform/text/CString.cpp:
47448         (WebCore::CString::init):
47449         (WebCore::CString::newUninitialized):
47450         (WebCore::CString::copyBufferIfNeeded):
47451         * platform/text/CString.h:
47452         (WebCore::CStringBuffer::create):
47453         (WebCore::CStringBuffer::CStringBuffer):
47454
47455 2008-02-21  Kevin Ollivier  <kevino@theolliviers.com>
47456
47457         wx build fix for the domString() -> string() rename in r30443.
47458
47459         * platform/graphics/wx/FontPlatformDataWx.cpp:
47460         (WebCore::FontPlatformData::FontPlatformData):
47461
47462 2008-02-21  Antti Koivisto  <antti@apple.com>
47463
47464         Reviewed by Sam Weinig.
47465
47466         <rdar://problem/5753789>
47467         REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
47468         
47469         Ensure all versions of allowsAccessFrom are inlined to single functions. 
47470         This is a 2% win in browser hosted Sunspider. 
47471
47472         * bindings/js/kjs_window.cpp:
47473         (KJS::Window::allowsAccessFrom):
47474         (KJS::Window::allowsAccessFromPrivate):
47475         * bindings/js/kjs_window.h:
47476
47477 2008-02-21  Dan Bernstein  <mitz@apple.com>
47478
47479         Reviewed by Sam Weinig.
47480
47481         - minor cleanup
47482
47483         * rendering/bidi.cpp:
47484         (WebCore::bidiNext): Removed redundant isBR() check -- isText() returns
47485         true for RenderLineBreak.
47486         (WebCore::bidiFirst): Ditto.
47487         (WebCore::shouldSkipWhitespaceAfterStartObject):
47488         (WebCore::RenderBlock::findNextLineBreak):
47489
47490 2008-02-21  Geoffrey Garen  <ggaren@apple.com>
47491
47492         Reviewed by David Harrison.
47493         
47494         Fixed <rdar://problem/5756125> REGRESSION: A crash occurs at 
47495         WebCore::Frame::scriptProxy() when completing a search with Package Tracker widget
47496
47497         Test: fast/dom/script-element-without-frame-crash.html
47498
47499         * html/HTMLTokenizer.cpp:
47500         (WebCore::HTMLTokenizer::parseTag): Added back a NULL check that was
47501         accidentally removed in r30325.
47502
47503 2008-02-21  Rodney Dawes  <dobey@wayofthemonkey.com>
47504
47505         GTK+ build fix. s/domString()/string()/
47506
47507         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
47508         (FontPlatformData::FontPlatformData):
47509
47510 2008-02-20  Dan Bernstein  <mitz@apple.com>
47511
47512         Reviewed by Dave Hyatt.
47513
47514         - fix http://bugs.webkit.org/show_bug.cgi?id=17465
47515           REGRESSION: <DIV> tokenized into Div if still searching for DOCTYPE
47516
47517         Test: fast/tokenizer/doctype-search-reset.html
47518
47519         * html/HTMLTokenizer.cpp:
47520         (WebCore::HTMLTokenizer::parseTag):
47521
47522 2008-02-20  Dan Bernstein  <mitz@apple.com>
47523
47524         Reviewed by Dave Hyatt.
47525
47526         - fix http://bugs.webkit.org/show_bug.cgi?id=17464
47527           REGRESSION: Crash in RenderBlock::findNextLineBreak reading r30444 commit email in GMail
47528
47529         Test: fast/text/wbr-in-pre-crash.html
47530
47531         * rendering/bidi.cpp:
47532         (WebCore::RenderBlock::findNextLineBreak):
47533
47534 2008-02-20  Oliver Hunt  <oliver@apple.com>
47535
47536         Reviewed by Hyatt.
47537
47538         Bug 17303: Canvas crash in ImageBuffer
47539
47540         We handle a null GraphicsContext everywhere, but we weren't checking for 
47541         a null ImageBuffer, which is what will result in a null GraphicsContext in
47542         the first place.
47543
47544         Test: fast/canvas/access-zero-sized-canvas.html
47545
47546         * html/HTMLCanvasElement.cpp:
47547
47548 2008-02-20  David Hyatt  <hyatt@apple.com>
47549
47550         Fix the layout test failure that never should have passed in the first
47551         place by making changes to media lists actually result in the recomputation
47552         of the style selector.  Now it passes for the right reasons and not because
47553         of dumb luck.
47554
47555         Reviewed by Sam Weinig
47556
47557         * css/MediaList.cpp:
47558         (WebCore::MediaList::deleteMedium):
47559         (WebCore::MediaList::setMediaText):
47560         (WebCore::MediaList::appendMedium):
47561         (WebCore::MediaList::notifyChanged):
47562         * css/MediaList.h:
47563         * dom/Document.cpp:
47564         (WebCore::Document::attach):
47565
47566 2008-02-20  Darin Adler  <darin@apple.com>
47567
47568         Reviewed, tweaked and landed by Sam.
47569
47570         - make markup functions not use DeprecatedString.
47571
47572         * editing/markup.cpp:
47573         (WebCore::append): Added.
47574         (WebCore::escapeContentText): Build up string using a Vector.
47575         (WebCore::appendStartMarkup): Use String instead of DeprecatedString.
47576
47577 2008-02-20  Darin Adler  <darin@apple.com>
47578
47579         Reviewed, tweaked and landed by Sam.
47580
47581         - make TextIterator use a Vector instead of a DeprecatedString.
47582
47583         * editing/TextIterator.cpp:
47584         (WebCore::CharacterIterator::string): Build up the String using a
47585         Vector.
47586         (WebCore::WordAwareIterator::advance): Switch to using Vector functions.
47587         (WebCore::WordAwareIterator::length): Ditto.
47588         (WebCore::WordAwareIterator::characters): Ditto.
47589         * editing/TextIterator.h: Use a Vector<UChar> for the buffer instead
47590         of DeprecatedString.
47591
47592 2008-02-20  Darin Adler  <darin@apple.com>
47593
47594         Reviewed, tweaked and landed by Sam.
47595
47596         - make HTMLInterchange return a String instead of a DeprecatedString
47597
47598         * editing/HTMLInterchange.cpp:
47599         (WebCore::): Return a String from convertedSpaceString.
47600         (WebCore::convertHTMLTextToInterchangeFormat): Use a Vector instead of
47601         a DeprecatedString to build up the return String.
47602         * editing/HTMLInterchange.h:
47603
47604 2008-02-20  Eric Seidel  <eric@webkit.org>
47605
47606         Reviewed by Oliver.
47607
47608         Remove m_drawingContext and change m_data to m_imageBuffer
47609
47610         * html/HTMLCanvasElement.cpp:
47611         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
47612         (WebCore::HTMLCanvasElement::reset):
47613         (WebCore::HTMLCanvasElement::paint):
47614         (WebCore::HTMLCanvasElement::createImageBuffer):
47615         (WebCore::HTMLCanvasElement::buffer):
47616         (WebCore::HTMLCanvasElement::createPlatformImage):
47617         * html/HTMLCanvasElement.h:
47618
47619 2008-02-20  Anders Carlsson  <andersca@apple.com>
47620
47621         Reviewed by Sam.
47622
47623         Rename AtomicString::domString() to AtomicString::string().
47624         
47625         * css/CSSComputedStyleDeclaration.cpp:
47626         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
47627         * css/CSSFontSelector.cpp:
47628         (WebCore::CSSFontSelector::getFontData):
47629         * dom/Attr.cpp:
47630         (WebCore::Attr::createTextChild):
47631         * dom/Comment.cpp:
47632         (WebCore::Comment::nodeName):
47633         * dom/Document.cpp:
47634         (WebCore::Document::recalcStyleSelector):
47635         (WebCore::Document::setHTMLWindowEventListener):
47636         (WebCore::Document::formElementsState):
47637         * dom/StyledElement.cpp:
47638         (WebCore::StyledElement::parseMappedAttribute):
47639         * dom/Text.cpp:
47640         (WebCore::Text::nodeName):
47641         * editing/SelectionController.cpp:
47642         (WebCore::SelectionController::debugRenderer):
47643         * html/HTMLCollection.cpp:
47644         (WebCore::HTMLCollection::checkForNameMatch):
47645         * html/HTMLElement.cpp:
47646         (WebCore::HTMLElement::nodeName):
47647         (WebCore::HTMLElement::setHTMLEventListener):
47648         * html/HTMLFormCollection.cpp:
47649         (WebCore::HTMLFormCollection::getNamedFormItem):
47650         * html/HTMLImageElement.cpp:
47651         (WebCore::HTMLImageElement::parseMappedAttribute):
47652         (WebCore::HTMLImageElement::isURLAttribute):
47653         * html/HTMLLinkElement.cpp:
47654         (WebCore::HTMLLinkElement::parseMappedAttribute):
47655         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
47656         * html/HTMLObjectElement.cpp:
47657         (WebCore::HTMLObjectElement::isURLAttribute):
47658         (WebCore::HTMLObjectElement::containsJavaApplet):
47659         * html/HTMLParamElement.cpp:
47660         (WebCore::HTMLParamElement::isURLAttribute):
47661         * html/HTMLParser.cpp:
47662         (WebCore::HTMLParser::handleIsindex):
47663         * html/HTMLScriptElement.cpp:
47664         (WebCore::HTMLScriptElement::insertedIntoDocument):
47665         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
47666         * html/HTMLStyleElement.cpp:
47667         (WebCore::HTMLStyleElement::parseMappedAttribute):
47668         * html/HTMLTokenizer.cpp:
47669         (WebCore::HTMLTokenizer::parseTag):
47670         * html/HTMLViewSourceDocument.cpp:
47671         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
47672         * loader/FrameLoader.cpp:
47673         (WebCore::FrameLoader::saveDocumentState):
47674         * page/FrameTree.cpp:
47675         (WebCore::FrameTree::uniqueChildName):
47676         * platform/text/AtomicString.h:
47677         (WebCore::AtomicString::string):
47678         (WebCore::AtomicString::contains):
47679         (WebCore::AtomicString::find):
47680         (WebCore::AtomicString::startsWith):
47681         (WebCore::AtomicString::endsWith):
47682         * rendering/RenderPartObject.cpp:
47683         (WebCore::RenderPartObject::updateWidget):
47684         * svg/SVGElement.cpp:
47685         (WebCore::SVGElement::addSVGEventListener):
47686         * svg/SVGSVGElement.cpp:
47687         (WebCore::SVGSVGElement::addSVGWindowEventListener):
47688         * xml/XPathFunctions.cpp:
47689         (WebCore::XPath::FunLocalName::evaluate):
47690         (WebCore::XPath::FunNamespaceURI::evaluate):
47691         (WebCore::XPath::FunName::evaluate):
47692
47693 2008-02-20  Brent Fulgham  <bfulgham@gmail.com>
47694
47695         Reviewed by Dan.
47696
47697         http://bugs.webkit.org/show_bug.cgi?id=17336
47698         Provide implementations for Windows (Cairo) build of WebKit that
47699         handles font formatting.
47700         - Split font implementation files to allow maximal code sharing
47701           between CG and Cairo back-ends. 
47702
47703         * WebCore.vcproj/WebCore.vcproj:
47704         * platform/graphics/SimpleFontData.h:   Add signatures for private win
47705           initialization functions.
47706         * platform/graphics/win/FontCacheWin.cpp:
47707         (WebCore::FontCache::platformInit):
47708         (WebCore::FontCache::createFontPlatformData):
47709         * platform/graphics/win/FontCairoWin.cpp: Removed.  Universal version
47710           is now part of platform/graphics/cairo.
47711         * platform/graphics/win/FontCustomPlatformDataCairo.cpp: Added.
47712         (WebCore::FontCustomPlatformDataCairo::~FontCustomPlatformDataCairo):
47713         (WebCore::FontCustomPlatformDataCairo::fontPlatformData):
47714         (WebCore::releaseData):
47715         (WebCore::createFontCustomPlatformData):
47716         * platform/graphics/win/FontCustomPlatformDataCairo.h: Added.
47717         (WebCore::FontCustomPlatformDataCairo::FontCustomPlatformDataCairo):
47718         * platform/graphics/win/FontPlatformData.h:
47719         (WebCore::FontPlatformData::FontPlatformData):
47720         (WebCore::FontPlatformData::fontFace):
47721         (WebCore::FontPlatformData::scaledFont):
47722         (WebCore::FontPlatformData::operator==):
47723         * platform/graphics/win/FontPlatformDataCGWin.cpp: Copied from WebCore/platform/graphics/win/FontPlatformDataWin.cpp.
47724         (WebCore::FontPlatformData::platformDataInit):
47725         * platform/graphics/win/FontPlatformDataCairoWin.cpp: Added.
47726         (WebCore::FontPlatformData::platformDataInit):
47727         (WebCore::FontPlatformData::FontPlatformData):
47728         (WebCore::FontPlatformData::setFont):
47729         * platform/graphics/win/FontPlatformDataWin.cpp:  Moved CG-specific
47730           code to FontPlatformDataCG.cpp.
47731         (WebCore::FontPlatformData::FontPlatformData):
47732         * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp: Copied from WebCore/platform/graphics/win/GlyphPageTreeNodeWin.cpp.
47733         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp: Copied from WebCore/platform/graphics/win/GlyphPageTreeNodeWin.cpp.
47734         (WebCore::GlyphPage::fill):
47735         * platform/graphics/win/GlyphPageTreeNodeWin.cpp: Removed.  Replaced
47736           with CG- and Cairo-specific versions.
47737         * platform/graphics/win/SimpleFontDataCGWin.cpp:
47738         (WebCore::SimpleFontData::platformInit):
47739         (WebCore::SimpleFontData::platformDestroy):
47740         (WebCore::SimpleFontData::platformWidthForGlyph):
47741         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
47742         (WebCore::SimpleFontData::platformInit):
47743         (WebCore::SimpleFontData::platformDestroy):
47744         (WebCore::SimpleFontData::platformWidthForGlyph):
47745         (WebCore::SimpleFontData::setFont):
47746         * platform/graphics/win/SimpleFontDataWin.cpp:
47747         (WebCore::SimpleFontData::initGDIFont):
47748         (WebCore::SimpleFontData::platformCommonDestroy):
47749         (WebCore::SimpleFontData::widthForGDIGlyph):
47750
47751 2008-02-20  Darin Adler  <darin@apple.com>
47752
47753         Reviewed by Sam.
47754
47755         * dom/Node.h: Took out unneeded forward declaration of TextStream.
47756
47757 2008-02-20  Darin Adler  <darin@apple.com>
47758
47759         Reviewed by Sam.
47760
47761         * rendering/RenderObject.h: Took out unneeded forward declaration of TextStream.
47762
47763 2008-02-20  David Hyatt  <hyatt@apple.com>
47764
47765         Fix for bug 16760, incorrect <object> MIME type handling and fallback
47766         handling.
47767
47768         Reviewed by darin
47769
47770         * html/HTMLImageLoader.cpp:
47771         (WebCore::HTMLImageLoader::notifyFinished):
47772         If the image had an error, make sure to do <object> fallback.
47773
47774         * html/HTMLObjectElement.cpp:
47775         (WebCore::HTMLObjectElement::renderFallbackContent):
47776         Before doing fallback check if there is a MIME type mismatch between
47777         an image type and a non-image type.  If so, detach and re-attach after
47778         storing the correct MIME type.
47779
47780         * loader/loader.cpp:
47781         (WebCore::Loader::didReceiveData):
47782         Consider it an error when a 404 is encountered on a CachedResource load.
47783
47784 2008-02-20  Anders Carlsson  <andersca@apple.com>
47785
47786         Reviewed by Sam.
47787
47788         StringImpl constructors used by AtomicString should start with a refcount of 1.
47789         
47790         * platform/text/AtomicString.cpp:
47791         (WebCore::AtomicString::add):
47792         * platform/text/AtomicString.h:
47793         * platform/text/StringImpl.cpp:
47794         (WebCore::StringImpl::StringImpl):
47795
47796 2008-02-20  Darin Adler  <darin@apple.com>
47797
47798         * bindings/js/kjs_navigator.cpp:
47799         (WebCore::needsYouTubeQuirk): Tweak comments.
47800
47801 2008-02-20  Anders Carlsson  <andersca@apple.com>
47802
47803         Reviewed by Darin.
47804
47805         Change all refcounted classes in page/ to start with a refcount of 1.
47806
47807         * page/BarInfo.cpp:
47808         (WebCore::BarInfo::BarInfo):
47809         * page/BarInfo.h:
47810         (WebCore::BarInfo::create):
47811         * page/Console.cpp:
47812         (WebCore::Console::Console):
47813         * page/Console.h:
47814         (WebCore::Console::create):
47815         * page/DOMSelection.cpp:
47816         (WebCore::DOMSelection::DOMSelection):
47817         * page/DOMSelection.h:
47818         (WebCore::DOMSelection::create):
47819         * page/DOMWindow.cpp:
47820         (WebCore::DOMWindow::DOMWindow):
47821         (WebCore::DOMWindow::screen):
47822         (WebCore::DOMWindow::history):
47823         (WebCore::DOMWindow::locationbar):
47824         (WebCore::DOMWindow::menubar):
47825         (WebCore::DOMWindow::personalbar):
47826         (WebCore::DOMWindow::scrollbars):
47827         (WebCore::DOMWindow::statusbar):
47828         (WebCore::DOMWindow::toolbar):
47829         (WebCore::DOMWindow::console):
47830         (WebCore::DOMWindow::getSelection):
47831         * page/DOMWindow.h:
47832         (WebCore::DOMWindow::create):
47833         * page/Frame.cpp:
47834         (WebCore::Frame::domWindow):
47835         * page/History.cpp:
47836         (WebCore::History::History):
47837         * page/History.h:
47838         (WebCore::History::create):
47839         * page/InspectorController.cpp:
47840         (WebCore::InspectorResource::create):
47841         (WebCore::InspectorResource::InspectorResource):
47842         (WebCore::InspectorDatabaseResource::create):
47843         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
47844         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
47845         (WebCore::InspectorController::identifierForInitialRequest):
47846         (WebCore::InspectorController::didOpenDatabase):
47847         * page/Plugin.h:
47848         (WebCore::Plugin::create):
47849         (WebCore::Plugin::Plugin):
47850         * page/Screen.cpp:
47851         (WebCore::Screen::Screen):
47852         * page/Screen.h:
47853         (WebCore::Screen::create):
47854
47855 2008-02-20  Sam Weinig  <sam@webkit.org>
47856
47857         Reviewed by Darin and Geoff.
47858
47859         - <rdar://problem/5754378> work around missing video on YouTube front page with a site-specific hack
47860
47861         * WebCore.base.exp: Updated.
47862
47863         * bindings/js/kjs_navigator.cpp:
47864         (WebCore::needsYouTubeQuirk): Added. Return true on Windows only when the quirk is needed.
47865         (WebCore::Navigator::getValueProperty): For the appVersion property, if needsYouTubeQuirk
47866         return true, then return the empty string.
47867
47868         * page/Settings.cpp:
47869         (WebCore::Settings::Settings): Set m_needsSiteSpecificQuirks to false.
47870         (WebCore::Settings::setNeedsSiteSpecificQuirks): Added.
47871         * page/Settings.h: Added m_needsSiteSpecificQuirks.
47872         (WebCore::Settings::needsSiteSpecificQuirks): Added.
47873
47874 2008-02-20  David Hyatt  <hyatt@apple.com>
47875
47876         Fix for bug 12751, doctype nodes aren't part of the Document (Acid3).
47877
47878         Reviewed by Sam Weinig
47879
47880         Many tests added in fast/doctypes.
47881
47882         * dom/DOMImplementation.cpp:
47883         (WebCore::DOMImplementation::createDocument):
47884         (WebCore::DOMImplementation::createHTMLDocument):
47885         * dom/Document.cpp:
47886         (WebCore::Document::Document):
47887         (WebCore::Document::setDocType):
47888         (WebCore::Document::attach):
47889         (WebCore::Document::getImageMap):
47890         * dom/Document.h:
47891         (WebCore::Document::doctype):
47892         (WebCore::Document::):
47893         (WebCore::Document::determineParseMode):
47894         (WebCore::Document::setParseMode):
47895         (WebCore::Document::parseMode):
47896         (WebCore::Document::inCompatMode):
47897         (WebCore::Document::inAlmostStrictMode):
47898         (WebCore::Document::inStrictMode):
47899         * dom/DocumentType.cpp:
47900         (WebCore::DocumentType::cloneNode):
47901         (WebCore::DocumentType::insertedIntoDocument):
47902         (WebCore::DocumentType::removedFromDocument):
47903         * dom/DocumentType.h:
47904         * dom/Node.cpp:
47905         (WebCore::Node::childAllowed):
47906         * dom/StyledElement.cpp:
47907         (WebCore::StyledElement::attributeChanged):
47908         * dom/XMLTokenizer.cpp:
47909         (WebCore::XMLTokenizer::internalSubset):
47910         * editing/markup.cpp:
47911         (WebCore::appendStartMarkup):
47912         * html/HTMLAppletElement.cpp:
47913         (WebCore::HTMLAppletElement::createRenderer):
47914         * html/HTMLDocument.cpp:
47915         (WebCore::HTMLDocument::HTMLDocument):
47916         (WebCore::HTMLDocument::childAllowed):
47917         (WebCore::HTMLDocument::determineParseMode):
47918         * html/HTMLDocument.h:
47919         * html/HTMLMapElement.cpp:
47920         (WebCore::HTMLMapElement::parseMappedAttribute):
47921         * html/HTMLParamElement.cpp:
47922         (WebCore::HTMLParamElement::parseMappedAttribute):
47923         * html/HTMLParser.cpp:
47924         (WebCore::HTMLParser::parseDoctypeToken):
47925         * html/HTMLParser.h:
47926         * html/HTMLTokenizer.cpp:
47927         (WebCore::HTMLTokenizer::reset):
47928         (WebCore::HTMLTokenizer::parseDoctype):
47929         (WebCore::HTMLTokenizer::parseTag):
47930         (WebCore::HTMLTokenizer::write):
47931         (WebCore::HTMLTokenizer::finish):
47932         (WebCore::HTMLTokenizer::processDoctypeToken):
47933         * html/HTMLTokenizer.h:
47934         (WebCore::DoctypeToken::DoctypeToken):
47935         (WebCore::DoctypeToken::reset):
47936         (WebCore::DoctypeToken::state):
47937         (WebCore::DoctypeToken::setState):
47938         (WebCore::HTMLTokenizer::State::inDoctype):
47939         (WebCore::HTMLTokenizer::State::setInDoctype):
47940         (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling):
47941         (WebCore::HTMLTokenizer::State::):
47942         * html/HTMLViewSourceDocument.cpp:
47943         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
47944         (WebCore::HTMLViewSourceDocument::addViewSourceDoctypeToken):
47945         * html/HTMLViewSourceDocument.h:
47946         * loader/FrameLoader.cpp:
47947         (WebCore::FrameLoader::write):
47948         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
47949         * page/Frame.cpp:
47950         (WebCore::Frame::documentTypeString):
47951         * page/inspector/utilities.js:
47952         * xml/XSLTProcessor.cpp:
47953         (WebCore::XSLTProcessor::createDocumentFromSource):
47954
47955 2008-02-20  Anders Carlsson  <andersca@apple.com>
47956
47957         Reviewed by Darin.
47958
47959         Change most SVG related classes to start out with a ref count of 1.
47960         
47961         * bindings/js/JSSVGPointListCustom.cpp:
47962         (WebCore::JSSVGPointList::initialize):
47963         (WebCore::JSSVGPointList::insertItemBefore):
47964         (WebCore::JSSVGPointList::replaceItem):
47965         (WebCore::JSSVGPointList::appendItem):
47966         * bindings/js/JSSVGTransformListCustom.cpp:
47967         (WebCore::JSSVGTransformList::initialize):
47968         (WebCore::JSSVGTransformList::insertItemBefore):
47969         (WebCore::JSSVGTransformList::replaceItem):
47970         (WebCore::JSSVGTransformList::appendItem):
47971         * rendering/SVGCharacterLayoutInfo.h:
47972         (WebCore::SVGCharOnPath::create):
47973         (WebCore::SVGCharOnPath::SVGCharOnPath):
47974         * rendering/SVGRootInlineBox.cpp:
47975         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
47976         * svg/SVGAnimationElement.cpp:
47977         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
47978         * svg/SVGClipPathElement.cpp:
47979         (WebCore::SVGClipPathElement::canvasResource):
47980         * svg/SVGElementInstance.cpp:
47981         (WebCore::SVGElementInstance::childNodes):
47982         * svg/SVGElementInstanceList.cpp:
47983         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
47984         * svg/SVGElementInstanceList.h:
47985         (WebCore::SVGElementInstanceList::create):
47986         * svg/SVGFitToViewBox.cpp:
47987         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
47988         * svg/SVGGradientElement.cpp:
47989         (WebCore::SVGGradientElement::SVGGradientElement):
47990         (WebCore::SVGGradientElement::canvasResource):
47991         * svg/SVGImageElement.cpp:
47992         (WebCore::SVGImageElement::SVGImageElement):
47993         * svg/SVGLengthList.h:
47994         (WebCore::SVGLengthList::create):
47995         * svg/SVGList.h:
47996         (WebCore::SVGList::SVGList):
47997         (WebCore::SVGPODListItem::create):
47998         (WebCore::SVGPODListItem::copy):
47999         (WebCore::SVGPODListItem::SVGPODListItem):
48000         (WebCore::SVGPODList::initialize):
48001         (WebCore::SVGPODList::insertItemBefore):
48002         (WebCore::SVGPODList::replaceItem):
48003         (WebCore::SVGPODList::appendItem):
48004         (WebCore::SVGPODList::SVGPODList):
48005         * svg/SVGMarkerElement.cpp:
48006         (WebCore::SVGMarkerElement::canvasResource):
48007         * svg/SVGMaskElement.cpp:
48008         (WebCore::SVGMaskElement::canvasResource):
48009         * svg/SVGNumberList.h:
48010         (WebCore::SVGNumberList::create):
48011         * svg/SVGPathElement.cpp:
48012         (WebCore::SVGPathElement::createSVGPathSegClosePath):
48013         (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
48014         (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
48015         (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
48016         (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
48017         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
48018         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
48019         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
48020         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
48021         (WebCore::SVGPathElement::createSVGPathSegArcAbs):
48022         (WebCore::SVGPathElement::createSVGPathSegArcRel):
48023         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
48024         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
48025         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
48026         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
48027         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
48028         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
48029         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
48030         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
48031         (WebCore::SVGPathElement::pathSegList):
48032         * svg/SVGPathElement.h:
48033         * svg/SVGPathSeg.h:
48034         (WebCore::SVGPathSeg::SVGPathSeg):
48035         * svg/SVGPathSegArc.h:
48036         (WebCore::SVGPathSegArcAbs::create):
48037         (WebCore::SVGPathSegArcRel::create):
48038         * svg/SVGPathSegClosePath.h:
48039         (WebCore::SVGPathSegClosePath::create):
48040         * svg/SVGPathSegCurvetoCubic.h:
48041         (WebCore::SVGPathSegCurvetoCubicAbs::create):
48042         (WebCore::SVGPathSegCurvetoCubicRel::create):
48043         * svg/SVGPathSegCurvetoCubicSmooth.h:
48044         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
48045         (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
48046         * svg/SVGPathSegCurvetoQuadratic.h:
48047         (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
48048         (WebCore::SVGPathSegCurvetoQuadraticRel::create):
48049         * svg/SVGPathSegCurvetoQuadraticSmooth.h:
48050         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
48051         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
48052         * svg/SVGPathSegLineto.h:
48053         (WebCore::SVGPathSegLinetoAbs::create):
48054         (WebCore::SVGPathSegLinetoRel::create):
48055         * svg/SVGPathSegLinetoHorizontal.h:
48056         (WebCore::SVGPathSegLinetoHorizontalAbs::create):
48057         (WebCore::SVGPathSegLinetoHorizontalRel::create):
48058         * svg/SVGPathSegLinetoVertical.h:
48059         (WebCore::SVGPathSegLinetoVerticalAbs::create):
48060         (WebCore::SVGPathSegLinetoVerticalRel::create):
48061         * svg/SVGPathSegList.h:
48062         (WebCore::SVGPathSegList::create):
48063         * svg/SVGPathSegMoveto.h:
48064         (WebCore::SVGPathSegMovetoAbs::create):
48065         (WebCore::SVGPathSegMovetoRel::create):
48066         * svg/SVGPatternElement.cpp:
48067         (WebCore::SVGPatternElement::SVGPatternElement):
48068         (WebCore::SVGPatternElement::canvasResource):
48069         * svg/SVGPointList.h:
48070         (WebCore::SVGPointList::create):
48071         * svg/SVGPolyElement.cpp:
48072         (WebCore::SVGPolyElement::points):
48073         * svg/SVGPreserveAspectRatio.cpp:
48074         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
48075         * svg/SVGPreserveAspectRatio.h:
48076         (WebCore::SVGPreserveAspectRatio::create):
48077         * svg/SVGRenderingIntent.h:
48078         (WebCore::SVGRenderingIntent::SVGRenderingIntent):
48079         * svg/SVGStringList.h:
48080         (WebCore::SVGStringList::create):
48081         * svg/SVGStyledTransformableElement.cpp:
48082         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
48083         * svg/SVGTests.cpp:
48084         (WebCore::SVGTests::requiredFeatures):
48085         (WebCore::SVGTests::requiredExtensions):
48086         (WebCore::SVGTests::systemLanguage):
48087         * svg/SVGTextElement.cpp:
48088         (WebCore::SVGTextElement::SVGTextElement):
48089         * svg/SVGTextPositioningElement.cpp:
48090         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
48091         * svg/SVGTransformList.h:
48092         (WebCore::SVGTransformList::create):
48093         * svg/SVGUnitTypes.h:
48094         (WebCore::SVGUnitTypes::SVGUnitTypes):
48095         * svg/SVGViewElement.cpp:
48096         (WebCore::SVGViewElement::viewTarget):
48097         * svg/SVGViewSpec.cpp:
48098         (WebCore::SVGViewSpec::SVGViewSpec):
48099         * svg/graphics/SVGPaintServer.cpp:
48100         (WebCore::SVGPaintServer::sharedSolidPaintServer):
48101         * svg/graphics/SVGPaintServer.h:
48102         * svg/graphics/SVGPaintServerGradient.h:
48103         (WebCore::SVGPaintServerGradient::SharedStopCache::create):
48104         (WebCore::SVGPaintServerGradient::SharedStopCache::SharedStopCache):
48105         * svg/graphics/SVGPaintServerLinearGradient.h:
48106         (WebCore::SVGPaintServerLinearGradient::create):
48107         * svg/graphics/SVGPaintServerPattern.h:
48108         (WebCore::SVGPaintServerPattern::create):
48109         * svg/graphics/SVGPaintServerRadialGradient.h:
48110         (WebCore::SVGPaintServerRadialGradient::create):
48111         * svg/graphics/SVGPaintServerSolid.h:
48112         (WebCore::SVGPaintServerSolid::create):
48113         * svg/graphics/SVGResource.cpp:
48114         (WebCore::SVGResource::SVGResource):
48115         * svg/graphics/SVGResource.h:
48116         * svg/graphics/SVGResourceClipper.h:
48117         (WebCore::SVGResourceClipper::create):
48118         * svg/graphics/SVGResourceMarker.h:
48119         (WebCore::SVGResourceMarker::create):
48120         * svg/graphics/SVGResourceMasker.h:
48121         (WebCore::SVGResourceMasker::create):
48122         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
48123         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
48124
48125 2008-02-20  Darin Adler  <darin@apple.com>
48126
48127         Reviewed by Sam.
48128
48129         - make conversion from CSS ParseString to String and AtomicString
48130           automatic and remove all the explicit calls to do the conversion
48131
48132         - fix CSS parsing to do fewer allocations, mostly by using the
48133           equalIgnoringCase function in CSSParser
48134
48135         * css/CSSGrammar.y: Take out all the explicit atomicString and
48136         domString calls now that ParseString knows how to convert itself.
48137
48138         * css/CSSParser.cpp:
48139         (WebCore::equal): Added.
48140         (WebCore::equalIgnoringCase): Allow non-lettters.
48141         (WebCore::ParseString::lower): Used charactersAreAllASCII.
48142         (WebCore::unitFromString): Use equal.
48143         (WebCore::CSSParser::parseValue): Removed unneeded call to domString.
48144         (WebCore::CSSParser::parseContent): Use equalIgnoringCase.
48145         (WebCore::CSSParser::parseBackgroundImage): Removed unneeded call to domString.
48146         (WebCore::CSSParser::parseTransitionTimingFunction): Use equalIgnoringCase.
48147         (WebCore::CSSParser::parseDashboardRegions): More of the same.
48148         (WebCore::CSSParser::parseCounterContent): Ditto.
48149         (WebCore::CSSParser::parseShape): Use equalIgnoringCase.
48150         (WebCore::CSSParser::parseFontFamily): Removed unneeded calls to domString.
48151         (WebCore::CSSParser::parseFontFaceSrc): More.
48152         (WebCore::CSSParser::parseFontFaceUnicodeRange): More.
48153         (WebCore::CSSParser::parseColor): Don't lowercase here -- setNamedColor now
48154         handles the case folding.
48155         (WebCore::CSSParser::parseColorFromValue): More.
48156         (WebCore::CSSParser::parseBorderImage): More.
48157         (WebCore::CSSParser::parseCounter): More.
48158         (WebCore::TransformOperationInfo::TransformOperationInfo): More.
48159         (WebCore::CSSParser::parseTransform): More.
48160         (WebCore::CSSParser::createCharsetRule): More.
48161         (WebCore::CSSParser::createImportRule): More.
48162
48163         * css/CSSParser.h: Removed domString and atomicString functions.
48164         (WebCore::ParseString::operator String): Added. Allows conversion to String
48165         without an explicit function call.
48166         (WebCore::ParseString::operator AtomicString): Ditto.
48167
48168         * css/MediaQueryExp.cpp:
48169         (WebCore::MediaQueryExp::MediaQueryExp): Removed a call to domString.
48170         * css/SVGCSSParser.cpp:
48171         (WebCore::CSSParser::parseSVGValue): Removed calls to domString.
48172
48173         * platform/graphics/Color.cpp:
48174         (WebCore::findNamedColor): Call toASCIILower on each character as we copy
48175         it into the 8-bit character buffer to make the operation fold case.
48176
48177 2008-02-20  Justin Garcia  <justin.garcia@apple.com>
48178
48179         Reviewed by Darin Adler.
48180
48181         <rdar://problem/5694920> Typing (esp. deleting) is slower due to TOT WebCore changes
48182
48183         * editing/DeleteSelectionCommand.cpp:
48184         (WebCore::DeleteSelectionCommand::initializeStartEnd): The common case here
48185         is where there are no special elements.  Avoid creating VisiblePositions in
48186         that case.  Additionally, this change postpones the more expensive creation
48187         of an upstream VisiblePosition until the last possible moment.
48188         (WebCore::DeleteSelectionCommand::saveTypingStyleState):
48189         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Add an 
48190         early return for a common case: deleting characters that are all inside the 
48191         same text node. In that case the style at the start of the selection will 
48192         not change during the delete, so there is no need to save/recompute it.
48193         (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor): Early return
48194         before VisiblePosition creation if the ends of the selection aren't enclosed
48195         by an anchor.
48196         * editing/TypingCommand.cpp:
48197         (WebCore::TypingCommand::markMisspellingsAfterTyping): Early return if spell
48198         checking isn't enabled.
48199
48200 2008-02-20  Alexey Proskuryakov  <ap@webkit.org>
48201
48202         Incorporates some improvements made by Dan Bernstein.
48203
48204         Reviewed by Darin.
48205
48206         http://bugs.webkit.org/show_bug.cgi?id=17106
48207         <rdar://problem/5750722> Debug build ASSERTs on page load
48208
48209         Test: fast/encoding/GBK/close-gbk-converter.html
48210
48211         * platform/text/TextCodecICU.cpp:
48212         (WebCore::getGbkEscape): Changed to use a switch instead of a HashMap, as there
48213         are only four values.
48214         (WebCore::gbkCallbackEscape): Check the reason why the function is called, and do not attempt
48215         getting an escape character if it's not UCNV_UNASSIGNED.
48216         (WebCore::gbkCallbackSubstitute): Ditto.
48217
48218 2008-02-20  Alexey Proskuryakov  <ap@webkit.org>
48219
48220         Build fix.
48221
48222         * xml/XMLHttpRequest.cpp:
48223         (WebCore::isSafeRequestHeader):
48224         (WebCore::XMLHttpRequest::setRequestHeader):
48225
48226 2008-02-20  Alexey Proskuryakov  <ap@webkit.org>
48227
48228         Reviewed by Darin.
48229
48230         <rdar://problem/5749455> Unable to set the Referer header in Dashboard using XMLHttpRequest
48231
48232         Cannot be tested in DRT.
48233
48234         * xml/XMLHttpRequest.cpp: (WebCore::canSetRequestHeader): Assume that a request that can load
48235         local files can also set any headers.
48236
48237 2008-02-19  Darin Adler  <darin@apple.com>
48238
48239         Reviewed by Sam.
48240
48241         - removed use of DeprecatedString for font family names
48242
48243         * css/CSSFontSelector.cpp:
48244         (WebCore::CSSFontSelector::addFontFaceRule): Update for name change.
48245         * css/CSSParser.cpp:
48246         (WebCore::CSSParser::parseFontFamily): Update to use new appendSpaceSeparated
48247         function and String rather than DeprecatedString.
48248         * css/CSSStyleSelector.cpp:
48249         (WebCore::CSSStyleSelector::applyProperty): Updated for name change.
48250         * css/FontFamilyValue.cpp:
48251         (WebCore::FontFamilyValue::FontFamilyValue): Replaced code using a regular
48252         expression with code that does the same thing more efficiently.
48253         (WebCore::FontFamilyValue::appendSpaceSeparated): Added.
48254         (WebCore::FontFamilyValue::cssText): Updated for name change.
48255         * css/FontFamilyValue.h: Changed DeprecatedString to String. Renamed fontName
48256         to familyName and parsedFontName to m_familyName. Removed unused genericFamilyType
48257         and m_genericFamilyType. Added appendSpaceSeparated so that m_familyName can
48258         be private instead of public.
48259
48260 2008-02-19  Darin Adler  <darin@apple.com>
48261
48262         - fix build when SVG is not enabled
48263
48264         * rendering/RenderTreeAsText.cpp: Added include of "TextStream.h".
48265
48266 2008-02-19  Anders Carlsson  <andersca@apple.com>
48267
48268         Reviewed by Darin.
48269
48270         Change all classes in xml/ to start out with a ref count of 1.
48271         
48272         * bindings/js/JSCustomXPathNSResolver.h:
48273         * bindings/js/JSXMLHttpRequest.cpp:
48274         (WebCore::JSXMLHttpRequest::JSXMLHttpRequest):
48275         * bindings/js/JSXSLTProcessor.cpp:
48276         (WebCore::JSXSLTProcessor::JSXSLTProcessor):
48277         * bindings/objc/DOMCustomXPathNSResolver.h:
48278         (WebCore::DOMCustomXPathNSResolver::create):
48279         * bindings/scripts/CodeGeneratorJS.pm:
48280         * bindings/scripts/CodeGeneratorObjC.pm:
48281         * dom/Document.cpp:
48282         (WebCore::Document::applyXSLTransform):
48283         (WebCore::Document::createExpression):
48284         (WebCore::Document::createNSResolver):
48285         (WebCore::Document::evaluate):
48286         * xml/DOMParser.h:
48287         (WebCore::DOMParser::create):
48288         (WebCore::DOMParser::DOMParser):
48289         * xml/NativeXPathNSResolver.h:
48290         (WebCore::NativeXPathNSResolver::create):
48291         * xml/XMLHttpRequest.cpp:
48292         (WebCore::XMLHttpRequest::XMLHttpRequest):
48293         * xml/XMLHttpRequest.h:
48294         (WebCore::XMLHttpRequest::create):
48295         * xml/XMLSerializer.h:
48296         (WebCore::XMLSerializer::create):
48297         (WebCore::XMLSerializer::XMLSerializer):
48298         * xml/XPathEvaluator.cpp:
48299         (WebCore::XPathEvaluator::createNSResolver):
48300         * xml/XPathEvaluator.h:
48301         (WebCore::XPathEvaluator::create):
48302         (WebCore::XPathEvaluator::XPathEvaluator):
48303         * xml/XPathExpression.cpp:
48304         (WebCore::XPathExpression::createExpression):
48305         (WebCore::XPathExpression::evaluate):
48306         * xml/XPathExpression.h:
48307         (WebCore::XPathExpression::create):
48308         (WebCore::XPathExpression::XPathExpression):
48309         * xml/XPathNSResolver.h:
48310         * xml/XPathResult.cpp:
48311         (WebCore::XPathResult::XPathResult):
48312         * xml/XPathResult.h:
48313         (WebCore::XPathResult::create):
48314         * xml/XPathValue.cpp:
48315         (WebCore::XPath::Value::modifiableNodeSet):
48316         * xml/XPathValue.h:
48317         (WebCore::XPath::ValueData::create):
48318         (WebCore::XPath::ValueData::ValueData):
48319         (WebCore::XPath::Value::Value):
48320         * xml/XSLTProcessor.h:
48321         (WebCore::XSLTProcessor::create):
48322         (WebCore::XSLTProcessor::XSLTProcessor):
48323
48324 2008-02-19  Darin Adler  <darin@apple.com>
48325
48326         Reviewed by Sam.
48327
48328         - Trimmed down TextStream and weaned it from DeprecatedString.
48329
48330         * page/mac/WebCoreFrameBridge.mm:
48331         (-[WebCoreFrameBridge renderTreeAsExternalRepresentation]):
48332         Removed now-unneeded call to getNSString.
48333
48334         * platform/text/TextStream.cpp: Removed unused functions.
48335         Use snprintf instead of sprintf, for better security.
48336         (WebCore::TextStream::release): Added.
48337         * platform/text/TextStream.h: Removed lots of unneeded stuff.
48338
48339         * rendering/RenderTreeAsText.cpp:
48340         (WebCore::externalRepresentation): Changed to use String instead
48341         of DeprecatedString.
48342         * rendering/RenderTreeAsText.h: Ditto.
48343
48344         * rendering/SVGRenderTreeAsText.cpp:
48345         (WebCore::writeSVGInlineTextBox): Use "\n" instead of endl.
48346         (WebCore::write): Ditto.
48347         (WebCore::writeRenderResources): Ditto.
48348
48349 2008-02-19  Justin Garcia  <justin.garcia@apple.com>
48350
48351         Reviewed by Darin Adler.
48352
48353         <rdar://problem/5694920> Typing (esp. deleting) is slower due to TOT WebCore changes
48354         
48355         This brings performance on the phone back to old levels.  Andre and I are doing
48356         some formal testing to see exactly where we stand.
48357
48358         * dom/Position.cpp:
48359         (WebCore::enclosingBlockIgnoringEditability): Added.  This is enclosingBlock
48360         without the expensive editability checks. upstream and downstream can avoid 
48361         those because they do their own editability checking.
48362         (WebCore::Position::upstream):
48363         (WebCore::Position::downstream):
48364
48365 2008-02-19  Chris Fleizach  <cfleizach@apple.com>
48366
48367         Reviewed by Darin.
48368
48369         <rdar://problem/3663560> AXLink for a "name" (anchor) on same page should include an AXLinkedUIElementAttribute
48370
48371         * bridge/mac/WebCoreAXObject.mm:
48372         (-[WebCoreAXObject linkedUIElement]):
48373         Returns the linked-to AX object (if the specified one is ignored by accessibility, returns the next un-ignored one by traversing the DOM).
48374         
48375         (-[WebCoreAXObject accessibilityAttributeNames]):
48376         (-[WebCoreAXObject accessibilityAttributeValue:]):
48377         Support NSAccessibilityLinkedUIElementsAttribute.
48378
48379 2008-02-19  Darin Adler  <darin@apple.com>
48380
48381         Reviewed by Sam.
48382
48383         - Removed old debugging aids, Node::dump, RenderObject::dump, and
48384           RenderObject::information, that used DeprecatedString.
48385
48386         * dom/CharacterData.cpp: Removed override of Node::dump.
48387         * dom/CharacterData.h: Ditto.
48388         * dom/Element.cpp: Ditto.
48389         * dom/Element.h: Ditto.
48390         * dom/EventTargetNode.cpp: Ditto.
48391         * dom/EventTargetNode.h: Ditto.
48392         * dom/Node.cpp: Removed Node::dump.
48393         * dom/Node.h: Ditto.
48394
48395         * rendering/RenderBlock.cpp: Removed override of RenderObject::dump.
48396         * rendering/RenderBlock.h: Ditto.
48397         * rendering/RenderFrameSet.cpp: Ditto.
48398         * rendering/RenderFrameSet.h: Ditto.
48399         * rendering/RenderObject.cpp: Removed RenderObject::dump and
48400         RenderObject::information.
48401         * rendering/RenderObject.h: Ditto.
48402         * rendering/RenderTable.cpp: Removed override of RenderObject::dump.
48403         * rendering/RenderTable.h: Ditto.
48404         * rendering/RenderTableCell.cpp: Ditto.
48405         * rendering/RenderTableCell.h: Ditto.
48406         * rendering/RenderTableCol.cpp: Ditto.
48407         * rendering/RenderTableCol.h: Ditto.
48408         * rendering/RenderTableSection.cpp: Ditto.
48409         * rendering/RenderTableSection.h: Ditto.
48410
48411         * rendering/RenderTreeAsText.h: Removed unneeded include of TextStream.h
48412         and added forward declarations as appropriate.
48413
48414         * svg/SVGSVGElement.cpp: Removed unneeded include of TextStream.h.
48415         * svg/graphics/SVGResourceClipper.cpp: And here.
48416         * svg/graphics/SVGResourceFilter.cpp: Ditto.
48417         * svg/graphics/filters/SVGFEBlend.cpp: Ditto.
48418         * svg/graphics/filters/SVGFEComponentTransfer.cpp: Ditto.
48419         * svg/graphics/filters/SVGFEComposite.cpp: Ditto.
48420         * svg/graphics/filters/SVGFEDiffuseLighting.cpp: Ditto.
48421         * svg/graphics/filters/SVGFEGaussianBlur.cpp: Ditto.
48422         * svg/graphics/filters/SVGFEImage.cpp: Ditto.
48423         * svg/graphics/filters/SVGFEMerge.cpp: Ditto.
48424         * svg/graphics/filters/SVGFEMorphology.cpp: Ditto.
48425         * svg/graphics/filters/SVGFEOffset.cpp: Ditto.
48426         * svg/graphics/filters/SVGFESpecularLighting.cpp: Ditto.
48427         * svg/graphics/filters/SVGFETurbulence.cpp: Ditto.
48428         * svg/graphics/filters/SVGFilterEffect.cpp: Ditto.
48429
48430 2008-02-19  Beth Dakin  <bdakin@apple.com>
48431
48432         Reviewed by Sam.
48433
48434         Fix for <rdar://problem/5729674> Seed: Crash in 
48435         RenderButton::setStyle at http://www.dinorpg.com
48436
48437         Inputs should not honor first-letter.
48438
48439         * rendering/RenderBlock.cpp:
48440         (WebCore::RenderBlock::updateFirstLetter):
48441
48442 2008-02-19  Dan Bernstein  <mitz@apple.com>
48443
48444         Reviewed by Darin Adler.
48445
48446         - fix <rdar://problem/5637569> CrashTracer: [REGRESSION] 620 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::setStaticY + 15
48447
48448         Test: fast/text/wbr-styled.html
48449
48450         Changed RenderWordBreak to inherit from RenderText instead of
48451         RenderInline.
48452
48453         * rendering/RenderBlock.cpp:
48454         (WebCore::RenderBlock::calcInlinePrefWidths):
48455         * rendering/RenderFlow.h:
48456         * rendering/RenderText.cpp:
48457         (WebCore::RenderText::renderName):
48458         (WebCore::RenderText::isTextFragment):
48459         (WebCore::RenderText::isWordBreak):
48460         * rendering/RenderText.h:
48461         * rendering/RenderWordBreak.cpp:
48462         (WebCore::RenderWordBreak::RenderWordBreak):
48463         * rendering/RenderWordBreak.h:
48464         * rendering/bidi.cpp:
48465         (WebCore::RenderBlock::findNextLineBreak):
48466
48467 2008-02-19  Anders Carlsson  <andersca@apple.com>
48468
48469         Reviewed by Darin.
48470
48471         * WebCore.base.exp:
48472         * loader/mac/LoaderNSURLExtras.h:
48473         * loader/mac/LoaderNSURLExtras.m:
48474         Move unused functions to WebKit (where they are used)
48475         
48476         (vectorContainsString):
48477         Use const references.
48478         
48479         * platform/mac/WebCoreSystemInterface.h:
48480         * platform/mac/WebCoreSystemInterface.mm:
48481         Remove wkNSURLProtocolClassForReqest.
48482         
48483 2008-02-19  Justin Garcia  <justin.garcia@apple.com>
48484
48485         Reviewed by Darin Adler.
48486
48487         <rdar://problem/5694920> Typing (esp. deleting) is slower due to TOT WebCore 
48488         
48489         These changes bring deleting performance back to old levels on the phone
48490         except for deleting the first space to the right of a word, which we are
48491         still working on.
48492
48493         * dom/Position.cpp:
48494         (WebCore::Position::upstream): Avoid the use of enclosingBlock when determining
48495         if we have left the original enclosing block or entered a new one, and avoid
48496         rootEditableElement for determining if we have changed editability.  These
48497         operations are expensive.
48498         (WebCore::Position::downstream): Ditto.
48499
48500 2008-02-19  Darin Adler  <darin@apple.com>
48501
48502         Rubber stamped by Anders.
48503
48504         - removed explicit initialization to 1 for RefCounted; that's now the default
48505
48506         * loader/ResourceLoader.cpp:
48507         (WebCore::ResourceLoader::ResourceLoader): Removed RefCounted initializer.
48508         * platform/network/ResourceHandle.cpp:
48509         (WebCore::ResourceHandle::ResourceHandle): Ditto.
48510         * platform/text/StringImpl.cpp:
48511         (WebCore::StringImpl::StringImpl): Ditto.
48512
48513 2008-02-18  Anders Carlsson  <andersca@apple.com>
48514
48515         Reviewed by Darin.
48516
48517         Make ResourceLoader and ResourceHandle start out with a refcount of 1.
48518
48519         * loader/MainResourceLoader.cpp:
48520         (WebCore::MainResourceLoader::create):
48521         * loader/NetscapePlugInStreamLoader.cpp:
48522         (WebCore::NetscapePlugInStreamLoader::create):
48523         * loader/ResourceLoader.cpp:
48524         (WebCore::ResourceLoader::ResourceLoader):
48525         * loader/SubresourceLoader.cpp:
48526         (WebCore::SubresourceLoader::create):
48527         * platform/network/ResourceHandle.cpp:
48528         (WebCore::ResourceHandle::ResourceHandle):
48529         (WebCore::ResourceHandle::create):
48530
48531 2008-02-19  Alp Toker  <alp@atoker.com>
48532
48533         Reviewed by Mark Rowe.
48534
48535         http://bugs.webkit.org/show_bug.cgi?id=16863
48536         [GTK] tab focusing doesn't work
48537
48538         GDK_MOD2_MASK doesn't always mean meta so we can't use it to identify
48539         the meta key state.
48540
48541         Use GDK_META_MASK where available, otherwise do not support the meta
48542         key. This matches the behaviour of other applications.
48543
48544         Also add a comment noting that the platform event constructors need to
48545         be kept in sync (it's not obvious that there are multiple places that
48546         check the key state).
48547
48548         * platform/gtk/KeyEventGtk.cpp:
48549         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
48550         * platform/gtk/MouseEventGtk.cpp:
48551         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
48552         * platform/gtk/WheelEventGtk.cpp:
48553         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
48554
48555 2008-02-18  Brady Eidson  <beidson@apple.com>
48556
48557         Reviewed by Sam Weinig's white rhino tusk stamp
48558
48559         SQLiteTransaction::stop() should also reset the transaction-in-progress flag in its parent SQLiteDatabase
48560
48561         * platform/sql/SQLiteTransaction.cpp:
48562         (WebCore::SQLiteTransaction::stop):
48563
48564 2008-02-18  Brady Eidson  <beidson@apple.com>
48565
48566         Reviewed by Darin
48567
48568         Fix for <rdar://5747529> - ObjC Exception can cause JSLock to never be released
48569
48570         Test: platform/mac/plugins/webScriptObject-exception-deadlock.html
48571
48572         * bindings/objc/WebScriptObject.mm:
48573         (-[WebScriptObject valueForKey:]): The line `resultObj = [super valueForKey:key];    // defaults to throwing an exception` 
48574           says it all - it throws an exception.  This method also happens to hold the JSLock.  Problematically, when the exeception
48575           is thrown and the method exited, the JSLock is never released.  Fix that without otherwise changing behavior by holding the 
48576           JSLock in two individual scopes - Right before the exception and right after.  
48577
48578 2008-02-18  Darin Adler  <darin@apple.com>
48579
48580         Reviewed by Sam.
48581
48582         - reduce use of DeprecatedString and memory allocations in processing of CSS
48583         - remove unnecessary double -> float -> double trip in the CSS parser
48584         - cleaned up names and structure in CSS grammar
48585
48586         * css/CSSGrammar.y: Remove getPropertyID and getValueID. Both are now in CSSParser.cpp
48587         instead, and they now work on ParseString and String objects and don't require the caller
48588         to put the string into a char*. Gave members of the %union more sensible names, removed
48589         duplicates, and sorted into a logical order. Put the %expect back in, rather than leaving
48590         it commented out.
48591         * css/CSSParser.cpp:
48592         (WebCore::equalIgnoringCase): Added.
48593         (WebCore::hasPrefix): Added.
48594         (WebCore::CSSParser::parseTransitionProperty): Changed to call the new cssPropertyID,
48595         which obviates the need to call lower() and utf8() or to allocate memory at all. Also
48596         used equalIgnoringCase rather than putting the value into a String just to compare it.
48597         (WebCore::CSSParser::lex): Replaced convertASCIIToFloat with charactersToDouble. This change
48598         along with the CSSGrammar.y change, removes the double -> float -> double round trip, and
48599         affects the result of one layout test.
48600         (WebCore::cssPropertyID): Added. Gets the property ID from the gperf hash table, but
48601         without allocating any memory.
48602         (WebCore::cssValueKeywordID): Ditto.
48603         * css/CSSParser.h: Removed declaration for deprecatedString function (now used only in
48604         CSSParser.cpp; soon to be deleted). Added cssPropertyID and cssValueKeywordID functions.
48605
48606         * css/CSSStyleDeclaration.cpp:
48607         (WebCore::CSSStyleDeclaration::getPropertyCSSValue): Call cssPropertyID instead of propertyID.
48608         (WebCore::CSSStyleDeclaration::getPropertyValue): Ditto.
48609         (WebCore::CSSStyleDeclaration::getPropertyPriority): Ditto.
48610         (WebCore::CSSStyleDeclaration::getPropertyShorthand): Ditto.
48611         (WebCore::CSSStyleDeclaration::isPropertyImplicit): Ditto.
48612         (WebCore::CSSStyleDeclaration::setProperty): Ditto.
48613         (WebCore::CSSStyleDeclaration::removeProperty): Ditto.
48614         (WebCore::CSSStyleDeclaration::isPropertyName): Ditto.
48615         * css/CSSStyleDeclaration.h: Removed unnecessary includes, unnecessary Noncopyable boilerplate,
48616         and the getPropertyID function declaration along with its associated apology comment.
48617
48618         * css/makevalues.pl: Generate constants instead of macros for CSS value numbers (but not an
48619         enumeration, like properties, since you rarely have any reason to handle all values, but
48620         often have a reason to handle all properties). Renamed the constant for the number of CSS
48621         value keywords from CSS_VAL_TOTAL to numCSSValueKeywords, and added maxCSSValueKeywordLength.
48622
48623         * platform/text/String.cpp:
48624         (WebCore::charactersToDouble): Made this function more efficient by using a stack buffer
48625         rather than a CString.
48626
48627 2008-02-18  Dan Bernstein  <mitz@apple.com>
48628
48629         Reviewed by Dave Hyatt.
48630
48631         - fix <rdar://problem/5736225> crash in svgFontAndFaceElementForFontData on digitalstrom.org/cms
48632
48633         Test: fast/css/font-face-multiple-remote-sources.html
48634
48635         * css/CSSFontFace.cpp:
48636         (WebCore::CSSFontFace::fontLoaded):
48637         * css/CSSSegmentedFontFace.cpp:
48638         (WebCore::CSSSegmentedFontFace::fontLoaded):
48639
48640 2008-02-18  Darin Adler  <darin@apple.com>
48641
48642         Reviewed by Sam.
48643
48644         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
48645         (WebCore::hasCSSPropertyNamePrefix): Added.
48646         (WebCore::cssPropertyName): Reimplement to not use DeprecatedString. Also made faster
48647         by using a Vector<UChar> and eliminating all the string operations.
48648
48649 2008-02-18  Stephanie Lewis  <slewis@apple.com>
48650
48651         Reviewed by Adam.
48652
48653         Remove workaround for <rdar://problem/5695848>.
48654         
48655         * platform/network/cf/ResourceResponseCFNet.cpp:
48656         (WebCore::ResourceResponse::doUpdateResourceResponse):
48657
48658 2008-02-18  Samuel Weinig  <sam@webkit.org>
48659
48660         Reviewed by Geoff Garen.
48661
48662         Fix for http://bugs.webkit.org/show_bug.cgi?id=17419
48663         Remove CompatMode from JavaScriptCore as it is never set to anything other than NativeMode
48664
48665         * bindings/js/kjs_proxy.cpp:
48666         (WebCore::KJSProxy::initScript):
48667
48668 2008-02-18  Alp Toker  <alp@atoker.com>
48669
48670         Reviewed by Mark Rowe.
48671
48672         http://bugs.webkit.org/show_bug.cgi?id=17381
48673         [CURL] Regression: data URL parsing broken after DeprecatedString removal (Acid2)
48674
48675         This patch resolves the regression for the GTK+ port.
48676
48677         * platform/network/curl/ResourceHandleManager.cpp:
48678         (WebCore::parseDataUrl):
48679
48680 2008-02-18  Darin Adler  <darin@apple.com>
48681
48682         Reviewed by Sam.
48683
48684         * platform/network/win/ResourceHandleWin.cpp:
48685         (WebCore::ResourceHandle::onHandleCreated): Use String instead of DeprecatedString.
48686         (WebCore::ResourceHandle::start): Ditto.
48687
48688 2008-02-18  Darin Adler  <darin@apple.com>
48689
48690         Reviewed by Sam.
48691
48692         * platform/network/win/CookieJarWin.cpp:
48693         (WebCore::setCookies): Use String instead of DeprecatedString.
48694         (WebCore::cookies): Ditto.
48695
48696 2008-02-18  Darin Adler  <darin@apple.com>
48697
48698         Reviewed by Sam.
48699
48700         - removed use of DeprecatedString in the Color class
48701
48702         * platform/graphics/Color.cpp:
48703         (WebCore::Color::parseHexColor): Streamlined logic a bit with early returns.
48704         Used toASCIIHexValue a character at a time rather than using toIntStrict
48705         in base 16 mode.
48706         (WebCore::findNamedColor): Added. Uses a fixed-size char buffer to look up
48707         a color using the gperf-generated findColor function. Saves a memory allocation
48708         vs. the old version that called DeprecatedString::latin1().
48709         (WebCore::Color::setNamedColor): Changed to use findNamedColor.
48710
48711 2008-02-18  Darin Adler  <darin@apple.com>
48712
48713         Reviewed by Sam.
48714
48715         * editing/htmlediting.cpp:
48716         (WebCore::stringWithRebalancedWhitespace): Changed to use String instead of
48717         DeprecatedString.
48718
48719 2008-02-18  Darin Adler  <darin@apple.com>
48720
48721         Reviewed by Sam.
48722
48723         * editing/SelectionController.cpp:
48724         (WebCore::SelectionController::debugRenderer): Changed to use String instead of
48725         DeprecatedString.
48726
48727 2008-02-18  Darin Adler  <darin@apple.com>
48728
48729         Reviewed and landed by Sam.
48730
48731         Remove DeprecatedStringList.
48732
48733         * GNUmakefile.am:
48734         * WebCore.pro:
48735         * WebCore.vcproj/WebCore.vcproj:
48736         * WebCore.xcodeproj/project.pbxproj:
48737         * WebCoreSources.bkl:
48738         * editing/markup.cpp:
48739         * platform/DeprecatedStringList.cpp: Removed.
48740         * platform/DeprecatedStringList.h: Removed.
48741         * platform/mac/DeprecatedStringListMac.mm: Removed.
48742
48743 2008-02-18  Darin Adler  <darin@apple.com>
48744
48745         Reviewed by Sam.
48746
48747         * css/CSSPrimitiveValueMappings.h: Add default cases to all the switch statements.
48748         This will ease the way some day if we decide to use an enum instead of int; otherwise
48749         we'll have a ton of "unhandled enum value" warnings here.
48750
48751 2008-02-18  Alp Toker  <alp@atoker.com>
48752
48753         Build fix for GTK+ < 2.10. Fall back to simple text clipboard copy
48754         with older GTK+ versions for now.
48755
48756         * platform/gtk/PasteboardGtk.cpp:
48757         (WebCore::Pasteboard::writeSelection):
48758
48759 2008-02-18  Darin Adler  <darin@apple.com>
48760
48761         Reviewed by Sam.
48762
48763         * WebCore.base.exp: Export a couple of WebCore::String functions we plan to use
48764         in the future in WebKit.
48765
48766 2008-02-18  Darin Adler  <darin@apple.com>
48767
48768         Reviewed by Sam.
48769
48770         * DerivedSources.make: Added the scripts to the ENABLE_SVG versions of the rules
48771         for CSSPropertyNames.h and CSSValueKeywords.h. Somehow that got left out, so the
48772         files would not be regenerated if the scripts were changed (but would if SVG was
48773         disabled).
48774
48775 2008-02-18  Alexey Proskuryakov  <ap@webkit.org>
48776
48777         Suggested by Darin.
48778
48779         * platform/KURL.h: (WebCore::KURL::operator const String&): Added, to avoid unexpected
48780         conversion via UString (as in bug 17418).
48781
48782 2008-02-18  Jon Honeycutt  <jhoneycutt@apple.com>
48783
48784         Reviewed by Darin.
48785
48786         <rdar://problem/5744899> Crash in Flash when clicking "Yes" to abort
48787         slow script Flash 9 dialog at http://www.kidzui.com
48788
48789         When navigating to a new page, we stop all outstanding PluginStreams.
48790         Flash hangs in the call to NPP_URLNotify. It eventually displays the
48791         "slow script" dialog, which relinquishes control to the system. While
48792         this dialog is running, the request we are in the process of cancelling
48793         completes, and we re-enter Flash to deliver the data. When the dialog
48794         is dismissed, the internal state of Flash has changed, and Flash
48795         crashes with a null dereference.
48796
48797         To work around this, we can defer loading before entering plug-in code,
48798         so that even if a plug-in yields to the system, we won't get callbacks
48799         while we're handling a callback.
48800
48801         * plugins/PluginStream.cpp:
48802         (WebCore::PluginStream::startStream): Defers loads while calling into
48803         plug-in.
48804         (WebCore::PluginStream::destroyStream): Same.
48805         (WebCore::PluginStream::deliverData): Same.
48806         (WebCore::PluginStream::didFail): Protect 'this' from deletion by
48807         destroyStream. Null out m_loader only after destroyStream returns.
48808         (WebCore::PluginStream::didFinishLoading): Same.
48809
48810 2008-02-18  Alexey Proskuryakov  <ap@webkit.org>
48811
48812         Reviewed by Darin.
48813
48814         http://bugs.webkit.org/show_bug.cgi?id=17418
48815         REGRESSION: Assertion failure dragging image (JSLock::lockCount() > 0)
48816
48817         * platform/win/ClipboardWin.cpp:
48818         (WebCore::ClipboardWin::declareAndWriteDragImage): Explicitly convert from KURL to String,
48819         as an implicit conversion uses UString and thus needs a JSLock.
48820
48821 2008-02-17  Sam Weinig  <sam@webkit.org>
48822
48823         Roll out r30360.
48824
48825         * loader/FrameLoader.cpp:
48826         (WebCore::FrameLoader::changeLocation):
48827
48828 2008-02-17  Sam Weinig  <sam@webkit.org>
48829
48830         Mac build fix.
48831
48832         * WebCore.xcodeproj/project.pbxproj:
48833
48834 2008-02-17  Alp Toker  <alp@atoker.com>
48835
48836         Attempt to fix the Wx build (has been broken all weekend).
48837
48838         Stub out some graphics functions.
48839
48840         * platform/graphics/wx/GraphicsContextWx.cpp:
48841         (WebCore::GraphicsContext::beginPath):
48842         (WebCore::GraphicsContext::addPath):
48843         * platform/graphics/wx/PathWx.cpp:
48844         (WebCore::Path::isEmpty):
48845
48846 2008-02-17  Julien Chaffraix  <julien.chaffraix@gmail.com>
48847
48848         Reviewed by Alexey Proskuryakov.
48849
48850         http://bugs.webkit.org/show_bug.cgi?id=16989
48851         bug 16989 : Add send() flag checks in XmlHttpRequest
48852
48853         Splitted XmlHttpRequest::abort into abort (called from JavaScript) and internalAbort that
48854         perform the cancellation and is called mainly from internal methods.
48855
48856         Tests: http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldDispatchEvent.html
48857                http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldNotDispatchEvent.html
48858                http/tests/xmlhttprequest/xmlhttprequest-test-send-flag.html
48859
48860         * xml/XMLHttpRequest.cpp:
48861         (WebCore::XMLHttpRequest::open): Now call internalAbort() and moved readyState change into method
48862         (WebCore::XMLHttpRequest::send): Added m_loader check
48863         (WebCore::XMLHttpRequest::abort): Now update readyState and clear the request headers as specified
48864         in the spec
48865
48866         (WebCore::XMLHttpRequest::internalAbort): Perform cancellation internal operations (no readyState update)
48867         (WebCore::XMLHttpRequest::setRequestHeader): Added m_loader check
48868
48869         (WebCore::XMLHttpRequest::processSyncLoadResults): Now call internalAbort() instead of abort()
48870         (WebCore::XMLHttpRequest::willSendRequest): Ditto
48871         (WebCore::XMLHttpRequest::cancelRequests): Ditto
48872         (WebCore::XMLHttpRequest::detachRequests): Ditto
48873         * xml/XMLHttpRequest.h: Added the private internalAbort method
48874
48875 2008-02-17  Sam Weinig  <sam@webkit.org>
48876
48877         Reviewed by Dan Bernstein.
48878
48879         Fix for http://bugs.webkit.org/show_bug.cgi?id=17365
48880         document.createEvent("MessageEvent") throws NOT_SUPPORTED_ERR
48881
48882         - Updated fast/events/event-instanceof.html to test document.createEvent("MessageEvent").
48883
48884         * DerivedSources.make:
48885         Generate Objective-C binding for DOMProgressEvent which was missing.
48886
48887         * WebCore.xcodeproj/project.pbxproj:
48888         Add missing DOMProgressEvent files to the project.
48889
48890         * bindings/js/JSEventCustom.cpp:
48891         (WebCore::toJS):
48892         Clean up and add case for SVGZoomEvent that was missing.
48893
48894         * bindings/objc/DOMEvents.mm:
48895         (+[DOMEvent _wrapEvent:WebCore::]):
48896         Clean up and add cases for ProgressEvent and MessageEvent that were missing.
48897
48898         * dom/Document.cpp:
48899         (WebCore::Document::createEvent):
48900         Add case for MessageEvent.
48901
48902 2008-02-17  Adam Treat  <treat@kde.org>
48903
48904         Reviewed by Eric Seidel.
48905
48906         http://bugs.webkit.org/show_bug.cgi?id=17008
48907         Meta refresh does not work with cache turned off
48908
48909         Fix for issue noticed on http://adserver.vivox.com/2
48910
48911         * loader/FrameLoader.cpp:
48912         (WebCore::FrameLoader::changeLocation):
48913
48914 2008-02-17  Alp Toker  <alp@atoker.com>
48915
48916         Reviewed by Sam Weinig.
48917
48918         Fix for change made in r30355. Issue noticed by Ä°smail Dönmez.
48919
48920         Verify SSL certs by default, but allow checks to be disabled with an
48921         environment variable (WEBKIT_IGNORE_SSL_ERRORS) for now.
48922
48923         * platform/network/curl/ResourceHandleManager.cpp:
48924         (WebCore::ResourceHandleManager::startJob):
48925
48926 2008-02-17  Bin Chen  <binary.chen@gmail.com>
48927
48928         Reviewed by Alp Toker.
48929
48930         http://bugs.webkit.org/show_bug.cgi?id=17404
48931         Bug 17404: curl certification problem
48932
48933         Disable SSL cert verification until we have a way of distributing
48934         certs and/or reporting SSL errors to the user.
48935
48936         * platform/network/curl/ResourceHandleManager.cpp:
48937         (WebCore::ResourceHandleManager::startJob):
48938
48939 2008-02-17  Alp Toker  <alp@atoker.com>
48940
48941         Reviewed by Mark Rowe.
48942
48943         DevHelp fails to load local files; URL truncated by one character.
48944
48945         Fix a file:// URL regression introduced in KURL.cpp r30243.
48946
48947         * platform/KURL.cpp:
48948         (WebCore::KURL::KURL):
48949
48950 2008-02-17  Dan Bernstein  <mitz@apple.com>
48951
48952         Reviewed by Darin Adler.
48953
48954         - fix http://bugs.webkit.org/show_bug.cgi?id=17033
48955           <rdar://problem/5709315> REGRESSION: Really long <option> causes unnecessary page scroll bars to accommodate content
48956
48957         Test: fast/forms/control-clip-overflow.html
48958
48959         * rendering/RenderFlow.cpp:
48960         (WebCore::RenderFlow::lowestPosition): Account for control clipping.
48961         (WebCore::RenderFlow::rightmostPosition): Ditto.
48962         (WebCore::RenderFlow::leftmostPosition): Ditto.
48963
48964 2008-02-16  Oliver Hunt  <oliver@apple.com>
48965
48966         Reviewed by Eric S.
48967
48968         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
48969
48970         Use cross-platform code to determine the dirty rects for
48971         fill and stroke operations
48972
48973         * html/CanvasRenderingContext2D.cpp:
48974         (WebCore::CanvasRenderingContext2D::fill):
48975         (WebCore::CanvasRenderingContext2D::stroke):
48976           Added a FIXME as code inspection shows a trivial under-painting
48977           bug, although we currently ignore dirty rect tracking on canvas
48978           and repaint the whole thing anyway.
48979         (WebCore::CanvasRenderingContext2D::fillRect):
48980
48981 2008-02-16  Sam Weinig  <sam@webkit.org>
48982
48983         Reviewed by Darin Adler.
48984
48985         Take another step in the direction of getting rid of DeprecatedString
48986         by moving all the to{NumericType} off of it.
48987
48988         - Create free functions that take a UChar* buffer and length to do
48989           the string-to-number conversions.  This allows us to avoid two allocations
48990           if we don't already have a String and is consistent with the design we would
48991           like going forward.
48992         - Since the toInt (and family) functions on DeprecatedString were slightly
48993           different than the ones on String (they didn't allow trailing garbage),
48994           an extra set of 'Strict' toInt functions were added that have this behavior.
48995
48996         * platform/graphics/Color.cpp:
48997         (WebCore::Color::parseHexColor):
48998         * platform/text/PlatformString.h:
48999         * platform/text/String.cpp:
49000         (WebCore::String::percentage):
49001         (WebCore::String::toIntStrict):
49002         (WebCore::String::toUIntStrict):
49003         (WebCore::String::toInt64Strict):
49004         (WebCore::String::toUInt64Strict):
49005         (WebCore::String::toUInt):
49006         (WebCore::String::toDouble):
49007         (WebCore::isCharacterAllowedInBase):
49008         (WebCore::toIntegralType):
49009         (WebCore::lengthOfCharactersAsInteger):
49010         (WebCore::charactersToIntStrict):
49011         (WebCore::charactersToUIntStrict):
49012         (WebCore::charactersToInt64Strict):
49013         (WebCore::charactersToUInt64Strict):
49014         (WebCore::charactersToInt):
49015         (WebCore::charactersToUInt):
49016         (WebCore::charactersToInt64):
49017         (WebCore::charactersToUInt64):
49018         (WebCore::charactersToDouble):
49019         (WebCore::charactersToFloat):
49020         * platform/text/StringImpl.cpp:
49021         (WebCore::parseLength):
49022         (WebCore::StringImpl::toIntStrict):
49023         (WebCore::StringImpl::toUIntStrict):
49024         (WebCore::StringImpl::toInt64Strict):
49025         (WebCore::StringImpl::toUInt64Strict):
49026         (WebCore::StringImpl::toInt):
49027         (WebCore::StringImpl::toUInt):
49028         (WebCore::StringImpl::toInt64):
49029         (WebCore::StringImpl::toUInt64):
49030         (WebCore::StringImpl::toDouble):
49031         (WebCore::StringImpl::toFloat):
49032         * platform/text/StringImpl.h:
49033         * svg/SVGAnimationElement.cpp:
49034         (WebCore::SVGAnimationElement::parseClockValue):
49035         * svg/SVGFETurbulenceElement.cpp:
49036         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
49037
49038 2008-02-16  Dan Bernstein  <mitz@apple.com>
49039
49040         Reviewed by Sam Weinig.
49041
49042         - fix fixed-pitch font measurement of control characters that render
49043           as zero-width space
49044
49045         Test: fast/text/fixed-pitch-control-characters.html
49046
49047         * rendering/RenderText.cpp:
49048         (WebCore::RenderText::widthFromCache):
49049
49050 2008-02-16  Kevin Ollivier  <kevino@theolliviers.com>
49051
49052         wx build fix.
49053
49054         * platform/graphics/wx/GraphicsContextWx.cpp:
49055         (WebCore::GraphicsContext::drawImage):
49056
49057 2008-02-16  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
49058
49059         Reviewed by Alp Toker.
49060
49061         Cross document messaging GTK+/autotools build fix.
49062
49063         * GNUmakefile.am:
49064
49065 2008-02-15  Oliver Hunt  <oliver@apple.com>
49066
49067         Build fix for Qt and Cairo builds
49068
49069         * platform/graphics/cairo/GraphicsContextCairo.cpp:
49070         (WebCore::GraphicsContext::drawImage):
49071         * platform/graphics/qt/GraphicsContextQt.cpp:
49072
49073 2008-02-15  Oliver Hunt  <oliver@apple.com>
49074
49075         Reviewed by Dan B.
49076
49077         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
49078         Refactor CanvasRenderingContext2D::drawImage(HTMLCanvasElement) to remove evil ifdefs
49079
49080         Add logic draw(ImageBuffer*) method to GraphicsContext to handle
49081         painting the source canvas content.
49082
49083         * html/CanvasRenderingContext2D.cpp:
49084         (WebCore::CanvasRenderingContext2D::drawImage):
49085         * html/HTMLCanvasElement.cpp:
49086         (WebCore::HTMLCanvasElement::buffer):
49087         * html/HTMLCanvasElement.h:
49088         * platform/graphics/GraphicsContext.h:
49089         * platform/graphics/cairo/GraphicsContextCairo.cpp:
49090         (WebCore::GraphicsContext::drawImage):
49091         * platform/graphics/cg/GraphicsContextCG.cpp:
49092         (WebCore::GraphicsContext::paintBuffer):
49093         (WebCore::GraphicsContext::drawImage):
49094         * platform/graphics/qt/GraphicsContextQt.cpp:
49095         (WebCore::GraphicsContext::drawImage):
49096
49097 2008-02-15  Kevin Ollivier  <kevino@theolliviers.com>
49098
49099         Reviewed by David Hyatt.
49100
49101         Using GetNativeFontInfoDesc() to generate the hash value was
49102         leading to duplicate entries in the HashMap. Use the font object's
49103         pointer instead.
49104
49105         http://bugs.webkit.org/show_bug.cgi?id=17371
49106
49107         * platform/graphics/wx/FontPlatformData.h:
49108         (WebCore::FontPlatformData::computeHash):
49109
49110 2008-02-15  Ada Chan  <adachan@apple.com>
49111
49112         When parsing url we get from a CFURLRef, we need to null terminate 
49113         the string for the case when url ends with a '/'.
49114
49115         Reviewed by Darin.
49116
49117         * platform/cf/KURLCFNet.cpp:
49118         (WebCore::KURL::KURL):
49119
49120 2008-02-15  Brady Eidson  <beidson@apple.com>
49121
49122         Reviewed by Darin
49123
49124         Fix for <rdar://problem/5727175> and <rdar://problem/5740495> - Database threads and callback scripts can run after
49125         a page has closed or loaded a new document
49126
49127         Deciding to make the Database I/O semantic the same as loaders/XHR when a document is shut down, this patch implements
49128         a policy of shutting down the databases in a document at the same time.  This includes removing all pending transactions 
49129         in a database, cutting off an queued statements in the current transaction, and preventing further callbacks from being
49130         made.
49131
49132         No new layout tests with this patch as the current layout tests were catching this issue in a plethora of ways already
49133         (crashing, unexpected exceptions and output, etc)
49134
49135         * dom/Document.cpp:
49136         (WebCore::Document::~Document): Don't actually stop the database thread here - it better have been stopped already.
49137           Add an assertion to that effect.
49138         (WebCore::Document::addOpenDatabase): Add a new database handle to this Document's open database set
49139         (WebCore::Document::removeOpenDatabase): Remove such a handle
49140         (WebCore::Document:: stopDatabases): Call "close" on all open Database handles for this document
49141         * dom/Document.h:
49142
49143         * loader/FrameLoader.cpp:
49144         (WebCore::FrameLoader::stopLoading): In addition to canceling all resource loads and XHRs, stop all database I/O
49145
49146         * platform/MessageQueue.h:
49147         (WebCore::MessageQueue::killed): 
49148
49149         * platform/sql/SQLiteTransaction.cpp:
49150         (WebCore::SQLiteTransaction::stop): Added.  Explicit stop to cut off a transaction so it won't try anymore SQL activity
49151         * platform/sql/SQLiteTransaction.h:
49152
49153         * storage/Database.cpp:
49154         (WebCore::Database::Database):
49155         (WebCore::Database::~Database):
49156         (WebCore::Database::markAsDeletedAndClose): Check if the thread has terminated before committing to waiting on the
49157           thread.
49158         (WebCore::Database::stop):  Stop this database, including all queued transactions and callbacks
49159         * storage/Database.h:
49160         (WebCore::Database::stopped):
49161
49162         * storage/DatabaseThread.cpp:
49163         (WebCore::DatabaseThread::terminationRequested):
49164         * storage/DatabaseThread.h:
49165
49166         * storage/SQLTransaction.cpp:
49167         (WebCore::SQLTransaction::executeSQL): Throw an exception if a new executeSQL comes in after a database is closed
49168         (WebCore::SQLTransaction::checkAndHandleClosedDatabase): Added.  Clears queued statements and clear the next step
49169           when the database has been closed since the last step/callback was run.  Also stops the current SQLite transaction,
49170           if any
49171         (WebCore::SQLTransaction::performNextStep):
49172         (WebCore::SQLTransaction::performPendingCallback):
49173         * storage/SQLTransaction.h:
49174
49175 2008-02-15  Adele Peterson  <adele@apple.com>
49176
49177         Reviewed by Darin.
49178
49179         Fix for <rdar://problem/5745072> REGRESSION (r29348): Shift + Tab does not change indent level on Google Docs
49180
49181         The immediate cause of this bug was that we stopped sending keypress events for the tab key when it is used to advance focus.
49182         We had a special case for forward-tab in designMode, where the default behavior was to insert a tab key (or respect the keypress handler behavior).
49183         This change makes the shift-tab behavior match the forward-tab behavior.
49184
49185         If the site had put their event handler (which does the indenting) on the keydown event, then this problem would have been avoided.
49186         This is something we should look into and maybe advise the site on in the future.  However, it's a low-risk change to just make tab and shift-tab uniform 
49187         in this respect, so I think this is the way to go for right now.
49188
49189         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTabEventHandler):
49190
49191 2008-02-15  Anders Carlsson  <andersca@apple.com>
49192
49193         Reviewed by Alice.
49194
49195         <rdar://problem/5738678>
49196         REGRESSION: "Loading" status remains when uploading file to .Mac iDisk via Safari
49197         
49198         Use the new CFNetwork functions for setting body parts.
49199         
49200         * platform/network/cf/FormDataStreamCFNet.cpp:
49201         (WebCore::setHTTPBody):
49202         (WebCore::httpBodyFromRequest):
49203
49204 2008-02-15  Geoffrey Garen  <ggaren@apple.com>
49205
49206         Reviewed by Anders Carlsson.
49207         
49208         Fixed <rdar://problem/5725429> REGRESSION (r27898): Greenfield online
49209         surveys no longer work due to XMLHttpRequest exceptions
49210         
49211         Reverted some exception throwing code from r12194.
49212         
49213         To comply with the W3C draft spec, we used to throw an exception when
49214         trying to access responseText and responseXML at the wrong time, but
49215         that turned out to be a compatibility problem.
49216         
49217         Now, matching Firefox and previous versions of WebKit, we never throw
49218         an exception when accessing responseText or responseXML.
49219         
49220         See http://www.mail-archive.com/public-webapi@w3.org/msg02756.html.
49221
49222         * xml/XMLHttpRequest.cpp:
49223         (WebCore::XMLHttpRequest::getResponseText):
49224         (WebCore::XMLHttpRequest::getResponseXML):
49225
49226 2008-02-15  Justin Garcia  <justin.garcia@apple.com>
49227
49228         Reviewed by Dan Bernstein.
49229
49230         <rdar://problem/5738768> REGRESSION (r30062): Crash in InlineTextBox::isLineBreak() when Undoing a replace
49231         
49232         Rolled out <http://trac.webkit.org/projects/webkit/changeset/29667>
49233
49234         * editing/SelectionController.cpp:
49235         (WebCore::SelectionController::nodeWillBeRemoved):
49236
49237 2008-02-15  Alice Liu  <alice.liu@apple.com>
49238
49239         Reviewed by Darin.
49240
49241         Fixed <rdar://problem/5741440> REGRESSION (r28496): After deactivating JavaScript, scripts embedded in the HTML page continue to run
49242      
49243         Before this patch, Frame::scriptProxy() would only return null in the case that javascript was 
49244         disabled and if the script proxy field wasn't set (which would only be the case if the window 
49245         hasn't loaded anything yet).  Not all callers of scriptProxy() always check for a non-null return 
49246         value.  Those that did check would effectively be checking if javascript was enabled before proceeding.
49247         This fix consists of 2 elements: first, make sure that scriptProxy() will never return null, regardless 
49248         of whether javascript is disabled.  This will mean that callers who don't check for null won't crash.  
49249         Second, callers who did check for null now instead check for javascript being disabled.  This means that 
49250         code paths intended for preventing javascript from being run will be making the correct check.  Another
49251         minor addition to this patch is that I added a function on KSJProxy to be a shortcut for checking if javascript
49252         is enabled. 
49253
49254         * bindings/js/JSCustomSQLStatementCallback.cpp:
49255         (WebCore::JSCustomSQLStatementCallback::handleEvent):
49256         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
49257         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
49258         * bindings/js/JSCustomSQLTransactionCallback.cpp:
49259         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
49260         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
49261         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
49262         * bindings/js/JSCustomVoidCallback.cpp:
49263         (WebCore::JSCustomVoidCallback::handleEvent):
49264         * bindings/js/JSCustomXPathNSResolver.cpp:
49265         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
49266         * bindings/js/ScheduledAction.cpp:
49267         (WebCore::ScheduledAction::execute):
49268         * bindings/js/kjs_events.cpp:
49269         (WebCore::JSAbstractEventListener::handleEvent):
49270         (WebCore::JSLazyEventListener::parseCode):
49271         * bindings/js/kjs_html.cpp:
49272         (WebCore::runtimeObjectImplementsCall):
49273         * bindings/js/kjs_proxy.cpp:
49274         (WebCore::KJSProxy::isEnabled):
49275         * bindings/js/kjs_proxy.h:
49276         * bindings/js/kjs_window.cpp:
49277         (KJS::Window::retrieveWindow):
49278         (KJS::Window::retrieve):
49279         * dom/Document.cpp:
49280         (WebCore::Document::createHTMLEventListener):
49281         * dom/EventTarget.cpp:
49282         (WebCore::EventTarget::dispatchGenericEvent):
49283         * html/HTMLPlugInElement.cpp:
49284         (WebCore::HTMLPlugInElement::createNPObject):
49285         * html/HTMLScriptElement.cpp:
49286         (WebCore::HTMLScriptElement::evaluateScript):
49287         * html/HTMLTokenizer.cpp:
49288         (WebCore::HTMLTokenizer::parseTag):
49289         (WebCore::HTMLTokenizer::processToken):
49290         * loader/FrameLoader.cpp:
49291         (WebCore::FrameLoader::executeScript):
49292         (WebCore::FrameLoader::userGestureHint):
49293         (WebCore::FrameLoader::open):
49294         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
49295         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
49296         * manual-tests/disable-javascript-reload.html: Added.
49297         * page/Frame.cpp:
49298         (WebCore::Frame::scriptProxy):
49299         (WebCore::Frame::bindingRootObject):
49300         (WebCore::Frame::windowScriptNPObject):
49301         * page/Frame.h:
49302         * page/InspectorController.cpp:
49303         (WebCore::canPassNodeToJavaScript):
49304         * page/mac/FrameMac.mm:
49305         (WebCore::Frame::windowScriptObject):
49306         * svg/SVGDocumentExtensions.cpp:
49307         (WebCore::SVGDocumentExtensions::createSVGEventListener):
49308
49309 2008-02-15  Dan Bernstein  <mitz@apple.com>
49310
49311         Reviewed by Alexey Proskuryakov.
49312
49313         - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=17360
49314           <rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html
49315
49316         Test: http/tests/loading/text-content-type-with-binary-extension.html
49317
49318         Refined the workaround for <rdar://problem/5321972> to exclude files
49319         with extensions that are known to be associated with binary MIME types.
49320
49321         * WebCore.xcodeproj/project.pbxproj: Added WebCoreURLResponse.{h,mm}.
49322         * platform/network/mac/ResourceResponseMac.mm:
49323         (WebCore::ResourceResponse::doUpdateResourceResponse): Moved the
49324         workaround logic into WebCoreURLResponse.
49325         * platform/network/mac/WebCoreURLResponse.h: Added.
49326         * platform/network/mac/WebCoreURLResponse.mm: Added.
49327         (createBinaryExtensionsSet): Returns a set of extensions known to
49328         belong to MIME types of binary data.
49329         (-[NSURLResponse _webcore_MIMEType]):
49330         (-[NSHTTPURLResponse _webcore_MIMEType]): Forces the MIME type from
49331         application/octet-stream to text/plain if that is the specified
49332         Content-Type, unless the extension is in the binary extensions set.
49333
49334 2008-02-15  Dan Bernstein  <mitz@apple.com>
49335
49336         Reviewed by Dave Hyatt.
49337
49338         - fix http://bugs.webkit.org/show_bug.cgi?id=17306
49339           <rdar://problem/5737923> Transitions between styles that have different transition-* properties behave inconsistently
49340
49341         * manual-tests/transitions.html: Added.
49342         * page/AnimationController.cpp:
49343         (WebCore::CompositeImplicitAnimation::animate): Changed to use the
49344         transition properties of the current style rather than the target style.
49345         (WebCore::AnimationControllerPrivate::get): Changed to not create an
49346         animation if the style does not have transitions.
49347         (WebCore::AnimationController::updateImplicitAnimations): Added code to
49348         return the target style if the current style is not animating.
49349         * rendering/RenderObject.cpp:
49350         (WebCore::RenderObject::setAnimatableStyle): Changed to call
49351         updateImplicitAnimations() even if the current style does not have
49352         transitions, because we may be animating out of a style that had them.
49353
49354 2008-02-15  Alexey Proskuryakov  <ap@webkit.org>
49355
49356         Rubber-stamped by Darin.
49357
49358         Remove an obsolete WebCore readme file.
49359
49360         * README: Removed.
49361
49362 2008-02-15  Sam Weinig  <sam@webkit.org>
49363
49364         Reviewed by Darin Adler.
49365
49366         Remove more uses of DeprecatedString in preparation of getting rid of it.
49367
49368         * bridge/mac/WebCoreScriptDebugger.mm:
49369         * css/CSSCursorImageValue.cpp:
49370         (WebCore::isSVGCursorIdentifier):
49371         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
49372         * css/CSSStyleSelector.h:
49373         * dom/Element.cpp:
49374         (WebCore::Element::dump):
49375         (WebCore::Element::formatForDebugger):
49376         * dom/Position.cpp:
49377         (WebCore::Position::debugPosition):
49378         (WebCore::Position::formatForDebugger):
49379         * dom/Range.cpp:
49380         (WebCore::Range::formatForDebugger):
49381         * dom/Text.cpp:
49382         (WebCore::Text::formatForDebugger):
49383         * editing/Selection.cpp:
49384         (WebCore::Selection::debugPosition):
49385         (WebCore::Selection::formatForDebugger):
49386         * editing/SelectionController.cpp:
49387         (WebCore::SelectionController::debugRenderer):
49388         * editing/VisiblePosition.cpp:
49389         (WebCore::VisiblePosition::debugPosition):
49390         * html/HTMLTokenizer.cpp:
49391         (WebCore::HTMLTokenizer::scriptHandler):
49392         (WebCore::HTMLTokenizer::parseTag):
49393         (WebCore::HTMLTokenizer::processToken):
49394         (WebCore::HTMLTokenizer::notifyFinished):
49395         * svg/SVGFontFaceElement.cpp:
49396         (WebCore::mapAttributeToCSSProperty):
49397
49398 2008-02-15  Adam Roben  <aroben@apple.com>
49399
49400         * bindings/scripts/CodeGenerator.pm: Touch this to force bindings to
49401         regenerate.
49402
49403 2008-02-15  Adam Roben  <aroben@apple.com>
49404
49405         Try to fix Qt/GTK+ builds
49406
49407         * WebCore.pro: Remove MessageEvent.{idl,cpp} from the unconditional
49408         parts of this file.
49409
49410 2008-02-15  Darin Adler  <darin@apple.com>
49411
49412         - another Qt build fix
49413
49414         * platform/qt/KURLQt.cpp:
49415         (WebCore::KURL::operator QUrl): Use the characters directly, not ascii().
49416         Eliminate references to urlString.
49417
49418 2008-02-15  Darin Adler  <darin@apple.com>
49419
49420         - another Qt build fix
49421
49422         * platform/qt/ClipboardQt.cpp:
49423         (WebCore::ClipboardQt::declareAndWriteDragImage): Use KURL instead of String.
49424
49425 2008-02-14  Darin Adler  <darin@apple.com>
49426
49427         - another round of build fixes
49428
49429         * platform/KURL.cpp:
49430         (WebCore::appendEncodedHostname): Fix spelling (strLen, not strlen).
49431         * platform/network/curl/ResourceHandleManager.cpp:
49432         (WebCore::parseDataUrl): Fix a ".." typo and call data instead of characters.
49433
49434 2008-02-14  Darin Adler  <darin@apple.com>
49435
49436         - added back accidentally-removed files
49437
49438         * platform/DeprecatedStringList.cpp: Copied from platform/DeprecatedStringList.cpp.
49439         * platform/DeprecatedStringList.h: Copied from platform/DeprecatedStringList.h.
49440         * platform/mac/DeprecatedStringListMac.mm: Copied from platform/mac/DeprecatedStringListMac.mm.
49441
49442 2008-02-14  Darin Adler  <darin@apple.com>
49443
49444         - more build fixes
49445
49446         * platform/KURL.cpp:
49447         (WebCore::appendEncodedHostname): Use String to make a QString.
49448         * platform/network/cf/ResourceRequest.h:
49449         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
49450         * platform/network/curl/ResourceHandleManager.cpp:
49451         (WebCore::parseDataUrl): Updated to String rather than DeprecatedString functions.
49452
49453 2008-02-14  Darin Adler  <darin@apple.com>
49454
49455         - next Qt build fix
49456
49457         * platform/network/qt/ResourceRequest.h:
49458         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
49459
49460 2008-02-14  Darin Adler  <darin@apple.com>
49461
49462         - another build fix
49463
49464         * platform/network/curl/ResourceRequest.h:
49465         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
49466
49467 2008-02-14  Darin Adler  <darin@apple.com>
49468
49469         - first Qt build fix
49470
49471         * dom/XMLTokenizer.cpp:
49472         (WebCore::XMLTokenizer::endElementNs): Added a missing string() call.
49473
49474 2008-02-14  Darin Adler  <darin@apple.com>
49475
49476         Reviewed by Eric Seidel.
49477
49478         Based on work by Brett Wilson <brettw@chromium.org>
49479
49480         - fix http://bugs.webkit.org/show_bug.cgi?id=16538
49481           KURL should use String instead of DeprecatedString
49482
49483         - fix http://bugs.webkit.org/show_bug.cgi?id=16485
49484           DocLoader::checkForReload will crash if the URL isNull
49485           and a similar problem in IconDatabase
49486
49487         - fix http://bugs.webkit.org/show_bug.cgi?id=16487
49488           KURL doesn't preserve isNull when constructed with a DeprecatedString
49489
49490         - changed completeURL and various DOM getters to return KURL, to avoid
49491           conversion back and forth from KURL to String
49492
49493         - changed the conversion of KURL to NSURL or NSString to be automatic,
49494           to ease the use of KURL in Objective C DOM bindings, and eliminated
49495           the getNSURL function
49496
49497         - because I had to visit the DOM bindings anyway, eliminated almost all
49498           the use of the KJS namespace for things in WebCore
49499
49500         - fixed HTMLOptionElement constructor to check for undefined rather
49501           than size of the arguments array
49502
49503         - eliminated some other unnecessary uses of DeprecatedString
49504
49505         - changed String::split to take a Vector parameter instead of returning
49506           a Vector, for better performance
49507
49508         - added a couple of missing calls to do layout in SVG image handling;
49509           I was able to reproduce these only because I had broken URLs for a
49510           while -- not sure how to reproduce them now but the changes are
49511           clearly needed
49512
49513         Performance testing shows this to be at least a 1% speedup.
49514
49515         Added a new function protocols to efficiently compare protocols
49516         without case errors and a blankURL function so we don't have to
49517         code "about:blank" in multiple places in the code and don't have to
49518         construct a frash KURL each time. Moved decode_string and encode_string
49519         out of KURL and gave them clearer names.
49520
49521         Made KURL constructors explicit to highlight potentially-expensive
49522         operations and the poor semantics of KURL's constructor that takes
49523         a String.
49524
49525         * WebCore.base.exp: Updated.
49526
49527         * bindings/js/JSAttrCustom.cpp:
49528         (WebCore::JSAttr::setValue): Use protocolIs.
49529         * bindings/js/JSAudioConstructor.h: KJS namespace change.
49530         * bindings/js/JSCSSRuleCustom.cpp:
49531         (WebCore::toJS): Ditto.
49532         * bindings/js/JSCSSValueCustom.cpp:
49533         (WebCore::toJS): Ditto.
49534         * bindings/js/JSDocumentCustom.cpp:
49535         (WebCore::JSDocument::location): Ditto.
49536         (WebCore::JSDocument::setLocation): Updated for KURL change.
49537         (WebCore::toJS): KJS namespace change.
49538         * bindings/js/JSElementCustom.cpp:
49539         (WebCore::allowSettingSrcToJavascriptURL): Use protocolIs.
49540         (WebCore::JSElement::setAttribute): KJS namespace change.
49541         (WebCore::JSElement::setAttributeNode): Ditto.
49542         (WebCore::JSElement::setAttributeNS): Ditto.
49543         (WebCore::JSElement::setAttributeNodeNS): Ditto.
49544         * bindings/js/JSHTMLFrameElementCustom.cpp:
49545         (WebCore::allowSettingJavascriptURL): Use protocolIs.
49546         (WebCore::JSHTMLFrameElement::setSrc): KJS namespace change.
49547         (WebCore::JSHTMLFrameElement::setLocation): Ditto.
49548         * bindings/js/JSHTMLIFrameElementCustom.cpp:
49549         (WebCore::JSHTMLIFrameElement::setSrc): Use protocolIs.
49550         * bindings/js/JSHTMLOptionElementConstructor.cpp:
49551         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
49552         (WebCore::JSHTMLOptionElementConstructor::construct): Cleaned up the
49553         structure a bit and changed checking to check for undefined rather than
49554         number of arguments.
49555         * bindings/js/JSHTMLOptionElementConstructor.h: KJS namespace change.
49556         * bindings/js/JSLocation.cpp:
49557         (WebCore::JSLocation::put): Eliminated some DeprecatedString use,
49558         and use protocolIs.
49559         (WebCore::jsLocationProtoFuncReplace): Ditto.
49560         (WebCore::jsLocationProtoFuncReload): Ditto.
49561         (WebCore::jsLocationProtoFuncAssign): Ditto.
49562         * bindings/js/JSLocation.h: KJS namespace change.
49563         * bindings/js/JSNamedNodeMapCustom.cpp:
49564         (WebCore::JSNamedNodeMap::canGetItemsForName): Ditto.
49565         (WebCore::JSNamedNodeMap::nameGetter): Ditto.
49566         * bindings/js/JSNamedNodesCollection.cpp:
49567         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Ditto.
49568         * bindings/js/JSNamedNodesCollection.h: Ditto.
49569         * bindings/js/JSXMLHttpRequest.cpp:
49570         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen): Removed
49571         DeprecatedString use.
49572         (WebCore::jsXMLHttpRequestPrototypeFunctionSend): Ditto.
49573         * bindings/js/JSXMLHttpRequest.h: Moved this class into the WebCore
49574         namespace.
49575         * bindings/js/JSXSLTProcessor.cpp: Namespace change.
49576         * bindings/js/JSXSLTProcessor.h: Ditto.
49577
49578         * bindings/js/kjs_binding.cpp: Updated for namespace change.
49579         (WebCore::jsStringOrNull): Added an overload for KURL to allow DOM
49580         classes to return KURL even if the DOM expects a string.
49581         (WebCore::jsStringOrUndefined): Ditto.
49582         (WebCore::jsStringOrFalse): Ditto.
49583         * bindings/js/kjs_binding.h: Moved everything into the WebCore
49584         namespace.
49585
49586         * bindings/js/kjs_css.h: Namespace change.
49587         * bindings/js/kjs_events.cpp: Removed an include.
49588         * bindings/js/kjs_events.h: Namespace change.
49589         * bindings/js/kjs_html.h: Namespace change.
49590
49591         * bindings/js/kjs_navigator.cpp: Moved everything into the
49592         WebCore namespace.
49593         * bindings/js/kjs_navigator.h: Ditto.
49594
49595         * bindings/js/kjs_window.cpp:
49596         (KJS::parseModalDialogFeatures): Updated for String::split change.
49597         (KJS::createWindow): Use protocolIs and removed some DeprecatedString.
49598         (KJS::Window::put): Ditto.
49599         (KJS::Window::allowsAccessFrom): Ditto.
49600         (KJS::windowProtoFuncOpen): Ditto.
49601
49602         * bindings/objc/DOM.mm:
49603         (-[DOMElement _getURLAttribute:]): Removed getNSURL call.
49604         * bindings/objc/DOMHTML.mm:
49605         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto.
49606
49607         * bindings/scripts/CodeGeneratorCOM.pm: Updated includes so conversions from
49608         KURL will work.
49609         * bindings/scripts/CodeGeneratorJS.pm: Updated for namespace changes, and also
49610         updated includes so conversions from KURL will work.
49611         * bindings/scripts/CodeGeneratorObjC.pm: Updated includes so conversions from
49612         KURL will work.
49613
49614         * bridge/mac/WebCoreAXObject.mm:
49615         (-[WebCoreAXObject accessibilityAttributeValue:]): Removed getNSURL call.
49616         Also streamlined the logic.
49617         (AXAttributedStringAppendText): Ditto.
49618
49619         * bridge/mac/WebCoreScriptDebugger.mm:
49620         (toNSString): Tweaked.
49621         (toNSURL): Removed getNSURL call.
49622
49623         * css/CSSImageValue.cpp:
49624         (WebCore::CSSImageValue::image): Removed DeprecatedString use.
49625         * css/CSSImportRule.cpp:
49626         (WebCore::CSSImportRule::insertedIntoParent): Ditto.
49627         * css/CSSParser.cpp:
49628         (WebCore::CSSParser::parseValue): Ditto.
49629         (WebCore::CSSParser::parseContent): Ditto.
49630         (WebCore::CSSParser::parseBackgroundImage): Ditto.
49631         (WebCore::CSSParser::parseFontFaceSrc): Ditto.
49632         (WebCore::CSSParser::parseBorderImage): Ditto.
49633         * css/CSSStyleSelector.cpp:
49634         (WebCore::CSSStyleSelector::setEncodedURL): Ditto.
49635         (WebCore::checkPseudoState): Ditto.
49636         * css/CSSStyleSelector.h: Ditto.
49637
49638         * css/MediaList.cpp:
49639         (WebCore::MediaList::setMediaText): Updated for String::split change.
49640
49641         * css/StyleBase.cpp:
49642         (WebCore::StyleBase::baseURL): Return KURL.
49643         * css/StyleBase.h: DItto.
49644
49645         * dom/Document.cpp:
49646         (WebCore::Document::~Document): Updated for namespace change.
49647         (WebCore::Document::documentURI): Return KURL.
49648         (WebCore::Document::setDocumentURI): Removed DeprecatedString use.
49649         (WebCore::Document::baseURI): Return KURL.
49650         (WebCore::Document::open): Updated to use blankURL.
49651         (WebCore::Document::setURL): Take KURL.
49652         (WebCore::Document::shouldBeAllowedToLoadLocalResources): Updated for
49653         change to use KURL
49654         (WebCore::Document::setBaseURL): Take KURL.
49655         (WebCore::Document::elementSheet): Updated for KURL change.
49656         (WebCore::Document::mappedElementSheet): Ditto.
49657         (WebCore::Document::processHttpEquiv): Ditto.
49658         (WebCore::Document::recalcStyleSelector): Removed use of
49659         DeprecatedString -- also noticed some dead code here!
49660         (WebCore::Document::setCookie): Ditto.
49661         (WebCore::Document::completeURL): Return KURL.
49662         * dom/Document.h: Use KURL instead of String in a few places.
49663
49664         * dom/DocumentType.cpp:
49665         (WebCore::DocumentType::baseURI): Return KURL.
49666         * dom/DocumentType.h: Ditto.
49667
49668         * dom/Element.cpp:
49669         (WebCore::Element::baseURI): Return KURL.
49670         * dom/Element.h: Ditto.
49671
49672         * dom/Node.cpp:
49673         (WebCore::Node::setDocument): Namespace change.
49674         (WebCore::Node::baseURI): Return KURL.
49675         * dom/Node.h: Ditto.
49676
49677         * dom/ProcessingInstruction.cpp:
49678         (WebCore::ProcessingInstruction::checkStyleSheet): Updated for KURL change.
49679         * dom/StyleElement.cpp:
49680         (WebCore::StyleElement::process): Changed to use Vector<UChar> instead of
49681         String for better performance.
49682         (WebCore::StyleElement::createSheet): Removed use of DeprecateString.
49683         * dom/XMLTokenizer.cpp:
49684         (WebCore::XMLTokenizer::endElementNs): Updated for KURL change.
49685         (WebCore::XMLTokenizer::end): Ditto.
49686         (WebCore::xmlDocPtrForString): Removed use of DeprecateString.
49687         * dom/XMLTokenizer.h: Ditto.
49688
49689         * editing/markup.cpp: Moved appendString to PlatformString.h.
49690         (WebCore::appendQuotedURLAttributeValue): Use protocolIs.
49691         (WebCore::completeURLs): Removed DeprecatedString use.
49692         (WebCore::createFragmentFromMarkup): Use blankURL.
49693         (WebCore::fillContainerFromString): Removed DeprecatedString use.
49694         (WebCore::createFragmentFromText): Ditto.
49695
49696         * history/HistoryItem.cpp:
49697         (WebCore::HistoryItem::url): Removed DeprecatedString use.
49698         (WebCore::HistoryItem::originalURL): Ditto.
49699         * history/HistoryItem.h: Removed include.
49700
49701         * html/HTMLAnchorElement.cpp:
49702         (WebCore::HTMLAnchorElement::defaultEventHandler): Removed use of
49703         DeprecatedString.
49704         (WebCore::HTMLAnchorElement::href): Return KURL.
49705         (WebCore::HTMLAnchorElement::hash): Removed DeprecatedString use.
49706         (WebCore::HTMLAnchorElement::host): Ditto.
49707         (WebCore::HTMLAnchorElement::hostname): Ditto.
49708         (WebCore::HTMLAnchorElement::pathname): Ditto.
49709         (WebCore::HTMLAnchorElement::port): Ditto.
49710         (WebCore::HTMLAnchorElement::protocol): Ditto.
49711         (WebCore::HTMLAnchorElement::search): Ditto.
49712         (WebCore::HTMLAnchorElement::toString): Ditto.
49713         * html/HTMLAnchorElement.h: Ditto.
49714         * html/HTMLAppletElement.cpp:
49715         (WebCore::HTMLAppletElement::createRenderer): Updated for KURL change.
49716         * html/HTMLAreaElement.cpp:
49717         (WebCore::HTMLAreaElement::href): Return KURL.
49718         * html/HTMLAreaElement.h: Ditto.
49719         * html/HTMLBaseElement.cpp:
49720         (WebCore::HTMLBaseElement::removedFromDocument): Updated for KURL change.
49721         (WebCore::HTMLBaseElement::process): Removed DeprecatedString use.
49722         * html/HTMLBodyElement.cpp:
49723         (WebCore::HTMLBodyElement::parseMappedAttribute): Updated for KURL change.
49724         * html/HTMLEmbedElement.cpp:
49725         (WebCore::HTMLEmbedElement::parseMappedAttribute): Removed use of
49726         DeprecatedString.
49727         * html/HTMLEmbedElement.h: Removed DeprecatedString use.
49728         * html/HTMLFormElement.cpp:
49729         (WebCore::HTMLFormElement::formWouldHaveSecureSubmission): Use protocolIs.
49730         (WebCore::encodeCString): Updated for change to String::split.
49731         (WebCore::HTMLFormElement::dataEncoding): Ditto.
49732         (WebCore::HTMLFormElement::formData): Removed DeprecatedString use.
49733         (WebCore::HTMLFormElement::isMailtoForm): Use protocolIs.
49734         (WebCore::HTMLFormElement::submit): Updated for KURL change.
49735         (WebCore::HTMLFormElement::reset): Ditto.
49736         * html/HTMLFrameElementBase.cpp:
49737         (WebCore::HTMLFrameElementBase::isURLAllowed): Updated for KURL change
49738         and use equalIgnoringRef instead of doing a setRef to get the same effect.
49739         (WebCore::HTMLFrameElementBase::openURL): Use blankURL.
49740         (WebCore::HTMLFrameElementBase::location): Return KURL.
49741         (WebCore::HTMLFrameElementBase::src): Return KURL.
49742         * html/HTMLFrameElementBase.h: Ditto.
49743         * html/HTMLImageElement.cpp:
49744         (WebCore::HTMLImageElement::parseMappedAttribute): Updated for KURL change.
49745         (WebCore::HTMLImageElement::longDesc): Return KURL.
49746         (WebCore::HTMLImageElement::lowsrc): Return KURL.
49747         (WebCore::HTMLImageElement::src): Return KURL.
49748         * html/HTMLImageElement.h: Ditto. Also removed imageMap() function.
49749         * html/HTMLInputElement.cpp:
49750         (WebCore::HTMLInputElement::src): Return KURL.
49751         * html/HTMLInputElement.h: Ditto.
49752         * html/HTMLLinkElement.cpp:
49753         (WebCore::HTMLLinkElement::parseMappedAttribute): Updated for KURL change.
49754         (WebCore::HTMLLinkElement::tokenizeRelAttribute): Updated for String::split change.
49755         (WebCore::HTMLLinkElement::href): Return KURL.
49756         * html/HTMLLinkElement.h: Ditto.
49757         * html/HTMLMediaElement.cpp:
49758         (WebCore::HTMLMediaElement::src): Return KURL.
49759         (WebCore::HTMLMediaElement::pickMedia): Updated for KURL change.
49760         * html/HTMLMediaElement.h: Ditto.
49761         * html/HTMLObjectElement.cpp:
49762         (WebCore::HTMLObjectElement::isImageType): Use protocolIs.
49763         (WebCore::HTMLObjectElement::data): Return KURL.
49764         * html/HTMLObjectElement.h: Ditto.
49765         * html/HTMLOptGroupElement.cpp:
49766         (WebCore::HTMLOptGroupElement::groupLabelText): Removed DeprecatedString use.
49767         * html/HTMLParser.cpp:
49768         (WebCore::HTMLParser::reportErrorToConsole): Updated for KURL change.
49769         * html/HTMLScriptElement.cpp:
49770         (WebCore::HTMLScriptElement::insertedIntoDocument): Ditto.
49771         (WebCore::HTMLScriptElement::text): Changed to use Vector<UChar> instead of
49772         String for better performance.
49773         (WebCore::HTMLScriptElement::src): Return KURL.
49774         * html/HTMLScriptElement.h: Ditto.
49775         * html/HTMLSourceElement.cpp:
49776         (WebCore::HTMLSourceElement::src): Return KURL.
49777         * html/HTMLSourceElement.h: Ditto.
49778         * html/HTMLTableElement.cpp:
49779         (WebCore::HTMLTableElement::parseMappedAttribute): Updated for KURL change.
49780         * html/HTMLTablePartElement.cpp:
49781         (WebCore::HTMLTablePartElement::parseMappedAttribute): Updated for KURL change.
49782         * html/HTMLTextAreaElement.cpp:
49783         (WebCore::HTMLTextAreaElement::setValue): Removed DeprecatedString use.
49784         * html/HTMLTokenizer.cpp:
49785         (WebCore::HTMLTokenizer::scriptExecution): Ditto.
49786         (WebCore::HTMLTokenizer::notifyFinished): Use protocolIs.
49787         * html/HTMLVideoElement.cpp:
49788         (WebCore::HTMLVideoElement::poster): Return KURL.
49789         * html/HTMLVideoElement.h: Ditto.
49790         * html/HTMLViewSourceDocument.cpp:
49791         (WebCore::HTMLViewSourceDocument::addText): Updated for String::split change.
49792
49793         * loader/DocLoader.cpp:
49794         (WebCore::DocLoader::checkForReload): Add an explicit check for an empty URL
49795         here to avoid problems using its string as a hash table key later.
49796         (WebCore::DocLoader::requestResource): Removed DeprecatedString use.
49797
49798         * loader/FTPDirectoryDocument.cpp:
49799         (WebCore::FTPDirectoryTokenizer::createTDForFilename): Updated for KURL change.
49800         (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine): Removed use of
49801         DeprecatedString.
49802
49803         * loader/FrameLoader.cpp:
49804         (WebCore::FrameLoader::requestFrame): Use protocolIs.
49805         (WebCore::FrameLoader::loadSubframe): Use blankURL.
49806         (WebCore::FrameLoader::submitForm): Use protocolIs and removed use of
49807         DeprecatedString.
49808         (WebCore::FrameLoader::iconURL): Return KURL. Use protcolIs.
49809         (WebCore::FrameLoader::didOpenURL): Use protocolIs.
49810         (WebCore::FrameLoader::didExplicitOpen): Use blankURL.
49811         (WebCore::FrameLoader::executeIfJavaScriptURL): Use protocolIs.
49812         Update for name change to decodeURLEscapeSequences.
49813         (WebCore::FrameLoader::receivedFirstData): Updated for KURL changes.
49814         (WebCore::FrameLoader::begin): Removed DeprecatedString use.
49815         Renamed baseurl to baseURL. Updated to use KURL more.
49816         (WebCore::FrameLoader::gotoAnchor): Removed use of encodedHtmlRef
49817         function, which is no different from ref.
49818         (WebCore::FrameLoader::completeURL): Updated for KURL change.
49819         (WebCore::FrameLoader::scheduleLocationChange): Ditto.
49820         (WebCore::FrameLoader::canCachePage): Use protocolIs.
49821         (WebCore::FrameLoader::updatePolicyBaseURL): Update for KURL change.
49822         (WebCore::FrameLoader::setPolicyBaseURL): Take KURL.
49823         (WebCore::FrameLoader::startRedirectionTimer): Removed use of
49824         DeprecatedString.
49825         (WebCore::FrameLoader::load): Use protocolIs.
49826         (WebCore::FrameLoader::shouldHideReferrer): Use protocolIs.
49827         (WebCore::FrameLoader::shouldAllowNavigation): Updated for KURL change.
49828         (WebCore::FrameLoader::commitProvisionalLoad): Use blankURL.
49829         (WebCore::FrameLoader::open): Use protcolIs.
49830         (WebCore::FrameLoader::createHistoryItem): Use blankURL.
49831         (WebCore::FrameLoader::createJavaAppletWidget): Updated for KURL change.
49832         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Removed
49833         DeprecatedString use.
49834         * loader/FrameLoader.h: Ditto.
49835
49836         * loader/ImageDocument.cpp:
49837         (WebCore::ImageDocument::createDocumentStructure): Updated for KURL change.
49838         * loader/PluginDocument.cpp:
49839         (WebCore::PluginTokenizer::createDocumentStructure): Ditto.
49840
49841         * loader/icon/IconDatabase.cpp:
49842         (WebCore::IconDatabase::iconForPageURL): Added a check for an empty URL
49843         before trying to use it as a hash table key.
49844
49845         * loader/icon/IconLoader.h: Tweaked includes.
49846
49847         * loader/loader.cpp:
49848         (WebCore::Loader::servePendingRequests): Use protcolIs. Also removed some
49849         code to set up a local variable that is never used (and a DeprecatedString
49850         on to boot!).
49851
49852         * loader/mac/LoaderNSURLExtras.m:
49853         (suggestedFilenameWithMIMEType): Removed unnecessary typecast.
49854
49855         * page/ContextMenuController.cpp: Removed include.
49856
49857         * page/mac/EventHandlerMac.mm:
49858         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
49859         Use protocolIs.
49860
49861         * page/mac/WebCoreFrameBridge.mm:
49862         (-[WebCoreFrameBridge URLWithAttributeString:]): Removed getNSURL call.
49863         (-[WebCoreFrameBridge baseURL]): Ditto.
49864
49865         * platform/KURL.cpp:
49866         (WebCore::isSchemeFirstChar): Fixed bug in handling of values >= 0x80.
49867         (WebCore::isSchemeChar): Ditto.
49868         (WebCore::isPathSegmentEndChar): Ditto.
49869         (WebCore::hexDigitValue): Changed parameter type to UChar.
49870         (WebCore::copyASCII): Added.
49871         (WebCore::findFirstOf): Added.
49872         (WebCore::KURL::protocolIs): Added.
49873         (WebCore::KURL::KURL): Tightened logic up quite a bit. Changed parameter
49874         types from DeprecatedString to String.
49875         (WebCore::KURL::init): Changed parameter type to String. Preserved the
49876         passed-in string even if the base is invalid. Cleaned up logic to determine
49877         if the originalString should be pased in to the parse function. Simplified
49878         by calling the new parse overload that takes String in many cases.
49879         (WebCore::KURL::lastPathComponent): Return String.
49880         (WebCore::KURL::protocol): Ditto.
49881         (WebCore::KURL::host): Ditto.
49882         (WebCore::KURL::port): Changed logic to use early return for clarity.
49883         (WebCore::KURL::pass): Return String.
49884         (WebCore::KURL::user): Ditto.
49885         (WebCore::KURL::ref): Ditto.
49886         (WebCore::assertProtocolIsGood): Added.
49887         (WebCore::KURL::protocolIs): Added.
49888         (WebCore::KURL::query): Return String.
49889         (WebCore::KURL::path): Ditto.
49890         (WebCore::KURL::setProtocol): Take String.
49891         (WebCore::KURL::setHost): Ditto.
49892         (WebCore::KURL::setPort): Use String.
49893         (WebCore::KURL::setHostAndPort): Take String.
49894         (WebCore::KURL::setUser): Ditto.
49895         (WebCore::KURL::setPass): Ditto.
49896         (WebCore::KURL::setRef): Ditto.
49897         (WebCore::KURL::setQuery): Ditto.
49898         (WebCore::KURL::setPath): Ditto.
49899         (WebCore::KURL::prettyURL): Return String. Use Vector<UChar> to build it.
49900         (WebCore::decodeURLEscapeSequences): Renamed from KURL::decode_string.
49901         Return String. Use Vector<UChar> to build it.
49902         (WebCore::KURL::isLocalFile): Use protocolIs.
49903         (WebCore::KURL::parse): Added an overload that takes a String to replace
49904         the use of DeprecatedString::ascii at various call sites. Updated for
49905         name change (urlString -> m_string).
49906         (WebCore::equalIgnoringRef): Wrote a new implementation that doesn't
49907         do any allocation.
49908         (WebCore::encodeWithURLEscapeSequences): Renamed from KURL::encode_string.
49909         Return String.
49910         (WebCore::appendEncodedHostname): Added. Replaces encodeHostname and
49911         avoids the need to allocate a string.
49912         (WebCore::findHostnamesInMailToURL): Update to use findFirstOf instead of
49913         regular expressions.
49914         (WebCore::findHostnameInHierarchicalURL): Ditto.
49915         (WebCore::encodeHostnames): Use protocolIs and the other helpers above.
49916         (WebCore::encodeRelativeString): Changed to put result into a CharBuffer.
49917         (WebCore::substituteBackslashes): Updated to use String.
49918         (WebCore::KURL::copyToBuffer): Added.
49919         (WebCore::protocolIs): Added.
49920         (WebCore::blankURL): Added.
49921         (WebCore::KURL::print): Updated.
49922         * platform/KURL.h: Added a number of comments. Reorganized the header a bit.
49923         Made the string constructors explicit. Changed to use String instead of
49924         DeprecatedString. Removed encodedHTMLRef. Renamed and added a few functions.
49925
49926         * platform/cf/KURLCFNet.cpp:
49927         (WebCore::KURL::KURL): Streamlined the logic a bit.
49928         (WebCore::KURL::createCFURL): Changed to use copyToBuffer.
49929
49930         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
49931         (WebCore::MediaPlayerPrivate::createQTMovie): Removed getNSURL call.
49932         Use protocolIs.
49933         * platform/mac/ClipboardMac.mm:
49934         (WebCore::ClipboardMac::declareAndWriteDragImage): Removed getNSURL call.
49935         * platform/mac/CookieJar.mm:
49936         (WebCore::cookies): Removed getNSURL call.
49937         (WebCore::setCookies): Removed getNSURL call.
49938         * platform/mac/KURLMac.mm:
49939         (WebCore::KURL::KURL): Streamlined the logic a bit.
49940         * platform/mac/PasteboardMac.mm:
49941         (WebCore::Pasteboard::writeURL): Removed getNSURL call.
49942         (WebCore::Pasteboard::writeImage): Ditto.
49943         * platform/mac/SSLKeyGeneratorMac.mm:
49944         (WebCore::signedPublicKeyAndChallengeString): Ditto.
49945
49946         * platform/network/HTTPParsers.cpp:
49947         (WebCore::filenameFromHTTPContentDisposition): Updated for String::split.
49948         * platform/network/ResourceHandle.cpp:
49949         (WebCore::ResourceHandle::portAllowed): Use protocolIs.
49950
49951         * platform/network/cf/ResourceErrorCF.cpp:
49952         (WebCore::ResourceError::operator CFErrorRef): Removed deprecatedString call.
49953         * platform/network/curl/ResourceHandleManager.cpp:
49954         (WebCore::headerCallback): Ditto.
49955         (WebCore::parseDataUrl): Use String instead of DeprecatedString.
49956         (WebCore::ResourceHandleManager::startJob): Updated for KURL changes.
49957         * platform/network/mac/ResourceErrorMac.mm:
49958         (WebCore::ResourceError::operator NSError*): Removed getNSURL call.
49959         * platform/network/mac/ResourceRequest.h:
49960         (WebCore::ResourceRequest::ResourceRequest): Removed DeprecatedString use.
49961         * platform/network/mac/ResourceRequestMac.mm:
49962         (WebCore::ResourceRequest::doUpdatePlatformRequest): Removed getNSURL call.
49963         * platform/network/mac/ResourceResponseMac.mm:
49964         (WebCore::ResourceResponse::nsURLResponse): Removed getNSURL call.
49965
49966         * platform/qt/ClipboardQt.cpp:
49967         (WebCore::ClipboardQt::writeURL): Removed deprecatedString call.
49968
49969         * platform/text/CString.h:
49970         (WebCore::CStringBuffer::length): Fixed size_t/unsigned mismatch to make it
49971         possible to compile this on Windows with higher warning level
49972
49973         * platform/text/PlatformString.h: Updated split to modify a result parameter
49974         rather than returning a Vector. Added charactersAreAllASCII and an append
49975         function that appends a String to a Vector<UChar>.
49976         * platform/text/String.cpp:
49977         (WebCore::String::split): Updated.
49978
49979         * platform/win/BString.cpp:
49980         (WebCore::BString::BString): Added conversion from KURL.
49981         * platform/win/BString.h: Ditto.
49982
49983         * platform/win/ClipboardUtilitiesWin.cpp:
49984         (WebCore::markupToCF_HTML): Removed use of deprecatedString.
49985         * platform/win/ClipboardWin.cpp:
49986         (WebCore::filesystemPathFromUrlOrTitle): Ditto.
49987         (WebCore::createGlobalHDropContent): Ditto.
49988         (WebCore::ClipboardWin::setData): Ditto.
49989         (WebCore::ClipboardWin::writeRange): Ditto.
49990         * platform/win/PasteboardWin.cpp:
49991         (WebCore::Pasteboard::writeSelection): Ditto.
49992         * plugins/PluginStream.cpp:
49993         (WebCore::PluginStream::startStream): Ditto.
49994         (WebCore::PluginStream::destroyStream): Ditto.
49995         * plugins/win/PluginViewWin.cpp:
49996         (WebCore::scriptStringIfJavaScriptURL): Ditto.
49997         (WebCore::PluginView::performRequest): Ditto.
49998         (WebCore::PluginView::PluginView): Ditto.
49999
50000         * rendering/HitTestResult.cpp:
50001         (WebCore::HitTestResult::absoluteImageURL): Removed DeprecatedString use.
50002         (WebCore::HitTestResult::absoluteLinkURL): Ditto.
50003
50004         * rendering/RenderFrameSet.cpp:
50005         (WebCore::RenderFrameSet::layOutAxis): Fixed comment wording.
50006         * rendering/RenderImage.cpp:
50007         (WebCore::RenderImage::paintReplaced): Removed use of DeperecatedString,
50008         (WebCore::RenderImage::imageMap): Changed to call useMap instead of imageMap;
50009         both do the same thing, and the first is standard DOM.
50010
50011         * rendering/RenderObject.cpp:
50012         (WebCore::RenderObject::addPDFURLRect): Rewrote and streamlined to remove
50013         DeprecatedString use.
50014         * rendering/RenderObject.h: Changed addPDFURLRect to take const IntRect&.
50015
50016         * rendering/RenderPartObject.cpp:
50017         (WebCore::isURLAllowed): Updated for KURL change and use equalIgnoringRef
50018         instead of doing a setRef to get the same effect.
50019         (WebCore::RenderPartObject::updateWidget): Updated for KURL change.
50020
50021         * rendering/RenderText.cpp:
50022         (WebCore::charactersAreAllASCII): Moved the guts to PlatformString.h.
50023
50024         * rendering/SVGRenderSupport.cpp:
50025         (WebCore::renderSubtreeToImage): Added missing call to do layout. I ran
50026         into this while doing some layout tests while URL processing was broken.
50027
50028         * rendering/SVGRenderTreeAsText.h: Removed include.
50029
50030         * svg/SVGImageLoader.cpp:
50031         (WebCore::SVGImageLoader::updateFromElement): Removed DeprecatedString use.
50032
50033         * svg/graphics/SVGImage.cpp:
50034         (WebCore::SVGImage::draw): Added missing call to do layout. I ran
50035         into this while doing some layout tests while URL processing was broken.
50036         (WebCore::SVGImage::dataChanged): Use a null URL rather than an arbitrary
50037         string for the document.
50038
50039         * xml/XMLHttpRequest.cpp:
50040         (WebCore::XMLHttpRequest::getResponseXML): Removed DeprecatedString use.
50041         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain): Ditto.
50042         (WebCore::XMLHttpRequest::open): Ditto.
50043         (WebCore::XMLHttpRequest::send):  Namespace change.
50044         (WebCore::XMLHttpRequest::dropProtection): Ditto.
50045         * xml/XMLHttpRequest.h: Removed DeprecatedString use.
50046
50047         * xml/XSLImportRule.cpp:
50048         (WebCore::XSLImportRule::loadSheet): Removed DeprecatedString use.
50049         * xml/XSLStyleSheet.cpp:
50050         (WebCore::XSLStyleSheet::loadChildSheets): Ditto.
50051         (WebCore::XSLStyleSheet::loadChildSheet): Ditto.
50052         * xml/XSLStyleSheet.h: Ditto.
50053         * xml/XSLTProcessor.cpp:
50054         (WebCore::docLoaderFunc): Ditto.
50055         (WebCore::xsltStylesheetPointer): Ditto.
50056         (WebCore::xmlDocPtrFromNode): Ditto.
50057
50058 2008-02-14  Ada Chan  <adachan@apple.com>
50059
50060         <rdar://problem/5744728> Fix leaks of RegularExpression objects in Frame.cpp.
50061         
50062         Reviewed by Jon and Darin.
50063
50064         * page/Frame.cpp:
50065         (WebCore::createRegExpForLabels):
50066         (WebCore::Frame::searchForLabelsBeforeElement):
50067         (WebCore::Frame::matchLabelsAgainstElement):
50068
50069 2008-02-14  Stephanie Lewis  <slewis@apple.com>
50070
50071         Reviewed by Geoff.
50072
50073         Update order files.
50074
50075         * WebCore.order:
50076
50077 2008-02-14  Oliver Hunt  <oliver@apple.com>
50078
50079         Reviewed by Geoff G and Weinig.
50080
50081         <rdar://problem/5726608> REGRESSION (r29428): Assigning to window.status does not update status bar
50082
50083         Revert the portions of r29428 responsible for breaking the ability to
50084         set window.status
50085
50086         * page/DOMWindow.cpp:
50087         (WebCore::DOMWindow::setStatus):
50088         (WebCore::DOMWindow::defaultStatus):
50089         (WebCore::DOMWindow::setDefaultStatus):
50090         * page/DOMWindow.h:
50091         * page/DOMWindow.idl:
50092
50093 2008-02-14  Anders Carlsson  <andersca@apple.com>
50094
50095         Reviewed by Darin.
50096
50097         <rdar://problem/5721790>
50098         Crash in WebCore::DeprecatedString::operator= + 31 at news.google.com
50099         
50100         Use pointers in the cache map tables. Otherwise when we rehash, 
50101         we will end up destroying Cache objects that node lists might point to.
50102         
50103         * dom/Node.cpp:
50104         (WebCore::NodeListsNodeData::~NodeListsNodeData):
50105         (WebCore::Node::getElementsByName):
50106         (WebCore::Node::getElementsByClassName):
50107
50108 2008-02-14  Alp Toker  <alp@atoker.com>
50109
50110         Reviewed by Darin.
50111
50112         http://bugs.webkit.org/show_bug.cgi?id=17353
50113         XMLTokenizer installs global libxml2 callbacks that can break client applications
50114
50115         Patch by Mark Rowe (with a few changes).
50116
50117         The xmlRegisterInputCallbacks/xmlRegisterOutputCallbacks done at
50118         init are global so we need to make sure these callbacks only get used
50119         by XMLTokenizer and never by libxml2 calls in user applications.
50120
50121         This patch modifies the match and open functions to only apply when we
50122         are certain the caller is XMLTokenizer by checking globalDocLoader and
50123         ensuring we're on the correct thread.
50124
50125         Some possible issues remain. See the bug report for details.
50126
50127         * dom/XMLTokenizer.cpp:
50128         (WebCore::matchFunc):
50129         (WebCore::openFunc):
50130         (WebCore::createStringParser):
50131
50132 2008-02-14  Timothy Hatcher  <timothy@apple.com>
50133
50134         Reviewed by Darin Adler.
50135
50136         <rdar://problem/5743768> A deadlock during storage layout tests
50137
50138         Make sure not to hold the m_openDatabaseMapGuard mutex when calling
50139         Database::markAsDeletedAndClose(), since that can cause a deadlock
50140         during the synchronous DatabaseThread call it triggers.
50141
50142         * storage/DatabaseTracker.cpp:
50143         (WebCore::DatabaseTracker::deleteDatabaseFile):
50144
50145 2008-02-14  Adam Roben  <aroben@apple.com>
50146
50147         Turn on cross-document messaging support by default
50148
50149         Reviewed by Darin.
50150
50151         * Configurations/WebCore.xcconfig:
50152         * WebCore.pro:
50153         * WebCore.vcproj/WebCore.vcproj:
50154
50155 2008-02-14  Adam Roben  <aroben@apple.com>
50156
50157         Conditionalize cross-document messaging support
50158
50159         The cross-document messaging parts of HTML 5 are in flux and we want
50160         ports to be able to turn off the support as needed.
50161
50162         Note that the support is turned off by default right now. A subsequent
50163         commit will turn it on by default.
50164
50165         Reviewed by Darin.
50166
50167         * GNUmakefile.am:
50168         * WebCore.vcproj/build-generated-files.sh:
50169         * bindings/js/JSDOMWindowCustom.cpp:
50170         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
50171         * bindings/js/JSEventCustom.cpp:
50172         (WebCore::toJS):
50173         * dom/Event.cpp:
50174         (WebCore::Event::isMessageEvent):
50175         * dom/Event.h:
50176         * dom/MessageEvent.cpp:
50177         * dom/MessageEvent.h:
50178         * dom/MessageEvent.idl:
50179         * page/DOMWindow.cpp:
50180         (WebCore::DOMWindow::postMessage):
50181         * page/DOMWindow.h:
50182         * page/DOMWindow.idl:
50183
50184 2008-02-14  Adam Roben  <aroben@apple.com>
50185
50186         Improve the efficiency of SecurityOriginHash
50187
50188         Reviewed by Alexey.
50189
50190         * platform/SecurityOriginHash.h:
50191         (WebCore::SecurityOriginHash::hash): Now takes a const
50192         RefPtr<SecurityOrigin>& to reduce ref-count churn.
50193         (WebCore::SecurityOriginHash::equal): Ditto.
50194
50195 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
50196
50197         Reviewed by Oliver Hunt.
50198
50199         Fixes the editing/deleting/5729680.html failure.  It succeeds when run by itself
50200         but fails when run with other tests because FramePrivate's m_selectionGranularity
50201         isn't reset when a Frame receives a new document.  It was also uninitialized in
50202         the constructor.
50203
50204         * loader/FrameLoader.cpp:
50205         (WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
50206         * page/Frame.cpp:
50207         (WebCore::FramePrivate::FramePrivate): Ditto.
50208
50209 2008-02-13  Jon Honeycutt  <jhoneycutt@apple.com>
50210
50211         Reviewed by Anders.
50212
50213         <rdar://problem/5739282> Hangs after closing video trailer popup with
50214         VLC plugin
50215
50216         VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window
50217         handle.
50218
50219         * plugins/PluginQuirkSet.h: Added new quirk
50220         PluginQuirkDontSetNullWindowHandleOnDestroy.
50221         * plugins/win/PluginViewWin.cpp:
50222         (WebCore::PluginView::stop): Selectively call NPP_SetWindow.
50223         (WebCore::PluginView::determineQuirks): Set new quirk for VLC plug-in.
50224
50225 2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
50226
50227         Reviewed by Alp Toker.
50228
50229         Fix non-SVG builds.
50230
50231         * css/CSSCursorImageValue.cpp:
50232
50233 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
50234
50235         Reviewed by Adam Roben.
50236
50237         <rdar://problem/5729680> REGRESSION (r27873): Removing the last character of a word in Mail or Safari also removes the following space
50238         
50239         * editing/Editor.cpp:
50240         (WebCore::Editor::deleteWithDirection): Fixed a typo.
50241
50242 2008-02-13  Nikolas Zimmermann  <zimmermann@kde.org>
50243
50244         Reviewed by Oliver.
50245
50246         Actually fix the manual-tests/svg-cursor-changes.svg testcase.
50247         I only reran layout tests when fixing the last issues with the patch,
50248         instead of trying the manual-test :( Fixed.
50249
50250         * css/CSSCursorImageValue.cpp:
50251         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
50252         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
50253         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
50254         * css/CSSCursorImageValue.h:
50255
50256 2008-02-13  Adam Roben  <aroben@apple.com>
50257
50258         Windows build fix
50259
50260         * css/CSSCursorImageValue.cpp: #include MathExtras.h to get roundf.
50261
50262 2008-02-13  Nikolas Zimmermann  <zimmermann@kde.org>
50263
50264         Reviewed by Darin & Eric.
50265
50266         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17258 (SVG uses erroneous cursor implementation)
50267
50268         SVG cursors are not well-integrated within the CSS(3) cursor support in WebCore.
50269         SVGCursorElement duplicates CSSCursorImageValue functionality and inherits from
50270         CachedResourceClient itself, handling remote-image acquisation on its own.
50271
50272         RenderStyle's CursorData class holds "IntPoint hotSpot", "CachedImage* image"
50273         and just for SVG a 'String cursorFragmentId' (a reference to a SVG <cursor> element, by id).
50274
50275         SVG stores a reference to a SVGCursorElement, which holds a CachedImage pointer itself -
50276         instead of storing the CachedImage in the CursorData class, as it's supposed to be.
50277         Because of that several places in WebCore contain special SVG cursor handling - which
50278         is unneeded.
50279
50280         Fix all issues by integrating within CSSCursorImageValue, remove 'String cursorFragmentId'
50281         from RenderStyle, kill any special SVG cursor handling in WebCore and fix dynamic attribute
50282         changes through DOM / SVG DOM (scripting of 'x' / 'y' / 'xlink:href' attribute). Now you
50283         can script the mouse cursor location using SVG - the feature anyone has waited for.
50284
50285         Added manual test case: manual-tests/svg-cursor-changes.svg (no support for cursors in DRT)
50286
50287         * css/CSSCursorImageValue.cpp:
50288         (WebCore::isSVGCursorIdentifier):
50289         (WebCore::resourceReferencedByCursorElement):
50290         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
50291         (WebCore::CSSCursorImageValue::updateIfNeeded):
50292         (WebCore::CSSCursorImageValue::image):
50293         * css/CSSCursorImageValue.h:
50294         * css/CSSImageValue.cpp:
50295         (WebCore::CSSImageValue::image):
50296         * css/CSSImageValue.h:
50297         * css/CSSParser.cpp:
50298         (WebCore::CSSParser::parseValue):
50299         * css/CSSStyleSelector.cpp:
50300         (WebCore::CSSStyleSelector::applyProperty):
50301         * manual-tests/svg-cursor-changes.svg: Added.
50302         * page/EventHandler.cpp:
50303         (WebCore::EventHandler::selectCursor):
50304         * rendering/RenderStyle.cpp:
50305         * rendering/RenderStyle.h:
50306         (WebCore::CursorData::operator==):
50307         * svg/SVGCursorElement.cpp:
50308         (WebCore::SVGCursorElement::SVGCursorElement):
50309         (WebCore::SVGCursorElement::~SVGCursorElement):
50310         (WebCore::SVGCursorElement::parseMappedAttribute):
50311         (WebCore::SVGCursorElement::addClient):
50312         (WebCore::SVGCursorElement::removeClient):
50313         (WebCore::SVGCursorElement::svgAttributeChanged):
50314         * svg/SVGCursorElement.h:
50315         (WebCore::SVGCursorElement::isValid):
50316
50317 2008-02-13  Alp Toker  <alp@atoker.com>
50318
50319         Reviewed by Adam Roben.
50320
50321         Split out pure-cairo Font code to FontCairo.cpp.
50322
50323         Part of the ongoing work to share code with the Win port.
50324
50325         * GNUmakefile.am:
50326         * WebCore.pro:
50327         * platform/graphics/cairo/FontCairo.cpp: Added.
50328         (WebCore::Font::drawGlyphs):
50329         * platform/graphics/gtk/FontGtk.cpp:
50330
50331 2008-02-13  Kevin Ollivier <kevino@theolliviers.com>
50332
50333         Reviewed by Darin Adler.
50334
50335         Import wx/defs.h to keep windows.h from using ANSI functions
50336         (see note in file for more info) and use the 8-bit string friendly
50337         version of StringImpl::computeHash since we're passing it un UTF8
50338         string. Also, don't cache the hash result.
50339         
50340         http://bugs.webkit.org/show_bug.cgi?id=17321
50341
50342         * config.h:
50343         * platform/graphics/wx/FontPlatformData.h:
50344         (WebCore::FontPlatformData::hash):
50345         (WebCore::FontPlatformData::computeHash):
50346
50347 2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
50348
50349         Fix Bug 17220: Illogical dependency between PluginView and
50350         PluginDatabase
50351         
50352         <http://bugs.webkit.org/show_bug.cgi?id=17220>
50353
50354         Reviewed by Adam and Darin.
50355
50356         Rename PluginDatabase::createPluginView to PluginView::create, to make
50357         the illogical dependency between the two, logical
50358         Make PluginDatabase::findPlugin a public method
50359         Update the includes in PluginView and PluginDatabase for the change
50360
50361         * plugins/PluginDatabase.h:
50362         * plugins/PluginView.h:
50363         * plugins/win/PluginDatabaseWin.cpp:
50364         * plugins/win/PluginViewWin.cpp:
50365
50366 2008-02-13  Adam Roben  <aroben@apple.com>
50367
50368         Build fix
50369
50370         * platform/graphics/cg/GraphicsContextCG.cpp: Added missing #include.
50371
50372 2008-02-13  Matt Lilek  <webkit@mattlilek.com>
50373
50374         Not reviewed, build fix.
50375
50376         * platform/graphics/cg/GraphicsContextCG.cpp:
50377         (WebCore::GraphicsContext::paintBuffer):
50378
50379 2008-02-13  Darin Adler  <darin@apple.com>
50380
50381         - try to fix Wx build
50382
50383         * platform/graphics/wx/GraphicsContextWx.cpp:
50384         (WebCore::GraphicsContext::paintBuffer): Added.
50385
50386         * platform/graphics/cairo/GraphicsContextCairo.cpp:
50387         (WebCore::GraphicsContext::paintBuffer): Added missing paintingDisabled() check.
50388         * platform/graphics/cg/GraphicsContextCG.cpp:
50389         (WebCore::GraphicsContext::paintBuffer): Ditto.
50390         * platform/graphics/qt/GraphicsContextQt.cpp:
50391         (WebCore::GraphicsContext::paintBuffer): Ditto.
50392
50393 2008-02-13  Darin Adler  <darin@apple.com>
50394
50395         - try to fix Wx build
50396
50397         * platform/wx/LocalizedStringsWx.cpp: Add missing include.
50398
50399 2008-02-11  Darin Adler  <darin@apple.com>
50400
50401         - roll out fix for <rdar://problem/5726016> REGRESSION: Xcode News window renders
50402           incorrectly due to visibility fix
50403
50404         Removed the Xcode-specific quirk at the request of some folks on the Xcode team.
50405
50406         * WebCore.base.exp: Rolled out change.
50407         * css/CSSMutableStyleDeclaration.cpp:
50408         (WebCore::CSSMutableStyleDeclaration::setProperty): Ditto.
50409         * page/Settings.cpp:
50410         (WebCore::Settings::Settings): Ditto. But keep the initialization of
50411         m_fontRenderingMode.
50412         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Removed.
50413         * page/Settings.h:
50414         (WebCore::Settings::needsXcodeVisibilityQuirk): Removed.
50415
50416 2008-02-13  Alexey Proskuryakov  <ap@webkit.org>
50417
50418         Reviewed by Darin.
50419
50420         <rdar://problem/5740042> Database termination issues
50421
50422         Test: storage/close-during-stress-test.html
50423
50424         * dom/Document.cpp:
50425         (WebCore::Document::databaseThread):
50426         * dom/Document.h:
50427         Don't re-create the database thread if it has been already terminated.
50428
50429         * storage/Database.h: (WebCore::Database::document): Changed m_database to a RefPtr to avoid
50430         having a hanging reference.
50431
50432         * storage/DatabaseThread.cpp:
50433         (WebCore::DatabaseThread::requestTermination):
50434
50435         * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::~SQLTransaction): Removed logging.
50436         Transactions are deleted during GC, so it's usually not importatnt to know when it happens.
50437
50438 2008-02-12  Bernhard Rosenkraenzer  <bero@arklinux.org>
50439
50440         Reviewed by Darin.
50441
50442         - fix http://bugs.webkit.org/show_bug.cgi?id=17340
50443           WebCore/platform/Timer.cpp fails to build with gcc 4.3
50444
50445         * platform/Timer.cpp: Add include of <limits.h> since this file uses UINT_MAX.
50446
50447 2008-02-12  Timothy Hatcher  <timothy@apple.com>
50448
50449         Reviewed by Brady Eidson.
50450
50451         <rdar://problem/5652560> Can't delete database if the website that
50452         uses it has been opened in this session
50453
50454         Close the Database on the database thread before deleting the file.
50455         Tested and works on Windows and Mac.
50456
50457         * platform/sql/SQLiteDatabase.cpp:
50458         (WebCore::SQLiteDatabase::close): Assert we are on the opening thread.
50459         * storage/Database.cpp:
50460         (WebCore::Database::markAsDeletedAndClose): Unschedule any pending
50461         Database tasks, and start and imediate DatabaseCloseTask.
50462         (WebCore::Database::close): Close the SQLDatabase.
50463         * storage/Database.h: Renamed markAsDeleted to markAsDeletedAndClose.
50464         * storage/DatabaseTask.cpp:
50465         (WebCore::DatabaseCloseTask::DatabaseCloseTask): New task.
50466         (WebCore::DatabaseCloseTask::doPerformTask): Call close on the Database.
50467         (WebCore::DatabaseCloseTask::debugTaskName): Return "DatabaseCloseTask".
50468         * storage/DatabaseTask.h: Add DatabaseCloseTask.
50469         * storage/DatabaseTracker.cpp:
50470         (WebCore::DatabaseTracker::deleteDatabaseFile): Call the renamed
50471           markAsDeletedAndClose.
50472
50473 2008-02-12  Oliver Hunt  <oliver@apple.com>
50474
50475         Endeavour to fix qt and gtk builds
50476
50477         * platform/graphics/cairo/GraphicsContextCairo.cpp:
50478         * platform/graphics/qt/GraphicsContextQt.cpp:
50479
50480 2008-02-12  Oliver Hunt  <oliver@apple.com>
50481
50482         Reviewed by Eric S.
50483
50484         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
50485         Remove ifdef's from canvas paint code
50486
50487         By making GraphicsContext aware of the crossplatform ImageBuffer
50488         type we can migrate the ifdef-ified paint code in HTMLCanvasElement
50489         into platform implementations of GraphicsContext.
50490
50491         * html/HTMLCanvasElement.cpp:
50492         (WebCore::HTMLCanvasElement::paint):
50493         * platform/graphics/GraphicsContext.h:
50494         * platform/graphics/cairo/GraphicsContextCairo.cpp:
50495         (WebCore::GraphicsContext::paintBuffer):
50496         * platform/graphics/cg/GraphicsContextCG.cpp:
50497         (WebCore::GraphicsContext::paintBuffer):
50498         * platform/graphics/qt/GraphicsContextQt.cpp:
50499         (WebCore::GraphicsContext::paintBuffer):
50500
50501 2008-02-12  Brady Eidson  <beidson@apple.com>
50502
50503         Reviewed by Darin Adler
50504
50505         Fix for <rdar://problem/5737692> - Database API needs to support SuccessCallback
50506
50507         Layout tests will come shortly with a mess of DRT changes
50508
50509         * platform/SecurityOrigin.cpp:
50510         (WebCore::SecurityOrigin::SecurityOrigin): Standardize on "empty string" instead of null string
50511           as different paths of constructing a SecurityOrigin were causing different hashes for the "same"
50512           SecurityOrigin
50513
50514         * storage/Database.cpp:
50515         (WebCore::Database::changeVersion): Pass in the successCallback
50516         (WebCore::Database::transaction): Ditto
50517
50518         * storage/SQLTransaction.cpp:
50519         (WebCore::SQLTransaction::SQLTransaction):
50520         (WebCore::SQLTransaction::debugStepName):
50521         (WebCore::SQLTransaction::performNextStep): Update ASSERTs for the new valid steps
50522         (WebCore::SQLTransaction::performPendingCallback): Ditto
50523         (WebCore::SQLTransaction::postflightAndCommit): Schedule the success callback if it exists - otherwise
50524           skip straight to cleanupAfterSuccessCallback()
50525         (WebCore::SQLTransaction::deliverSuccessCallback): Deliver success callback on the main thread, then
50526           schedule cleanupAfterSuccessCallback()
50527         (WebCore::SQLTransaction::cleanupAfterSuccessCallback): Cleanup and end the transaction
50528         (WebCore::SQLTransaction::handleTransactionError):
50529         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
50530         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
50531         * storage/SQLTransaction.h:
50532
50533 2008-02-12  Steve Falkenburg  <sfalken@apple.com>
50534
50535         Changes to support merged MIDL output.
50536         
50537         All COM interfaces are now generated to WebKit.h.
50538         
50539         Reviewed by Sam, Ada.
50540
50541         * bindings/scripts/CodeGeneratorCOM.pm:
50542
50543 2008-02-12  Dan Bernstein  <mitz@apple.com>
50544
50545         Reviewed by Adam Roben.
50546
50547         - fix http://bugs.webkit.org/show_bug.cgi?id=17041
50548           <rdar://problem/5709660> Eastern Asian fonts do not display without specific box in Control Panel
50549
50550         Revised the system fallback font lookup logic to use MLang font linking
50551         again. To avoid reintroducing bug 16548 and <rdar://problem/5280188>,
50552         for CJK characters, try linking based on a single code page at a time,
50553         starting with the user's default code page (if it is one of the CJK
50554         code pages) followed by the other CJK code pages in a prescribed order
50555         that matches what Firefox does.
50556
50557         * platform/graphics/win/FontCacheWin.cpp:
50558         (WebCore::getCJKCodePageMasks): Added. Returns the search order for CJK
50559         code pages, with the user's default code page first.
50560         (WebCore::currentFontContainsCharacter): Factored out of
50561         getFontDataForCharacters().
50562         (WebCore::createMLangFont): Ditto.
50563         (WebCore::FontCache::getFontDataForCharacters):
50564
50565 2008-02-12  Rodney Dawes  <dobey@wayofthemonkey.com>
50566
50567         Reviewed by Alp Toker.
50568
50569         Add -DMAEMO_CHANGES when the hildon CONFIG option is specified
50570         Add hildon-1 to PKGCONFIG when hildon CONFIG option is specified
50571
50572         * WebCore.pro:
50573
50574 2008-02-12  Dan Bernstein  <mitz@apple.com>
50575
50576         Reviewed by Timothy Hatcher.
50577
50578         - <rdar://problem/5738175> Remove workaround for <rdar://problem/5539388> from post-Tiger builds
50579
50580         * platform/graphics/cg/GraphicsContextCG.cpp:
50581         (WebCore::GraphicsContext::setShadow):
50582
50583 2008-02-12  Brady Eidson  <beidson@apple.com>
50584
50585         Release build fix
50586
50587         * storage/DatabaseTask.cpp:
50588
50589 2008-02-12  Alexey Proskuryakov <ap@webkit.org> and Brady Eidson <beidson@apple.com>
50590
50591         Reviewed by Brady.
50592
50593         http://bugs.webkit.org/show_bug.cgi?id=17177
50594         <rdar://problem/5729619> Storage tasks are getting lost
50595
50596         <rdar://problem/5729445> REGRESSION: Cannot schedule more than one transaction at a time
50597
50598         <rdar://problem/5729446> Major thread safety issue in Database code
50599
50600         * platform/MessageQueue.h: Added a thread-safe queue abstraction.
50601
50602         * WebCore.vcproj/WebCore.vcproj:
50603         * WebCore.xcodeproj/project.pbxproj:
50604         Added MessageQueue.h.
50605
50606         * dom/Document.cpp:
50607         (WebCore::Document::~Document): Fixed a race condition resulting in a hanging reference.
50608
50609         * storage/Database.idl: Fixed parameter declarations to actually match implementation
50610         (which is custom, so it got out of sync).
50611
50612         * storage/DatabaseTask.h:
50613         (WebCore::DatabaseTask::database):
50614         (WebCore::DatabaseTransactionTask::transaction):
50615         Changed tasks to hold more information internally. Added helpers for better debug logging.
50616
50617         * storage/DatabaseTask.cpp:
50618         (WebCore::DatabaseTask::DatabaseTask):
50619         (WebCore::DatabaseTask::performTask):
50620         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
50621         (WebCore::DatabaseOpenTask::doPerformTask):
50622         (WebCore::DatabaseOpenTask::debugTaskName):
50623         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
50624         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
50625         (WebCore::DatabaseTransactionTask::doPerformTask):
50626         (WebCore::DatabaseTransactionTask::debugTaskName):
50627         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
50628         (WebCore::DatabaseTableNamesTask::doPerformTask):
50629         (WebCore::DatabaseTableNamesTask::debugTaskName):
50630         Implementation for the above.
50631
50632         (WebCore::DatabaseTask::lockForSynchronousScheduling):
50633         (WebCore::DatabaseTask::waitForSynchronousCompletion):
50634         Fixed a potential race condition: if the task completed before we entered a wait, we'd never
50635         wake up. There was an assertion guarding against this, but no actual guarantee that I could see.
50636
50637         * storage/DatabaseThread.cpp:
50638         (WebCore::DatabaseThread::DatabaseThread):
50639         (WebCore::DatabaseThread::requestTermination):
50640         (WebCore::DatabaseThread::databaseThread):
50641         (WebCore::DatabaseThread::scheduleTask):
50642         (WebCore::DatabaseThread::scheduleImmediateTask):
50643         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
50644         * storage/DatabaseThread.h:
50645         Changed to use MessageQueue.
50646
50647         * storage/Database.cpp:
50648         (WebCore::guidMutex):
50649         (WebCore::guidToVersionMap):
50650         (WebCore::guidToDatabaseMap):
50651         (WebCore::Database::openDatabase):
50652         (WebCore::Database::Database):
50653         (WebCore::Database::~Database):
50654         (WebCore::Database::openAndVerifyVersion):
50655         (WebCore::guidForOriginAndName):
50656         (WebCore::Database::changeVersion):
50657         (WebCore::Database::transaction):
50658         (WebCore::Database::scheduleTransaction):
50659         (WebCore::Database::scheduleTransactionStep):
50660         (WebCore::Database::scheduleTransactionCallback):
50661         (WebCore::Database::version):
50662         (WebCore::Database::deliverPendingCallback):
50663         (WebCore::Database::tableNames):
50664         * storage/Database.h:
50665         Changed m_transactionQueue to a MessageQueue.
50666         Got rid of callback tracking - these can take care of themselves.
50667         Got rid of a DatabaseThread member, as the Document can be asked for it.
50668         Moved private static members and helpers out of the header.
50669         Lost CurrentThreadSetter debug helper on the way. We may need to re-add something like that later.
50670
50671         * storage/SQLTransaction.h:
50672         * storage/SQLTransaction.cpp: Added a lot of debug logging.
50673         (WebCore::SQLTransaction::scheduleToRunStatements): Removed "m_currentStatement = 0" assignment,
50674         as it created a race condition. Everything seems to work better without it, although a real fix
50675         would be to get rid of this variable - it's evil shared data that isn't even protected in any way.
50676
50677         * manual-tests/database-threading-stress-test-2.html: Added.
50678         * manual-tests/database-threading-stress-test.html: Added.
50679
50680 2008-02-12  Adam Roben  <aroben@apple.com>
50681
50682         Fix Bug 17328: REGRESSION (r30147): Inspector is unstyled on Windows
50683
50684         <http://bugs.webkit.org/show_bug.cgi?id=17328>
50685         <rdar://5737946>
50686
50687         Reviewed by Mitz.
50688
50689         Test: fast/loader/local-css-allowed-in-strict-mode.html
50690
50691         * platform/network/cf/ResourceResponseCFNet.cpp:
50692         (WebCore::ResourceResponse::doUpdateResourceResponse): Add a case for
50693         .css files.
50694
50695 2008-02-12  Anders Carlsson  <andersca@apple.com>
50696
50697         Build fix.
50698         
50699         * loader/ImageDocument.cpp:
50700
50701 2008-02-12  Anders Carlsson  <andersca@apple.com>
50702
50703         Reviewed by Mitz.
50704
50705         Make the code that sets the image title cross platform.
50706
50707         * WebCore.xcodeproj/project.pbxproj:
50708         Remove ImageDocumentMac.
50709         
50710         * loader/ImageDocument.cpp:
50711         (WebCore::ImageTokenizer::finish):
50712
50713         * loader/mac/ImageDocumentMac.h: Removed.
50714         * loader/mac/ImageDocumentMac.mm: Removed.
50715         
50716         * page/mac/WebCoreFrameBridge.h:
50717         * page/mac/WebCoreViewFactory.h:
50718         Move imageTitleForFilename:size from the bridge to
50719         the view factory.
50720         
50721         * platform/LocalizedStrings.h:
50722         Add imageTitle.
50723         
50724         * platform/mac/LocalizedStringsMac.mm:
50725         (WebCore::imageTitle):
50726         Have imageTitle call the view factory.
50727         
50728         * platform/qt/Localizations.cpp:
50729         (WebCore::imageTitle):
50730         * platform/wx/LocalizedStringsWx.cpp:
50731         (WebCore::imageTitle):
50732         * platform/gtk/LocalizedStringsGtk.cpp:
50733         (WebCore::imageTitle):
50734         Add stubs.
50735         
50736 2008-02-12  Oliver Hunt  <oliver@apple.com>
50737
50738         more Qt fixes
50739
50740         * html/HTMLCanvasElement.cpp:
50741         (WebCore::HTMLCanvasElement::paint):
50742
50743 2008-02-12  Oliver Hunt  <oliver@apple.com>
50744
50745         And another attempt to fixerate Qt
50746
50747         * html/HTMLCanvasElement.cpp:
50748         (WebCore::HTMLCanvasElement::paint):
50749
50750 2008-02-12  Oliver Hunt  <oliver@apple.com>
50751
50752         Attempt to fix Qt build
50753
50754         * html/HTMLCanvasElement.h:
50755
50756 2008-02-11  Oliver Hunt  <oliver@apple.com>
50757
50758         Reviewed by Alp Toker.
50759
50760         Make canvas use an ImageBuffer for its backing store
50761
50762         In order to make the canvas implementation less platform dependent
50763         (and thus reduce the current quagmire of ifdefs) we now use an 
50764         ImageBuffer to provide the backing buffer, an immediate consequence
50765         of this is to remove multiple ifdefs in the construction of the
50766         buffer.  This patch allows us to further reduce the platform
50767         dependencies in later patches.
50768
50769
50770         * html/CanvasRenderingContext2D.cpp:
50771         (WebCore::CanvasRenderingContext2D::drawImage):
50772         * html/HTMLCanvasElement.cpp:
50773         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
50774         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
50775         (WebCore::HTMLCanvasElement::reset):
50776         (WebCore::HTMLCanvasElement::paint):
50777         (WebCore::HTMLCanvasElement::createDrawingContext):
50778         (WebCore::HTMLCanvasElement::drawingContext):
50779         (WebCore::HTMLCanvasElement::createPlatformImage):
50780         * html/HTMLCanvasElement.h:
50781
50782 2008-02-11  Dan Bernstein  <mitz@apple.com>
50783
50784         Reviewed by Dave Hyatt.
50785
50786         - fix http://bugs.webkit.org/show_bug.cgi?id=17320
50787           <rdar://problem/5736953> :last-child does not set the "uses sibling rules" flag
50788
50789         Test: fast/css/last-child-style-sharing.html
50790
50791         * css/CSSGrammar.y: Changed to call setUsesSiblingRules(true) for all
50792         CSS3 selectors that require it.
50793
50794 2008-02-11  Sam Weinig  <sam@webkit.org>
50795
50796         Reviewed by Darin Adler.
50797
50798         Make the cross-domain security model more closely match Firefox by always returning the
50799         native built-in functions when accessing functions cross-domain.
50800
50801         Fixes for:
50802         <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
50803         <rdar://problem/5735443> Crash when setting the Window objects prototype to a custom Object and then calling a method on it
50804
50805         Tests: fast/dom/Window/window-custom-prototype-crash.html
50806                fast/dom/Window/window-function-frame-getter-precedence.html
50807                http/tests/security/cross-frame-access-get-override.html
50808                http/tests/security/cross-frame-access-location-get-override.html
50809                http/tests/security/cross-frame-access-location-get.html
50810                http/tests/security/cross-frame-access-location-put.html
50811
50812         * bindings/js/JSDOMWindowCustom.cpp:
50813         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
50814         - Return the native-built in version of an cross-domain allowed function (eg. window.focus) whether or
50815           not it has been overridden, instead of undefined.
50816         - When doing findEntry lookup, use the the tables directly (JSDOMWindowPrototype::info.propHashTable) 
50817           instead of calling the virtual classInfo() method to avoid the unnecessary overhead.
50818         - Allow access to the native toString function cross-domain.  It always returns "[object Window]".
50819         - Use the new nonCachingStaticFunctionGetter when return allowed functions cross-frame so that
50820           the function an overridden function is not inadvertantly returned from the PropertyMap.\
50821
50822         * bindings/js/JSHistoryCustom.cpp:
50823         (WebCore::JSHistory::customGetOwnPropertySlot):
50824         - Implement the same model as described above for the History object, always returning the
50825           native built-in function cross-domain.
50826         - Allow access to the native toString function cross-domain.
50827         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
50828           access.
50829
50830         * bindings/js/JSLocation.cpp:
50831         (WebCore::JSLocation::getOwnPropertySlot):
50832         - Match the generated classes by moving all the custom logic into a separate customGetOwnPropertySlot
50833           function.  This will help moving to a generated class in the future.
50834         (WebCore::JSLocation::customGetOwnPropertySlot):
50835         - Implement the same model as described above for the Location object, always returning the
50836           native built-in function cross-domain.
50837         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
50838           access.
50839         (WebCore::JSLocation::put):
50840         (WebCore::JSLocation::deleteProperty):
50841         (WebCore::JSLocation::getPropertyNames):
50842         * bindings/js/JSLocation.h:
50843         - Clean up to match the rest of the file a little better.
50844
50845         * bindings/js/kjs_binding.cpp:
50846         (WebCore::allowsAccessFromFrame):
50847         (WebCore::printErrorMessageForFrame):
50848         (WebCore::nonCachingStaticFunctionGetter):
50849         (WebCore::objectToStringFunctionGetter):
50850         * bindings/js/kjs_binding.h:
50851         - Put common functionality related to cross-domain access here to serve as a central shared point.
50852           This includes moving and augmenting the allowsAccessFromFrame method that was in both JSHistoryCustom.cpp
50853           and JSLocation.cpp.
50854
50855         * bindings/js/kjs_dom.cpp:
50856         (WebCore::checkNodeSecurity):
50857         - Use the new allowsAccessFromFrame method.
50858
50859         * bindings/js/kjs_window.cpp:
50860         (KJS::Window::childFrameGetter): Cleanup.
50861         (KJS::Window::namedItemGetter): Cleanup.
50862         (KJS::Window::getOwnPropertySlot):
50863         - Do the prototype lookup early to match Firefox in having function lookup have a higher precedence
50864           than the index or shortcut name getters.
50865         - Cleanup function to make it more understandable and slightly more efficient.
50866         (KJS::Window::allowsAccessFrom):
50867         - Add a new variant of this method that takes a reference to a String, which, on failure, will
50868           contain the error message to print out.  The caller can then pass this to printErrorMessage.
50869           This allows for code to check allowsAccessFrom and act on the result without printing out the
50870           error message. For convenience, a version with out the String parameter has been left which 
50871           prints out the message automatically.
50872         (KJS::Window::printErrorMessage):
50873         * bindings/js/kjs_window.h:
50874
50875 2008-02-11  Darin Adler  <darin@apple.com>
50876
50877         Reviewed by Mitz.
50878
50879         - fix <rdar://problem/5726016> REGRESSION: Xcode News window renders
50880           incorrectly due to visibility fix
50881
50882         Added an Xcode-specific quirk.
50883
50884         * WebCore.base.exp: Added export for new Settings function.
50885         * css/CSSMutableStyleDeclaration.cpp:
50886         (WebCore::CSSMutableStyleDeclaration::setProperty): Here's the crazy quirk.
50887         If you try to change the visibilty on a node with the class name tab_content,
50888         instead it will use display:none.
50889         * page/Settings.cpp:
50890         (WebCore::Settings::Settings): Initialize m_needsXcodeVisibilityQuirk. Also
50891         initialize m_fontRenderingMode! This seems like it was a bug before, but we
50892         probably were getting lucky and always getting 0 on Windows, which is the
50893         only place the setting matters.
50894         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Added.
50895         * page/Settings.h:
50896         (WebCore::Settings::needsXcodeVisibilityQuirk): Added.
50897
50898 2008-02-11  Timothy Hatcher  <timothy@apple.com>
50899
50900         Reviewed by Brady Eidson.
50901
50902         <rdar://problem/5733069> Many m_quotaMap uses do not hold the m_quotaMapGuard
50903
50904         * storage/DatabaseTracker.cpp:
50905         (WebCore::DatabaseTracker::hasEntryForOrigin): Hold m_quotaMapGuard when using m_quotaMap.
50906         (WebCore::DatabaseTracker::origins): Ditto.
50907         (WebCore::DatabaseTracker::setQuota): Ditto.
50908         (WebCore::DatabaseTracker::deleteAllDatabases): Call origins() and itterate over the
50909         origins to call deleteOrigin().
50910         (WebCore::DatabaseTracker::deleteOrigin): Hold m_quotaMapGuard when using m_quotaMap.
50911
50912 2008-02-11  David Hyatt  <hyatt@apple.com>
50913
50914         Fix for bug 17286, crash accessing a null RenderStyle.  Add a simple null check.
50915
50916         Reviewed by aroben
50917
50918         Added fast/css/empty-generated-content.html
50919
50920         * css/CSSStyleSelector.cpp:
50921         (WebCore::CSSStyleSelector::checkOneSelector):
50922
50923 2008-02-11  Rob Buis  <buis@kde.org>
50924
50925         Reviewed by David Kilzer.
50926
50927         http://bugs.webkit.org/show_bug.cgi?id=17201
50928         Bug 17201: Use RefPtr in CSSParser::parseFont() to get rid of goto silliness
50929
50930         Gets rid of goto usage in parseFont.
50931
50932         * css/CSSParser.cpp:
50933         (WebCore::CSSParser::parseFont):
50934
50935 2008-02-11  David Hyatt  <hyatt@apple.com>
50936
50937         Fix for bug 17298, Acid3 text should be black and not red.  Make sure stylesheets with the wrong MIME type
50938         are not accepted in strict mode.
50939
50940         Reviewed by darin
50941
50942         Added http/tests/misc/css-reject-in-strict-mode.html
50943
50944         * css/CSSImportRule.cpp:
50945         (WebCore::CSSImportRule::setCSSStyleSheet):
50946         * css/CSSImportRule.h:
50947         * dom/Document.cpp:
50948         (WebCore::Document::setCSSStyleSheet):
50949         * dom/Document.h:
50950         * dom/ProcessingInstruction.cpp:
50951         (WebCore::ProcessingInstruction::setCSSStyleSheet):
50952         * dom/ProcessingInstruction.h:
50953         * html/HTMLLinkElement.cpp:
50954         (WebCore::HTMLLinkElement::setCSSStyleSheet):
50955         * html/HTMLLinkElement.h:
50956         * html/HTMLMediaElement.cpp:
50957         (WebCore::HTMLMediaElement::pickMedia):
50958         * loader/CachedCSSStyleSheet.cpp:
50959         (WebCore::CachedCSSStyleSheet::ref):
50960         (WebCore::CachedCSSStyleSheet::checkNotify):
50961         (WebCore::CachedCSSStyleSheet::canUseSheet):
50962         * loader/CachedCSSStyleSheet.h:
50963         (WebCore::CachedCSSStyleSheet::sheetText):
50964         * loader/CachedResourceClient.h:
50965         (WebCore::CachedResourceClient::setCSSStyleSheet):
50966         * loader/mac/UserStyleSheetLoader.cpp:
50967         (UserStyleSheetLoader::setCSSStyleSheet):
50968         * loader/mac/UserStyleSheetLoader.h:
50969
50970 2008-02-11  Adam Roben  <aroben@apple.com>
50971
50972         Fix Bug 14316: Inspector's Console truncates long strings
50973
50974         <http://bugs.webkit.org/show_bug.cgi?id=14316>
50975         <rdar://5357695>
50976
50977         We no longer call Object.describe to format all the output of commands
50978         enetered into the Console. The ConsolePanel object now has a set of
50979         formatting functions that append a formatted representation of the
50980         passed-in object to the passed-in container node.
50981
50982         Reviewed by Sam.
50983
50984         * page/inspector/ConsolePanel.js:
50985         (WebInspector.ConsolePanel._onEnterPressed): Updated for rename of
50986         _outputToNode to _format.
50987         (WebInspector.ConsolePanel._format): Renamed from _outputToNode. Use
50988         Object.type to get the type of the object, then call the appropriate
50989         formatting function.
50990         (WebInspector.ConsolePanel._formatvalue): Added.
50991         (WebInspector.ConsolePanel._formatstring): Added. This function
50992         contains the actual fix for the bug, since it doesn't truncate the
50993         string no matter how long it is.
50994         (WebInspector.ConsolePanel._formatregexp): Added.
50995         (WebInspector.ConsolePanel._formatarray): Added. This is a bit more
50996         functional than Object.describe for arrays, since it recursively
50997         formats each item in the array. One advantage of this is that Nodes in
50998         arrays will be linkified instead of just turning into "[Object
50999         HTMLBodyElement]" or similar.
51000         (WebInspector.ConsolePanel._formatnode): Added.
51001         (WebInspector.ConsolePanel._formatobject): Added.
51002         (WebInspector.ConsolePanel.
51003         * page/inspector/utilities.js:
51004         (Object.type): Added. Code was pulled out of Object.describe and
51005         reorganized slightly.
51006         (Object.describe): Call Object.type. There should be no change in
51007         behavior of this function.
51008
51009 2008-02-11  Alp Toker  <alp@atoker.com>
51010
51011         Wx build fix for breakage introduced in r30142. Spotted by Darin.
51012
51013         * platform/network/curl/ResourceHandleManager.cpp:
51014         (WebCore::parseDataUrl):
51015
51016 2008-02-11  Brent Fulgham  <bfulgham@gmail.com>
51017
51018         Reviewed and tweaked by Darin
51019
51020         - http://bugs.webkit.org/show_bug.cgi?id=17299
51021           a couple compilation fixes for Cairo/Win32 configuration
51022
51023         * platform/graphics/cairo/ImageSourceCairo.cpp:
51024         (WebCore::createDecoder): Turn off XBMImageDecoder for PLATFORM(WIN) configuration.
51025         * rendering/RenderThemeWin.cpp:
51026         (WebCore::prepareForDrawing): Added IntRect parameter.
51027         (WebCore::doneDrawing): Ditto.
51028         (WebCore::RenderThemeWin::paintButton): Ditto.
51029         (WebCore::RenderThemeWin::paintTextField): Ditto.
51030         (WebCore::RenderThemeWin::paintMenuListButton): Ditto.
51031         (WebCore::RenderThemeWin::systemFont): Added.
51032
51033 2008-02-11  Alp Toker  <alp@atoker.com>
51034
51035         Reviewed by Alexey.
51036
51037         Acid3 data URL parsing fix for the GTK+ port.
51038
51039         Avoid WebCore's base64Decode() when possible since it's not a
51040         general-purpose Base64 decoder and fails on newlines.
51041
51042         * platform/network/curl/ResourceHandleManager.cpp:
51043         (WebCore::parseDataUrl):
51044
51045 2008-02-11  Darin Adler  <darin@apple.com>
51046
51047         - another Qt build fix
51048
51049         * platform/qt/PopupMenuQt.cpp:
51050         (WebCore::PopupMenu::PopupMenu): Added explicit RefCounted constructor.
51051
51052 2008-02-10  Darin Adler  <darin@apple.com>
51053
51054         - another Qt build fix (wish the Qt bot wouldn't stop on the first error)
51055
51056         * platform/qt/FileChooserQt.cpp:
51057         (WebCore::FileChooser::FileChooser): Added explicit RefCounted constructor.
51058
51059 2008-02-10  Darin Adler  <darin@apple.com>
51060
51061         - another Qt build fix
51062
51063         * platform/graphics/qt/IconQt.cpp:
51064         (WebCore::Icon::Icon): Added explicit RefCounted constructor.
51065
51066 2008-02-10  Alp Toker  <alp@atoker.com>
51067
51068         Another Win build fix for r30133 breakage.
51069
51070         * plugins/win/PluginPackageWin.cpp:
51071         (WebCore::PluginPackage::PluginPackage):
51072
51073 2008-02-10  Alp Toker  <alp@atoker.com>
51074
51075         Build fix GTK+ and prospective build fix for Win breakage introduced
51076         in r30133.
51077
51078         * platform/Cursor.h:
51079         (WebCore::SharedCursor::SharedCursor):
51080         * platform/graphics/gtk/IconGtk.cpp:
51081         (WebCore::Icon::Icon):
51082         * platform/gtk/FileChooserGtk.cpp:
51083         (WebCore::FileChooser::FileChooser):
51084         * platform/gtk/PopupMenuGtk.cpp:
51085         (WebCore::PopupMenu::PopupMenu):
51086
51087 2008-02-10  Darin Adler  <darin@apple.com>
51088
51089         - try to fix Win, Qt, GTK, and WX builds
51090
51091         * platform/Cursor.h:
51092         (WebCore::SharedCursor::SharedCursor): Added explicit RefCounted constructor.
51093         * platform/graphics/win/IconWin.cpp:
51094         (WebCore::Icon::Icon): Ditto.
51095         * platform/win/FileChooserWin.cpp:
51096         (WebCore::FileChooser::FileChooser): Ditto.
51097         * platform/win/PopupMenuWin.cpp:
51098         (WebCore::PopupMenu::PopupMenu): Ditto.
51099         * platform/wx/TemporaryLinkStubs.cpp:
51100         (FileChooser::FileChooser): Ditto.
51101         (PopupMenu::PopupMenu): Ditto.
51102         (Icon::Icon): Ditto.
51103         * plugins/PluginStream.cpp:
51104         (WebCore::PluginStream::PluginStream): Ditto.
51105
51106 2008-02-10  David Hyatt  <hyatt@apple.com>
51107
51108         Fix for bug 17082, cssRules should be live.
51109
51110         Reviewed by olliej
51111
51112         Added fast/css/live-cssrules.html
51113
51114         * css/CSSRuleList.cpp:
51115         (WebCore::CSSRuleList::CSSRuleList):
51116         (WebCore::CSSRuleList::length):
51117         (WebCore::CSSRuleList::item):
51118         (WebCore::CSSRuleList::deleteRule):
51119         (WebCore::CSSRuleList::insertRule):
51120         * css/CSSRuleList.h:
51121
51122 2008-02-10  David Hyatt  <hyatt@apple.com>
51123
51124         Fix for bug 17253.  <iframe> contents need to be reflected into the DOM as a single text node.
51125
51126         Reviewed by olliej
51127
51128         fast/frames/iframe-text-contents.html
51129
51130         * html/HTMLParser.cpp:
51131         (WebCore::HTMLParser::getNode):
51132         * html/HTMLTokenizer.cpp:
51133         (WebCore::HTMLTokenizer::parseSpecial):
51134         (WebCore::HTMLTokenizer::parseComment):
51135         (WebCore::HTMLTokenizer::parseTag):
51136         * html/HTMLTokenizer.h:
51137         (WebCore::HTMLTokenizer::State::inIFrame):
51138         (WebCore::HTMLTokenizer::State::setInIFrame):
51139         (WebCore::HTMLTokenizer::State::inAnySpecial):
51140         (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling):
51141         (WebCore::HTMLTokenizer::State::):
51142
51143 2008-02-10  Andrew Wellington  <proton@wiretapped.net>
51144
51145         Reviewed and tweaked by Darin.
51146         
51147         DOMRange.surroundContents throws wrong exception (Acid3 bug)
51148         http://bugs.webkit.org/show_bug.cgi?id=16749
51149         
51150         Throw BAD_BOUNDARYPOINTS_ERR if attempting to split a non-text node that
51151         has offsets in characters.
51152
51153         * dom/Range.cpp:
51154         (WebCore::Range::surroundContents):
51155
51156 2008-02-10  Darin Adler  <darin@apple.com>
51157
51158         Reviewed by Eric.
51159
51160         - http://bugs.webkit.org/show_bug.cgi?id=17256
51161           Make clients of RefCounted explicitly set the count to 0.
51162
51163         * bindings/js/JSSVGPODTypeWrapper.h:
51164         (WebCore::JSSVGPODTypeWrapper::JSSVGPODTypeWrapper):
51165         * css/CSSFontFace.h:
51166         (WebCore::CSSFontFace::CSSFontFace):
51167         * css/CSSRuleList.cpp:
51168         (WebCore::CSSRuleList::CSSRuleList):
51169         * css/CSSSegmentedFontFace.cpp:
51170         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
51171         * css/Counter.h:
51172         (WebCore::Counter::Counter):
51173         * css/Pair.h:
51174         (WebCore::Pair::Pair):
51175         * css/Rect.h:
51176         (WebCore::Rect::Rect):
51177         * css/StyleBase.h:
51178         (WebCore::StyleBase::StyleBase):
51179         * css/StyleSheetList.cpp:
51180         (WebCore::StyleSheetList::StyleSheetList):
51181         * dom/Attr.cpp:
51182         (WebCore::Attr::Attr):
51183         * dom/Attr.h:
51184         * dom/Attribute.h:
51185         (WebCore::Attribute::Attribute):
51186         * dom/Clipboard.cpp:
51187         (WebCore::Clipboard::Clipboard):
51188         * dom/DOMImplementation.h:
51189         (WebCore::DOMImplementation::DOMImplementation):
51190         * dom/Event.cpp:
51191         (WebCore::Event::Event):
51192         * dom/EventListener.h:
51193         (WebCore::EventListener::EventListener):
51194         * dom/ExceptionBase.cpp:
51195         (WebCore::ExceptionBase::ExceptionBase):
51196         * dom/NamedAttrMap.h:
51197         (WebCore::NamedAttrMap::insertAttribute):
51198         * dom/NamedNodeMap.h:
51199         (WebCore::NamedNodeMap::NamedNodeMap):
51200         * dom/NodeFilter.h:
51201         (WebCore::NodeFilter::NodeFilter):
51202         * dom/NodeFilterCondition.h:
51203         (WebCore::NodeFilterCondition::NodeFilterCondition):
51204         * dom/NodeList.h:
51205         (WebCore::NodeList::NodeList):
51206         * dom/QualifiedName.h:
51207         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
51208         (WebCore::QualifiedName::ref):
51209         * dom/Range.cpp:
51210         (WebCore::Range::Range):
51211         * dom/RegisteredEventListener.cpp:
51212         (WebCore::RegisteredEventListener::RegisteredEventListener):
51213         * dom/StyledElement.h:
51214         * dom/Traversal.cpp:
51215         (WebCore::Traversal::Traversal):
51216         * editing/EditCommand.cpp:
51217         (WebCore::EditCommand::EditCommand):
51218         * history/BackForwardList.cpp:
51219         (WebCore::BackForwardList::BackForwardList):
51220         * history/CachedPage.cpp:
51221         (WebCore::CachedPage::CachedPage):
51222         * history/HistoryItem.cpp:
51223         (WebCore::HistoryItem::HistoryItem):
51224         * html/CanvasGradient.cpp:
51225         (WebCore::CanvasGradient::CanvasGradient):
51226         * html/CanvasPattern.cpp:
51227         (WebCore::CanvasPattern::CanvasPattern):
51228         * html/CanvasRenderingContext2D.cpp:
51229         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
51230         * html/CanvasStyle.cpp:
51231         (WebCore::CanvasStyle::CanvasStyle):
51232         * html/HTMLCollection.cpp:
51233         (WebCore::HTMLCollection::HTMLCollection):
51234         * html/MediaError.h:
51235         (WebCore::MediaError::MediaError):
51236         * html/TimeRanges.cpp:
51237         (TimeRanges::TimeRanges):
51238         * html/TimeRanges.h:
51239         (WebCore::TimeRanges::TimeRanges):
51240         * html/VoidCallback.h:
51241         (WebCore::VoidCallback::VoidCallback):
51242         * loader/DocumentLoader.cpp:
51243         (WebCore::DocumentLoader::DocumentLoader):
51244         * loader/FormState.cpp:
51245         (WebCore::FormState::FormState):
51246         * loader/ResourceLoader.cpp:
51247         (WebCore::ResourceLoader::ResourceLoader):
51248         * loader/TextResourceDecoder.cpp:
51249         (WebCore::TextResourceDecoder::TextResourceDecoder):
51250         * loader/icon/IconRecord.cpp:
51251         (WebCore::IconRecord::IconRecord):
51252         * page/BarInfo.cpp:
51253         (WebCore::BarInfo::BarInfo):
51254         * page/Console.cpp:
51255         (WebCore::Console::Console):
51256         * page/DOMSelection.cpp:
51257         (WebCore::DOMSelection::DOMSelection):
51258         * page/DOMWindow.cpp:
51259         (WebCore::DOMWindow::DOMWindow):
51260         * page/Frame.cpp:
51261         (WebCore::Frame::Frame):
51262         * page/History.cpp:
51263         (WebCore::History::History):
51264         * page/InspectorController.cpp:
51265         (WebCore::InspectorResource::InspectorResource):
51266         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
51267         * page/Plugin.h:
51268         (WebCore::Plugin::Plugin):
51269         * page/Screen.cpp:
51270         (WebCore::Screen::Screen):
51271         * platform/ArrayImpl.cpp:
51272         (WebCore::ArrayImpl::ArrayPrivate::ArrayPrivate):
51273         * platform/DeprecatedValueListImpl.cpp:
51274         (WebCore::DeprecatedValueListImpl::Private::Private):
51275         * platform/ScrollBar.cpp:
51276         (WebCore::Scrollbar::Scrollbar):
51277         * platform/SharedBuffer.cpp:
51278         (WebCore::SharedBuffer::SharedBuffer):
51279         * platform/graphics/FontFallbackList.cpp:
51280         (WebCore::FontFallbackList::FontFallbackList):
51281         * platform/graphics/FontFamily.cpp:
51282         (WebCore::FontFamily::FontFamily):
51283         * platform/graphics/FontFamily.h:
51284         (WebCore::FontFamily::FontFamily):
51285         * platform/graphics/FontSelector.h:
51286         (WebCore::FontSelector::FontSelector):
51287         (WebCore::FontSelector::~FontSelector):
51288         * platform/graphics/GlyphPageTreeNode.h:
51289         (WebCore::GlyphPage::GlyphPage):
51290         * platform/graphics/mac/IconMac.mm:
51291         (WebCore::Icon::Icon):
51292         * platform/mac/FileChooserMac.mm:
51293         (WebCore::FileChooser::FileChooser):
51294         * platform/mac/PopupMenuMac.mm:
51295         (WebCore::PopupMenu::PopupMenu):
51296         * platform/mac/SharedBufferMac.mm:
51297         (WebCore::SharedBuffer::SharedBuffer):
51298         * platform/network/FormData.cpp:
51299         (WebCore::FormData::FormData):
51300         * platform/network/FormData.h:
51301         (WebCore::FormData::FormData):
51302         * platform/network/ResourceHandle.cpp:
51303         (WebCore::ResourceHandle::ResourceHandle):
51304         * platform/text/CString.h:
51305         (WebCore::CStringBuffer::CStringBuffer):
51306         * platform/text/RegularExpression.cpp:
51307         (WebCore::RegularExpression::Private::Private):
51308         * rendering/RenderStyle.cpp:
51309         (WebCore::StyleSurroundData::StyleSurroundData):
51310         (WebCore::StyleBoxData::StyleBoxData):
51311         (WebCore::StyleVisualData::StyleVisualData):
51312         (WebCore::StyleBackgroundData::StyleBackgroundData):
51313         (WebCore::StyleMarqueeData::StyleMarqueeData):
51314         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
51315         (WebCore::StyleMultiColData::StyleMultiColData):
51316         (WebCore::StyleTransformData::StyleTransformData):
51317         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
51318         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
51319         (WebCore::StyleInheritedData::StyleInheritedData):
51320         * rendering/RenderStyle.h:
51321         (WebCore::TransformOperation::TransformOperation):
51322         (WebCore::CursorList::CursorList):
51323         * rendering/SVGCharacterLayoutInfo.h:
51324         (WebCore::SVGCharOnPath::SVGCharOnPath):
51325         * rendering/SVGRenderStyle.cpp:
51326         (WebCore::SVGRenderStyle::SVGRenderStyle):
51327         * rendering/SVGRenderStyle.h:
51328         (WebCore::SVGRenderStyle::SVGRenderStyle):
51329         * rendering/SVGRenderStyleDefs.cpp:
51330         (StyleFillData::StyleFillData):
51331         (StyleStrokeData::StyleStrokeData):
51332         (StyleStopData::StyleStopData):
51333         (StyleTextData::StyleTextData):
51334         (StyleClipData::StyleClipData):
51335         (StyleMaskData::StyleMaskData):
51336         (StyleMarkerData::StyleMarkerData):
51337         (StyleMiscData::StyleMiscData):
51338         * storage/SQLResultSetRowList.h:
51339         (WebCore::SQLResultSetRowList::SQLResultSetRowList):
51340         * svg/SVGAngle.cpp:
51341         (WebCore::SVGAngle::SVGAngle):
51342         * svg/SVGAnimatedTemplate.h:
51343         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
51344         * svg/SVGElementInstanceList.cpp:
51345         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
51346         * svg/SVGList.h:
51347         (WebCore::SVGList::SVGList):
51348         (WebCore::SVGPODListItem::SVGPODListItem):
51349         * svg/SVGPathSeg.h:
51350         (WebCore::SVGPathSeg::SVGPathSeg):
51351         * svg/SVGPreserveAspectRatio.cpp:
51352         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
51353         * svg/SVGRenderingIntent.h:
51354         (WebCore::SVGRenderingIntent::SVGRenderingIntent):
51355         * svg/SVGUnitTypes.h:
51356         (WebCore::SVGUnitTypes::SVGUnitTypes):
51357         * svg/graphics/SVGPaintServerGradient.h:
51358         (WebCore::SVGPaintServerGradient::SharedStopCache::SharedStopCache):
51359         * svg/graphics/SVGResource.cpp:
51360         (WebCore::SVGResource::SVGResource):
51361         * xml/DOMParser.h:
51362         (WebCore::DOMParser::DOMParser):
51363         * xml/XMLHttpRequest.cpp:
51364         (WebCore::XMLHttpRequest::XMLHttpRequest):
51365         * xml/XMLSerializer.h:
51366         (WebCore::XMLSerializer::XMLSerializer):
51367         * xml/XPathEvaluator.h:
51368         (WebCore::XPathEvaluator::XPathEvaluator):
51369         * xml/XPathExpression.h:
51370         (WebCore::XPathExpression::XPathExpression):
51371         * xml/XPathNSResolver.h:
51372         (WebCore::XPathNSResolver::XPathNSResolver):
51373         * xml/XPathResult.cpp:
51374         (WebCore::XPathResult::XPathResult):
51375         * xml/XPathValue.h:
51376         (WebCore::XPath::ValueData::ValueData):
51377         * xml/XSLTProcessor.h:
51378         (WebCore::XSLTProcessor::XSLTProcessor):
51379
51380 2008-02-09  Kevin Ollivier  <kevino@theolliviers.com>
51381
51382         Reviewed by Eric Seidel.
51383
51384         Calling select() when all the file descriptors are NULL
51385         stops the file download on Windows. As a result, do not
51386         call select() when there are no valid descriptors.
51387
51388         http://bugs.webkit.org/show_bug.cgi?id=17178
51389
51390         * platform/network/curl/ResourceHandleManager.cpp:
51391         (WebCore::ResourceHandleManager::downloadTimerCallback):
51392
51393 2008-02-09  Dan Bernstein  <mitz@apple.com>
51394
51395         Reviewed by Sam Weinig.
51396
51397         - fix http://bugs.webkit.org/show_bug.cgi?id=17259
51398           Element::recalcStyle() needlessly null-checks the result of styleForElement()
51399
51400         * dom/Element.cpp:
51401         (WebCore::Element::recalcStyle): Removed unneeded null checks.
51402         styleForElement() can never return null.
51403
51404 2008-02-09  David Hyatt  <hyatt@apple.com>
51405
51406         Fix for bug 17254, nth-* selectors do not work with negative coefficients.
51407
51408         Reviewed by Mitz.
51409
51410         fast/css/negative-nth-child.html
51411
51412         * css/CSSStyleSelector.cpp:
51413         (WebCore::parseNth):
51414
51415 2008-02-09  David Hyatt  <hyatt@apple.com>
51416
51417         Fix for bug 17203, high CPU usage loading HTML5 spec.  This patch significantly improves the performance
51418         of CSS3 selectors.
51419
51420         (1) Split the notion of being affected by positional rules into "forward" and "backward."  The "forward"
51421         selectors do not need to re-resolve during parsing, since children are appended on the end.  Only the
51422         "backward" selectors like last-child or nth-last-child have to re-resolve when a close tag is encountered.
51423
51424         (2) Extend childrenChanged to specify whether the children were changed by the parser or not.  This allows
51425         Element::childrenChanged to know when the parser is adding children so that it can ignore those adds when
51426         possible.
51427
51428         (3) Make sure all Elements now know whether or not their children are currently parsing.  Backwards selectors
51429         like last-child will always return false when children are still being parsed.  When an Element finishes
51430         parsing its children, finishParsingChildren() gets called and will make sure the children re-resolve properly.
51431
51432         (4) Added a beginParsingChildren method and renamed finishParsing to finishedParsingChildren.
51433
51434         (5) Eliminated one-off hacks that did the same thing in HTMLObjectElement and HTMLAppletElement.
51435
51436         (6) Patched many incorrect implementations of finishedParsingChildren that did not properly call into their
51437         base class (mostly new SVG elements that got added for SVG fonts around the time this became a requirement).
51438
51439         Reviewed by Eric
51440
51441         * css/CSSStyleSelector.cpp:
51442         (WebCore::CSSStyleSelector::checkSelector):
51443         (WebCore::CSSStyleSelector::checkOneSelector):
51444         * dom/Attr.cpp:
51445         (WebCore::Attr::childrenChanged):
51446         * dom/Attr.h:
51447         * dom/ContainerNode.cpp:
51448         (WebCore::ContainerNode::addChild):
51449         * dom/Document.cpp:
51450         (WebCore::Document::childrenChanged):
51451         * dom/Document.h:
51452         * dom/Element.cpp:
51453         (WebCore::Element::Element):
51454         (WebCore::Element::recalcStyle):
51455         (WebCore::checkFirstChildRules):
51456         (WebCore::checkLastChildRules):
51457         (WebCore::checkEmptyRules):
51458         (WebCore::checkStyleRules):
51459         (WebCore::Element::childrenChanged):
51460         (WebCore::Element::finishParsingChildren):
51461         * dom/Element.h:
51462         (WebCore::Element::finishedParsingChildren):
51463         (WebCore::Element::beginParsingChildren):
51464         * dom/Node.cpp:
51465         * dom/Node.h:
51466         (WebCore::Node::finishParsingChildren):
51467         (WebCore::Node::beginParsingChildren):
51468         (WebCore::Node::childrenChanged):
51469         * dom/StyledElement.cpp:
51470         (WebCore::StyledElement::StyledElement):
51471         * dom/StyledElement.h:
51472         * dom/XMLTokenizer.cpp:
51473         (WebCore::XMLTokenizer::startElementNs):
51474         (WebCore::XMLTokenizer::endElementNs):
51475         * html/HTMLAppletElement.cpp:
51476         (WebCore::HTMLAppletElement::HTMLAppletElement):
51477         (WebCore::HTMLAppletElement::finishParsingChildren):
51478         * html/HTMLAppletElement.h:
51479         * html/HTMLElementFactory.cpp:
51480         (WebCore::objectConstructor):
51481         * html/HTMLGenericFormElement.cpp:
51482         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
51483         * html/HTMLGenericFormElement.h:
51484         * html/HTMLObjectElement.cpp:
51485         (WebCore::HTMLObjectElement::HTMLObjectElement):
51486         (WebCore::HTMLObjectElement::finishParsingChildren):
51487         (WebCore::HTMLObjectElement::childrenChanged):
51488         * html/HTMLObjectElement.h:
51489         * html/HTMLOptGroupElement.cpp:
51490         (WebCore::HTMLOptGroupElement::childrenChanged):
51491         * html/HTMLOptGroupElement.h:
51492         * html/HTMLOptionElement.cpp:
51493         (WebCore::HTMLOptionElement::childrenChanged):
51494         * html/HTMLOptionElement.h:
51495         * html/HTMLParser.cpp:
51496         (WebCore::HTMLParser::insertNode):
51497         (WebCore::HTMLParser::pushBlock):
51498         (WebCore::HTMLParser::popOneBlockCommon):
51499         * html/HTMLScriptElement.cpp:
51500         (WebCore::HTMLScriptElement::childrenChanged):
51501         (WebCore::HTMLScriptElement::finishParsingChildren):
51502         * html/HTMLScriptElement.h:
51503         * html/HTMLSelectElement.cpp:
51504         (WebCore::HTMLSelectElement::childrenChanged):
51505         * html/HTMLSelectElement.h:
51506         * html/HTMLStyleElement.cpp:
51507         (WebCore::HTMLStyleElement::finishParsingChildren):
51508         (WebCore::HTMLStyleElement::childrenChanged):
51509         * html/HTMLStyleElement.h:
51510         * html/HTMLTextAreaElement.cpp:
51511         (WebCore::HTMLTextAreaElement::childrenChanged):
51512         * html/HTMLTextAreaElement.h:
51513         * html/HTMLTitleElement.cpp:
51514         (WebCore::HTMLTitleElement::childrenChanged):
51515         * html/HTMLTitleElement.h:
51516          * rendering/RenderApplet.cpp:
51517         (WebCore::RenderApplet::createWidgetIfNecessary):
51518         * rendering/RenderPartObject.cpp:
51519         (WebCore::RenderPartObject::updateWidget):
51520         * rendering/RenderStyle.cpp:
51521         (WebCore::RenderStyle::RenderStyle):
51522         * rendering/RenderStyle.h:
51523         (WebCore::RenderStyle::childrenAffectedByForwardPositionalRules):
51524         (WebCore::RenderStyle::setChildrenAffectedByForwardPositionalRules):
51525         (WebCore::RenderStyle::childrenAffectedByBackwardPositionalRules):
51526         (WebCore::RenderStyle::setChildrenAffectedByBackwardPositionalRules):
51527         * svg/SVGAnimationElement.cpp:
51528         (WebCore::SVGAnimationElement::finishParsingChildren):
51529         * svg/SVGAnimationElement.h:
51530         * svg/SVGClipPathElement.cpp:
51531         (WebCore::SVGClipPathElement::childrenChanged):
51532         * svg/SVGClipPathElement.h:
51533         * svg/SVGDefinitionSrcElement.cpp:
51534         (WebCore::SVGDefinitionSrcElement::childrenChanged):
51535         * svg/SVGDefinitionSrcElement.h:
51536         * svg/SVGElement.cpp:
51537         (WebCore::SVGElement::finishParsingChildren):
51538         * svg/SVGElement.h:
51539         * svg/SVGFontFaceElement.cpp:
51540         (WebCore::SVGFontFaceElement::childrenChanged):
51541         * svg/SVGFontFaceElement.h:
51542         * svg/SVGFontFaceFormatElement.cpp:
51543         (WebCore::SVGFontFaceFormatElement::childrenChanged):
51544         * svg/SVGFontFaceFormatElement.h:
51545         * svg/SVGFontFaceSrcElement.cpp:
51546         (WebCore::SVGFontFaceSrcElement::childrenChanged):
51547         * svg/SVGFontFaceSrcElement.h:
51548         * svg/SVGFontFaceUriElement.cpp:
51549         (WebCore::SVGFontFaceUriElement::childrenChanged):
51550         * svg/SVGFontFaceUriElement.h:
51551         * svg/SVGGElement.cpp:
51552         (WebCore::SVGGElement::childrenChanged):
51553         * svg/SVGGElement.h:
51554         * svg/SVGGradientElement.cpp:
51555         (WebCore::SVGGradientElement::childrenChanged):
51556         * svg/SVGGradientElement.h:
51557         * svg/SVGMarkerElement.cpp:
51558         (WebCore::SVGMarkerElement::childrenChanged):
51559         * svg/SVGMarkerElement.h:
51560         * svg/SVGMaskElement.cpp:
51561         (WebCore::SVGMaskElement::childrenChanged):
51562         * svg/SVGMaskElement.h:
51563         * svg/SVGPatternElement.cpp:
51564         (WebCore::SVGPatternElement::childrenChanged):
51565         * svg/SVGPatternElement.h:
51566         * svg/SVGStyleElement.cpp:
51567         (WebCore::SVGStyleElement::finishParsingChildren):
51568         (WebCore::SVGStyleElement::childrenChanged):
51569         * svg/SVGStyleElement.h:
51570         * svg/SVGStyledElement.cpp:
51571         (WebCore::SVGStyledElement::childrenChanged):
51572         * svg/SVGStyledElement.h:
51573         * svg/SVGTitleElement.cpp:
51574         (WebCore::SVGTitleElement::childrenChanged):
51575         * svg/SVGTitleElement.h:
51576         * svg/SVGUseElement.cpp:
51577         (WebCore::SVGUseElement::childrenChanged):
51578         * svg/SVGUseElement.h:
51579         
51580 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
51581
51582         Unreviewed build fix
51583
51584         Somehow the removal of adjustSliderThumbSize(RenderObject*) sneaked
51585         into the patch.
51586
51587         * platform/qt/RenderThemeQt.h:
51588
51589 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
51590
51591         Reviewed by Adele.
51592
51593         paintResizeControl is dead, remove the code. This painting
51594         is done by the RenderLayer.
51595
51596         * platform/qt/RenderThemeQt.cpp:
51597         * platform/qt/RenderThemeQt.h:
51598         * rendering/RenderThemeMac.h:
51599         * rendering/RenderThemeMac.mm:
51600
51601 2008-02-07  Kevin Ollivier <kevino@theolliviers.com>
51602
51603         Reviewed by Eric Seidel, Adam Roben.
51604
51605         MSVC7 fixes.
51606         http://bugs.webkit.org/show_bug.cgi?id=17211
51607
51608         * platform/Threading.h:
51609         - On MSVC7, when the Interlocked* functions are used, the ref count gets out of sync.
51610           (MSVC8 seems not to have this problem.) Use the old implementation which works correctly.
51611         * platform/win/SharedTimerWin.cpp:
51612         - USER_TIMER_MINIMUM/MAXIMUM aren't defined in winuser.h for the MSVC 2003 Platform SDK
51613           so define them if they are not already defined.
51614
51615 2008-02-08  Brent Fulgham  <bfulgham@gmail.com>
51616
51617         Reviewed by Adam Roben.
51618
51619         Bug 17226: Fix Windows (Cairo) build of image-decoders
51620         http://bugs.webkit.org/show_bug.cgi?id=17226
51621
51622         * platform/image-decoders/gif/GIFImageDecoder.cpp:
51623         * platform/image-decoders/png/PNGImageDecoder.cpp:
51624
51625 2008-02-08  Timothy Hatcher  <timothy@apple.com>
51626
51627         Reviewed by Brady Eidson.
51628
51629         <rdar://problem/5640896> Removing database then trying
51630         to recreate it causes trouble
51631
51632         Added open Database support to DatabaseTracker. So any Database that 
51633         is deleted will be marked as deleted and will fail to open any transaction
51634         or execute any new SQL queries.
51635
51636         * storage/Database.cpp:
51637         (WebCore::Database::Database): Call DatabaseTracker::addOpenDatabase.
51638         (WebCore::Database::~Database): Call DatabaseTracker::removeOpenDatabase.
51639         (WebCore::Database::markAsDeleted): Set the m_deleted flag.
51640         (WebCore::Database::version): Return a null String if m_deleted is true.
51641         * storage/Database.h:
51642         (WebCore::Database::deleted): Return m_deleted.
51643         * storage/DatabaseTracker.cpp:
51644         (WebCore::DatabaseTracker::addOpenDatabase): Add the Database to a map of origins and names.
51645         (WebCore::DatabaseTracker::removeOpenDatabase): Remove the Database from the map.
51646         (WebCore::DatabaseTracker::deleteDatabaseFile): Call markAsDeleted on all the open Databases
51647           matching the origin/name.
51648         * storage/DatabaseTracker.h:
51649         * storage/SQLStatement.cpp:
51650         (WebCore::SQLStatement::setDatabaseDeletedError): Set the error about the user deleting the database.
51651         * storage/SQLStatement.h:
51652         * storage/SQLTransaction.cpp:
51653         (WebCore::SQLTransaction::executeSQL): If the Database is deleted, call setDatabaseDeletedError.
51654         (WebCore::SQLTransaction::openTransactionAndPreflight): Set the error about the user deleting the database
51655           if the Database was marked as deleted.
51656
51657 2008-02-08  Darin Adler  <darin@apple.com>
51658
51659         Reviewed by Eric.
51660
51661         - fix http://bugs.webkit.org/show_bug.cgi?id=15003
51662           Function.prototype.constructor should not be DontDelete/ReadOnly (Acid3 bug)
51663
51664         Test: fast/js/constructor-attributes.html
51665
51666         * bindings/scripts/CodeGeneratorJS.pm: Remove unwanted attributes from "constructor".
51667
51668 2008-02-08  Anders Carlsson  <andersca@apple.com>
51669
51670         Reviewed by Mitz.
51671
51672         <rdar://problem/5650446>
51673         http://bugs.webkit.org/show_bug.cgi?id=16102
51674         Crash in FrameLoader::stopLoadingSubframes() on IMDB page
51675
51676         Store the child frame in a RefPtr to prevent it from being deleted when the
51677         frame tree changes while calling stopAllLoaders().
51678         
51679         * loader/FrameLoader.cpp:
51680         (WebCore::FrameLoader::stopLoadingSubframes):
51681
51682 2008-02-08  Kevin Ollivier  <kevino@theolliviers.com>
51683
51684         wx port build fix. Add time.h to define time_t.
51685
51686         * platform/FileSystem.h:
51687
51688 2008-02-08  Alp Toker  <alp@atoker.com>
51689
51690         Reviewed by Adam Roben.
51691
51692         Avoid null-dereference crasher noticed in the GTK+ port and also
51693         affecting the Win debug build.
51694
51695         Covered by existing tests.
51696
51697         * dom/Document.cpp:
51698         (WebCore::Document::userStyleSheet):
51699
51700 2008-02-08  Anders Carlsson  <andersca@apple.com>
51701
51702         Reviewed by Adam.
51703
51704         <rdar://problem/5724188> 
51705         REGRESSION: PLT 0.7% slower due to 29926 (change Text::createWithLengthLimit to take a UChar pointer)
51706         
51707         Revert r29926 which caused the regression.
51708         
51709         * dom/Text.cpp:
51710         (WebCore::Text::createWithLengthLimit):
51711         * dom/Text.h:
51712         * html/HTMLParser.cpp:
51713         (WebCore::HTMLParser::parseToken):
51714         * loader/TextDocument.cpp:
51715         (WebCore::TextTokenizer::write):
51716
51717 2008-02-08  Sam Weinig  <sam@webkit.org>
51718
51719         Reviewed by Hyatt.
51720
51721         Fix for <rdar://problem/5732491>
51722         http://bugs.webkit.org/show_bug.cgi?id=17213
51723         The querySelectorAll method on an element node does not search only the element's descendants
51724
51725         Test: fast/dom/SelectorAPI/elementRoot.html
51726
51727         * dom/Node.cpp:
51728         (WebCore::Node::querySelector): Make sure to stay within the root node when traversing the tree.
51729         * dom/SelectorNodeList.cpp:
51730         (WebCore::SelectorNodeList::SelectorNodeList): ditto.
51731
51732
51733
51734 2008-02-08  David Hyatt  <hyatt@apple.com>
51735
51736         Fix for bug 16798, button should default to type=submit.
51737
51738         Reviewed by darin
51739
51740         * html/HTMLButtonElement.cpp:
51741         (WebCore::HTMLButtonElement::type):
51742         (WebCore::HTMLButtonElement::parseMappedAttribute):
51743
51744 2008-02-08  Rodney Dawes  <dobey@wayofthemonkey.com>
51745
51746         Reviewed by Jon Honeycutt.
51747
51748         Redefine some platform-specific types as cross-platform types
51749         Add pathGetFileName method to get the filename from a path string
51750         Add unloadModule method to unload a loadable module from the process
51751         Implement new methods for GTK+ and Windows
51752         Implement missing homeDirectoryPath method for GTK+
51753         Add stub methods for new and missing methods for Wx and Qt
51754
51755         * platform/FileSystem.h:
51756         * platform/gtk/FileSystemGtk.cpp:
51757         * platform/qt/FileSystemQt.cpp:
51758         * platform/win/FileSystemWin.cpp:
51759         * platform/wx/FileSystemWx.cpp:
51760
51761 2008-02-08  Adam Roben  <aroben@apple.com>
51762
51763         Windows build fix after r30088
51764
51765         * bindings/scripts/CodeGeneratorCOM.pm: Touch this to force the COM
51766         bindings to rebuild.
51767
51768 2008-02-08  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
51769
51770         Reviewed by Alp Toker.
51771
51772         http://bugs.webkit.org/show_bug.cgi?id=17009
51773         [Gtk] Webkit strips accents from some dead-key combinations
51774
51775         KeyEvents have to go through the gtk input method.
51776
51777         Also implement the isKeypad check and make disambiguateKeyDownEvent
51778         behave more like other ports.
51779
51780         * platform/PlatformKeyboardEvent.h:
51781         * platform/gtk/KeyEventGtk.cpp:
51782         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
51783         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
51784         (WebCore::PlatformKeyboardEvent::gdkEventKey):
51785
51786 2008-02-08  Darin Adler  <darin@apple.com>
51787
51788         Reviewed by Eric.
51789
51790         - fix http://bugs.webkit.org/show_bug.cgi?id=3492
51791           TreeWalker implementation needs to be fixed (affects Acid3)
51792         - fix http://bugs.webkit.org/show_bug.cgi?id=4714
51793           NodeIterator does not handle exceptions from the filter function (affects Acid3)
51794         - fix http://bugs.webkit.org/show_bug.cgi?id=4716
51795           NodeIterator will crash if the filter function removes the current node from the document
51796
51797         Test: traversal/exception-forwarding.html
51798
51799         This turned into a near-rewrite of NodeIterator and TreeWalker.
51800
51801         * bindings/js/JSNodeFilterCondition.h:
51802         * bindings/js/JSNodeFilterCondition.cpp:
51803         (WebCore::takeException): Added.
51804         (WebCore::JSNodeFilterCondition::acceptNode): Added an out parameter to return
51805         a JavaScript exception.
51806
51807         * bindings/js/JSNodeFilterCustom.cpp:
51808         (WebCore::JSNodeFilter::acceptNode): Wrote a custom binding for this that raises
51809         a JavaScript exception if the out parameter is set.
51810
51811         * bindings/js/JSNodeIteratorCustom.cpp:
51812         (WebCore::JSNodeIterator::nextNode): Wrote a custom binding for this that raises
51813         a JavaScript exception if the out parameter is set.
51814         (WebCore::JSNodeIterator::previousNode): Ditto.
51815
51816         * bindings/js/JSTreeWalkerCustom.cpp:
51817         (WebCore::JSTreeWalker::parentNode): Wrote a custom binding for this that raises
51818         a JavaScript exception if the out parameter is set.
51819         (WebCore::JSTreeWalker::firstChild): Ditto.
51820         (WebCore::JSTreeWalker::lastChild): Ditto.
51821         (WebCore::JSTreeWalker::nextSibling): Ditto.
51822         (WebCore::JSTreeWalker::previousSibling): Ditto.
51823         (WebCore::JSTreeWalker::previousNode): Ditto.
51824         (WebCore::JSTreeWalker::nextNode): Ditto.
51825
51826         * bindings/objc/DOM.mm:
51827         (WebCore::ObjCNodeFilterCondition::acceptNode): Updated to include new exception
51828         out parameter.
51829         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
51830         Use RefPtr to make object lifetimes clearer.
51831         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
51832         Ditto.
51833
51834         * bindings/scripts/CodeGeneratorJS.pm: Added include of NodeFilter.h for
51835         JSDocument.cpp.
51836
51837         * dom/Document.h:
51838         * dom/Document.cpp:
51839         (WebCore::Document::createNodeIterator): Changed to use PassRefPtr.
51840         (WebCore::Document::createTreeWalker): Ditto.
51841
51842         * dom/NodeFilter.h:
51843         * dom/NodeFilter.cpp:
51844         (WebCore::NodeFilter::NodeFilter): Changed to use PassRefPtr.
51845         (WebCore::NodeFilter::acceptNode): Added an out parameter to return
51846         a JavaScript exception.
51847         * dom/NodeFilter.idl: Custom binding for acceptNode.
51848
51849         * dom/NodeFilterCondition.h:
51850         * dom/NodeFilterCondition.cpp:
51851         (WebCore::NodeFilterCondition::acceptNode): Added an out parameter to return
51852         a JavaScript exception.
51853
51854         * dom/NodeIterator.cpp:
51855         (WebCore::NodeIterator::NodeIterator): Changed to use PassRefPtr more.
51856         Eliminated m_doc, using the root node instead, and unnecessary check for
51857         null -- rootNode must be non-null and all nodes have a non-null document.
51858         (WebCore::NodeIterator::~NodeIterator): Changed to get document from root.
51859         (WebCore::NodeIterator::nextNode): Rewrote to use a RefPtr since the
51860         acceptNode function could do anything, including removing the last
51861         reference to the current node. Also folded findNextNode into this function
51862         since it's the only one that needs to call it.
51863         (WebCore::NodeIterator::previousNode): Same thing, but the other direction.
51864         (WebCore::NodeIterator::detach): Changed to use the root node as the indication
51865         that we're detached rather than a separate boolean.
51866         (WebCore::NodeIterator::notifyBeforeNodeRemoval): Removed some unnneeded
51867         checks. Removed incorrect use of findNextNode/findPreviousNode -- those
51868         functions call acceptNode and the DOM standard is quite clear that these
51869         functions do not take that into account, allowing the current node to become
51870         one that's not accepted.
51871
51872         * dom/NodeIterator.h: Changed constructor to use PassRefPtr more. Changed
51873         nextNode and previousNode to have an out parameter with a JavaScript exception.
51874         Removed helper functions setReferenceNode, setPointerBeforeReferenceNode,
51875         detached, setDetached, document, findNextNode, and findPreviousNode. All were
51876         unnecessary. Removed data member m_doc which was just rootNode()->document().
51877
51878         * dom/NodeIterator.idl: Custom binding for nextNode and previousNode.
51879
51880         * dom/Traversal.cpp:
51881         (WebCore::Traversal::Traversal): Use PassRefPtr more.
51882         (WebCore::Traversal::acceptNode): Added out parameter for JavaScript exception.
51883         Also rearranged the function a little bit for clarity.
51884
51885         * dom/Traversal.h: Changed acceptNode to have an out parameter with a JavaScript
51886         exception and made it protected, since it's only for use by the derived classes.
51887
51888         * dom/TreeWalker.cpp:
51889         (WebCore::TreeWalker::TreeWalker): Updated to use PassRefPtr.
51890         (WebCore::TreeWalker::setCurrentNode): Updated to use PassRefPtr and deleted
51891         the overloaded version since it's not needed.
51892         (WebCore::TreeWalker::parentNode): Rewrote to propagate the exception and also
51893         to implement rules about when to check things like whether we're in the tree.
51894         The previous fix where we called isDescendantOf was not entirely correct, because
51895         the specification allows you to walk outside the tree if you get there somehow.
51896         What it doesn't allow is walking outside the tree from inside. The new
51897         implementation handles this correctly.
51898         (WebCore::TreeWalker::firstChild): Ditto.
51899         (WebCore::TreeWalker::lastChild): Ditto.
51900         (WebCore::TreeWalker::previousSibling): Ditto.
51901         (WebCore::TreeWalker::nextSibling): Ditto.
51902         (WebCore::TreeWalker::previousNode): Ditto. Because of the need to check the
51903         acceptNode function on parents, this can't use traversePreviousNode (more's the
51904         pity, because it's a bit complicated).
51905         (WebCore::TreeWalker::nextNode): Ditto.
51906
51907         * dom/TreeWalker.h: Changed constructor and setCurrentNode to use PassRefPtr
51908         more. Changed the navigation functions to have an out parameter with a JavaScript
51909         exception. Removed helper functions setCurrentNode and ancestorRejected.
51910
51911         * dom/TreeWalker.idl: Custom binding for navigation functions.
51912
51913 2008-02-08  Eric Seidel  <eric@webkit.org>
51914
51915         Reviewed by darin.
51916
51917         Add support for Text.wholeText and Text.replaceWholeText
51918         http://bugs.webkit.org/show_bug.cgi?id=17125
51919
51920         Test EntityReferences to make sure they're always treated as read-only
51921         In doing so I discovered a bug in document.adoptNode(readonlyNode) (and fixed it)
51922
51923         * dom/Document.cpp:
51924         (WebCore::Document::adoptNode): throw NO_MODIFICATION_ALLOWED_ERR when passed a readonly node
51925         * dom/Node.cpp:
51926         * dom/Node.cpp:
51927         (WebCore::Node::textContent):
51928         * dom/Text.cpp:
51929         (WebCore::earliestLogicallyAdjacentTextNode):
51930         (WebCore::latestLogicallyAdjacentTextNode):
51931         (WebCore::Text::wholeText):
51932         (WebCore::Text::replaceWholeText):
51933         * dom/Text.h:
51934         * dom/Text.idl:
51935
51936 2008-02-06  Kimmo Kinnunen  <kimmok@iki.fi>
51937
51938         Reviewed by Tim Hatcher.
51939
51940         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17191
51941         HTML5: Client-side database queries should return values of type number
51942         Test: storage/sql-data-types.html
51943
51944         Make the DB queries return a value as a number if it was inserted
51945         as a number to the database.
51946         * platform/sql/SQLiteStatement.cpp:
51947         (WebCore::SQLiteStatement::getColumnValue): new member function to return SQLValues
51948         * platform/sql/SQLiteStatement.h:
51949         * storage/SQLStatement.cpp:
51950         (WebCore::SQLStatement::execute): use getColumnValue instead of getColumnText
51951
51952 2008-02-07  Ada Chan  <adachan@apple.com>
51953
51954         <rdar://problem/5292433> certificate authentication support broken in Safari 3.0
51955         Added mechanism to communicate client certificate info back to CFNetwork.
51956
51957         Reviewed by Adam.
51958
51959         * platform/network/ResourceHandle.h:
51960         * platform/network/cf/ResourceHandleCFNet.cpp:
51961         (WebCore::clientCerts): Keep a mapping of hosts to client certificates.
51962         (WebCore::makeFinalRequest): If we have a client certificate for the host, pass it
51963         to CFNetwork by setting it in the SSL properties.
51964         (WebCore::ResourceHandle::setClientCertificate): Map client certificate to the host.
51965
51966 2008-02-07  Adam Roben  <aroben@apple.com>
51967
51968         Qt build fix
51969
51970         * platform/SharedBuffer.cpp: Removed a stub implementation of
51971         createWithContentsOfFile, now that each platform has its own stub.
51972
51973 2008-02-07  Adam Roben  <aroben@apple.com>
51974
51975         Fix Bug 17138: REGRESSION: Node highlight not updated properly
51976
51977         <http://bugs.webkit.org/show_bug.cgi?id=17138>
51978         <rdar://problem/5719869>
51979
51980         Reviewed by Darin.
51981
51982         No test possible.
51983
51984         * page/InspectorController.cpp:
51985         (WebCore::InspectorController::drawNodeHighlight): Update the
51986         overlayRect after scrolling to make sure that we translate the context
51987         by the correct amount.
51988
51989 2008-02-07  Adam Roben  <aroben@apple.com>
51990
51991         Qt and GTK+ build fixes
51992
51993         * platform/gtk/FileSystemGtk.cpp: Added a missing #include.
51994         * platform/qt/FileSystemQt.cpp: Ditto.
51995
51996 2008-02-07  Adam Roben  <aroben@apple.com>
51997
51998         Some cleanup of Mac-only user stylesheet code
51999
52000         I moved UserStyleSheetLoader out of Frame.cpp into its own files, and
52001         moved some Mac-only Frame methods to FrameMac.mm.
52002
52003         Reviewed by Darin.
52004
52005         * WebCore.xcodeproj/project.pbxproj: Added new files to project.
52006         * loader/mac/UserStyleSheetLoader.cpp: Added.
52007         (UserStyleSheetLoader::UserStyleSheetLoader):
52008         (UserStyleSheetLoader::~UserStyleSheetLoader):
52009         * loader/mac/UserStyleSheetLoader.h: Added.
52010         * page/Frame.cpp: Removed setUserStyleSheet[Location]
52011         * page/mac/FrameMac.mm:
52012         (WebCore::Frame::setUserStyleSheetLocation): Moved here from
52013         Frame.cpp.
52014         (WebCore::Frame::setUserStyleSheet): Ditto.
52015
52016 2008-02-07  Adam Roben  <aroben@apple.com>
52017
52018         Fix <rdar://5555260> GMail never loads when a user stylesheet is
52019         specified
52020
52021         The fix in r29841 did not guarantee that the user stylesheet would not
52022         still be loading by the time GMail called document.write, and so was
52023         not a complete fix.
52024
52025         This change reworks the user stylesheet loading mechanism on non-Mac
52026         platforms to load the stylesheet synchronously from disk, and then
52027         keeps it in memory. This obsoletes the issue of what our behavior
52028         should be before the user stylesheet has loaded and what should happen
52029         when it finishes loading, as the user stylesheet will always be
52030         available when the Document first asks for it. Note, however, that
52031         this removes the ability to specify a non-file: URL for the user
52032         stylesheet. This change was not made for the Mac platform because it's
52033         possible that WebKit clients are relying on non-file: URLs for user
52034         stylesheets. It would also be nice to move back to an asynchronous
52035         loading model someday, but that is not currently possible since we
52036         don't have an asynchronous loading mechanism that is not tied to a
52037         particular Frame.
52038
52039         The responsibility of loading and storing the user stylesheet has
52040         moved from Frame to Page, since the user stylesheet URL is set on the
52041         Page-level Settings object.
52042
52043         Reviewed by Darin.
52044
52045         * dom/Document.cpp:
52046         (WebCore::Document::Document): Changed to call userStyleSheet().
52047         (WebCore::Document::setUserStyleSheet): Made Mac-only.
52048         (WebCore::Document::userStyleSheet): Changed to call up to Page on
52049         non-Mac platforms.
52050         (WebCore::Document::recalcStyleSelector): Changed to call
52051         userStyleSheet().
52052         * dom/Document.h:
52053             - Made setUserStyleSheet and the m_usersheet member Mac-only
52054             - Changed userStyleSheet to return a String instance instead of a
52055               String reference, since we now might return a new null String.
52056         * loader/FrameLoader.cpp:
52057         (WebCore::FrameLoader::begin): Made the call to
52058         Frame::setUserStyleSheetLocation Mac-only.
52059         * page/Frame.cpp: Made UserStyleSheetLoader and related code Mac-only.
52060         (WebCore::Frame::~Frame): Ditto.
52061         (WebCore::Frame::reapplyStyles): Made the call to
52062         setUserStyleSheet[Location] Mac-only. On non-Mac platforms the
52063         Document will pick up the new stylesheet in Document::reapplyStyles.
52064         (WebCore::FramePrivate::FramePrivate): Made m_userStyleSheetLoader
52065         Mac-only.
52066         * page/Frame.h: Made setUserStyleSheet[Location] Mac-only.
52067         * page/FramePrivate.h: Made m_userStyleSheetLoader Mac-only.
52068         * page/Page.cpp:
52069         (WebCore::Page::Page): Initialize new members.
52070         (WebCore::Page::userStyleSheetLocationChanged): Added. Does nothing on
52071         Mac. On non-Mac, resets all members relating to the user stylesheet so
52072         we'll know to load it again the next time it's asked for.
52073         (WebCore::Page::userStyleSheet): Added. Loads the user stylesheet if
52074         the user stylesheet location has changed since the last time we loaded
52075         it, or if the file has been modified since we last loaded it, then
52076         returns the contents of the user stylesheet as a String.
52077         * page/Page.h: Added new methods/members.
52078         * page/Settings.cpp:
52079         (WebCore::Settings::setUserStyleSheetLocation): Changed to call
52080         Page::userStyleSheetLocationChanged.
52081         * page/Settings.h: Changed userStyleSheetLocation to return the KURL
52082         by reference instead of making a copy.
52083         * platform/FileSystem.h: Added declaration for getFileModificationTime.
52084         * platform/KURL.h: Added declaration for fileSystemPath method.
52085         * platform/cf/KURLCFNet.cpp:
52086         (WebCore::KURL::fileSystemPath): Added.
52087         * platform/posix/FileSystemPOSIX.cpp:
52088         (WebCore::getFileModificationTime): Added.
52089         * platform/qt/KURLQt.cpp:
52090         (WebCore::KURL::fileSystemPath): Stubbed out.
52091         * platform/win/FileSystemWin.cpp:
52092         (WebCore::getFileModificationTime): Added.
52093         * platform/qt/FileSystemQt.cpp: Stubbed out getFileModificationTime.
52094         * platform/gtk/FileSystemGtk.cpp: Ditto.
52095         * platform/wx/FileSystemWx.cpp: Ditto.
52096         * platform/qt/TemporaryLinkStubs.cpp: Stubbed out
52097         SharedBuffer::createWithContentsOfFile.
52098         * platform/gtk/TemporaryLinkStubs.cpp: Ditto, along with
52099         KURL::fileSystemPath.
52100         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
52101
52102 2008-02-07  Adam Roben  <aroben@apple.com>
52103
52104         Clean up FileSystemWin.cpp
52105
52106         This cleanup also makes us call _wstat64 instead of _wstat32i64. The
52107         only difference between these two functions is that _wstat64 gives
52108         64-bit time values, while _wstat32i64 only gives 32-bit time values.
52109
52110         Reviewed by Darin.
52111
52112         All tests pass.
52113
52114         * platform/win/FileSystemWin.cpp:
52115         (WebCore::statFile): New static helper that wraps _wstat64.
52116         (WebCore::getFileSize): Changed to call statFile.
52117         (WebCore::fileExists): Ditto.
52118
52119 2008-02-07  Adam Roben  <aroben@apple.com>
52120
52121         Rename fileSize to getFileSize
52122
52123         Rubberstamped by Darin.
52124
52125         * platform/FileSystem.h:
52126         * platform/gtk/FileSystemGtk.cpp:
52127         * platform/network/cf/FormDataStreamCFNet.cpp:
52128         (WebCore::setHTTPBody):
52129         * platform/network/curl/ResourceHandleManager.cpp:
52130         (WebCore::ResourceHandleManager::setupPOST):
52131         * platform/posix/FileSystemPOSIX.cpp:
52132         * platform/qt/FileSystemQt.cpp:
52133         * platform/win/FileSystemWin.cpp:
52134         * platform/wx/FileSystemWx.cpp:
52135         * storage/Database.cpp:
52136         (WebCore::Database::databaseSize):
52137         * storage/DatabaseTracker.cpp:
52138         (WebCore::DatabaseTracker::usageForDatabase):
52139         * storage/OriginUsageRecord.cpp:
52140         (WebCore::OriginUsageRecord::diskUsage):
52141
52142 2008-02-06  Adam Roben  <aroben@apple.com>
52143
52144         Make KURL::isLocalFile treat the URL's protocol case-insensitively
52145
52146         Reviewed by Darin.
52147
52148         * platform/KURL.cpp:
52149         (WebCore::KURL::isLocalFile): Use equalIgnoringCase instead of ==.
52150
52151 2008-02-07  David Hyatt  <hyatt@apple.com>
52152
52153         Fix for bug 6248, implement the nth-* CSS3 selectors.  Patch based on original KHTML work from Allan Jensen
52154         and improved upon by Nick Shanks.
52155
52156         Reviewed by Eric
52157
52158         * css/CSSGrammar.y:
52159         * css/CSSParser.cpp:
52160         (WebCore::CSSParser::lex):
52161         * css/CSSSelector.cpp:
52162         (WebCore::CSSSelector::extractPseudoType):
52163         * css/CSSSelector.h:
52164         (WebCore::CSSSelector::):
52165         * css/CSSStyleSelector.cpp:
52166         (WebCore::parseNth):
52167         (WebCore::matchNth):
52168         (WebCore::CSSStyleSelector::checkOneSelector):
52169         * css/tokenizer.flex:
52170         * rendering/RenderStyle.cpp:
52171         (WebCore::RenderStyle::RenderStyle):
52172         * rendering/RenderStyle.h:
52173         (WebCore::RenderStyle::childIndex):
52174         (WebCore::RenderStyle::setChildIndex):
52175
52176 2008-02-07  Dan Bernstein  <mitz@apple.com>
52177
52178         Reviewed by Dave Hyatt.
52179
52180         - fix <rdar://problem/5729411> REGRESSION (r29834): Float contained in relative-positioned block is painted twice
52181
52182         Test: fast/block/float/relative-painted-twice.html
52183
52184         * rendering/RenderBlock.cpp:
52185         (WebCore::RenderBlock::addOverhangingFloats): Added another case where
52186         the child should not take over painting the float: when they do not have
52187         the same enclosing layer. In that case, the float is already being
52188         painted by one of its closer ancestors.
52189
52190 2008-02-07  Dan Bernstein  <mitz@apple.com>
52191
52192         Reviewed by Darin Adler.
52193
52194         - fix http://bugs.webkit.org/show_bug.cgi?id=17194
52195           Changing text to bold changes font family
52196
52197         Test: platform/mac/fast/text/family-for-font-matched-by-name.html
52198
52199         * platform/mac/WebFontCache.mm:
52200         (+[WebFontCache internalFontWithFamily:traits:size:]): Changed to use
52201         the family of the font whose name matches the desired family if there
52202         is no exact family match.
52203
52204 2008-02-07  Beth Dakin  <bdakin@apple.com>
52205
52206         Reviewed by Geoff.
52207
52208         Fix for <rdar://problem/5697882> Traffic or Street View button on 
52209         Google Maps is sometimes not positioned correctly (17000)
52210
52211         On the Mac, timers fire in the order that they are registered. 
52212         Geoff and I discovered that this is not necessarily true on 
52213         Windows, and that turned out to be the cause of this intermittent 
52214         layout problem at Google Maps. This patch adds a new member 
52215         variable to Timer to remember the timer's insertion point into the 
52216         heap. Now when comparing timers, if two timers were registered at 
52217         the same time, their insertion orders are compared to determine 
52218         which should fire first. This code actually never runs on Debug 
52219         builds on the Mac; the system clock on the Mac is accurate enough 
52220         that it knows that the two timers were not registered at *exactly* 
52221         the same time. This is not the case on Windows. In theory, if we 
52222         sped up Javascript enough on the Mac, this code would run and would 
52223         prevent misrenderings such as the one found on Google Maps.
52224
52225         * platform/Timer.cpp:
52226         (WebCore::operator<):
52227         (WebCore::TimerBase::setNextFireTime):
52228         * platform/Timer.h:
52229
52230 2008-02-06  Justin Garcia  <justin.garcia@apple.com>
52231
52232         Reviewed by Darin Adler.
52233
52234         <rdar://problem/5195056> Huge plain text pastes are slow
52235         
52236         This was fixed in r27369 and then r29367 and r29667 caused performance to
52237         regress.
52238
52239         * editing/EditCommand.cpp:
52240         (WebCore::EditCommand::apply): Only updateLayout() for high level commands.
52241         (WebCore::EditCommand::unapply): Ditto.
52242         (WebCore::EditCommand::reapply): Ditto.
52243         * editing/Editor.cpp:
52244         (WebCore::Editor::appliedEditing): Added a note about shouldChangeSelection calls 
52245         that shouldn't be made, a bug I filed as <rdar://problem/5729315>.
52246         (WebCore::Editor::unappliedEditing): Ditto.
52247         (WebCore::Editor::reappliedEditing): Ditto.
52248         * editing/SelectionController.cpp:
52249         (WebCore::SelectionController::nodeWillBeRemoved): Don't try to test the selection
52250         base and extent with the expensive isCandidate operation if the node that will
52251         be removed is in a fragment, since such a removal is guaranteed to have no effect
52252         on a selection.  This is to speed up the paste operation, which does many removes from
52253         a fragment.
52254
52255 2008-02-06  Kevin Ollivier  <kevino@theolliviers.com>
52256
52257         Reviewed by Darin Adler.
52258
52259         Rather than directly handing scroll wheel events, use
52260         PlatformWheelEvent to send them to WebCore first, so that
52261         mouse wheel scrolling info can be retrieved via JavaScript.
52262
52263         http://bugs.webkit.org/show_bug.cgi?id=17179
52264
52265         * platform/ScrollView.h:
52266         * platform/wx/MouseWheelEventWx.cpp:
52267         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
52268         * platform/wx/ScrollViewWx.cpp:
52269         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
52270         (WebCore::ScrollView::wheelEvent):
52271         (WebCore::ScrollView::maximumScroll):
52272
52273 2008-02-06  Mark Rowe  <mrowe@apple.com>
52274
52275         Fix Windows builds.
52276
52277         * WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.
52278
52279 2008-02-06  Mark Rowe  <mrowe@apple.com>
52280
52281         Mac build fix.  Track rename that happened in r30056.
52282
52283         * platform/graphics/mac/GraphicsContextMac.mm:
52284
52285 2008-02-06  Brent Fulgham  <bfulgham@gmail.com>
52286
52287         Reviewed by Adam Roben.
52288
52289         http://bugs.webkit.org/show_bug.cgi?id=16979
52290         Conditionalize CoreGraphics vs Cairo support in Windows port.
52291
52292         * WebCore.vcproj/WebCore.vcproj:
52293         * bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
52294         (WebCore::imageFromSelection):
52295         * bridge/win/FrameCairoWin.cpp: Added.
52296         (WebCore::imageFromSelection):
52297         * bridge/win/FrameWin.cpp:
52298         (WebCore::computePageRectsForFrame):
52299         * platform/graphics/SimpleFontData.h:
52300         * platform/graphics/cairo/GraphicsContextCairo.cpp:
52301         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
52302         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
52303         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
52304         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
52305         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
52306         * platform/graphics/cg/GraphicsContextCG.cpp:
52307         (WebCore::GraphicsContext::savePlatformState):
52308         (WebCore::GraphicsContext::restorePlatformState):
52309         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
52310         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
52311         * platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
52312         (WebCore::Font::drawGlyphs):
52313         * platform/graphics/win/FontCairoWin.cpp: Added.
52314         (WebCore::Font::drawGlyphs):
52315         * platform/graphics/win/FontWin.cpp:
52316         * platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
52317         (WebCore::CGContextWithHDC):
52318         (WebCore::GraphicsContext::inTransparencyLayer):
52319         (WebCore::GraphicsContext::getWindowsContext):
52320         (WebCore::GraphicsContext::releaseWindowsContext):
52321         (WebCore::GraphicsContextPlatformPrivate::scale):
52322         (WebCore::GraphicsContextPlatformPrivate::rotate):
52323         (WebCore::GraphicsContextPlatformPrivate::translate):
52324         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
52325         (WebCore::setCGStrokeColor):
52326         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
52327         * platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
52328         (WebCore::GraphicsContext::GraphicsContext):
52329         (WebCore::GraphicsContext::getWindowsContext):
52330         (WebCore::GraphicsContext::inTransparencyLayer):
52331         (WebCore::GraphicsContext::releaseWindowsContext):
52332         (WebCore::GraphicsContext::concatCTM):
52333         * platform/graphics/win/GraphicsContextWin.cpp:
52334         * platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
52335         (WebCore::BitmapImage::getHBITMAPOfSize):
52336         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
52337         * platform/graphics/win/ImageCairoWin.cpp: Added.
52338         (WebCore::BitmapImage::getHBITMAPOfSize):
52339         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
52340         * platform/graphics/win/ImageWin.cpp:
52341         * platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
52342         (WebCore::scaleEmToUnits):
52343         (WebCore::SimpleFontData::platformInit):
52344         (WebCore::SimpleFontData::platformWidthForGlyph):
52345         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
52346         (WebCore::SimpleFontData::platformInit):
52347         (WebCore::SimpleFontData::platformDestroy):
52348         (WebCore::SimpleFontData::platformWidthForGlyph):
52349         * platform/graphics/win/SimpleFontDataWin.cpp:
52350         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
52351         (WebCore::SimpleFontData::shouldApplyMacAscentHack):
52352         * platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
52353         (WebCore::scaleDragImage):
52354         (WebCore::createDragImageFromImage):
52355         * platform/win/DragImageCairoWin.cpp: Added.
52356         (WebCore::scaleDragImage):
52357         (WebCore::createDragImageFromImage):
52358         * platform/win/DragImageWin.cpp:
52359
52360 2008-02-06  Anders Carlsson  <andersca@apple.com>
52361
52362         Reviewed by Darin.
52363
52364         Change httpBodyFromStream to take the request instead of the stream.
52365         
52366         * platform/network/cf/FormDataStreamCFNet.cpp:
52367         (WebCore::httpBodyFromRequest):
52368         * platform/network/cf/FormDataStreamCFNet.h:
52369         * platform/network/cf/ResourceRequestCFNet.cpp:
52370         (WebCore::ResourceRequest::doUpdateResourceRequest):
52371
52372 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
52373
52374         Reviewed by Darin.
52375
52376         - Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
52377         one URL uses an explicit port number and another doesn't
52378
52379         * manual-tests/Default-port-frame.html: Added.
52380         * manual-tests/resources/Default-port-frame-contents.html: Added.
52381
52382 2008-02-06  Oliver Hunt  <oliver@apple.com>
52383
52384         Fix windows build
52385
52386         * WebCore.vcproj/build-generated-files.sh:
52387
52388 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
52389
52390         Rubberstamped by Darin.
52391
52392         <rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
52393         - Reverted the change that caused the regression.
52394
52395         * dom/Document.cpp:
52396         (WebCore::Document::createElement):
52397         (WebCore::Document::createElementNS):
52398         (WebCore::Document::getElementById):
52399         (WebCore::Document::parseQualifiedName):
52400         (WebCore::Document::createAttributeNS):
52401         * dom/Document.idl:
52402
52403 2008-02-06  Geoffrey Garen  <ggaren@apple.com>
52404
52405         Reviewed by Oliver Hunt.
52406         
52407         Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot
52408
52409         The problem was refCount underflow in NamedAttrMap.
52410         
52411         Neither our regression tests nor the stress test have yet discovered
52412         another instance of this problem.
52413
52414         * dom/NamedAttrMap.cpp:
52415         (WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
52416         for fast and correct refCount management. Also, change a rediculously
52417         slow malloc to a slightly less rediculously slow realloc.
52418
52419         * dom/NamedAttrMap.h:
52420         (WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
52421         for fast and correct refCount management.
52422
52423         * html/HTMLTokenizer.cpp:
52424         (WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
52425         object starts with a refCount of 1.
52426
52427 2008-02-06  Darin Adler  <darin@apple.com>
52428
52429         Reviewed by Tim Hatcher.
52430
52431         - fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
52432           with View Source window as target
52433
52434         * page/InspectorController.cpp:
52435         (WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
52436         JavaScript disabled.
52437         (WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
52438         it returns false.
52439
52440 2008-02-06  David Hyatt  <hyatt@apple.com>
52441
52442         Fix for bug 16799, object elements should return absolute URLs from .data.
52443
52444         Reviewed by Mark Rowe
52445
52446         * dom/Document.cpp:
52447         (WebCore::Document::completeURL):
52448         * html/HTMLAnchorElement.cpp:
52449         (WebCore::HTMLAnchorElement::href):
52450         * html/HTMLObjectElement.cpp:
52451         (WebCore::HTMLObjectElement::data):
52452
52453 2008-02-05  Antti Koivisto  <antti@apple.com>
52454
52455         Reviewed by Darin.
52456
52457         <rdar://problem/5726340>
52458         <video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
52459         
52460         When moving document in and out from the page cache:
52461         - Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
52462         - Restart the load if it was aborted in the middle.
52463
52464         * html/HTMLMediaElement.cpp:
52465         (WebCore::HTMLMediaElement::~HTMLMediaElement):
52466         (WebCore::HTMLMediaElement::load):
52467         (WebCore::HTMLMediaElement::willSaveToCache):
52468         (WebCore::HTMLMediaElement::didRestoreFromCache):
52469         * html/HTMLMediaElement.h:
52470         (WebCore::HTMLMediaElement::player):
52471
52472 2008-02-06  Darin Adler  <darin@apple.com>
52473
52474         Reviewed by Sam.
52475
52476         - replace calls to put to set up properties with calls to putDirect, to
52477           prepare for a future change where put won't take attributes any more,
52478           and for a slight performance boost
52479
52480         * bindings/js/JSAudioConstructor.cpp:
52481         (WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
52482         * bindings/js/JSEventTargetBase.h:
52483         (WebCore::JSEventTargetPrototype::self): Ditto.
52484         * bindings/js/JSHTMLOptionElementConstructor.cpp:
52485         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
52486         * bindings/js/JSSQLResultSetRowListCustom.cpp:
52487         (WebCore::JSSQLResultSetRowList::item): Ditto.
52488
52489 2008-02-06  Dan Bernstein  <mitz@apple.com>
52490
52491         Reviewed by Darin Adler.
52492
52493         - fix http://bugs.webkit.org/show_bug.cgi?17093
52494         'border-color' does not animate to the value of 'color' when unspecified
52495
52496         Test: fast/css/transition-color-unspecified.html
52497
52498         * page/AnimationController.cpp:
52499         (WebCore::ImplicitAnimation::animate): Changed to use the value of the
52500         'color' property in the source or destination style as the source or
52501         destination value of properties whose inital value is defined to be the
52502         computed value of 'color'.
52503
52504 2008-02-06  Dan Bernstein  <mitz@apple.com>
52505
52506         Build fix.
52507
52508         * svg/svgtags.in:
52509
52510 2008-02-05  Oliver Hunt  <oliver@apple.com>
52511
52512         Build fix -- touch generate-bindings to trigger regeneration of bindings
52513
52514         * bindings/scripts/generate-bindings.pl:
52515
52516 2008-02-05  Oliver Hunt  <oliver@apple.com>
52517
52518         RS=Eric.
52519
52520         Re-enable foreignObject by default as it is needed for a number of 
52521         non-fO related SVG tests and none of the old known crashes occur
52522         anymore.
52523
52524         * Configurations/WebCore.xcconfig:
52525         * WebCore.vcproj/WebCore.vcproj:
52526
52527 2008-02-05  Sam Weinig  <sam@webkit.org>
52528
52529         Reviewed by Anders Carlsson.
52530
52531         Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
52532         NodeList (and other DOM lists) items are not enumeratable using for..in
52533
52534         - Match Firefox when enumerating DOM interfaces with indexGetters (support for 
52535           the array bracket, nodeList[0], notation) by including all the items in the
52536           list before the attributes and methods of the interface.
52537
52538         Test: fast/dom/domListEnumeration.html
52539
52540         * ForwardingHeaders/kjs/PropertyNameArray.h: Added.
52541         * bindings/js/JSDOMWindowCustom.cpp:
52542         (WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model. 
52543         * bindings/js/JSHistoryCustom.cpp:
52544         (WebCore::JSHistory::customGetPropertyNames): ditto.
52545         * bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
52546         getProperyNames and implementing the method in the Custom.cpp, move to a the 
52547         model used by generated getOwnPropertySlot() and put() where the custom code
52548         is written in a separate customGetPropertyNames which returns a bool indicating
52549         whether to call up to the base class.  This enables adding the list indexes
52550         to the PropertyNameArray for interfaces with indexGetters automatically.
52551
52552 2008-02-05  Samuel Weinig  <sam@webkit.org>
52553
52554         Reviewed by Darin Adler.
52555
52556         Fix for <rdar://problem/5726604> 
52557         dom-checker: deleting properties of the window object cross-domain should not be allowed
52558
52559         Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).
52560
52561         Test: http/tests/security/cross-frame-access-delete.html
52562
52563         * bindings/js/JSDOMWindowCustom.cpp:
52564         (WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
52565         * bindings/js/JSHistoryCustom.cpp:
52566         (WebCore::JSHistory::deleteProperty): ditto.
52567         * bindings/js/JSLocation.cpp:
52568         (WebCore::JSLocation::deleteProperty): ditto.
52569         * bindings/js/JSLocation.h:
52570
52571         * bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
52572         * page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
52573         * page/History.idl: ditto.
52574
52575 2008-02-05  Alp Toker  <alp@atoker.com>
52576
52577         Rubber-stamped by Mark Rowe.
52578
52579         Fix a "missing sentinel in function call" warning by using NULL
52580         instead of 0.
52581
52582         * platform/gtk/RenderThemeGtk.cpp:
52583         (WebCore::RenderThemeGtk::caretBlinkFrequency):
52584
52585 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
52586
52587         Reviewed by Oliver.
52588
52589         Fix dynamic updates of <circle> element's properties.
52590
52591         Added tests: svg/dynamic-updates/SVGCircleElement*
52592
52593         * svg/SVGCircleElement.cpp:
52594         (WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
52595         * svg/SVGCircleElement.h:
52596
52597 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
52598
52599         Wx build fix.  Add WebCore/plugins to the include path.
52600
52601         * webcore-base.bkl:
52602
52603 2008-02-05  Mark Rowe  <mrowe@apple.com>
52604
52605         Mac build fix.  Update the Xcode project to follow a moved file,
52606         and track a rename in two files that were missed earlier.
52607
52608         * WebCore.xcodeproj/project.pbxproj:
52609         * page/mac/WebCoreFrameBridge.mm:
52610         (-[WebCoreFrameBridge canProvideDocumentSource]):
52611         * platform/mac/PlugInInfoStoreMac.mm:
52612         (WebCore::PluginInfoStore::pluginNameForMIMEType):
52613
52614 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
52615
52616         Reviewed by Holger.
52617
52618         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
52619         Fix dynamic SVG DOM updates of <a> element's href property.
52620
52621         This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
52622         Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
52623         one test per property per class. As a first pass it's sufficient to add testcases for all
52624         SVG*Element classes, and their properties - and only common-used base-class properties.
52625
52626         For SVGAElement - for example - it makes most sense to test scripting its parent
52627         SVGURIReference object ('href' property) and its own property 'target'.
52628
52629         Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
52630         SVGExternalResourcesRequired interface, should really be done in a second pass.
52631
52632         All tests within the new framework are supposed to be created using make-js-tests-wrappers.
52633
52634         Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
52635         Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
52636         Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
52637         Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js
52638
52639         * svg/SVGAElement.cpp:
52640         (WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
52641         (WebCore::SVGAElement::svgAttributeChanged):
52642         (WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
52643         * svg/SVGAElement.h:
52644
52645 2008-02-05  Justin Garcia  <justin.garcia@apple.com>
52646
52647         Reviewed by Alexey Proskuryakov.
52648
52649         <rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)
52650
52651         * editing/CompositeEditCommand.cpp:
52652         (WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
52653         when the editing code actively looked for <br>s of that type in order to handle them
52654         specially.  That is no longer the case.
52655         * editing/InsertParagraphSeparatorCommand.cpp:
52656         (WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
52657         would be inserted when hitting return inside an editable root held open by a placeholder
52658         <br> or '\n'.  Added test cases for the bug and for the special case code that was incorrectly
52659         triggered to cause the bug. 
52660
52661 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
52662
52663         Reviewed by Anders Carlsson.
52664
52665         Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
52666         Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.
52667
52668         Remove the Win suffix on several plugin-related classes that will
52669         soon be refactored to be more portable.
52670
52671         * WebCore.vcproj/WebCore.vcproj:
52672         * bindings/js/kjs_navigator.cpp:
52673         (KJS::PluginBase::cachePluginDataIfNecessary):
52674         * bindings/js/kjs_window.cpp:
52675         * bridge/win/FrameWin.cpp:
52676         (WebCore::Frame::createScriptInstanceForWidget):
52677         * dom/Clipboard.cpp:
52678         * dom/DOMImplementation.cpp:
52679         (WebCore::DOMImplementation::createDocument):
52680         * loader/FrameLoader.cpp:
52681         (WebCore::FrameLoader::shouldUsePlugin):
52682         * page/DragController.cpp:
52683         * platform/PlugInInfoStore.h: Removed.
52684         * platform/gtk/TemporaryLinkStubs.cpp:
52685         (PluginInfoStore::createPluginInfoForPluginAtIndex):
52686         (PluginInfoStore::pluginCount):
52687         (PluginInfoStore::pluginNameForMIMEType):
52688         (WebCore::PluginInfoStore::supportsMIMEType):
52689         * platform/qt/PlugInInfoStoreQt.cpp:
52690         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
52691         (WebCore::PluginInfoStore::pluginCount):
52692         (WebCore::PluginInfoStore::pluginNameForMIMEType):
52693         (WebCore::PluginInfoStore::supportsMIMEType):
52694         * platform/qt/TemporaryLinkStubs.cpp:
52695         * platform/win/SharedTimerWin.cpp:
52696         (WebCore::TimerWindowWndProc):
52697         * platform/wx/TemporaryLinkStubs.cpp:
52698         (PluginInfoStore::createPluginInfoForPluginAtIndex):
52699         (PluginInfoStore::pluginCount):
52700         (WebCore::PluginInfoStore::supportsMIMEType):
52701         (PluginInfoStore::pluginNameForMIMEType):
52702         * plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
52703         * plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
52704         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
52705         (WebCore::PluginInfoStore::pluginCount):
52706         (WebCore::PluginInfoStore::pluginNameForMIMEType):
52707         (WebCore::PluginInfoStore::supportsMIMEType):
52708         (WebCore::refreshPlugins):
52709         * plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
52710         * plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
52711         (WebCore::PluginPackageHash::hash):
52712         (WebCore::PluginPackageHash::equal):
52713         (WTF::):
52714         * plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
52715         (WebCore::PluginView::plugin):
52716         * plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
52717         (pluginViewForInstance):
52718         (NPN_UserAgent):
52719         * plugins/win/PlugInInfoStoreWin.cpp: Removed.
52720         * plugins/win/PluginDatabaseWin.cpp:
52721         (WebCore::PluginDatabase::installedPlugins):
52722         (WebCore::PluginDatabase::addExtraPluginPath):
52723         (WebCore::PluginDatabase::refresh):
52724         (WebCore::PluginDatabase::plugins):
52725         (WebCore::addPluginsFromRegistry):
52726         (WebCore::PluginDatabase::getPluginsInPaths):
52727         (WebCore::PluginDatabase::defaultPluginPaths):
52728         (WebCore::PluginDatabase::isMIMETypeRegistered):
52729         (WebCore::PluginDatabase::pluginForMIMEType):
52730         (WebCore::PluginDatabase::MIMETypeForExtension):
52731         (WebCore::PluginDatabase::findPlugin):
52732         (WebCore::PluginDatabase::createPluginView):
52733         * plugins/win/PluginDatabaseWin.h: Removed.
52734         * plugins/win/PluginPackageWin.cpp:
52735         (WebCore::PluginPackage::~PluginPackage):
52736         (WebCore::PluginPackage::freeLibrarySoon):
52737         (WebCore::PluginPackage::freeLibraryTimerFired):
52738         (WebCore::PluginPackage::PluginPackage):
52739         (WebCore::PluginPackage::compareFileVersion):
52740         (WebCore::PluginPackage::storeFileVersion):
52741         (WebCore::PluginPackage::isPluginBlacklisted):
52742         (WebCore::PluginPackage::fetchInfo):
52743         (WebCore::PluginPackage::load):
52744         (WebCore::PluginPackage::unload):
52745         (WebCore::PluginPackage::unloadWithoutShutdown):
52746         (WebCore::PluginPackage::createPackage):
52747         (WebCore::PluginPackage::hash):
52748         (WebCore::PluginPackage::equal):
52749         * plugins/win/PluginPackageWin.h: Removed.
52750         * plugins/win/PluginViewWin.cpp:
52751         (WebCore::PluginRequest::PluginRequest):
52752         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
52753         (WebCore::registerPluginView):
52754         (WebCore::PluginViewWndProc):
52755         (WebCore::PluginView::popPopupsStateTimerFired):
52756         (WebCore::PluginView::wndProc):
52757         (WebCore::PluginView::updateWindow):
52758         (WebCore::PluginView::windowClipRect):
52759         (WebCore::PluginView::setFrameGeometry):
52760         (WebCore::PluginView::geometryChanged):
52761         (WebCore::PluginView::setFocus):
52762         (WebCore::PluginView::show):
52763         (WebCore::PluginView::hide):
52764         (WebCore::PluginView::paintMissingPluginIcon):
52765         (WebCore::PluginView::dispatchNPEvent):
52766         (WebCore::PluginView::paint):
52767         (WebCore::PluginView::handleKeyboardEvent):
52768         (WebCore::PluginView::handleMouseEvent):
52769         (WebCore::PluginView::handleEvent):
52770         (WebCore::PluginView::setParent):
52771         (WebCore::PluginView::attachToWindow):
52772         (WebCore::PluginView::detachFromWindow):
52773         (WebCore::PluginView::setNPWindowRect):
52774         (WebCore::PluginView::start):
52775         (WebCore::PluginView::stop):
52776         (WebCore::PluginView::setCurrentPluginView):
52777         (WebCore::PluginView::currentPluginView):
52778         (WebCore::PluginView::performRequest):
52779         (WebCore::PluginView::requestTimerFired):
52780         (WebCore::PluginView::scheduleRequest):
52781         (WebCore::PluginView::load):
52782         (WebCore::PluginView::getURLNotify):
52783         (WebCore::PluginView::getURL):
52784         (WebCore::PluginView::handlePost):
52785         (WebCore::PluginView::postURLNotify):
52786         (WebCore::PluginView::postURL):
52787         (WebCore::PluginView::newStream):
52788         (WebCore::PluginView::write):
52789         (WebCore::PluginView::destroyStream):
52790         (WebCore::PluginView::userAgent):
52791         (WebCore::PluginView::status):
52792         (WebCore::PluginView::getValue):
52793         (WebCore::PluginView::setValue):
52794         (WebCore::PluginView::invalidateTimerFired):
52795         (WebCore::PluginView::invalidateRect):
52796         (WebCore::PluginView::invalidateRegion):
52797         (WebCore::PluginView::forceRedraw):
52798         (WebCore::PluginView::pushPopupsEnabledState):
52799         (WebCore::PluginView::popPopupsEnabledState):
52800         (WebCore::PluginView::arePopupsAllowed):
52801         (WebCore::PluginView::bindingInstance):
52802         (WebCore::PluginView::~PluginView):
52803         (WebCore::PluginView::disconnectStream):
52804         (WebCore::PluginView::determineQuirks):
52805         (WebCore::PluginView::setParameters):
52806         (WebCore::PluginView::PluginView):
52807         (WebCore::PluginView::init):
52808         (WebCore::PluginView::didReceiveResponse):
52809         (WebCore::PluginView::didReceiveData):
52810         (WebCore::PluginView::didFinishLoading):
52811         (WebCore::PluginView::didFail):
52812         (WebCore::PluginView::setCallingPlugin):
52813         (WebCore::PluginView::isCallingPlugin):
52814         * plugins/win/PluginViewWin.h: Removed.
52815         * plugins/win/npapi.cpp: Removed.
52816
52817 2008-02-05  Alexey Proskuryakov  <ap@webkit.org>
52818
52819         Reviewed by Darin.
52820
52821         http://bugs.webkit.org/show_bug.cgi?id=17158
52822         Setting innerHTML in a detached XHTML element doesn't use the right namespace
52823
52824         Test: fast/dom/innerHTML-detached-element.xhtml
52825
52826         * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
52827         into account.
52828
52829 2008-02-05  Antti Koivisto  <antti@apple.com>
52830
52831         Reviewed by Geoff.
52832         
52833         Fix <rdar://problem/5698200>
52834         eBay photo uploading hangs and causes slow script warning to pop up
52835         
52836         In a case like this
52837         
52838             var f = window.parent.parentFunction;
52839             document.domain = document.domain; // this makes window.parent inaccessible
52840             f();
52841         
52842         Firefox allows parentFunction to access parents properties. Match this behavior.
52843         
52844         In a domain security check against the dynamic global object fails for the specific reason that one of 
52845         the frames has written to the document.domain property and another has not (but they match otherwise), 
52846         then recheck against the lexical global object.
52847
52848         Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
52849               http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
52850
52851         * bindings/js/kjs_window.cpp:
52852         (KJS::Window::allowsAccessFrom):
52853         (KJS::Window::printErrorMessage):
52854         * bindings/js/kjs_window.h:
52855         * loader/FrameLoader.cpp:
52856         (WebCore::FrameLoader::shouldAllowNavigation):
52857         * platform/SecurityOrigin.cpp:
52858         (WebCore::SecurityOrigin::canAccess):
52859         * platform/SecurityOrigin.h:
52860         (WebCore::SecurityOrigin::):
52861
52862 2008-02-05  Adam Roben  <aroben@apple.com>
52863
52864         Remove an unused member from Document
52865
52866         Reviewed by Mitz.
52867
52868         * dom/Document.cpp:
52869         (WebCore::Document::recalcStyleSelector): There's no need to take
52870         m_printSheet into account anymore as it's never anything but the null
52871         string.
52872         * dom/Document.h: Removed m_printSheet and methods relating to it.
52873
52874 2008-02-05  Dan Bernstein  <mitz@apple.com>
52875
52876         Reviewed by Darin Adler.
52877
52878         - WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts
52879
52880         * WebCore.base.exp: Added Editor::setBaseWritingDirection() and
52881         Frame::baseWritingDirectionForSelectionStart().
52882         * page/mac/WebCoreFrameBridge.h: Removed
52883         -baseWritingDirectionForSelectionStart.
52884         * page/mac/WebCoreFrameBridge.mm: Ditto.
52885
52886 2008-02-05  Mark Rowe  <mrowe@apple.com>
52887
52888         Reviewed by Oliver Hunt.
52889
52890         Update versioning to support the mysterious future.
52891
52892         * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.
52893
52894 2008-02-05  Mark Rowe  <mrowe@apple.com>
52895
52896         Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.
52897
52898         * editing/SmartReplaceICU.cpp:
52899         (WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
52900         (WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.
52901
52902 2008-02-05  Mark Rowe  <mrowe@apple.com>
52903
52904         Rubber-stamped by Oliver Hunt.
52905
52906         30,000!
52907
52908         * ChangeLog: Point out revision 30,000.
52909
52910 2008-02-04  Mark Rowe  <mrowe@apple.com>
52911
52912         Unreviewed Gtk build fix.
52913
52914         wchar_t is only convertible to UChar on Windows.  Use WebCore's String class
52915         to get the UChars out of a C string in a portable fashion.
52916
52917         * editing/SmartReplaceICU.cpp:
52918         (WebCore::getSmartSet):
52919
52920 2008-02-04  Tony Chang  <idealisms@gmail.com>
52921
52922         Reviewed by Darin Adler.
52923
52924         Port the CoreFoundation version of WebCore::isCharacterSmartReplaceExempt
52925         for other platforms by using ICU directly.
52926
52927         * GNUmakefile.am: Add SmartReplaceICU.cpp.
52928         * WebCore.pro: Ditto.
52929         * WebCoreSources.bkl: Ditto.
52930         * editing/SmartReplace.cpp: Don't use this empty implementation when ICU is available.
52931         * editing/SmartReplaceICU.cpp:
52932         (getSmartSet):
52933         (WebCore::isCharacterSmartReplaceExempt):
52934
52935 2008-02-04  Robert Sesek  <rsesek@bluestatic.org>
52936
52937         Reviewed by Darin Adler.
52938
52939         Fix http://bugs.webkit.org/show_bug.cgi?id=17042
52940         forms without action attributes submit to the <base> href instead of the originating page
52941
52942         Test: fast/forms/missing-action.html
52943
52944         * html/HTMLFormElement.cpp:
52945         (WebCore::HTMLFormElement::submit): Submit to origin if there is no action
52946
52947 2008-02-04  Mark Rowe  <mrowe@apple.com>
52948
52949         Reviewed by Tim Hatcher.
52950
52951         Gtk build fix.  Use std::numeric_limits in place of ULLONG_MAX as
52952         some Linux machines do not have ULLONG_MAX.
52953
52954         OriginUsageRecord::unknownDiskUsage becomes a static function to avoid
52955         the global initialiser which would otherwise be generated.
52956
52957         * storage/OriginUsageRecord.cpp:
52958         (WebCore::OriginUsageRecord::unknownDiskUsage):
52959         (WebCore::OriginUsageRecord::addDatabase):
52960         (WebCore::OriginUsageRecord::removeDatabase):
52961         (WebCore::OriginUsageRecord::markDatabase):
52962         (WebCore::OriginUsageRecord::diskUsage):
52963         * storage/OriginUsageRecord.h:
52964
52965 2008-02-04  Mark Rowe  <mrowe@apple.com>
52966
52967         Speculative Gtk build fix.
52968
52969         * storage/OriginUsageRecord.cpp:
52970
52971 2008-02-04  Brady Eidson  <beidson@apple.com>
52972
52973         Attempt to fix build of all non-Mac platforms
52974
52975         * GNUmakefile.am:
52976         * WebCore.pro:
52977         * WebCore.vcproj/WebCore.vcproj:
52978         * WebCoreSources.bkl:
52979
52980 2008-02-04  Brady Eidson  <beidson@apple.com>
52981
52982         Reviewed by Darin
52983
52984         Fix for <rdar://problem/5628468> - Quotas need to be implemented per-origin, and not per-database
52985
52986         To accomplish this, we need to track the sizes of all databases in an origin to constantly keep an up to date
52987         count of the origin's total disk usage.  I've introduced the OriginQuotaManager and OriginUsageRecord classes
52988         to accomplish this.
52989
52990         Whenever a transaction is known to mutate the size of a database (tracked by the DatabaseAuthorizer), it marks
52991         that database as unknown in the OriginQuotaManager.  When a transaction later comes along to ask the 
52992         OriginQuotaManager the usage for that origin, it stat's all of the unknown databases in the origin and returns
52993         the result.
52994
52995         Since the OriginQuotaManager is interesting from both the main thread and a DatabaseThread, all accessors it 
52996         provides require it to be locked first.  ASSERTs help guarantee this is always the case.
52997
52998         Layout test will involve adding functionality to DRT on multiple platforms and will be coming up shortly
52999
53000         * WebCore.xcodeproj/project.pbxproj:
53001
53002         * platform/SecurityOrigin.h: Changed to be ThreadSafeShared instead of RefCounted
53003
53004         * storage/Database.cpp:
53005         (WebCore::Database::databaseSize): Return the current filesize of this database on disk
53006         (WebCore::Database::maximumSize): Added - calculates maximum size of this database based on quota and usage
53007         * storage/Database.h: Add databaseSize() accessor, and get rid of unused declared methods that *were* going 
53008           to be the solution for this bug.
53009
53010         * storage/DatabaseTracker.cpp:
53011         (WebCore::DatabaseTracker::originQuotaManager): Accessor to the OriginQuotaManager which is lazily created
53012         (WebCore::DatabaseTracker::canEstablishDatabase): Fetch the usage for this database slightly earlier, which
53013           will ensure that the OriginQuotaManager is primed to track this origin
53014         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto
53015         (WebCore::DatabaseTracker::populateOrigins): Create the OriginQuotaManager here.
53016         (WebCore::DatabaseTracker::usageForOrigin): Use the OriginQuotaManager instead of looping through each database
53017           in the origin
53018         (WebCore::DatabaseTracker::deleteOrigin): Remove this origin from the OriginQuotaManager as it is no longer 
53019           interesting
53020         (WebCore::DatabaseTracker::deleteDatabase): Remove this database from the OriginQuotaManager as it is no longer
53021           interesting
53022         * storage/DatabaseTracker.h:
53023
53024         * storage/OriginQuotaManager.cpp: Added.
53025         (WebCore::OriginQuotaManager::OriginQuotaManager):
53026         (WebCore::OriginQuotaManager::lock):
53027         (WebCore::OriginQuotaManager::unlock):
53028         (WebCore::OriginQuotaManager::trackOrigin): Add an origin to be tracked.  Useful for when the very first database 
53029           in a new origin is still in the process of being created
53030         (WebCore::OriginQuotaManager::tracksOrigin):
53031         (WebCore::OriginQuotaManager::addDatabase):
53032         (WebCore::OriginQuotaManager::removeDatabase):
53033         (WebCore::OriginQuotaManager::removeOrigin): Removes all records in a certain origin from being tracked
53034         (WebCore::OriginQuotaManager::markDatabase): Mark a specific database as having an unknown size - called when the
53035           DatabaseAuthorizer in a SQLTransaction knows the file size might change.
53036         (WebCore::OriginQuotaManager::diskUsage): Returns the disk usage for the given origin
53037         * storage/OriginQuotaManager.h: Added.
53038
53039         * storage/OriginUsageRecord.cpp: Added.
53040         (WebCore::OriginUsageRecord::OriginUsageRecord):
53041         (WebCore::OriginUsageRecord::addDatabase): Adds an entry for the database in this origin's record
53042         (WebCore::OriginUsageRecord::removeDatabase): Removes that entry
53043         (WebCore::OriginUsageRecord::markDatabase): Marks the database as of unknown size
53044         (WebCore::OriginUsageRecord::diskUsage): Returns the cached disk usage value, or recalculates it if any databases
53045           are marked
53046         * storage/OriginUsageRecord.h: Added.
53047
53048         * storage/SQLTransaction.cpp:
53049         (WebCore::SQLTransaction::openTransactionAndPreflight): Use Database::maximumSize() instead of attributing the
53050           entire quota to each database.
53051         (WebCore::SQLTransaction::runStatements): Use Database::maximumSize() instead of attributing the entire quota
53052           to each database.
53053         (WebCore::SQLTransaction::runCurrentStatement): Mark this databases's size as unknown in the 
53054           OriginQuotaManager if this statement will change the size of the database
53055         * storage/SQLTransaction.h:
53056
53057 2008-02-04   David Harrison  <harrison@apple.com>
53058
53059         Reviewed by Darin Adler.
53060
53061         <rdar://problem/5607381> CrashTracer: [REGRESSION] 1748 crashes in Safari at com.apple.WebCore: WebCore::Image::width const + 24
53062
53063         Use an empty image when the local image file could not be loaded.
53064
53065         No test case because it would require forcing tiff load failure.
53066         
53067         * editing/DeleteButtonController.cpp:
53068         (WebCore::DeleteButtonController::createDeletionUI):
53069         Do not present the deletion UI in the (odd) event that the delete button could not be loaded.
53070         
53071         * platform/graphics/mac/ImageMac.mm:
53072         (WebCore::Image::loadPlatformResource):
53073         Return an empty image instead of 0 if the load fails.
53074
53075 2008-02-04  Darin Adler  <darin@apple.com>
53076
53077         * dom/Document.cpp:
53078         (WebCore::Document::completeURL): Fixed misleading comment.
53079
53080 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
53081
53082         Reviewed by Darin.
53083
53084         Blacklist Silverlight versions older than min required, not newer. 
53085
53086         * plugins/win/PluginPackageWin.cpp:
53087         (WebCore::PluginPackageWin::isPluginBlacklisted):
53088
53089 2008-02-04  David Hyatt  <hyatt@apple.com>
53090
53091         Fix for bug 16751, misparsing of html*.test in CSS.
53092
53093         Reviewed by darin
53094
53095         Added fast/css/simple-selector-chain-parsing.html
53096
53097         * css/CSSGrammar.y:
53098
53099 2008-02-04  Darin Adler  <darin@apple.com>
53100
53101         Suggested by Geoff and Maciej.
53102
53103         * bindings/js/JSCustomSQLTransactionCallback.cpp: Reworded a misleading
53104         comment to be correct.
53105
53106 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
53107
53108         Reviewed by Steve, Anders.
53109
53110         <rdar://problem/5211187> QuickTime and Flash plug-ins draw outside of
53111         content area when inside an iframe or div with overflow when playing a
53112         movie and scrolling the iframe/div area
53113
53114         Clip the update region to the zero rect when scrolling. Don't do this
53115         for Java, because it results in repaint problems. 
53116
53117         * plugins/PluginQuirkSet.h: Added the DontClipToZeroRectWhenScrolling
53118         quirk
53119         * plugins/win/PluginViewWin.cpp:
53120         (WebCore::PluginViewWin::updateWindow): Readded the old behavior of
53121         clipping to the zero rect when updating the window during a scroll.
53122         Added plug-in quirk to ignore this behavior for Java. Swapped order of
53123         the SetWindowRgn() and MoveWindow() calls to prevent Java from painting
53124         outside of its container during a scroll.
53125         (WebCore::PluginViewWin::determineQuirks): If this is Java, add the
53126         DontClipToZeroRectWhenScrolling quirk.
53127
53128 2008-02-04  Timothy Hatcher  <timothy@apple.com>
53129
53130         Reviewed by Mark Rowe.
53131
53132         <rdar://problem/5722972> Leopard needs to statically link SQLite
53133
53134         * Configurations/Base.xcconfig: Always have a header search path for WebCoreSQLite3.
53135         * Configurations/DebugRelease.xcconfig: Ditto.
53136         * Configurations/WebCore.xcconfig: Always link against WebCoreSQLite3.
53137
53138 2008-02-04  Adam Roben  <aroben@apple.com>
53139
53140         Windows build fix
53141
53142         * bindings/scripts/CodeGeneratorCOM.pm: Touched to force a rebuild of
53143         the COM bindings.
53144
53145 2008-02-04   David Harrison  <harrison@apple.com>
53146
53147         Reviewed by Tim Hatcher.
53148
53149         - fix <rdar://problem/5715481> REGRESSION (r26499): JavaScript document.lastModified is not supported
53150
53151         Re-add attribute inadvertantly lost by r26499.
53152
53153         Test: fast/js/lastModified.html: Added.
53154
53155         * dom/Document.idl:
53156         Add lastModified.
53157
53158 2008-02-04  Darin Adler  <darin@apple.com>
53159
53160         Reviewed by Geoff.
53161
53162         - fix <rdar://problem/5713621> Threading issue when destroying database transaction callback
53163
53164         Do main-thread-only stuff on the main thread.
53165
53166         Not clear how to make a regression test for this.
53167
53168         * bindings/js/JSCustomSQLTransactionCallback.cpp:
53169         (WebCore::JSCustomSQLTransactionCallback::Data::Data): Added.
53170         (WebCore::JSCustomSQLTransactionCallback::Data::callback): Added.
53171         (WebCore::JSCustomSQLTransactionCallback::Data::frame): Added.
53172         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Put data into a
53173         separate Data object; we'll destroy it on the main thread.
53174         (WebCore::JSCustomSQLTransactionCallback::deleteData): Added.
53175         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback): Call the
53176         deleteData function on the main thread.
53177         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Updated to get at fields through the
53178         m_data object.
53179         * bindings/js/JSCustomSQLTransactionCallback.h: Declare deleteData, Data, and m_data rather
53180         than m_callback and m_frame.
53181
53182 2008-02-04  Adam Roben  <aroben@apple.com>
53183
53184         Fix the search field if the inpsected Document has overridden
53185         Document.evaluate or Document.querySelectorAll
53186
53187         Reviewed by Darin.
53188
53189         * manual-tests/inspector-document-methods-override.html: Added.
53190         * page/InspectorController.cpp:
53191         (WebCore::InspectorController::didCommitLoad): Reworded a comment to
53192         force WebCore.vcproj to build.
53193         * page/inspector/inspector.js: Call
53194         Document.prototype.{evaluate,querySelectorAll}.call instead of calling
53195         the functions directly on the inspected Document. This ensures we are
53196         calling the version of these functions we intended to.
53197
53198 2008-02-04  Darin Adler  <darin@apple.com>
53199
53200         Reviewed by Tim Hatcher.
53201
53202         - possible fix for <rdar://problem/5714030> Crash in Database::deliverAllPendingCallbacks()
53203           reloading a page quickly
53204
53205         I don't fully understand the cause of the crash, but I think this might
53206         be a helpful change.
53207
53208         * platform/sql/SQLiteTransaction.cpp:
53209         (WebCore::SQLiteTransaction::commit): If the commit fails, don't leave this
53210         transaction and database both marked as "still in progress". As far as I can
53211         tell this does no good, and also seems to do harm.
53212         (WebCore::SQLiteTransaction::rollback): Ditto.
53213
53214         * storage/Database.cpp:
53215         (WebCore::Database::performTransactionStep): Add some assertions to
53216         detect databases stuck in the "transaction in progress" state.
53217         * storage/SQLTransaction.cpp:
53218         (WebCore::SQLTransaction::openTransactionAndPreflight): Ditto.
53219         (WebCore::SQLTransaction::postflightAndCommit): Ditto.
53220         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto.
53221
53222 2008-02-04  Darin Adler  <darin@apple.com>
53223
53224         Reviewed by Geoff.
53225
53226         - fix <rdar://problem/5715692> REGRESSION (r28570): JavaScript window.scrollTo()
53227           calls no longer accept 'undefined' values
53228
53229         By default, we should accept non-numeric parameters and non-integral numbers for
53230         parameters that expect integers, without throwing exceptions.
53231
53232         While creating the test for this, I ran into a couple minor bugs with the
53233         functions involved, and this patch fixes those too.
53234
53235         Test: fast/dom/non-numeric-values-numeric-parameters.html
53236
53237         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
53238         (WebCore::JSHTMLOptionsCollection::add): Added. This function has unusual behavior
53239         when passed non-integral values for its second parameter, so it needs to be written
53240         by hand. I think that [Custom] is better here than inventing a new keyword.
53241
53242         * bindings/scripts/CodeGeneratorJS.pm: Changed default for "long" and "unsigned long"
53243         to ignore errors rather than failing due to type differences. Also changed a couple
53244         functions to use hashes.
53245
53246         * css/CSSStyleSheet.h:
53247         (WebCore::CSSStyleSheet::removeRule): Remove overload of removeRule without a second
53248         parameters. While we do allow this from JavaScript, it's not a true optional parameter,
53249         but rather just a case of "you can omit parameters and they are treated as undefined"
53250         combined with "undefined turns into 0 when passed to a function that takes an integer".
53251         * css/CSSStyleSheet.idl: Removed [Optional] on the index parameter for removeRule.
53252         This is not truly an optional parameter.
53253
53254         * dom/ProgressEvent.cpp:
53255         (WebCore::ProgressEvent::initProgressEvent): Updated this function to match other
53256         DOM event init functions -- important to do nothing if this is called on the an
53257         already-dispatched event and we need to respect the bubble and cancelable arguments.
53258         Also removed initProgressEventNS. We don't support namespaced events, and if we add
53259         support, it should be across all event classes, not just ProgressEvent.
53260         * dom/ProgressEvent.h: Removed initProgressEventNS.
53261         * dom/ProgressEvent.idl: Ditto.
53262
53263         * dom/Range.cpp:
53264         (WebCore::Range::createContextualFragment): Added a check for 0. This can happen
53265         if the passed-in start container is a node that's not an HTML element and also
53266         does not have a parent.
53267
53268         * html/HTMLOptionsCollection.idl: Added the [Custom] attribute to add, since the
53269         rules for processing its parameters are unusual.
53270
53271         * page/DOMSelection.cpp: Removed the version of setPosition that has only
53272         one parameter. The offset is not really optional.
53273         * page/DOMSelection.h: Ditto.
53274         * page/DOMSelection.idl: Removed the [Optional] keyword for the second parameter of
53275         setPosition. It's not a true optional parameter (see discussion of removeRule above).
53276
53277         * page/DOMWindow.cpp:
53278         (WebCore::DOMWindow::adjustWindowRect): Simplified logic for constraining the X
53279         and Y coordinates, in a way that makes them work even when the window coordinates
53280         are infinite. Also strengthened the assertion.
53281
53282 2008-02-04  Alp Toker  <alp@atoker.com>
53283
53284         Rubber-stamped by Mark Rowe.
53285
53286         Remove all trailing whitespace in the GTK+ port and related
53287         components.
53288
53289         * GNUmakefile.am:
53290         * page/gtk/DragControllerGtk.cpp:
53291         (WebCore::DragController::dragOperation):
53292         (WebCore::DragController::maxDragImageSize):
53293         * page/gtk/EventHandlerGtk.cpp:
53294         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
53295         (WebCore::EventHandler::createDraggingClipboard):
53296         * page/gtk/FrameGtk.cpp:
53297         (WebCore::Frame::dragImageForSelection):
53298         * platform/graphics/cairo/AffineTransformCairo.cpp:
53299         (WebCore::AffineTransform::mapRect):
53300         (WebCore::AffineTransform::isIdentity):
53301         (WebCore::AffineTransform::operator== ):
53302         * platform/graphics/cairo/GraphicsContextCairo.cpp:
53303         (WebCore::GraphicsContext::drawLine):
53304         * platform/graphics/cairo/ImageBufferCairo.cpp:
53305         * platform/graphics/cairo/ImageCairo.cpp:
53306         * platform/graphics/cairo/ImageSourceCairo.cpp:
53307         (WebCore::createDecoder):
53308         * platform/graphics/gtk/FontCacheGtk.cpp:
53309         * platform/graphics/gtk/FontGtk.cpp:
53310         * platform/graphics/gtk/FontPlatformData.h:
53311         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
53312         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
53313         * platform/graphics/gtk/IconGtk.cpp:
53314         * platform/graphics/gtk/ImageGtk.cpp:
53315         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
53316         * platform/gtk/ClipboardGtk.h:
53317         * platform/gtk/ContextMenuItemGtk.cpp:
53318         (WebCore::ContextMenuItem::createNativeMenuItem):
53319         * platform/gtk/CursorGtk.cpp:
53320         * platform/gtk/DragDataGtk.cpp:
53321         * platform/gtk/DragImageGtk.cpp:
53322         (WebCore::createDragImageIconForCachedImage):
53323         * platform/gtk/FileChooserGtk.cpp:
53324         (WebCore::stringByAdoptingFileSystemRepresentation):
53325         * platform/gtk/FileSystemGtk.cpp:
53326         (WebCore::fileExists):
53327         (WebCore::deleteFile):
53328         (WebCore::deleteEmptyDirectory):
53329         * platform/gtk/KeyEventGtk.cpp:
53330         * platform/gtk/KeyboardCodes.h:
53331         * platform/gtk/LocalizedStringsGtk.cpp:
53332         (WebCore::inputElementAltText):
53333         (WebCore::resetButtonDefaultLabel):
53334         (WebCore::fileButtonChooseFileLabel):
53335         (WebCore::fileButtonNoFileSelectedLabel):
53336         (WebCore::contextMenuItemTagOpenImageInNewWindow):
53337         * platform/gtk/MIMETypeRegistryGtk.cpp:
53338         * platform/gtk/MouseEventGtk.cpp:
53339         * platform/gtk/PasteboardGtk.cpp:
53340         (WebCore::PasteboardSelectionData::markup):
53341         (WebCore::Pasteboard::writeSelection):
53342         * platform/gtk/PasteboardHelper.h:
53343         * platform/gtk/PlatformScreenGtk.cpp:
53344         (WebCore::screenDepth):
53345         (WebCore::screenIsMonochrome):
53346         (WebCore::screenRect):
53347         (WebCore::screenAvailableRect):
53348         * platform/gtk/PlatformScrollBar.h:
53349         * platform/gtk/PlatformScrollBarGtk.cpp:
53350         (PlatformScrollbar::PlatformScrollbar):
53351         (PlatformScrollbar::updateThumbPosition):
53352         * platform/gtk/PopupMenuGtk.cpp:
53353         (WebCore::PopupMenu::updateFromElement):
53354         * platform/gtk/RenderThemeGtk.h:
53355         * platform/gtk/ScrollViewGtk.cpp:
53356         (WebCore::ScrollView::scrollBy):
53357         (WebCore::ScrollView::addChild):
53358         (WebCore::ScrollView::updateScrollbars):
53359         (WebCore::ScrollView::windowToContents):
53360         (WebCore::ScrollView::contentsToWindow):
53361         (WebCore::ScrollView::scrollbarUnderMouse):
53362         * platform/gtk/SearchPopupMenuGtk.cpp:
53363         * platform/gtk/SharedTimerGtk.cpp:
53364         * platform/gtk/SystemTimeLinux.cpp:
53365         (WebCore::currentTime):
53366         * platform/gtk/TemporaryLinkStubs.cpp:
53367         (PlugInInfoStore::pluginNameForMIMEType):
53368         * platform/gtk/ThreadingGtk.cpp:
53369         (WebCore::establishIdentifierForThread):
53370         (WebCore::threadForIdentifier):
53371         (WebCore::clearThreadForIdentifier):
53372         (WebCore::ThreadCondition::ThreadCondition):
53373         * platform/gtk/WheelEventGtk.cpp:
53374         * platform/gtk/WidgetGtk.cpp:
53375         * platform/network/curl/ResourceHandleCurl.cpp:
53376         * platform/network/curl/ResourceHandleManager.cpp:
53377         (WebCore::ResourceHandleManager::setupPOST):
53378         * platform/network/curl/ResourceHandleManager.h:
53379         * platform/network/curl/ResourceRequest.h:
53380         (WebCore::ResourceRequest::ResourceRequest):
53381         * platform/network/curl/ResourceResponse.h:
53382
53383 2008-02-03  Christian Dywan  <christian@imendio.com>
53384
53385         Reviewed by Alp Toker.
53386
53387         http://bugs.webkit.org/show_bug.cgi?id=17046
53388         [GTK] Context menu fixes and customisation suport
53389
53390         Provide standard GTK+ context menu items where appropriate.
53391
53392         Note that this change makes direct use of WebKit from WebCore which is
53393         against WebKit/GTK+ guidelines. The ContextMenu abstraction should be
53394         fixed at some point.
53395
53396         * page/ContextMenuController.cpp:
53397         (WebCore::ContextMenuController::contextMenuItemSelected):
53398         * platform/ContextMenu.cpp:
53399         (WebCore::createAndAppendInputMethodsSubMenu):
53400         (WebCore::insertControlCharacter):
53401         (WebCore::createAndAppendUnicodeSubMenu):
53402         (WebCore::ContextMenu::populate):
53403         (ContextMenu::checkOrEnableIfNeeded):
53404         * platform/ContextMenuItem.h:
53405         * platform/LocalizedStrings.h:
53406         * platform/gtk/ContextMenuItemGtk.cpp:
53407         (WebCore::gtkStockIDFromContextMenuAction):
53408         * platform/gtk/LocalizedStringsGtk.cpp:
53409         (WebCore::gtkStockLabel):
53410         (WebCore::contextMenuItemTagCopy):
53411         (WebCore::contextMenuItemTagDelete):
53412         (WebCore::contextMenuItemTagSelectAll):
53413         (WebCore::contextMenuItemTagUnicode):
53414         (WebCore::contextMenuItemTagInputMethods):
53415         (WebCore::contextMenuItemTagGoBack):
53416         (WebCore::contextMenuItemTagGoForward):
53417         (WebCore::contextMenuItemTagStop):
53418         (WebCore::contextMenuItemTagCut):
53419         (WebCore::contextMenuItemTagPaste):
53420         (WebCore::contextMenuItemTagBold):
53421         (WebCore::contextMenuItemTagItalic):
53422         (WebCore::contextMenuItemTagUnderline):
53423
53424 2008-02-03  Oliver Hunt  <oliver@apple.com>
53425
53426         Reviewed by Maciej.
53427
53428         Bug 17169: Support transform on Canvas
53429
53430         Nice and simple patch as the cross-platform code to apply
53431         a transform was already there.
53432
53433         Tests: fast/canvas/canvas-transform-identity.html
53434                fast/canvas/canvas-transform-infinity.html
53435                fast/canvas/canvas-transform-multiply.html
53436                fast/canvas/canvas-transform-nan.html
53437                fast/canvas/canvas-transform-skewed.html
53438
53439         * html/CanvasRenderingContext2D.cpp:
53440         (WebCore::CanvasRenderingContext2D::transform):
53441         * html/CanvasRenderingContext2D.h:
53442         * html/CanvasRenderingContext2D.idl:
53443
53444 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
53445
53446         Reviewed by Oliver.
53447
53448         Fix mistake in SVGImageElement, breaking "Dock" example of carto.net
53449         It was comparing against the wrong attribute names in svgAttributeChanged().
53450
53451         Added testcase: svg/custom/js-update-image.svg
53452
53453         * svg/SVGImageElement.cpp:
53454         (WebCore::SVGImageElement::svgAttributeChanged):
53455
53456 2008-02-03  Eric Seidel  <eric@webkit.org>
53457
53458         Reviewed by darin.
53459
53460         Acid3 expects textNode.localName === null
53461         http://bugs.webkit.org/show_bug.cgi?id=17060
53462
53463         Test: fast/dom/Node/initial-values.html
53464
53465         * dom/Comment.cpp: remove localName implementation
53466         * dom/Comment.h:
53467         * dom/Node.cpp: return nullAtom instead of emptyAtom
53468         * dom/Text.cpp: remove localName implementation
53469         * dom/Text.h:
53470
53471 2008-02-03  Eric Seidel  <eric@webkit.org>
53472
53473         Reviewed by darin.
53474
53475         Make createElementNS and createAttributeNS follow the (vague) DOM Core 2 spec
53476         by throwing exceptions for more types of invalid qualified names.
53477         http://bugs.webkit.org/show_bug.cgi?id=16833
53478
53479         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
53480                fast/dom/Document/createElementNS-namespace-err.html
53481
53482         * dom/Document.cpp:
53483         (WebCore::Document::createElement):
53484         (WebCore::hasNamespaceError):
53485         (WebCore::Document::createElementNS):
53486         (WebCore::Document::createAttributeNS):
53487         * dom/Document.idl:
53488
53489 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
53490
53491         Reviewed by Eric.
53492
53493         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15394
53494
53495         Dramatically improve dynamic update performance in DOM / SVG DOM.
53496
53497         The notifyAttributeChange() sledgehammer is gone now. It was implemented on quite a lot of
53498         SVG*Element classes and blindly reacted on any property change caused by DOM / SVG DOM
53499         by rebuilding style/renderer etc. without actually checking what changed. SVG used a hack
53500         for years that attributeChanged() called notifyAttributeChange() - which results in poor
53501         scripting performance and/or dynamic creation/modification of elements using SVG DOM.
53502
53503         Properly implement childrenChanged / attributeChanged in SVG with some derivation from the HTML code.
53504         Our SVG* element classes implement "svgAttributeChanged(const QualifiedName&)" instead of
53505         "attributeChanged(Attribute*...)" to be able to unify DOM / SVG DOM updates. SVG DOM classes
53506         are aware of the attribute name they belong to. So when using "rectElement.transform.baseVal.getItem(0).setRotate(45)"
53507         SVG DOM updates the <rect> element by calling svgAttributeChanged(SVGNames::transformAttr) on the corresponding
53508         SVGRectElement. So we're now able to handle fast dynamic updates in a unified way - leading to less bugs.
53509
53510         HTML dynamic updates vs. SVG dynamic updates:
53511
53512         HTML:
53513             1) setAttribute("foo", "bar") -> attributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
53514             2) someObject.foo = "bar" -> HTML code maps to setAttribute calls, ends up taking the same route as 1)
53515             3) someObject.style.foo = "bar" -> setChanged -> recalcStyle (possible relayout)
53516
53517         SVG:
53518             1) setAttribute("foo", "bar") -> attributeChanged -> svgAttributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
53519             2) same, currently most functions are not yet converted to this new system! (most noticeable in SVGMarkerElement::setOrientToAngle)    
53520             3) same
53521             4) someRectElement.x.baseVal.value = 100 -> svgAttributeChanged -> setChanged/setNeedsLayout (special SVG DOM updating)
53522         
53523         The new SVG DOM updating concept 4) uses the same updating logic as 1) and 2), so we're actually modelling the HTML way.
53524         SVG handles calling setChanged/setNeedsLayout in svgAttributeChanged, unlike HTML which uses parseMappedAttribute for that.
53525
53526         Only updated all elements necessary to let us pass layout tests w/o regressions. Need to crawl through
53527         all SVG*Element classes and implement svgAttributeChanged / childrenChanged anywhere needed in a follow-up patch.
53528
53529         * bindings/js/JSSVGPODTypeWrapper.h:
53530         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
53531         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
53532         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
53533         (WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
53534         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
53535         * bindings/js/JSSVGPathSegListCustom.cpp:
53536         (WebCore::JSSVGPathSegList::clear):
53537         (WebCore::JSSVGPathSegList::initialize):
53538         (WebCore::JSSVGPathSegList::insertItemBefore):
53539         (WebCore::JSSVGPathSegList::replaceItem):
53540         (WebCore::JSSVGPathSegList::removeItem):
53541         (WebCore::JSSVGPathSegList::appendItem):
53542         * bindings/js/JSSVGPointListCustom.cpp:
53543         (WebCore::JSSVGPointList::clear):
53544         (WebCore::JSSVGPointList::initialize):
53545         (WebCore::JSSVGPointList::getItem):
53546         (WebCore::JSSVGPointList::insertItemBefore):
53547         (WebCore::JSSVGPointList::replaceItem):
53548         (WebCore::JSSVGPointList::removeItem):
53549         (WebCore::JSSVGPointList::appendItem):
53550         * bindings/js/JSSVGTransformListCustom.cpp:
53551         (WebCore::JSSVGTransformList::clear):
53552         (WebCore::JSSVGTransformList::initialize):
53553         (WebCore::JSSVGTransformList::getItem):
53554         (WebCore::JSSVGTransformList::insertItemBefore):
53555         (WebCore::JSSVGTransformList::replaceItem):
53556         (WebCore::JSSVGTransformList::removeItem):
53557         (WebCore::JSSVGTransformList::appendItem):
53558         * bindings/scripts/CodeGeneratorJS.pm:
53559         * rendering/RenderSVGGradientStop.cpp:
53560         (WebCore::RenderSVGGradientStop::setStyle):
53561         * rendering/RenderSVGGradientStop.h:
53562         * svg/SVGAElement.cpp:
53563         (WebCore::SVGAElement::defaultEventHandler):
53564         * svg/SVGAElement.h:
53565         * svg/SVGAngle.cpp:
53566         * svg/SVGAngle.h:
53567         (WebCore::SVGAngle::associatedAttributeName):
53568         * svg/SVGAnimatedTemplate.h:
53569         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
53570         (WebCore::SVGAnimatedTemplate::wrapperCache):
53571         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
53572         (WebCore::lookupOrCreateWrapper):
53573         * svg/SVGAnimationElement.cpp:
53574         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
53575         * svg/SVGAnimationElement.h:
53576         * svg/SVGCircleElement.cpp:
53577         (WebCore::SVGCircleElement::svgAttributeChanged):
53578         * svg/SVGCircleElement.h:
53579         * svg/SVGClipPathElement.cpp:
53580         (WebCore::SVGClipPathElement::svgAttributeChanged):
53581         (WebCore::SVGClipPathElement::childrenChanged):
53582         (WebCore::SVGClipPathElement::canvasResource):
53583         * svg/SVGClipPathElement.h:
53584         (WebCore::SVGClipPathElement::isValid):
53585         (WebCore::SVGClipPathElement::rendererIsNeeded):
53586         * svg/SVGComponentTransferFunctionElement.cpp:
53587         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
53588         * svg/SVGComponentTransferFunctionElement.h:
53589         * svg/SVGCursorElement.cpp:
53590         * svg/SVGElement.cpp:
53591         (WebCore::SVGElement::insertedIntoDocument):
53592         (WebCore::SVGElement::attributeChanged):
53593         * svg/SVGElement.h:
53594         (WebCore::SVGElement::svgAttributeChanged):
53595         * svg/SVGEllipseElement.cpp:
53596         (WebCore::SVGEllipseElement::svgAttributeChanged):
53597         * svg/SVGEllipseElement.h:
53598         * svg/SVGExternalResourcesRequired.cpp:
53599         (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
53600         * svg/SVGExternalResourcesRequired.h:
53601         * svg/SVGFEBlendElement.cpp:
53602         * svg/SVGFEColorMatrixElement.cpp:
53603         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
53604         * svg/SVGFEComponentTransferElement.cpp:
53605         * svg/SVGFECompositeElement.cpp:
53606         * svg/SVGFEDiffuseLightingElement.cpp:
53607         * svg/SVGFEDisplacementMapElement.cpp:
53608         * svg/SVGFEFloodElement.cpp:
53609         * svg/SVGFEGaussianBlurElement.cpp:
53610         * svg/SVGFEImageElement.cpp:
53611         * svg/SVGFELightElement.cpp:
53612         * svg/SVGFEMergeNodeElement.cpp:
53613         * svg/SVGFEOffsetElement.cpp:
53614         * svg/SVGFESpecularLightingElement.cpp:
53615         * svg/SVGFETileElement.cpp:
53616         * svg/SVGFETurbulenceElement.cpp:
53617         * svg/SVGFilterElement.cpp:
53618         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
53619         * svg/SVGFitToViewBox.cpp:
53620         (WebCore::SVGFitToViewBox::isKnownAttribute):
53621         * svg/SVGFitToViewBox.h:
53622         * svg/SVGForeignObjectElement.cpp:
53623         * svg/SVGGElement.cpp:
53624         (WebCore::SVGGElement::svgAttributeChanged):
53625         (WebCore::SVGGElement::childrenChanged):
53626         * svg/SVGGElement.h:
53627         * svg/SVGGradientElement.cpp:
53628         (WebCore::SVGGradientElement::SVGGradientElement):
53629         (WebCore::SVGGradientElement::svgAttributeChanged):
53630         (WebCore::SVGGradientElement::childrenChanged):
53631         (WebCore::SVGGradientElement::buildStops):
53632         * svg/SVGGradientElement.h:
53633         * svg/SVGImageElement.cpp:
53634         (WebCore::SVGImageElement::parseMappedAttribute):
53635         (WebCore::SVGImageElement::svgAttributeChanged):
53636         * svg/SVGImageElement.h:
53637         * svg/SVGLangSpace.cpp:
53638         (WebCore::SVGLangSpace::isKnownAttribute):
53639         * svg/SVGLangSpace.h:
53640         * svg/SVGLengthList.cpp:
53641         (WebCore::SVGLengthList::SVGLengthList):
53642         * svg/SVGLengthList.h:
53643         * svg/SVGLineElement.cpp:
53644         (WebCore::SVGLineElement::svgAttributeChanged):
53645         * svg/SVGLineElement.h:
53646         * svg/SVGLinearGradientElement.cpp:
53647         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
53648         * svg/SVGLinearGradientElement.h:
53649         * svg/SVGList.h:
53650         (WebCore::SVGList::SVGList):
53651         (WebCore::SVGList::associatedAttributeName):
53652         (WebCore::SVGPODList::SVGPODList):
53653         * svg/SVGMarkerElement.cpp:
53654         (WebCore::SVGMarkerElement::svgAttributeChanged):
53655         (WebCore::SVGMarkerElement::childrenChanged):
53656         * svg/SVGMarkerElement.h:
53657         * svg/SVGMaskElement.cpp:
53658         (WebCore::SVGMaskElement::svgAttributeChanged):
53659         (WebCore::SVGMaskElement::childrenChanged):
53660         * svg/SVGMaskElement.h:
53661         * svg/SVGNumberList.cpp:
53662         (WebCore::SVGNumberList::SVGNumberList):
53663         * svg/SVGNumberList.h:
53664         * svg/SVGPathElement.cpp:
53665         (WebCore::SVGPathElement::svgAttributeChanged):
53666         (WebCore::SVGPathElement::pathSegList):
53667         * svg/SVGPathElement.h:
53668         * svg/SVGPathSeg.h:
53669         (WebCore::SVGPathSeg::associatedAttributeName):
53670         * svg/SVGPathSegList.cpp:
53671         (WebCore::SVGPathSegList::SVGPathSegList):
53672         * svg/SVGPathSegList.h:
53673         * svg/SVGPatternElement.cpp:
53674         (WebCore::SVGPatternElement::SVGPatternElement):
53675         (WebCore::SVGPatternElement::svgAttributeChanged):
53676         (WebCore::SVGPatternElement::childrenChanged):
53677         * svg/SVGPatternElement.h:
53678         * svg/SVGPointList.cpp:
53679         (WebCore::SVGPointList::SVGPointList):
53680         * svg/SVGPointList.h:
53681         * svg/SVGPolyElement.cpp:
53682         (WebCore::SVGPolyElement::SVGPolyElement):
53683         (WebCore::SVGPolyElement::points):
53684         (WebCore::SVGPolyElement::parseMappedAttribute):
53685         (WebCore::SVGPolyElement::svgAttributeChanged):
53686         * svg/SVGPolyElement.h:
53687         * svg/SVGPolygonElement.cpp:
53688         * svg/SVGPolygonElement.h:
53689         * svg/SVGPolylineElement.cpp:
53690         * svg/SVGPolylineElement.h:
53691         * svg/SVGPreserveAspectRatio.cpp:
53692         * svg/SVGPreserveAspectRatio.h:
53693         (WebCore::SVGPreserveAspectRatio::associatedAttributeName):
53694         * svg/SVGRadialGradientElement.cpp:
53695         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
53696         * svg/SVGRadialGradientElement.h:
53697         * svg/SVGRectElement.cpp:
53698         (WebCore::SVGRectElement::svgAttributeChanged):
53699         * svg/SVGRectElement.h:
53700         * svg/SVGSVGElement.cpp:
53701         (WebCore::SVGSVGElement::parseMappedAttribute):
53702         (WebCore::SVGSVGElement::svgAttributeChanged):
53703         * svg/SVGSVGElement.h:
53704         * svg/SVGStopElement.cpp:
53705         (WebCore::SVGStopElement::parseMappedAttribute):
53706         (WebCore::SVGStopElement::createRenderer):
53707         * svg/SVGStopElement.h:
53708         * svg/SVGStringList.cpp:
53709         (WebCore::SVGStringList::SVGStringList):
53710         * svg/SVGStringList.h:
53711         * svg/SVGStylable.cpp:
53712         * svg/SVGStylable.h:
53713         * svg/SVGStyledElement.cpp:
53714         (WebCore::SVGStyledElement::isKnownAttribute):
53715         (WebCore::SVGStyledElement::svgAttributeChanged):
53716         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
53717         (WebCore::SVGStyledElement::childrenChanged):
53718         * svg/SVGStyledElement.h:
53719         * svg/SVGStyledLocatableElement.cpp:
53720         * svg/SVGStyledLocatableElement.h:
53721         * svg/SVGStyledTransformableElement.cpp:
53722         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
53723         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
53724         (WebCore::SVGStyledTransformableElement::isKnownAttribute):
53725         * svg/SVGStyledTransformableElement.h:
53726         * svg/SVGTests.cpp:
53727         (WebCore::SVGTests::requiredFeatures):
53728         (WebCore::SVGTests::requiredExtensions):
53729         (WebCore::SVGTests::systemLanguage):
53730         (WebCore::SVGTests::isKnownAttribute):
53731         * svg/SVGTests.h:
53732         * svg/SVGTextContentElement.cpp:
53733         * svg/SVGTextElement.cpp:
53734         (WebCore::SVGTextElement::SVGTextElement):
53735         * svg/SVGTextElement.h:
53736         * svg/SVGTextPathElement.cpp:
53737         * svg/SVGTextPathElement.h:
53738         * svg/SVGTextPositioningElement.cpp:
53739         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
53740         * svg/SVGTextPositioningElement.h:
53741         * svg/SVGTransformList.cpp:
53742         (SVGTransformList::SVGTransformList):
53743         * svg/SVGTransformList.h:
53744         * svg/SVGTransformable.cpp:
53745         (WebCore::SVGTransformable::isKnownAttribute):
53746         * svg/SVGTransformable.h:
53747         * svg/SVGURIReference.cpp:
53748         (WebCore::SVGURIReference::isKnownAttribute):
53749         * svg/SVGURIReference.h:
53750         * svg/SVGUseElement.cpp:
53751         (WebCore::SVGUseElement::insertedIntoDocument):
53752         (WebCore::SVGUseElement::svgAttributeChanged):
53753         (WebCore::SVGUseElement::childrenChanged):
53754         (WebCore::SVGUseElement::buildPendingResource):
53755         * svg/SVGUseElement.h:
53756         * svg/SVGViewElement.cpp:
53757         (WebCore::SVGViewElement::SVGViewElement):
53758         (WebCore::SVGViewElement::viewTarget):
53759         (WebCore::SVGViewElement::parseMappedAttribute):
53760         * svg/SVGViewElement.h:
53761         * svg/SVGViewSpec.cpp:
53762         (WebCore::SVGViewSpec::SVGViewSpec):
53763         * svg/SVGViewSpec.h:
53764         * svg/SVGZoomAndPan.cpp:
53765         (WebCore::SVGZoomAndPan::isKnownAttribute):
53766         * svg/SVGZoomAndPan.h:
53767         * svg/graphics/SVGResource.cpp:
53768         (WebCore::SVGResource::invalidate):
53769         (WebCore::SVGResource::invalidateClients):
53770         (WebCore::SVGResource::addClient):
53771         * svg/graphics/SVGResource.h:
53772         * svg/graphics/SVGResourceMasker.cpp:
53773         (WebCore::SVGResourceMasker::invalidate):
53774         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
53775         (WebCore::SVGPaintServerGradient::invalidate):
53776         * svg/graphics/filters/SVGFEImage.cpp:
53777         (WebCore::SVGFEImage::imageChanged):
53778
53779 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
53780
53781         Build fix for last wx commit (a couple things were not committed).
53782
53783         * platform/ScrollView.h:
53784         * platform/Widget.h:
53785
53786 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
53787
53788         Clean up overlooked coding guideline issues from last commit.
53789
53790         * platform/wx/ScrollViewWx.cpp:
53791         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
53792         (WebCore::ScrollView::update):
53793         (WebCore::ScrollView::scrollBy):
53794         (WebCore::ScrollView::resizeContents):
53795         (WebCore::ScrollView::adjustScrollbars):
53796         (WebCore::ScrollView::setScrollbarsMode):
53797         (WebCore::ScrollView::setHScrollbarMode):
53798         (WebCore::ScrollView::setVScrollbarMode):
53799         (WebCore::ScrollView::suppressScrollbars):
53800         * platform/wx/WidgetWx.cpp:
53801         (WebCore::Widget::setCursor):
53802
53803 2008-02-03  Kevin Watters  <kevinwatters@gmail.com>
53804
53805         Reviewed by Kevin Ollivier.
53806
53807         * platform/wx/RenderThemeWx.cpp:
53808         (WebCore::RenderThemeWx::paintButton):
53809         * platform/wx/ScrollViewWx.cpp:
53810         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
53811         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
53812         (WebCore::ScrollView::ScrollViewPrivate::OnMouseWheelEvents):
53813         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
53814         (WebCore::ScrollView::ScrollView):
53815         (WebCore::ScrollView::setNativeWindow):
53816         (WebCore::ScrollView::updateContents):
53817         (WebCore::ScrollView::update):
53818         (WebCore::ScrollView::visibleWidth):
53819         (WebCore::ScrollView::visibleHeight):
53820         (WebCore::ScrollView::setContentsPos):
53821         (WebCore::ScrollView::scrollBy):
53822         (WebCore::ScrollView::resizeContents):
53823         (WebCore::ScrollView::contentsX):
53824         (WebCore::ScrollView::contentsY):
53825         (WebCore::ScrollView::contentsWidth):
53826         (WebCore::ScrollView::contentsHeight):
53827         (WebCore::ScrollView::AdjustScrollbars):
53828         (WebCore::ScrollView::setScrollbarsMode):
53829         (WebCore::ScrollView::setHScrollbarMode):
53830         (WebCore::ScrollView::setVScrollbarMode):
53831         (WebCore::ScrollView::suppressScrollbars):
53832         (WebCore::ScrollView::inWindow):
53833         (WebCore::ScrollView::wheelEvent):
53834         (WebCore::ScrollView::addChild):
53835         (WebCore::ScrollView::removeChild):
53836         (WebCore::ScrollView::children):
53837         (WebCore::ScrollView::scrollRectIntoViewRecursively):
53838         (WebCore::ScrollView::scrollbarUnderMouse):
53839         * platform/wx/WidgetWx.cpp:
53840         (WebCore::Widget::Widget):
53841         (WebCore::Widget::~Widget):
53842         (WebCore::Widget::nativeWindow):
53843         (WebCore::Widget::setNativeWindow):
53844
53845 2008-02-02  David Hyatt  <hyatt@apple.com>
53846
53847         Fix for bug 5468, support CSS3 :only-child and :only-of-type selectors.
53848
53849         Reviewed by olliej
53850
53851         Added fast/css/only-child-pseudo-class.html, fast/css/only-of-type-pseudo-class.html
53852
53853         * css/CSSSelector.cpp:
53854         (WebCore::CSSSelector::extractPseudoType):
53855         * css/CSSSelector.h:
53856         (WebCore::CSSSelector::):
53857         * css/CSSStyleSelector.cpp:
53858         (WebCore::CSSStyleSelector::checkOneSelector):
53859
53860 2008-02-02  Darin Adler  <darin@apple.com>
53861
53862         Reviewed by Geoff Garen.
53863
53864         PLT speedup related to <rdar://problem/5659272> REGRESSION: PLT .4%
53865         slower due to r28884 (global variable symbol table optimization)
53866
53867         * history/CachedPage.cpp:
53868         (WebCore::CachedPage::CachedPage): Removed saveSymbolTable call.
53869         (WebCore::CachedPage::restore): Removed restoreSymbolTable call.
53870         (WebCore::CachedPage::clear): Removed clear of m_windowSymbolTable.
53871
53872         * history/CachedPage.h: Removed m_windowSymbolTable, since save/restoreLocalStorage
53873         now takes care of the symbol table. Also removed many unnecessary includes.
53874
53875 2008-02-02  Tony Chang  <idealisms@gmail.com>
53876
53877         Reviewed by eseidel.
53878
53879         Add an include for for <objidl.h> which isn't included
53880         by default with WIN32_LEAN_AND_MEAN.
53881         * platform/graphics/FontCache.h:
53882
53883 2008-02-02  Kevin Watters  <kevin@dotsyntax.com>
53884
53885         Reviewed by Kevin Ollivier.
53886
53887         wxFont is reference counted and meant to be used as as a value
53888         object; when using wxFont*, ref-counting was not happening properly
53889         and the font object would be destroyed while still in use.
53890
53891         Also, fix memory leak in wx's FrameData::clear() method.
53892
53893         * platform/graphics/SimpleFontData.h:
53894         (WebCore::SimpleFontData::getWxFont):
53895         * platform/graphics/wx/FontPlatformData.h:
53896         (WebCore::FontPlatformData::):
53897         (WebCore::FontPlatformData::FontPlatformData):
53898         (WebCore::FontPlatformData::font):
53899         (WebCore::FontPlatformData::hash):
53900         (WebCore::FontPlatformData::operator==):
53901         (WebCore::FontPlatformData::computeHash):
53902         * platform/graphics/wx/FontPlatformDataWx.cpp:
53903         (WebCore::fontFamilyToWxFontFamily):
53904         (WebCore::FontPlatformData::FontPlatformData):
53905         (WebCore::FontPlatformData::~FontPlatformData):
53906         * platform/graphics/wx/FontWx.cpp:
53907         (WebCore::Font::drawGlyphs):
53908         * platform/graphics/wx/SimpleFontDataWx.cpp:
53909         (WebCore::SimpleFontData::platformInit):
53910         (WebCore::SimpleFontData::determinePitch):
53911         (WebCore::SimpleFontData::platformWidthForGlyph):
53912
53913 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
53914
53915         Reviewed by Adam Roben.
53916
53917         On MSW, the wx port internally uses callbacks for wxTimer, so the
53918         wx port suffers from the same crash problem that was fixed
53919         in r28500 for the Windows port. For now, use the SharedTimerWin.cpp
53920         impl. for wx too on MSW, until a version of wx is released that
53921         fixes the issue by reworking wxTimer.
53922
53923         * page/Page.h:
53924         * platform/win/SharedTimerWin.cpp:
53925         (WebCore::TimerWindowWndProc):
53926         * webcore-wx.bkl:
53927
53928 2008-02-02  Mark Rowe  <mrowe@apple.com>
53929
53930         Qt build fix.
53931
53932         * platform/qt/ThreadingQt.cpp: Fix typo.
53933
53934 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
53935
53936         Blind build fix for Qt port. Add Threading.h include.
53937
53938         * platform/qt/ThreadingQt.cpp:
53939
53940 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
53941
53942         wx build fix - add missing include file.
53943
53944         * platform/wx/ThreadingWx.cpp:
53945
53946 2008-02-02  David Hyatt  <hyatt@apple.com>
53947
53948         Fix for bug 4812. Support last-child and last-of-type CSS3 selectors.  Brings Acid3 score up to 68/100.
53949
53950         Reviewed by olliej
53951
53952         Added fast/css/last-child-pseudo-class.html, fast/css/last-of-type-pseudo-class.html
53953
53954         * css/CSSGrammar.y:
53955         * css/CSSSelector.cpp:
53956         (WebCore::CSSSelector::extractPseudoType):
53957         * css/CSSSelector.h:
53958         (WebCore::CSSSelector::):
53959         * css/CSSStyleSelector.cpp:
53960         (WebCore::CSSStyleSelector::checkOneSelector):
53961
53962 2008-02-01  David Hyatt  <hyatt@apple.com>
53963
53964         Make :first-child and :first-of-type properly dynamic when the DOM changes.  Brings the Acid3 score up
53965         to 66/100.
53966
53967         Reviewed by olliej
53968
53969         Added fast/css/first-child-pseudo-class.html, fast/css/first-of-type-pseudo-class.html, fast/css/empty-body-test.html
53970
53971         * css/CSSGrammar.y:
53972         * css/CSSStyleSelector.cpp:
53973         (WebCore::CSSStyleSelector::checkOneSelector):
53974         * dom/Element.cpp:
53975         (WebCore::Element::recalcStyle):
53976         (WebCore::Element::childrenChanged):
53977         * rendering/RenderStyle.cpp:
53978         (WebCore::RenderStyle::RenderStyle):
53979         * rendering/RenderStyle.h:
53980         (WebCore::RenderStyle::childrenAffectedByFirstChildRules):
53981         (WebCore::RenderStyle::setChildrenAffectedByFirstChildRules):
53982         (WebCore::RenderStyle::childrenAffectedByLastChildRules):
53983         (WebCore::RenderStyle::setChildrenAffectedByLastChildRules):
53984         (WebCore::RenderStyle::childrenAffectedByPositionalRules):
53985         (WebCore::RenderStyle::setChildrenAffectedByPositionalRules):
53986         (WebCore::RenderStyle::firstChildState):
53987         (WebCore::RenderStyle::setFirstChildState):
53988         (WebCore::RenderStyle::lastChildState):
53989         (WebCore::RenderStyle::setLastChildState):
53990
53991 2008-02-02  Dan Bernstein  <mitz@apple.com>
53992
53993         Reviewed by Oliver Hunt.
53994
53995         - fix <rdar://problem/5720637> Missing characters in right-to-left complex text where different fonts are used in the same run
53996
53997         * platform/graphics/win/UniscribeController.cpp:
53998         (WebCore::UniscribeController::advance): Fixed an off-by-1 error in the
53999         start offset of sub-runs of RTL runs. Changed to update
54000         m_currentCharacter to the first character of the sub-run before calling
54001         itemizeShapeAndPlace. In RTL runs, m_currentCharacter decreases as
54002         sub-runs are processed from left to right.
54003         (WebCore::UniscribeController::itemizeShapeAndPlace): Removed the
54004         updating of m_currentCharacter because advance() does it now.
54005
54006 2008-02-01  Brady Eidson  <beidson@apple.com>
54007
54008         Reviewed by Darin's rubberstamp
54009
54010         Move the SecurityOriginHash out into a separate header as it will soon be used in different places
54011
54012         * WebCore.xcodeproj/project.pbxproj:
54013         * platform/SecurityOriginHash.h: Added.
54014         (WebCore::SecurityOriginHash::hash):
54015         (WebCore::SecurityOriginHash::equal):
54016         (WebCore::SecurityOriginTraits::deletedValue):
54017         (WebCore::SecurityOriginTraits::emptyValue):
54018         * storage/DatabaseTracker.cpp:
54019
54020 2008-02-01  Darin Adler  <darin@apple.com>
54021
54022         Reviewed by Tim.
54023
54024         - fixed mistake in the JSLock fix that caused an assertion every time
54025
54026         * bindings/js/JSCustomSQLTransactionCallback.cpp:
54027         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Added JSLock.
54028         (WebCore::unprotectOnMainThread): Ditto.
54029
54030 2008-02-01  Anders Carlsson  <andersca@apple.com>
54031
54032         Reviewed by Antti and Darin.
54033
54034         Change Text::createWithLengthLimit to take a UChar pointer instead of a string. This
54035         lets us avoid making a copy of the buffer in TextDocument.cpp.
54036         
54037         * dom/Text.cpp:
54038         (WebCore::Text::createWithLengthLimit):
54039         * dom/Text.h:
54040         * html/HTMLParser.cpp:
54041         (WebCore::HTMLParser::parseToken):
54042         * loader/TextDocument.cpp:
54043         (WebCore::TextTokenizer::write):
54044
54045 2008-02-01  Darin Adler  <darin@apple.com>
54046
54047         Reviewed by Adam.
54048
54049         * platform/network/mac/ResourceHandleMac.mm:
54050         (WebCore::ResourceHandle::loadsBlocked): Fix grammar and word typo.
54051
54052 2008-02-01  Darin Adler  <darin@apple.com>
54053
54054         Reviewed by Adam.
54055
54056         - fix <rdar://problem/4527931> showModalDialog calls from onload functions fail (Aspect)
54057
54058         No automated regression test because showModalDialog doesn't work in DumpRenderTree.
54059
54060         * platform/network/mac/ResourceHandleMac.mm:
54061         (WebCore::CallbackGuard::CallbackGuard): Added.
54062         (WebCore::CallbackGuard::~CallbackGuard): Added.
54063         (WebCore::ResourceHandle::supportsBufferedData): Simplified to take advantage of how
54064         static initialization works in C++.
54065         (WebCore::ResourceHandle::loadsBlocked): Always return false on Leopard. The problem in
54066         NSURLConnection that created the need to block loads is fixed in Leoaprd. This is the
54067         bug fix.
54068         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
54069         Use CallbackGuard instead of directly incrementing the count; allows us to omit the code
54070         entirely on Leopard.
54071         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
54072         Ditto.
54073         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
54074         Ditto.
54075         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
54076         Ditto.
54077         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
54078         Ditto.
54079         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
54080         Ditto.
54081         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
54082         Ditto.
54083         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
54084         Ditto.
54085         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
54086         Ditto. Fixes a problem where this could leave inNSURLConnectionCallback set
54087         permanently in one of the code paths; this would break showModalDialog from that
54088         point on. This problem doesn't affect Safari.
54089
54090 2008-02-01  Darin Adler  <darin@apple.com>
54091
54092         * platform/network/mac/ResourceHandleMac.mm:
54093         (WebCore::ResourceHandle::loadsBlocked): Roll out accidentally checked in file.
54094
54095 2008-02-01  Darin Adler  <darin@apple.com>
54096
54097         Reviewed by Geoff and Brady.
54098
54099         - fix <rdar://problem/5680469> Each database worker thread takes a JSLock,
54100           which slows down all JavaScript execution until the thread terminates
54101
54102         * bindings/js/JSCustomSQLTransactionCallback.cpp:
54103         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
54104         Explicitly gcProtect, since we aren't using ProtectedPtr any more.
54105         (WebCore::unprotectOnMainThread): Added.
54106         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
54107         Use unprotectOnMainThread rather than doing a gcUnprotect here.
54108         * bindings/js/JSCustomSQLTransactionCallback.h: Changed m_callback from
54109         a ProtectedPtr to a plain old JSObject*; we gcProtect by hand now.
54110
54111         * loader/icon/IconDatabase.cpp:
54112         (WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread):
54113         Renamed. Changed to takea a void* with the icon database pointer.
54114         (WebCore::IconDatabase::notifyPendingLoadDecisions): Renamed.
54115         (WebCore::IconDatabase::performURLImport): Updated name, and pass the
54116         icon database pointer in.
54117         * loader/icon/IconDatabase.h: Renamed and added void* parameter.
54118
54119         * platform/Threading.h: Changed callOnMainThread to take a function with a
54120         single parameter rather than a function with no parameters. Added a typedef.
54121
54122         * platform/gtk/ThreadingGtk.cpp:
54123         (WebCore::callFunctionOnMainThread): Changed to use a structure with both
54124         a function pointer and a context pointer, and delete it after calling.
54125         (WebCore::callOnMainThread): Changed to create the structure with both
54126         the function and context pointer.
54127
54128         * platform/mac/Threading.mm:
54129         (-[WebCoreFunctionWrapper initWithFunction:context:]): Added context.
54130         (-[WebCoreFunctionWrapper invoke]): Updated to do both function and context.
54131         Renamed from _call.
54132         (WebCore::callOnMainThread): Updated to take both function and context.
54133
54134         * platform/qt/ThreadingQt.cpp:
54135         (WebCore::PerformFunctionEvent::PerformFunctionEvent): Added context.
54136         (WebCore::PerformFunctionEvent::invoke): Added. Calls function with context pointer.
54137         (WebCore::MainThreadInvoker::event): Changed to call invoke.
54138         (WebCore::callOnMainThread): Updated to take both function and context.
54139
54140         * platform/win/ThreadingWin.cpp: Added FunctionWithContext.
54141         (WebCore::callFunctionsOnMainThread): Changed to pass call function with context.
54142         (WebCore::callOnMainThread): Updated to queue both function and context.
54143
54144         * platform/wx/ThreadingWx.cpp:
54145         (WebCore::callOnMainThread): Updated to take both function and context.
54146
54147         * storage/Database.cpp:
54148         (WebCore::Database::scheduleTransactionCallback): Pass 0 for context.
54149         (WebCore::Database::deliverAllPendingCallbacks): Changed to take ignored context pointer.
54150         * storage/Database.h: Added void* parameter to deliverAllPendingCallbacks.
54151
54152         * storage/DatabaseTracker.cpp:
54153         (WebCore::DatabaseTracker::scheduleForNotification): Pass 0 for context.
54154         (WebCore::DatabaseTracker::notifyDatabasesChanged): Changed to take ignored context pointer.
54155         * storage/DatabaseTracker.h: Added void* parameter to notifyDatabasesChanged.
54156
54157 2008-02-01  Jon Honeycutt  <jhoneycutt@apple.com>
54158
54159         Rubber-stamped by Ollie.
54160
54161         * plugins/win/PluginPackageWin.cpp:
54162         (WebCore::PluginPackageWin::load): Fix two function pointers
54163
54164 2008-02-01  Geoffrey Garen  <ggaren@apple.com>
54165
54166         Reviewed by John Sullivan, Oliver Hunt.
54167
54168         Fixed <rdar://problem/5688039> REGRESSION (r29428): Weather widget
54169         fails to load due to reliance on "var location" quirk
54170         
54171         Added a Dashboard quirk.
54172
54173         * bindings/js/kjs_window.cpp:
54174         (KJS::Window::put): In DB backwards compatibility mode, make assignment
54175         to window.location in top-level windows shadow the DOM location API
54176         instead of performing a navigation. This makes a reasonable amount of
54177         sense, because widgets can't navigate their top-level frames, anyway.
54178
54179 2008-02-01  David Hyatt  <hyatt@apple.com>
54180
54181         Fix for bug 11387, CSS3 :empty selector is not dynamic.
54182
54183         Add support for dynamically updating elements whose style is affected by :empty when the child count changes.
54184
54185         Reviewed by olliej, mitzpettel
54186
54187         fast/css/empty-pseudo-class.html
54188
54189         * css/CSSStyleSelector.cpp:
54190         (WebCore::CSSStyleSelector::locateSharedStyle):
54191         (WebCore::CSSStyleSelector::checkOneSelector):
54192         * dom/Element.cpp:
54193         (WebCore::Element::childrenChanged):
54194         * dom/Element.h:
54195         * rendering/RenderStyle.h:
54196         (WebCore::RenderStyle::affectedByEmpty):
54197         (WebCore::RenderStyle::emptyState):
54198         (WebCore::RenderStyle::setEmptyState):
54199
54200 2008-02-01  Dan Bernstein  <mitz@apple.com>
54201
54202         Reviewed by Darin Adler.
54203
54204         - switch line breaking from using Carbon Unicode Utilities to using ICU
54205           on Leopard
54206           <http://bugs.webkit.org/show_bug.cgi?id=4628>
54207
54208         fast/text/international/thai-line-breaks.html results do not change.
54209
54210         * rendering/break_lines.cpp:
54211         (WebCore::nextBreakablePosition): Changed to use Carbon only on Tiger.
54212
54213 2008-02-01  Rodney Dawes  <dobey@wayofthemonkey.com>
54214
54215         Reviewed by Darin.
54216
54217         Update npfunctions.h to export the proper function signatures for UNIX and add
54218         the appropriate #if around the Windows versions
54219
54220         * plugins/npfunctions.h:
54221
54222 2008-02-01  Eric Seidel  <eric@webkit.org>
54223
54224         Reviewed by Oliver.
54225
54226         Add getSVGDocument to frame and iframe.
54227
54228         Test: svg/custom/frame-getSVGDocument.html
54229
54230         * html/HTMLEmbedElement.cpp:
54231         * html/HTMLEmbedElement.h:
54232         * html/HTMLFrameElement.idl:
54233         * html/HTMLFrameOwnerElement.cpp:
54234         (WebCore::HTMLFrameOwnerElement::getSVGDocument):
54235         * html/HTMLFrameOwnerElement.h:
54236         * html/HTMLIFrameElement.idl:
54237         * html/HTMLObjectElement.cpp:
54238         * html/HTMLObjectElement.h:
54239
54240 2008-01-30  Eric Seidel  <eric@webkit.org>
54241
54242         Reviewed by darin.
54243
54244         Beat CSSParser with the RefPtr stick.  Hopefully squashing any leaks in the process.
54245         (Deploy RefPtr and PassRefPtr throughout CSSParser)
54246         http://bugs.webkit.org/show_bug.cgi?id=17108
54247
54248         No functional changes, thus no tests.
54249
54250         * css/CSSParser.cpp:
54251         (WebCore::CSSParser::parseColor):
54252         (WebCore::CSSParser::parseValue):
54253         (WebCore::CSSParser::addBackgroundValue):
54254         (WebCore::CSSParser::parseBackgroundShorthand):
54255         (WebCore::CSSParser::addTransitionValue):
54256         (WebCore::CSSParser::parseTransitionShorthand):
54257         (WebCore::CSSParser::parseBackgroundPosition):
54258         (WebCore::CSSParser::parseBackgroundProperty):
54259         (WebCore::CSSParser::parseTransitionProperty):
54260         (WebCore::CSSParser::parseFontFaceSrc):
54261         (WebCore::ShadowParseContext::ShadowParseContext):
54262         (WebCore::CSSParser::parseShadow):
54263         (WebCore::BorderImageParseContext::BorderImageParseContext):
54264         (WebCore::BorderImageParseContext::commitBorderImage):
54265         * css/CSSParser.h:
54266         * css/SVGCSSParser.cpp:
54267         (WebCore::CSSParser::parseSVGValue):
54268
54269 2008-01-31  Oliver Hunt  <oliver@apple.com>
54270
54271         RS=Brady.
54272
54273         Add platform/Locker.h to vcproj
54274
54275         * WebCore.vcproj/WebCore.vcproj:
54276
54277 2008-01-31  Brady Eidson  <beidson@apple.com>
54278
54279         Build fix
54280
54281         * WebCore.xcodeproj/project.pbxproj: Header -> WebKit
54282
54283 2008-01-31  Brady Eidson  <beidson@apple.com>
54284
54285         Reviewed by Maciej
54286
54287         Abstracted the concept of a "Locker" as upcoming work will rely on it.
54288
54289         * platform/Locker.h: Added.  Template class to "lock()" and "unlock()" some arbitrary object
54290         (WebCore::Locker::Locker): Lock the object
54291         (WebCore::Locker::~Locker): Unlock it
54292         * platform/Threading.h: `class MutexLocker` is now `typedef Locker<Mutex>`
54293         * WebCore.xcodeproj/project.pbxproj:
54294
54295 2008-01-31  Kevin McCullough  <kmccullough@apple.com>
54296
54297         <rdar://problem/5716912> REGRESSION (r29816): Can't navigate back to
54298         Gmail Inbox from Gmail Compose page
54299         Rolling out the change that caused the regression.
54300
54301         * WebCore.base.exp:
54302         * bindings/js/JSHTMLDocumentCustom.cpp:
54303         (WebCore::JSHTMLDocument::open):
54304         * dom/DOMImplementation.cpp:
54305         (WebCore::DOMImplementation::createHTMLDocument):
54306         * dom/Document.cpp:
54307         (WebCore::Document::recalcStyle):
54308         (WebCore::Document::open):
54309         (WebCore::Document::write):
54310         (WebCore::Document::clear):
54311         * dom/Document.h:
54312         * history/HistoryItem.cpp:
54313         (WebCore::HistoryItem::HistoryItem):
54314         * history/HistoryItem.h:
54315         * loader/FrameLoader.cpp:
54316         (WebCore::FrameLoader::didExplicitOpen):
54317         (WebCore::FrameLoader::load):
54318         (WebCore::FrameLoader::reloadAllowingStaleData):
54319         (WebCore::FrameLoader::reload):
54320         (WebCore::FrameLoader::tokenizerProcessedData):
54321         (WebCore::FrameLoader::post):
54322         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
54323         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
54324         (WebCore::FrameLoader::loadItem):
54325         * loader/FrameLoader.h:
54326         * platform/text/CharacterNames.h:
54327         * xml/DOMParser.cpp:
54328         (WebCore::DOMParser::parseFromString):
54329         * xml/XMLHttpRequest.cpp:
54330         (WebCore::XMLHttpRequest::getResponseXML):
54331         * xml/XSLTProcessor.cpp:
54332         (WebCore::XSLTProcessor::createDocumentFromSource):
54333
54334 2008-01-31  Matt Lilek  <webkit@mattlilek.com>
54335
54336         Reviewed by Tim Hatcher.
54337
54338         Bug 14960: Cannot copy text in Web Inspector Network panel
54339         http://bugs.webkit.org/show_bug.cgi?id=14960
54340
54341         * page/inspector/inspector.css:
54342
54343 2008-01-31  Matt Lilek  <webkit@mattlilek.com>
54344
54345         Reviewed by Adam Roben.
54346
54347         Bug 14514: Add full URL view on mouseOver in the network page
54348         http://bugs.webkit.org/show_bug.cgi?id=14514
54349         <rdar://problem/5712841>
54350
54351         * page/inspector/inspector.js:
54352
54353 2008-01-31  Alp Toker  <alp@atoker.com>
54354
54355         Rubber-stamped Adam Roben.
54356
54357         http://bugs.webkit.org/show_bug.cgi?id=17006
54358         [GTK] Header path should be webkit/webkit.h
54359
54360         Move the GTK+ API sources as needed and update the build systems.
54361
54362         * GNUmakefile.am:
54363         * WebCore.pro:
54364
54365 2008-01-31  Sam Weinig  <sam@webkit.org>
54366
54367         Reviewed by Geoff Garen.
54368
54369         No need to get the prototype just to compare compare property names.
54370
54371         * bindings/js/JSHistoryCustom.cpp:
54372         (WebCore::JSHistory::customGetOwnPropertySlot):
54373
54374 2008-01-31  Sam Weinig  <sam@webkit.org>
54375
54376         Fix non-mac builds.
54377
54378         * GNUmakefile.am:
54379         * WebCore.pro:
54380         * WebCore.vcproj/WebCore.vcproj:
54381         * WebCoreSources.bkl:
54382
54383 2008-01-31  David Hyatt  <hyatt@apple.com>
54384
54385         Fix for bug 17101.
54386
54387         List items need to ignore the line box shrinking quirk, since IE and Firefox both do.
54388
54389         Reviewed by Eric
54390
54391         fast/lists/list-item-line-height.html
54392
54393         * rendering/InlineFlowBox.h:
54394         (WebCore::InlineFlowBox::InlineFlowBox):
54395
54396 2008-01-31  Samuel Weinig  <sam@webkit.org>
54397
54398         Reviewed by Darin Adler.
54399
54400         Fix for <rdar://problem/5708993> Mutability of the History object
54401
54402         - Don't allow cross-domain get access to any of the history objects properties
54403           except the back(), forward() and go() methods.
54404         - Don't allow cross-domain put access to any of the history objects properties.
54405         - Don't allow cross-domain enumeration of the History or Location objects.
54406
54407         Tests: http/tests/security/cross-frame-access-history-get-override.html
54408                http/tests/security/cross-frame-access-history-get.html
54409                http/tests/security/cross-frame-access-history-put.html
54410
54411         * WebCore.xcodeproj/project.pbxproj:
54412         * bindings/js/JSDOMWindowCustom.cpp: Remove unnessary KJS::'s
54413         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
54414         (WebCore::JSDOMWindow::customPut):
54415         (WebCore::JSDOMWindow::getPropertyNames): Moved implementation from KJS::Window now that the declaration is autogenerated
54416         using the new CustomGetPropertyNames.
54417         (WebCore::JSDOMWindow::postMessage):
54418
54419         * bindings/js/JSHistoryCustom.cpp: Added.
54420         (WebCore::allowsAccessFromFrame):
54421         (WebCore::JSHistory::customGetOwnPropertySlot): Only allow getting the declared functions back(), forward() and go() from cross-domain.
54422         Deny all other gets.
54423         (WebCore::JSHistory::customPut): Don't allow putting cross-domain.
54424         (WebCore::JSHistory::getPropertyNames): Don't allow enumeration cross-domain.
54425
54426         * bindings/js/JSLocation.cpp:
54427         (WebCore::allowsAccessFromFrame):
54428         (WebCore::JSLocation::getPropertyNames): Don't allow enumeration cross-domain.
54429         * bindings/js/JSLocation.h:
54430
54431         * bindings/js/kjs_window.cpp:
54432         * bindings/js/kjs_window.h:
54433
54434         * bindings/scripts/CodeGeneratorJS.pm:
54435         Add support for new CustomGetPropertNames extended attribute and changed the logic of CustomPutFunction
54436         to create an overrided put() function even if no read-write properties exist.
54437
54438         * page/DOMWindow.idl: Added CustomGetPropertNames
54439         * page/History.idl: Added CustomGetPropertNames
54440
54441 2008-01-30  Justin Garcia  <justin.garcia@apple.com>
54442
54443         Reviewed by Darin Adler.
54444         
54445         <rdar://problem/5708115> REGRESSION: Words selected with a double click and copied won't paste into Mail
54446
54447         * page/mac/WebCoreFrameBridge.h: Re-exposed smartInsertForString:, it's used by a WebKit method used by Mail.
54448
54449 2008-01-31  Adam Roben  <aroben@apple.com>
54450
54451         Add line box drawing code to InspectorController::drawNodeHighlight
54452
54453         This makes drawNodeHighlight a complete replacement for the painting
54454         code in WebKit/mac/WebNodeHighlightView.mm, and also brings line box
54455         rects to Windows for the first time.
54456
54457         Reviewed by Darin.
54458
54459         * dom/Node.h: Changed isSVGElement to always exist, but to only be
54460         virtual when ENABLE(SVG) is true. This way you can always call
54461         node->isSVGElement() without checking ENABLE(SVG).
54462         * page/InspectorController.cpp:
54463         (WebCore::InspectorController::drawNodeHighlight): Ported line box
54464         rect code from the Mac implementation in WebNodeHighlightView.mm.
54465
54466 2008-01-31  Adam Roben  <aroben@apple.com>
54467
54468         Put more knowledge about the node highlight in WebCore
54469
54470         InspectorController now calculates the overlay rect and node rect when
54471         drawing the node highlight instead of having them be passed in.
54472         InspectorController now holds onto the highlighted node so that it can
54473         determine these rects.
54474
54475         Once all platforms are calling down to drawNodeHighlight instead of
54476         drawing the highlight themselves, we can change
54477         InspectorClient::highlight(Node*) to something like
54478         InspectorClient::updateAndShowHighlight().
54479
54480         This also fixes Bug 14264: Node highlight makes it impossible to
54481         scroll the page
54482         <http://bugs.webkit.org/show_bug.cgi?id=14264>
54483         <rdar://5712788>
54484
54485         Reviewed by Darin.
54486
54487         * page/InspectorController.cpp:
54488         (WebCore::InspectorController::highlight): Store the node for use in
54489         drawNodeHighlight.
54490         (WebCore::InspectorController::drawNodeHighlight): Changed to be a
54491         const instance method. Now calculates the overlay rect and node rect
54492         instead of having them passed in.
54493         * page/InspectorController.h:
54494
54495 2008-01-31  Adam Roben  <aroben@apple.com>
54496
54497         Add node highlight drawing code to InspectorController
54498
54499         The code came from WebKit/win/WebNodeHighlight.cpp. It's not quite as
54500         complete as the Mac implementation (in particular, it doesn't handle
54501         line-box rects), but it's a start.
54502
54503         Reviewed by Darin.
54504
54505         * page/InspectorController.cpp:
54506         (WebCore::InspectorController::drawNodeHighlight): Added.
54507         * page/InspectorController.h:
54508
54509 2008-01-31  Dan Bernstein  <mitz@apple.com>
54510
54511         Reviewed by Dave Hyatt.
54512
54513         - fix http://bugs.webkit.org/show_bug.cgi?id=17107
54514           <rdar://problem/5716722> REGRESSION (r29834): Article text on redhat.com magazine site appears to be painting twice
54515
54516         Test: fast/block/float/intruding-painted-twice.html
54517
54518         * rendering/RenderBlock.cpp:
54519         (WebCore::RenderBlock::layoutBlock): Pass 'false' for the new
54520         makeChildPaintOtherFloats parameter to addOverhangingFloats() because at
54521         this point we are only taking away floats from the child.
54522         (WebCore::RenderBlock::layoutBlockChildren): Pass 'true' for the new
54523         makeChildPaintOtherFloats parameter to addOverhangingFloats() iff the
54524         child was not laid out again. Only in that case, it may have overhanging
54525         floats that it does not paint because they used to be overhanging from
54526         the parent, but now they are not.
54527         (WebCore::RenderBlock::addOverhangingFloats): Refined the conditions for
54528         making the child paint the float: require that the float be a descendant
54529         of the child (the other case is when it intrudes into the child from
54530         another sibling) and that it does not have a layer (in which case it
54531         paints itself). In addition, do the check only if the caller passed
54532         'true' for the makeChildPaintOtherFloats parameter.
54533         * rendering/RenderBlock.h:
54534
54535 2008-01-30  Dan Bernstein  <mitz@apple.com>
54536
54537         Reviewed by Sam Weinig.
54538
54539         - change the interpretation of unicode-range values in "from-to" form
54540           to include the "to" character.
54541
54542         Test: fast/css/font-face-unicode-range.html
54543
54544         * css/CSSParser.cpp:
54545         (WebCore::CSSParser::parseFontFaceUnicodeRange):
54546         * css/CSSSegmentedFontFace.cpp:
54547         (WebCore::CSSSegmentedFontFace::overlayRange):
54548         * platform/graphics/GlyphPageTreeNode.cpp:
54549         (WebCore::GlyphPageTreeNode::initializePage):
54550         * platform/graphics/SegmentedFontData.cpp:
54551         (WebCore::SegmentedFontData::fontDataForCharacter):
54552         (WebCore::SegmentedFontData::containsCharacters):
54553
54554 2008-01-30  Dan Bernstein  <mitz@apple.com>
54555
54556         Reviewed by Darin Adler.
54557
54558         - prune references to custom fonts' SimpleFontData from the glyph page
54559           tree when they are destroyed
54560
54561         * css/CSSFontFaceSource.cpp:
54562         (WebCore::CSSFontFaceSource::pruneTable):
54563
54564 2008-01-30  Darin Adler  <darin@apple.com>
54565
54566         Reviewed by Tim Hatcher.
54567
54568         New fix for <rdar://problem/5688428> Reproducible assertion failure
54569         in SQLTransaction::performNextStep() (16876)
54570
54571         Fixes a deadlock that was happening for all Database use. All
54572         storage layout tests pass.
54573
54574         * storage/Database.cpp:
54575         (WebCore::CurrentThreadSetter::CurrentThreadSetter): New helper class
54576         to set the current thread and zero it on destruction.
54577         (WebCore::CurrentThreadSetter::~CurrentThreadSetter): Set threadIdentifierStorage to 0.
54578         (WebCore::Database::Database): Set m_transactionStepThread to 0.
54579         (WebCore::Database::performTransactionStep): Set m_transactionStepThread to currentThread().
54580         (WebCore::Database::scheduleTransactionCallback): Assert m_transactionStepThread
54581         is currentThread().
54582         * storage/Database.h: Add m_transactionStepThread for debug builds
54583         to track which thread performTransactionStep() was called on. 
54584
54585 2008-01-30  Timothy Hatcher  <timothy@apple.com>
54586
54587         Reviewed by Darin Adler.
54588
54589         ASSERTION FAILED: JSLock::lockCount() > 0 when opening the
54590         Web Inspector on a page with a Database.
54591
54592         Fix the ASSERT by taking a JSLock before calling toJS().
54593
54594         * page/InspectorController.cpp:
54595         (WebCore::InspectorController::addDatabaseScriptResource):
54596
54597 2008-01-30  Beth Dakin  <bdakin@apple.com>
54598
54599         Reviewed by Darin.
54600
54601         Fix for <rdar://problem/5598609> CrashTracer: [USER] 626 crashes in 
54602         Safari at com.apple.WebCore: WebCore::FrameView::needsFullRepaint 
54603         const + 6
54604
54605         The real problem here is tracked by rdar://5598072, which is that 
54606         frames can lose sync between their view and their document when a 
54607         non-HTML view is loaded (such as bookmarks view or a PDF). That can 
54608         cause this crash if the layout timer fires before things have fixed 
54609         themselves. This fix turns an ASSERT in FrameView::layout() into an 
54610         early return to cause graceful failure until the root of the 
54611         problem is addressed. 
54612
54613         * page/FrameView.cpp:
54614         (WebCore::FrameView::layout):
54615
54616 2008-01-30  Justin Garcia  <justin.garcia@apple.com>
54617
54618         Reviewed by Darin Adler.
54619
54620         <rdar://problem/5700414> REGRESSION (Adama-ToT): Selecting "Header 1" style in Leopard Server wiki inserts newline
54621
54622         * editing/FormatBlockCommand.cpp:
54623         (WebCore::FormatBlockCommand::doApply): If the selected paragraph was empty,
54624         we may still need to call moveParagrah to remove the line break that holds that
54625         paragraph open because the new block of the requested type needs to to replace it.
54626
54627 2008-01-30  Timothy Hatcher  <timothy@apple.com>
54628
54629         Reviewed by Darin Adler.
54630
54631         <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
54632
54633         Revised fix to use the globalCallbackMutex() mutex and hold the mutex
54634         for the entire function scope.
54635
54636         * storage/Database.cpp:
54637         (WebCore::Database::performTransactionStep):
54638
54639 2008-01-30  Timothy Hatcher  <timothy@apple.com>
54640
54641         Reviewed by Adam Roben.
54642
54643         Make ResourceTreeElement inherit the prototype of TreeElement.
54644
54645         * page/inspector/Resource.js:
54646
54647 2008-01-30  Sam Weinig  <sam@webkit.org>
54648
54649         Reviewed by Adam Roben.
54650
54651         Don't include SecurityOrigin.h in Document.h so that we can avoid massive
54652         recompilation when changing the SecurityOrigin.
54653
54654         * dom/Document.cpp:
54655         (WebCore::Document::setSecurityOrigin):
54656         * dom/Document.h:
54657
54658 2008-01-30  Tim Omernick  <timo@apple.com>
54659
54660         Reviewed by Tim Hatcher and Brady.
54661
54662         <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
54663
54664         * storage/Database.cpp:
54665         (WebCore::Database::performTransactionStep): Do not perform the next transaction if
54666         a global callback is already scheduled.
54667
54668 2008-01-30  Jon Honeycutt  <jhoneycutt@apple.com>
54669
54670         Reviewed by Darin.
54671
54672         <rdar://problem/5669317> Crash closing pop up window with Real Player
54673         content
54674
54675         Some RealPlayer versions hang on unload. To prevent this hang, don't
54676         unload versions since the last known unloadable version.
54677         <rdar://problem/5713147> tracks revisiting this when the bug in
54678         RealPlayer is fixed and we can again unload the plug-in.
54679
54680         * plugins/win/PluginPackageWin.cpp:
54681         (WebCore::PluginPackageWin::compareFileVersion): Compare the plug-in's
54682         file version to the passed file version, returning -1, 0, or 1 if the
54683         plug-in's version is less than, equal to, or greater than the version
54684         passed.
54685         (WebCore::PluginPackageWin::isPluginBlacklisted): Use
54686         compareFileVersion()
54687         * plugins/win/PluginPackageWin.h:
54688         * plugins/win/PluginViewWin.cpp:
54689         (WebCore::PluginViewWin::determineQuirks): If the plug-in version is
54690         newer than the last-known unloadable version, add the DontUnloadPlugin
54691         quirk
54692
54693 2008-01-29  Mark Rowe  <mrowe@apple.com>
54694
54695         Reviewed by Tim Hatcher.
54696
54697         Look for headers relative to NEXT_ROOT so that build-root picks up the WebCoreSQLite
54698         version of sqlite3.h rather than the older system version.
54699
54700         * Configurations/Base.xcconfig:
54701
54702 2008-01-29  Dan Bernstein  <mitz@apple.com>
54703
54704         - build fix
54705
54706         * loader/CachedFont.cpp:
54707         (WebCore::CachedFont::CachedFont):
54708
54709 2008-01-29  Mark Rowe  <mrowe@apple.com>
54710
54711         Reviewed by Brady Eidson.
54712
54713         Add the correct directory to the header search paths in Production builds.
54714
54715         * Configurations/Base.xcconfig:
54716
54717 2008-01-29  Dan Bernstein  <mitz@apple.com>
54718
54719         Reviewed by Dave Hyatt.
54720
54721         - fix http://bugs.webkit.org/show_bug.cgi?id=17085
54722           <rdar://problem/5714136> REGRESSION (r29839): All remote fonts are treated as SVG fonts
54723
54724         Test: fast/css/font-face-remote.html
54725
54726         Added an isSVGFont method to CachedFont and use it to decide how to
54727         process the font data. Currently whether the data is SVG is determined
54728         based on the format property in the @font-face rule, but in the future
54729         the MIME type or other metadata may be used when the format is
54730         unspecified.
54731
54732         * css/CSSFontFaceSource.cpp:
54733         (WebCore::CSSFontFaceSource::getFontData): Changed to parse the data as
54734         SVG only if the CachedFont is an SVG font.
54735         * css/CSSFontSelector.cpp:
54736         (WebCore::CSSFontSelector::addFontFaceRule): Mark the CachedFont as an
54737         SVG font based on format.
54738         * loader/CachedFont.cpp:
54739         (WebCore::CachedFont::CachedFont): Initialize m_isSVGFont to false.
54740         (WebCore::CachedFont::ensureCustomFontData):
54741         (WebCore::CachedFont::ensureSVGFontData):
54742         (WebCore::CachedFont::getSVGFontById):
54743         * loader/CachedFont.h:
54744         (WebCore::CachedFont::isSVGFont): Added.
54745         (WebCore::CachedFont::setSVGFont): Added.
54746
54747 2008-01-29  Antti Koivisto  <antti@apple.com>
54748
54749         Some comment cleanup.
54750
54751         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
54752         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
54753         * platform/graphics/win/QTMovieWin.cpp:
54754         (QTMovieWin::load):
54755         (QTMovieWin::disableUnsupportedTracks):
54756
54757 2008-01-29  Adele Peterson  <adele@apple.com>
54758
54759         Reviewed by Antti.
54760
54761         Fix for <rdar://5683527> media/{audio,video|-controls-rendering.html failing
54762         
54763         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::isControlStyled):
54764         Don't treat all media controls as styled.  This causes builds with an old version of SafariTheme to have different metrics for these controls.
54765
54766 2008-01-29  Dan Bernstein  <mitz@apple.com>
54767
54768         Reviewed by Dave Hyatt.
54769
54770         - make Font instances cache their primary font
54771
54772         * WebCore.base.exp:
54773         * platform/graphics/Font.cpp:
54774         (WebCore::Font::Font):
54775         (WebCore::Font::operator=):
54776         (WebCore::Font::cachePrimaryFont):
54777         (WebCore::Font::update):
54778         * platform/graphics/Font.h:
54779         (WebCore::Font::primaryFont):
54780
54781 2008-01-29  Dan Bernstein  <mitz@apple.com>
54782
54783         - Leopard build fix
54784
54785         * platform/graphics/SimpleFontData.cpp:
54786         (WebCore::SimpleFontData::SimpleFontData):
54787
54788 2008-01-29  Mark Rowe  <mrowe@apple.com>
54789
54790         Reviewed by Tim Hatcher.
54791
54792         <rdar://problem/5600926> WebCore on Tiger must link to its own copy of SQLite 3.4 or newer (so HTML database behavior will be correct).
54793
54794         * Configurations/Base.xcconfig: Update the header search path on Tiger.
54795         * Configurations/DebugRelease.xcconfig: Update the header search path on Tiger.
54796         * Configurations/WebCore.xcconfig: Link against libWebCoreSQLite3.a when building on Tiger.
54797         * WebCore.xcodeproj/project.pbxproj: Update the header search path in Production builds on Tiger.
54798
54799 2008-01-29  Dan Bernstein  <mitz@apple.com>
54800
54801         Reviewed by Adam Roben and Oliver Hunt.
54802
54803         - fix <rdar://problem/5713131> REGRESSION (r29246): Many SVG font tests are failing
54804
54805         * platform/graphics/SimpleFontData.cpp:
54806         (WebCore::SimpleFontData::SimpleFontData): Use double instead of float
54807         for consistent rounding behavior between Mac OS X and Windows.
54808
54809 2008-01-29  Adam Roben  <aroben@apple.com>
54810
54811         Fix <rdar://5713302> Web Inspector on Windows is not using the
54812         localized strings
54813
54814         Reviewed by Steve.
54815
54816         * WebCore.vcproj/WebCore.vcproj: Copy InspectorLocalizedStrings.js to
54817         $WebKitOutputDir.
54818         * page/InspectorController.cpp: Touch this to force the project to
54819         build.
54820
54821 2008-01-29  Eric Seidel  <eric@webkit.org>
54822
54823         Reviewed by Nikolas.
54824
54825         Acid3 after double-attach
54826         http://bugs.webkit.org/show_bug.cgi?id=17058
54827         
54828         I believe SVGTextPathElement::buildPendingResource() was entirely
54829         bogus, removing it did not cause any tests to fail.
54830
54831         Test: svg/custom/textPath-assert.svg
54832
54833         * svg/SVGTextPathElement.cpp:
54834         (WebCore::SVGTextPathElement::insertedIntoDocument): remove buildPendingResource()
54835         * svg/SVGTextPathElement.h:
54836
54837 2008-01-29  Adam Roben  <aroben@apple.com>
54838
54839         Fix Bug 16234: Inspector should support searching for elements by CSS selectors
54840
54841         <http://bugs.webkit.org/show_bugs.cgi?id=16234>
54842         <rdar://5712862>
54843
54844         Reviewed by Tim.
54845
54846         * page/inspector/inspector.js: Use Document.querySelectorAll to search
54847         for elements by CSS selector. Also store a custom property on nodes
54848         being added to the search results to avoid showing the same node more
54849         than once.
54850
54851 2008-01-29  Adam Roben  <aroben@apple.com>
54852
54853         Fix <rdar://5711136> Full-screen Flash on 1up.com is unresponsive
54854
54855         Reviewed by Anders and Darin.
54856
54857         No test possible.
54858
54859         * plugins/win/PluginViewWin.cpp:
54860         (WebCore::PluginViewWin::wndProc): Set/release capture on mouse
54861         down/up, like Firefox does.
54862
54863 2008-01-28  Dan Bernstein  <mitz@apple.com>
54864
54865         Reviewed by Sam Weinig.
54866
54867         - make isSVGFont non-virtual
54868
54869         * platform/graphics/FontData.h:
54870         * platform/graphics/SegmentedFontData.cpp:
54871         * platform/graphics/SegmentedFontData.h:
54872         * platform/graphics/SimpleFontData.h:
54873         (WebCore::SimpleFontData::isSVGFont):
54874
54875 2008-01-28  Dan Bernstein  <mitz@apple.com>
54876
54877         Reviewed by Adam Roben.
54878
54879         - fix <rdar://problem/5700824> Chunky scrolling + scrolling artifacts @ netflix.com/Notebook
54880
54881         * platform/win/ScrollViewWin.cpp:
54882         (WebCore::ScrollView::ScrollViewPrivate::valueChanged): Send the scroll
54883         event before updating the window, thus giving event handlers a chance
54884         to update layout for the new scroll position, eliminating the jitter.
54885
54886 2008-01-28  Adam Roben  <aroben@apple.com>
54887
54888         Fix <rdar://5555260> Gmail doesn't load when a user stylesheet is specified
54889
54890         Reviewed by Darin.
54891
54892         A null value exception was being thrown in Gmail's JS code because a
54893         call to document.write failed. document.write failed because
54894         Document::close had not yet been called. Document::close was not
54895         called because the Document was considered to not be "complete" in
54896         FrameLoader::checkComplete because the user stylesheet was in the
54897         process of loading. The user stylesheet was loading because it had
54898         previously been evicted from the cache and was loading fresh from
54899         disk. It had been evicted from the cache because the calculation of
54900         the expiration date was incorrectly casting/overflowing in
54901         ResourceResponseCFNet.cpp.
54902
54903         We now calculate the expiration date in a way that does not cause us
54904         to overflow a time_t, and we correctly clamp the value to the range of
54905         a time_t. I also made the fix for the last modified date, though that
54906         was not causing any bug I am aware of.
54907
54908         In the long-term it seems like whether or not Document::close is
54909         called should not be dependent upon whether the user stylesheet has
54910         finished loading or not.
54911
54912         * platform/network/cf/ResourceResponseCFNet.cpp:
54913         (WebCore::toTimeT): Added. Converts from CFAbsoluteTime to time_t and
54914         clamps to the range of time_t.
54915         (WebCore::ResourceResponse::doUpdateResourceResponse): Call toTimeT.
54916
54917 2008-01-28  Dan Bernstein  <mitz@apple.com>
54918
54919         Reviewed by Nikolas Zimmermann.
54920
54921         - fix leaks introduced in r29838
54922
54923         * svg/SVGFont.cpp:
54924         (WebCore::floatWidthMissingGlyphCallback):
54925         (WebCore::drawTextMissingGlyphCallback):
54926
54927 2008-01-28  Nikolas Zimmermann  <zimmermann@kde.org>
54928
54929         Reviewed by Eric, Dan & Oliver.
54930
54931         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16980
54932
54933         Support external SVG Fonts, by reusing the custom font handling logic.
54934         This enables us - as first engine - to render HTML pages using SVG Fonts.
54935
54936         Fixes fonts-elem-03-b.svg / fonts-elem-04-b.svg / fonts-elem-07-b.svg
54937         Add new testcase svg-fonts-in-html.html.
54938
54939         * css/CSSFontFaceSource.cpp:
54940         (WebCore::CSSFontFaceSource::getFontData):
54941         * css/CSSFontFaceSource.h:
54942         * css/CSSFontFaceSrcValue.cpp:
54943         (WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc):
54944         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
54945         * css/CSSFontFaceSrcValue.h:
54946         * css/CSSFontSelector.cpp:
54947         (WebCore::CSSFontSelector::addFontFaceRule):
54948         * loader/CachedFont.cpp:
54949         (WebCore::CachedFont::~CachedFont):
54950         (WebCore::CachedFont::ensureSVGFontData):
54951         (WebCore::CachedFont::extractFontFromSVGData):
54952         (WebCore::CachedFont::platformDataFromSVGData):
54953         * loader/CachedFont.h:
54954         * platform/graphics/Font.cpp:
54955         (WebCore::Font::offsetForPosition):
54956         * platform/graphics/Font.h:
54957         * svg/SVGFont.cpp:
54958         (WebCore::floatWidthOfSubStringUsingSVGFont):
54959         (WebCore::Font::drawTextUsingSVGFont):
54960         (WebCore::Font::offsetForPositionForTextUsingSVGFont):
54961         * svg/SVGFontFaceElement.cpp:
54962         (WebCore::SVGFontFaceElement::rebuildFontFace):
54963         * svg/SVGFontFaceElement.h:
54964         * svg/SVGFontFaceUriElement.cpp:
54965         (WebCore::SVGFontFaceUriElement::srcValue):
54966
54967 2008-01-28  Dan Bernstein  <mitz@apple.com>
54968
54969         Reviewed by Adam Roben.
54970
54971         - fix svg/W3C-SVG-1.1/fonts-glyph-04-t.svg failure on Windows
54972
54973         The results differed between Mac OS X and Windows because the code was
54974         using a 0-size font, which Mac OS X changes to 12pt.
54975
54976         * svg/SVGFont.cpp:
54977         (WebCore::floatWidthMissingGlyphCallback): Use the font description of
54978         the primary font to initialize the fallback font.
54979         (WebCore::drawTextMissingGlyphCallback): Ditto.
54980
54981 2008-01-28  Eric Seidel  <eric@webkit.org>
54982
54983         Reviewed by Nikolas Zimmermann.
54984
54985         Use class instead of struct to appease MSVC.
54986
54987         * history/HistoryItem.h:
54988         * loader/FrameLoaderClient.h:
54989         * page/InspectorController.h:
54990         * platform/network/ResourceRequestBase.h:
54991         * platform/network/mac/ResourceRequest.h:
54992
54993 2008-01-28  Dan Bernstein  <mitz@apple.com>
54994
54995         Reviewed by Darin Adler.
54996
54997         - fix http://bugs.webkit.org/show_bug.cgi?id=16774
54998           REGRESSION (r27464-r27504) javascript popup menu does not display 'close' button
54999
55000         Test: fast/dynamic/float-no-longer-overhanging.html
55001
55002         * rendering/RenderBlock.cpp:
55003         (WebCore::RenderBlock::addOverhangingFloats): If a child's float turns
55004         out not to be overhanging at this time, ensure that the child paints it.
55005
55006 2008-01-28  Oliver Hunt  <oliver@apple.com>
55007
55008         More wx fixes
55009
55010         * platform/graphics/wx/AffineTransformWx.cpp:
55011
55012 2008-01-28  Oliver Hunt  <oliver@apple.com>
55013
55014         And another Wx build fix
55015
55016         * platform/graphics/wx/AffineTransformWx.cpp:
55017         (WebCore::AffineTransform::mapRect):
55018
55019 2008-01-28  Oliver Hunt  <oliver@apple.com>
55020
55021         Yet another Wx build fix
55022
55023         * platform/graphics/wx/GraphicsContextWx.cpp:
55024
55025 2008-01-28  Oliver Hunt  <oliver@apple.com>
55026
55027         Wx build fix
55028
55029         * platform/graphics/wx/GraphicsContextWx.cpp:
55030         (WebCore::GraphicsContext::getCTM):
55031
55032 2008-01-28  Oliver Hunt  <oliver@apple.com>
55033
55034         Gtk build fix
55035
55036         * platform/graphics/cairo/GraphicsContextCairo.cpp:
55037
55038 2008-01-27  Oliver Hunt  <oliver@apple.com>
55039
55040         Reviewed by Sam Weinig.
55041
55042         Bug 16629: <canvas> does not support isPointInPath()
55043
55044         Relatively trivial change to implement pointInPath and add
55045         it to the bindings.  Most of this patch is the addition of
55046         GraphicsContext::getCTM() by pulling the various platform
55047         implementations from CanvasRenderingContext2D::willDraw
55048
55049         Test: fast/canvas/pointInPath.html
55050
55051         * html/CanvasRenderingContext2D.cpp:
55052         (WebCore::CanvasRenderingContext2D::isPointInPath):
55053         (WebCore::CanvasRenderingContext2D::willDraw):
55054         * html/CanvasRenderingContext2D.h:
55055         * html/CanvasRenderingContext2D.idl:
55056         * platform/graphics/AffineTransform.cpp:
55057         (WebCore::AffineTransform::mapPoint):
55058           Support mapping of FloatRects
55059         * platform/graphics/AffineTransform.h:
55060         * platform/graphics/GraphicsContext.h:
55061         * platform/graphics/cairo/GraphicsContextCairo.cpp:
55062         (WebCore::GraphicsContext::getCTM):
55063         * platform/graphics/cg/GraphicsContextCG.cpp:
55064         (WebCore::GraphicsContext::getCTM):
55065         * platform/graphics/qt/GraphicsContextQt.cpp:
55066         (WebCore::GraphicsContext::getCTM):
55067
55068 2008-01-27  Alexey Proskuryakov  <ap@webkit.org>
55069
55070         Reviewed by Darin.
55071
55072         http://bugs.webkit.org/show_bug.cgi?id=17014
55073         REGRESSION: EUC-CN code A3A0 is mapped to U+E5E5 instead of U+3000
55074
55075         Test: fast/encoding/char-decoding.html
55076
55077         * platform/text/TextCodecICU.cpp:
55078         (WebCore::TextCodecICU::decode): Added a workaround that we used to have in Mac code.
55079
55080         * platform/text/mac/TextCodecMac.cpp:
55081         (WebCore::TextCodecMac::decode): Corrected a comment.
55082
55083 2008-01-27  Alp Toker  <alp@atoker.com>
55084
55085         Reviewed by Mark Rowe.
55086
55087         http://bugs.webkit.org/show_bug.cgi?id=17029
55088         Use of deprecated class function but declares GTK_DISABLE_DEPRECATED
55089
55090         Sync gtkdrawing.h (1.51) and gtk2drawing.c (1.71) from Mozilla
55091         upstream.
55092
55093         Adapt RenderThemeGtk.cpp to track minor changes.
55094
55095         * platform/gtk/RenderThemeGtk.cpp:
55096         (WebCore::gtkTextDirection):
55097         (WebCore::adjustMozStyle):
55098         (WebCore::setMozState):
55099         (WebCore::paintMozWidget):
55100         * platform/gtk/gtk2drawing.c:
55101         (setup_widget_prototype):
55102         (ensure_hpaned_widget):
55103         (ensure_vpaned_widget):
55104         (ensure_toggle_button_widget):
55105         (ensure_combo_box_entry_widget):
55106         (ensure_dropdown_entry_widget):
55107         (moz_gtk_get_dropdown_button):
55108         (ensure_arrow_widget):
55109         (ensure_toolbar_separator_widget):
55110         (ensure_statusbar_widget):
55111         (ensure_frame_widget):
55112         (ensure_menu_separator_widget):
55113         (ensure_tree_view_widget):
55114         (ensure_tree_header_cell_widget):
55115         (ensure_expander_widget):
55116         (ConvertGtkState):
55117         (moz_gtk_button_paint):
55118         (moz_gtk_widget_get_focus):
55119         (moz_gtk_splitter_get_metrics):
55120         (moz_gtk_toggle_paint):
55121         (moz_gtk_scrollbar_button_paint):
55122         (moz_gtk_scrollbar_trough_paint):
55123         (moz_gtk_scrollbar_thumb_paint):
55124         (moz_gtk_spin_paint):
55125         (moz_gtk_spin_updown_paint):
55126         (moz_gtk_scale_paint):
55127         (moz_gtk_scale_thumb_paint):
55128         (moz_gtk_gripper_paint):
55129         (moz_gtk_hpaned_paint):
55130         (moz_gtk_vpaned_paint):
55131         (moz_gtk_entry_paint):
55132         (moz_gtk_treeview_paint):
55133         (moz_gtk_tree_header_cell_paint):
55134         (moz_gtk_tree_header_sort_arrow_paint):
55135         (moz_gtk_treeview_expander_paint):
55136         (moz_gtk_expander_paint):
55137         (moz_gtk_option_menu_paint):
55138         (moz_gtk_downarrow_paint):
55139         (moz_gtk_dropdown_arrow_paint):
55140         (moz_gtk_container_paint):
55141         (moz_gtk_toggle_label_paint):
55142         (moz_gtk_toolbar_paint):
55143         (moz_gtk_toolbar_separator_paint):
55144         (moz_gtk_tooltip_paint):
55145         (moz_gtk_resizer_paint):
55146         (moz_gtk_frame_paint):
55147         (moz_gtk_progressbar_paint):
55148         (moz_gtk_progress_chunk_paint):
55149         (moz_gtk_get_tab_thickness):
55150         (moz_gtk_tab_paint):
55151         (moz_gtk_tabpanels_paint):
55152         (moz_gtk_menu_bar_paint):
55153         (moz_gtk_menu_popup_paint):
55154         (moz_gtk_menu_separator_paint):
55155         (moz_gtk_menu_item_paint):
55156         (moz_gtk_menu_arrow_paint):
55157         (moz_gtk_check_menu_item_paint):
55158         (moz_gtk_window_paint):
55159         (moz_gtk_get_widget_border):
55160         (moz_gtk_get_dropdown_arrow_size):
55161         (moz_gtk_get_toolbar_separator_width):
55162         (moz_gtk_get_expander_size):
55163         (moz_gtk_get_treeview_expander_size):
55164         (moz_gtk_get_menu_separator_height):
55165         (moz_gtk_widget_paint):
55166         (moz_gtk_shutdown):
55167         * platform/gtk/gtkdrawing.h:
55168
55169 2008-01-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
55170
55171         Reviewed by Alp Toker.
55172
55173         http://bugs.webkit.org/show_bug.cgi?id=14811
55174         [gtk] [request] add a webkit_gtk_page_go_to_history_item function
55175
55176         Added webkit/gtk webkitwebbackforwardlist and webkitwebhistoryitem
55177
55178         * WebCore.pro:
55179
55180 2008-01-27  Matt Perry  <mpComplete@gmail.com>
55181
55182         Reviewed and tweaked quite a bit by Darin.
55183
55184         Fix for http://bugs.webkit.org/show_bug.cgi?id=14959
55185         No back forward entry added for pages created in javascript
55186
55187         A new HistoryItem is created for calls to Document::open. Calls to
55188         Document::write save the written data to a SharedBuffer that is also
55189         stored on the HistoryItem. When the user navigates back to a
55190         HistoryItem that has a valid buffer, that data is used for the page
55191         content.
55192
55193         Tests: http/tests/navigation/document-open-adds-history-item.html
55194                http/tests/navigation/document-open-delayed-adds-history-item.html
55195                http/tests/navigation/document-open-new-window-adds-history-item.html
55196                http/tests/navigation/document-open-replace-no-history-item.html
55197
55198         * bindings/js/JSHTMLDocumentCustom.cpp:
55199         (WebCore::JSHTMLDocument::open): Pass a MIME type of either "text/html" or
55200         "text/plain" and a boolean for "replace" in rather than always setting replace
55201         to true and the MIME type to "text/html".
55202
55203         * dom/DOMImplementation.cpp:
55204         (WebCore::DOMImplementation::createHTMLDocument): Pass in MIME type and
55205         replace boolean explicitly, since we don't want to rely on Document::open()'s
55206         default.
55207
55208         * dom/Document.cpp:
55209         (WebCore::Document::open): Correctly determine the "replace" boolean.
55210         Pass along the MIME type, replace boolean, and shared buffer to the
55211         frame loader's didExplicitOpen function.
55212         (WebCore::Document::write): Pass MIME type and replace boolean explicitly
55213         to the open function so we don't do treat it as replace if you write without
55214         an open. Store text written by the script so it can be used later for history.
55215         (WebCore::Document::clear): Drop the text written byt he script.
55216
55217         * dom/Document.h: Added MIME type and replace boolean parameters for open.
55218         Had to keep the old version for the sake of DOM bindings. Added the shared
55219         buffer used for text written by script.
55220
55221         * history/HistoryItem.cpp:
55222         (WebCore::HistoryItem::HistoryItem): Copy m_substituteData.
55223         (WebCore::HistoryItem::substituteData): Added.
55224         (WebCore::HistoryItem::setSubstituteData): Added.
55225         * history/HistoryItem.h: Added m_substituteData, getter, and setter.
55226
55227         * loader/FrameLoader.cpp:
55228         (WebCore::FrameLoader::didExplicitOpen): Added code to create or update the
55229         history item, including attaching the shared buffer that will contain all
55230         the data written by script.
55231         (WebCore::FrameLoader::load): Added a SubstituteData parameter, passed through
55232         when creating the document loader.
55233         (WebCore::FrameLoader::reloadAllowingStaleData): Create the document loader
55234         with the substitute data from the current history item.
55235         (WebCore::FrameLoader::reload): Ditto.
55236         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent): If the current history
55237         item has substitute data, then consider the URL from the substitute data
55238         rather than the one in the history item itself.
55239         (WebCore::FrameLoader::loadItem): Pass in the history item's substitute data.
55240         * loader/FrameLoader.h: Added parameters to load and didExplicitOpen.
55241
55242         * platform/text/CharacterNames.h: Added byteOrderMark, and also added it under
55243         its other official name, zeroWidthNoBreakSpace.
55244
55245         * xml/DOMParser.cpp:
55246         (WebCore::DOMParser::parseFromString): Pass in MIME type and replace boolean
55247         explicitly, since we don't want to rely on Document::open()'s default.
55248         * xml/XMLHttpRequest.cpp:
55249         (WebCore::XMLHttpRequest::getResponseXML): Ditto.
55250         * xml/XSLTProcessor.cpp:
55251         (WebCore::XSLTProcessor::createDocumentFromSource): Ditto.
55252
55253 2008-01-25  Eric Seidel  <eric@webkit.org>
55254
55255         Reviewed by Sam and Darin.
55256
55257         Fire a warning shot in DeprecatedChar's direction.
55258
55259         Remove DeprecatedChar::isSpace() usage, in preparation for removing DeprecatedChar
55260         Remove a needless String -> DeprecatedString -> String conversion for <script> tags
55261
55262         * css/MediaQueryEvaluator.cpp:
55263         (WebCore::parseAspectRatio):
55264         * css/SVGCSSParser.cpp:
55265         * dom/Position.cpp:
55266         (WebCore::Position::leadingWhitespacePosition):
55267         (WebCore::Position::trailingWhitespacePosition):
55268         * editing/TextIterator.cpp:
55269         (WebCore::WordAwareIterator::advance):
55270         * html/HTMLFontElement.cpp:
55271         (WebCore::parseFontSizeNumber):
55272         * html/HTMLTokenizer.cpp:
55273         (WebCore::HTMLTokenizer::scriptHandler):
55274         (WebCore::HTMLTokenizer::scriptExecution):
55275         (WebCore::HTMLTokenizer::notifyFinished):
55276         * html/HTMLTokenizer.h:
55277         * loader/CachedCSSStyleSheet.cpp:
55278         * loader/TextResourceDecoder.cpp:
55279         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
55280         * platform/mac/ClipboardMac.mm:
55281         (WebCore::ClipboardMac::getData):
55282         * platform/network/HTTPParsers.cpp:
55283         (WebCore::extractMIMETypeFromMediaType):
55284         * platform/text/PlatformString.h:
55285         * platform/text/StringImpl.cpp:
55286         (WebCore::parseLength):
55287         (WebCore::StringImpl::stripWhiteSpace):
55288         (WebCore::StringImpl::simplifyWhiteSpace):
55289         (WebCore::StringImpl::toInt):
55290         (WebCore::StringImpl::toInt64):
55291         (WebCore::StringImpl::toUInt64):
55292         * platform/text/StringImpl.h:
55293         (WebCore::isSpaceOrNewline):
55294         * rendering/InlineFlowBox.cpp:
55295         (WebCore::InlineFlowBox::placeBoxesHorizontally):
55296         * rendering/RenderBlock.cpp:
55297         (WebCore::RenderBlock::updateFirstLetter):
55298         * rendering/bidi.cpp:
55299         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
55300         * svg/SVGFontFaceElement.cpp:
55301         (WebCore::mapAttributeToCSSProperty):
55302         * svg/SVGLength.cpp:
55303         * svg/SVGStyledElement.cpp:
55304         (WebCore::mapAttributeToCSSProperty):
55305         * xml/XPathParser.cpp:
55306
55307 2008-01-25  Stephanie Lewis  <slewis@apple.com>
55308
55309         Reviewed by Tim.
55310
55311         expand workaround for <rdar://5695848> to include js files so that the
55312         web inspector can work
55313
55314         * platform/network/cf/ResourceResponseCFNet.cpp:
55315         (WebCore::ResourceResponse::doUpdateResourceResponse):
55316
55317 2008-01-25  Antti Koivisto  <antti@apple.com>
55318
55319         Reviewed by Adele.
55320         
55321         (this is for r29798, my commit failed to include the log)
55322         
55323         Windows fix to match r29773
55324         If the media is playing and the load stalls the playback wont restart by seeking backwards.      
55325
55326         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
55327         (WebCore::MediaPlayerPrivate::updateStates):
55328
55329 2008-01-25  Darin Adler  <darin@apple.com>
55330
55331         Reviewed by Anders.
55332
55333         - fix <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement
55334
55335         For empty statements, SQLite returns 0 for the statement. We have to cope with that.
55336
55337         Test: storage/empty-statement.html
55338
55339         * platform/sql/SQLiteStatement.cpp:
55340         (WebCore::sqlite3_prepare16_v2): Added overload so we don't need an #if inside the prepare
55341         function.
55342         (WebCore::SQLiteStatement::SQLiteStatement): Initialize the m_isPrepared boolean. Removed
55343         the code to add a null character to the end of the string; instead we will use
55344         charactersWithNullTermination.
55345         (WebCore::SQLiteStatement::prepare): Set m_isPrepared based on the error value returned.
55346         Use the error value from sqlite3_prepare16_v2, not from lastError().
55347         (WebCore::SQLiteStatement::step): Assert that the statement is prepared rather than checking
55348         it at runtime. However, in the case where this is called with m_statement of 0, return
55349         success rather than an error. That's needed for empty statements.
55350         (WebCore::SQLiteStatement::finalize): Use early return idiom for clarity. When there is no
55351         statement, return SQLITE_OK instead of calling lastError().
55352         (WebCore::SQLiteStatement::reset): Use early return idiom for clarity. When there is no
55353         statement, return SQLITE_OK rather than SQLITE_ERROR, but assert the statement is prepared.
55354         (WebCore::SQLiteStatement::executeCommand): Adjust the code that does a prepare so that it
55355         will work for empty statements. Do we really need to allow calling this without prepare?
55356         It would be simpler to just be able to assert that it's prepared.
55357         (WebCore::SQLiteStatement::returnsAtLeastOneResult): Ditto.
55358         (WebCore::SQLiteStatement::bindBlob): Added some assertions. Return SQLITE_ERROR if this
55359         is called with m_statement of 0 (should not be possible without assertions firing first).
55360         Return the actual error code rather than lastError().
55361         (WebCore::SQLiteStatement::bindText): Ditto. Also simplified the special case for empty
55362         strings, since it requires any non-null pointer, not a pointer to a global zero character.
55363         (WebCore::SQLiteStatement::bindInt64): Ditto.
55364         (WebCore::SQLiteStatement::bindDouble): Ditto.
55365         (WebCore::SQLiteStatement::bindNull): Ditto.
55366         (WebCore::SQLiteStatement::bindValue): Moved default case out of the switch to take
55367         advantage of the gcc compiler warning for unhandled enum values in a switch.
55368         (WebCore::SQLiteStatement::bindParameterCount): Added assertion and code to handle the
55369         empty statement case.
55370         (WebCore::SQLiteStatement::columnCount): Added assertion and changed the code to use
55371         the early-return idiom.
55372         (WebCore::SQLiteStatement::getColumnName): Removed getColumnName16 -- we always use 16-bit
55373         characters and have no reason to ever use the 8-bit function. Added assertions about the
55374         passed-in column number. It's a little strange that this function checks the column number
55375         for too-large column numbers, but not for negative ones. I didn't change that for now.
55376         (WebCore::SQLiteStatement::getColumnText): Ditto.
55377         (WebCore::SQLiteStatement::getColumnDouble): Ditto.
55378         (WebCore::SQLiteStatement::getColumnInt): Ditto.
55379         (WebCore::SQLiteStatement::getColumnInt64): Ditto.
55380         (WebCore::SQLiteStatement::getColumnBlobAsVector): Ditto.
55381         (WebCore::SQLiteStatement::getColumnBlob): Tightened up function a bit, including use of
55382         the early-return idiom and replacing the multiple "size = 0" with a single one at the
55383         start of the function.
55384         (WebCore::SQLiteStatement::returnTextResults): Added a failure case when the prepare
55385         call doesn't work. Cleared the vector earlier to make the failure code simpler. Moved
55386         the declaration of the result boolean down lower to make it clearer what it's for.
55387         Changed use of lastError() to call on the database, to make it clearer that there's
55388         no per-statement last error kept around. It'd be even better to not use lastError() here.
55389         (WebCore::SQLiteStatement::returnIntResults): Ditto.
55390         (WebCore::SQLiteStatement::returnInt64Results): Ditto.
55391         (WebCore::SQLiteStatement::returnDoubleResults): Ditto.
55392         (WebCore::SQLiteStatement::isExpired): Changed to use || rather than ?: because I think
55393         it's slightly easier to read that way.
55394
55395         * platform/sql/SQLiteStatement.h: Removed unneeded includes and forward declarations.
55396         Also removed unnneeded functions isPrepared, getColumnName16, getColumnText16,
55397         returnTextResults16, lastError, and lastErrorMsg. Changed prepareAndStep so that it
55398         checks the result of prepare before callling step. Added a debug-only m_isPrepared boolean.
55399
55400         * loader/icon/IconDatabase.cpp:
55401         (WebCore::IconDatabase::checkIntegrity): Remove 16 suffix from text-related function names.
55402         (WebCore::IconDatabase::performURLImport): Ditto.
55403         (WebCore::IconDatabase::pruneUnretainedIcons): Ditto.
55404         * platform/sql/SQLiteDatabase.cpp:
55405         (WebCore::SQLiteDatabase::clearAllTables): Ditto.
55406         * storage/Database.cpp:
55407         (WebCore::retrieveTextResultFromDatabase): Ditto.
55408         (WebCore::Database::performGetTableNames): Ditto.
55409         * storage/DatabaseTracker.cpp:
55410         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
55411         (WebCore::DatabaseTracker::populateOrigins): Ditto.
55412         (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
55413         (WebCore::DatabaseTracker::addDatabase): Ditto.
55414         * storage/SQLStatement.cpp:
55415         (WebCore::SQLStatement::execute): Ditto.
55416
55417         * platform/sql/SQLiteDatabase.h: Removed unneeded includes.
55418         * storage/SQLResultSet.h: Ditto.
55419         * storage/SQLResultSetRowList.h: Ditto.
55420
55421 2008-01-25  Adele Peterson  <adele@apple.com>
55422
55423         Reviewed by Sam.
55424
55425         Fix for <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in
55426
55427         * css/html4.css: Add horizontal padding to the media slider.
55428         * rendering/RenderSlider.cpp:
55429         (WebCore::HTMLSliderThumbElement::defaultEventHandler): Replace use of absoluteBoundingBox() with width() and height()
55430         (WebCore::RenderSlider::positionForOffset): ditto. Also, use the trackSize() for the maximum offset.
55431         (WebCore::RenderSlider::layout):  Use contentWidth() and contentHeight() to take padding into account.
55432         (WebCore::RenderSlider::trackSize): ditto.
55433
55434 2008-01-24  Adam Roben  <aroben@apple.com>
55435
55436         Better fix for Bug 16996
55437
55438         Rubberstamped by Mitz.
55439
55440         * loader/CachedFont.cpp:
55441         (WebCore::CachedFont::ensureCustomFontData): Don't call
55442         createFontCustomPlatformData if m_data is null.
55443         * platform/graphics/gtk/FontCustomPlatformData.cpp:
55444         (WebCore::createFontCustomPlatformData): Added an assertion.
55445         * platform/graphics/mac/FontCustomPlatformData.cpp:
55446         (WebCore::createFontCustomPlatformData): Ditto.
55447         * platform/graphics/qt/FontCustomPlatformData.cpp:
55448         (WebCore::createFontCustomPlatformData): Ditto.
55449         * platform/graphics/win/FontCustomPlatformData.cpp:
55450         (WebCore::createFontCustomPlatformData): Ditto.
55451
55452 2008-01-24  Adam Roben  <aroben@apple.com>
55453
55454         Fix Bug 16996: Crash in createFontCustomPlatformData when loading
55455         0-byte font via @font-face
55456
55457         <http://bugs.webkit.org/show_bug.cgi?id=16996>
55458
55459         Reviewed by Hyatt.
55460
55461         Test: fast/loader/font-face-empty.html
55462
55463         * platform/graphics/win/FontCustomPlatformData.cpp:
55464         (WebCore::createFontCustomPlatformData): Null-check the buffer
55465         parameter.
55466
55467 2008-01-24  Jon Honeycutt  <jhoneycutt@apple.com>
55468
55469         Reviewed by Anders.
55470
55471         <rdar://problem/5588807> Crash in Flash when destroying plug-in (found
55472         using yahoo beta mail)
55473
55474         Flash can dereference NULL in the call to NPP_URLNotify if a request
55475         made with NPN_PostURLNotify fails before NPP_NewStream is called.
55476
55477         Work around this by creating a quirk, PluginQuirkFlashURLNotifyBug, and
55478         checking for this quirk before calling NPP_URLNotify for any request
55479         made with NPN_PostURLNotify. If the quirk is present, call NPP_NewStream
55480         and NPP_DestroyStream before calling NPP_URLNotify.
55481
55482         * WebCore.vcproj/WebCore.vcproj:
55483         * plugins/PluginQuirkSet.h: Added. Moved quirks out of PluginViewWin so
55484         PluginViewWin and PluginStream could share it. Created a class,
55485         PluginQuirkSet, to store plug-in quirks
55486         (WebCore::PluginQuirkSet::PluginQuirkSet):
55487         (WebCore::PluginQuirkSet::add):
55488         (WebCore::PluginQuirkSet::contains):
55489         * plugins/PluginStream.cpp:
55490         (WebCore::PluginStream::PluginStream): Copy the PluginQuirkSet for this
55491         plug-in
55492         (WebCore::PluginStream::destroyStream): Check for the FlashURLNotifyBug
55493         quirk
55494         * plugins/PluginStream.h:
55495         * plugins/win/PluginViewWin.cpp:
55496         (WebCore::PluginViewWin::performRequest): Pass the quirks when creating
55497         the PluginStream
55498         (WebCore::PluginViewWin::didReceiveResponse): Same
55499         (WebCore::PluginViewWin::wndProc): Use add / contains instead of
55500         bit ops
55501         (WebCore::PluginViewWin::userAgent): Same
55502         (WebCore::PluginViewWin::invalidateRect): Same
55503         (WebCore::PluginViewWin::~PluginViewWin): Same
55504         (WebCore::PluginViewWin::determineQuirks): Same
55505         (WebCore::PluginViewWin::setParameters): Same
55506         (WebCore::PluginViewWin::PluginViewWin): Same
55507         (WebCore::PluginViewWin::init): Same
55508         (WebCore::PluginViewWin::setCallingPlugin): Same
55509         * plugins/win/PluginViewWin.h:
55510
55511 2008-01-24  David Hyatt  <hyatt@apple.com>
55512
55513         http://bugs.webkit.org/show_bug.cgi?id=16982
55514
55515         Make sure to make <head> the current block if it is created before a <body> already exists.
55516
55517         Reviewed by Dan
55518
55519         * html/HTMLParser.cpp:
55520         (WebCore::HTMLParser::createHead):
55521
55522 2008-01-24  Alexey Proskuryakov  <ap@webkit.org>
55523
55524         http://bugs.webkit.org/show_bug.cgi?id=16993
55525         <rdar://problem/5704331> REGRESSION: Loading page leads to many unexpected redirections
55526
55527         Rolled out r29590, which was not a correct fix for <rdar://problem/5692566>.
55528
55529         * loader/FrameLoader.cpp:
55530         (WebCore::FrameLoader::clear):
55531
55532 2008-01-24  Antti Koivisto  <antti@apple.com>
55533
55534         Reviewed by Adam.
55535         
55536         If the media is playing and the load stalls the playback wont restart by seeking backwards.
55537         
55538         We should be in CAN_PLAY state if the current time is less than the maximum loaded time. Rate 
55539         tricks were for streaming case and are not necessary now since that is now disabled.
55540         
55541         Windows patch coming separately.
55542
55543         Test: http/tests/media/video-play-stall-seek.html
55544
55545         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
55546         (WebCore::MediaPlayerPrivate::updateStates):
55547
55548 2008-01-24  Antti Koivisto  <antti@apple.com>
55549
55550         Reviewed by Adam.
55551
55552         Fix <rdar://problem/5684815>
55553         After navigating back to the page that contains a <audio> that has been muted, the audio is still heard
55554         
55555         - get rid of the separate muted state in MediaPlayer, maintain the state in the cross platform code only
55556         - remove volumeChanged() callbacks from HTMLMediaElement and OS X MediaPlayer, they were not used for anything
55557         - rename updateMediaPlayer -> updatePlayState which tells more about what it actually does
55558
55559         * html/HTMLMediaElement.cpp:
55560         (WebCore::HTMLMediaElement::load):
55561         (WebCore::HTMLMediaElement::setReadyState):
55562         (WebCore::HTMLMediaElement::play):
55563         (WebCore::HTMLMediaElement::pause):
55564         (WebCore::HTMLMediaElement::setVolume):
55565         (WebCore::HTMLMediaElement::setMuted):
55566         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
55567         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
55568         (WebCore::HTMLMediaElement::updateVolume):
55569         (WebCore::HTMLMediaElement::updatePlayState):
55570         (WebCore::HTMLMediaElement::setPausedInternal):
55571         * html/HTMLMediaElement.h:
55572         * platform/graphics/MediaPlayer.cpp:
55573         (WebCore::MediaPlayer::MediaPlayer):
55574         * platform/graphics/MediaPlayer.h:
55575         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
55576         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
55577         (WebCore::MediaPlayerPrivate::createQTMovie):
55578         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
55579         * platform/graphics/win/QTMovieWin.cpp:
55580         * platform/graphics/win/QTMovieWin.h:
55581
55582 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
55583
55584         Reviewed by Simon.
55585
55586         * Fix "QObject::startTimer: QTimer can only be used with threads started with QThread"
55587         * The JSC GCController gets automatically destructed on application exit, it will stop
55588         its timer and we try to schedule the next timer. Now the GCController can get destructed
55589         after our QApplication is gone. This will trigger the above warning, we can avoid this
55590         by checking if our qApp is still around.
55591
55592         * platform/qt/SharedTimerQt.cpp:
55593         (WebCore::setSharedTimerFireTime):
55594
55595 2008-01-24  Morten Johan Sørvig  <msorvig@trolltech.com>
55596
55597         Reviewed by Simon.
55598
55599         Qt/Mac: Make sure the scrollbars does not overlap the grow box.
55600
55601         When showing only one scrollbar we need to move it so it doesn't overlap the
55602         grow box. This is similar to the code in QAbstractScrollArea.
55603
55604
55605         * platform/qt/ScrollViewQt.cpp:
55606         (WebCore::ScrollView::updateScrollbars):
55607
55608 2008-01-15  Michael Goddard  <michael.goddard@trolltech.com>
55609
55610         Reviewed by Darin.
55611
55612         While parsing -webkit-border-image, store
55613         the border widths as naked pointers rather
55614         than as OwnPtrs, since they point to the
55615         middle of an array.
55616
55617         Test: fast/css/border-image-crash.html
55618
55619         * css/CSSParser.cpp:
55620
55621 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
55622
55623         Reviewed by Simon.
55624
55625         * Attempt to fix showing of popup again after a popup has been shown but
55626         the user did not select any item (e.g. clicked outside of the popup)
55627         * Keep track of the popup status using the virtuals showPopup and hidePopup
55628         and do not go into recursion when hiding a popup.
55629
55630         * platform/qt/QWebPopup.cpp:
55631         (WebCore::QWebPopup::showPopup):
55632         (WebCore::QWebPopup::hidePopup):
55633         * platform/qt/QWebPopup.h:
55634
55635 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
55636
55637         Reviewed by Simon.
55638
55639         * Assert the presence of the PopupMenuClient
55640
55641         * platform/qt/QWebPopup.cpp:
55642         (WebCore::QWebPopup::QWebPopup):
55643         (WebCore::QWebPopup::hideEvent):
55644         (WebCore::QWebPopup::activeChanged):
55645
55646 2008-01-23  David Kilzer  <ddkilzer@apple.com>
55647
55648         <rdar://problem/5702947> WebCore: CGContextDrawPDFDocument will be deprecated
55649
55650         Reviewed by Darin.
55651
55652         No test cases added since there is no change in behavior.
55653
55654         * platform/graphics/cg/PDFDocumentImage.cpp:
55655         (WebCore::PDFDocumentImage::draw): Replace CGContextDrawPDFDocument() with
55656         calls to CG methods that perform the equivalent work.
55657
55658 2008-01-23  Antti Koivisto  <antti@apple.com>
55659
55660         Reviewed by Hyatt, Adele.
55661
55662         Timers for media controls keep running when the page is in the page cache.
55663         
55664         Stop timers in RenderMedia and get rid of the controls tree when the page goes to the cache. 
55665
55666         * html/HTMLMediaElement.cpp:
55667         (WebCore::HTMLMediaElement::HTMLMediaElement):
55668         (WebCore::HTMLMediaElement::willSaveToCache):
55669         (WebCore::HTMLMediaElement::didRestoreFromCache):
55670         * html/HTMLMediaElement.h:
55671         (WebCore::HTMLMediaElement::inPageCache):
55672         * rendering/RenderMedia.cpp:
55673         (WebCore::RenderMedia::updateControls):
55674
55675 2008-01-23  Antti Koivisto  <antti@apple.com>
55676
55677         Reviewed by Adam.
55678
55679         Video that had already played to the end would start playing (from beginning) on back/forward navigation.
55680         
55681         Use setPausedInternal() instead of pause(). This avoid generating pause/play events and matches specification text.
55682
55683         * html/HTMLMediaElement.cpp:
55684         (WebCore::HTMLMediaElement::willSaveToCache):
55685
55686 2008-01-23  Alexey Proskuryakov  <ap@webkit.org>
55687
55688         Reviewed by Darin.
55689
55690         <rdar://problem/4200075> Missing support for accented chars in mailto forms
55691
55692         With some combinations of form parameters, this was resulting in regressed behavior.
55693
55694         Tests: fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
55695                fast/forms/mailto/post-text-plain-with-accept-charset.html
55696                fast/forms/mailto/post-text-plain.html
55697
55698         * html/HTMLFormElement.cpp:
55699         (WebCore::HTMLFormElement::formData): Ignore accept-charset for mailto forms, which are always
55700         encoded as UTF-8.
55701         (WebCore::HTMLFormElement::isMailtoForm): Added.
55702         (WebCore::HTMLFormElement::dataEncoding): Added (factored out from formData).
55703         (WebCore::HTMLFormElement::submit): When round-tripping in text/plain case, use utf-8 encoding.
55704         * html/HTMLFormElement.h: Added a isMailtoForm() function. It may be a bit unfortunate that
55705         its result is calculated repeatedly, but this doesn't seem to be anywhere near hot code.
55706
55707 2008-01-22  Justin Garcia  <justin.garcia@apple.com>
55708
55709         Reviewed by Alice Liu.
55710
55711         <rdar://problem/5658727> Undo/redo for pasted or typed text in yahoo mail becomes disabled after one round of being selected
55712
55713         * rendering/RenderTextControl.cpp:
55714         (WebCore::RenderTextControl::updateFromElement): If value == text() and
55715         m_innerText is empty, then value and text() are "". In that case both DOM 
55716         mutations are no-ops and there is no reason to clear the Undo stack.
55717
55718 2008-01-23  Steve Falkenburg  <sfalken@apple.com>
55719
55720         <rdar://problem/5698732> Copyright strings should include 2008
55721
55722         Reviewed by Sam.
55723
55724         * WebCore.vcproj/QTMovieWin.rc:
55725
55726 2008-01-23  Steve Falkenburg  <sfalken@apple.com>
55727
55728         <rdar://problem/5699509> Allow file upload dialog to be localized.
55729
55730         Reviewed by Darin.
55731
55732         * platform/LocalizedStrings.h:
55733         * platform/win/FileChooserWin.cpp:
55734         (WebCore::FileChooser::openFileChooser):
55735
55736 2008-01-23  Adam Roben  <aroben@apple.com>
55737
55738         Fix behavior of type-to-select in <select> menus
55739
55740         In r27825 we started posting both a WM_KEYDOWN and WM_CHAR message
55741         whenever a key was pressed in the dropdown menu. However, since posted
55742         messages go through TranslateMessage, the WM_KEYDOWN was generating
55743         another WM_CHAR message, so two WM_CHAR messages in a row would reach
55744         the WebView. This caused the searching to happen twice for each key,
55745         so typing "dog" would search for "ddoogg".
55746
55747         Reviewed by Darin.
55748
55749         * platform/win/PopupMenuWin.cpp:
55750         (WebCore::PopupWndProc): Repost the WM_KEYDOWN message to the WebView.
55751         This is will generate a WM_CHAR message which will trigger the
55752         type-to-select behavior. This is very similar to our behavior prior to
55753         r27825, except that we're now calling PostMessage instead of
55754         SendMessage.
55755
55756 2008-01-23  Alp Toker  <alp@atoker.com>
55757
55758         Rubber-stamped by Mark Rowe.
55759
55760         Remove whitespace after -I in automake include lists.
55761
55762         * GNUmakefile.am:
55763
55764 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
55765
55766         * Rubber stamped by Simon
55767
55768         * Load images incrementally. This will show warnings on the console
55769         and we want to fix them for Qt4.4. If that happens we have to remove
55770         the comment from the enum inside the ImageDecoderQt.cpp
55771
55772         * platform/graphics/qt/ImageDecoderQt.cpp:
55773         (WebCore::ImageDecoderQt::setData):
55774
55775 2008-01-23  Lars Knoll  <lars@trolltech.com>
55776
55777         Reviewed by Holger Freyther <holger.freyther@trolltech.com>.
55778
55779         Fix rendering of the Scrollbar as well as mouse handling for some styles.
55780
55781         The QStyle expects that that painter is set up to clip to the scrollbar bounds
55782         and some of the styles seem to paint somewhat outside of these bounds. Clipping to
55783         the scrollbar bounds before drawing removes some artifacts.
55784
55785         Also set m_opt.rect.topLeft to (0/0) in the mouse handlers. Fixes some issues with
55786         the oxygen style.
55787
55788
55789         * platform/qt/PlatformScrollBarQt.cpp:
55790         (WebCore::PlatformScrollbar::paint):
55791         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
55792         (WebCore::PlatformScrollbar::handleMousePressEvent):
55793
55794 2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>
55795
55796         Reviewed by Simon.
55797
55798         Rendering fixes for Qtopia.
55799
55800         Make the focus ring work with line breaks (until we have QPainterPath::simplify) and
55801         call QStyle with better arguments when painting themed elements.
55802
55803         * platform/graphics/qt/GraphicsContextQt.cpp:
55804         (WebCore::GraphicsContext::drawFocusRing):
55805         * platform/qt/RenderThemeQt.cpp:
55806         (WebCore::RenderThemeQt::paintButton):
55807         (WebCore::RenderThemeQt::applyTheme):
55808
55809 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
55810
55811         Reviewed by Simon.
55812
55813         * FormData::flatten does not include to be uploaded files. Create our own QIODevice
55814         for the QNetworkAccessManager and feed the complete content of the FormData* to
55815         the (HTTP) backend.
55816         * Try to optimize the ::readData implementation to fill the buffer as best as possible
55817
55818         * platform/network/qt/QNetworkReplyHandler.cpp:
55819         (WebCore::FormDataIODevice::FormDataIODevice):
55820         (WebCore::FormDataIODevice::~FormDataIODevice):
55821         (WebCore::FormDataIODevice::moveToNextElement):
55822         (WebCore::FormDataIODevice::readData):
55823         (WebCore::FormDataIODevice::writeData):
55824         (WebCore::FormDataIODevice::setParent):
55825         (WebCore::FormDataIODevice::isSequential):
55826         (WebCore::FormDataIODevice::slotFinished):
55827         (WebCore::QNetworkReplyHandler::start):
55828         * platform/network/qt/QNetworkReplyHandler.h:
55829
55830 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
55831
55832         Reviewed by Simon.
55833
55834         * Coding-Style fixes
55835
55836         * platform/network/qt/QNetworkReplyHandler.cpp:
55837         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
55838
55839 2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>
55840
55841         Reviewed by Simon.
55842
55843         use PopupClient's font for popup menu. Otherwise, in Qtopia, the popup's font is much bigger (QApplication::font()?) and the text doesn't fit.
55844
55845         * platform/qt/QWebPopup.cpp:
55846         (WebCore::QWebPopup::QWebPopup):
55847
55848 2008-01-23  Simon Hausmann  <hausmann@webkit.org>
55849
55850         Reviewed by Lars.
55851
55852         Implemented FrameLoaderClient::startDownload() and FrameLoaderClient::download().
55853         
55854         Added two signals to QWebPage to handle downloading of links and handling of
55855         unsupported content.
55856         
55857
55858         * platform/network/qt/QNetworkReplyHandler.cpp:
55859         (WebCore::QNetworkReplyHandler::release):
55860         * platform/network/qt/QNetworkReplyHandler.h:
55861
55862 2008-01-22  Dan Bernstein  <mitz@apple.com>
55863
55864         Reviewed by Adele Peterson.
55865
55866         - fix http://bugs.webkit.org/show_bug.cgi?id=16905
55867           <rdar://problem/5692407> REGRESSION (3.0.4-TOT): "menu" pseudocolor is badly chosen
55868
55869         The regression test for this is fast/css/css2-system-color.html which
55870         is currently disabled.
55871
55872         * rendering/RenderThemeMac.mm:
55873         (WebCore::menuBackgroundColor): Added. Uses HIThemeDrawMenuBackground
55874         to draw the menu item background into a bitmap graphics context and
55875         returns the color of the pixel at (0, 0).
55876         (WebCore::RenderThemeMac::systemColor): Changed to call
55877         menuBackgroundColor for the CSS2 menu color.
55878
55879 2008-01-22  Darin Adler  <darin@apple.com>
55880
55881         Reviewed by Oliver Hunt.
55882
55883         - turn full repainting back on for <canvas> until we get incremental
55884           repaint working properly
55885
55886         Ollie and I came up with a plan for testing this, but for now we should
55887         just fall back on the "repaint everything" behavior we have always had.
55888
55889         * html/HTMLCanvasElement.cpp:
55890         (WebCore::HTMLCanvasElement::willDraw): Just call repaint.
55891
55892 2008-01-22  Alp Toker  <alp@atoker.com>
55893
55894         GTK+/qmake build fix.
55895
55896         * WebCore.pro:
55897
55898 2008-01-22  Adam Roben  <aroben@apple.com>
55899
55900         Add HTMLFrameOwnerElement::scrollingMode
55901
55902         This new virtual method is overridden by HTMLFrameElementBase to
55903         provide the scrolling mode set on the frame or iframe element. Object
55904         elements always have scrolling=auto, so there's no need to override
55905         this method for HTMLPlugInElement.
55906
55907         Reviewed by Hyatt.
55908
55909         * html/HTMLFrameElementBase.h: Declare scrollingMode as virtual.
55910         * html/HTMLFrameOwnerElement.h:
55911         (WebCore::HTMLFrameOwnerElement::scrollingMode): Added.
55912
55913 2008-01-22  David Hyatt  <hyatt@apple.com>
55914
55915         Fix for <rdar://problem/5698481> REGRESSION: Web Inspector source view gutter double divider and no padding
55916
55917         Now that cellpadding cascades properly on <td>s, we need to make the view source padding rules in the user
55918         agent sheet have !important in order to override author settings.
55919
55920         Reviewed by Tim
55921
55922         * css/view-source.css:
55923
55924 2008-01-22  Nikolas Zimmermann  <zimmermann@kde.org>
55925
55926         Reviewed by Alp.
55927
55928         Allow to use SVGPaintServerSolid without RenderObject/RenderStyle. Used later to draw SVG Fonts in HTML.
55929
55930         * svg/graphics/SVGPaintServer.cpp:
55931         (WebCore::SVGPaintServer::sharedSolidPaintServer):
55932         * svg/graphics/SVGPaintServer.h:
55933         * svg/graphics/cg/SVGPaintServerCg.cpp:
55934         (WebCore::SVGPaintServer::renderPath):
55935         (WebCore::SVGPaintServer::fillPath):
55936         (WebCore::SVGPaintServer::clipToFillPath):
55937         * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
55938         (WebCore::SVGPaintServerSolid::setup):
55939
55940 2008-01-22  Nikolas Zimmermann  <zimmermann@kde.org>
55941
55942         Reviewed by Alp.
55943
55944         Initialize missing variables, m_lineGap / m_lineSpacing.
55945         Only noticeable when trying to render HTML text using SVG Fonts (which is not possible with trunk, but with my local version).
55946
55947         * platform/graphics/SimpleFontData.cpp:
55948         (WebCore::SimpleFontData::SimpleFontData):
55949
55950 2008-01-22  Alp Toker  <alp@atoker.com>
55951
55952         Reviewed by Nikolas.
55953
55954         Fix Cairo SVG fonts following changes in r29700.
55955
55956         Set the font description's details as needed in FontPlatformData and
55957         eliminate GraphicsContext::setPlatformFont() since it was redundant
55958         and assumed all fonts were Cairo fonts.
55959
55960         * platform/graphics/GraphicsContext.cpp:
55961         * platform/graphics/cairo/GraphicsContextCairo.cpp:
55962         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
55963         (WebCore::FontPlatformData::FontPlatformData):
55964
55965 2008-01-22  Dan Bernstein  <mitz@apple.com>
55966  
55967          Reviewed by Eric.
55968  
55969          - fix http://bugs.webkit.org/show_bug.cgi?id=16967
55970            <rdar://problem/5699344> Reproducible crash when navigating back to a page using SVG fonts
55971  
55972          Test: svg/custom/font-platformDestroy-crash.svg
55973  
55974          * platform/graphics/SimpleFontData.cpp:
55975          (WebCore::SimpleFontData::~SimpleFontData): Changed to call
55976          platformDestroy() only if platformInit() was called from the
55977          constructor.
55978
55979 2008-01-22  Lars Knoll  <lars@trolltech.com>
55980
55981         Reviewed by Simon.
55982
55983         cleanup the CookieJarQt implementation and implement cookiesEnabled.
55984
55985         * platform/qt/CookieJarQt.cpp:
55986         (WebCore::cookieJar):
55987         (WebCore::setCookies):
55988         (WebCore::cookies):
55989         (WebCore::cookiesEnabled):
55990
55991 2008-01-22  Lars Knoll  <lars@trolltech.com>
55992
55993         Reviewed by Simon.
55994
55995         Ported the font implementation to use the new QFont features of Qt 4.4.
55996         
55997
55998         * platform/graphics/Font.h:
55999         (WebCore::Font::setWordSpacing):
56000         (WebCore::Font::setLetterSpacing):
56001         (WebCore::Font::font):
56002         (WebCore::Font::):
56003         * platform/graphics/qt/FontQt.cpp:
56004         (WebCore::Font::Font):
56005         (WebCore::Font::setWordSpacing):
56006         (WebCore::Font::setLetterSpacing):
56007         (WebCore::qstring):
56008         (WebCore::setupLayout):
56009         (WebCore::Font::drawText):
56010         (WebCore::Font::width):
56011         (WebCore::Font::floatWidth):
56012         (WebCore::Font::offsetForPosition):
56013         (WebCore::Font::selectionRectForText):
56014         (WebCore::generateComponents):
56015         (WebCore::cursorToX):
56016         (WebCore::Font::~Font):
56017         (WebCore::Font::operator=):
56018         (WebCore::Font::operator==):
56019         (WebCore::Font::update):
56020
56021 2008-01-21  Eric Seidel  <eric@webkit.org>
56022
56023         Reviewed by Nikolas & Oliver.
56024         
56025         Tested by svg/custom/svg-features.html
56026         
56027         * dom/DOMImplementation.cpp:
56028         (WebCore::isSVG10Feature): use ENABLE(SVG_*) conditionals
56029         (WebCore::isSVG11Feature): use ENABLE(SVG_*) conditionals
56030
56031 2008-01-21  Geoffrey Garen  <ggaren@apple.com>
56032
56033         Reviewed by Maciej Stachowiak.
56034
56035         Adapted WebCore to the fix for http://bugs.webkit.org/show_bug.cgi?id=16909
56036         REGRESSION: Amazon.com crash (ActivationImp)
56037
56038         * bindings/js/kjs_proxy.cpp:
56039         (WebCore::KJSProxy::~KJSProxy): No convenient way to make this assertion
56040         anymore. (It wasn't firing for anyone, anyway, so it's no big loss.)
56041
56042         * bindings/objc/WebScriptObject.mm:
56043         (+[WebScriptObject throwException:]): Use the ExecState stack, instead
56044         of currentExec.
56045         (-[WebScriptObject setException:]): ditto. Also, a slight change in
56046         behavior: If no ExecStates are active, we no longer throw an exception
56047         in the global ExecState. The JavaScriptCore ChangeLog explains why.
56048         This also matches the behavior of +throwException.
56049
56050 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56051
56052         Not reviewed. Try to fix Qt build, after the rmdir() fixes.c
56053
56054         * platform/graphics/qt/SimpleFontDataQt.cpp:
56055         (WebCore::SimpleFontData::SimpleFontData):
56056
56057 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56058
56059         Not reviewed. Another Wx build fix.
56060
56061         * platform/graphics/wx/FontWx.cpp:
56062         (WebCore::Font::drawGlyphs):
56063
56064 2008-01-21  Darin Adler  <darin@apple.com>
56065
56066         - try to fix Qt build
56067
56068         * platform/qt/FileSystemQt.cpp:
56069         (WebCore::deleteEmptyDirectory): QDir::root().rmdir() instead of QDir::rmdir().
56070
56071 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56072
56073         Not reviewed. Yet another win/gtk build fix.
56074
56075         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
56076         (WebCore::FontPlatformData::FontPlatformData):
56077         * platform/graphics/win/FontWin.cpp:
56078         (WebCore::Font::drawGlyphs):
56079
56080 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56081
56082         Not reviewed. Another build fix for Gtk/Linux & Wx/Mac.
56083
56084         * platform/graphics/SimpleFontData.cpp:
56085         (WebCore::SimpleFontData::SimpleFontData):
56086
56087 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56088
56089         Not reviewed. Build fix for Qt/Gtk & Wx.
56090
56091         * css/CSSFontSelector.cpp:
56092         * platform/graphics/SegmentedFontData.cpp:
56093         (WebCore::SegmentedFontData::isSVGFont): Remove SVG_FONTS block, it's a pure virtual function in the base class.
56094         * platform/graphics/SegmentedFontData.h:
56095
56096 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56097
56098         Not reviewed. Build fix for ports that don't build SVG: wx.
56099
56100         * css/CSSFontFaceSource.h: Wrap include in ENABLE(SVG_FONTS) blocks.
56101         * css/CSSFontFaceSrcValue.h: Ditto.
56102
56103 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56104
56105         Not reviewed. Build fix for Qt/Gtk.
56106
56107         * platform/graphics/SimpleFontData.h:
56108         (WebCore::SimpleFontData::svgFontData):
56109         (WebCore::SimpleFontData::isSVGFont):
56110
56111 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
56112
56113         Reviewed by Eric. Older parts reviewed by Dan.
56114
56115         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16880 (SVGCSSFontFace should die, instead integrate within the FontCache.)
56116         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16784 (In-document fonts work only as the first child to font-face-src)
56117
56118         Proper integration of SVG Fonts within the existing custom font concept, removing the need for a custom SVGCSSFontFace.
56119         Integrate within the CSSFontFaceSource logic for caching support, as well as the framework for external SVG Fonts.
56120
56121         Proper handling of missing glyphs, using <missing-glyph> element. If that is not specified in a font, fallback to non-SVG font rendering.
56122
56123         * GNUmakefile.am:
56124         * WebCore.pro:
56125         * WebCore.vcproj/WebCore.vcproj:
56126         * WebCore.xcodeproj/project.pbxproj:
56127         * css/CSSFontFaceSource.cpp:
56128         (WebCore::CSSFontFaceSource::getFontData):
56129         * css/CSSFontFaceSource.h:
56130         (WebCore::CSSFontFaceSource::svgFontFaceElement):
56131         (WebCore::CSSFontFaceSource::setSVGFontFaceElement):
56132         * css/CSSFontFaceSrcValue.h:
56133         (WebCore::CSSFontFaceSrcValue::m_isLocal):
56134         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
56135         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
56136         (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
56137         * css/CSSFontSelector.cpp:
56138         (WebCore::CSSFontSelector::addFontFaceRule):
56139         * css/SVGCSSFontFace.cpp: Removed.
56140         * css/SVGCSSFontFace.h: Removed.
56141         * platform/graphics/Font.cpp:
56142         (WebCore::Font::ascent):
56143         (WebCore::Font::descent):
56144         (WebCore::Font::lineSpacing):
56145         (WebCore::Font::xHeight):
56146         (WebCore::Font::fontSelector):
56147         * platform/graphics/Font.h:
56148         * platform/graphics/FontData.h:
56149         * platform/graphics/SegmentedFontData.cpp:
56150         (WebCore::SegmentedFontData::isSVGFont):
56151         * platform/graphics/SegmentedFontData.h:
56152         * platform/graphics/SimpleFontData.cpp:
56153         (WebCore::SimpleFontData::SimpleFontData):
56154         * platform/graphics/SimpleFontData.h:
56155         (WebCore::SimpleFontData::ascent):
56156         (WebCore::SimpleFontData::descent):
56157         (WebCore::SimpleFontData::lineSpacing):
56158         (WebCore::SimpleFontData::lineGap):
56159         (WebCore::SimpleFontData::xHeight):
56160         (WebCore::SimpleFontData::isSVGFont):
56161         (WebCore::SimpleFontData::svgFontData):
56162         * platform/graphics/gtk/FontPlatformData.h:
56163         (WebCore::FontPlatformData::size):
56164         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
56165         (WebCore::FontPlatformData):
56166         * platform/graphics/mac/FontPlatformData.h:
56167         (WebCore::FontPlatformData::FontPlatformData):
56168         (WebCore::FontPlatformData::size):
56169         * platform/graphics/win/FontPlatformData.h:
56170         * platform/graphics/win/FontPlatformDataWin.cpp:
56171         (WebCore::FontPlatformData::FontPlatformData):
56172         * rendering/RenderSVGText.cpp:
56173         (WebCore::RenderSVGText::relativeBBox):
56174         * svg/SVGFont.cpp:
56175         (WebCore::convertEmUnitToPixel):
56176         (WebCore::isCompatibleGlyph):
56177         (WebCore::svgFontAndFontFaceElementForFontData):
56178         (WebCore::SVGTextRunWalker::SVGTextRunWalker):
56179         (WebCore::SVGTextRunWalker::walk):
56180         (WebCore::floatWidthUsingSVGFontCallback):
56181         (WebCore::floatWidthMissingGlyphCallback):
56182         (WebCore::floatWidthOfSubStringUsingSVGFont):
56183         (WebCore::drawTextUsingSVGFontCallback):
56184         (WebCore::drawTextMissingGlyphCallback):
56185         (WebCore::Font::drawTextUsingSVGFont):
56186         * svg/SVGFontData.cpp: Added.
56187         (WebCore::SVGFontData::SVGFontData):
56188         (WebCore::SVGFontData::~SVGFontData):
56189         * svg/SVGFontData.h: Added.
56190         (WebCore::SVGFontData::svgFontFaceElement):
56191         (WebCore::SVGFontData::horizontalOriginX):
56192         (WebCore::SVGFontData::horizontalOriginY):
56193         (WebCore::SVGFontData::horizontalAdvanceX):
56194         (WebCore::SVGFontData::verticalOriginX):
56195         (WebCore::SVGFontData::verticalOriginY):
56196         (WebCore::SVGFontData::verticalAdvanceY):
56197         * svg/SVGFontFaceElement.cpp:
56198         (WebCore::SVGFontFaceElement::unitsPerEm):
56199         (WebCore::SVGFontFaceElement::xHeight):
56200         (WebCore::SVGFontFaceElement::horizontalOriginX):
56201         (WebCore::SVGFontFaceElement::horizontalOriginY):
56202         (WebCore::SVGFontFaceElement::horizontalAdvanceX):
56203         (WebCore::SVGFontFaceElement::verticalOriginX):
56204         (WebCore::SVGFontFaceElement::verticalOriginY):
56205         (WebCore::SVGFontFaceElement::verticalAdvanceY):
56206         (WebCore::SVGFontFaceElement::ascent):
56207         (WebCore::SVGFontFaceElement::descent):
56208         (WebCore::SVGFontFaceElement::fontFamily):
56209         (WebCore::SVGFontFaceElement::associatedFontElement):
56210         (WebCore::SVGFontFaceElement::rebuildFontFace):
56211         * svg/SVGFontFaceElement.h:
56212         * svg/SVGGlyphElement.cpp:
56213         (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
56214         (WebCore::parseSVGGlyphAttribute):
56215         (WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
56216         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
56217         * svg/SVGGlyphElement.h:
56218         * svg/SVGMissingGlyphElement.cpp:
56219         * svg/svgattrs.in:
56220
56221 2008-01-21  Darin Adler  <darin@apple.com>
56222
56223         Reviewed by John Sullivan.
56224
56225         - fix <rdar://problem/5644324> Delegate-less WebKit clients should have no databases
56226
56227         - remove the default database quota setting
56228
56229         - simplify the quota-related client calls by merging the one for a new database with
56230           the one for an existing database, adding a feature where you can get details about
56231           a database being created using the same functions that work on the other databases,
56232           and removing the parameters and return values, instead having clients use a function
56233           to set the quota
56234
56235         - fix unsafe multi-thread access to the database tracker's quota map
56236         - fix bug in deleteAllDatabases where it would iterate a HashMap while modifying it
56237
56238         The tracker database is now only created when we set the quota for a database origin.
56239         Thus asking for info about databases won't cause anything to be written to disk.
56240
56241         * WebCore.base.exp: Updated.
56242
56243         * bindings/js/GCController.cpp: Added an #if to get rid of an unused function warning.
56244
56245         * page/Chrome.cpp: Removed database-related functions. There's no problem having the
56246         code deal directly with the client.
56247         * page/Chrome.h: Ditto. Also made Chrome inherit from Noncopyable.
56248
56249         * page/ChromeClient.h: Replaced the two quota-related functions with a single one.
56250         The details about the state of databases in the origin are now available by asking
56251         for database details. There's also no need to pass the security origin, since
56252         it's easy to get that from the frame's document.
56253
56254         * page/Settings.cpp: Removed the default quota setting.
56255         * page/Settings.h: Ditto.
56256
56257         * platform/FileSystem.h: Added deleteEmptyDirectory.
56258         * platform/gtk/FileSystemGtk.cpp:
56259         (WebCore::deleteEmptyDirectory): Added.
56260         * platform/posix/FileSystemPOSIX.cpp:
56261         (WebCore::deleteEmptyDirectory): Added.
56262         * platform/qt/FileSystemQt.cpp:
56263         (WebCore::deleteEmptyDirectory): Added.
56264         * platform/win/FileSystemWin.cpp:
56265         (WebCore::deleteEmptyDirectory): Added.
56266         * platform/wx/FileSystemWx.cpp:
56267         (WebCore::deleteEmptyDirectory): Added placeholder.
56268
56269         * storage/DatabaseDetails.h: Removed the isValid() function since its name is
56270         confusing -- we removed our other isValid() functions. For the few callers that
56271         need this, it's fine to just check name().isEmpty(). Made the member functions
56272         all const.
56273
56274         * storage/DatabaseTracker.cpp:
56275         (WebCore::DatabaseTracker::DatabaseTracker): Removed m_defaultQuota initialization.
56276         Added m_proposedDatabase and m_thread.
56277         (WebCore::DatabaseTracker::setDatabaseDirectoryPath): Got rid of code that would
56278         open the tracker database here. This might slightly speed up launch time, since
56279         we won't do the I/O until we have to, and before we were actually creating an SQL
56280         database in this code that's run when we go to the first webpage.
56281         (WebCore::DatabaseTracker::trackerDatabasePath): Added.
56282         (WebCore::DatabaseTracker::openTrackerDatabase): Added a boolean parameter telling
56283         this function whether to create the database. Made this function safe to call if
56284         the database is already open. Also made the function fail quietly if the path has
56285         not been set yet.
56286         (WebCore::DatabaseTracker::canEstablishDatabase): Got rid of the call to the
56287         establishEntryForOrigin function. The origin is now put in the tracker database
56288         when the quota is set to a non-zero value. When judging if there's enough space
56289         for the new database, require at least one byte even if estimatedSize is 0, and
56290         check for overflow. Also added code here to populate the origins map, which
56291         guarantees it will be ready when the database uses it on another thread later.
56292         Also changed this to call the new ChromeClient function.
56293         (WebCore::DatabaseTracker::hasEntryForDatabase): Added code to open the
56294         tracker database, since that's no longer done by setDatabaseDirectoryPath.
56295         (WebCore::DatabaseTracker::originPath): Added.
56296         (WebCore::DatabaseTracker::fullPathForDatabase): Added code so that this will
56297         return a null string for the proposed database if called from within the
56298         ChromeClient function. Also switched from empty string to null string for the
56299         error cases.
56300         (WebCore::DatabaseTracker::populateOrigins): Added code to open the tracker
56301         database.
56302         (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
56303         (WebCore::DatabaseTracker::detailsForNameAndOrigin): Ditto. Also added code that
56304         will return the details of the proposed database if called from within the
56305         ChromeClient function. This is how the client can learn of the display name and
56306         the estimated size of the new database.
56307         (WebCore::DatabaseTracker::setDatabaseDetails): Added code to open the tracker
56308         database.
56309         (WebCore::DatabaseTracker::quotaForOrigin): Made this code OK to call on a non-main
56310         thread by using m_quotaMapGuard to guard access to the map. Other code runs on the
56311         main thread only, and only functions that write to the map use the lock.
56312         (WebCore::DatabaseTracker::setQuota): Changed this function so it can insert the
56313         initial quota as well as updating an existing quota. Added locking since this
56314         function modifies the quota map. Added code to open the tracker database. Added
56315         an early exit if the quota is already correct, which is guarantees that if you
56316         set a quota to 0 it won't trigger creation of a tracker database.
56317         (WebCore::DatabaseTracker::addDatabase): Added code to open the tracker database.
56318         (WebCore::DatabaseTracker::deleteAllDatabases): Made a copy of the quota map before
56319         iterating it to find all the origins. This fixes a problem with the old code where
56320         it would modify the map while iterating it, which gives assertions in debug builds
56321         and unpredictable results.
56322         (WebCore::DatabaseTracker::deleteOrigin): Replaced deleteDatabasesWithOrigin with
56323         this function. Added code to open the tracker database if needed. Added code to
56324         delete the origin from the tracker database, and to close the tracker database
56325         and delete files and directories as needed if we are deleting the final origin.
56326         (WebCore::DatabaseTracker::deleteDatabase): Added code to open the tracker database
56327         if needed.
56328
56329         * storage/DatabaseTracker.h: Renamed databasePath to databaseDirectoryPath for
56330         clarity, including the data member, and the getter and setter functions.
56331         Replaced deleteDatabasesWithOrigin with deleteOrigin. Removed the functions
56332         dealing with default origin quota. There is no default any more; origins start
56333         with no quota and the client must set a quota. Added trackerDatabasePath and
56334         originPath helper functions. Added a boolean parameter to openTrackerDatabase
56335         to tell it whether to create the database or not. Removed the
56336         establishEntryForOrigin function. Renamed m_originQuotaMap to just m_quotaMap,
56337         and added m_quotaMapGuard. Added a QuotaMap typedef. Added m_proposedDatabase,
56338         which holds the origin and details for the current proposed database during
56339         the client callback function that must decide whether to grant quota. Added a
56340         m_thread data member for debugging use to assert if functions that can only
56341         be called on a single thread are misused.
56342
56343         * storage/SQLTransaction.cpp:
56344         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Changed to call the
56345         new exceededDatabaseQuota function instead of the old one.
56346
56347         * svg/graphics/SVGImageEmptyClients.h: Updated for the change to ChromeClient.
56348
56349 2008-01-21  David Hyatt  <hyatt@apple.com>
56350
56351         Fix for http://bugs.webkit.org/show_bug.cgi?id=16935
56352
56353         Fix a bug in layers where the positioned ancestor was being computed incorrectly (the root should not
56354         automatically be included).
56355
56356         Reviewed by olliej
56357
56358         Added fast/layers/positioned-inside-root-with-margins.html
56359
56360         * rendering/RenderLayer.cpp:
56361         (WebCore::RenderLayer::stackingContext):
56362         (WebCore::RenderLayer::enclosingPositionedAncestor):
56363
56364 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
56365
56366         Reviewed by Holger.
56367
56368         Fix KURL to QUrl conversion.
56369         
56370         Stick to the encoded version of the URL and in addition to KURL we encode the
56371         characters mentioned in section 2.4.3 of RFC 2396 as QUrl requires these, too.
56372         
56373         This fixes fast/css/import-rule-regression-11590.html,
56374         fast/css/import-style-update.html, svg/hixie/processing-model/003.xml and
56375         svg/hixie/processing-model/004.xml.
56376
56377
56378         * platform/qt/KURLQt.cpp:
56379         (WebCore::toHex):
56380         (WebCore::KURL::operator QUrl):
56381
56382 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
56383
56384         Reviewed by Holger.
56385
56386         Fix focus chain handling and cycling through focusable objects (links) using tab/backtab.
56387         
56388         * Fix GraphicsContext::drawFocusRing to also draw single focus rects.
56389         * Implemented QWebPage::focusNextPrevChild by sending fake tab/shift-tab events
56390         and make the return value depend on whether we successfully determined a focusable
56391         node or not.
56392         * Changed QWebView::focusNextPrevChild() to call the base QWidget implementation correctly
56393         if we could not handle the focus chain ourselves.
56394         * Changed the focus policy of QWebView to correctly use WheelFocus instead of ClickFocus.
56395         * Made ChromeClientQt::canTakeFocus() and takeFocus() dummy method since they are only
56396         used to control the situation of stepping out of the focus chain inside the page.
56397         * Made inclusion of links in the focus chain configurable through QWebSettings::LinksIncludedInFocusChain.
56398         The layout tests expect this to be disabled but for the user it seems sensible to have it
56399         on by default, hence the default in qwebsettings.cpp
56400
56401         * platform/graphics/qt/GraphicsContextQt.cpp:
56402         (WebCore::GraphicsContext::drawFocusRing):
56403
56404 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
56405
56406         Reviewed by Holger.
56407
56408         Fix access key support and fast/forms/legend-access-key.html
56409
56410         SVN revision 26664 changed the default access key for the non-mac build to Alt
56411         while this test relies on Ctrl.
56412
56413         * page/EventHandler.cpp:
56414
56415 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
56416
56417         Reviewed by Holger.
56418
56419         Fix error reporting when parsing X(HT)ML fragments.
56420         
56421         We use the regular XMLTokenizer write()/.../end() sequence to parse those
56422         fragments, but we should not report any parsing errors inline inside the
56423         content. Instead we should just return the error and the DOM layer will take
56424         care of throwing an exception.
56425         
56426         This fixes fast/innerHTML/innerHTML-changing-document-properties.xhtml
56427         
56428
56429         * dom/XMLTokenizer.cpp:
56430         (WebCore::createXHTMLParserErrorHeader):
56431
56432 2008-01-21  Holger Freyther  <holger.freyther@trolltech.com>
56433
56434         Reviewed by Simon.
56435
56436         Fix some issues with redirections.
56437         
56438         * Ensure that we deliver the response to the ResourceHandleClient only once by
56439         setting m_responseSent back to false only before calling start() for the
56440         redirection
56441         * Added 307 as another HTTP status code that causes a redirection after POST to
56442         become get, just like in MainResourceLoader::isPostOrRedirectAfterPost
56443         * Also set the HTTP method on the ResourceRequest to GET before passing it to
56444         willSendRequest.
56445         * willSendRequest's newRequest argument is actually an in/out argument and could be
56446         modified in theory, so set m_request accordingly after the call.
56447         
56448
56449         * platform/network/qt/QNetworkReplyHandler.cpp:
56450         (WebCore::QNetworkReplyHandler::finish):
56451         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
56452
56453 2008-01-21  Holger Freyther  <holger.freyther@trolltech.com>
56454
56455         Reviewed by Simon.
56456
56457         Fixed WebCore::cookies() to return all cookies, not only the first one.
56458         
56459         Fixes login into mail.yahoo.com.
56460         
56461
56462         * platform/qt/CookieJarQt.cpp:
56463         (WebCore::cookies):
56464
56465 2008-01-20  Oliver Hunt  <oliver@apple.com>
56466
56467         Reviewed by Mitz.
56468
56469         Fix http://bugs.webkit.org/show_bug.cgi?id=16816 , rdar://problem/5682985
56470         
56471         Correctly trigger willPerformDragDestinationAction when a drop causes a 
56472         load to occur.  The logic that originally did this was lost during the
56473         great drag migration of '07.
56474
56475         * page/DragController.cpp:
56476         (WebCore::DragController::performDrag):
56477
56478 2008-01-20  Dan Bernstein  <mitz@apple.com>
56479
56480         Reviewed by Darin Adler.
56481
56482         - fix http://bugs.webkit.org/show_bug.cgi?id=16951
56483           Assertion failure in FrameView::scheduleRelayout (!m_frame->document() || !m_frame->document()->inPageCache()) when going back from a page with a focused popup
56484
56485         * dom/Document.cpp:
56486         (WebCore::Document::setFocusedNode): Bail out if the document is in the
56487         page cache. Documents in the back/forward cache are "frozen" and should
56488         not change state.
56489
56490 2008-01-20  Collin Jackson  <webkit@collinjackson.com>
56491
56492         Reviewed by Sam Weinig.
56493
56494         Fix for http://bugs.webkit.org/show_bug.cgi?id=16775
56495
56496         We now use frame()->loader()->url() for postMessage, preventing a
56497         malicious sender from overwriting the uri property (using a <base> tag,
56498         for example). Also, use frame->loader()->url().host() instead of 
56499         instead of document()->SecurityOrigin()->domain() to reflect a recent
56500         clarification in the HTML5 spec. 
56501
56502         Tests: http/tests/security/postMessage/domain-affected-by-document-domain.html
56503                http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag.html
56504                http/tests/security/postMessage/javascript-page-still-sends-domain.html
56505
56506         * bindings/js/JSDOMWindowCustom.cpp:
56507         (WebCore::JSDOMWindow::postMessage):
56508
56509 2008-01-20  Antti Koivisto  <antti@apple.com>
56510
56511         Reviewed by Adele.
56512
56513         Fix <rdar://problem/5695451>
56514         Middle part of the media timeline missing on Windows if load failed
56515
56516         Add some null checking to avoid getting garbage results from the functions.
56517
56518         * platform/graphics/MediaPlayer.cpp:
56519         * platform/graphics/win/QTMovieWin.cpp:
56520         (QTMovieWin::duration):
56521         (QTMovieWin::currentTime):
56522         (QTMovieWin::setCurrentTime):
56523         (QTMovieWin::maxTimeLoaded):
56524
56525 2008-01-19  Alp Toker  <alp@atoker.com>
56526
56527         Reviewed by Mark Rowe.
56528
56529         http://bugs.webkit.org/show_bug.cgi?id=16944
56530         Use of GST_PLUGIN_DEFINE_STATIC results in a module-level constructor
56531
56532         http://bugzilla.gnome.org/show_bug.cgi?id=510547
56533         Epiphany/Webkit fails to start due to initializing threads twice
56534
56535         Don't call GST_PLUGIN_DEFINE_STATIC() as it performs g_thread_init()
56536         in the global initializer, breaking subsequent calls to
56537         g_thread_init() in applications.
56538
56539         * platform/graphics/gtk/VideoSinkGStreamer.cpp:
56540
56541 2008-01-19  Alp Toker  <alp@atoker.com>
56542
56543         Reviewed by Mark Rowe.
56544
56545         Remove any fragment part from the URL to be requested just before
56546         passing it to curl, otherwise curl sends it as part of the HTTP/local
56547         file request, causing page loads to fail.
56548
56549         * platform/network/curl/ResourceHandleManager.cpp:
56550         (WebCore::ResourceHandleManager::startJob):
56551
56552 2008-01-19  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
56553
56554         Reviewed by Alp Toker.
56555
56556         Add svg foreign object and svg experimental to the GTK+/autotools
56557         build system.
56558
56559         * GNUmakefile.am:
56560
56561 2008-01-19  Dan Bernstein  <mitz@apple.com>
56562
56563         Reviewed by Maciej Stachowiak.
56564
56565         - fix <rdar://problem/5645813> CrashTracer: [USER] 6 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::destroy + 116
56566
56567         Test: editing/selection/inconsistent-in-removeChildNode.html
56568
56569         * editing/SelectionController.cpp:
56570         (WebCore::SelectionController::nodeWillBeRemoved): If the selection
56571         base or extent are not visible any more, adjust the selection.
56572
56573 2008-01-19  Oliver Hunt  <oliver@apple.com>
56574
56575         Reviewed by Eric Seidel.
56576
56577         Build fix for --svg-foreign-object path
56578
56579         * svg/SVGForeignObjectElement.idl:
56580
56581 2008-01-18  Stephanie  <slewis@apple.com>
56582
56583         Reviewed by Oliver.
56584
56585         Workaround for <rdar://problem/5695848>.  Set mime_type for local files based on file extension. 
56586
56587         * platform/network/cf/ResourceResponseCFNet.cpp:
56588         (WebCore::ResourceResponse::doUpdateResourceResponse):
56589
56590 2008-01-18  Ada Chan  <adachan@apple.com>
56591
56592         <rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
56593         Calling absolutePosition() in EventHandler::hitTestResultAtPoint() is extremely inefficient and passing in
56594         true as fixed before was wrong.  Use HitTestResult::localPoint() instead, and take into account border and padding widths.
56595
56596         Reviewed by Hyatt and Darin.
56597
56598         * page/EventHandler.cpp:
56599         (WebCore::EventHandler::hitTestResultAtPoint):
56600         * rendering/HitTestResult.cpp:
56601         (WebCore::HitTestResult::operator=):
56602
56603 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
56604
56605         Reviewed by Darin, landed by Beth.
56606
56607         - fixed http://bugs.webkit.org/show_bug.cgi?id=15765
56608
56609         The call to HTMLTokenizer::write might result in a call to ::end which will invoke
56610         HTMLParser::finished() or Document::finishedParsing(). HTMLParser::finished() will eventually
56611         call Document::finishedParsing. The Document will delete the calling HTMLTokenizer and from the deleted
56612         tokenizer we will call into FrameLoader::tokenizerProcessedData.
56613         -) FrameLoader::tokenizerProcessedData calls FrameLoader::checkCompleted which gets called from the Document::finishedParsing
56614            (FrameLoader::finishedParsing).
56615
56616         * html/HTMLTokenizer.cpp:
56617         (WebCore::HTMLTokenizer::timerFired):
56618
56619 2008-01-18  David Hyatt  <hyatt@apple.com>
56620
56621         Don't apply the border/margin/padding check to root line boxes, since their renderers
56622         are blocks.
56623
56624         * rendering/InlineFlowBox.cpp:
56625         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
56626         (WebCore::InlineFlowBox::placeBoxesVertically):
56627
56628 2008-01-18  Geoffrey Garen  <ggaren@apple.com>
56629
56630         Not reviewed: rolling out a previous patch.
56631         
56632         Fixed <rdar://problem/5695439> Crash during GCController destructor on
56633         quitting browser
56634
56635         Used svn merge to roll out r29603 because it introduced some crashes
56636         on quit.
56637         
56638         GC relies on static hash tables, so it's not safe to GC from a static
56639         destructor, which might run after the static hash tables' destructors.
56640
56641         * bindings/js/GCController.cpp:
56642         (WebCore::GCController::garbageCollectNow):
56643         * bindings/js/GCController.h:
56644
56645 2008-01-18  David Hyatt  <hyatt@apple.com>
56646
56647         Fix for http://bugs.webkit.org/show_bug.cgi?id=15665
56648
56649         Building on Beth's earlier work to start building line boxes for empty inlines, this patch makes more
56650         empty inline cases work.  Empty inlines on lines by themselves now set isLineEmpty to false so that
56651         bidiReorderLine will get properly called.  In addition, the "shrink boxes with no text children" quirk
56652         needs to be disabled for inlines with padding, margins or borders.
56653
56654         Reviewed by Beth
56655
56656         Added fast/inline/inline-padding-disables-text-quirk.html
56657
56658         * rendering/InlineFlowBox.cpp:
56659         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
56660         (WebCore::InlineFlowBox::placeBoxesVertically):
56661         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
56662         * rendering/RenderObject.h:
56663         (WebCore::RenderObject::hasBordersPaddingOrMargin):
56664         * rendering/bidi.cpp:
56665         (WebCore::inlineFlowRequiresLineBox):
56666         (WebCore::RenderBlock::findNextLineBreak):
56667
56668 2008-01-18  David Hyatt  <hyatt@apple.com>
56669
56670         Fix for http://bugs.webkit.org/show_bug.cgi?id=14975
56671
56672         Computed size of padding is incorrect because we default padding to auto.  This is a made-up value that
56673         was only used to implement cellpadding on tables.  We needed this made-up value in order to tell that
56674         padding wasn't set so that we could then apply cellpadding.
56675        
56676         This patch rewrites cellpadding to be like other browsers.  Instead of being a setting on the table
56677         renderer that applies to all cells (even ones that were not <td>s), cellpadding is now mapped into the
56678         style of <td>s.  With this change it effectively becomes a content model feature and not a rendering
56679         feature.
56680
56681         For example, a <td> will pick up cellpadding even when it is not a cell and/or the enclosing <table> is
56682         not a table.  Anonymous cells and CSS-display-type cells will now never pick up cellpadding.  This behavior
56683         is all consistent with other browsers.
56684
56685         Reviewed by Antti
56686
56687         Added fast/css/padding-no-renderer.html
56688
56689         * css/CSSStyleSelector.cpp:
56690         (WebCore::CSSStyleSelector::canShareStyleWithElement):
56691         (WebCore::CSSStyleSelector::styleForElement):
56692         * css/CSSStyleSelector.h:
56693         * dom/StyledElement.cpp:
56694         * dom/StyledElement.h:
56695         (WebCore::StyledElement::canHaveAdditionalAttributeStyleDecls):
56696         (WebCore::StyledElement::additionalAttributeStyleDecls):
56697         * html/HTMLTableCellElement.cpp:
56698         (WebCore::HTMLTableCellElement::additionalAttributeStyleDecls):
56699         * html/HTMLTableCellElement.h:
56700         (WebCore::HTMLTableCellElement::canHaveAdditionalAttributeStyleDecls):
56701         * html/HTMLTableColElement.cpp:
56702         (WebCore::HTMLTableColElement::additionalAttributeStyleDecls):
56703         * html/HTMLTableColElement.h:
56704         (WebCore::HTMLTableColElement::canHaveAdditionalAttributeStyleDecls):
56705         * html/HTMLTableElement.cpp:
56706         (WebCore::HTMLTableElement::parseMappedAttribute):
56707         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
56708         (WebCore::HTMLTableElement::addSharedCellDecls):
56709         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
56710         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
56711         (WebCore::HTMLTableElement::addSharedGroupDecls):
56712         (WebCore::HTMLTableElement::attach):
56713         * html/HTMLTableElement.h:
56714         (WebCore::HTMLTableElement::canHaveAdditionalAttributeStyleDecls):
56715         * html/HTMLTableSectionElement.cpp:
56716         (WebCore::HTMLTableSectionElement::additionalAttributeStyleDecls):
56717         * html/HTMLTableSectionElement.h:
56718         (WebCore::HTMLTableSectionElement::canHaveAdditionalAttributeStyleDecls):
56719         * rendering/AutoTableLayout.cpp:
56720         (WebCore::AutoTableLayout::recalcColumn):
56721         * rendering/RenderObject.cpp:
56722         (WebCore::RenderObject::paddingTop):
56723         (WebCore::RenderObject::paddingBottom):
56724         (WebCore::RenderObject::paddingLeft):
56725         (WebCore::RenderObject::paddingRight):
56726         * rendering/RenderStyle.cpp:
56727         (WebCore::StyleSurroundData::StyleSurroundData):
56728         * rendering/RenderStyle.h:
56729         (WebCore::RenderStyle::initialPadding):
56730         * rendering/RenderTable.cpp:
56731         (WebCore::RenderTable::RenderTable):
56732         * rendering/RenderTable.h:
56733
56734 2008-01-18  Dan Bernstein  <mitz@apple.com>
56735
56736         Reviewed by Dave Hyatt.
56737
56738         - fix <rdar://problem/5615307> Repro crash in WebKit!WebCore::RenderContainer::destroyLeftoverChildren
56739
56740         Test: fast/table/insert-row-before-form.html
56741
56742         * rendering/RenderTableRow.cpp:
56743         (WebCore::RenderTableRow::addChild): Changed to ensure that the
56744         object a new cell is inserted before is a child of the row, and
56745         added an assertion that that object is either a cell or a form.
56746         * rendering/RenderTableSection.cpp:
56747         (WebCore::RenderTableSection::addChild): Changed to ensure that the
56748         object a new row is inserted before is a child of the table section, and
56749         added an assertion that that object is either a table row or a form.
56750
56751 2008-01-18  Geoffrey Garen  <ggaren@apple.com>
56752
56753         Reviewed by Brady Eidson.
56754
56755         Fixed <rdar://problem/5622424> World Leak dialog when closing a page
56756         that has a Database
56757         
56758         The problem was that each transaction and SQL statement would hold on
56759         to its callback indefinitely. By design, callbacks often establish
56760         reference cycles to temporarily protect their execution environments.
56761         To break the cycle, we need to explicitly release each callback as soon
56762         as it is no longer needed.
56763
56764         * storage/SQLStatement.cpp:
56765         (WebCore::SQLStatement::performCallback): Release our callback objects
56766         after performing our callback.
56767
56768         * storage/SQLTransaction.cpp:
56769         (WebCore::SQLTransaction::postflightAndCommit): Release our callback
56770         objects after the transaction has terminated.
56771         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): ditto.
56772
56773 2008-01-18  Adele Peterson  <adele@apple.com>
56774
56775         Reviewed by Antti.
56776
56777         Fix for <rdar://problem/5679490> media controls fade in and out too jerkily and too slowly
56778
56779         * rendering/RenderMedia.cpp: Shorten the duration for the fade in/out animation.
56780
56781 2008-01-18  Beth Dakin  <bdakin@apple.com>
56782
56783         Reviewed by Oliver.
56784
56785         Disables SVG foreign object for <rdar://problem/5686989> turn off 
56786         SVG foreignobject because it does not repaint/dirty correctly
56787
56788         * DerivedSources.make:
56789         * WebCore.SVG.ForeignObject.exp: Added.
56790         * WebCore.SVG.exp:
56791         * bindings/js/JSSVGElementWrapperFactory.cpp:
56792         (WebCore::createJSSVGWrapper):
56793         * rendering/RenderForeignObject.cpp:
56794         * rendering/RenderForeignObject.h:
56795         * svg/SVGForeignObjectElement.cpp:
56796         * svg/SVGForeignObjectElement.h:
56797         * svg/SVGForeignObjectElement.idl:
56798         * svg/SVGLocatable.cpp:
56799         (WebCore::SVGLocatable::nearestViewportElement):
56800         (WebCore::SVGLocatable::farthestViewportElement):
56801         * svg/SVGUseElement.cpp:
56802         (WebCore::isDisallowedElement):
56803         * svg/svgtags.in:
56804
56805 2008-01-18  Mark Rowe  <mrowe@apple.com>
56806
56807         Rubber-stamped by Adam Roben.
56808
56809         Fix mixed line endings in FileSystemWin.cpp and set svn:eol-style to native
56810         to try and keep them consistent in the future.
56811
56812         * platform/win/FileSystemWin.cpp:
56813         (WebCore::fileSize):
56814         (WebCore::fileExists):
56815         (WebCore::deleteFile):
56816         (WebCore::pathByAppendingComponent):
56817         (WebCore::fileSystemRepresentation):
56818         (WebCore::makeAllDirectories):
56819         (WebCore::homeDirectoryPath):
56820         (WebCore::bundleName):
56821         (WebCore::storageDirectory):
56822         (WebCore::cachedStorageDirectory):
56823
56824 2008-01-18  Antti Koivisto  <antti@apple.com>
56825
56826         Reviewed by Adam.
56827
56828         Fix unreachable code warning in RenderVideo on Windows.
56829         
56830         Make switch cases explicit.
56831
56832         * rendering/RenderImage.cpp:
56833         (WebCore::RenderImage::isWidthSpecified):
56834         (WebCore::RenderImage::isHeightSpecified):
56835         * rendering/RenderVideo.cpp:
56836         (WebCore::RenderVideo::isWidthSpecified):
56837         (WebCore::RenderVideo::isHeightSpecified):
56838
56839 2008-01-18  Timothy Hatcher  <timothy@apple.com>
56840
56841         Reviewed by Adam Roben.
56842
56843         <rdar://problem/5693558> REGRESSION (r29581): no form field focus
56844         rings and inactive text selection after loading a page
56845         Bug 16910: [GTK] REGRESSION: keyboard cursor doesn't blink
56846         Bug 16917: REGRESSION (r29581/2): Google Maps search box loses focused appearance
56847
56848         * page/FocusController.cpp:
56849         (WebCore::FocusController::setActive): Use focusedOrMainFrame() instead of focusedFrame()
56850         to call selectionController()->pageActivationChanged() for cases when the focusedFrame()
56851         has not been set yet. 
56852
56853 2008-01-18  Alexey Proskuryakov  <ap@webkit.org>
56854
56855         Reviewed by Brady.
56856
56857         Database origin tracking is broken.
56858
56859         * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::populateOrigins):
56860         Move reading from statement back into the loop (broken in r29386).
56861
56862 2008-01-18  Marius Storm-Olsen  <marius@trolltech.com>
56863
56864         Reviewed by Simon Hausmann <hausmann@webkit.org>.
56865
56866         Add use of precompiled header, when building inside Qt.
56867         
56868         Compiling WebKit was taking forever; 17 minutes on my machine for _one_ build! Adding the PCH at least brings it down to 12 minutes for one build, for me.
56869         
56870
56871         * WebCore.pro:
56872
56873 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56874
56875         Reviewed by Holger.
56876
56877         Fix fast/forms/button-state-restore.html
56878         
56879         Similar to the fix for fast/forms/form-post-urlencoded.html transform POST
56880         requests to data urls into GET.
56881         
56882
56883         * platform/network/qt/QNetworkReplyHandler.cpp:
56884         (WebCore::QNetworkReplyHandler::start):
56885
56886 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56887
56888         Reviewed by Holger.
56889
56890         Fix LayoutTests/fast/cookies/local-file-can-set-cookies.html
56891         
56892         In WebCore::cookies() don't return the full raw form but only the name=value
56893         part. This fixes the getter part of the above test. The above test also
56894         requires a parsing fix in Qt 4.4's QNetworkCookie to fully pass.
56895         
56896
56897         * platform/qt/CookieJarQt.cpp:
56898         (WebCore::cookies):
56899
56900 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56901
56902         Reviewed by Holger.
56903
56904         Fix svg/custom/path-getTotalLength.svg
56905         
56906         Path::apply creates a PathElement and its points array on the stack,
56907         to fill it in from the QPainterPath data and then use the platform
56908         independent path applier functions to calculate properties such as
56909         the length. For converting a QPainterPath::CurveToElement we need
56910         three points in the path element. However we allocated only two
56911         on the stack and as a result we got memory corruption and the
56912         failing test.
56913         
56914
56915         * platform/graphics/qt/PathQt.cpp:
56916         (WebCore::Path::apply):
56917
56918 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56919
56920         Reviewed by Holger.
56921
56922         Fix LayoutTests/fast/dom/document-attribute-js-null.html
56923         
56924         Don't crash when trying to get/set cookies without a frameloader.
56925         
56926
56927         * platform/qt/CookieJarQt.cpp:
56928         (WebCore::setCookies):
56929         (WebCore::cookies):
56930
56931 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56932
56933         Reviewed by Holger.
56934
56935         Fix fast/dom/xmlhttprequest-get.xhtml
56936         
56937         For local file requests remove the content length and the last-modified
56938         headers in the response.
56939         
56940
56941         * platform/network/qt/QNetworkReplyHandler.cpp:
56942         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
56943
56944 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56945
56946         Reviewed by Holger.
56947
56948         Fix fast/forms/form-post-urlencoded.html.
56949         
56950         Post requests on files don't really make sense, but for
56951         fast/forms/form-post-urlencoded.html we still need to retrieve the file,
56952         which means we map it to a Get instead.
56953         
56954
56955         * platform/network/qt/QNetworkReplyHandler.cpp:
56956         (WebCore::QNetworkReplyHandler::start):
56957
56958 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
56959
56960         Reviewed by Holger.
56961
56962         Make QNetworkReplyHandler::abort() more robust against multiple invocations.
56963
56964         During DRT runs I see cancel() being called on the same handle multiple times. Guard
56965         against this a bit better by setting m_reply to 0 after we called abort() on it.
56966
56967         * platform/network/qt/QNetworkReplyHandler.cpp:
56968         (WebCore::QNetworkReplyHandler::abort):
56969
56970 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
56971
56972         Reviewed by Simon.
56973
56974         * httpBody() can return 0 and other ports (cf/mac) check for this condition
56975         * Looking at the cf/mac implementation we might need to call setHTTPBody somewhere
56976         as well.
56977         
56978
56979         WARNING: NO TEST CASES ADDED OR CHANGED
56980
56981         * platform/network/qt/QNetworkReplyHandler.cpp:
56982         (WebCore::QNetworkReplyHandler::start):
56983
56984 2008-01-18  Prasanth Ullattil  <prasanth.ullattil@trolltech.com>
56985
56986         Reviewed by Simon Hausmann <hausmann@webkit.org>.
56987
56988         Fix compilation in Win64(3): Due to the size of size_t cast the return value explicitly to double() to make sure the right Value() constructor is called.
56989
56990         * xml/XPathFunctions.cpp:
56991         (WebCore::XPath::FunCount::evaluate):
56992
56993 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
56994
56995         Reviewed by Simon.
56996
56997         * Remove our windowClipRect reimplementation and instead have our own
56998         Widget::invalidate implementation that is invalidating
56999         IntRect(0, 0, width(), height()) without trying to clip it (in contrast
57000         to Widget::invalidateRect)
57001
57002         * platform/qt/PlatformScrollBar.h:
57003         * platform/qt/PlatformScrollBarQt.cpp:
57004         (WebCore::PlatformScrollbar::invalidate):
57005
57006 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57007
57008         Reviewed by Simon.
57009
57010         * Change the coordinate transformation in the PlatformMouseEvent handlers
57011         * We want to convert from coordinates of the containing window to our local
57012         position on the scrollbar.
57013
57014         * platform/qt/PlatformScrollBarQt.cpp:
57015         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
57016         (WebCore::PlatformScrollbar::handleMousePressEvent):
57017
57018 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57019
57020         Reviewed by Simon.
57021
57022         * Make the qDebug more usable. Do not have an additional newline and print
57023         the untranslated coordinates as well.
57024
57025         * platform/qt/PlatformScrollBarQt.cpp:
57026         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
57027         (WebCore::PlatformScrollbar::handleMousePressEvent):
57028
57029 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57030
57031         Reviewed by Simon.
57032
57033         * Dead code, remove it
57034
57035         * platform/qt/PlatformScrollBarQt.cpp:
57036
57037 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57038
57039         Reviewed by Simon.
57040
57041         * Coding-Style fixes.
57042
57043         * platform/qt/PlatformScrollBarQt.cpp:
57044         (WebCore::PlatformScrollbar::PlatformScrollbar):
57045
57046 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57047
57048         Reviewed by Simon.
57049
57050         * Coding-Style fix
57051
57052         * platform/graphics/qt/ImageDecoderQt.cpp:
57053         (WebCore::ImageDecoderQt::ReadContext::ReadContext):
57054
57055 2008-01-17  Geoffrey Garen  <ggaren@apple.com>
57056
57057         Reviewed by Darin Adler.
57058
57059         Fixed: lots of WebCore leaks reported when quitting Safari
57060         
57061         If we're quitting with a GC still scheduled, do the GC before quitting.
57062         That way, WebCore's leak counters won't count objects that were
57063         scheduled for GC.
57064
57065         * bindings/js/GCController.cpp:
57066         (WebCore::GCController::~GCController):
57067         (WebCore::GCController::garbageCollectNow):
57068         * bindings/js/GCController.h:
57069
57070 2008-01-17  Alp Toker  <alp@atoker.com>
57071
57072         Reviewed by Oliver Hunt.
57073
57074         gdk_screen_get_font_options() returns NULL if no default options are
57075         set so we always have to NULL check to avoid crashes later on since
57076         Cairo doesn't accept NULL font options.
57077
57078         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
57079         (WebCore::FontPlatformData::FontPlatformData):
57080
57081 2008-01-17  Antti Koivisto  <antti@apple.com>
57082
57083         Reviewed by Adele.
57084
57085         Windows fix for <rdar://problem/5605682>
57086         Disallow streaming protocols for media elements
57087         and <rdar://problem/5668711>
57088         Limit the container and codec types that the <video> tag supports
57089         
57090         - Disable unsupported QuickTime tracks types. 
57091         - Disallow streaming protocols (for now).
57092
57093         * WebCore.vcproj/WebCore.vcproj:
57094         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
57095         (WebCore::MediaPlayerPrivate::updateStates):
57096         * platform/graphics/win/QTMovieWin.cpp:
57097         (QTMovieWin::load):
57098         (QTMovieWin::disableUnsupportedTracks):
57099         * platform/graphics/win/QTMovieWin.h:
57100
57101 2008-01-17  Oliver Hunt  <oliver@apple.com>
57102
57103         Support smart copy and paste during drag and drop
57104         
57105         Reviewed by Alice
57106         
57107         In order for the drag and drop tests in Windows DRT to pass
57108         we need to support smart cut and paste operations during
57109         drag and drop on windows.
57110         
57111         There is no layout test as drag and drop is still unsupported
57112         on windows.  Once supported smart drag/drop is tested by existing
57113         tests
57114
57115         * platform/win/ClipboardUtilitiesWin.cpp:
57116         (WebCore::smartPasteFormat):
57117         * platform/win/ClipboardUtilitiesWin.h:
57118         * platform/win/ClipboardWin.cpp:
57119         (WebCore::ClipboardWin::writeRange):
57120         * platform/win/DragDataWin.cpp:
57121
57122 2008-01-17  Oliver Hunt  <oliver@apple.com>
57123
57124         Reviewed by Anders.
57125
57126         <rdar://problem/5692940> Crash when attempting to get text properties in
57127         SVG with no renderer
57128
57129         We use the element renderer to calculate the text element bounds,
57130         however there was no check against the possibility of the text dimension
57131         properties being requested on a element with no renderer (eg. unattached, 
57132         display: none).
57133
57134         Test: svg/text/text-property-with-display-none.html
57135
57136         * svg/SVGTextContentElement.cpp:
57137         (WebCore::rootInlineBoxForTextContentElement):
57138
57139 2008-01-17  Anders Carlsson  <andersca@apple.com>
57140
57141         Reviewed by Oliver.
57142
57143         <rdar://problem/5636742>
57144         CrashTracer: [USER] 1302 crashes in Safari at com.apple.WebCore: WTF::Vector<char, 0ul>::reserveCapacity + 78
57145         
57146         When loading full-frame plug-ins, disable buffering data for the main resource loader. Otherwise, this can cause us
57147         to crash when loading large files such as movies in the browser. We already do this for embedded plug-ins.
57148         
57149         * WebCore.base.exp:
57150         * loader/DocumentLoader.h:
57151         (WebCore::DocumentLoader::mainResourceLoader):
57152         New accessor method.
57153         
57154         * loader/PluginDocument.cpp:
57155         (WebCore::PluginTokenizer::writeRawData):
57156         Disable buffering for the main resource loader.
57157         
57158         * loader/ResourceLoader.cpp:
57159         (WebCore::ResourceLoader::setShouldBufferData):
57160         * loader/ResourceLoader.h:
57161         Have this free the buffer when disabling buffering.
57162
57163 2008-01-17  Adam Roben  <aroben@apple.com>
57164
57165         More Qt/GTK+ build fixing.
57166
57167         * platform/gtk/ScrollViewGtk.cpp:
57168         * platform/qt/ScrollViewQt.cpp:
57169
57170 2008-01-17  Alexey Proskuryakov  <ap@webkit.org>
57171
57172         Reviewed by Darin.
57173
57174         http://bugs.webkit.org/show_bug.cgi?id=16902
57175         <rdar://problem/5692566> fast/encoding/mailto-always-utf-8.html fails when run after
57176         fast/dom/Window/window-property-shadowing.html
57177
57178         Test: fast/dom/Window/window-property-shadowing_.html
57179
57180         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Clear the frame name, too.
57181
57182 2008-01-17  Adam Roben  <aroben@apple.com>
57183
57184         Qt/GTK+ build fix.
57185
57186         * platform/gtk/ScrollViewGtk.cpp:
57187         (WebCore::ScrollView::ScrollViewPrivate::isActive):
57188         * platform/qt/ScrollViewQt.cpp:
57189         (WebCore::ScrollView::ScrollViewPrivate::isActive):
57190
57191 2008-01-16  Adam Roben  <aroben@apple.com>
57192
57193         Update scroll bars/form controls when FocusController::isActive changes
57194
57195         Part of <rdar://5006915> Inactive look for Aqua controls
57196
57197         Reviewed by Darin.
57198
57199         All tests pass.
57200
57201         * page/FocusController.cpp:
57202         (WebCore::FocusController::setActive): Update control tints when the
57203         active state changes.
57204         * page/FrameView.cpp:
57205         (WebCore::FrameView::updateControlTints): On Windows, we have to ask
57206         ScrollView to paint so that the outermost scroll bars will paint. On
57207         Mac, the outermost scroll bars are taken care of by NSScroller.
57208         * platform/PopupMenu.h: Updated for ScrollBarClient changes.
57209         * platform/ScrollBar.h: Added a new ScrollBarClient method.
57210         * platform/win/PlatformScrollBarSafari.cpp:
57211         (WebCore::PlatformScrollbar::paint): Invalidate when updating control
57212         tints so that we can paint with the new tint later.
57213         (WebCore::PlatformScrollbar::paintButton): Pass the active state down
57214         to SafariTheme.
57215         (WebCore::PlatformScrollbar::paintTrack): Ditto.
57216         (WebCore::PlatformScrollbar::paintThumb): Ditto.
57217         * platform/win/ScrollViewWin.cpp:
57218         (WebCore::ScrollView::ScrollViewPrivate::isActive): Added.
57219         (WebCore::ScrollView::paint): Pass paint calls on down if we're
57220         updating control tints so the scroll bars can invalidate.
57221         * rendering/RenderLayer.cpp:
57222         (WebCore::RenderLayer::isActive): Added.
57223         * rendering/RenderLayer.h:
57224         * rendering/RenderListBox.cpp:
57225         (WebCore::RenderListBox::isActive): Added.
57226         * rendering/RenderListBox.h:
57227         * rendering/RenderTheme.cpp:
57228         (WebCore::RenderTheme::isActive): Added.
57229         * rendering/RenderTheme.h:
57230         * rendering/RenderThemeSafari.cpp:
57231         (WebCore::RenderThemeSafari::determineState): Pass the active state
57232         down to SafariTheme.
57233
57234 2008-01-16  Adam Roben  <aroben@apple.com>
57235
57236         Move focused/active state from Frame to SelectionController/FocusController
57237
57238         This is the first part of <rdar://5006915> Inactive look for Aqua
57239         controls.
57240
57241         The following methods were moved/renamed:
57242             - Frame::setIsActive -> FocusController::setActive
57243             - Frame::isActive -> SelectionController::isActiveAndFocused
57244             - Frame::setWindowHasFocus -> SelectionController::setFocused
57245
57246         Active state is now correctly a Page-level concept.
57247
57248         The Mac parts of this patch were written by Darin.
57249
57250         Reviewed by Darin.
57251
57252         All tests pass.
57253
57254         * WebCore.base.exp: Updated for method renames.
57255         * css/CSSStyleSelector.cpp:
57256         (WebCore::CSSStyleSelector::checkOneSelector): Ditto.
57257         * editing/SelectionController.cpp:
57258         (WebCore::SelectionController::SelectionController): Initialize new
57259         member.
57260         (WebCore::SelectionController::focusedOrActiveStateChanged): New
57261         private method. Most of this code came from Frame::setIsActive.
57262         (WebCore::SelectionController::pageActivationChanged): Added.
57263         (WebCore::SelectionController::setFocused): Added. Replaces
57264         Frame::setWindowHasFocus.
57265         (WebCore::SelectionController::isFocusedAndActive): Added. Replaces
57266         Frame::isActive.
57267         * editing/SelectionController.h:
57268         * page/FocusController.cpp:
57269         (WebCore::FocusController::FocusController): Initialize new member.
57270         (WebCore::FocusController::setFocusedFrame): Changed to just call
57271         SelectionController::setFocused, since active state has doesn't change
57272         when the focused frame changes.
57273         (WebCore::FocusController::setActive): Added. Replaces
57274         Frame::setIsActive.
57275         * page/FocusController.h:
57276         (WebCore::FocusController::isActive): Added.
57277         * page/Frame.cpp:
57278         (WebCore::Frame::setDocument): Updated for method renames.
57279         (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
57280         (WebCore::Frame::updateSecureKeyboardEntryIfActive): Ditto.
57281         (WebCore::FramePrivate::FramePrivate): Removed initialization of
57282         removed members.
57283         * page/Frame.h:
57284         * page/FramePrivate.h:
57285         * page/mac/WebCoreFrameBridge.h: Removed -selectionColor.
57286         * page/mac/WebCoreFrameBridge.mm: Ditto.
57287         * rendering/RenderListBox.cpp:
57288         (WebCore::RenderListBox::paintItemForeground): Updated for method
57289         renames.
57290         (WebCore::RenderListBox::paintItemBackground): Ditto.
57291         * rendering/RenderObject.cpp:
57292         (WebCore::RenderObject::selectionBackgroundColor): Ditto.
57293         (WebCore::RenderObject::selectionForegroundColor): Ditto.
57294         * rendering/RenderTextControl.cpp:
57295         (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Ditto.
57296         * rendering/RenderTheme.cpp:
57297         (WebCore::RenderTheme::isFocused): Ditto.
57298
57299 2008-01-17  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57300
57301         Reviewed by Simon.
57302
57303         * Make the nice 'safari' feature work on our port. When viewing a single image, clicking
57304         on the image will zoom it.
57305         * It seems like our platform can only determine the size of the image once it is completely
57306         loaded. Call m_doc->imageChanged on the last chunk of data as well.
57307
57308         * loader/ImageDocument.cpp:
57309         (WebCore::ImageTokenizer::finish):
57310
57311 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57312
57313         Reviewed by Lars.
57314
57315         Set the library version of QtWebKit to the Qt version.
57316
57317         * WebCore.pro:
57318
57319 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57320
57321         Reviewed by Holger.
57322
57323         Re-enable gzip compression as accepted encoding, now that the bug is fixed in Qt 4.4's network module.
57324
57325         * platform/network/qt/QNetworkReplyHandler.cpp:
57326         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
57327
57328 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57329
57330         Another Windows build fix, setCookies accidentially had a const
57331         Document pointer.
57332
57333         * platform/network/win/CookieJarWin.cpp:
57334
57335 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57336
57337         MSVC Windows build fix. Forward declaring Document in CookieJar.h
57338         seems not enough for MSVC.
57339
57340         * platform/network/win/CookieJarWin.cpp:
57341
57342 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57343
57344         Reviewed by Maciej, Lars, Holger.
57345
57346         http://bugs.webkit.org/show_bug.cgi?id=16589
57347
57348         Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.
57349
57350         * WebCore.pro:
57351         * bindings/js/kjs_navigator.cpp:
57352         (KJS::Navigator::getValueProperty):
57353         * dom/Document.cpp:
57354         (WebCore::Document::cookie):
57355         * platform/CookieJar.h:
57356         * platform/gtk/CookieJarGtk.cpp:
57357         (WebCore::setCookies):
57358         (WebCore::cookies):
57359         * platform/mac/CookieJar.mm:
57360         * platform/network/win/CookieJarWin.cpp:
57361         * platform/qt/CookieJarQt.cpp:
57362         (WebCore::setCookies):
57363         (WebCore::cookies):
57364         (WebCore::cookiesEnabled):
57365         * platform/wx/TemporaryLinkStubs.cpp:
57366
57367 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57368
57369         Reviewed by Holger.
57370
57371         Windows build fix. (use localtime_r again instead of _s)
57372
57373         * loader/FTPDirectoryDocument.cpp:
57374         (WebCore::processFileDateString):
57375
57376 2008-01-17  Frans Englich  <fenglich@trolltech.com>
57377
57378         Reviewed by Simon Hausmann <hausmann@webkit.org>.
57379
57380         Fix linking on MinGW and at least one MSVC platform by having gmtimeQt in the correct namespace.
57381
57382         * loader/FTPDirectoryDocument.cpp:
57383
57384 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
57385
57386         Reviewed by Holger.
57387
57388         Don't link QtWebKit against libQtXml when building against Qt 4.4.
57389
57390         This is not necessary anymore since QXmlStream has been moved into QtCore.
57391
57392         * WebCore.pro:
57393
57394 2008-01-17  HÃ¥vard Wall  <hwall@trolltech.com>
57395
57396         Reviewed by Simon Hausmann <hausmann@webkit.org>.
57397
57398         Fix compilation on arm
57399
57400         * platform/graphics/qt/GraphicsContextQt.cpp:
57401         (WebCore::GraphicsContext::endTransparencyLayer):
57402
57403 2008-01-17  Simon Hausmann  <shausman@trolltech.com>
57404
57405         Reviewed by Holger.
57406
57407         Fix compilation against Qt 4.4 without files that are specific for the Qt 4.3 build.
57408
57409         * WebCore.pro:
57410         * platform/network/qt/ResourceHandleQt.cpp:
57411         * platform/qt/MIMETypeRegistryQt.cpp:
57412         * platform/qt/PlugInInfoStoreQt.cpp:
57413
57414 2008-01-17  Frans Englich  <fenglich@trolltech.com>
57415
57416         Reviewed by Simon Hausmann <hausmann@webkit.org>.
57417
57418         Fixes compilation with MinGW.
57419         Neither localtime_r nor localtime_s are available on MingW, so instead of
57420         calling back to the thread-unsafe localtime use QDateTime instead.
57421
57422         * loader/FTPDirectoryDocument.cpp:
57423         (WebCore::FTPDirectoryTokenizer::WebCore::processFilesizeString):
57424         (WebCore::FTPDirectoryTokenizer::WebCore::wasLastDayOfMonth):
57425         (WebCore::FTPDirectoryTokenizer::WebCore::WebCore::gmtimeQt):
57426         * loader/FTPDirectoryParser.cpp:
57427         (WebCore::parseOneFTPLine):
57428
57429 2008-01-17  Dan Bernstein  <mitz@apple.com>
57430
57431         Reviewed by Dave Hyatt.
57432
57433         - fix determinePitch for segmented fonts
57434
57435         Covered by fast/css/font-face-implicit-local-font.html
57436
57437         * platform/graphics/FontFallbackList.cpp:
57438         (WebCore::FontFallbackList::determinePitch): If the primary font is
57439         segmented, treat as fixed pitch only if it has only one segment
57440         and that segment is fixed-pitch.
57441
57442 2008-01-16  David Hyatt  <hyatt@apple.com>
57443
57444         Fix for http://bugs.webkit.org/show_bug.cgi?id=16611
57445
57446         Make sure vertical-align length values are offset from their parents rather than being absolute to the
57447         line.
57448
57449         Reviewed by olliej
57450
57451         Added fast/css/vertical-align-lengths.html
57452
57453         * rendering/RenderObject.cpp:
57454         (WebCore::RenderObject::getVerticalPosition):
57455
57456 2008-01-16  Dan Bernstein  <mitz@apple.com>
57457
57458         Reviewed by Dave Hyatt.
57459
57460         - fix for @font-face rules with unicode-range: always use a local font where not
57461           explicitly overlaid.
57462
57463         Test: fast/css/font-face-implicit-local-font.html
57464
57465         * css/CSSFontSelector.cpp:
57466         (WebCore::CSSFontSelector::addFontFaceRule): Changed to insert an implicit
57467         @font-face rule with the local font the matches the family and description before
57468         any explicit @font-face rules that overlay specific ranges of the same font.
57469         * css/CSSSegmentedFontFace.h:
57470         (WebCore::CSSSegmentedFontFace::numRanges): Addded.
57471
57472 2008-01-16  Antti Koivisto  <antti@apple.com>
57473
57474         Fix Tiger build.
57475
57476         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
57477         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
57478
57479 2008-01-16  Antti Koivisto  <antti@apple.com>
57480
57481         Reviewed by Adele.
57482         
57483         OS X fix for <rdar://problem/5605682>
57484         Disallow streaming protocols for media elements
57485         and <rdar://problem/5668711>
57486         Limit the container and codec types that the <video> tag supports
57487         
57488         - Disable unsupported QuickTime tracks types. 
57489         - Disallow streaming protocols (for now).
57490         - Set QTMovie QTMoviePreventExternalURLLinksAttribute and QTSecurityPolicyNoCrossSiteAttribute 
57491           to limit QuickTime's access to external resources.
57492         
57493         Windows patch coming up.
57494
57495         Tests: media/broken-video.html
57496                media/unsupported-rtsp.html
57497                media/unsupported-tracks.html
57498
57499         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
57500         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
57501         (WebCore::MediaPlayerPrivate::createQTMovie):
57502         (WebCore::MediaPlayerPrivate::updateStates):
57503         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
57504
57505 2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>
57506
57507         Reviewed by Alp Toker.
57508
57509         http://bugs.webkit.org/show_bug.cgi?id=16897
57510         Add shared plugins directory to INCLUDE path
57511
57512         Add the plugins directory to INCLUDEPATH
57513
57514         * GNUmakefile.am:
57515         * WebCore.pro:
57516
57517 2008-01-16  Geoffrey Garen  <ggaren@apple.com>
57518
57519         Reviewed by Sam Weinig.
57520         
57521         Added a debug counter for SQL transactions. This helped me debug an SQL
57522         leak.
57523
57524         * bindings/js/JSCustomSQLTransactionCallback.cpp:
57525         (WebCore::JSCustomSQLTransactionCallbackCounter::~JSCustomSQLTransactionCallbackCounter):
57526         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
57527         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
57528         * bindings/js/JSCustomSQLTransactionCallback.h:
57529
57530         * bindings/js/kjs_window.cpp: Removed a silly comment.
57531
57532 2008-01-16  David Hyatt  <hyatt@apple.com>
57533
57534         Fix for http://bugs.webkit.org/show_bug.cgi?id=14846, cell padding can't be changed dynamically.
57535
57536         Reviewed by Eric Seidel
57537
57538         Added fast/table/dynamic-cellpadding.html
57539
57540         * html/HTMLTableElement.cpp:
57541         (WebCore::HTMLTableElement::parseMappedAttribute):
57542         * rendering/RenderTable.cpp:
57543         (WebCore::RenderTable::setCellPadding):
57544         * rendering/RenderTable.h:
57545
57546 2008-01-16  David Hyatt  <hyatt@apple.com>
57547
57548         Fix for <rdar://problem/5681647> Item pages on http://www.stendmarsofa.com/ hang Safari
57549
57550         This regression was caused by an attempt to implement a WinIE quirk in RenderBlock::calcInlinePrefWidths.
57551         The original patch introduced pathological O(n^2) behavior into this function even when the quirk didn't need
57552         to apply.  In addition the quirk was only partially implemented (the full quirk did not care what was adjacent
57553         to images and also needed bidi.cpp patched, since the quirk applies both when computing pref widths and when
57554         laying out).
57555
57556         This new patch rewrites the quirk to be complete.  The original test case attached to the bug that tested a variety
57557         of image/text combinations now fully matches WinIE.
57558
57559         Reviewed by Beth
57560
57561         Added fast/table/unbreakable-images-quirk.html
57562
57563         * rendering/RenderBlock.cpp:
57564         (WebCore::RenderBlock::calcInlinePrefWidths):
57565         * rendering/bidi.cpp:
57566         (WebCore::RenderBlock::findNextLineBreak):
57567
57568 2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>
57569
57570         Reviewed by Jon Honeycutt
57571
57572         Move isPluginBlacklisted to PluginPackageWin.cpp, to avoid
57573         a circular dependency on PluginDatabaseWin
57574         Remove the getFileVersion method, and just check the versions directly
57575         in isPluginBlacklisted, as it was the only caller
57576
57577         http://bugs.webkit.org/show_bug.cgi?id=16884
57578
57579         * plugins/win/PluginDatabaseWin.cpp:
57580         * plugins/win/PluginDatabaseWin.h:
57581         * plugins/win/PluginPackageWin.cpp:
57582         * plugins/win/PluginPackageWin.h:
57583
57584 2008-01-16  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
57585
57586         Reviewed by Lars.
57587
57588         * Set the cursor on the containingWindow() instead of the
57589         nativeWidget()
57590         * This should be safe even with plugins as the cursor is set
57591         on the mouse events.
57592
57593         * platform/qt/WidgetQt.cpp:
57594         (WebCore::Widget::setCursor):
57595
57596 2008-01-16  Brad Hughes  <bhughes@trolltech.com>
57597
57598         Reviewed by Lars.
57599
57600         Improve the sqlite3 dependency when building WebKit inside Qt.
57601
57602         Build sqlite3 into QtWebKit if a system sqlite3 development package
57603         can't be found.
57604
57605         * WebCore.pro:
57606
57607 2008-01-16  Lars Knoll  <lars@trolltech.com>
57608
57609         Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
57610
57611         Implement GraphicsContext::clipOut and fix transparency layers.
57612
57613         Transparency layers where broken in two ways: It always used the
57614         complete device rect as the size of the layer pixmap and the pixmaps
57615         where not correctly initialized to transparent.
57616
57617         This fixes the worst drawing errors in the Inspector and makes drawing it
57618         10 times faster.
57619
57620         * platform/graphics/qt/GraphicsContextQt.cpp:
57621         (WebCore::toQtLineJoin):
57622         (WebCore::TransparencyLayer::TransparencyLayer):
57623         (WebCore::GraphicsContextPlatformPrivate::p):
57624         (WebCore::GraphicsContext::platformContext):
57625         (WebCore::GraphicsContext::savePlatformState):
57626         (WebCore::GraphicsContext::restorePlatformState):
57627         (WebCore::GraphicsContext::drawRect):
57628         (WebCore::GraphicsContext::drawLine):
57629         (WebCore::GraphicsContext::drawEllipse):
57630         (WebCore::GraphicsContext::strokeArc):
57631         (WebCore::GraphicsContext::drawConvexPolygon):
57632         (WebCore::GraphicsContext::fillRect):
57633         (WebCore::GraphicsContext::fillRoundedRect):
57634         (WebCore::GraphicsContext::clip):
57635         (WebCore::GraphicsContext::drawFocusRing):
57636         (WebCore::GraphicsContext::beginTransparencyLayer):
57637         (WebCore::GraphicsContext::endTransparencyLayer):
57638         (WebCore::GraphicsContext::clearRect):
57639         (WebCore::GraphicsContext::strokeRect):
57640         (WebCore::GraphicsContext::setLineCap):
57641         (WebCore::GraphicsContext::setLineJoin):
57642         (WebCore::GraphicsContext::setMiterLimit):
57643         (WebCore::GraphicsContext::setAlpha):
57644         (WebCore::GraphicsContext::setCompositeOperation):
57645         (WebCore::GraphicsContext::clipOut):
57646         (WebCore::GraphicsContext::translate):
57647         (WebCore::GraphicsContext::origin):
57648         (WebCore::GraphicsContext::rotate):
57649         (WebCore::GraphicsContext::scale):
57650         (WebCore::GraphicsContext::clipOutEllipseInRect):
57651         (WebCore::GraphicsContext::addInnerRoundedRectClip):
57652         (WebCore::GraphicsContext::setPlatformStrokeStyle):
57653         (WebCore::GraphicsContext::setPlatformStrokeThickness):
57654         (WebCore::GraphicsContext::setPlatformFillColor):
57655         (WebCore::GraphicsContext::setUseAntialiasing):
57656
57657 2008-01-16  Lars Knoll  <lars@trolltech.com>
57658
57659         Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
57660
57661         Trivially implement the themed search field by mapping it to a text field
57662
57663         Also add a bunch of notImplemented warnings for other places where we don't
57664         have an implementatin in RenderTheme.
57665
57666         * platform/qt/RenderThemeQt.cpp:
57667         (WebCore::RenderThemeQt::paintTextField):
57668         (WebCore::RenderThemeQt::paintMenuListButton):
57669         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
57670         (WebCore::RenderThemeQt::paintSliderTrack):
57671         (WebCore::RenderThemeQt::paintSliderThumb):
57672         (WebCore::RenderThemeQt::paintSearchField):
57673         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
57674         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
57675         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
57676         (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
57677         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
57678         (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
57679         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
57680
57681 2008-01-16  Holger Freyther  <holger.freyther@trolltech.com>
57682
57683         Reviewed by Simon.
57684
57685         * Follow the EventHandlerWin.cpp and always return true in the handlers.
57686         * Match the windows implementation more closely as well.
57687         * This is fixing "selection" bugs with the Web Inspector
57688
57689         * page/qt/EventHandlerQt.cpp:
57690         (WebCore::EventHandler::focusDocumentView):
57691         (WebCore::EventHandler::passMousePressEventToSubframe):
57692         (WebCore::EventHandler::passMouseMoveEventToSubframe):
57693         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
57694         (WebCore::EventHandler::passMousePressEventToScrollbar):
57695
57696 2008-01-16  Simon Hausmann  <hausmann@webkit.org>
57697
57698         Reviewed by Lars Knoll <lars@trolltech.com>.
57699
57700         Fix crashes in the new networking code.
57701
57702         When the ResourceLoader cancels the handle we have to make sure not to access
57703         the resource handle afterwards again.
57704
57705         * platform/network/qt/QNetworkReplyHandler.cpp:
57706         (WebCore::QNetworkReplyHandler::finish):
57707         (WebCore::QNetworkReplyHandler::forwardData):
57708
57709 2008-01-16  Lars Knoll  <lars@trolltech.com>
57710
57711         Reviewed by Simon.
57712
57713         add conversion methods from and to QUrl to KURL.
57714
57715         Use them in the places I found at the moment. Fixes a bug
57716         where form data was encoded twice.
57717         Also fix QWebSettings to take a QUrl for the user style sheet
57718         location.
57719
57720         * WebCore.pro:
57721         * platform/KURL.h:
57722         * platform/network/qt/QNetworkReplyHandler.cpp:
57723         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
57724         * platform/network/qt/ResourceRequestQt.cpp:
57725         (WebCore::ResourceRequest::toNetworkRequest):
57726         * platform/qt/KURLQt.cpp: Added.
57727         (WebCore::KURL::KURL):
57728         (WebCore::KURL::operator QUrl):
57729
57730 2008-01-15  Darin Adler  <darin@apple.com>
57731
57732         Rubber-stamped by Maciej Stachowiak and Oliver Hunt.
57733
57734         - fix <rdar://problem/5689748> REGRESSION: Cannot redirect to protocols handled by external applications
57735
57736         Put navigation policy delegate calls back for redirects.
57737         Just rolled out the change where I took them out.
57738
57739         * loader/MainResourceLoader.cpp:
57740         (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
57741         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
57742         (WebCore::MainResourceLoader::willSendRequest):
57743         * loader/MainResourceLoader.h:
57744
57745 2008-01-15  Adele Peterson  <adele@apple.com>
57746
57747         Reviewed by Sam.
57748
57749         Remove unused variable for old media control background drawing code.
57750
57751         * rendering/RenderThemeMac.h:
57752         * rendering/RenderThemeMac.mm:
57753         (WebCore::RenderThemeMac::RenderThemeMac):
57754         (WebCore::RenderThemeMac::~RenderThemeMac):
57755
57756 2008-01-15  Sam Weinig  <sam@webkit.org>
57757
57758         Reviewed by Geoffrey Garen.
57759
57760         Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size
57761
57762         - Update JS Function implementations to use a static function based method. This decreases
57763           the binary size of an Intel only build by 1013.5K.
57764
57765         * WebCore.xcodeproj/project.pbxproj:
57766         * bindings/js/JSDOMWindowCustom.cpp:
57767         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
57768         * bindings/js/JSEventTargetBase.cpp:
57769         (WebCore::jsEventTargetAddEventListener):
57770         (WebCore::jsEventTargetRemoveEventListener):
57771         (WebCore::jsEventTargetDispatchEvent):
57772         (WebCore::retrieveEventTargetAndCorrespondingNode):
57773         * bindings/js/JSEventTargetBase.h:
57774         * bindings/js/JSHTMLInputElementBase.cpp:
57775         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
57776         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
57777         * bindings/js/JSHTMLInputElementBase.h:
57778         * bindings/js/JSLocation.cpp:
57779         (WebCore::JSLocation::getOwnPropertySlot):
57780         (WebCore::jsLocationProtoFuncReplace):
57781         (WebCore::jsLocationProtoFuncReload):
57782         (WebCore::jsLocationProtoFuncAssign):
57783         (WebCore::jsLocationProtoFuncToString):
57784         * bindings/js/JSLocation.h:
57785         * bindings/js/JSXMLHttpRequest.cpp:
57786         (KJS::jsXMLHttpRequestPrototypeFunctionAbort):
57787         (KJS::jsXMLHttpRequestPrototypeFunctionGetAllResponseHeaders):
57788         (KJS::jsXMLHttpRequestPrototypeFunctionGetResponseHeader):
57789         (KJS::jsXMLHttpRequestPrototypeFunctionOpen):
57790         (KJS::jsXMLHttpRequestPrototypeFunctionSend):
57791         (KJS::jsXMLHttpRequestPrototypeFunctionSetRequestHeader):
57792         (KJS::jsXMLHttpRequestPrototypeFunctionOverrideMIMEType):
57793         (KJS::jsXMLHttpRequestPrototypeFunctionAddEventListener):
57794         (KJS::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
57795         (KJS::jsXMLHttpRequestPrototypeFunctionDispatchEvent):
57796         * bindings/js/JSXMLHttpRequest.h:
57797         * bindings/js/JSXSLTProcessor.cpp:
57798         (KJS::jsXSLTProcessorPrototypeFunctionImportStylesheet):
57799         (KJS::jsXSLTProcessorPrototypeFunctionTransformToFragment):
57800         (KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument):
57801         (KJS::jsXSLTProcessorPrototypeFunctionSetParameter):
57802         (KJS::jsXSLTProcessorPrototypeFunctionGetParameter):
57803         (KJS::jsXSLTProcessorPrototypeFunctionRemoveParameter):
57804         (KJS::jsXSLTProcessorPrototypeFunctionClearParameters):
57805         (KJS::jsXSLTProcessorPrototypeFunctionReset):
57806         * bindings/js/JSXSLTProcessor.h:
57807         * bindings/js/kjs_events.cpp:
57808         (WebCore::jsClipboardPrototypeFunctionClearData):
57809         (WebCore::jsClipboardPrototypeFunctionGetData):
57810         (WebCore::jsClipboardPrototypeFunctionSetData):
57811         (WebCore::jsClipboardPrototypeFunctionSetDragImage):
57812         * bindings/js/kjs_events.h:
57813         * bindings/js/kjs_navigator.cpp:
57814         (KJS::pluginsFunctionRefresh):
57815         (KJS::navigatorProtoFuncJavaEnabled):
57816         * bindings/js/kjs_navigator.h:
57817         * bindings/js/kjs_window.cpp:
57818         (KJS::Window::getOwnPropertySlot):
57819         (KJS::windowProtoFuncAToB):
57820         (KJS::windowProtoFuncBToA):
57821         (KJS::windowProtoFuncOpen):
57822         (KJS::windowProtoFuncSetTimeout):
57823         (KJS::windowProtoFuncClearTimeout):
57824         (KJS::windowProtoFuncSetInterval):
57825         (KJS::windowProtoFuncAddEventListener):
57826         (KJS::windowProtoFuncRemoveEventListener):
57827         (KJS::windowProtoFuncShowModalDialog):
57828         (KJS::windowProtoFuncNotImplemented):
57829         * bindings/js/kjs_window.h:
57830         * bindings/scripts/CodeGenerator.pm:
57831         * bindings/scripts/CodeGeneratorJS.pm:
57832
57833 2008-01-15  Adele Peterson  <adele@apple.com>
57834
57835         Reviewed by Dan.
57836
57837         Fix for <rdar://problem/5682492> With the <video> element, the audio is heard when forwarding or rewinding a movie while it's playing
57838
57839         * rendering/MediaControlElements.cpp: (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
57840           Instead of pausing the media when you stop seeking on mouse up, pause the video when you first start seeking on mouse down. 
57841
57842 2008-01-15  Alp Toker  <alp@atoker.com>
57843
57844         Rubber-stamped by Anders.
57845
57846         Make the HTTP backend configurable in the GTK+ port. curl is currently
57847         the only option.
57848
57849         * GNUmakefile.am:
57850
57851 2008-01-15  Adele Peterson  <adele@apple.com>
57852
57853         Build fix.
57854
57855         * rendering/RenderThemeSafari.cpp: Removing MediaBackgroundAppearance.
57856
57857 2008-01-14  Samuel Weinig  <sam@webkit.org>
57858
57859         Reviewed by Darin.
57860
57861         Fix for <rdar://problem/5671040>
57862         REGRESSION: 6% HTML iBench regression from r28722 (getElementsByClassName)
57863
57864         On my most consistent tests, this brings the HTML iBench from 1.46 -> 1.41,
57865         which does not completely make up reported regression, but I was not able to
57866         reproduce those findings either.
57867
57868         * css/CSSStyleSelector.cpp:
57869         (WebCore::CSSStyleSelector::matchRules):
57870         (WebCore::CSSStyleSelector::checkOneSelector):
57871         * dom/ClassNames.cpp:
57872         (WebCore::ClassNames::parseClassAttribute):
57873         * dom/ClassNames.h:
57874         (WebCore::ClassNames::contains):
57875         (WebCore::ClassNames::operator[]):
57876
57877 2008-01-15  Adele Peterson  <adele@apple.com>
57878
57879         Build fix.  This time for real.
57880
57881         * rendering/RenderThemeSafari.cpp:
57882
57883 2008-01-15  Adele Peterson  <adele@apple.com>
57884
57885         Build fix.
57886
57887         * rendering/RenderThemeSafari.cpp:
57888
57889 2008-01-15  Dan Bernstein  <mitz@apple.com>
57890
57891         Reviewed by Darin Adler.
57892
57893         - fix <rdar://problem/5666926> svg/custom/use-css-no-effect-on-shadow-tree.svg is failing
57894
57895         * svg/SVGPreserveAspectRatio.cpp:
57896         (WebCore::SVGPreserveAspectRatio::getCTM): Changed the arguments' type
57897         from float to double in order to make the values passed to scale() and
57898         translate() on Mac OS X and on Windows the same.
57899         * svg/SVGPreserveAspectRatio.h:
57900
57901 2008-01-15  Alexey Proskuryakov  <ap@webkit.org>
57902
57903         Reviewed by Darin.
57904
57905         <rdar://problem/5342813> REGRESSION: Safari encodes mailto URLs incorrectly
57906
57907         Test: fast/encoding/mailto-always-utf-8.html
57908
57909         * platform/KURL.cpp: (WebCore::encodeRelativeString): Always use UTF-8 for mailto URLs.
57910
57911 2008-01-15  Adele Peterson  <adele@apple.com>
57912
57913         Reviewed by Adam and Antti.
57914
57915         WebCore part of fix for <rdar://problem/5619062> Add load progress indicator to video controls
57916
57917         * WebCore.base.exp: Removed symbol for wkGetMediaControlBackgroundImageData.  Added symbol for wkDrawMediaSliderTrack.
57918         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Removed case for MediaBackgroundAppearance.
57919         * css/html4.css: Removed -webkit-appearance: media-background rule for the media panel element.  Removed unnecessary margin for slider.
57920         * rendering/RenderStyle.h: (WebCore::): Removed MediaBackgroundAppearance.
57921
57922         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
57923           Call updateMediaPlayer more frequently so the load progress control gets updated appropriately.
57924         * platform/mac/WebCoreSystemInterface.h: Removed wkGetMediaControlBackgroundImageData.  Added wkDrawMediaSliderTrack.
57925         * platform/mac/WebCoreSystemInterface.mm: ditto.
57926
57927         * rendering/RenderTheme.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
57928         * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): Call paintMediaSliderTrack for elements with MediaSliderAppearance.
57929         * rendering/RenderThemeMac.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
57930         * rendering/RenderThemeMac.mm:
57931         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added different sizes for the media slider thumb.
57932         (WebCore::RenderThemeMac::paintMediaSliderTrack): Added.  Calls wkDrawMediaSliderTrack with the percentage the media has loaded.
57933         * rendering/RenderThemeSafari.cpp: ditto.
57934         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
57935         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
57936         * rendering/RenderThemeSafari.h:
57937
57938 2008-01-15  Alexey Proskuryakov  <ap@webkit.org>
57939
57940         Reviewed by Mark Rowe.
57941
57942         Some logging channels weren't initialized from user defaults.
57943
57944         * platform/mac/LoggingMac.mm: (WebCore::InitializeLoggingChannelsIfNecessary):
57945         Initialize LogPlatformLeaks, LogStorageAPI, LogMedia, LogPlugin.
57946
57947 2008-01-14  Steve Falkenburg  <sfalken@apple.com>
57948
57949         Use shared vsprops for most vcproj properties.
57950         
57951         Reviewed by Darin.
57952
57953         * WebCore.vcproj/QTMovieWin.vcproj:
57954         * WebCore.vcproj/WebCore.vcproj:
57955         * platform/graphics/win/QTMovieWin.cpp:
57956         (QTMovieWin::initializeQuickTime): Fix compiler warning.
57957
57958 2008-01-14  Eric Seidel  <eric@webkit.org>
57959
57960         Reviewed by mjs.
57961
57962         Remove a couple more uses of DeprecatedString
57963
57964         No functional changes, thus no test case.
57965
57966         * dom/Document.cpp:
57967         (WebCore::Document::write):
57968         (WebCore::Document::writeln):
57969         (WebCore::Document::recalcStyleSelector):
57970         * dom/Document.h:
57971
57972 2008-01-14  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
57973
57974         Reviewed by Alp Toker.
57975
57976         Build fix: missing symbols when compiling WebKit/Gtk+ with --enable-svg-filters
57977         http://bugs.webkit.org/show_bug.cgi?id=16874
57978
57979         * GNUmakefile.am:
57980         * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Added.
57981         (WebCore::SVGResourceFilter::createPlatformData):
57982         (WebCore::SVGResourceFilter::prepareFilter):
57983         (WebCore::SVGResourceFilter::applyFilter):
57984
57985 2008-01-14  Finnur Thorarinsson  <finnur.webkit@gmail.com>
57986
57987         Reviewed by hyatt & eseidel.
57988
57989         - fix http://bugs.webkit.org/show_bug.cgi?id=16844
57990         RenderText::addLineBoxRects erroneously includes last char for boundingBox
57991
57992         This patch fixes an issue with addLineBoxRects not correctly calculating the 
57993         rects due to an off-by-one error in using box->end(). We were assuming that 
57994         end() gives the index past the last character, when in fact it gives the 
57995         index _of_ the last character. 
57996
57997         Eric Seidel and I could not find a way to test this via DRT. This method is 
57998         only used by WebKit or Safari for displaying selection rects AFAICT.
57999
58000         * rendering/RenderText.cpp:
58001         (WebCore::RenderText::addLineBoxRects):
58002
58003 2008-01-14  Darin Adler  <darin@apple.com>
58004
58005         Reviewed by Geoff.
58006
58007         - fix crash seen in layout tests
58008
58009         * html/HTMLFrameSetElement.cpp:
58010         (WebCore::HTMLFrameSetElement::attach):
58011         Remove incorrect cast to HTMLElement* for parentNode(). The parent is either an
58012         HTMLElement or a Document, not necessarily an HTMLElement.
58013
58014 2008-01-14  Darin Adler  <darin@apple.com>
58015
58016         Reviewed by Sam.
58017
58018         - fix mistakes Sam noticed in my re-speed-up patch
58019
58020         * dom/Element.cpp:
58021         (WebCore::Element::virtualHasTagName): Moved out of header file. No reason to make
58022         this inline.
58023         * dom/Element.h: Moved virtualHasTagName out of header file.
58024
58025         * dom/Node.cpp:
58026         (WebCore::Node::virtualHasTagName): Moved out of header file. No reason to make
58027         this inline.
58028         * dom/Node.h: Removed incorrect "virtual" on hasTagName and moved virtualHasTagName
58029         out of header file.
58030
58031         * platform/text/StringBuffer.h: Added. Has just the new StringBuffer class.
58032
58033         * platform/text/StringImpl.h: Removed StringBuffer class.
58034
58035         * loader/DocumentLoader.cpp: Added StringBuffer.h include.
58036         * platform/text/String.cpp: Ditto.
58037         * platform/text/StringImpl.cpp: Ditto.
58038         * platform/text/TextCodecLatin1.cpp: Ditto.
58039         * platform/text/TextCodecUTF16.cpp: Ditto.
58040         * platform/text/TextCodecUserDefined.cpp: Ditto.
58041
58042         * WebCore.vcproj/WebCore.vcproj: Added StringBuffer.h.
58043         * WebCore.xcodeproj/project.pbxproj: Ditto.
58044
58045 2008-01-14  Dave Hyatt  <hyatt@apple.com>
58046
58047         Clean up all the misplaced graphics files after the recent file moves.  Clean up the project to
58048         accurately reflect the location of all the graphics files.
58049         
58050         Reviewed by Adam
58051
58052         * WebCore.vcproj/WebCore.vcproj:
58053         * platform/graphics/win/GraphicsContextWin.cpp: Copied from platform/win/GraphicsContextWin.cpp.
58054         * platform/graphics/win/UniscribeController.cpp: Copied from platform/win/UniscribeController.cpp.
58055         * platform/graphics/win/UniscribeController.h: Copied from platform/win/UniscribeController.h.
58056         * platform/win/GraphicsContextWin.cpp: Removed.
58057         * platform/win/UniscribeController.cpp: Removed.
58058         * platform/win/UniscribeController.h: Removed.
58059
58060 2008-01-14  Geoffrey Garen  <ggaren@apple.com>
58061
58062         Reviewed by Sam Weinig.
58063         
58064         Some cleanup to my last patch.
58065
58066         Removed one unused setter declaration and one unused setter definition.
58067         
58068         Renamed DoNotCheckDomainSecurityOnRead to DoNotCheckDomainSecurityOnGet
58069         because "get" is all over the IDL files, and "read" is not.
58070
58071         * bindings/scripts/CodeGeneratorJS.pm:
58072         * page/DOMWindow.h:
58073         (WebCore::DOMWindow::defaultstatus):
58074         * page/DOMWindow.idl:
58075
58076 2008-01-14  Dan Bernstein  <mitz@apple.com>
58077
58078         Rubber-stamped by Alice Liu.
58079
58080         - remove reference to nonexistent file
58081
58082         * WebCore.vcproj/WebCore.vcproj: Removed reference to SVGFont.h.
58083
58084 2008-01-14  Darin Adler  <darin@apple.com>
58085
58086         Reviewed by Adam.
58087
58088         - re-speed-up the page load test (my StringImpl change slowed it down)
58089           <rdar://problem/5677241> 1.5% PLT regression from r29098
58090
58091         To reverse the slowdown I caused by changing StringImpl, I tightened it up,
58092         and also did a little optimization in the HTML tokenizer and in other clients
58093         of Vector.
58094
58095         * WebCore.base.exp: Removed export of a now-inline function.
58096
58097         * css/CSSParser.cpp:
58098         (WebCore::CSSParser::parseTransitionProperty): Removed use of DeprecatedString
58099         to get property ID. This could be sped up even more by writing a fast path
58100         to use a local Vector<char> rather than allocating a string.
58101         (WebCore::convertASCIIToFloat): Added. Allows numeric conversion without
58102         allocating a string object to hold the number.
58103         (WebCore::CSSParser::lex): Changed to call convertASCIIToFloat instead of
58104         DeprecatedString::toFloat.
58105
58106         * dom/Element.h:
58107         (WebCore::Element::hasTagName): Made this non-virtual and inline if you have
58108         an Element*. It's still virtual if you have a Node*.
58109         (WebCore::Element::virtualHasTagName): Virtual version that makes the Node*
58110         case work.
58111
58112         * dom/Node.h:
58113         (WebCore::Node::hasTagName): Made this non-virtual and inline so that Element
58114         can override it with an inline. This is the same technique we use for
58115         firstChild and lastChild.
58116         (WebCore::Node::virtualHasTagName): This is the private virtual that Element
58117         overrides.
58118
58119         * dom/Text.cpp:
58120         (WebCore::Text::splitText): Clean up by using a RefPtr here instead of a
58121         PassRefPtr.
58122
58123         * html/HTMLTokenizer.cpp:
58124         (WebCore::HTMLTokenizer::parseSpecial): Use the new advancePastNonNewline(),
58125         which is more efficient in cases where we know the character is not a newline
58126         and hence we don't have to update the line number.
58127         (WebCore::HTMLTokenizer::parseComment): Ditto.
58128         (WebCore::HTMLTokenizer::parseServer): Ditto.
58129         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
58130         (WebCore::HTMLTokenizer::parseText): Ditto.
58131         (WebCore::HTMLTokenizer::parseEntity): Ditto.
58132         (WebCore::HTMLTokenizer::parseTag): Ditto. Also streamline the QuotedValue case
58133         so there's one less branch taken for non-punctuation characters since this
58134         code path is *so* hot.
58135         (WebCore::HTMLTokenizer::write): More of the same.
58136
58137         * loader/Cache.cpp:
58138         (WebCore::Cache::lruListFor): Use Vector::grow instead of resize.
58139
58140         * loader/DocumentLoader.cpp:
58141         (WebCore::canonicalizedTitle): Use StringBuffer instead of Vector<UChar>.
58142
58143         * loader/TextResourceDecoder.cpp:
58144         (WebCore::TextResourceDecoder::checkForCSSCharset): Use Vector::grow instead of resize.
58145         (WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
58146         (WebCore::TextResourceDecoder::decode): Use Vector::grow and shrink instead of resize.
58147         (WebCore::TextResourceDecoder::flush): Use Vector::shrink instead of resize.
58148
58149         * platform/KURL.cpp:
58150         (WebCore::KURL::decode_string): Use Vector::grow instead of resize.
58151
58152         * platform/SharedBuffer.cpp:
58153         (WebCore::SharedBuffer::clear): Use Vector::shrink instead of resize.
58154
58155         * platform/graphics/BitmapImage.cpp:
58156         (WebCore::BitmapImage::cacheFrame): Use Vector::grow instead of resize.
58157
58158         * platform/network/FormData.cpp:
58159         (WebCore::FormData::appendData): Use Vector::grow instead of resize.
58160         (WebCore::FormData::flatten): Ditto.
58161
58162         * platform/text/AtomicString.cpp:
58163         (WebCore::CStringTranslator::translate): Use a new StringImpl constructor made just
58164         for use by AtomicString. Avoids setting fields twice, and also preserves reference
58165         count behavior (which I changed for the other constructors, since they're entirely
58166         private and used only inside the class).
58167         (WebCore::UCharBufferTranslator::translate): Ditto.
58168
58169         * platform/text/Base64.cpp:
58170         (WebCore::base64Encode): Use Vector::grow instead of resize.
58171         (WebCore::base64Decode): Use Vector::grow and shrink instead of resize.
58172
58173         * platform/text/PlatformString.h:
58174         (WebCore::String::adopt): Added an overload for the new StringBuffer class. Also
58175         made both versions inline.
58176
58177         * platform/text/SegmentedString.h:
58178         (WebCore::SegmentedString::advancePastNewline): Added. One less branch for case
58179         where the character is known to be a newline.
58180         (WebCore::SegmentedString::advancePastNonNewline): Added. Less code for case where
58181         the character is known not to be a newline.
58182
58183         * platform/text/String.cpp:
58184         (WebCore::String::append): Use StringBuffer instead of Vector<UChar>.
58185         (WebCore::String::insert): Ditto.
58186         (WebCore::String::truncate): Ditto.
58187         (WebCore::String::remove): Ditto.
58188         (WebCore::String::format): Use Vector::grow instead of resize.
58189
58190         * platform/text/StringImpl.cpp:
58191         (WebCore::StringImpl::StringImpl): Changed constructors to start with a refCount
58192         of 1 instead of 0, and made them all inline. Eliminates the WithOneRef constructor
58193         since they all behave this way now. The only exceptions are the constructors for
58194         AtomicString, which retain the old behavior.
58195         (WebCore::StringImpl::empty): Simplified, since we no longer need to use the
58196         special WithOneRef constructor.
58197         (WebCore::StringImpl::toCoordsArray): Use StringBuffer instead of Vector<UChar>.
58198         (WebCore::StringImpl::lower): Ditto.
58199         (WebCore::StringImpl::upper): Ditto.
58200         (WebCore::StringImpl::secure): Ditto.
58201         (WebCore::StringImpl::foldCase): Ditto.
58202         (WebCore::StringImpl::simplifyWhiteSpace): Ditto. Also change to use Vector::shrink
58203         instead of resize (since half of the function uses Vector<UChar>).
58204         (WebCore::StringImpl::capitalize): Use StringBuffer instead of Vector<UChar>.
58205         (WebCore::StringImpl::replace): Ditto.
58206         (WebCore::StringImpl::ascii): Streamlined a bit.
58207         (WebCore::StringImpl::createStrippingNullCharacters): Use StringBuffer insetad of
58208         Vector<UChar>. Took out checks for null characters and 0 length that aren't needed.
58209         Coded the check for null characters in a slightly more efficient way. Since this
58210         is so hot, didn't call adopt at all, putting the code right in here, including
58211         the call to the StringImpl constructor and adoptRef (for the fast case).
58212         (WebCore::StringImpl::adopt): Added a version for the new StringBuffer class.
58213         Removed the attempt to resize the buffer at the time we adopt based on measuring
58214         actual use and realizing that it's just a character here or there and not worth
58215         a call to fastRealloc. Changed to use adoptRef since the constructor now starts
58216         with a refCount of 1.
58217         (WebCore::StringImpl::create): Changed to use adoptRef since the constructor now
58218         starts with a refCount of 1.
58219         (WebCore::StringImpl::createWithTerminatingNullCharacter): Ditto.
58220         (WebCore::StringImpl::copy): Ditto. Also made non-inline since the constructor
58221         itself is now inline.
58222
58223         * platform/text/StringImpl.h: Added a StringBuffer class that's useful for
58224         putting characters into a buffer before creating an immutable string. Not good
58225         at resizing the way Vector<UChar> is, so only useful for things that rarely need
58226         to be resized. Added a new AdoptBuffer constructor and empty constructor, but
58227         made all constructors private so they can be inlined and only used inside the
58228         StringImpl class. Added two new constructors for AtomicString. Made copy()
58229         no longer inline. Changed the type of the [] operator to unsigned instead of
58230         int and added an assertion. Made the hash functions inline.
58231
58232         * platform/text/TextCodecICU.cpp:
58233         (WebCore::TextCodecICU::encode): Use Vector::grow instead of resize.
58234
58235         * platform/text/TextCodecLatin1.cpp:
58236         (WebCore::TextCodecLatin1::decode): Use StringBuffer instead of Vector<UChar>.
58237         (WebCore::encodeComplexWindowsLatin1): Use Vector::grow instead of resize.
58238
58239         * platform/text/TextCodecUTF16.cpp:
58240         (WebCore::TextCodecUTF16::decode): Use StringBuffer instead of Vector<UChar>.
58241
58242         * platform/text/TextCodecUserDefined.cpp:
58243         (WebCore::TextCodecUserDefined::decode): Use StringBuffer instead of Vector<UChar>.
58244         (WebCore::encodeComplexUserDefined): Use Vector::grow instead of resize.
58245
58246         * platform/text/TextEncoding.cpp:
58247         (WebCore::TextEncoding::encode): Use Vector::grow instead of resize.
58248
58249         * platform/text/TextStream.cpp:
58250         (WebCore::TextStream::operator<<): Use Vector::grow instead of resize.
58251
58252         * platform/text/mac/TextCodecMac.cpp:
58253         (WebCore::TextCodecMac::encode): Use Vector::grow instead of resize.
58254
58255         * rendering/AutoTableLayout.cpp:
58256         (WebCore::AutoTableLayout::insertSpanCell): Use Vector::grow instead of resize.
58257
58258         * rendering/RenderFrameSet.h:
58259         (WebCore::FrameEdgeInfo::FrameEdgeInfo): Allocate vectors with the correct initial
58260         size instead of calling resize on them after allocating empty.
58261
58262         * rendering/RenderListMarker.cpp:
58263         (WebCore::RenderListMarker::paint): Use Vector::grow instead of resize.
58264
58265         * rendering/RenderStyle.cpp: Removed CursorList::operator==.
58266         * rendering/RenderStyle.h:
58267         (WebCore::CursorList::operator==): Implemented using the Vector ==.
58268         (WebCore::CursorList::operator!=): Ditto.
58269
58270         * rendering/RenderTable.cpp:
58271         (WebCore::RenderTable::splitColumn): Use Vector::grow instead of resize.
58272         (WebCore::RenderTable::appendColumn): Ditto.
58273
58274         * rendering/RenderTableSection.cpp:
58275         (WebCore::RenderTableSection::ensureRows): Use Vector::grow instead of resize.
58276
58277         * rendering/bidi.cpp:
58278         (WebCore::addMidpoint): Use Vector::grow instead of resize.
58279
58280         * xml/XPathNodeSet.h:
58281         (WebCore::XPath::NodeSet::clear): Use Vector::shrink instead of resize.
58282
58283 2008-01-13  Steve Falkenburg  <sfalken@apple.com>
58284
58285         Share common files across projects.
58286         
58287         Unify vsprops files
58288         Debug:          common.vsprops, debug.vsprops
58289         Debug_Internal: common.vsprops, debug.vsprops, debug_internal.vsprops
58290         Release:        common.vsprops, release.vsprops
58291         
58292         Shared properties can go into common.vsprops, shared debug settings can go into debug.vsprops.
58293         debug_internal.vsprops will be mostly empty except for file path prefix modifiers.
58294
58295         Pull auto-version.sh, VERSION, and PRODUCTVERSION from tools.
58296
58297         Reviewed by Adam Roben.
58298
58299         * WebCore.vcproj/PRODUCTVERSION: Removed.
58300         * WebCore.vcproj/QTMovieWin.vcproj:
58301         * WebCore.vcproj/VERSION: Removed.
58302         * WebCore.vcproj/WebCore.vcproj:
58303         * WebCore.vcproj/auto-version.sh: Removed.
58304         * WebCore.vcproj/debug.vsprops: Removed.
58305         * WebCore.vcproj/debug_internal.vsprops: Removed.
58306         * WebCore.vcproj/release.vsprops: Removed.
58307
58308 2008-01-13  Dan Bernstein  <mitz@apple.com>
58309
58310         Reviewed by Darin Adler.
58311
58312         - fix http://bugs.webkit.org/show_bug.cgi?id=16865
58313           fast/layers/resize-layer-deletion-crash.html crashes under GuardMalloc
58314
58315         * rendering/RenderBox.cpp:
58316         (WebCore::RenderBox::destroy): Removed the call to
58317         RenderLayer::destroy() from here, because ~RenderLayer() calls
58318         RenderObject() methods.
58319         * rendering/RenderObject.cpp:
58320         (WebCore::RenderObject::destroy): Added the call to
58321         RenderLayer::destroy() here.
58322
58323 2008-01-13  Eric Seidel  <eric@webkit.org>
58324
58325         Reviewed by darin.
58326
58327         Range.insertNode does not update endContainer endIndex correctly
58328         in the case where it had to split a text node.
58329         http://bugs.webkit.org/show_bug.cgi?id=16765
58330         
58331         Darin pointed out during review that we still don't handle the dynamic
58332         range case (where the dom tree changes not using range methods)
58333         Thus this code will get ripped out when we add that.  The test cases
58334         are still valid and useful however, so I'm landing this as-is.
58335
58336         Tests: fast/dom/Range/range-insertNode-separate-endContainer.html
58337                fast/dom/Range/range-insertNode-splittext.html
58338
58339         * dom/Range.cpp:
58340         (WebCore::Range::insertNode): handle the splitText case correctly.
58341
58342 2008-01-13  Darin Adler  <darin@apple.com>
58343
58344         Reviewed by Eric.
58345
58346         - http://bugs.webkit.org/show_bug.cgi?id=16861
58347           get rid of unnecessary string copying
58348
58349         * dom/Document.cpp:
58350         (WebCore::Document::setDomain): Removed unneeded call to copy.
58351         (WebCore::Document::parseQualifiedName): Removed unneeded call to copy, and
58352         unneeded length argument to substring, which stops at the end of the string
58353         if you don't specify a length.
58354         (WebCore::Document::createAttributeNS): Replaced code that was calling copy
58355         with more-efficient code using the substring function.
58356         * dom/StyledElement.cpp:
58357         (WebCore::StyledElement::addCSSColor): Removed unneeded call to copy.
58358         * editing/InsertIntoTextNodeCommand.cpp:
58359         (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): Removed
58360         unneeded copy and also initialized text instead of assigning to it.
58361         (WebCore::InsertIntoTextNodeCommand::doApply): Removed redundant assertions.
58362         (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
58363
58364         * editing/htmlediting.cpp:
58365         (WebCore::stringWithRebalancedWhitespace): Removed unneeded call to copy.
58366         This one was particularly bad since we just turned around and copied it again!
58367
58368         * editing/markup.cpp:
58369         (WebCore::stringValueForRange): Removed unneeded call to copy.
58370
58371         * loader/icon/IconDatabase.cpp:
58372         (WebCore::IconDatabase::performOpenInitialization): Changed logging code to not
58373         get the path from the database object. This was the only reason the database
58374         had to keep its path around.
58375
58376         * platform/sql/SQLiteDatabase.cpp:
58377         (WebCore::SQLiteDatabase::open): Use a local variable instead of a data member to
58378         convert the string to a null-terminated one.
58379         (WebCore::SQLiteDatabase::close): Removed the code to clear out m_path.
58380         * platform/sql/SQLiteDatabase.h: Removed the m_path data member and the path
58381         functio member. Also tweaked formatting and comments a bit. Removed the unused
58382         escapeSQLString function.
58383
58384         * platform/text/String.cpp: (WebCore::operator+): Removed uneeded calls to copy.
58385
58386 2008-01-13  Oliver Hunt  <oliver@apple.com>
58387
58388         Attempt to fix QT build
58389
58390         * html/CanvasRenderingContext2D.cpp:
58391         (WebCore::CanvasRenderingContext2D::willDraw):
58392
58393 2008-01-13  Oliver Hunt  <oliver@apple.com>
58394
58395         Reviewed by Mark Rowe.
58396
58397         Avoid repainting the entire canvas element when possible.
58398
58399         http://bugs.webkit.org/show_bug.cgi?id=16859
58400
58401         We now only register the dirty regions of a canvas for repainting, rather
58402         than the entire element (though repaint coalescing may choose to combine
58403         these regions).  This doesn't cause a measurable regression in the worst
58404         case (clearing the canvas repeatedly), but is a moderate-large win if only
58405         a minor update has occurred.  If there is any CSS scaling applied to the
58406         canvas almost any update short of clearing the entire element is substantially
58407         faster.
58408
58409         * html/CanvasRenderingContext2D.cpp:
58410         (WebCore::CanvasRenderingContext2D::willDraw):
58411         * html/HTMLCanvasElement.cpp:
58412         (WebCore::HTMLCanvasElement::willDraw):
58413
58414 2008-01-13  Michael Goddard  <michael.goddard@trolltech.com>
58415
58416         Reviewed by Anders Carlsson.
58417
58418         Move RuntimeObjectImp creations into Instance.
58419         Make the ctor protected, and Instance a friend class, so
58420         that all creation of RuntimeObjectImps goes through
58421         one place.
58422
58423         * bindings/js/kjs_dom.cpp:
58424         (WebCore::getRuntimeObject):
58425
58426 2008-01-12  Rodney Dawes  <dobey@wayofthemonkey.com>
58427
58428         Gtk debug build fix.  Reviewed by Mark Rowe.
58429
58430         Add plugin logging channel, and use it rather than Win32-specific debugging methods _RPTF1 _RPTF2 and _CRT_WARN.
58431
58432         * WebCore.pro: Add plugins directory to DEPENDPATH so dependencies are correctly tracked.
58433         * platform/Logging.cpp:
58434         * platform/Logging.h:
58435         * plugins/PluginDebug.h:
58436
58437 2008-01-12  Adam Barth  <hk9565@gmail.com>
58438
58439         Reviewed by Maciej (and also tweaked a little bit).
58440
58441         - more thorough fix for some crashing tests
58442           http://bugs.webkit.org/show_bug.cgi?id=16782
58443
58444         * loader/FrameLoader.cpp:
58445         (WebCore::FrameLoader::urlSelected):
58446         (WebCore::FrameLoader::submitForm):
58447         (WebCore::FrameLoader::executeIfJavaScriptURL):
58448         * loader/FrameLoader.h:
58449
58450 2008-01-12  Maciej Stachowiak  <mjs@apple.com>
58451
58452         Reviewed by Sam.
58453
58454         - fixed <rdar://problem/5556374> REGRESSION: cross-domain error when one URL uses an explicit port number and another doesn't
58455         
58456         * platform/SecurityOrigin.cpp:
58457         (WebCore::isDefaultPortForProtocol):
58458         (WebCore::SecurityOrigin::SecurityOrigin):
58459
58460 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
58461
58462         Reviewed by Oliver Hunt.
58463         
58464         Fixed <rdar://problem/5665251> REGRESSION (r28880-r28886): Global
58465         variable access (16644)
58466         
58467         Removed the ReadOnly bit from some properties, to match Firefox. Also
58468         removed status-related setters, to allow using their names as variable
58469         names.
58470         
58471         * bindings/scripts/CodeGeneratorJS.pm: Added support for properties that
58472         are one-way across domain boundaries, to match Firefox.
58473
58474         * bindings/js/kjs_window.cpp: Changed ReadOnly declarations to match FF.
58475
58476         * bindings/scripts/CodeGeneratorJS.pm: Don't use JSObject:: because
58477         we don't know that JSObject is our base class.
58478
58479         * page/DOMWindow.idl: Replaced lots of readonly declarations with
58480         [Replaceable] declarations.
58481
58482         * page/DOMWindow.h: Removed interfaces for setting status text via the
58483         DOM. (They were getting in the way of, e.g., "var status"
58484         declarations.) By default, IE 7 and FF disable these interfaces in order
58485         to defend against phishing attacks that try to spoof domain names in the
58486         statusbar.
58487         * page/DOMWindow.cpp:
58488
58489 2008-01-11  Anyang Ren  <anyang.ren@gmail.com>
58490
58491         Reviewed by Darin Adler.
58492
58493         http://bugs.webkit.org/show_bug.cgi?id=15960
58494         The view source mode should skip an empty attribute value only if
58495         the attribute name is not followed by an equal sign (=).
58496
58497         Test: fast/frames/viewsource-empty-attribute-value.html
58498
58499         * html/HTMLViewSourceDocument.cpp:
58500         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
58501
58502 2008-01-11  Sylvain Pasche  <sylvain.pasche@gmail.com>
58503
58504         Reviewed by Alp Toker.
58505
58506         [Gtk] Uneven glyph spacing with subpixel antialiasing
58507         http://bugs.webkit.org/show_bug.cgi?id=16715
58508
58509         Use cairo font options from the default GDK screen when creating a
58510         scaled font.
58511
58512         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
58513         (WebCore::FontPlatformData::FontPlatformData):
58514
58515 2008-01-11  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
58516
58517         Reviewed by Maciej.
58518
58519         Added a new forwarding header, because Activation.h has been separated
58520         from function.h
58521
58522         * ForwardingHeaders/kjs/Activation.h: Added.
58523
58524 2008-01-11  Luca Bruno  <lethalman88@gmail.com>
58525
58526         Reviewed by Alp Toker.
58527
58528         http://bugs.webkit.org/show_bug.cgi?id=16729
58529         [cURL] Allow multiple files for upload
58530
58531         * platform/network/ResourceHandleInternal.h:
58532         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
58533         * platform/network/curl/ResourceHandleCurl.cpp:
58534         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
58535         * platform/network/curl/ResourceHandleManager.cpp:
58536         (WebCore::readCallback): added
58537         (WebCore::ResourceHandleManager::setupPOST): setup for streaming the POST
58538         (WebCore::ResourceHandleManager::startJob):
58539         (WebCore::ResourceHandleManager::cancel): revert the previous patch for regression
58540         * platform/network/curl/ResourceHandleManager.h:
58541
58542 2008-01-11  Christian Dywan  <christian@imendio.com>
58543
58544         Reviewed by Alp Toker.
58545
58546         [Gtk] Menu items need underscores
58547         http://bugs.webkit.org/show_bug.cgi?id=16817
58548
58549         Add underscores to appropriate menu labels.
58550         Also adjust strings slightly.
58551
58552         * platform/gtk/ContextMenuItemGtk.cpp:
58553         (WebCore::ContextMenuItem::createNativeMenuItem):
58554         * platform/gtk/LocalizedStringsGtk.cpp:
58555         (WebCore::searchableIndexIntroduction):
58556         (WebCore::fileButtonChooseFileLabel):
58557         (WebCore::fileButtonNoFileSelectedLabel):
58558         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
58559         (WebCore::contextMenuItemTagDownloadLinkToDisk):
58560         (WebCore::contextMenuItemTagCopyLinkToClipboard):
58561         (WebCore::contextMenuItemTagOpenImageInNewWindow):
58562         (WebCore::contextMenuItemTagDownloadImageToDisk):
58563         (WebCore::contextMenuItemTagCopyImageToClipboard):
58564         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
58565         (WebCore::contextMenuItemTagCopy):
58566         (WebCore::contextMenuItemTagGoBack):
58567         (WebCore::contextMenuItemTagGoForward):
58568         (WebCore::contextMenuItemTagStop):
58569         (WebCore::contextMenuItemTagReload):
58570         (WebCore::contextMenuItemTagCut):
58571         (WebCore::contextMenuItemTagPaste):
58572         (WebCore::contextMenuItemTagIgnoreSpelling):
58573         (WebCore::contextMenuItemTagLearnSpelling):
58574         (WebCore::contextMenuItemTagSearchWeb):
58575         (WebCore::contextMenuItemTagLookUpInDictionary):
58576         (WebCore::contextMenuItemTagOpenLink):
58577         (WebCore::contextMenuItemTagIgnoreGrammar):
58578         (WebCore::contextMenuItemTagSpellingMenu):
58579         (WebCore::contextMenuItemTagShowSpellingPanel):
58580         (WebCore::contextMenuItemTagCheckSpelling):
58581         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
58582         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
58583         (WebCore::contextMenuItemTagFontMenu):
58584         (WebCore::contextMenuItemTagBold):
58585         (WebCore::contextMenuItemTagItalic):
58586         (WebCore::contextMenuItemTagUnderline):
58587         (WebCore::contextMenuItemTagOutline):
58588         (WebCore::contextMenuItemTagWritingDirectionMenu):
58589         (WebCore::contextMenuItemTagDefaultDirection):
58590         (WebCore::contextMenuItemTagLeftToRight):
58591         (WebCore::contextMenuItemTagRightToLeft):
58592         (WebCore::contextMenuItemTagInspectElement):
58593         (WebCore::searchMenuClearRecentSearchesText):
58594
58595 2008-01-11  Ada Chan  <adachan@apple.com>
58596
58597         <rdar://problem/5681557> On Windows Safari, mouse events are ignored after clicking on link that triggers download
58598         Moved the call to cache page from provisionalLoadStarted() to commitProvisionalLoad(), since 
58599         provisionalLoadStarted() can be called for cases that do not result in a page navigation, for example,
58600         when a link to download a file has been clicked.
58601
58602         Reviewed by John and Anders.
58603
58604         * loader/FrameLoader.cpp:
58605         (WebCore::FrameLoader::provisionalLoadStarted):
58606         (WebCore::FrameLoader::commitProvisionalLoad):
58607
58608 2008-01-11  Jon Honeycutt  <jhoneycutt@apple.com>
58609
58610         Reviewed by Anders.
58611
58612         <rdar://problem/5683529> plugins/embed-inside-object.html is timing
58613         out/failing
58614
58615         Revert to using FrameTree::find() so that frame aliases like "_self" and
58616         "_current" are interpreted properly
58617
58618         * plugins/win/PluginViewWin.cpp:
58619         (WebCore::PluginViewWin::performRequest):
58620         (WebCore::PluginViewWin::load):
58621
58622 2008-01-11  Alp Toker  <alp@atoker.com>
58623
58624         Reviewed by Dave Hyatt and Mark Rowe.
58625
58626         http://bugs.webkit.org/show_bug.cgi?id=16089
58627         [GTK] Support custom fonts, CachedFont::platformDataFromCustomData()
58628
58629         Add support for CSS2 @font-face custom/downloadable fonts to the GTK+
58630         port.
58631
58632         * GNUmakefile.am:
58633         * WebCore.pro:
58634         * loader/CachedFont.cpp:
58635         (WebCore::CachedFont::~CachedFont):
58636         (WebCore::CachedFont::ensureCustomFontData):
58637         (WebCore::CachedFont::platformDataFromCustomData):
58638         (WebCore::CachedFont::allReferencesRemoved):
58639         * platform/graphics/gtk/FontCustomPlatformData.cpp: Added.
58640         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
58641         (WebCore::FontCustomPlatformData::fontPlatformData):
58642         (WebCore::releaseData):
58643         (WebCore::createFontCustomPlatformData):
58644         * platform/graphics/gtk/FontCustomPlatformData.h: Added.
58645         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
58646         * platform/graphics/gtk/FontPlatformData.h:
58647         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
58648         (WebCore::FontPlatformData::FontPlatformData):
58649         (WebCore::FontPlatformData::init):
58650         (WebCore::FontPlatformData::isFixedPitch):
58651         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
58652         (WebCore::SimpleFontData::platformDestroy):
58653
58654 2008-01-11  Adam Roben  <aroben@apple.com>
58655
58656         Remove FrameLoader::committedFirstRealDocumentLoad
58657         
58658         This method no longer has any callers.
58659
58660         Reviewed by Hyatt.
58661
58662         * loader/FrameLoader.h:
58663
58664 2008-01-11  Antti Koivisto  <antti@apple.com>
58665
58666         Add a standalone version of the blog post video player as a manual test.
58667
58668         * manual-tests/resources/touch-poster.png: Added.
58669         * manual-tests/video-player.html: Added.
58670
58671 2008-01-10  Antti Koivisto  <antti@apple.com>
58672
58673         Reviewed by Adam.
58674
58675         Fix <rdar://problem/5682767>
58676         Video does not show up in http://webkit.org/blog/140/html5-media-support/ on Windows
58677         
58678         Take care that GWorld is created and deletes when needed as size or visibility changes.
58679
58680         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
58681         (WebCore::MediaPlayerPrivate::load):
58682         * platform/graphics/win/QTMovieWin.cpp:
58683         (QTMovieWinPrivate::QTMovieWinPrivate):
58684         (QTMovieWinPrivate::updateGWorld):
58685         (QTMovieWinPrivate::setSize):
58686         (QTMovieWin::setVisible):
58687         (QTMovieWin::initializeQuickTime):
58688
58689 2008-01-11  David Hyatt  <hyatt@apple.com>
58690
58691         Fix for bug 11188, setting hspace on a table overrides align=center.  Fix align=center to be done using
58692         mapped attributes so that it does not get overridden by hspace all the time.
58693
58694         Reviewed by mitz
58695
58696         Added fast/table/table-hspace-align-center.html
58697
58698         * css/html4.css:
58699         * html/HTMLTableElement.cpp:
58700         (WebCore::HTMLTableElement::parseMappedAttribute):
58701
58702 2008-01-11  Mark Rowe  <mrowe@apple.com>
58703
58704         Qt build fix.
58705
58706         * platform/qt/TemporaryLinkStubs.cpp: Include CString.h.
58707
58708 2008-01-11  Mark Rowe  <mrowe@apple.com>
58709
58710         Qt build fix.  Add link stubs for the new FileSystem.h functions introduced
58711         in r29399.
58712
58713         * platform/qt/TemporaryLinkStubs.cpp:
58714         (WebCore::openTemporaryFile):
58715
58716 2008-01-11  Rodney Dawes  <dobey@wayofthemonkey.com>
58717
58718         Reviewed by Anders Carlsson.
58719
58720         Bug 16779: Make the PluginStream implementation be shared across platforms
58721         http://bugs.webkit.org/show_bug.cgi?id=16779
58722
58723         Add the new shared PluginStream files to the GTK+ and Win32 builds.
58724         Add PluginStreamClient class for the streamDidFinishLoading method.
58725         Add open/close/write methods to FileSystem for temporary file handling.
58726         Add PluginDebug.h and npfunctions.h for shared PluginStream.
58727         Add shared PluginStream.
58728         Remove PluginStreamWin.
58729         Update PluginViewWin to use shared PluginStream and PluginStreamClass.
58730
58731         * GNUmakefile.am:
58732         * WebCore.pro:
58733         * WebCore.vcproj/WebCore.vcproj:
58734         * platform/FileSystem.h:
58735         * platform/gtk/FileSystemGtk.cpp:
58736         * platform/win/FileSystemWin.cpp:
58737         * plugins/PluginDebug.h:
58738         * plugins/PluginStream.cpp:
58739         * plugins/PluginStream.h:
58740         * plugins/npfunctions.h:
58741         * plugins/win/PluginDebug: Moved to PluginDebug.h.
58742         * plugins/win/PluginStreamWin.cpp: Moved to PluginStream.cpp.
58743         * plugins/win/PluginStreamWin.h: Moved to PluginStream.h
58744         * plugins/win/PluginViewWin.cpp:
58745         * plugins/win/PluginViewWin.h:
58746         * plugins/win/npfunctions.h: Moved to npfunctions.h
58747
58748 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
58749
58750         Try to fix Mac build: Edit the right .exp file.
58751
58752         * WebCore.base.exp:
58753
58754 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
58755
58756         Try to fix Qt build: don't use pthreads if they're not available.
58757
58758         * bindings/js/GCController.cpp:
58759
58760 2008-01-10  Geoffrey Garen  <ggaren@apple.com>
58761
58762         Reviewed by John Sullivan.
58763
58764         Fixed some world leak reports:
58765         * <rdar://problem/5669436> PLT complains about world leak of 1 JavaScript
58766         Interpreter after running cvs-base suite
58767
58768         * <rdar://problem/5669423> PLT complains about world leak if browser
58769         window is open when PLT starts
58770         
58771         These were both bugs in the reporting mechanism, so I took the
58772         opportunity to do some house cleaning there.
58773
58774         Stupid class, I kill you:
58775         * bridge/JavaScriptStatistics.cpp: Removed.
58776         * bridge/JavaScriptStatistics.h: Removed.
58777
58778         * bindings/js/GCController.h: Adopted the only useful features of
58779         JavaScriptStatistics, since they were GC-related.
58780         * bindings/js/GCController.cpp:
58781
58782 2008-01-10  Eric Seidel  <eric@webkit.org>
58783
58784         Reviewed by Adele.
58785
58786         No functional changes, only code cleanup.
58787
58788         * css/MediaQueryEvaluator.cpp:
58789         (WebCore::compareValue): renamed from cmpvalue
58790         (WebCore::colorMediaFeatureEval):
58791         (WebCore::device_aspect_ratioMediaFeatureEval):
58792         (WebCore::device_pixel_ratioMediaFeatureEval):
58793         (WebCore::gridMediaFeatureEval):
58794         (WebCore::device_heightMediaFeatureEval):
58795         (WebCore::device_widthMediaFeatureEval):
58796         (WebCore::heightMediaFeatureEval):
58797         (WebCore::widthMediaFeatureEval):
58798
58799 2008-01-10  Dan Bernstein  <mitz@apple.com>
58800
58801         Reviewed by Anders Carlsson.
58802
58803         - fix a crash when calling alert() from a repeating timer
58804
58805         On non-Mac platforms, the PageGroupLoadDeferrer pauses DOM timers during
58806         alert() and other similar functions, which deletes the actual
58807         DOMWindowTimer objects and replaces them with new objects when resuming.
58808
58809         * bindings/js/kjs_window.cpp:
58810         (KJS::Window::timerFired): Re-fetch the timer object from the map in
58811         case it has been deleted or replaced.
58812
58813 2008-01-10  Maciej Stachowiak  <mjs@apple.com>
58814
58815         Reviewed by Sam.
58816
58817         - remove SecurityOriginData and fold its functionality into SecurityOrigin
58818
58819         * GNUmakefile.am:
58820         * WebCore.base.exp:
58821         * WebCore.pro:
58822         * WebCore.vcproj/WebCore.vcproj:
58823         * WebCore.xcodeproj/project.pbxproj:
58824         * WebCoreSources.bkl:
58825         * bindings/js/JSDOMWindowCustom.cpp:
58826         (WebCore::JSDOMWindow::postMessage):
58827         * dom/Document.cpp:
58828         (WebCore::Document::domain):
58829         * page/Chrome.cpp:
58830         (WebCore::Chrome::requestQuotaIncreaseForNewDatabase):
58831         (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation):
58832         * page/Chrome.h:
58833         * page/ChromeClient.h:
58834         * platform/SecurityOrigin.cpp:
58835         (WebCore::SecurityOrigin::copy):
58836         (WebCore::SecurityOrigin::createFromIdentifier):
58837         (WebCore::SecurityOrigin::stringIdentifier):
58838         * platform/SecurityOrigin.h:
58839         (WebCore::SecurityOrigin::host):
58840         (WebCore::SecurityOrigin::protocol):
58841         (WebCore::SecurityOrigin::port):
58842         (WebCore::SecurityOrigin::equal):
58843         * platform/SecurityOriginData.cpp: Removed.
58844         * platform/SecurityOriginData.h: Removed.
58845         * storage/Database.cpp:
58846         (WebCore::Database::openDatabase):
58847         (WebCore::Database::Database):
58848         (WebCore::Database::securityOriginCopy):
58849         * storage/Database.h:
58850         * storage/DatabaseTracker.cpp:
58851         (WebCore::SecurityOriginHash::hash):
58852         (WebCore::SecurityOriginHash::equal):
58853         (WebCore::SecurityOriginTraits::deletedValue):
58854         (WebCore::SecurityOriginTraits::emptyValue):
58855         (WebCore::DatabaseTracker::canEstablishDatabase):
58856         (WebCore::DatabaseTracker::hasEntryForOrigin):
58857         (WebCore::DatabaseTracker::hasEntryForDatabase):
58858         (WebCore::DatabaseTracker::establishEntryForOrigin):
58859         (WebCore::DatabaseTracker::fullPathForDatabase):
58860         (WebCore::DatabaseTracker::populateOrigins):
58861         (WebCore::DatabaseTracker::origins):
58862         (WebCore::DatabaseTracker::databaseNamesForOrigin):
58863         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
58864         (WebCore::DatabaseTracker::setDatabaseDetails):
58865         (WebCore::DatabaseTracker::usageForDatabase):
58866         (WebCore::DatabaseTracker::usageForOrigin):
58867         (WebCore::DatabaseTracker::quotaForOrigin):
58868         (WebCore::DatabaseTracker::setQuota):
58869         (WebCore::DatabaseTracker::addDatabase):
58870         (WebCore::DatabaseTracker::deleteAllDatabases):
58871         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
58872         (WebCore::DatabaseTracker::deleteDatabase):
58873         (WebCore::DatabaseTracker::deleteDatabaseFile):
58874         (WebCore::notificationQueue):
58875         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
58876         (WebCore::DatabaseTracker::notifyDatabasesChanged):
58877         * storage/DatabaseTracker.h:
58878         * storage/DatabaseTrackerClient.h:
58879         * storage/SQLTransaction.cpp:
58880         (WebCore::SQLTransaction::openTransactionAndPreflight):
58881         (WebCore::SQLTransaction::runStatements):
58882         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
58883         (WebCore::SQLTransaction::postflightAndCommit):
58884         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
58885         * svg/graphics/SVGImageEmptyClients.h:
58886         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
58887         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
58888
58889 2008-01-10  Anders Carlsson  <andersca@apple.com>
58890
58891         Reviewed by Sam.
58892
58893         Use the correct frame loader load method. Using the old method would not cause a 
58894         new window to be open if the frame navigation was not allowed.
58895         
58896         * plugins/win/PluginViewWin.cpp:
58897         (WebCore::PluginViewWin::performRequest):
58898
58899 2008-01-10  Alp Toker  <alp@atoker.com>
58900
58901         SVG font build fix for GTK+/autotools.
58902
58903         * GNUmakefile.am:
58904
58905 2008-01-10  Adam Barth  <hk9565@gmail.com>
58906
58907         Reviewed by Sam Weinig and Anders Carlsson.
58908
58909         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16522
58910         <rdar://problem/5657355>
58911
58912         This patch makes two changes:
58913
58914         1) Java calls FrameLoader::load in a slightly different way than
58915            JavaScript, which previously let a malicious web site bypass the
58916            shouldAllowNavigation check.  This patch adds that check to that
58917            code path.
58918
58919         2) FrameLoader now wraps calls to m_frame->tree()->find(name) with
58920            findFrameForNavigation, which calls shouldAllowNavigation.  This
58921            treats disallowed frame navigations as if the named frame did not
58922            exist, resulting in a popup window when appropriate.
58923
58924         Tests: http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html
58925                http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html
58926
58927         * WebCore.base.exp:
58928         * bindings/js/kjs_window.cpp:
58929         (KJS::WindowProtoFuncOpen::callAsFunction):
58930         * loader/FrameLoader.cpp:
58931         (WebCore::FrameLoader::createWindow):
58932         (WebCore::FrameLoader::load):
58933         (WebCore::FrameLoader::post):
58934         (WebCore::FrameLoader::findFrameForNavigation):
58935         * loader/FrameLoader.h:
58936
58937 2008-01-10  John Sullivan  <sullivan@apple.com>
58938
58939         Written by Hyatt, reviewed by me
58940         
58941         - fixed <rdar://problem/5654297> Mail crashes occurs at WebCore::FontFallbackList::fontDataAt() when attempting to display 
58942           a <video> element that uses controls attribute
58943
58944         * rendering/MediaControlElements.cpp:
58945         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
58946         force the render style to inherit from the media element's style; Hyatt filed 5682383 to cover cleaning
58947         up this architecture, but this one-line fix will prevent the crash in the meantime
58948
58949 2008-01-10  Ada Chan  <adachan@apple.com>
58950
58951         Fix fast/forms/input-radio-checked-tab.html
58952         Meta key is not the same as Alt key on windows.
58953
58954         Reviewed by Darin.
58955
58956         * platform/win/KeyEventWin.cpp:
58957         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
58958
58959 2008-01-10  Anders Carlsson  <andersca@apple.com>
58960
58961         Reviewed by Jon.
58962
58963         Fix an assert that would happen when a plug-in tries to load a URL while a provisional load is going.
58964         
58965         * plugins/win/PluginViewWin.cpp:
58966         (WebCore::PluginViewWin::performRequest):
58967         Move document loader check here since we don't start loading until here and a new document load could have started in the meantime.
58968         
58969         (WebCore::PluginViewWin::requestTimerFired):
58970         Don't leak the plugin requests.
58971         
58972         (WebCore::PluginViewWin::load):
58973
58974 2008-01-10  Anders Carlsson  <andersca@apple.com>
58975
58976         Reviewed by John Sullivan.
58977
58978         <rdar://problem/5455889>
58979         REGRESSION: BumperCar crashes when attempting to load a long invalid URL
58980         
58981         Make sure to call FrameLoader::receivedMainResourceError before calling
58982         FrameLoader::didFailToLoad. The call to receivedMainResourceError takes care of
58983         clearing out the provisional document loader so that we won't call the didFail
58984         ResourceLoadDelegate method twice. This also makes us call the FrameLoadDelegate method
58985         didFailPrivisionalLoad before calling the ResourceLoadDelegate method, which Safari 2.0 does.
58986         
58987         * loader/MainResourceLoader.cpp:
58988         (WebCore::MainResourceLoader::receivedError):
58989
58990 2008-01-10  Antti Koivisto  <antti@apple.com>
58991
58992         Reviewed by Adele.
58993
58994         Fix <rdar://problem/5658048>
58995         After <video> has finished playing, dragging the scroller on different location of controller starts to play movie
58996         
58997         - Move to paused state if the playback had ended and the controller is used to seek to earlier time
58998         - Pause video playback during drag so the knob does not constantly try to escape from the mouse pointer
58999
59000         * html/HTMLMediaElement.cpp:
59001         (WebCore::HTMLMediaElement::HTMLMediaElement):
59002         (WebCore::HTMLMediaElement::updateMediaPlayer):
59003         (WebCore::HTMLMediaElement::setPausedInternal):
59004         * html/HTMLMediaElement.h:
59005         * rendering/MediaControlElements.cpp:
59006         (WebCore::MediaControlTimelineElement::defaultEventHandler):
59007
59008 2008-01-10  Alexey Proskuryakov  <ap@webkit.org>
59009
59010         Reviewed by Adam Roben.
59011
59012         <rdar://problem/5667003> fast/dom/xmlhttprequest-html-response-encoding.html is failing
59013
59014         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Do not disable sniffing for file://
59015         requests, as CFNetwork doesn't perform extension to MIME type mapping then.
59016
59017 2008-01-10  Adam Roben  <aroben@apple.com>
59018
59019         Fixes to allow multiple FrameViews on Windows
59020
59021         Reviewed by Hyatt.
59022
59023         * page/FrameView.cpp:
59024         (WebCore::FrameView::FrameView): Added a new constructor that takes an
59025         IntSize to specify the FrameView's initial size.
59026         (WebCore::FrameView::scheduleRelayout): Added an assertion that our
59027         Document is not in the page cache.
59028         * page/FrameView.h:
59029         * platform/gtk/WidgetGtk.cpp:
59030         (WebCore::Widget::~Widget): Add a warm, fuzzy ASSERT.
59031         * platform/qt/WidgetQt.cpp:
59032         (WebCore::Widget::~Widget): Ditto.
59033         * rendering/RenderWidget.cpp:
59034         (WebCore::RenderWidget::setWidget): Make sure to remove any existing
59035         Widget from the Widget hierarchy before deleting it. One instance
59036         where this is needed is when setWidget is called during FrameView
59037         creation on Windows.
59038
59039 2008-01-10  Alp Toker  <alp@atoker.com>
59040
59041         Include math.h to get ceilf(). Part of the SVG font GTK+ build fix.
59042
59043         * svg/SVGFontFaceElement.cpp:
59044
59045 2008-01-10  Justin Garcia  <justin.garcia@apple.com>
59046
59047         Reviewed by Alice Liu.
59048
59049         <rdar://problem/5658603> Crash in InsertNodeBefore::doUnapply() on Undo in Yahoo Mail
59050         <rdar://problem/5658709> Crash in RenderView::setSelection on Undo in Yahoo Mail
59051         
59052         Make sure we have an updated layout before we perform any editing work.
59053
59054         * editing/EditCommand.cpp:
59055         (WebCore::EditCommand::apply):
59056         (WebCore::EditCommand::unapply):
59057         (WebCore::EditCommand::reapply):
59058
59059 2008-01-10  Luca Bruno  <lethalman88@gmail.com>
59060
59061         Reviewed by Alp Toker.
59062
59063         Back out r29206 which was causing regressions in curl http job
59064         cancellation.
59065
59066         * platform/network/curl/ResourceHandleManager.cpp
59067         (ResourceHandleManager::cancel): 
59068
59069 2008-01-10  Kevin McCullough  <kmccullough@apple.com>
59070
59071         Reviewed by Darin, Sam, and Adam.
59072
59073         - <rdar://problem/5654486> REGRESSION (Safari 3.0.4-TOT): clicking on
59074         - link in gmail message displays JavaScript alert falsely complaining
59075         about pop-up blocking
59076         - When trying to open a new window, we now see if the user gesture 
59077         occurred in the global dynamic object instead of the frame since that is
59078         the only place an event can occur. 
59079
59080         * bindings/js/kjs_window.cpp: - Check the dynamic global object instead
59081         of the frame.
59082         (KJS::allowPopUp):
59083         (KJS::showModalDialog):
59084         (KJS::WindowProtoFuncOpen::callAsFunction):
59085
59086 2008-01-10  David Hyatt  <hyatt@apple.com>
59087
59088         Fix for bug 16247, visibility:hidden not honored when hit testing inline replaced elements.
59089
59090         Reviewed by adele
59091
59092         Added fast/css/visibility-hit-test.html test case.
59093
59094         * rendering/RenderBox.cpp:
59095         (WebCore::RenderBox::nodeAtPoint):
59096
59097 2008-01-10  Lars Knoll  <lars@trolltech.com>
59098
59099         Reviewed by Simon.
59100
59101         rename QWebPageHistory to QWebHistory.
59102
59103         * WebCore.pro:
59104
59105 2008-01-10  Lars Knoll  <lars@trolltech.com>
59106
59107         Reviewed by Simon.
59108
59109         fix the drawing errors that where introduced due to refactoring.
59110
59111         Correctly clip to the rectangle we want to draw in ScrollView::paint().
59112
59113         * platform/qt/ScrollViewQt.cpp:
59114         (WebCore::ScrollView::paint):
59115
59116 2008-01-10  Simon Hausmann  <hausmann@webkit.org>
59117
59118         Reviewed by Lars.
59119
59120         Temporarily disable gzip decompression in qhttp due to a bug.
59121
59122         * platform/network/qt/QNetworkReplyHandler.cpp:
59123         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
59124
59125 2008-01-10  Simon Hausmann  <hausmann@webkit.org>
59126
59127         Reviewed by Lars.
59128
59129         http://bugs.webkit.org/show_bug.cgi?id=16588
59130
59131         Added a (last) Frame argument to ResourceHandle::loadResourceSynchronously.
59132         This allows implementing the synchronous loading correctly for the Qt port where the networking
59133         backend is bound to the page.
59134
59135         * loader/FrameLoader.cpp:
59136         (WebCore::FrameLoader::loadResourceSynchronously):
59137         * platform/network/ResourceHandle.h:
59138         * platform/network/cf/ResourceHandleCFNet.cpp:
59139         * platform/network/curl/ResourceHandleCurl.cpp:
59140         * platform/network/mac/ResourceHandleMac.mm:
59141         * platform/network/qt/ResourceHandleQt.cpp:
59142         (WebCore::ResourceHandle::loadResourceSynchronously):
59143
59144 2008-01-10  Kevin Ollivier  <kevino@theolliviers.com>
59145
59146         wx build fix for changes in r29328
59147
59148         * WebCoreSources.bkl:
59149
59150 2008-01-09  Maciej Stachowiak  <mjs@apple.com>
59151
59152         Reviewed by Sam.
59153
59154         - refactor SecurityOrigin in preparation for merging with SecurityOriginData
59155
59156         * platform/SecurityOrigin.cpp:
59157         (WebCore::SecurityOrigin::SecurityOrigin):
59158         (WebCore::SecurityOrigin::create):
59159         (WebCore::SecurityOrigin::createForFrame):
59160         * platform/SecurityOrigin.h:
59161
59162 2008-01-09  Ada Chan  <adachan@apple.com>
59163
59164         Tabs with ctrl, meta, or altgraph modifier key down should not advance focus.
59165
59166         Reviewed by Darin.
59167
59168         Test: fast/forms/tabs-with-modifiers.html
59169
59170         * page/EventHandler.cpp:
59171         (WebCore::EventHandler::defaultKeyboardEventHandler):
59172         (WebCore::EventHandler::defaultTabEventHandler): bail if ctrl, meta, or altgraph key is down.  
59173         Clean up the code a bit.
59174         * page/EventHandler.h:
59175         * page/FocusController.cpp: Remove the advanceFocus() that takes in a KeyboardEvent.  It was
59176         only called in EventHandler::defaultTabEventHandler() but we have cleaned up the code there and
59177         no longer needs it.
59178         * page/FocusController.h:
59179
59180 2008-01-09  Antti Koivisto  <antti@apple.com>
59181
59182         Reviewed by Mitz.
59183
59184         Fix http://bugs.webkit.org/show_bug.cgi?id=16376
59185         <rdar://problem/5665206>
59186         <video> element fails to play frames when navigating back to page (16376)
59187         
59188         Don't make MediaPlayer visible when it is actually in page cache.
59189
59190         * rendering/RenderVideo.cpp:
59191         (WebCore::RenderVideo::updatePlayer):
59192
59193 2008-01-09  Anders Carlsson  <andersca@apple.com>
59194
59195         Reviewed by Darin.
59196
59197         <rdar://problem/5532361> 
59198         CrashTracer: 9840 crashes in Safari at com.apple.JavaScriptCore: KJS::Bindings::CInstance::~CInstance [in-charge deleting] + 35
59199         
59200         Clear the frame's plugin root objects so that they don't outlive the plugin bundle.
59201         
59202         * page/Frame.cpp:
59203         (WebCore::Frame::pageDestroyed):
59204
59205 2008-01-09  John Sullivan  <sullivan@apple.com>
59206
59207         Reviewed by Adam Roben and Anders Carlsson
59208         
59209         - fixed <rdar://problem/5469398> Repro assertion failure in context menu code due to 
59210           missing-but-expected Reload item
59211
59212         * platform/ContextMenu.cpp:
59213         (WebCore::ContextMenu::populate):
59214         use isLoadingInAPISense when deciding whether to include Stop or Reload in context
59215         menu, to match the WebKit API
59216
59217 2008-01-09  Mark Rowe  <mrowe@apple.com>
59218
59219         Fix Windows debug build for opensource developers.
59220
59221         * WebCore.vcproj/QTMovieWin.vcproj: Use the correct library suffix.
59222
59223 2007-10-01  Allan Sandfeld Jensen  <sandfeld@kde.org>
59224
59225         Reworked by Eric, Reviewed by Hyatt.
59226
59227         - fix http://bugs.webkit.org/show_bug.cgi?id=9454
59228         Add support for :lang inheritance and xml:lang support.
59229
59230         Tests: fast/selectors/lang-inheritance.html
59231                fast/selectors/lang-inheritance2.html
59232                fast/selectors/lang-vs-xml-lang.html
59233                fast/selectors/lang-vs-xml-lang-xhtml.xhtml
59234
59235         * css/CSSStyleSelector.cpp:
59236         (WebCore::CSSStyleSelector::canShareStyleWithElement): Do not share style between elements with
59237         different LANG-attribute.
59238         (WebCore::CSSStyleSelector::checkOneSelector): Change :lang() to recursively check the LANG attribute
59239         for all the elements parents and the content-language of the document.
59240         * dom/Document.cpp:
59241         (WebCore::Document::processHttpEquiv): Parse MIME Content-Language
59242         * dom/Document.h:
59243         (WebCore::Document::contentLanguage):
59244         (WebCore::Document::setContentLanguage):
59245
59246 2008-01-08  Timothy Hatcher  <timothy@apple.com>
59247
59248         Reviewed by Brady.
59249
59250         Bug 16678: Unreproducible crash in KJS::JSObject::inherits() after using Web Inspector
59251         http://bugs.webkit.org/show_bug.cgi?id=16678
59252
59253         Add a NULL check for controller before calling JSObjectSetPrivate.
59254
59255         * page/InspectorController.cpp:
59256         (WebCore::InspectorController::~InspectorController):
59257
59258 2008-01-08  Xan Lopez  <xan@gnome.org>
59259
59260         Reviewed by Alp Toker.
59261
59262         http://bugs.webkit.org/show_bug.cgi?id=15610
59263         [GTK] Text rendering using Pango
59264
59265         Use Pango to render Complex path text.
59266
59267         * platform/graphics/gtk/FontGtk.cpp:
59268         (WebCore::utf16_to_utf8):
59269         (WebCore::convertUniCharToUTF8):
59270         (WebCore::setPangoAttributes):
59271         (WebCore::Font::drawGlyphs):
59272         (WebCore::Font::drawComplexText):
59273         (WebCore::Font::floatWidthForComplexText):
59274         (WebCore::Font::offsetForPositionForComplexText):
59275
59276 2008-01-08  Timothy Hatcher  <timothy@apple.com>
59277
59278         Reviewed by Darin Adler.
59279
59280         <rdar://problem/5665860> With the web inspector displayed, a crash occurs
59281         at WebCore::Frame::document() when navigating back to previous page
59282
59283         This fixes the crash, but the inspector was totally broken with back/forward.
59284         So this also fixes back/forward navigation so the right main resource shows
59285         up in the inspector.
59286
59287         * page/InspectorController.cpp:
59288         (WebCore::addSourceToFrame): Add some null checks for the frame when
59289         getting the textEncoding. This was the crash.
59290         (WebCore::InspectorController::addScriptResource): Create a script object
59291         only if needed, and always add it by calling addResource.
59292         (WebCore::InspectorController::didCommitLoad): Check if the loader is 
59293         loading from the page cache, and clear m_mainResource. If the load is
59294         normal, then call addAndUpdateScriptResource with the main resource. 
59295         (WebCore::InspectorController::identifierForInitialRequest): If the load
59296         is from the page cache and the resource is the main resource call
59297         addAndUpdateScriptResource since didCommitLoad did not do it.
59298
59299 2008-01-08  Alp Toker  <alp@atoker.com>
59300
59301         Back out VIDEO by default in the GTK+ qmake build. The build bot
59302         doesn't have the necessary libraries installed.
59303
59304         * WebCore.pro:
59305
59306 2008-01-08  Alp Toker  <alp@atoker.com>
59307
59308         Win build fix for breakage introduced in r29328.
59309
59310         * WebCore.vcproj/WebCore.vcproj:
59311
59312 2008-01-08  Alp Toker  <alp@atoker.com>
59313
59314         Rubber-stamped by Mark Rowe.
59315
59316         Enable VIDEO by default in the GTK+ qmake build.
59317
59318         * WebCore.pro:
59319
59320 2008-01-08  Alp Toker  <alp@atoker.com>
59321
59322         GTK+ VIDEO build fix for breakage introduced in r29328.
59323
59324         Issue noticed by Ori_B.
59325
59326         * GNUmakefile.am:
59327         * WebCore.pro:
59328
59329 2008-01-08  Antti Koivisto  <antti@apple.com>
59330
59331         Reviewed by Darin.
59332         
59333         HTMLAudioElement needs generated constructor. Otherwise video instanceof HTMLAudioElement is true which is 
59334         bit strange.
59335         
59336         Renamed custom constructor JSHTMLAudioElementConstructor to JSAudioConstructor to avoid name clashes.
59337
59338         Test: media/constructors.html
59339
59340         * WebCore.xcodeproj/project.pbxproj:
59341         * bindings/js/JSAudioConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.cpp.
59342         (WebCore::JSAudioConstructor::JSAudioConstructor):
59343         (WebCore::JSAudioConstructor::implementsConstruct):
59344         (WebCore::JSAudioConstructor::construct):
59345         * bindings/js/JSAudioConstructor.h: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.h.
59346         * bindings/js/JSHTMLAudioElementConstructor.cpp: Removed.
59347         * bindings/js/JSHTMLAudioElementConstructor.h: Removed.
59348         * bindings/js/kjs_window.cpp:
59349         (KJS::Window::getValueProperty):
59350         * html/HTMLAudioElement.idl:
59351
59352 2008-01-08  Anders Carlsson  <andersca@apple.com>
59353
59354         Reviewed by Mitz.
59355
59356         Don't add the applet widget to the view, that's done later by RenderApplet.
59357             
59358         * loader/FrameLoader.cpp:
59359         (WebCore::FrameLoader::createJavaAppletWidget):
59360
59361 2008-01-08  Antti Koivisto  <antti@apple.com>
59362
59363         Reviewed by Weinig.
59364         
59365         Add security check for Audio constructor.
59366
59367         * bindings/js/kjs_window.cpp:
59368         (KJS::Window::getValueProperty):
59369
59370 2008-01-08  Timothy Hatcher  <timothy@apple.com>
59371
59372         Reviewed by Adam Roben.
59373
59374         <rdar://problem/5676515> List of scripts and images missing when opening Web Inspector from new window (16567)
59375
59376         InspectorController::didLoadResourceFromMemoryCache was not being called for
59377         resources that loaded from the memory cache that the FrameLoader's client
59378         has already been notified about. This fix always calls the InspectorController
59379         when loading a memory cached resource. No test possible for the Web Inspector.
59380
59381         * loader/DocLoader.cpp:
59382         (WebCore::DocLoader::checkCacheObjectStatus): Moved most of the logic to
59383         FrameLoader::loadedResourceFromMemoryCache so the InspectorController can always be notified.
59384         * loader/FrameLoader.cpp:
59385         (WebCore::FrameLoader::didTellClientAboutLoad): Renamed from didTellBridgeAboutLoad.
59386         (WebCore::FrameLoader::haveToldClientAboutLoad): Renamed from haveToldBridgeAboutLoad.
59387         (WebCore::FrameLoader::loadResourceSynchronously): Call the renamed didTellClientAboutLoad.
59388         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Only takes a CachedResource now.
59389         Always call InspectorController. If the resource's sendResourceLoadCallbacks is false or
59390         didTellClientAboutLoad is true, do an early return. Otherwise call the client and call
59391         didTellClientAboutLoad.
59392         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Removed, work now done
59393         in FrameLoader::loadedResourceFromMemoryCache.
59394         * loader/FrameLoader.h: Renamed {didTell,haveTold}BridgeAboutLoad to {didTell,haveTold}ClientAboutLoad.
59395         Made loadedResourceFromMemoryCache only take a CachedResource. Renamed m_urlsBridgeKnowsAbout to 
59396         m_urlsClientKnowsAbout.
59397         * loader/SubresourceLoader.cpp:
59398         (WebCore::SubresourceLoader::load): Call the renamed didTellClientAboutLoad.
59399
59400 2008-01-08  Dan Bernstein  <mitz@apple.com>
59401
59402         Rubber-stamped by Sam Weinig.
59403
59404         - prefix all member variables in CSSStyleSelector with m_
59405
59406         * css/CSSStyleSelector.cpp:
59407         (WebCore::CSSStyleSelector::CSSStyleSelector):
59408         (WebCore::CSSStyleSelector::init):
59409         (WebCore::CSSStyleSelector::setEncodedURL):
59410         (WebCore::CSSStyleSelector::loadDefaultStyle):
59411         (WebCore::CSSStyleSelector::matchRules):
59412         (WebCore::CSSStyleSelector::matchRulesForList):
59413         (WebCore::CSSStyleSelector::initElementAndPseudoState):
59414         (WebCore::CSSStyleSelector::initForStyleResolve):
59415         (WebCore::CSSStyleSelector::canShareStyleWithElement):
59416         (WebCore::CSSStyleSelector::locateSharedStyle):
59417         (WebCore::CSSStyleSelector::matchUARules):
59418         (WebCore::CSSStyleSelector::styleForElement):
59419         (WebCore::CSSStyleSelector::pseudoStyleForElement):
59420         (WebCore::CSSStyleSelector::updateFont):
59421         (WebCore::CSSStyleSelector::cacheBorderAndBackground):
59422         (WebCore::CSSStyleSelector::checkSelector):
59423         (WebCore::CSSStyleSelector::checkOneSelector):
59424         (WebCore::CSSStyleSelector::applyProperty):
59425         (WebCore::CSSStyleSelector::mapBackgroundImage):
59426         (WebCore::CSSStyleSelector::mapBackgroundSize):
59427         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
59428         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
59429         (WebCore::CSSStyleSelector::checkForTextSizeAdjust):
59430         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
59431         * css/CSSStyleSelector.h:
59432         (WebCore::CSSStyleSelector::):
59433         (WebCore::CSSRuleData::CSSRuleData):
59434         (WebCore::CSSRuleDataList::CSSRuleDataList):
59435         (WebCore::CSSRuleDataList::append):
59436         * css/SVGCSSStyleSelector.cpp:
59437         (WebCore::CSSStyleSelector::applySVGProperty):
59438         * rendering/RenderStyle.cpp:
59439         (WebCore::RenderStyle::isStyleAvailable):
59440
59441 2008-01-08  David D. Kilzer  <ddkilzer@apple.com>
59442
59443         Removed unnecessary files from Copy Bundle Resources build phase.
59444
59445         Reviewed by Sam.
59446
59447         * WebCore.xcodeproj/project.pbxproj: Files removed from build phase:
59448         DOMCoreException.idl
59449         EventException.idl
59450         MessageEvent.idl
59451         SVGAElement.idl
59452         SVGAngle.idl
59453         SVGAnimateColorElement.idl
59454         SVGAnimateElement.idl
59455         SVGAnimateTransformElement.idl
59456         SVGAnimatedAngle.idl
59457         SVGAnimatedBoolean.idl
59458         SVGAnimatedEnumeration.idl
59459         SVGAnimatedInteger.idl
59460         SVGAnimatedLength.idl
59461         SVGAnimatedLengthList.idl
59462         SVGAnimatedNumber.idl
59463         SVGAnimatedNumberList.idl
59464         SVGAnimatedPathData.idl
59465         SVGAnimatedPoints.idl
59466         SVGAnimatedPreserveAspectRatio.idl
59467         SVGAnimatedRect.idl
59468         SVGAnimatedString.idl
59469         SVGAnimatedTransformList.idl
59470         SVGAnimationElement.idl
59471         SVGCSSPropertyNames.in
59472         SVGCSSValueKeywords.in
59473         SVGCircleElement.idl
59474         SVGClipPathElement.idl
59475         SVGColor.idl
59476         SVGComponentTransferFunctionElement.idl
59477         SVGCursorElement.idl
59478         SVGDefinitionSrcElement.idl
59479         SVGDefsElement.idl
59480         SVGDescElement.idl
59481         SVGDocument.idl
59482         SVGElement.idl
59483         SVGElementInstance.idl
59484         SVGElementInstanceList.idl
59485         SVGEllipseElement.idl
59486         SVGException.idl
59487         SVGExternalResourcesRequired.idl
59488         SVGFEBlendElement.idl
59489         SVGFEColorMatrixElement.idl
59490         SVGFEComponentTransferElement.idl
59491         SVGFECompositeElement.idl
59492         SVGFEDiffuseLightingElement.idl
59493         SVGFEDisplacementMapElement.idl
59494         SVGFEDistantLightElement.idl
59495         SVGFEFloodElement.idl
59496         SVGFEFuncAElement.idl
59497         SVGFEFuncBElement.idl
59498         SVGFEFuncGElement.idl
59499         SVGFEFuncRElement.idl
59500         SVGFEGaussianBlurElement.idl
59501         SVGFEImageElement.idl
59502         SVGFEMergeElement.idl
59503         SVGFEMergeNodeElement.idl
59504         SVGFEOffsetElement.idl
59505         SVGFEPointLightElement.idl
59506         SVGFESpecularLightingElement.idl
59507         SVGFESpotLightElement.idl
59508         SVGFETileElement.idl
59509         SVGFETurbulenceElement.idl
59510         SVGFilterElement.idl
59511         SVGFilterPrimitiveStandardAttributes.idl
59512         SVGFitToViewBox.idl
59513         SVGFontElement.idl
59514         SVGFontFaceElement.idl
59515         SVGFontFaceFormatElement.idl
59516         SVGFontFaceNameElement.idl
59517         SVGFontFaceSrcElement.idl
59518         SVGFontFaceUriElement.idl
59519         SVGForeignObjectElement.idl
59520         SVGGElement.idl
59521         SVGGlyphElement.idl
59522         SVGGradientElement.idl
59523         SVGImageElement.idl
59524         SVGLangSpace.idl
59525         SVGLength.idl
59526         SVGLengthList.idl
59527         SVGLineElement.idl
59528         SVGLinearGradientElement.idl
59529         SVGLocatable.idl
59530         SVGMarkerElement.idl
59531         SVGMaskElement.idl
59532         SVGMatrix.idl
59533         SVGMetadataElement.idl
59534         SVGMissingGlyphElement.idl
59535         SVGNumber.idl
59536         SVGNumberList.idl
59537         SVGPaint.idl
59538         SVGPathElement.idl
59539         SVGPathSeg.idl
59540         SVGPathSegArcAbs.idl
59541         SVGPathSegArcRel.idl
59542         SVGPathSegClosePath.idl
59543         SVGPathSegCurvetoCubicAbs.idl
59544         SVGPathSegCurvetoCubicRel.idl
59545         SVGPathSegCurvetoCubicSmoothAbs.idl
59546         SVGPathSegCurvetoCubicSmoothRel.idl
59547         SVGPathSegCurvetoQuadraticAbs.idl
59548         SVGPathSegCurvetoQuadraticRel.idl
59549         SVGPathSegCurvetoQuadraticSmoothAbs.idl
59550         SVGPathSegCurvetoQuadraticSmoothRel.idl
59551         SVGPathSegLinetoAbs.idl
59552         SVGPathSegLinetoHorizontalAbs.idl
59553         SVGPathSegLinetoHorizontalRel.idl
59554         SVGPathSegLinetoRel.idl
59555         SVGPathSegLinetoVerticalAbs.idl
59556         SVGPathSegLinetoVerticalRel.idl
59557         SVGPathSegList.idl
59558         SVGPathSegMovetoAbs.idl
59559         SVGPathSegMovetoRel.idl
59560         SVGPatternElement.idl
59561         SVGPoint.idl
59562         SVGPointList.idl
59563         SVGPolygonElement.idl
59564         SVGPolylineElement.idl
59565         SVGPreserveAspectRatio.idl
59566         SVGRadialGradientElement.idl
59567         SVGRect.idl
59568         SVGRectElement.idl
59569         SVGRenderingIntent.idl
59570         SVGSVGElement.idl
59571         SVGScriptElement.idl
59572         SVGSetElement.idl
59573         SVGStopElement.idl
59574         SVGStringList.idl
59575         SVGStylable.idl
59576         SVGStyleElement.idl
59577         SVGSwitchElement.idl
59578         SVGSymbolElement.idl
59579         SVGTRefElement.idl
59580         SVGTSpanElement.idl
59581         SVGTests.idl
59582         SVGTextContentElement.idl
59583         SVGTextElement.idl
59584         SVGTextPathElement.idl
59585         SVGTextPositioningElement.idl
59586         SVGTitleElement.idl
59587         SVGTransform.idl
59588         SVGTransformList.idl
59589         SVGTransformable.idl
59590         SVGURIReference.idl
59591         SVGUnitTypes.idl
59592         SVGUseElement.idl
59593         SVGViewElement.idl
59594         SVGViewSpec.idl
59595         SVGZoomAndPan.idl
59596         SVGZoomEvent.idl
59597         XMLHttpRequestException.idl
59598         XPathException.idl
59599         character-sets.txt
59600         mac-encodings.txt
59601         make-charset-table.pl
59602         svgattrs.in
59603         svgtags.in
59604         xlinkattrs.in
59605
59606 2008-01-08  Luca Bruno  <lethalman88@gmail.com>
59607
59608         Reviewed by Alp Toker.
59609
59610         Support copying the selected URL to the clipboard.
59611
59612         * platform/gtk/PasteboardGtk.cpp:
59613         (WebCore::Pasteboard::writeURL): implemented
59614
59615 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
59616
59617         Renamed CharacterData::m_str to m_data
59618
59619         Rubber-stamped by Adam again.
59620
59621         No test cases added since there is no change in behavior.
59622
59623         * dom/CDATASection.cpp:
59624         * dom/CharacterData.cpp:
59625         (WebCore::CharacterData::CharacterData):
59626         (WebCore::CharacterData::setData):
59627         (WebCore::CharacterData::substringData):
59628         (WebCore::CharacterData::appendData):
59629         (WebCore::CharacterData::insertData):
59630         (WebCore::CharacterData::deleteData):
59631         (WebCore::CharacterData::replaceData):
59632         (WebCore::CharacterData::nodeValue):
59633         (WebCore::CharacterData::containsOnlyWhitespace):
59634         (WebCore::CharacterData::dispatchModifiedEvent):
59635         (WebCore::CharacterData::checkCharDataOperation):
59636         (WebCore::CharacterData::dump):
59637         * dom/CharacterData.h:
59638         * dom/Comment.cpp:
59639         * dom/Text.cpp:
59640         (WebCore::Text::splitText):
59641         (WebCore::Text::createRenderer):
59642         (WebCore::Text::recalcStyle):
59643
59644 2008-01-08  Steve Falkenburg  <sfalken@apple.com>
59645
59646         Fix a couple of compiler warnings.
59647         
59648         Reviewed by Mitz.
59649
59650         * platform/win/ThreadingWin.cpp:
59651         * platform/win/UniscribeController.cpp: Remove unused function.
59652         (WebCore::UniscribeController::advance): Fix bogus warning about un-initialized variable.
59653
59654 2008-01-08  Adele Peterson  <adele@apple.com>
59655
59656         Reviewed by Darin.
59657
59658         Fix for <rdar://problem/5674667> fast/forms/slider-mouse-events.html is broken by media control checkin 29257
59659
59660         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
59661           After fixing a bug in EventHandler to make sure events always go to the capturing node, this bug was exposed.
59662           MouseMove and MouseUp events were going to the thumb element, but not to the slider input element.  
59663           This change makes the input element the capturing node, and then the input element forwards the mouse events to the thumb element.
59664           I also added a missing call to setDefaultHandled for the mousemove event.
59665
59666 2008-01-08  Adele Peterson  <adele@apple.com>
59667
59668         Reviewed by Adam. 
59669
59670         * rendering/RenderThemeSafari.cpp: Use the SafariTheme version number to decide whether or not to
59671         paint the media controls in RenderThemeSafari.
59672
59673 2008-01-08  Oliver Hunt  <oliver@apple.com>
59674
59675         Reviewed by Adele and John.
59676
59677         Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
59678         dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )
59679
59680         We hit this crash if the page reloads between DragController::dragUpdated
59681         and DragController::performDrag, meaning that m_document starts pointing to
59682         a now viewless document.  This is picked up by an assertion in performDrag
59683         which I have now replaced with an assignment given that the assertion is 
59684         invalid -- it is possible for m_document to be changed between dragUpdated
59685         performDrag
59686
59687         * page/DragController.cpp:
59688         (WebCore::DragController::performDrag):
59689
59690 2008-01-08  Alexey Proskuryakov  <ap@webkit.org>
59691
59692         Reviewed by Darin.
59693
59694         <rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
59695         WebCore::Node::setChanged + 96
59696
59697         Test: fast/dom/cssTarget-crash.html
59698
59699         * dom/Node.cpp: (WebCore::Node::removedFromDocument):
59700         Check to see if the node being removed is currently set as the Document's cssTarget.
59701         If it is, clear the cssTarget to prevent a hanging reference to it.
59702
59703 2008-01-08  Adam Roben  <aroben@apple.com>
59704
59705         * bindings/scripts/CodeGeneratorJS.pm: Touch this so the bindings will
59706         rebuild on Windows now that the media elements are enabled.
59707
59708 2008-01-08  Adam Roben  <aroben@apple.com>
59709
59710         * svg/svgtags.in: Touch this again for the sake of the Windows bots.
59711
59712 2008-01-08  Timothy Hatcher  <timothy@apple.com>
59713
59714         Reviewed by Adam Roben.
59715
59716         Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
59717         Also added some #pragma marks to help find places in the file.
59718
59719         * page/InspectorController.cpp:
59720         (WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
59721         And return the result of JSObjectCallAsFunction.
59722         (WebCore::search): Use JSRetainPtr<JSStringRef>.
59723         (WebCore::databaseTableNames): Ditto.
59724         (WebCore::localizedStrings): Ditto.
59725         (WebCore::InspectorController::~InspectorController): Ditto.
59726         (WebCore::InspectorController::focusNode): Ditto.
59727         (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
59728         (WebCore::InspectorController::scriptObjectReady): Ditto.
59729         (WebCore::addHeaders): Ditto.
59730         (WebCore::InspectorController::addScriptResource): Ditto.
59731         (WebCore::InspectorController::removeScriptResource): Ditto.
59732         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
59733         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
59734         (WebCore::InspectorController::updateScriptResource): Ditto.
59735         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
59736         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
59737         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
59738
59739 2008-01-08  Dan Bernstein  <mitz@apple.com>
59740
59741         Rubber-stamped by Sam Weinig.
59742
59743         - rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}
59744
59745         * GNUmakefile.am:
59746         * WebCore.pro:
59747         * WebCore.vcproj/WebCore.vcproj:
59748         * WebCore.xcodeproj/project.pbxproj:
59749         * WebCoreSources.bkl:
59750         * editing/Editor.cpp:
59751         * platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
59752         * platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
59753         * platform/graphics/FontDataBaseClass.cpp: Removed.
59754         * platform/graphics/FontDataBaseClass.h: Removed.
59755         * platform/graphics/SegmentedFontData.h:
59756         * platform/graphics/SimpleFontData.h:
59757
59758 2008-01-08  Dan Bernstein  <mitz@apple.com>
59759
59760         Fix a Wx build error.
59761
59762         * platform/graphics/wx/GlyphMapWx.cpp:
59763         (WebCore::GlyphPage::fill):
59764
59765 2008-01-08  Dan Bernstein  <mitz@apple.com>
59766
59767         Fix a Qt build error.
59768
59769         * platform/graphics/qt/SimpleFontDataQt.cpp:
59770         (WebCore::SimpleFontData::containsCharacters):
59771         (WebCore::SimpleFontData::fontDataForCharacter):
59772         (WebCore::SimpleFontData::isSegmented):
59773
59774 2008-01-08  Adam Roben  <aroben@apple.com>
59775
59776         Windows build fix.
59777
59778         Touch config.h to force a rebuild (apparently changing preprocessor
59779         definitions in the .vcproj doesn't force a rebuild).
59780
59781         * config.h:
59782
59783 2008-01-08  Dan Bernstein  <mitz@apple.com>
59784
59785         Fix a Wx build failure.
59786
59787         * webcore-wx.bkl:
59788
59789 2008-01-08  Dan Bernstein  <mitz@apple.com>
59790
59791         Fix a Qt build failure.
59792
59793         * WebCore.pro:
59794
59795 2008-01-08  John Sullivan  <sullivan@apple.com>
59796
59797         Reviewed by Adam Roben
59798         
59799         - fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field, 
59800           Delete menu item is enabled but shouldn't be
59801
59802         The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
59803         parameter to the enabled functions so that they can have parallel logic to the execute functions.
59804
59805         * editing/EditorCommand.cpp:
59806         added EditorCommandSource parameter to isEnabled function prototype
59807         (WebCore::enabled):
59808         added unused EditorCommandSource parameter to these isEnabled functions:
59809         (WebCore::enabledAnySelection):
59810         (WebCore::enabledAnySelectionAndMark):
59811         (WebCore::enableCaretInEditableText):
59812         (WebCore::enabledCopy):
59813         (WebCore::enabledCut):
59814
59815         (WebCore::enabledDelete):
59816         new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
59817         for menu source
59818
59819         added unused EditorCommandSource parameter to these isEnabled functions:
59820         (WebCore::enabledInEditableText):
59821         (WebCore::enabledInRichlyEditableText):
59822         (WebCore::enabledPaste):
59823         (WebCore::enabledRangeInEditableText):
59824         (WebCore::enabledRangeInRichlyEditableText):
59825         (WebCore::enabledRedo):
59826         (WebCore::enabledUndo):
59827         
59828         (WebCore::CommandEntry::):
59829         wire up new enabledDelete function as delete function for Delete command
59830         
59831         (WebCore::Editor::Command::isEnabled):
59832         pass EditorCommandSource parameter to isEnabled function
59833
59834 2008-01-08  Adam Roben  <aroben@apple.com>
59835
59836         Visual C++ Express build fix
59837
59838         * WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
59839         and advapi32.lib. VS implicitly links against these, VC++ Express
59840         doesn't.
59841
59842 2008-01-08  Dan Bernstein  <mitz@apple.com>
59843
59844         - add bug number
59845
59846         * platform/graphics/mac/FontCustomPlatformData.cpp:
59847         (WebCore::createFontCustomPlatformData):
59848
59849 2008-01-08  Dan Bernstein  <mitz@apple.com>
59850
59851         Try to fix the Qt build.
59852
59853         * WebCore.pro:
59854
59855 2008-01-08  Nikolas Zimmermann  <zimmermann@kde.org>
59856
59857         Not reviewed. Try to fix Qt builds after Timothy's inspector changes.
59858
59859         * page/inspector/WebKit.qrc:
59860
59861 2008-01-08  Maciej Stachowiak  <mjs@apple.com>
59862
59863         Reviewed by Mark.
59864
59865         - remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)
59866
59867         * bindings/objc/PublicDOMInterfaces.h:
59868         * html/HTMLDocument.idl:
59869
59870 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
59871
59872         Renamed CharacterData::str to m_str to match coding style
59873
59874         Rubber-stamped by Adam.
59875
59876         No test cases added since there is no change in behavior.
59877
59878         * dom/CDATASection.cpp:
59879         * dom/CharacterData.cpp:
59880         (WebCore::CharacterData::CharacterData):
59881         (WebCore::CharacterData::setData):
59882         (WebCore::CharacterData::substringData):
59883         (WebCore::CharacterData::appendData):
59884         (WebCore::CharacterData::insertData):
59885         (WebCore::CharacterData::deleteData):
59886         (WebCore::CharacterData::replaceData):
59887         (WebCore::CharacterData::nodeValue):
59888         (WebCore::CharacterData::containsOnlyWhitespace):
59889         (WebCore::CharacterData::dispatchModifiedEvent):
59890         (WebCore::CharacterData::checkCharDataOperation):
59891         (WebCore::CharacterData::dump):
59892         * dom/CharacterData.h:
59893         * dom/Comment.cpp:
59894         * dom/Text.cpp:
59895         (WebCore::Text::splitText):
59896         (WebCore::Text::createRenderer):
59897         (WebCore::Text::recalcStyle):
59898
59899 2008-01-08  Oliver Hunt  <oliver@apple.com>
59900
59901         Set the ENABLE_SVG_FONTS flag in Windows build, now builds, 
59902         I'm not sure if it just caused the right files to regenerate,
59903         or if there's some configuration weirdness in the non-SVG-fonts
59904         build. 
59905
59906         * WebCore.vcproj/WebCore.vcproj:
59907
59908 2008-01-07  Maciej Stachowiak  <mjs@apple.com>
59909
59910         Reviewed by Brady.
59911
59912         - fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
59913         
59914         Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
59915         
59916         * dom/Document.cpp:
59917         (WebCore::Document::Document):
59918         * dom/Document.h:
59919         (WebCore::Document::setHasOpenDatabases):
59920         (WebCore::Document::hasOpenDatabases):
59921         * loader/FrameLoader.cpp:
59922         (WebCore::FrameLoader::canCachePage):
59923         * storage/Database.cpp:
59924         (WebCore::Database::openDatabase):
59925
59926 2008-01-07  Dan Bernstein  <mitz@apple.com>
59927
59928         Reviewed by Oliver Hunt.
59929
59930         - fix leaks seen on the build bot
59931
59932         * css/CSSFontSelector.cpp:
59933         (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
59934         CSSFontFaceSource for SVG font-face elements going into an
59935         SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
59936         face elements to a CSSFontFace because it will not work as expected.
59937
59938 2008-01-07  Mark Rowe  <mrowe@apple.com>
59939
59940         Tiger build fix.
59941
59942         * platform/graphics/mac/FontCustomPlatformData.cpp:
59943         (WebCore::createFontCustomPlatformData): Only include this code on Leopard.
59944         It's not needed on Tiger, and breaks the build.
59945
59946 2008-01-07  Antti Koivisto  <antti@apple.com>
59947
59948         Reviewed by Steve.
59949
59950         Re-enable media support in Windows build.
59951
59952         * WebCore.vcproj/QTMovieWin.vcproj:
59953         * WebCore.vcproj/WebCore.vcproj:
59954         * WebCore.vcproj/build-generated-files.sh:
59955
59956 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
59957
59958         Add version resource to QTMovieWin.dll
59959         
59960         Reviewed by Adam.
59961
59962         * WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
59963         * WebCore.vcproj/QTMovieWin.rc: Added.
59964         * WebCore.vcproj/QTMovieWin.vcproj:
59965         * WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
59966         * WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.
59967
59968 2008-01-07  Dan Bernstein  <mitz@apple.com>
59969
59970         Build fix.
59971
59972         * platform/graphics/qt/FontCustomPlatformData.cpp:
59973         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
59974         Calls QFontDatabase::removeApplicationFont().
59975         * platform/graphics/qt/FontCustomPlatformData.h:
59976         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
59977         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
59978         implementation because Qt does not use the WebCore glyph cache.
59979
59980 2008-01-07  Dan Bernstein  <mitz@apple.com>
59981
59982         Reviewed by Oliver Hunt.
59983
59984         - fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
59985           Tiger and multiple SVG layout test failures on Leopard.
59986
59987         * css/CSSSegmentedFontFace.cpp:
59988         (WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
59989         empty SegmentedFontData.
59990         * platform/graphics/mac/FontCustomPlatformData.cpp:
59991         (WebCore::createFontCustomPlatformData): Avoid creating a font that
59992         contains no glyphs. On Leopard, ATS might create such a font given
59993         data in an unsupported format (such as SVG).
59994
59995 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
59996
59997         Build fix.
59998
59999         * WebCore.vcproj/WebCore.sln:
60000         * WebCore.vcproj/WebCore.submit.sln:
60001
60002 2008-01-07  Oliver Hunt  <oliver@apple.com>
60003
60004         Reviewed by Niko.
60005
60006         Fix painting of SVG <image> when the image must be scaled to retain aspect ratio
60007
60008         Test: svg/custom/image-with-aspect-ratio-stretch.svg
60009
60010         * rendering/RenderSVGImage.cpp:
60011         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
60012
60013 2008-01-07  Dan Bernstein  <mitz@apple.com>
60014
60015         Build fix.
60016
60017         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
60018         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
60019
60020 2008-01-07  Adele Peterson  <adele@apple.com>
60021
60022         Add missing newline.
60023
60024         * rendering/MediaControlElements.cpp:
60025
60026 2008-01-07  Jon Honeycutt  <jhoneycutt@apple.com>
60027
60028         Reviewed by Hyatt.
60029
60030         <rdar://problem/5673489> Safari does not render windowless plugins in an
60031         iframe when opacity < 1.0
60032
60033         Plugins in transparency layers handle their own world transforms, so
60034         only apply the horizontal/vertical transform if we are not in a
60035         transparency layer.
60036
60037         * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
60038         inTransparencyLayer() function
60039         * platform/win/GraphicsContextWin.cpp:
60040         (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
60041         (WebCore::GraphicsContext::inTransparencyLayer):
60042         (WebCore::GraphicsContext::releaseWindowsContext): Use
60043         inTransparencyLayer()
60044         * plugins/win/PluginViewWin.cpp:
60045         (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
60046         relative to the window. Pass m_isTransparent to
60047         get/releaseWindowsContext(). Only set the world transform if we are not
60048         in a transparency layer.
60049
60050 2008-01-07  Adele Peterson  <adele@apple.com>
60051
60052         Build fix.  Need to wrap these classes in #if ENABLE(VIDEO)
60053
60054         * rendering/MediaControlElements.cpp:
60055         * rendering/MediaControlElements.h:
60056
60057 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60058
60059         Reviewed by Mark.
60060
60061         Enable SVG_FONTS by default.
60062
60063         * Configurations/WebCore.xcconfig:
60064         * WebCore.vcproj/build-generated-files.sh:
60065
60066 2008-01-07  Dan Bernstein  <mitz@apple.com>
60067
60068         Build fix.
60069
60070         * platform/graphics/qt/SimpleFontDataQt.cpp:
60071         (WebCore::SimpleFontData::SimpleFontData):
60072         (WebCore::SimpleFontData::~SimpleFontData):
60073
60074 2008-01-07  Adam Barth  <hk9565@gmail.com>
60075
60076         Reviewed by Sam Weinig
60077
60078         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
60079         <rdar://problem/5657447>
60080
60081         When a frame is created with the URL "about:blank" or "", it should
60082         inherit its SecurityOrigin from its opener.  However, once it has
60083         decided on that SecurityOrigin, it should not change its mind.
60084         Prior to this patch, several events could induce the frame to change
60085         its SecurityOrigin, permitting an attacker to inject script into an
60086         arbitrary SecurityOrigin.
60087
60088         This patch makes several changes:
60089
60090         1) Documents refuse to change from one SecurityOrigin to another
60091            unless explicitly instructed to do so.
60092
60093         2) Navigating to a JavaScript URL that produces a value
60094            preserves the current SecurityOrigin explicitly instead of
60095            relying on the URL to preserve the origin (which fails for
60096            about:blank URLs and SecurityOrigins with document.domain set).
60097
60098            Ideally, we should not preserve the URL at all.  Instead, the
60099            frame's URL should be the JavaScript URL, as in Firefox, but this
60100            would require changes that are too risky for this patch.  I'll
60101            file this as a separate issue.
60102
60103         3) Various methods of navigating to JavaScript URLs were not
60104            properly handling JavaScript that returned a value (and should
60105            therefore replace the current document).  This patch unifies
60106            those code paths with the path that works.
60107
60108            There are still a handful of bugs relating to the handling of
60109            JavaScript URLs, but I'll file those as separate issues.
60110
60111         Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
60112                http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
60113                http/tests/security/aboutBlank/xss-DENIED-set-opener.html
60114
60115         * dom/Document.cpp:
60116         (WebCore::Document::initSecurityOrigin):
60117         * dom/Document.h:
60118         (WebCore::Document::setSecurityOrigin):
60119         * loader/FrameLoader.cpp:
60120         (WebCore::FrameLoader::changeLocation):
60121         (WebCore::FrameLoader::urlSelected):
60122         (WebCore::FrameLoader::requestFrame):
60123         (WebCore::FrameLoader::submitForm):
60124         (WebCore::FrameLoader::executeIfJavaScriptURL):
60125         (WebCore::FrameLoader::begin):
60126         * loader/FrameLoader.h:
60127         * platform/SecurityOrigin.cpp:
60128         (WebCore::SecurityOrigin::setForURL):
60129         (WebCore::SecurityOrigin::createForFrame):
60130         * platform/SecurityOrigin.h:
60131
60132 2008-01-07  Adele Peterson  <adele@apple.com>
60133
60134         Forgot to check in these changes in my last checkin.
60135
60136         * rendering/RenderThemeSafari.cpp:
60137
60138 2008-01-07  Dan Bernstein  <mitz@apple.com>
60139
60140         Build fixes.
60141
60142         * WebCore.pro:
60143         * platform/graphics/qt/FontCacheQt.cpp:
60144         (WebCore::FontCache::getCachedFontData):
60145
60146 2008-01-07  Timothy Hatcher  <timothy@apple.com>
60147
60148         Reviewed by John Sullivan.
60149
60150         <rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked
60151
60152         * page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
60153           normal height when not docked, and small when docked. Also added some cursor properties
60154           prevent showing the text cursor over areas that are not selectable.
60155         * page/inspector/Images: A few images added and old ones removed or renamed.
60156
60157 2008-01-07  Alp Toker  <alp@atoker.com>
60158
60159         Prospective GTK+ autotools/qmake VIDEO build fix for breakage
60160         introduced in r29257.
60161
60162         * GNUmakefile.am:
60163         * WebCore.pro:
60164
60165 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60166
60167         Reviewed by Oliver.
60168
60169         Build fix affecting all builds - again related to the unicode-range addition.
60170
60171         * css/CSSFontSelector.cpp:
60172         (WebCore::CSSFontSelector::addFontFaceRule):
60173         * css/SVGCSSFontFace.cpp:
60174         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
60175         * css/SVGCSSFontFace.h:
60176         * rendering/RenderSVGText.cpp:
60177         * svg/SVGFont.cpp:
60178         (WebCore::svgFontAndFontFaceElementForFontData):
60179         (WebCore::floatWidthMissingGlyphCallback):
60180         (WebCore::drawTextMissingGlyphCallback):
60181         * svg/SVGFontFaceElement.cpp:
60182
60183 2008-01-07  Adele Peterson  <adele@apple.com>
60184
60185         Reviewed by Antti, Adam, and Mitz.
60186
60187         WebCore part of fix for 
60188         <rdar://problem/5619073> Updated look for <video> controls
60189         <rdar://problem/5619057> Add volume control to video controls
60190
60191         * WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
60192         * WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
60193         * WebCore.vcproj/WebCore.vcproj: ditto.
60194
60195         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
60196         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
60197         * css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
60198         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
60199         * css/CSSValueKeywords.in: Added keywords for new control appearance styles.
60200         * css/html4.css: Added new styles for new controls.
60201
60202         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
60203         * html/HTMLMediaElement.h:
60204
60205         * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.
60206
60207         * platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
60208         * platform/mac/WebCoreSystemInterface.mm: ditto.
60209
60210         * rendering/MediaControlElements.cpp: Added.
60211         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia.  Made this relatively positioned, instead of absolute.
60212         (WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia.  Removed call to updateFromElement, 
60213          since its too early to do this here, and causes crashes for the slider.
60214         (WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
60215         (WebCore::MediaControlInputElement::update): ditto.
60216         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
60217         (WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
60218         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
60219         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
60220         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
60221         (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
60222         (WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
60223         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
60224         (WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
60225         (WebCore::MediaControlTimelineElement::update): ditto. 
60226         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
60227         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
60228         * rendering/MediaControlElements.h: Added. Moved from RenderMedia.
60229         (WebCore::MediaControlShadowRootElement::isShadowNode):
60230         (WebCore::MediaControlShadowRootElement::shadowParentNode):
60231         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
60232         (WebCore::RenderMediaControlShadowRoot::setParent):
60233
60234         * rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
60235         (WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
60236         (WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
60237         (WebCore::RenderMedia::createPanel): Added nil check for the renderer.
60238         (WebCore::RenderMedia::createMuteButton): Added.
60239         (WebCore::RenderMedia::createSeekBackButton): ditto.
60240         (WebCore::RenderMedia::createSeekForwardButton): ditto.
60241         (WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
60242         (WebCore::RenderMedia::createFullscreenButton): Added.
60243         (WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
60244         (WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls. 
60245         (WebCore::RenderMedia::forwardEvent): Forward events for new controls.
60246         * rendering/RenderMedia.h: Added new methods for creating new controls.
60247
60248         * rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements, 
60249           but also can contain children (the controls' container) that may need to look for the containing block.
60250
60251         * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.
60252
60253         * rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
60254         (WebCore::RenderStyle::):
60255
60256         * rendering/RenderTheme.cpp:
60257         (WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
60258         (WebCore::RenderTheme::paint): ditto.
60259         * rendering/RenderTheme.h: Added new methods for painting new appearances.
60260         (WebCore::RenderTheme::paintMediaBackground):
60261         (WebCore::RenderTheme::paintMediaFullscreenButton):
60262         (WebCore::RenderTheme::paintMediaPlayButton):
60263         (WebCore::RenderTheme::paintMediaMuteButton):
60264         (WebCore::RenderTheme::paintMediaSeekBackButton):
60265         (WebCore::RenderTheme::paintMediaSeekForwardButton):
60266         (WebCore::RenderTheme::paintMediaSliderThumb):
60267         * rendering/RenderThemeMac.h:
60268         * rendering/RenderThemeMac.mm:
60269         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
60270         (WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
60271         (WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
60272         (WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
60273         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
60274         (WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
60275         (WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
60276         (WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
60277         (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
60278         (WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
60279         (WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
60280         (WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
60281         * rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
60282         (WebCore::RenderThemeSafari::paintSliderTrack):
60283         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
60284         (WebCore::RenderThemeSafari::paintMediaBackground):
60285         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
60286         (WebCore::RenderThemeSafari::paintMediaMuteButton):
60287         (WebCore::RenderThemeSafari::paintMediaPlayButton):
60288         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
60289         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
60290         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
60291         * rendering/RenderThemeSafari.h:
60292
60293 2008-01-07  Timothy Hatcher  <timothy@apple.com>
60294
60295         Reviewed by Darin Adler.
60296
60297         Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
60298         when the replacment string is a different length.
60299
60300         * platform/text/StringImpl.cpp:
60301         (WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
60302         the Vector size calculation, correcting the order of math operations.
60303
60304 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60305
60306         Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.
60307
60308         * platform/graphics/mac/FontCacheMac.mm:
60309
60310 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60311
60312         Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.
60313
60314         * css/CSSFontSelector.cpp:
60315         (WebCore::CSSFontSelector::getFontData):
60316
60317 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60318
60319         Not reviewed. Next try to fix wx/mac leopard build.
60320
60321         * css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
60322         * svg/SVGFontFaceElement.cpp:
60323         (WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
60324         * webcore-base.bkl: Undo svg/ include.
60325
60326 2008-01-07  Dan Bernstein  <mitz@apple.com>
60327
60328         Reviewed by Dave Hyatt.
60329
60330         - <rdar://problem/5665216> Support the unicode-range property in @font-face rules
60331
60332         * GNUmakefile.am:
60333         * WebCore.pro:
60334         * WebCore.vcproj/WebCore.vcproj:
60335         * WebCore.xcodeproj/project.pbxproj:
60336         * WebCoreSources.bkl:
60337         * bindings/objc/DOM.mm:
60338         * bridge/mac/WebCoreAXObject.mm:
60339         * css/CSSComputedStyleDeclaration.cpp:
60340         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60341         * css/CSSFontFace.cpp:
60342         (WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
60343         font face.
60344         (WebCore::CSSFontFace::getFontData):
60345         * css/CSSFontFace.h:
60346         (WebCore::CSSFontFace::CSSFontFace):
60347         (WebCore::CSSFontFace::setSegmentedFontFace):
60348         * css/CSSFontFaceSource.cpp:
60349         (WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
60350         GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
60351         font table are not exposed in the glyph page tree. Only the segmented
60352         font is, and that is taken care of by the segmented font face.
60353         (WebCore::CSSFontFaceSource::getFontData):
60354         * css/CSSFontFaceSource.h:
60355         * css/CSSFontSelector.cpp:
60356         (WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
60357         @font-face rules with the same family and traits into a single
60358         segmented font face, instead of just retaining the most recent one.
60359         (WebCore::CSSFontSelector::fontLoaded):
60360         (WebCore::CSSFontSelector::getFontData):
60361         * css/CSSFontSelector.h:
60362         * css/CSSGrammar.y:
60363         * css/CSSParser.cpp:
60364         (WebCore::CSSParser::parseValue):
60365         (WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
60366         range value.
60367         * css/CSSParser.h:
60368         * css/CSSPrimitiveValue.h:
60369         (WebCore::CSSPrimitiveValue::):
60370         * css/CSSPropertyNames.in:
60371         * css/CSSSegmentedFontFace.cpp: Added.
60372         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
60373         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
60374         (WebCore::CSSSegmentedFontFace::pruneTable):
60375         (WebCore::CSSSegmentedFontFace::isLoaded):
60376         (WebCore::CSSSegmentedFontFace::isValid):
60377         (WebCore::CSSSegmentedFontFace::fontLoaded):
60378         (WebCore::CSSSegmentedFontFace::overlayRange):
60379         (WebCore::CSSSegmentedFontFace::getFontData):
60380         * css/CSSSegmentedFontFace.h: Added.
60381         (WebCore::FontFaceRange::FontFaceRange):
60382         (WebCore::FontFaceRange::from):
60383         (WebCore::FontFaceRange::to):
60384         (WebCore::FontFaceRange::fontFace):
60385         (WebCore::CSSSegmentedFontFace::fontSelector):
60386         * css/CSSStyleSelector.cpp:
60387         (WebCore::CSSStyleSelector::applyProperty):
60388         * css/CSSUnicodeRangeValue.cpp: Added.
60389         (WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
60390         (WebCore::CSSUnicodeRangeValue::cssText):
60391         * css/CSSUnicodeRangeValue.h: Added.
60392         (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
60393         (WebCore::CSSUnicodeRangeValue::from):
60394         (WebCore::CSSUnicodeRangeValue::to):
60395         * css/SVGCSSFontFace.cpp:
60396         (WebCore::SVGCSSFontFace::getFontData):
60397         * css/SVGCSSFontFace.h:
60398         * editing/Editor.cpp:
60399         (WebCore::Editor::fontForSelection):
60400         * editing/Editor.h:
60401         * page/mac/FrameMac.mm:
60402         * page/mac/WebCoreFrameBridge.mm:
60403         (-[WebCoreFrameBridge fontForSelection:]):
60404         * platform/graphics/Font.cpp:
60405         (WebCore::WidthIterator::advance):
60406         (WebCore::Font::glyphDataForCharacter):
60407         (WebCore::Font::primaryFont): Changed to return the simple font data
60408         used for the space character.
60409         (WebCore::Font::fontDataAt):
60410         (WebCore::Font::fontDataForCharacters):
60411         (WebCore::Font::drawGlyphBuffer):
60412         * platform/graphics/Font.h:
60413         * platform/graphics/FontCache.cpp:
60414         (WebCore::FontCache::getCachedFontData):
60415         (WebCore::FontCache::getFontData):
60416         * platform/graphics/FontCache.h:
60417         * platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
60418         * platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
60419         * platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
60420         FontData.cpp.
60421         (WebCore::FontData::~FontData):
60422         * platform/graphics/FontDataBaseClass.h: Added. This will be renamed
60423         FontData.h.
60424         * platform/graphics/FontFallbackList.cpp:
60425         (WebCore::FontFallbackList::determinePitch):
60426         (WebCore::FontFallbackList::fontDataAt):
60427         (WebCore::FontFallbackList::fontDataForCharacters):
60428         * platform/graphics/FontFallbackList.h:
60429         (WebCore::FontFallbackList::primaryFont):
60430         * platform/graphics/FontSelector.h:
60431         * platform/graphics/GlyphBuffer.h:
60432         (WebCore::GlyphBuffer::fontDataAt):
60433         (WebCore::GlyphBuffer::swap):
60434         (WebCore::GlyphBuffer::add):
60435         * platform/graphics/GlyphPageTreeNode.cpp:
60436         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
60437         (WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
60438         pages for segmented font data.
60439         (WebCore::GlyphPageTreeNode::getChild):
60440         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
60441         * platform/graphics/GlyphPageTreeNode.h:
60442         (WebCore::GlyphPage::setGlyphDataForCharacter):
60443         (WebCore::GlyphPage::setGlyphDataForIndex):
60444         (WebCore::GlyphPageTreeNode::getRootChild):
60445         * platform/graphics/SegmentedFontData.cpp: Added.
60446         (WebCore::SegmentedFontData::~SegmentedFontData):
60447         (WebCore::SegmentedFontData::fontDataForCharacter):
60448         (WebCore::SegmentedFontData::containsCharacters):
60449         (WebCore::SegmentedFontData::isCustomFont):
60450         (WebCore::SegmentedFontData::isLoading):
60451         (WebCore::SegmentedFontData::isSegmented):
60452         * platform/graphics/SegmentedFontData.h: Added.
60453         (WebCore::FontDataRange::FontDataRange):
60454         (WebCore::FontDataRange::from):
60455         (WebCore::FontDataRange::to):
60456         (WebCore::FontDataRange::fontData):
60457         (WebCore::SegmentedFontData::appendRange):
60458         (WebCore::SegmentedFontData::numRanges):
60459         (WebCore::SegmentedFontData::rangeAt):
60460         * platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
60461         (WebCore::SimpleFontData::SimpleFontData):
60462         (WebCore::SimpleFontData::~SimpleFontData):
60463         (WebCore::SimpleFontData::ascent):
60464         (WebCore::SimpleFontData::descent):
60465         (WebCore::SimpleFontData::widthForGlyph):
60466         (WebCore::SimpleFontData::fontDataForCharacter):
60467         (WebCore::SimpleFontData::isSegmented):
60468         * platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
60469         (WebCore::SimpleFontData::isCustomFont):
60470         (WebCore::SimpleFontData::isLoading):
60471         * platform/graphics/cairo/GraphicsContextCairo.cpp:
60472         (WebCore::GraphicsContext::setPlatformFont):
60473         * platform/graphics/gtk/FontCacheGtk.cpp:
60474         (WebCore::FontCache::getFontDataForCharacters):
60475         * platform/graphics/gtk/FontDataGtk.cpp: Renamed to
60476         SimpleFontDataGtk.cpp.
60477         * platform/graphics/gtk/FontGtk.cpp:
60478         (WebCore::Font::drawGlyphs):
60479         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
60480         (WebCore::GlyphPage::fill):
60481         * platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
60482         (WebCore::SimpleFontData::platformInit):
60483         (WebCore::SimpleFontData::platformDestroy):
60484         (WebCore::SimpleFontData::smallCapsFontData):
60485         (WebCore::SimpleFontData::containsCharacters):
60486         (WebCore::SimpleFontData::determinePitch):
60487         (WebCore::SimpleFontData::platformWidthForGlyph):
60488         (WebCore::SimpleFontData::setFont):
60489         * platform/graphics/mac/FontCacheMac.mm:
60490         (WebCore::FontCache::getFontDataForCharacters):
60491         * platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
60492         * platform/graphics/mac/FontMac.mm:
60493         (WebCore::initializeATSUStyle):
60494         (WebCore::overrideLayoutOperation):
60495         (WebCore::ATSULayoutParameters::initialize):
60496         (WebCore::Font::drawGlyphs):
60497         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
60498         (WebCore::GlyphPage::fill):
60499         * platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
60500         (WebCore::initFontData):
60501         (WebCore::SimpleFontData::platformInit):
60502         (WebCore::SimpleFontData::platformDestroy):
60503         (WebCore::SimpleFontData::smallCapsFontData):
60504         (WebCore::SimpleFontData::containsCharacters):
60505         (WebCore::SimpleFontData::determinePitch):
60506         (WebCore::SimpleFontData::platformWidthForGlyph):
60507         (WebCore::SimpleFontData::checkShapesArabic):
60508         * platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
60509         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
60510         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
60511         * platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
60512         * platform/graphics/win/FontCacheWin.cpp:
60513         (WebCore::FontCache::getFontDataForCharacters):
60514         * platform/graphics/win/FontDataWin.cpp: Renamed to
60515         SimpleFontDataWin.cpp.
60516         * platform/graphics/win/FontWin.cpp:
60517         (WebCore::Font::drawGlyphs):
60518         * platform/graphics/win/GlyphPageTreeNodeWin.cpp:
60519         (WebCore::GlyphPage::fill):
60520         * platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
60521         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
60522         (WebCore::SimpleFontData::platformInit):
60523         (WebCore::SimpleFontData::platformDestroy):
60524         (WebCore::SimpleFontData::smallCapsFontData):
60525         (WebCore::SimpleFontData::containsCharacters):
60526         (WebCore::SimpleFontData::determinePitch):
60527         (WebCore::SimpleFontData::platformWidthForGlyph):
60528         (WebCore::SimpleFontData::scriptFontProperties):
60529         * platform/graphics/wx/FontCacheWx.cpp:
60530         (WebCore::FontCache::getFontDataForCharacters):
60531         * platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
60532         * platform/graphics/wx/FontWx.cpp:
60533         (WebCore::Font::drawGlyphs):
60534         * platform/graphics/wx/GlyphMapWx.cpp:
60535         (WebCore::GlyphPage::fill):
60536         * platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
60537         (WebCore::SimpleFontData::platformInit):
60538         (WebCore::SimpleFontData::platformDestroy):
60539         (WebCore::SimpleFontData::smallCapsFontData):
60540         (WebCore::SimpleFontData::containsCharacters):
60541         (WebCore::SimpleFontData::determinePitch):
60542         (WebCore::SimpleFontData::platformWidthForGlyph):
60543         * platform/mac/FileChooserMac.mm:
60544         * platform/mac/PopupMenuMac.mm:
60545         * platform/mac/WebCoreTextRenderer.mm:
60546         * platform/win/PopupMenuWin.cpp:
60547         * platform/win/UniscribeController.cpp:
60548         (WebCore::UniscribeController::advance):
60549         (WebCore::UniscribeController::itemizeShapeAndPlace):
60550         (WebCore::UniscribeController::shapeAndPlaceItem):
60551         (WebCore::UniscribeController::shape):
60552         * platform/win/UniscribeController.h:
60553         * svg/SVGFont.cpp:
60554         (WebCore::Font::drawGlyphsWithSVGFont):
60555         * svg/SVGFontElement.cpp:
60556         (WebCore::SVGFontElement::collectGlyphs):
60557         * svg/SVGFontFaceElement.cpp:
60558         (WebCore::SVGFontFaceElement::createFontData):
60559         * svg/SVGFontFaceElement.h:
60560         * svg/SVGGlyphElement.cpp:
60561
60562 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60563
60564         Not reviewed. Try to fix mac build by forcing SVGNames regeneration.
60565
60566         * svg/svgtags.in:
60567
60568 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
60569
60570         Not reviewed. Proposed build fix for wx.
60571
60572         * webcore-base.bkl:
60573
60574 2008-01-07  Dan Bernstein  <mitz@apple.com>
60575
60576         64-bit build fix
60577
60578         * platform/graphics/mac/FontCustomPlatformData.cpp:
60579         (WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
60580         cast here since FMGetFontFromATSFontRef() is not available on 64-bit.
60581
60582 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
60583
60584         Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
60585         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
60586
60587         Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
60588         measure & render glyphs contained in SVG Fonts, including ligature lookup support.
60589
60590         Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
60591
60592         Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
60593         Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
60594
60595         Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
60596         This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
60597         required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
60598
60599         Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
60600
60601         <glyph> elements now register themselves in the SVGFontElement's glyph cache.
60602         (insertedIntoDocument / removedFromDocument take care of this)
60603
60604         The cache is built once now, and is kept updated - it's not rebuild anymore
60605         on painting (!) - which was a crude hack for testing.
60606
60607         W3C testcase which include SVG Fonts:
60608         svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
60609         svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
60610         svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
60611         svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
60612         svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
60613         svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
60614         svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
60615         svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
60616         svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
60617         svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
60618         svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
60619         svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
60620         svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
60621         svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
60622         svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
60623         svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
60624         svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
60625         svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
60626         svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
60627         svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
60628         svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
60629         svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
60630         svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
60631
60632         Questionable testcases:
60633         svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
60634         I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
60635
60636         Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
60637
60638         * css/CSSFontSelector.cpp:
60639         (WebCore::CSSFontSelector::addFontFaceRule):
60640         (WebCore::CSSFontSelector::getFontData):
60641         * platform/graphics/Font.cpp:
60642         (WebCore::Font::lineSpacing):
60643         (WebCore::Font::xHeight):
60644         (WebCore::Font::canUseGlyphCache):
60645         (WebCore::Font::drawGlyphBuffer):
60646         (WebCore::Font::drawText):
60647         (WebCore::Font::floatWidth):
60648         (WebCore::Font::selectionRectForText):
60649         * platform/graphics/Font.h:
60650         (WebCore::TextRun::TextRun):
60651         (WebCore::TextRun::activePaintServer):
60652         (WebCore::TextRun::setActivePaintServer):
60653         * platform/graphics/FontData.cpp:
60654         (WebCore::FontData::lineSpacing):
60655         (WebCore::FontData::lineGap):
60656         (WebCore::FontData::xHeight):
60657         * platform/graphics/FontData.h:
60658         * platform/graphics/win/FontWin.cpp:
60659         (WebCore::Font::drawGlyphs):
60660         * rendering/RenderSVGText.cpp:
60661         (WebCore::RenderSVGText::relativeBBox):
60662         * rendering/SVGInlineTextBox.cpp:
60663         (WebCore::SVGInlineTextBox::paintCharacters):
60664         * rendering/SVGInlineTextBox.h:
60665         * rendering/SVGRootInlineBox.cpp:
60666         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
60667         * svg/SVGFont.cpp:
60668         (WebCore::processArabicFormDetection):
60669         (WebCore::charactersWithArabicForm):
60670         (WebCore::isCompatibleArabicForm):
60671         (WebCore::isCompatibleGlyph):
60672         (WebCore::svgFontAndFontFaceElementForFontData):
60673         (WebCore::SVGTextRunWalker::SVGTextRunWalker):
60674         (WebCore::SVGTextRunWalker::walk):
60675         (WebCore::floatWidthUsingSVGFontCallback):
60676         (WebCore::floatWidthMissingGlyphCallback):
60677         (WebCore::floatWidthOfSubStringUsingSVGFont):
60678         (WebCore::Font::floatWidthUsingSVGFont):
60679         (WebCore::drawTextUsingSVGFontCallback):
60680         (WebCore::drawTextMissingGlyphCallback):
60681         (WebCore::Font::drawTextUsingSVGFont):
60682         (WebCore::Font::selectionRectForTextUsingSVGFont):
60683         * svg/SVGFontElement.cpp:
60684         (WebCore::SVGFontElement::SVGFontElement):
60685         (WebCore::SVGFontElement::addGlyphToCache):
60686         (WebCore::SVGFontElement::removeGlyphFromCache):
60687         (WebCore::SVGFontElement::firstMissingGlyphElement):
60688         (WebCore::SVGFontElement::glyphIdentifiersForString):
60689         * svg/SVGFontElement.h:
60690         (WebCore::SVGFontElement::maximumHashKeyLength):
60691         * svg/SVGFontFaceElement.cpp:
60692         (WebCore::SVGFontFaceElement::createFontData):
60693         (WebCore::SVGFontFaceElement::rebuildFontFace):
60694         (WebCore::SVGFontFaceElement::associatedFontElement):
60695         * svg/SVGFontFaceElement.h:
60696         * svg/SVGGlyphElement.cpp:
60697         (WebCore::SVGGlyphElement::insertedIntoDocument):
60698         (WebCore::SVGGlyphElement::removedFromDocument):
60699         (WebCore::parseArabicForm):
60700         (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
60701         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
60702         * svg/SVGGlyphElement.h:
60703         (WebCore::SVGGlyphIdentifier::):
60704         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
60705         (WebCore::SVGGlyphIdentifier::inheritedValue):
60706         (WebCore::SVGGlyphIdentifier::operator==):
60707         (WebCore::SVGGlyphElement::~SVGGlyphElement):
60708
60709 2008-01-07  David Hyatt  <hyatt@apple.com>
60710
60711         Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.
60712
60713         Reviewed by Dan
60714
60715         * rendering/RenderBox.h:
60716         * rendering/RenderTableCell.cpp:
60717         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
60718
60719 2008-01-07  Holger Freyther  <zecke@selfish.org>
60720
60721         Reviewed by Alp Toker.
60722
60723         * Fix indention
60724
60725         * platform/gtk/ContextMenuGtk.cpp:
60726         (WebCore::ContextMenu::~ContextMenu):
60727
60728 2008-01-07  Holger Freyther  <zecke@selfish.org>
60729
60730         Reviewed by Alp Toker.
60731
60732         * The ContextMenuController is going to live longer than the ContextMenu. It is
60733         going to live as long as the WebCore::Page is around where the ContextMenu, specially
60734         in the case of a SubMenu, is gone before we popup the menu.
60735
60736         * platform/gtk/ContextMenuGtk.cpp:
60737         (WebCore::menuItemActivated):
60738         (WebCore::ContextMenu::appendItem):
60739
60740 2008-01-07  Holger Freyther  <zecke@selfish.org>
60741
60742         Reviewed by Alp Toker.
60743
60744         * Fix SubMenu handling
60745         * Do not connect to the activated signal if we are a separator or submenu
60746         * Change our type from ActionType to SubMenuType when we have a submenu
60747         * Initialize the SubMenu
60748
60749         * platform/gtk/ContextMenuGtk.cpp:
60750         (WebCore::ContextMenu::appendItem):
60751         * platform/gtk/ContextMenuItemGtk.cpp:
60752         (WebCore::ContextMenuItem::ContextMenuItem):
60753         (WebCore::ContextMenuItem::createNativeMenuItem):
60754         (WebCore::ContextMenuItem::setSubMenu):
60755
60756 2008-01-07  Holger Freyther  <zecke@selfish.org>
60757
60758         Reviewed by Alp Toker.
60759
60760         * Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
60761         actions.
60762         * Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
60763         * Update the ContextMenuController to accept CheckableActionTypes as well.
60764         * Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
60765         was extracted from ContextMenu::checkOrEnableIfNeeded.
60766         * Update the Qt and Windows port.
60767
60768
60769         * page/ContextMenuController.cpp:
60770         * platform/ContextMenu.cpp:
60771         (WebCore::createAndAppendFontSubMenu):
60772         (WebCore::createAndAppendSpellingAndGrammarSubMenu):
60773         (WebCore::createAndAppendSpellingSubMenu):
60774         (WebCore::createAndAppendWritingDirectionSubMenu):
60775         * platform/ContextMenuItem.h:
60776         * platform/gtk/ContextMenuItemGtk.cpp:
60777         (WebCore::ContextMenuItem::ContextMenuItem):
60778         (WebCore::ContextMenuItem::createNativeMenuItem):
60779
60780 2008-01-07  Luca Bruno  <lethalman88@gmail.com>
60781
60782         Reviewed by Alp Toker.
60783
60784         http://bugs.webkit.org/show_bug.cgi?id=16745
60785         [GTK] Context menu doesn't feel or look native - no icons
60786
60787         Use GTK+ stock icons for menu items where possible.
60788
60789         * platform/gtk/ContextMenuItemGtk.cpp:
60790         (WebCore::gtkStockIDFromContextMenuAction):
60791         (WebCore::ContextMenuItem::createNativeMenuItem):
60792         (WebCore::ContextMenuItem::setAction):
60793
60794 2008-01-07  Dan Bernstein  <mitz@apple.com>
60795
60796         Reviewed by John Sullivan.
60797
60798         - make the ATSUI code path work with custom fonts rather than crash
60799
60800         * platform/graphics/mac/FontCustomPlatformData.cpp:
60801         (WebCore::FontCustomPlatformData::fontPlatformData):
60802         * platform/graphics/mac/FontMac.mm:
60803         (WebCore::initializeATSUStyle):
60804
60805 2008-01-07  Thiago Macieira  <thiago.macieira@trolltech.com>
60806
60807         Reviewed by Simon.
60808
60809         abort() now emits the signals, so disconnect them before you abort()
60810
60811         * platform/network/qt/QNetworkReplyHandler.cpp:
60812         (WebCore::QNetworkReplyHandler::abort):
60813
60814 2008-01-07  Simon Hausmann  <hausmann@webkit.org>
60815
60816         Reviewed by Lars.
60817
60818         Use a faster and safer way of flattening the form data.
60819
60820         * platform/network/qt/QNetworkReplyHandler.cpp:
60821         (WebCore::QNetworkReplyHandler::start):
60822
60823 2008-01-07  Simon Hausmann  <hausmann@webkit.org>
60824
60825         Reviewed by Lars.
60826
60827         Ported of the network backend of the Qt platform to Qt 4.4's new networking API.
60828
60829         * WebCore.pro:
60830         * platform/network/ResourceHandleInternal.h:
60831         * platform/network/qt/QNetworkReplyHandler.cpp: Added.
60832         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
60833         (WebCore::QNetworkReplyHandler::abort):
60834         (WebCore::QNetworkReplyHandler::finish):
60835         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
60836         (WebCore::QNetworkReplyHandler::forwardData):
60837         (WebCore::QNetworkReplyHandler::start):
60838         * platform/network/qt/QNetworkReplyHandler.h: Added.
60839         (WebCore::QNetworkReplyHandler::reply):
60840         * platform/network/qt/ResourceHandleQt.cpp:
60841         (WebCore::ResourceHandle::start):
60842         (WebCore::ResourceHandle::cancel):
60843         (WebCore::ResourceHandle::loadResourceSynchronously):
60844         * platform/network/qt/ResourceRequest.h:
60845         (WebCore::ResourceRequest::ResourceRequest):
60846         * platform/network/qt/ResourceRequestQt.cpp: Added.
60847         (WebCore::ResourceRequest::toNetworkRequest):
60848         * platform/qt/MIMETypeRegistryQt.cpp:
60849         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
60850         * platform/qt/PlugInInfoStoreQt.cpp:
60851         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
60852         (WebCore::PlugInInfoStore::pluginCount):
60853         (WebCore::PlugInInfoStore::pluginNameForMIMEType):
60854
60855 2008-01-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
60856
60857         Reviewed by Lars.
60858
60859         * Remove m_dirtyRegion as it is not used as we pass every dirty region
60860         directly to the ChromeClient
60861
60862         * platform/qt/ScrollViewQt.cpp:
60863         (WebCore::ScrollView::paint):
60864
60865 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
60866
60867         Reviewed by Oliver.
60868
60869         Small CG paint server cleanups - use more GraphicsContext method where possible.
60870
60871         * svg/graphics/cg/CgSupport.cpp:
60872         (WebCore::applyStrokeStyleToContext):
60873         (WebCore::strokeBoundingBox):
60874         * svg/graphics/cg/CgSupport.h:
60875         * svg/graphics/cg/RenderPathCg.cpp:
60876         (WebCore::RenderPath::strokeContains):
60877         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
60878         (WebCore::SVGPaintServerGradient::setup):
60879         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
60880         (WebCore::SVGPaintServerPattern::setup):
60881         * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
60882         (WebCore::SVGPaintServerSolid::setup):
60883
60884 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
60885
60886         Reviewed by Dan.
60887
60888         Use new helper function isArabicChar() - which also calls ublock_getCode() == UBLOCK_ARABIC on mac.
60889
60890         * platform/graphics/mac/FontMac.mm:
60891         (WebCore::ATSULayoutParameters::initialize):
60892
60893 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
60894
60895         Reviewed by Darin.
60896         
60897         DOMRange doesn't correctly re-size when inserting items (Acid3)
60898         http://bugs.webkit.org/show_bug.cgi?id=16764
60899         
60900         Update the offset for the range when inserting items into the range.
60901
60902         Test: fast/dom/Range/range-modifycontents.html
60903
60904         * dom/Range.cpp:
60905         (WebCore::Range::insertNode):
60906
60907 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
60908
60909         Reviewed by Darin.
60910
60911         http://bugs.webkit.org/show_bug.cgi?id=16731
60912         Incorrect node type for whitespace when setting innerHTML in an XHTML document
60913
60914         Test: fast/dom/xhtml-fragment-whitespace.xhtml
60915
60916         * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
60917         Use balancedCharactersHandler for ignorable whitespace.
60918
60919 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
60920
60921         Reviewed by Darin.
60922
60923         http://bugs.webkit.org/show_bug.cgi?id=16701
60924         <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
60925         causes page load error
60926
60927         Test: http/tests/misc/location-with-space.php
60928
60929         * platform/network/cf/ResourceRequestCFNet.cpp:
60930         (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
60931
60932 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
60933
60934         Reviewed by Darin.
60935         
60936         DOMRange.cloneContents does not work (Acid3 bug)
60937         http://bugs.webkit.org/show_bug.cgi?id=16748
60938         
60939         When cloning an empty range, return an empty DocmentFragment instead of
60940         null or undefined.
60941
60942         Test: fast/dom/Range/range-clone-empty.html
60943
60944         * dom/Range.cpp:
60945         (WebCore::Range::processContents):
60946
60947 2008-01-06  Luca Bruno  <lethalman88@gmail.com>
60948
60949         Reviewed by Alp Toker.
60950
60951         Remove curl handles immediately if the timer is not running.
60952
60953         * platform/network/curl/ResourceHandleManager.cpp:
60954         (WebCore::ResourceHandleManager::cancel):
60955
60956 2008-01-06  Alp Toker  <alp@atoker.com>
60957
60958         Reviewed by Eric.
60959
60960         Cairo canvas refcounting fix. Reference the surface in the constructor
60961         to match its destruction in the destructor.
60962
60963         Fixes a crash triggered by leaving this page:
60964           http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
60965
60966         * html/CanvasPattern.cpp:
60967         (WebCore::CanvasPattern::CanvasPattern):
60968
60969 2008-01-06  Eric Seidel  <eric@webkit.org>
60970
60971         Reviewed by darin.
60972
60973         Make attr selectors case-insensitive for certain HTML attributes
60974         http://bugs.webkit.org/show_bug.cgi?id=15470
60975
60976         Test: fast/css/html-attr-case-sensitivity.html
60977
60978         * css/CSSStyleSelector.cpp:
60979         (WebCore::addLocalNameToSet):
60980         (WebCore::createHtmlCaseInsensitiveAttributesSet):
60981         (WebCore::htmlAttributeHasCaseInsensitiveValue):
60982         (WebCore::CSSStyleSelector::checkOneSelector):
60983
60984 2008-01-06  Eric Seidel  <eric@webkit.org>
60985
60986         Reviewed by Sam.
60987
60988         Fix :checked matching type='text' and add test case
60989         http://bugs.webkit.org/show_bug.cgi?id=16750
60990
60991         Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
60992
60993         * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
60994
60995 2008-01-05  Sam Weinig  <sam@webkit.org>
60996
60997         Reviewed by Eric Seidel.
60998
60999         Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
61000         ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
61001
61002         - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
61003
61004         Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
61005
61006         * dom/TreeWalker.cpp:
61007         (WebCore::TreeWalker::parentNode):
61008         (WebCore::TreeWalker::firstChild):
61009         (WebCore::TreeWalker::lastChild):
61010         (WebCore::TreeWalker::previousSibling):
61011         (WebCore::TreeWalker::nextSibling):
61012         (WebCore::TreeWalker::previousNode):
61013         (WebCore::TreeWalker::nextNode):
61014
61015 2008-01-04  Oliver Hunt  <oliver@apple.com>
61016
61017         Reviewed by Beth Dakin.
61018
61019         Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
61020         and other image repaint bugs.
61021
61022         We now cache the full local bounds for the <image> element, as otherwise certain
61023         combinations of attribute changes could result in incorrect dirty rects.
61024         Additionally we no longer use any of the integer bounds fields on RenderObject for
61025         determining repaint bounds (this was the principle cause of bug #16015).
61026
61027         I also removed the outline painting code as it was both wrong, and not correctly
61028         repainted.  I feel safe doing this as no other browser or viewer supports outline
61029         properties on svg elements.
61030
61031         I was unable to make a testcase for this unfortunately, despite seemingly deterministic 
61032         behaviour :(
61033
61034         * rendering/RenderSVGImage.cpp:
61035         (WebCore::RenderSVGImage::layout):
61036         (WebCore::RenderSVGImage::paint):
61037         (WebCore::RenderSVGImage::nodeAtPoint):
61038         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
61039         * rendering/RenderSVGImage.h:
61040
61041 2008-01-04  Beth Dakin  <bdakin@apple.com>
61042
61043         Reviewed by Oliver.
61044
61045         Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with 
61046         type="hidden" matches :enabled/:disabled (Acid3 bug)
61047
61048         Prevent :enabled and :disabled from applying to input type="hidden" 
61049
61050         * css/CSSStyleSelector.cpp:
61051         (WebCore::CSSStyleSelector::checkOneSelector): Rather than 
61052         allowing :enabled and :disabled to apply to all controls, only 
61053         allow it to apply to non-"hidden" controls
61054         * dom/Element.h:
61055         (WebCore::Element::isInputTypeHidden): 
61056         * html/HTMLInputElement.h:
61057         (WebCore::HTMLInputElement::isInputTypeHidden):
61058
61059 2008-01-04  Sam Weinig  <sam@webkit.org>
61060
61061         Reviewed by Oliver Hunt.
61062
61063         - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
61064           getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
61065           if the type of the CSSPrimitiveValue is not the same as the type requested.
61066         - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
61067
61068         Test: fast/css/CSSPrimitiveValue-exceptions.html
61069
61070         * css/CSSPrimitiveValue.cpp:
61071         (WebCore::CSSPrimitiveValue::getDoubleValue):
61072         (WebCore::CSSPrimitiveValue::getStringValue):
61073         (WebCore::CSSPrimitiveValue::getCounterValue):
61074         (WebCore::CSSPrimitiveValue::getRectValue):
61075         (WebCore::CSSPrimitiveValue::getRGBColorValue):
61076         (WebCore::CSSPrimitiveValue::getPairValue):
61077         * css/CSSPrimitiveValue.h:
61078         (WebCore::CSSPrimitiveValue::getFloatValue):
61079         (WebCore::CSSPrimitiveValue::getIntValue):
61080         (WebCore::CSSPrimitiveValue::getCounterValue):
61081         (WebCore::CSSPrimitiveValue::getRectValue):
61082         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
61083         * css/CSSPrimitiveValue.idl:
61084
61085 2008-01-04  Antti Koivisto  <antti@apple.com>
61086
61087         Reviewed by Darin.
61088         
61089         Windows part of <rdar://problem/5647034>
61090         Media tests crash if an old version of QuickTime is installed
61091
61092         Check QuickTime version on Windows too.
61093
61094         * platform/graphics/MediaPlayer.cpp:
61095         (WebCore::MediaPlayer::isAvailable):
61096         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
61097         (WebCore::MediaPlayerPrivate::isAvailable):
61098         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
61099         (WebCore::MediaPlayerPrivate::isAvailable):
61100         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
61101         * platform/graphics/win/QTMovieWin.cpp:
61102         (QTMovieWin::initializeQuickTime):
61103
61104 2008-01-04  Darin Adler  <darin@apple.com>
61105
61106         Reviewed by Maciej and Alice.
61107
61108         - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
61109
61110         Test: fast/images/border.html
61111
61112         * html/HTMLImageElement.cpp:
61113         (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
61114         where the border value is not a number to use the value "0" for the border width instead
61115         of not setting the border width and style at all. This matches other browsers, and makes
61116         more sense.
61117
61118 2008-01-04  Antti Koivisto  <antti@apple.com>
61119
61120         Try to fix 64-bit build
61121
61122         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
61123         (WebCore::MediaPlayerPrivate::isAvailable):
61124
61125 2008-01-04  Stephanie  <slewis@apple.com>
61126
61127         Reviewed by Oliver.
61128
61129         WARNING: NO TEST CASES ADDED OR CHANGED
61130
61131         Fix another stringImpl leak.
61132
61133         * platform/text/StringImpl.cpp: remove an extra allocation
61134         (WebCore::StringImpl::StringImpl):
61135
61136 2008-01-04  Alice Liu  <alice.liu@apple.com>
61137
61138         Reviewed by Mitz.
61139
61140         * platform/graphics/win/FontCacheWin.cpp:
61141         fix loop condition that was causing crash
61142
61143 2008-01-04  Timothy Hatcher  <timothy@apple.com>
61144
61145         Reviewed by Adam Roben.
61146
61147         <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
61148
61149         * page/inspector/inspector.css: Remove styles related to the toggle button
61150           and make the area always visible. 
61151         * page/inspector/inspector.html: Remove the toggle button.
61152         * page/inspector/inspector.js: Remove code to toggle the status area.
61153
61154 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
61155
61156         Reviewed by Adam Roben.
61157
61158         Temporarily restore BackwardDelete for Windows nightlies to work correctly.
61159
61160         * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
61161
61162 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
61163
61164         Reviewed by Darin.
61165
61166         <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
61167
61168         Enable the fix on Windows.
61169
61170         * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
61171         Always set a custom sort function, even if it doesn't implement proper collation on the platform.
61172
61173         * xml/XSLTUnicodeSort.cpp:
61174         (WebCore::xsltUnicodeSortFunction):
61175         * xml/XSLTUnicodeSort.h:
61176         If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
61177
61178 2008-01-04  Antti Koivisto  <antti@apple.com>
61179
61180         Fix build.
61181
61182         * bindings/js/JSHTMLElementWrapperFactory.cpp:
61183
61184 2008-01-04  Antti Koivisto  <antti@apple.com>
61185
61186         Reviewed by Darin.
61187         
61188         Partial fix for <rdar://problem/5647034>
61189         Media tests crash if an old version of QuickTime is installed
61190
61191         Disable media support if QuickTime is not current enough (>=7.3).
61192         
61193         Windows patch coming soon.
61194
61195         * bindings/js/JSHTMLElementWrapperFactory.cpp:
61196         (WebCore::createJSHTMLWrapper):
61197         * bindings/js/kjs_window.cpp:
61198         (KJS::Window::getValueProperty):
61199         * html/HTMLElementFactory.cpp:
61200         (WebCore::audioConstructor):
61201         (WebCore::videoConstructor):
61202         (WebCore::sourceConstructor):
61203         * platform/graphics/MediaPlayer.cpp:
61204         (WebCore::MediaPlayer::isAvailable):
61205         * platform/graphics/MediaPlayer.h:
61206         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
61207         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
61208         (WebCore::MediaPlayerPrivate::isAvailable):
61209
61210 2008-01-04  Timothy Hatcher  <timothy@apple.com>
61211
61212         Reviewed by Darin Adler.
61213
61214         <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
61215
61216         Check if the property is a getter before asking for the value.
61217         If the property is a getter, we no longer show the value.
61218
61219         * page/inspector/PropertiesSidebarPane.js:
61220         * page/inspector/inspector.css:
61221
61222 2008-01-04  Dan Bernstein  <mitz@apple.com>
61223
61224         Reviewed by Darin Adler.
61225
61226         - fix synthetic bold and italic on Windows
61227
61228         Covered by an existing test.
61229
61230         * platform/graphics/win/FontPlatformDataWin.cpp:
61231         (WebCore::FontPlatformData::FontPlatformData):
61232
61233 2008-01-04  Alp Toker  <alp@atoker.com>
61234
61235         GTK+ autotools build fix. Terminate empty rules.
61236
61237         * GNUmakefile.am:
61238
61239 2008-01-04  Lars Knoll  <lars@trolltech.com>
61240
61241         Reviewed by Simon.
61242
61243         Remove most dependencies of Widget/ScrollView onto native QWidgets.
61244
61245         This also brings the code closer in line with the Windows code. Seems
61246         to work nicely on first try :)
61247
61248         * page/qt/FrameQt.cpp:
61249         (WebCore::Frame::createScriptInstanceForWidget):
61250         * platform/Widget.h:
61251         * platform/qt/PlatformScreenQt.cpp:
61252         (WebCore::screenDepth):
61253         (WebCore::screenDepthPerComponent):
61254         (WebCore::screenIsMonochrome):
61255         (WebCore::screenRect):
61256         * platform/qt/PlatformScrollBarQt.cpp:
61257         (WebCore::PlatformScrollbar::thumbPosition):
61258         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
61259         * platform/qt/ScrollViewQt.cpp:
61260         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
61261         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
61262         (WebCore::ScrollView::updateContents):
61263         (WebCore::ScrollView::update):
61264         (WebCore::ScrollView::scrollRectIntoViewRecursively):
61265         (WebCore::ScrollView::updateScrollbars):
61266         (WebCore::ScrollView::addChild):
61267         (WebCore::ScrollView::removeChild):
61268         (WebCore::ScrollView::paint):
61269         * platform/qt/WidgetQt.cpp:
61270         (WebCore::WidgetPrivate::WidgetPrivate):
61271         (WebCore::WidgetPrivate::~WidgetPrivate):
61272         (WebCore::Widget::frameGeometry):
61273         (WebCore::Widget::setFrameGeometry):
61274         (WebCore::Widget::setCursor):
61275         (WebCore::Widget::show):
61276         (WebCore::Widget::hide):
61277         (WebCore::Widget::nativeWidget):
61278         (WebCore::Widget::setNativeWidget):
61279         (WebCore::Widget::suppressInvalidation):
61280         (WebCore::Widget::setSuppressInvalidation):
61281         (WebCore::Widget::invalidateRect):
61282         (WebCore::Widget::topLevel):
61283         (WebCore::Widget::containingWindow):
61284
61285 2008-01-04  Lars Knoll  <lars@trolltech.com>
61286
61287         Reviewed by Simon.
61288
61289         make QWebPage a QObject and get things to compile.
61290
61291         Nothing works currently though.
61292
61293         * platform/qt/ScrollViewQt.cpp:
61294         (WebCore::ScrollView::updateContents):
61295         (WebCore::ScrollView::update):
61296         * platform/qt/WidgetQt.cpp:
61297         (WebCore::Widget::qwidget):
61298         (WebCore::Widget::invalidateRect):
61299
61300 2008-01-04  Alp Toker  <alp@atoker.com>
61301
61302         Reviewed by Mark Rowe.
61303
61304         http://bugs.webkit.org/show_bug.cgi?id=16667
61305         make -j is failing with the autotools based system
61306
61307         Support parallel code generation. Nearly every use of explicit
61308         multiple targets was a potential concurrency bug, though in practice
61309         the bison rules were the first to be noticed because they took longer
61310         to complete and broke the build immediately.
61311
61312         * GNUmakefile.am:
61313
61314 2008-01-04  Alp Toker  <alp@atoker.com>
61315
61316         Reviewed by Mark Rowe.
61317
61318         Re-use a single static dummy surface rather than creating and
61319         destroying a surface for each CairoPath.
61320
61321         * platform/graphics/cairo/CairoPath.h:
61322         (WebCore::CairoPath::CairoPath):
61323
61324 2008-01-04  Mark Rowe  <mrowe@apple.com>
61325
61326         Tiger build fix.
61327
61328         * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
61329
61330 2008-01-03  Mark Rowe  <mrowe@apple.com>
61331
61332         Reviewed by Maciej Stachowiak.
61333
61334         Use platform-provided atomic operations in place of inline assembly to
61335         increase portability.
61336
61337         * platform/Threading.h:
61338         (WebCore::atomicIncrement):
61339         (WebCore::atomicDecrement):
61340
61341 2008-01-03  Oliver Hunt  <oliver@apple.com>
61342
61343         Reviewed by Maciej.
61344
61345         Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
61346
61347         We need to cache the absolute bounds of the <image>,
61348         as there's no reliable way to recompute the old bounding
61349         box one we have started layout.
61350
61351         * rendering/RenderSVGImage.cpp:
61352         (WebCore::RenderSVGImage::layout):
61353         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
61354         * rendering/RenderSVGImage.h:
61355
61356 2008-01-03  Alp Toker  <alp@atoker.com>
61357
61358         Reviewed by Mark Rowe.
61359
61360         Support building in Scratchbox, which has a version of make that fails
61361         on wildcard syntax. Use a vpath to match IDL files instead.
61362
61363         * GNUmakefile.am:
61364
61365 2008-01-03  Jon Honeycutt  <jhoneycutt@apple.com>
61366
61367         Reviewed by Darin.
61368
61369         <rdar://problem/5504775> PDF page will not load first time after Adobe
61370         Reader install, unless browser is relaunched
61371
61372         Refresh and re-search the plugin database if the MIME type is not
61373         registered.
61374
61375         * plugins/win/PluginDatabaseWin.cpp:
61376         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
61377         * plugins/win/PluginDatabaseWin.h:
61378
61379 2008-01-03  Dan Bernstein  <mitz@apple.com>
61380
61381         Reviewed by Darin Adler.
61382
61383         - fix http://bugs.webkit.org/show_bug.cgi?id=16548
61384           <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
61385
61386         * platform/graphics/win/FontCacheWin.cpp:
61387         (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
61388         a valid LOGFONT for a given family.
61389         (WebCore::getLinkedFonts): Added. Returns a vector of font families
61390         linked to the given font family by the Windows registry key
61391         HKLM\Software\...\FontLink\SystemLink. The registry values typically
61392         differ based on the installed language version of Windows.
61393         (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
61394         font mapping, which is Windows code page based, except for characters in
61395         the range U+2000..U+200F. Instead, this function gets the font Uniscribe
61396         would use for the character. However, that font might not actually
61397         contain the character, in which case GDI font linking would substitute a
61398         different font. Therefore, this function walks the linked font list
61399         until it finds a font that actually contains the character.
61400
61401 2008-01-03  Darin Adler  <darin@apple.com>
61402
61403         Reviewed by Mitz.
61404
61405         - fix http://bugs.webkit.org/show_bug.cgi?id=16723
61406           tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
61407
61408         Test: fast/table/border-changes.html
61409
61410         * html/HTMLTableElement.h:
61411         * html/HTMLTableElement.cpp:
61412         (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
61413         parsing attributes, rather than doing this only for the rules attribute.
61414         (WebCore::HTMLTableElement::cellBorders): Added.
61415         (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
61416         rule about what type of borders to use.
61417
61418 2008-01-02  Sam Weinig  <sam@webkit.org>
61419
61420         Reviewed by Darin.
61421
61422         Pass the prototype of WebCore JS objects up the constructor chain
61423         rather than explicitly setting using setPrototype.  This removes many
61424         redundant settings of the prototype on construction.  To avoid a CG 
61425         hazard, the prototype must be constructed before calling the
61426         constructor of the JS object.
61427
61428         - JS objects that inherit from DOMObject, which all bindings objects
61429           (except Window) do, now can't implicitly have a jsNull prototype, but
61430           must explicitly pass it up the construction chain.
61431
61432         * bindings/js/JSCSSRuleCustom.cpp:
61433         (WebCore::toJS):
61434         * bindings/js/JSCSSValueCustom.cpp:
61435         (WebCore::toJS):
61436         * bindings/js/JSDocumentCustom.cpp:
61437         (WebCore::toJS):
61438         * bindings/js/JSEventCustom.cpp:
61439         (WebCore::toJS):
61440         * bindings/js/JSEventTargetNode.cpp:
61441         (WebCore::JSEventTargetNode::JSEventTargetNode):
61442         * bindings/js/JSEventTargetNode.h:
61443         * bindings/js/JSHTMLAllCollection.h:
61444         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
61445         * bindings/js/JSHTMLAudioElementConstructor.cpp:
61446         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
61447         * bindings/js/JSHTMLCollectionCustom.cpp:
61448         (WebCore::getNamedItems):
61449         (WebCore::toJS):
61450         * bindings/js/JSHTMLElementWrapperFactory.cpp:
61451         (WebCore::createJSHTMLWrapper):
61452         * bindings/js/JSHTMLFormElementCustom.cpp:
61453         (WebCore::JSHTMLFormElement::nameGetter):
61454         * bindings/js/JSHTMLInputElementBase.cpp:
61455         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
61456         * bindings/js/JSHTMLInputElementBase.h:
61457         * bindings/js/JSHTMLOptionElementConstructor.cpp:
61458         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
61459         * bindings/js/JSLocation.cpp:
61460         (WebCore::JSLocation::JSLocation):
61461         * bindings/js/JSLocation.h:
61462         * bindings/js/JSNamedNodesCollection.cpp:
61463         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
61464         * bindings/js/JSNamedNodesCollection.h:
61465         * bindings/js/JSNodeCustom.cpp:
61466         (WebCore::toJS):
61467         * bindings/js/JSSVGElementWrapperFactory.cpp:
61468         (WebCore::createJSSVGWrapper):
61469         * bindings/js/JSSVGPathSegCustom.cpp:
61470         (WebCore::toJS):
61471         * bindings/js/JSStyleSheetCustom.cpp:
61472         (WebCore::toJS):
61473         * bindings/js/JSXMLHttpRequest.cpp:
61474         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
61475         (KJS::JSXMLHttpRequestConstructorImp::construct):
61476         (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
61477         * bindings/js/JSXMLHttpRequest.h:
61478         * bindings/js/JSXSLTProcessor.cpp:
61479         (KJS::JSXSLTProcessor::JSXSLTProcessor):
61480         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
61481         (KJS::XSLTProcessorConstructorImp::implementsConstruct):
61482         (KJS::XSLTProcessorConstructorImp::construct):
61483         * bindings/js/JSXSLTProcessor.h:
61484         * bindings/js/kjs_binding.h:
61485         (KJS::DOMObject::DOMObject):
61486         (KJS::cacheDOMObject):
61487         (KJS::cacheSVGDOMObject):
61488         * bindings/js/kjs_css.cpp:
61489         (WebCore::JSRGBColor::JSRGBColor):
61490         (WebCore::getJSRGBColor):
61491         * bindings/js/kjs_css.h:
61492         * bindings/js/kjs_events.cpp:
61493         (WebCore::JSClipboard::JSClipboard):
61494         (WebCore::toJS):
61495         * bindings/js/kjs_events.h:
61496         * bindings/js/kjs_html.cpp:
61497         (WebCore::ImageConstructorImp::ImageConstructorImp):
61498         * bindings/js/kjs_navigator.cpp:
61499         (KJS::Navigator::Navigator):
61500         (KJS::PluginBase::PluginBase):
61501         * bindings/js/kjs_navigator.h:
61502         * bindings/js/kjs_window.cpp:
61503         (KJS::Window::Window):
61504         (KJS::Window::location):
61505         (KJS::Window::getValueProperty):
61506         * bindings/js/kjs_window.h:
61507         * bindings/scripts/CodeGeneratorJS.pm:
61508
61509 2008-01-03  Holger Hans Peter Freyther  <zecke@selfish.org>
61510
61511         Reviewed by Alp.
61512
61513         -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
61514
61515         Change the Gtk ContextMenuItem code to generate the GtkMenuItem
61516         or GtkCheckMenuItem on the fly. Currently we will create a
61517         GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
61518         to be done is to change WebCore to tell the platform code if an item
61519         is checkable or not.
61520
61521         * platform/ContextMenuItem.h:
61522         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
61523         * platform/gtk/ContextMenuGtk.cpp:
61524         (WebCore::ContextMenu::appendItem):
61525         * platform/gtk/ContextMenuItemGtk.cpp:
61526         (WebCore::ContextMenuItem::ContextMenuItem):
61527         (WebCore::ContextMenuItem::~ContextMenuItem):
61528         (WebCore::ContextMenuItem::createNativeMenuItem):
61529         (WebCore::ContextMenuItem::releasePlatformDescription):
61530         (WebCore::ContextMenuItem::type):
61531         (WebCore::ContextMenuItem::setType):
61532         (WebCore::ContextMenuItem::action):
61533         (WebCore::ContextMenuItem::setAction):
61534         (WebCore::ContextMenuItem::platformSubMenu):
61535         (WebCore::ContextMenuItem::setSubMenu):
61536         (WebCore::ContextMenuItem::setChecked):
61537
61538 2008-01-03  Dan Bernstein  <mitz@apple.com>
61539
61540         Rubber-stamped by Adam Roben.
61541
61542         - update the project hierarchy to match the on-disk organization of
61543           the platform directory.
61544
61545         * WebCore.vcproj/WebCore.vcproj:
61546
61547 2008-01-03  Adam Roben  <aroben@apple.com>
61548
61549         Fix a buffer overrun and a leak introduced in r29098
61550
61551         Reviewed by Mark.
61552
61553         * platform/text/StringImpl.cpp:
61554         (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
61555         it be big enough to hold the string contents plus the null terminator.
61556
61557 2008-01-03  Simon Hausmann  <hausmann@webkit.org>
61558
61559         Reviewed by Lars.
61560
61561         Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
61562
61563         * WebCore.pro:
61564
61565 2008-01-03  Alp Toker  <alp@atoker.com>
61566
61567         Suggested by Mark Rowe.
61568
61569         Fix indentation and remove trailing whitespace.
61570
61571         * platform/network/curl/ResourceHandleManager.cpp:
61572
61573 2008-01-03  Luca Bruno  <lethalman88@gmail.com>
61574
61575         Reviewed by Alp Toker.
61576
61577         Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
61578         that the two POST methods don't conflict.
61579
61580         * platform/network/curl/ResourceHandleManager.cpp:
61581         (WebCore::ResourceHandleManager::setupPOST):
61582
61583 2008-01-02  Darin Adler  <darin@apple.com>
61584
61585         - touched some files to try to get the Windows buildbot building again
61586
61587 2008-01-02  Dan Bernstein  <mitz@apple.com>
61588
61589         Reviewed by Sam Weinig.
61590
61591         - fix small caps rendering
61592
61593         Covered by an existing test.
61594
61595         * platform/graphics/win/FontDataWin.cpp:
61596         (WebCore::FontData::smallCapsFontData):
61597
61598 2008-01-02  Antti Koivisto  <antti@apple.com>
61599
61600         Reviewed by Oliver.
61601
61602         Calculate video position and size within the renderer box in WebCore. This
61603         way the aspect ratio calculation is not needed in each MediaPlayer implementation.
61604         
61605         This fixes video aspect ratio on Windows.
61606         
61607         Covered by an existing pixel test.
61608
61609         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
61610         (WebCore::MediaPlayerPrivate::createQTMovieView):
61611         * rendering/RenderVideo.cpp:
61612         (WebCore::RenderVideo::videoBox):
61613         (WebCore::RenderVideo::paintReplaced):
61614         (WebCore::RenderVideo::updatePlayer):
61615         * rendering/RenderVideo.h:
61616
61617 2008-01-02  Ada Chan  <adachan@apple.com>
61618
61619         Fix windows build.
61620
61621         * WebCore.vcproj/WebCore.vcproj:
61622
61623 2008-01-02  John Sullivan  <sullivan@apple.com>
61624
61625         Reviewed by Dan Bernstein
61626         
61627         - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
61628
61629         * loader/DocumentLoader.cpp:
61630         (WebCore::canonicalizedTitle):
61631         in the code that replaces control characters with white space, also replace the unicode line separator
61632         and paragraph separator characters
61633
61634 2008-01-02  Darin Adler  <darin@apple.com>
61635
61636         - fix buffer overruns seen on buildbot
61637
61638         * platform/text/StringImpl.cpp:
61639         (WebCore::countCharacter): Added this.
61640         (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
61641         (WebCore::StringImpl::toLengthArray): Ditto.
61642         (WebCore::StringImpl::replace): Added assertions.
61643
61644 2008-01-02  Darin Adler  <darin@apple.com>
61645
61646         Reviewed by Maciej.
61647
61648         - fix http://bugs.webkit.org/show_bug.cgi?id=16657
61649           Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
61650         - fix http://bugs.webkit.org/show_bug.cgi?id=16659
61651           Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
61652
61653         Tests: dom/html/level2/html/HTMLCollection07.html
61654                dom/html/level2/html/HTMLCollection08.html
61655                dom/html/level2/xhtml/HTMLCollection07.xhtml
61656                dom/html/level2/xhtml/HTMLCollection08.xhtml
61657                fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
61658                fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
61659
61660         * GNUmakefile.am: Added HTMLTableRowsCollection.
61661         * WebCore.pro: Ditto.
61662         * WebCore.vcproj/WebCore.vcproj: Ditto.
61663         * WebCore.xcodeproj/project.pbxproj: Ditto.
61664         * WebCoreSources.bkl: Ditto.
61665
61666         * dom/XMLTokenizer.cpp: Took out stray include.
61667
61668         * html/HTMLCollection.cpp:
61669         (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
61670         a separate class for that collection. Also got rid of the distinct types for custom collections
61671         that don't need them (use Other for both).
61672         * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
61673
61674         * html/HTMLFormCollection.cpp:
61675         (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
61676         for the HTMLCollection type.
61677
61678         * html/HTMLTableElement.cpp:
61679         (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
61680         (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
61681         keeping a pointer to it.
61682         (WebCore::HTMLTableElement::setCaption): Rewrote.
61683         (WebCore::HTMLTableElement::tHead): Ditto.
61684         (WebCore::HTMLTableElement::setTHead): Ditto.
61685         (WebCore::HTMLTableElement::tFoot): Ditto.
61686         (WebCore::HTMLTableElement::setTFoot): Ditto.
61687         (WebCore::HTMLTableElement::createTHead): Ditto.
61688         (WebCore::HTMLTableElement::deleteTHead): Ditto.
61689         (WebCore::HTMLTableElement::createTFoot): Ditto.
61690         (WebCore::HTMLTableElement::deleteTFoot): Ditto.
61691         (WebCore::HTMLTableElement::createCaption): Ditto.
61692         (WebCore::HTMLTableElement::deleteCaption): Ditto.
61693         (WebCore::HTMLTableElement::lastBody): Added.
61694         (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
61695         This is different from the old code mainly in how it handles rows outside any section.
61696         (WebCore::HTMLTableElement::deleteRow): Ditto.
61697         (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
61698         these was a possible source of serious bugs too, including crashes with stale pointers, although I
61699         didn't write any test cases to prove those bugs existed.
61700         (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
61701         just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
61702         visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
61703         (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
61704         * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
61705         things like DOM mutation events take things ot of the tree before they are safely referenced by
61706         JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
61707         firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
61708         Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
61709         unneeded friend declaration for HTMLTableCellElement.
61710         * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
61711
61712         * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
61713         collection in which order.
61714         * html/HTMLTableRowsCollection.h: Added.
61715
61716         * loader/FTPDirectoryDocument.cpp:
61717         (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
61718         coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
61719         create a tbody element.
61720
61721 2008-01-02  Darin Adler  <darin@apple.com>
61722
61723         Reviewed by Alice and Tim.
61724
61725         - try to fix GTK and Qt builds
61726
61727         * platform/win/ScrollViewWin.cpp:
61728         (WebCore::ScrollView::scroll): Improve logic slightly for the case of
61729         vertical scrolling when there's no vertical scroll bar.
61730
61731         * platform/gtk/ScrollViewGtk.cpp:
61732         (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
61733         should be factored differently.
61734         * platform/qt/ScrollViewQt.cpp:
61735         (WebCore::ScrollView::scroll): Ditto.
61736
61737 2008-01-02  Darin Adler  <darin@apple.com>
61738
61739         Reviewed by Anders.
61740
61741         - http://bugs.webkit.org/show_bug.cgi?id=16712
61742           change StringImpl to take and return PassRefPtr instead of raw pointers
61743
61744         Also eliminated use of const StringImpl. Since StringImpl is immutable there
61745         is no distinction between a const and non-const one at the moment.
61746
61747         * WebCore.base.exp: Updated.
61748
61749         * css/CSSHelper.cpp:
61750         (WebCore::parseURL): Make String directly, not by making a StringImpl.
61751         * dom/Attr.cpp:
61752         (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
61753         not via StringImpl.
61754         (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
61755         to a function that takes a String.
61756
61757         * dom/CDATASection.cpp: Removed unused constructor.
61758         (WebCore::CDATASection::cloneNode): Added a now-needed .get().
61759         (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
61760         * dom/CDATASection.h:
61761
61762         * dom/CharacterData.cpp:
61763         (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
61764         ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
61765         (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
61766         a RefPtr.
61767         (WebCore::CharacterData::setData): More of that.
61768         (WebCore::CharacterData::substringData): Ditto.
61769         (WebCore::CharacterData::appendData): Ditto.
61770         (WebCore::CharacterData::insertData): Ditto.
61771         (WebCore::CharacterData::deleteData): Ditto.
61772         (WebCore::CharacterData::replaceData): Ditto.
61773         (WebCore::CharacterData::nodeValue): Ditto.
61774         (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
61775         (WebCore::CharacterData::dump): Ditto.
61776         * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
61777         instead, but since String adds extra branches to handle 0, I figured it was
61778         more conservative to just use RefPtr. Later it would be good to figure out
61779         which is preferred style and be more consistent. Maybe we'll phase out
61780         StringImpl, or maybe we'll go the other way and use it more since it can be
61781         more efficient.
61782
61783         * dom/DOMImplementation.cpp:
61784         (WebCore::addString): Changed set to use String rather than StringImpl.
61785         (WebCore::isSVG10Feature): Ditto.
61786         (WebCore::isSVG11Feature): Ditto.
61787         (WebCore::DOMImplementation::createDocument): Replaced custom code to
61788         find a colon with a call to String::find.
61789
61790         * dom/Range.cpp:
61791         (WebCore::Range::insertNode): Updated since the result of splitText is now
61792         a PassRefPtr.
61793
61794         * dom/Text.cpp:
61795         (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
61796         result of this function be a PassRefPtr.
61797         (WebCore::Text::createRenderer): Ditto.
61798         (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
61799         * dom/Text.h:
61800
61801         * html/HTMLElement.cpp:
61802         (WebCore::HTMLElement::nodeName): Use String::upper.
61803
61804         * html/HTMLInputElement.cpp:
61805         (WebCore::numGraphemeClusters): Remove now-unneeded const.
61806         (WebCore::numCharactersInGraphemeClusters): Ditto.
61807
61808         * html/HTMLTokenizer.cpp:
61809         (WebCore::HTMLTokenizer::processToken): Updated for function name change.
61810
61811         * platform/text/AtomicString.cpp:
61812         (WebCore::CStringTranslator::translate): Updated since there is no longer
61813         a constructor that takes a string.
61814
61815         * platform/text/PlatformString.h: Added new constructors that take
61816         PassRefPtr and RefPtr. Removed misleading comment.
61817
61818         * platform/text/String.cpp:
61819         (WebCore::String::String): Changed to use StringImpl::create, which handles
61820         the empty string automatically.
61821         (WebCore::String::append): Ditto.
61822         (WebCore::String::charactersWithNullTermination): Similar.
61823         (WebCore::String::format): Ditto.
61824
61825         * platform/text/StringHash.h: Took out unneeded const.
61826
61827         * platform/text/StringImpl.cpp:
61828         (WebCore::deleteUCharVector): Changed to take a const pointer since the
61829         buffers are now const UChar buffers.
61830         (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
61831         separate init functions. The constructors are now private and used only in
61832         the create functions and one or two other places.
61833         (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
61834         (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
61835         PassRefPtr.
61836         (WebCore::StringImpl::characterStartingAt): Ditto.
61837         (WebCore::StringImpl::toLength): Ditto.
61838         (WebCore::StringImpl::toCoordsArray): Ditto.
61839         (WebCore::StringImpl::toLengthArray): Ditto.
61840         (WebCore::StringImpl::isLower): Ditto.
61841         (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
61842         don't have to use new directly here. Makes empty string handling more consistent.
61843         (WebCore::StringImpl::upper): Ditto.
61844         (WebCore::StringImpl::secure): Ditto.
61845         (WebCore::StringImpl::foldCase): Ditto.
61846         (WebCore::StringImpl::stripWhiteSpace): Ditto.
61847         (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
61848         (WebCore::StringImpl::capitalize): Ditto.
61849         (WebCore::StringImpl::toInt): Removed now-meaningless const.
61850         (WebCore::StringImpl::toInt64): Ditto.
61851         (WebCore::StringImpl::toUInt64): Ditto.
61852         (WebCore::StringImpl::toDouble): Ditto.
61853         (WebCore::StringImpl::toFloat): Ditto.
61854         (WebCore::StringImpl::find): Ditto.
61855         (WebCore::StringImpl::reverseFind): Ditto.
61856         (WebCore::StringImpl::endsWith): Ditto.
61857         (WebCore::StringImpl::replace): Ditto.
61858         (WebCore::equal): Ditto.
61859         (WebCore::equalIgnoringCase): Ditto.
61860         (WebCore::StringImpl::ascii): Ditto.
61861         (WebCore::StringImpl::defaultWritingDirection): Ditto.
61862         (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
61863         (WebCore::StringImpl::adopt): Added special case so this uses the shared
61864         empty string like other functions. Also optimized the common case where the
61865         vector happens to already have the right size so we don't do a fastRealloc
61866         at all in those cases.
61867         (WebCore::StringImpl::create): Added. These are now the public functions for
61868         creating new StringImpl objects. They all implement the shared empty string.
61869         (WebCore::StringImpl::createWithTerminatingNullCharacter):
61870         * platform/text/StringImpl.h:
61871
61872         * platform/text/cf/StringCF.cpp:
61873         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
61874         * platform/text/cf/StringImplCF.cpp:
61875         (WebCore::StringImpl::createCFString): Removed now-obsolete const.
61876         * platform/text/mac/StringImplMac.mm:
61877         (WebCore::StringImpl::operator NSString *): Ditto.
61878         * platform/text/mac/StringMac.mm:
61879         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
61880         * platform/text/qt/StringQt.cpp:
61881         (WebCore::String::String): Ditto.
61882         * platform/text/wx/StringWx.cpp:
61883         (WebCore::String::String): Ditto.
61884         * rendering/RenderBR.cpp:
61885         (WebCore::RenderBR::RenderBR): Ditto.
61886
61887         * rendering/RenderSVGInlineText.cpp:
61888         (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
61889         * rendering/RenderSVGInlineText.h:
61890
61891         * rendering/RenderText.cpp:
61892         (WebCore::charactersAreAllASCII): Removed now-unneeded const.
61893         * rendering/RenderTextFragment.cpp:
61894         (WebCore::RenderTextFragment::originalText): Use RefPtr.
61895
61896 2008-01-02  Timothy Hatcher  <timothy@apple.com>
61897
61898         Reviewed by Oliver Hunt.
61899
61900         <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
61901
61902         Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
61903         internal element lookup tables. The represented DOM node object still holds the identifier
61904         it was assigned, and a later call to findTreeElement will use that original identifier
61905         against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
61906
61907         * page/inspector/treeoutline.js:
61908         (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
61909         but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
61910         instead of an early return.
61911
61912 2008-01-02  Alice Liu  <alice.liu@apple.com>
61913
61914         Reviewed by Maciej.
61915
61916         Fixed <rdar://5283861> (problems scrolling in gmail message content area)
61917
61918         * platform/ScrollView.h:
61919         * platform/win/ScrollViewWin.cpp:
61920         (WebCore::ScrollView::scroll):
61921          Changed return value to bool to reflect success of scroll attempt
61922
61923 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
61924
61925         Fixed a typo (pointed out in review, but I somehow missed it at first).
61926
61927         * editing/EditorCommand.cpp: (WebCore::executeDelete):
61928
61929 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
61930
61931         Reviewed by Darin.
61932
61933         Resolved several FIXMEs in EditorCommand.
61934         Made recently added commands hidden from JS again.
61935         Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
61936
61937         Tests: editing/execCommand/delete-no-scroll.html
61938                editing/execCommand/forward-delete-no-scroll.html
61939                editing/execCommand/insert-line-break-no-scroll.html
61940
61941         * editing/EditorCommand.cpp:
61942         (WebCore::executeDelete):
61943         (WebCore::executeForwardDelete):
61944         (WebCore::executeInsertLineBreak):
61945         (WebCore::supportedFromMenuOrKeyBinding):
61946         (WebCore::CommandEntry::):
61947
61948 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
61949
61950         Reviewed by Darin.
61951
61952         http://bugs.webkit.org/show_bug.cgi?id=14555
61953         action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
61954
61955         http://bugs.webkit.org/show_bug.cgi?id=14774
61956         Submitted data only includes first input item
61957
61958         Reworked encoding of mailto URLs to match other browsers.
61959         Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
61960
61961         Tests: fast/forms/mailto/advanced-get.html
61962                fast/forms/mailto/advanced-put.html
61963                fast/forms/mailto/get-multiple-items-text-plain.html
61964                fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
61965                fast/forms/mailto/get-multiple-items.html
61966                fast/forms/mailto/get-non-ascii.html
61967                fast/forms/mailto/get-non-ascii-text-plain.html
61968                fast/forms/mailto/get-overwrite-query.html
61969                fast/forms/mailto/post-append-query.html
61970                fast/forms/mailto/post-multiple-items-multipart-form-data.html
61971                fast/forms/mailto/post-multiple-items-text-plain.html
61972                fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
61973                fast/forms/mailto/post-multiple-items.html
61974
61975         * html/HTMLFormElement.cpp:
61976         (WebCore::HTMLFormElement::submit):
61977         * loader/FrameLoader.cpp:
61978         (WebCore::FrameLoader::submitForm):
61979
61980 2008-01-02  Mark Rowe  <mrowe@apple.com>
61981
61982         Autotools build fix.
61983
61984         * GNUmakefile.am: Remove files before generating them, not after.
61985
61986 2008-01-02  Mark Rowe  <mrowe@apple.com>
61987
61988         Rubber-stamped by Alp Toker.
61989
61990         Add missing dependencies to some GNUmakefile.am rules.
61991
61992         * GNUmakefile.am:
61993
61994 2008-01-02  Mark Rowe  <mrowe@apple.com>
61995
61996         Reviewed by Alp Toker.
61997
61998         Autotools build fix.  Make can expand $@ to any of the targets for the rule,
61999         while we always want to use the name of the .cpp file as the output file.
62000
62001         * GNUmakefile.am:
62002
62003 2008-01-02  Luca Bruno  <lethalman88@gmail.com>
62004
62005         Reviewed by Alp Toker.
62006
62007         http://bugs.webkit.org/show_bug.cgi?id=16115
62008         [GTK] ContextMenu and ContextMenuItem lacks an implementation
62009
62010         Add context menu support.
62011
62012         Based on a patch by Holger Freyther.
62013
62014         * platform/gtk/ContextMenuGtk.cpp:
62015         (WebCore::menuItemActivated):
62016         (WebCore::ContextMenu::ContextMenu):
62017         (WebCore::ContextMenu::~ContextMenu):
62018         (WebCore::ContextMenu::appendItem):
62019         (WebCore::ContextMenu::setPlatformDescription):
62020         (WebCore::ContextMenu::releasePlatformDescription):
62021         * platform/gtk/ContextMenuItemGtk.cpp:
62022         (WebCore::ContextMenuItem::ContextMenuItem):
62023         (WebCore::ContextMenuItem::~ContextMenuItem):
62024         (WebCore::ContextMenuItem::releasePlatformDescription):
62025         (WebCore::ContextMenuItem::type):
62026         (WebCore::ContextMenuItem::action):
62027         (WebCore::ContextMenuItem::setAction):
62028         (WebCore::ContextMenuItem::platformSubMenu):
62029         (WebCore::ContextMenuItem::setSubMenu):
62030         (WebCore::ContextMenuItem::setChecked):
62031         (WebCore::ContextMenuItem::setEnabled):
62032
62033 2008-01-02  Alp Toker  <alp@atoker.com>
62034
62035         GTK+ autotools build fix. Track changes in r29073.
62036
62037         * GNUmakefile.am:
62038
62039 2008-01-01  Darin Adler  <darin@apple.com>
62040
62041         - fix release build
62042
62043         * bindings/js/kjs_binding.cpp:
62044         (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
62045         Removed default so we get a warning if there's a missing case.
62046
62047 2008-01-01  David D. Kilzer  <ddkilzer@webkit.org>
62048
62049         Scripting MIME Types application/ecmascript, application/javascript not viewable
62050         <http://bugs.webkit.org/show_bug.cgi?id=11063>
62051
62052         Reviewed by Darin.
62053
62054         This patch consolidates the list of acceptable MIME types for JavaScript
62055         source into the MIMETypeRegistry class, and replaces checks for these
62056         types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
62057
62058         No tests added since viewing JavaScript source is not testable.
62059
62060         * dom/DOMImplementation.cpp:
62061         (WebCore::DOMImplementation::isTextMIMEType): Use
62062         MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
62063         hard-coded MIME type, "application/x-javascript".
62064
62065         * html/HTMLScriptElement.cpp:
62066         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
62067         JavaScript MIME types from here to
62068         MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
62069
62070         * platform/MIMETypeRegistry.cpp:
62071         (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
62072         MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
62073         (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
62074         hard-coded MIME type, "application/x-javascript", from the list.
62075         (WebCore::initialiseMIMETypeRegistry): Initialise
62076         supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
62077         with values in supportedJavaScriptMIMETypes.
62078         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
62079
62080         * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
62081
62082 2008-01-01  Sam Weinig  <sam@webkit.org>
62083
62084         Reviewed by Darin.
62085
62086         Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
62087         Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
62088
62089         - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
62090         - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
62091         - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
62092
62093         Tests: fast/dom/DOMException/EventException.html
62094                fast/dom/DOMException/RangeException.html
62095                fast/dom/DOMException/XPathException.html
62096                http/tests/xmlhttprequest/XMLHttpRequestException.html
62097                svg/custom/SVGException.html
62098
62099         * DerivedSources.make:
62100         * WebCore.pro:
62101         * WebCore.vcproj/WebCore.vcproj:
62102         * WebCore.xcodeproj/project.pbxproj:
62103         * WebCoreSources.bkl:
62104         * bindings/js/JSSVGMatrixCustom.cpp:
62105         (WebCore::JSSVGMatrix::inverse):
62106         (WebCore::JSSVGMatrix::rotateFromVector):
62107         * bindings/js/kjs_binding.cpp:
62108         (KJS::setDOMException):
62109         * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
62110         in the IDL as the ObjC bindings do.
62111         * bindings/scripts/CodeGeneratorObjC.pm:
62112         * dom/DOMCoreException.cpp: Removed.
62113         * dom/DOMCoreException.h:
62114         (WebCore::DOMCoreException::DOMCoreException):
62115         * dom/DOMCoreException.idl:
62116         * dom/Event.h:
62117         * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
62118         (WebCore::EventException::EventException):
62119         (WebCore::EventException::):
62120         * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
62121         * dom/EventTargetNode.cpp:
62122         (WebCore::EventTargetNode::dispatchEvent):
62123         * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
62124         (WebCore::ExceptionBase::ExceptionBase):
62125         (WebCore::ExceptionBase::toString):
62126         * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
62127         (WebCore::ExceptionBase::code):
62128         * dom/ExceptionCode.cpp:
62129         (WebCore::getExceptionCodeDescription):
62130         * dom/ExceptionCode.h:
62131         * dom/Range.cpp:
62132         (WebCore::Range::insertNode):
62133         (WebCore::Range::checkNodeWOffset):
62134         (WebCore::Range::checkNodeBA):
62135         (WebCore::Range::selectNode):
62136         (WebCore::Range::selectNodeContents):
62137         (WebCore::Range::surroundContents):
62138         * dom/RangeException.h:
62139         (WebCore::RangeException::RangeException):
62140         (WebCore::RangeException::):
62141         * dom/RangeException.idl:
62142         * page/DOMWindow.idl:
62143         * svg/SVGColor.cpp:
62144         (WebCore::SVGColor::setRGBColor):
62145         * svg/SVGException.h:
62146         (WebCore::SVGException::SVGException):
62147         (WebCore::SVGException::):
62148         * svg/SVGException.idl:
62149         * svg/SVGLocatable.cpp:
62150         (WebCore::SVGLocatable::getTransformToElement):
62151         * xml/XMLHttpRequest.cpp:
62152         (WebCore::XMLHttpRequest::dispatchEvent):
62153         (WebCore::XMLHttpRequest::open):
62154         (WebCore::XMLHttpRequest::send):
62155         * xml/XMLHttpRequest.h:
62156         * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
62157         (WebCore::XMLHttpRequestException::XMLHttpRequestException):
62158         (WebCore::XMLHttpRequestException::):
62159         * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
62160         * xml/XPathEvaluator.h:
62161         * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
62162         (WebCore::XPathException::XPathException):
62163         (WebCore::XPathException::):
62164         * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
62165         * xml/XPathParser.cpp:
62166         (WebCore::XPath::Parser::parseStatement):
62167         * xml/XPathResult.cpp:
62168         (WebCore::XPathResult::convertTo):
62169         (WebCore::XPathResult::numberValue):
62170         (WebCore::XPathResult::stringValue):
62171         (WebCore::XPathResult::booleanValue):
62172         (WebCore::XPathResult::singleNodeValue):
62173         (WebCore::XPathResult::snapshotLength):
62174         (WebCore::XPathResult::iterateNext):
62175         (WebCore::XPathResult::snapshotItem):
62176
62177 2008-01-01  Sam Weinig  <sam@webkit.org>
62178
62179         Remove JSDomExceptionConstructor.lut.h from clean step
62180         as it no longer exists.
62181
62182         * GNUmakefile.am:
62183
62184 2008-01-01  Dan Bernstein  <mitz@apple.com>
62185
62186         - Windows build fix
62187
62188         * WebCore.vcproj/WebCore.vcproj:
62189
62190 2008-01-01  Sam Weinig  <sam@webkit.org>
62191
62192         Try again to fix the builds
62193
62194         * DerivedSources.make:
62195
62196 2008-01-01  Sam Weinig  <sam@webkit.org>
62197
62198         Fix non-mac builds.
62199
62200         * WebCore.pro:
62201         * WebCore.vcproj/WebCore.vcproj:
62202         * WebCoreSources.bkl:
62203
62204 2008-01-01  Eric Seidel  <eric@webkit.org>
62205
62206         Reviewed by Alexey.
62207
62208         Don't replace \ with / in data: urls
62209         http://bugs.webkit.org/show_bug.cgi?id=16692
62210
62211         Test: fast/loader/url-data-replace-backslash.html
62212
62213         * platform/KURL.cpp:
62214         (WebCore::KURL::init):
62215
62216 2008-01-01  Alp Toker  <alp@atoker.com>
62217
62218         GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
62219         correct parameter to AM_INIT_AUTOMAKE.
62220
62221         * GNUmakefile.am:
62222
62223 2007-12-31  Sam Weinig  <sam@webkit.org>
62224
62225         Reviewed by Darin.
62226
62227         Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
62228         Acid3 expects ExeceptionCode constants to be defined on DOMException objects
62229
62230         - Make DOMException a real JS object.
62231
62232         Test: fast/dom/DOMException/prototype-object.html
62233
62234         * DerivedSources.make:
62235         * WebCore.xcodeproj/project.pbxproj:
62236
62237         This is no longer needed as the autogenerated classes now includes the
62238         constructor.
62239         * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
62240         * bindings/js/JSDOMExceptionConstructor.h: Removed.
62241
62242         Create on demand and use the new class for DOMExceptions.
62243         * bindings/js/kjs_binding.cpp:
62244         (KJS::setDOMException):
62245
62246         Remove no longer needed custom constructor getter.
62247         * bindings/js/kjs_window.cpp:
62248         (KJS::Window::getValueProperty):
62249
62250         Don't expose DOMCoreException as the name of class by special casing
62251         the user visible class name to be DOMException.
62252         * bindings/scripts/CodeGeneratorJS.pm:
62253
62254         The DOMException class/file needs to be named DOMCoreException because there is
62255         name conflict with one of the Objective-C bindings classes.  It should be renamed
62256         to DOMException when the Objective-C bindings are moved into WebKit.
62257         * dom/DOMCoreException.cpp: Added.
62258         (WebCore::DOMCoreException::DOMCoreException):
62259         (WebCore::DOMCoreException::toString):
62260         * dom/DOMCoreException.h: Added.
62261         (WebCore::DOMCoreException::):
62262         (WebCore::DOMCoreException::code):
62263         (WebCore::DOMCoreException::name):
62264         (WebCore::DOMCoreException::message):
62265         * dom/DOMCoreException.idl: Added.
62266         * page/DOMWindow.idl:
62267
62268 2007-12-31  Sam Weinig  <sam@webkit.org>
62269
62270         Re-enable querySelector and querySelectorAll and touch the necessary files to not
62271         kill the windows build.
62272
62273         * WebCore.vcproj/build-generated-files.sh:
62274         * bindings/scripts/CodeGeneratorCOM.pm:
62275         * dom/Document.idl:
62276         * dom/Element.idl:
62277
62278 2007-12-31  Darin Adler  <darin@apple.com>
62279
62280         - fix Windows build
62281
62282         * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
62283         up as pure virtual functions. Sam can fix this later.
62284         * dom/Element.idl: Ditto.
62285
62286 2007-12-31  Dan Bernstein  <mitz@apple.com>
62287
62288         Reviewed by Darin Adler.
62289
62290         - fix http://bugs.webkit.org/show_bug.cgi?id=14134
62291           <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
62292
62293         Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
62294
62295         * dom/Node.cpp:
62296         (WebCore::Node::attach): Added code to check if this node's renderer
62297         has become the "previous renderer" of any sibling text node, and if so,
62298         ensure that that node gets a renderer if it now needs one.
62299         (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
62300         node is not attached.
62301
62302 2007-12-31  Darin Adler  <darin@apple.com>
62303
62304         Reviewed by Mitz.
62305
62306         - fix http://bugs.webkit.org/show_bug.cgi?id=16641
62307           Acid3 reveals HTMLFormElement.elements fails to update when element name changes
62308
62309         Test: fast/dom/HTMLFormElement/elements-not-in-document.html
62310
62311         This was a bug specific to forms that are not in the document tree.
62312         The fix was to change the code to increment the document version number to match
62313         up with other document change tracking. Maybe at some point we can clean these up
62314         so we don't have so many competing change notification systems.
62315
62316         * dom/ContainerNode.cpp:
62317         (WebCore::ContainerNode::replaceChild): Removed bogus comment.
62318         (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
62319         call here, since this code path bypasses the subtree-modified event code.
62320
62321         * dom/Element.cpp:
62322         (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
62323         collections are for things in the document.
62324         (WebCore::Element::setAttributeMap): Ditto.
62325
62326         * dom/EventTargetNode.cpp:
62327         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
62328         incDOMTreeVersion here; covers most cases of tree structure changes.
62329
62330         * dom/Node.cpp:
62331         (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
62332         has nothing to do with changes to the DOM tree!
62333         (WebCore::Node::detach): Ditto.
62334
62335         * html/HTMLFormElement.cpp:
62336         (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
62337         This is handled at a lower level and doesn't need to be here.
62338         (WebCore::HTMLFormElement::removeFormElement): Ditto.
62339
62340 2007-12-31  Henry Mason  <hmason@mac.com>
62341
62342         Reviewed by Darin.
62343
62344         Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
62345         Support for MessageEvent and cross-domain messaging
62346
62347         Test: http/tests/messaging/cross-domain-message-send.html
62348
62349         * DerivedSources.make:
62350         * WebCore.pro:
62351         * WebCore.vcproj/WebCore.vcproj:
62352         * WebCore.xcodeproj/project.pbxproj:
62353         * WebCoreSources.bkl:
62354         * bindings/js/JSDOMWindowCustom.cpp:
62355         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
62356         postMessage function.
62357         (WebCore::JSDOMWindow::postMessage):
62358         * bindings/js/JSEventCustom.cpp:
62359         (WebCore::toJS):
62360         * dom/Event.cpp:
62361         (WebCore::Event::isMessageEvent):
62362         * dom/Event.h:
62363         * dom/EventNames.h: New event name
62364         * dom/MessageEvent.cpp: Added.
62365         * dom/MessageEvent.h: Added.
62366         * dom/MessageEvent.idl: Added.
62367         * page/DOMWindow.cpp:
62368         (WebCore::DOMWindow::postMessage): Added.
62369         * page/DOMWindow.h:
62370         * page/DOMWindow.idl:
62371
62372 2007-12-31  Darin Adler  <darin@apple.com>
62373
62374         Suggested by Antti.
62375
62376         - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
62377
62378         * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
62379         * WebCore.vcproj/build-generated-files.sh: Ditto.
62380
62381 2007-12-30  Alp Toker  <alp@atoker.com>
62382
62383         Reviewed by Dan Bernstein.
62384
62385         Silence warning.
62386
62387         * dom/NodeList.h:
62388
62389 2007-12-30  Sam Weinig  <sam@webkit.org>
62390
62391         Reviewed by Oliver Hunt.
62392
62393         Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
62394         Variable names can be enumerated across domains
62395         <rdar://problem/5640454>
62396
62397         Test: http/tests/security/cross-frame-access-enumeration.html
62398
62399         * bindings/js/kjs_window.cpp:
62400         (KJS::Window::getPropertyNames): Override method to test same-origin policy.
62401         * bindings/js/kjs_window.h:
62402
62403 2007-12-30  Sam Weinig  <sam@webkit.org>
62404
62405         Reviewed by Oliver Hunt.
62406
62407         Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
62408         event instanceof MouseEvent throws exception
62409
62410         Add JS constructors for all the Event types.
62411
62412         Test: fast/events/event-instanceof.html
62413
62414         * WebCore.xcodeproj/project.pbxproj:
62415         * dom/KeyboardEvent.idl:
62416         * dom/MouseEvent.idl:
62417         * dom/MutationEvent.idl:
62418         * dom/OverflowEvent.idl:
62419         * dom/ProgressEvent.idl:
62420         * dom/TextEvent.idl:
62421         * dom/UIEvent.idl:
62422         * dom/WheelEvent.idl:
62423         * page/DOMWindow.idl:
62424
62425 2007-12-30  David Kilzer  <ddkilzer@webkit.org>
62426
62427         Reviewed by Darin.
62428
62429         - fix http://bugs.webkit.org/show_bug.cgi?id=15359
62430           JPEG image not shown when height is specified as percentage inside a table
62431
62432         The problem occurs when a replaced element (image, canvas, etc.) with
62433         a percent-height attribute is contained by a table cell with an auto-
62434         or percent-height attribute.  If there are no other conditions to cause
62435         the table cell's height to expand, an available height of zero will
62436         always be returned.  In these cases, the intrinsic height of the
62437         replaced element should be used if it is greater than the available
62438         height of the table cell.
62439
62440         Tests: fast/replaced/table-percent-height.html
62441                tables/mozilla/bugs/bug137388-1.html
62442                tables/mozilla/bugs/bug137388-2.html
62443
62444         * rendering/RenderBox.cpp:
62445         (WebCore::RenderBox::calcReplacedHeightUsing):
62446
62447 2007-12-30  Luca Bruno  <lethalman88@gmail.com>
62448
62449         Reviewed by Alp Toker.
62450
62451         http://bugs.webkit.org/show_bug.cgi?id=16099
62452         Crash in CURL for empty POST
62453
62454         We have to set POST even when the data is empty, otherwise cURL will
62455         hang while waiting for a response.
62456
62457         * platform/network/curl/ResourceHandleManager.cpp
62458         (ResourceHandleManager::setupPOST): allow empty POST
62459
62460 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
62461
62462         Reviewed by Alp Toker.
62463
62464         Move all SVG related stuff inside SVG block. Don't include
62465         SVGNames, SVGElementFactory, and XLinkNames when SVG is not
62466         enabled
62467
62468         * GNUmakefile.am:
62469
62470 2007-12-29  Alexey Proskuryakov  <ap@webkit.org>
62471
62472         Reviewed by Darin.
62473
62474         http://bugs.webkit.org/show_bug.cgi?id=14428
62475         FCKEditor: Images disappear on drag/drop and copy/paste
62476
62477         Test: editing/pasteboard/drag-image-in-about-blank-frame.html
62478
62479         * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
62480         base URL, just like we don't use an empty one.
62481
62482 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
62483
62484         Reviewed by Alp Toker.
62485
62486         http://bugs.webkit.org/show_bug.cgi?id=16669
62487         autotools update and fixes
62488
62489         Autotools update and database/icon database inclusion guard fixes
62490
62491         * GNUmakefile.am:
62492           - Update autotools config as per -r29012 changes
62493           - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
62494         * dom/Document.cpp:
62495         * loader/icon/IconDatabase.h:
62496         * page/DOMWindow.cpp:
62497         * page/InspectorController.cpp:
62498         * page/Settings.cpp:
62499         * storage/Database.h:
62500           - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
62501
62502 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
62503
62504         Reviewed by Alexey.
62505
62506         Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
62507         (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
62508
62509         * svg/SVGFont.cpp:
62510         (WebCore::Font::drawGlyphsWithSVGFont):
62511
62512 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
62513
62514         Reviewed by Oliver.
62515
62516         Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
62517         SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
62518
62519         * platform/graphics/FontData.cpp:
62520         (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
62521         (WebCore::FontData::ascent):
62522         (WebCore::FontData::descent):
62523         * platform/graphics/FontData.h:
62524         * svg/SVGFont.cpp:
62525         (WebCore::isVerticalWritingMode): Add helper function.
62526         (WebCore::Font::drawGlyphsWithSVGFont):
62527         * svg/SVGFontElement.cpp:
62528         (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
62529         * svg/SVGGlyphElement.cpp:
62530         (WebCore::parseArabicForm): Helper function.
62531         (WebCore::parseOrientation): Ditto.
62532         (WebCore::parsePathData): Ditto.
62533         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
62534         * svg/SVGGlyphElement.h:
62535         (WebCore::SVGGlyphElement::rendererIsNeeded):
62536
62537 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
62538
62539         Reviewed by Oliver.
62540
62541         Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
62542         SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
62543
62544         * svg/SVGAnimationElement.cpp:
62545         (WebCore::SVGAnimationElement::parseMappedAttribute):
62546         * svg/SVGParserUtilities.cpp:
62547         (WebCore::parseDelimitedString):
62548         * svg/SVGParserUtilities.h:
62549
62550 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
62551
62552         Reviewed by Maciej.
62553
62554         Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
62555         Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
62556
62557         To optimize for the common case ('FontData' used for HTML rendering) it feels
62558         better to hold one OwnPtr in FontData, than several floats.
62559
62560         Parse all <font> attributes in SVGFontFaceElement::createFontData.
62561
62562         * platform/graphics/FontData.cpp:
62563         (WebCore::SVGFontData::SVGFontData):
62564         (WebCore::FontData::FontData):
62565         (WebCore::FontData::ascent):
62566         (WebCore::FontData::descent):
62567         * platform/graphics/FontData.h:
62568         (WebCore::FontData::isSVGFont):
62569         (WebCore::FontData::svgFontData):
62570         * svg/SVGFont.cpp:
62571         (WebCore::Font::drawGlyphsWithSVGFont):
62572         * svg/SVGFontElement.cpp:
62573         * svg/SVGFontElement.h:
62574         (WebCore::SVGFontElement::rendererIsNeeded):
62575         * svg/SVGFontFaceElement.cpp:
62576         (WebCore::SVGFontFaceElement::unitsPerEm):
62577         (WebCore::SVGFontFaceElement::createFontData):
62578
62579 2007-12-28  Darin Adler  <darin@apple.com>
62580
62581         - try to fix Windows and WX builds (broken by SVG Fonts check-in)
62582
62583         * platform/graphics/win/FontWin.cpp:
62584         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
62585         I can't see how it can be right to require the font size for ascent and descent,
62586         but not for other metrics functions in FontData.
62587
62588         * platform/graphics/wx/FontWx.cpp:
62589         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
62590
62591 2007-12-28  Dan Bernstein  <mitz@apple.com>
62592
62593         Reviewed by Mark Rowe.
62594
62595         - fix http://bugs.webkit.org/show_bug.cgi?id=16650
62596           <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
62597
62598         Covered by existing pixel tests.
62599
62600         * platform/graphics/mac/FontMac.mm:
62601         (WebCore::Font::drawComplexText): Corrected to maintain the style
62602         information in the adjusted text run when passing it to
62603         ATSUILayoutParameters. Prior to r28298 the style was passed separately.
62604
62605 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
62606
62607         Build fix, not reviewed.
62608
62609         Add wtf/OwnPtr.h include, to fix --svg-fonts build.
62610
62611         * css/SVGCSSFontFace.h:
62612
62613 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
62614
62615         Reviewed by Eric.
62616
62617         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
62618
62619         Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
62620         Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
62621         are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
62622
62623         Limited to single char <-> glyph mapping, no ligatures supported yet.
62624         (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
62625
62626         Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
62627
62628         No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
62629         attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
62630
62631         * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
62632         * WebCore.pro: Updated build system.
62633         * WebCore.vcproj/WebCore.vcproj: Ditto.
62634         * WebCore.xcodeproj/project.pbxproj: Ditto.
62635         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
62636         * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
62637         (WebCore::createElementClassMap):
62638         * bindings/objc/DOMInternal.h: Ditto.
62639         * bindings/objc/DOMSVG.h: Ditto.
62640         * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
62641         * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
62642         (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
62643         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
62644         (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
62645         * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
62646         (WebCore::CSSFontSelector::addFontFaceRule):
62647         * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
62648         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
62649         (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
62650         (WebCore::SVGCSSFontFace::isValid):
62651         (WebCore::SVGCSSFontFace::addSource):
62652         (WebCore::SVGCSSFontFace::getFontData):
62653         * css/SVGCSSFontFace.h: Added.
62654         * platform/graphics/cg/PathCG.cpp:
62655         (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
62656         * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
62657         (WebCore::Font::ascent): Pass font size to FontData::ascent() call
62658         (WebCore::Font::descent): Pass font size to FontData::descent() call
62659         (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
62660         (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
62661         * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
62662         (WebCore::TextRun::TextRun):
62663         (WebCore::TextRun::referencingRenderObject):
62664         (WebCore::TextRun::setReferencingRenderObject):
62665         * platform/graphics/FontData.cpp:
62666         (WebCore::FontData::FontData):
62667         (WebCore::FontData::ascent):
62668         (WebCore::FontData::descent):
62669         * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
62670         (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
62671         (WebCore::FontData::svgFontFace):
62672         * rendering/SVGInlineTextBox.cpp:
62673         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
62674         * rendering/SVGRootInlineBox.cpp:
62675         (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
62676         * svg/SVGFont.cpp: Added.
62677         (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
62678         * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
62679         (WebCore::SVGFontElement::SVGFontElement):
62680         (WebCore::SVGFontElement::~SVGFontElement):
62681         (WebCore::SVGFontElement::parseMappedAttribute):
62682         (WebCore::SVGFontElement::collectGlyphs):
62683         (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
62684         * svg/SVGFontElement.h: Added.
62685         (WebCore::GlyphHash::hash):
62686         (WebCore::GlyphHash::equal):
62687         (WebCore::GlyphHashTraits::deletedValue):
62688         (WebCore::SVGFontElement::rendererIsNeeded):
62689         (WebCore::SVGFontElement::contextElement):
62690         * svg/SVGFontElement.idl: Added.
62691         * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
62692         (WebCore::SVGFontFaceElement::unitsPerEm):
62693         (WebCore::SVGFontFaceElement::fontFamily):
62694         (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
62695         (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
62696         (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
62697         (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
62698         * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
62699         * svg/SVGFontFaceElement.idl: Ditto.
62700         * svg/SVGFontFaceFormatElement.cpp: Ditto.
62701         * svg/SVGFontFaceFormatElement.h: Ditto.
62702         * svg/SVGFontFaceFormatElement.idl: Ditto.
62703         * svg/SVGFontFaceNameElement.cpp: Ditto.
62704         * svg/SVGFontFaceNameElement.h: Ditto.
62705         * svg/SVGFontFaceNameElement.idl: Ditto.
62706         * svg/SVGFontFaceSrcElement.cpp: Ditto.
62707         * svg/SVGFontFaceSrcElement.h: Ditto.
62708         * svg/SVGFontFaceSrcElement.idl: Ditto.
62709         * svg/SVGFontFaceUriElement.cpp: Ditto.
62710         * svg/SVGFontFaceUriElement.h: Ditto.
62711         * svg/SVGFontFaceUriElement.idl: Ditto.
62712         * svg/SVGDefinitionSrcElement.cpp: Ditto.
62713         * svg/SVGDefinitionSrcElement.h: Ditto.
62714         * svg/SVGDefinitionSrcElement.idl: Ditto.
62715         * svg/SVGGlyphElement.cpp: Added.
62716         (WebCore::SVGGlyphElement::SVGGlyphElement):
62717         (WebCore::SVGGlyphElement::parseMappedAttribute):
62718         (WebCore::SVGGlyphElement::childrenChanged):
62719         * svg/SVGGlyphElement.h: Added.
62720         (WebCore::SVGGlyphElement::rendererIsNeeded):
62721         (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
62722         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
62723         * svg/SVGGlyphElement.idl: Added.
62724         * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
62725         (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
62726         (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
62727         (WebCore::SVGMissingGlyphElement::childrenChanged):
62728         * svg/SVGMissingGlyphElement.h: Added.
62729         (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
62730         * svg/SVGMissingGlyphElement.idl: Added.
62731         * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
62732
62733 2007-12-27  Dan Bernstein  <mitz@apple.com>
62734
62735         Reviewed by Alexey Proskuryakov.
62736
62737         - fix http://bugs.webkit.org/show_bug.cgi?id=16628
62738           ASSERTION FAILED: m_resizeLayer (running layout tests)
62739
62740         * rendering/RenderLayer.cpp:
62741         (WebCore::RenderLayer::~RenderLayer): Avoid calling
62742         EventHandler::resizeLayerDestroyed() if the document is being destroyed.
62743
62744 2007-12-27  Dan Bernstein  <mitz@apple.com>
62745
62746         Reviewed by Oliver Hunt.
62747
62748         - fix http://bugs.webkit.org/show_bug.cgi?id=16603
62749           <rdar://problem/5664199> Crash when resizing text field
62750
62751         Test: fast/layers/resize-layer-deletion-crash.html
62752
62753         The event handler has only a weak reference to the layer that is
62754         currently in resize mode, so it is the layer's responsibility to let
62755         the event handler know if it has been destroyed while in that mode.
62756
62757         * page/EventHandler.cpp:
62758         (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
62759         m_resizeLayer to 0.
62760         * page/EventHandler.h:
62761         * rendering/RenderLayer.cpp:
62762         (WebCore::RenderLayer::~RenderLayer): Added a call to
62763         EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
62764
62765 2007-12-27  Collin Jackson  <webkit@collinjackson.com>
62766
62767         Reviewed by Sam Weinig.
62768
62769         http://bugs.webkit.org/show_bug.cgi?id=16539
62770         <rdar://problem/5659269>
62771
62772         The same-origin check was missing in the implementation of 
62773         setTimeout, setInterval, addEventListener, and removeEventListener.
62774
62775         Suppose <http://www.badguy.com/> contains an iframe to 
62776         <http://www.goodguy.com/>. Now www.badguy.com can steal
62777         www.goodguy.com cookies by running this code:
62778
62779         setTimeout.call(frames[0], "alert(document.cookie)", 1000);
62780
62781         This patch changes the behavior so that setTimeout to does 
62782         nothing and returns an undefined value if the caller is not
62783         permitted to script the window whose setTimeout method is being
62784         called. The same applies to setInterval, addEventListener, and 
62785         removeEventListener.
62786
62787         Tests: http/tests/security/cross-frame-access-call.html
62788
62789         * bindings/js/kjs_window.cpp:
62790         (KJS::WindowProtoFuncSetTimeout::callAsFunction)
62791         (KJS::WindowProtoFuncSetInterval::callAsFunction)
62792         (KJS::WindowProtoFuncAddEventListener::callAsFunction)
62793         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
62794
62795 2007-12-27  Dan Bernstein  <mitz@apple.com>
62796
62797         Reviewed by Dave Hyatt and Sam Weinig.
62798
62799         - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
62800
62801         Test: fast/layers/add-layer-with-nested-stacking.html
62802         Test: fast/layers/remove-layer-with-nested-stacking.html
62803
62804         * rendering/RenderLayer.cpp:
62805         (WebCore::RenderLayer::addChild): If the new child is overflow-only
62806         but has children of its own, dirty the stacking context's z-order lists
62807         since the grandchildren might need to be in them.
62808         (WebCore::RenderLayer::removeChild): Similarly for the old child.
62809
62810 2007-12-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
62811
62812         Reviewed by Alp Toker.
62813
62814         http://bugs.webkit.org/show_bug.cgi?id=16353
62815         [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
62816
62817         Added the flags mentioned in the bug only when doing 'debug'
62818         builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
62819
62820         * GNUmakefile.am:
62821         * WebCore.pro:
62822
62823 2007-12-27  Dan Bernstein  <mitz@apple.com>
62824
62825         Reviewed by Eric Seidel.
62826
62827         - fix http://bugs.webkit.org/show_bug.cgi?id=16490
62828           ASSERT in ~FrameView while viewing/reloading WICD test case
62829
62830         Test: fast/dynamic/paused-event-dispatch.html
62831
62832         * page/FrameView.cpp:
62833         (WebCore::FrameView::~FrameView):
62834         (WebCore::FrameView::layout): Changed to always pause event dispatch and
62835         always resume event dispatch, regardless of whether the post-layout
62836         task timer is active. However, if it is active, assert that event
62837         dispatch is still paused.
62838
62839 2007-12-27  Alexey Proskuryakov  <ap@webkit.org>
62840
62841         Reviewed by Maciej.
62842
62843         http://bugs.webkit.org/show_bug.cgi?id=14500
62844         need to be more generous about charset declaration with meta tag
62845         
62846         http://bugs.webkit.org/show_bug.cgi?id=12526
62847         <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
62848
62849         <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
62850
62851         <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
62852
62853         Tests: fast/encoding/ahram-org-eg.html
62854                fast/encoding/bandai-co-jp-releases.html
62855                fast/encoding/floraexpress-ru.html
62856                fast/encoding/hanarei-blog32-fc2-com.html
62857                fast/encoding/yahoo-mail.html
62858
62859         * loader/TextResourceDecoder.cpp:
62860         (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
62861         seen at least 512 bytes of input.
62862
62863 2007-12-26  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
62864
62865         Reviewed by Alp Toker.
62866
62867         http://bugs.webkit.org/show_bug.cgi?id=16390
62868         Use autotools or GNU make as the build system for the GTK port
62869
62870         * GNUmakefile.am: Added.
62871
62872 2007-12-26  Alexey Proskuryakov  <ap@webkit.org>
62873
62874         Reviewed by Sam Weinig.
62875
62876         http://bugs.webkit.org/show_bug.cgi?id=16609
62877         Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
62878
62879         * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
62880
62881 2007-12-26  Mark Rowe  <mrowe@apple.com>
62882
62883         Windows build fix.
62884
62885         * platform/Threading.h:
62886
62887 2007-12-25  Rob Buis  <buis@kde.org>
62888
62889         Reviewed by Eric.
62890
62891         http://bugs.webkit.org/show_bug.cgi?id=15514
62892         <clipPath> with <use> not respected
62893         http://bugs.webkit.org/show_bug.cgi?id=16557
62894         SVG circle elements have been clipped away completely, instead of partially.
62895
62896         Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
62897
62898         * svg/SVGClipPathElement.cpp:
62899         (WebCore::SVGClipPathElement::canvasResource):
62900         * svg/SVGStyledTransformableElement.h:
62901         (WebCore::SVGStyledTransformableElement::toClipPath):
62902         * svg/SVGUseElement.cpp:
62903         (WebCore::isDirectReference):
62904         (WebCore::SVGUseElement::toClipPath):
62905         * svg/SVGUseElement.h:
62906
62907 2007-12-25  Sam Weinig  <sam@webkit.org>
62908
62909         Reviewed by Eric Seidel.
62910
62911         Clean up the files relating to NodeLists.
62912
62913         * dom/ChildNodeList.cpp:
62914         (WebCore::ChildNodeList::ChildNodeList):
62915         (WebCore::ChildNodeList::length):
62916         (WebCore::ChildNodeList::item):
62917         (WebCore::ChildNodeList::nodeMatches):
62918         * dom/ChildNodeList.h:
62919         * dom/DynamicNodeList.cpp:
62920         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
62921         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
62922         (WebCore::DynamicNodeList::itemWithName):
62923         * dom/DynamicNodeList.h:
62924         (WebCore::DynamicNodeList::needsNotifications):
62925         * dom/NameNodeList.cpp:
62926         (WebCore::NameNodeList::NameNodeList):
62927         (WebCore::NameNodeList::rootNodeAttributeChanged):
62928         (WebCore::NameNodeList::nodeMatches):
62929         * dom/NameNodeList.h:
62930         * dom/NodeList.h:
62931         * dom/SelectorNodeList.h:
62932
62933 2007-12-25  Sam Weinig  <sam@webkit.org>
62934
62935         Fix non-mac builds.
62936
62937         * WebCore.pro:
62938         * WebCore.vcproj/WebCore.vcproj:
62939         * WebCoreSources.bkl:
62940
62941 2007-12-25  Sam Weinig  <sam@webkit.org>
62942
62943         Rubber stamped by Eric Seidel.
62944
62945         Move TagNodeList into its own file.
62946
62947         * WebCore.xcodeproj/project.pbxproj:
62948         * dom/Node.cpp:
62949         * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
62950         (WebCore::TagNodeList::TagNodeList):
62951         * dom/TagNodeList.h: Copied from dom/Node.cpp.
62952
62953 2007-12-25  Sam Weinig  <sam@webkit.org>
62954
62955         Reviewed by Eric Seidel.
62956
62957         Simplify the NodeList architecture.
62958         - Rename recursiveItem() to item(), since it is not recursive.
62959         - Make recursiveLength() iterative and rename to length().
62960         - Remove now unneeded overrides of item() and length() that used 
62961           to call the recursive variants.
62962
62963         * dom/ClassNodeList.cpp:
62964         * dom/ClassNodeList.h:
62965         * dom/DynamicNodeList.cpp:
62966         (WebCore::DynamicNodeList::length):
62967         (WebCore::DynamicNodeList::item):
62968         (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation 
62969         into the .cpp file since virtual methods can't be inlined.
62970         * dom/DynamicNodeList.h:
62971         * dom/NameNodeList.cpp:
62972         * dom/NameNodeList.h:
62973         * dom/Node.cpp:
62974
62975 2007-12-25  Alp Toker  <alp@atoker.com>
62976
62977         More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
62978         r28981.
62979
62980         * WebCore.pro:
62981         * WebCore.vcproj/WebCore.vcproj:
62982         * WebCoreSources.bkl:
62983
62984 2007-12-25  Alp Toker  <alp@atoker.com>
62985
62986         Win build fix for breakage introduced in r28981.
62987
62988         * WebCore.vcproj/WebCore.vcproj:
62989
62990 2007-12-25  Alp Toker  <alp@atoker.com>
62991
62992         Wx build fix for breakage introduced in r28981.
62993
62994         * WebCoreSources.bkl:
62995
62996 2007-12-25  Alp Toker  <alp@atoker.com>
62997
62998         GTK+/Qt build fix for breakage introduced in r28981.
62999
63000         * WebCore.pro:
63001
63002 2007-12-25  David Smith  <catfish.man@gmail.com> and Sam Weinig  <sam@webkit.org>
63003
63004         Reviewed by Oliver.
63005         
63006         - http://bugs.webkit.org/show_bug.cgi?id=16587
63007         Implement the most useful part of the W3C Selectors API.
63008
63009         * WebCore.xcodeproj/project.pbxproj:
63010         * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
63011         * dom/ChildNodeList.cpp:
63012         (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
63013         * dom/ChildNodeList.h:
63014         * dom/ClassNodeList.cpp:
63015         (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
63016         * dom/ClassNodeList.h:
63017         * dom/Document.idl: Add the new functions
63018         * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
63019         (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
63020         (WebCore::DynamicNodeList::~DynamicNodeList):
63021         (WebCore::DynamicNodeList::recursiveLength):
63022         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
63023         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
63024         (WebCore::DynamicNodeList::recursiveItem):
63025         (WebCore::DynamicNodeList::itemWithName):
63026         (WebCore::DynamicNodeList::rootNodeChildrenChanged):
63027         (WebCore::DynamicNodeList::Caches::Caches):
63028         (WebCore::DynamicNodeList::Caches::reset):
63029         * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
63030         (WebCore::DynamicNodeList::rootNodeAttributeChanged):
63031         * dom/Element.idl: Add the new functions
63032         * dom/NameNodeList.cpp: Change to being a DynamicNodeList
63033         (WebCore::NameNodeList::NameNodeList):
63034         * dom/NameNodeList.h:
63035         (WebCore::NameNodeList::rootNodeAttributeChanged):
63036         * dom/Node.cpp:
63037         (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
63038         (WebCore::Node::registerDynamicNodeList):
63039         (WebCore::Node::unregisterDynamicNodeList):
63040         (WebCore::Node::getElementsByName):
63041         (WebCore::Node::getElementsByClassName):
63042         (WebCore::Node::querySelector): new
63043         (WebCore::Node::querySelectorAll): new
63044         * dom/Node.h:
63045         * dom/NodeList.cpp: Removed.
63046         * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
63047         (WebCore::NodeList::NodeList):
63048         (WebCore::NodeList::~NodeList):
63049         * dom/SelectorNodeList.cpp: Added.
63050         (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
63051         * dom/SelectorNodeList.h: Added.
63052         * dom/StaticNodeList.cpp: Added.
63053         (WebCore::StaticNodeList::length):
63054         (WebCore::StaticNodeList::item):
63055         (WebCore::StaticNodeList::itemWithName):
63056         * dom/StaticNodeList.h: Added.
63057         (WebCore::StaticNodeList::StaticNodeList):
63058         (WebCore::StaticNodeList::~StaticNodeList):
63059
63060 2007-12-25  Mark Rowe  <mrowe@apple.com>
63061
63062         Reviewed by Sam Weinig.
63063
63064         Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
63065         http://bugs.webkit.org/show_bug.cgi?id=16596
63066
63067         This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
63068         of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
63069         access to a single ThreadSafeShared object.
63070
63071         The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
63072
63073         * platform/Threading.h:
63074         (WebCore::atomicIncrement):
63075         (WebCore::atomicDecrement):
63076         (WebCore::ThreadSafeShared::ThreadSafeShared):
63077         (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
63078         (WebCore::ThreadSafeShared::deref): Ditto.
63079         (WebCore::ThreadSafeShared::hasOneRef):
63080         (WebCore::ThreadSafeShared::refCount):
63081         (WebCore::ThreadSafeShared::isThreadSafe):
63082
63083 2007-12-24  Darin Adler  <darin@apple.com>
63084
63085         * platform/text/PlatformString.h: Removed now-incorrect comment.
63086         Added a comment about copy().
63087         * platform/text/StringImpl.h: Added a comment about copy().
63088
63089 2007-12-24  Darin Adler  <darin@apple.com>
63090
63091         Reviewed by Maciej.
63092
63093         - http://bugs.webkit.org/show_bug.cgi?id=16550
63094           make StringImpl immutable
63095
63096         I tried to keep the changes to a minimum. In some cases there is
63097         room for optimization -- I didn't try to add in the "single ref count"
63098         optimizations and there might be a tiny bit more string copying than
63099         we had before.
63100
63101         * WebCore.base.exp: Updated.
63102
63103         * dom/CharacterData.cpp:
63104         (WebCore::CharacterData::appendData): Changed to use String since
63105         StringImpl doesn't have mutating functions any more.
63106         (WebCore::CharacterData::insertData): Ditto.
63107         (WebCore::CharacterData::deleteData): Ditto.
63108         (WebCore::CharacterData::replaceData): Ditto.
63109         * dom/Text.cpp:
63110         (WebCore::Text::splitText): Changed to use substring instead of
63111         remove since StringImpl does't have mutating functions any more.
63112         * editing/CompositeEditCommand.cpp:
63113         (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
63114         to use String instead of StringImpl so we can use remove.
63115
63116         * platform/text/PlatformString.h: Removed newUninitialized.
63117         Added append that takes a character pointer and length.
63118
63119         * platform/text/String.cpp:
63120         (WebCore::String::insert): Added an implementation that does not
63121         rely on an underlying StringImpl function.
63122         (WebCore::String::append): Ditto.
63123         (WebCore::String::truncate): Ditto.
63124         (WebCore::String::remove): Ditto.
63125         (WebCore::String::charactersWithNullTermination): Added an
63126         implementation that uses the new StringImpl null termination feature,
63127         which does not require modifying a string.
63128
63129         * platform/text/StringImpl.cpp:
63130         (WebCore::isSpace): Fix comment.
63131         (WebCore::StringImpl::StringImpl): Added a new constructor that makes
63132         a string with a trailing null character.
63133         (WebCore::StringImpl::substring): Marked const.
63134         (WebCore::StringImpl::replace): Marked const; had to add quite a few
63135         const_cast. Also rewrote one of these to work without modifying the
63136         existing string.
63137
63138         * platform/text/StringImpl.h: Fixed a mistake where the empty string had
63139         m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
63140         for creating strings that have a trailing null character. Added a
63141         hasTerminatingNullCharacter function. Removed newUninitialized,
63142         charactersWithNullTermination, append, insert, truncate, and remove.
63143         Marked lots of other functions const.
63144
63145         * platform/text/TextCodecLatin1.cpp:
63146         (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
63147         newUninitialized.
63148         * platform/text/TextCodecUTF16.cpp:
63149         (WebCore::TextCodecUTF16::decode): Ditto.
63150         * platform/text/TextCodecUserDefined.cpp:
63151         (WebCore::TextCodecUserDefined::decode): Ditto.
63152
63153         * rendering/RenderStyle.cpp:
63154         (WebCore::RenderStyle::setContent): Changed to use String since
63155         StringImpl doesn't have mutating functions any more.
63156
63157 2007-12-24  Alexey Proskuryakov  <ap@webkit.org>
63158
63159         Reviewed by Oliver.
63160
63161         Fix fast/events/arrow-keys-on-body.html, failing on Windows.
63162
63163         * platform/win/KeyEventWin.cpp:
63164         (WebCore::isKeypadEvent):
63165         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
63166         Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
63167
63168 2007-12-23  Alexey Proskuryakov  <ap@webkit.org>
63169
63170         Fix Debug and Release QTMovieWin bulds.
63171
63172         * WebCore.vcproj/QTMovieWin.vcproj:
63173         * WebCore.vcproj/debug.vsprops:
63174         * WebCore.vcproj/debug_internal.vsprops:
63175         * WebCore.vcproj/release.vsprops:
63176         Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
63177         Build release import lib into \lib, not \bin.
63178
63179 2007-12-23  Alp Toker  <alp@atoker.com>
63180
63181         Reviewed by Holger Freyther.
63182
63183         http://bugs.webkit.org/show_bug.cgi?id=15382
63184         [CAIRO] Canvas pattern support
63185
63186         http://bugs.webkit.org/show_bug.cgi?id=16577
63187         Merge Cairo enhancements from Apollo project
63188
63189         Add support for canvas patterns.
63190
63191         Make Image::nativeImageForCurrentFrame() public.
63192
63193         Fix some typos along the way.
63194
63195         The globalAlpha canvas fixes are not included in this patch as
63196         they're slightly more intrusive and may conflict conceptually with
63197         GraphicsContext::setAlpha().
63198
63199         * html/CanvasPattern.cpp:
63200         (WebCore::CanvasPattern::CanvasPattern):
63201         (WebCore::CanvasPattern::~CanvasPattern):
63202         (WebCore::CanvasPattern::createPattern):
63203         * html/CanvasPattern.h:
63204         (WebCore::CanvasPattern::platformImage):
63205         * html/CanvasRenderingContext2D.cpp:
63206         (WebCore::CanvasRenderingContext2D::setShadow):
63207         (WebCore::CanvasRenderingContext2D::applyShadow):
63208         (WebCore::CanvasRenderingContext2D::drawImage):
63209         (WebCore::CanvasRenderingContext2D::createPattern):
63210         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
63211         (WebCore::CanvasRenderingContext2D::applyFillPattern):
63212         * platform/graphics/Image.h:
63213         (WebCore::Image::nativeImageForCurrentFrame):
63214
63215 2007-12-23  Kevin Ollivier  <kevino@theolliviers.com>
63216
63217         Reviewed by Eric Seidel.
63218
63219         Remove getWxBitmap as we have nativeImageForCurrentFrame now,
63220         and don't draw a border in fillRect.
63221
63222         * platform/graphics/BitmapImage.h:
63223         * platform/graphics/wx/GraphicsContextWx.cpp:
63224         (WebCore::GraphicsContext::fillRect):
63225         * platform/graphics/wx/ImageWx.cpp:
63226
63227 2007-12-23  Alp Toker  <alp@atoker.com>
63228
63229         Reviewed by Holger Freyther.
63230
63231         http://bugs.webkit.org/show_bug.cgi?id=16577
63232         Merge Cairo enhancements from Apollo project
63233
63234         This patch is based on initial merging work by Brent Fulgham. Adobe's
63235         code has been modified in a few places to better suit the existing
63236         coding style.
63237
63238         Implement more clipping and drawing functions.
63239
63240         Save and restore the fill rule manually when clipping.
63241
63242         Avoid image surface creation when the image buffer has height zero.
63243
63244         * platform/graphics/cairo/GraphicsContextCairo.cpp:
63245         (WebCore::GraphicsContext::clip):
63246         (WebCore::GraphicsContext::addInnerRoundedRectClip):
63247         (WebCore::GraphicsContext::addPath):
63248         (WebCore::GraphicsContext::clipOut):
63249         (WebCore::GraphicsContext::clipOutEllipseInRect):
63250         (WebCore::GraphicsContext::fillRoundedRect):
63251         * platform/graphics/cairo/ImageSourceCairo.cpp:
63252         (WebCore::ImageSource::createFrameAtIndex):
63253
63254 2007-12-23  Nikolas Zimmermann  <zimmermann@kde.org>
63255
63256         Reviewed by Mark.
63257
63258         Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
63259
63260         * bindings/objc/DOM.mm:
63261         (WebCore::createElementClassMap):
63262
63263 2007-12-22  Alp Toker  <alp@atoker.com>
63264
63265         GTK+ build fix
63266
63267         GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
63268         empty target flags for now.
63269
63270         Check GTK+, not GLib versions, since they are different.
63271
63272         * platform/gtk/PasteboardGtk.cpp:
63273         (WebCore::Pasteboard::documentFragment):
63274
63275 2007-12-22  Luca Bruno  <lethalman88@gmail.com>
63276
63277         Reviewed by Alp Toker.
63278
63279         http://bugs.webkit.org/show_bug.cgi?id=16311
63280         [Gtk] Copy rich text to clipboard as text/plain and text/html.
63281
63282         Hook into the WebView to get the correct clipboard object on the
63283         appropriate display. This is necessary because GTK+ does not have
63284         global clipboards.
63285
63286         * WebCore.pro:
63287         * platform/Pasteboard.h:
63288         (WebCore::Pasteboard::setHelper): added for GTK
63289         (WebCore::Pasteboard::m_helper): private added for GTK
63290         * platform/gtk/PasteboardGtk.cpp:
63291         (WebCore::PasteboardSelectionData): added to support GTK selection data callback
63292         (WebCore::clipboard_get_contents_cb): added
63293         (WebCore::clipboard_clear_contents_cb): added
63294         (WebCore::Pasteboard::~Pasteboard):
63295         (WebCore::Pasteboard::setHelper):
63296         (WebCore::Pasteboard::writeSelection): copy rich text
63297         (WebCore::Pasteboard::documentFragment): 
63298         (WebCore::Pasteboard::plainText): 
63299         * platform/gtk/PasteboardHelper.h: Added.
63300
63301 2007-12-22  Nikolas Zimmermann  <zimmermann@kde.org>
63302
63303         Reviewed by Oliver.
63304
63305         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
63306
63307         Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
63308         SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
63309         for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
63310         in Web Inspector.
63311
63312         * rendering/InlineBox.h:
63313         (WebCore::InlineBox::isSVGRootInlineBox):
63314         * rendering/SVGInlineTextBox.cpp:
63315         (WebCore::SVGInlineTextBox::svgRootInlineBox):
63316         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
63317         (WebCore::SVGInlineTextBox::selectionRect):
63318         * rendering/SVGRenderTreeAsText.cpp:
63319         (WebCore::writeSVGInlineTextBox):
63320         * rendering/SVGRootInlineBox.h:
63321         (WebCore::SVGRootInlineBox::isSVGRootInlineBox):
63322
63323 2007-12-22  Alp Toker  <alp@atoker.com>
63324
63325         LOW_BANDWIDTH_DISPLAY build fix
63326
63327         Track recent KURL DeprecatedString changes.
63328
63329         * loader/FrameLoader.cpp:
63330         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
63331
63332 2007-12-22  Dan Bernstein  <mitz@apple.com>
63333
63334         - Windows build fix
63335
63336         * WebCore.vcproj/WebCore.vcproj:
63337
63338 2007-12-22  Xan Lopez  <xan@gnome.org>
63339
63340         Reviewed by Alp Toker.
63341
63342         Add missing return 0 to fix a compile warning.
63343
63344         * page/gtk/FrameGtk.cpp:
63345         (WebCore::Frame::createScriptInstanceForWidget):
63346
63347 2007-12-21  Antti Koivisto  <antti@apple.com>
63348
63349         Reviewed by Darin, Adam and Steve.
63350
63351         Add media playback support for Windows.
63352         
63353         The implementation uses low level QuickTime API. DLL is
63354         needed to work around CF use in both WebKit and QuickTime.
63355         
63356         This makes Windows build depend on the QuickTime SDK 
63357         
63358         http://developer.apple.com/quicktime/download/
63359         
63360         but not QuickTime itself.
63361         
63362         QTMovieWinTimer contains some copy code from SharedTimerWin. It
63363         is used in the QuickTime access DLL which can't use WebCore
63364         SharedTimer due to dependency problems.
63365
63366         * WebCore.vcproj/QTMovieWin.vcproj: Added.
63367         * WebCore.vcproj/WebCore.vcproj:
63368         * WebCore.vcproj/build-generated-files.sh:
63369         * html/HTMLMediaElement.cpp:
63370         (WebCore::HTMLMediaElement::setSrc):
63371         * platform/graphics/MediaPlayer.cpp:
63372         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
63373         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
63374         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
63375         (WebCore::MediaPlayerPrivate::load):
63376         (WebCore::MediaPlayerPrivate::play):
63377         (WebCore::MediaPlayerPrivate::pause):
63378         (WebCore::MediaPlayerPrivate::duration):
63379         (WebCore::MediaPlayerPrivate::currentTime):
63380         (WebCore::MediaPlayerPrivate::seek):
63381         (WebCore::MediaPlayerPrivate::doSeek):
63382         (WebCore::MediaPlayerPrivate::cancelSeek):
63383         (WebCore::MediaPlayerPrivate::seekTimerFired):
63384         (WebCore::MediaPlayerPrivate::setEndTime):
63385         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
63386         (WebCore::MediaPlayerPrivate::endPointTimerFired):
63387         (WebCore::MediaPlayerPrivate::paused):
63388         (WebCore::MediaPlayerPrivate::seeking):
63389         (WebCore::MediaPlayerPrivate::naturalSize):
63390         (WebCore::MediaPlayerPrivate::hasVideo):
63391         (WebCore::MediaPlayerPrivate::setVolume):
63392         (WebCore::MediaPlayerPrivate::setMuted):
63393         (WebCore::MediaPlayerPrivate::setRate):
63394         (WebCore::MediaPlayerPrivate::dataRate):
63395         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
63396         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
63397         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
63398         (WebCore::MediaPlayerPrivate::bytesLoaded):
63399         (WebCore::MediaPlayerPrivate::totalBytesKnown):
63400         (WebCore::MediaPlayerPrivate::totalBytes):
63401         (WebCore::MediaPlayerPrivate::cancelLoad):
63402         (WebCore::MediaPlayerPrivate::updateStates):
63403         (WebCore::MediaPlayerPrivate::didEnd):
63404         (WebCore::MediaPlayerPrivate::setRect):
63405         (WebCore::MediaPlayerPrivate::setVisible):
63406         (WebCore::MediaPlayerPrivate::paint):
63407         (WebCore::MediaPlayerPrivate::getSupportedTypes):
63408         (WebCore::MediaPlayerPrivate::movieEnded):
63409         (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
63410         (WebCore::MediaPlayerPrivate::movieTimeChanged):
63411         (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
63412         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
63413         (WebCore::MediaPlayerPrivate::networkState):
63414         (WebCore::MediaPlayerPrivate::readyState):
63415         * platform/graphics/win/QTMovieWin.cpp: Added.
63416         (updateTaskTimer):
63417         (QTMovieWinPrivate::QTMovieWinPrivate):
63418         (QTMovieWinPrivate::~QTMovieWinPrivate):
63419         (taskTimerFired):
63420         (QTMovieWinPrivate::startTask):
63421         (QTMovieWinPrivate::endTask):
63422         (QTMovieWinPrivate::task):
63423         (QTMovieWinPrivate::registerDrawingCallback):
63424         (QTMovieWinPrivate::drawingComplete):
63425         (QTMovieWinPrivate::createGWorld):
63426         (QTMovieWinPrivate::setSize):
63427         (QTMovieWinPrivate::deleteGWorld):
63428         (QTMovieWin::QTMovieWin):
63429         (QTMovieWin::~QTMovieWin):
63430         (QTMovieWin::play):
63431         (QTMovieWin::pause):
63432         (QTMovieWin::rate):
63433         (QTMovieWin::setRate):
63434         (QTMovieWin::duration):
63435         (QTMovieWin::currentTime):
63436         (QTMovieWin::setCurrentTime):
63437         (QTMovieWin::setVolume):
63438         (QTMovieWin::setMuted):
63439         (QTMovieWin::dataSize):
63440         (QTMovieWin::maxTimeLoaded):
63441         (QTMovieWin::loadState):
63442         (QTMovieWin::getNaturalSize):
63443         (QTMovieWin::setSize):
63444         (QTMovieWin::setVisible):
63445         (QTMovieWin::paint):
63446         (QTMovieWin::load):
63447         (movieDrawingCompleteProc):
63448         (initializeSupportedTypes):
63449         (QTMovieWin::countSupportedTypes):
63450         (QTMovieWin::getSupportedType):
63451         (QTMovieWin::initializeQuickTime):
63452         (DllMain):
63453         * platform/graphics/win/QTMovieWin.h: Added.
63454         * platform/graphics/win/QTMovieWinTimer.cpp: Added.
63455         (TimerWindowWndProc):
63456         (initializeOffScreenTimerWindow):
63457         (setSharedTimerFiredFunction):
63458         (timerFired):
63459         (setSharedTimerFireDelay):
63460         (stopSharedTimer):
63461         (setSharedTimerInstanceHandle):
63462         (systemTime):
63463         * platform/graphics/win/QTMovieWinTimer.h: Added.
63464         * rendering/RenderMedia.cpp:
63465         (WebCore::MediaControlPlayButtonElement::update):
63466
63467 2007-12-21  Brent Fulgham  <bfulgham@gmail.com>
63468
63469         Reviewed by Alp Toker.
63470
63471         http://bugs.webkit.org/show_bug.cgi?id=16558
63472         Cairo WebCore Rendering Fails on arc drawing
63473
63474         Fix for bug reported (and patched) by Apollo team in which
63475         arcs were draw in reverse (resulting in inverted images).
63476         Review of the source found that the 'clockwise' term was
63477         actually meant to mean 'anticlockwise' so the IDL and
63478         supporting classes have been changed to match this. 
63479
63480         * html/CanvasRenderingContext2D.cpp:
63481         (WebCore::CanvasRenderingContext2D::arc):
63482         * html/CanvasRenderingContext2D.idl:
63483         * platform/graphics/cairo/PathCairo.cpp:
63484         (WebCore::Path::addArc):
63485         (WebCore::Path::addEllipse):
63486         * platform/graphics/Path.h:
63487
63488 2007-12-21  Alexey Proskuryakov  <ap@webkit.org>
63489
63490         Reviewed by Oliver.
63491
63492         <rdar://problem/5629995> Incorrect display of Danish characters on web site.
63493
63494         Test: http/tests/xmlhttprequest/response-encoding.html
63495
63496         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
63497         Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
63498         rules for main content and XHR responses, but this matches both IE and Firefox.
63499
63500 2007-12-20  Jon Honeycutt  <jhoneycutt@apple.com>
63501
63502         Reviewed by Kevin Decker.
63503
63504         <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
63505         shockwave plugin on freshly installed OS
63506
63507         Look for Director plugin in its native directory.
63508
63509         * plugins/win/PluginDatabaseWin.cpp:
63510         (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
63511         doesn't start with "np," so special case its filename.
63512         (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
63513         directories to the plugin paths.
63514         (WebCore::PluginDatabaseWin::defaultPluginPaths):
63515
63516 2007-12-20  Peter Kasting  <pkasting@google.com>
63517
63518         Reviewed by Alp Toker.
63519
63520         http://bugs.webkit.org/show_bug.cgi?id=16508
63521         Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
63522         decoded transparent areas.
63523
63524         * platform/image-decoders/gif/GIFImageDecoder.cpp:
63525         (WebCore::GIFImageDecoder::haveDecodedRow):
63526         * platform/image-decoders/gif/GIFImageDecoder.h:
63527         * platform/image-decoders/gif/GIFImageReader.cpp:
63528         (GIFImageReader::output_row):
63529
63530 2007-12-20  Justin Garcia  <justin.garcia@apple.com>
63531
63532         Reviewed by Oliver Hunt.
63533
63534         <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
63535         
63536         Still need to fix similar issues with the other operations that iterate 
63537         over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
63538
63539         * editing/IndentOutdentCommand.cpp:
63540         (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
63541         * editing/IndentOutdentCommand.h: Removed an unused function.
63542         * editing/InsertListCommand.cpp:
63543         (WebCore::InsertListCommand::modifyRange): 
63544         Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
63545         Call the new selectionForParagraphIteration, which a) prevents operations like this
63546         one from being performed on a table that isn't fully selected (where the selection
63547         starts just before the table and ends inside it), and b) helps prevent paragraph
63548         iteration from going past the end of the selection.
63549         Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
63550         since when v is in the last paragraph of the last cell of a table, that expression 
63551         will return the position after the table, not the start of the next paragraph.
63552         * editing/htmlediting.cpp:
63553         (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
63554         take effect inside the table cell where they are performed.
63555         (WebCore::selectionForParagraphIteration): Added, see above.
63556         (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
63557         * editing/htmlediting.h:
63558         * editing/visible_units.cpp:
63559         (WebCore::startOfNextParagraph): Added, see above.
63560         * editing/visible_units.h:
63561         * editing/TextIterator.h:
63562         (WebCore::TextIterator::exitNode): Added a FIXME.
63563
63564 2007-12-20  Alp Toker  <alp@atoker.com>
63565
63566         Rubber-stamped by Maciej.
63567
63568         http://bugs.webkit.org/show_bug.cgi?id=16542
63569         [GTK] Text is missing with old Pango version
63570
63571         Back out commits r28880, r28876, r28865, r28864 which added Pango font
63572         selection support. These changes caused a regression where no text was
63573         displayed with older Pango versions.
63574
63575         * platform/graphics/gtk/FontCacheGtk.cpp:
63576         (WebCore::FontCache::fontExists):
63577         * platform/graphics/gtk/FontDataGtk.cpp:
63578         (WebCore::FontData::platformDestroy):
63579         (WebCore::FontData::containsCharacters):
63580         * platform/graphics/gtk/FontPlatformData.h:
63581         (WebCore::FontPlatformData::FontPlatformData):
63582         (WebCore::FontPlatformData::hash):
63583         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
63584         (WebCore::FontPlatformData::FontPlatformData):
63585         (WebCore::FontPlatformData::init):
63586         (WebCore::FontPlatformData::~FontPlatformData):
63587         (WebCore::FontPlatformData::isFixedPitch):
63588         (WebCore::FontPlatformData::operator==):
63589         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
63590         (WebCore::GlyphPage::fill):
63591
63592 2007-12-20  Timothy Hatcher  <timothy@apple.com>
63593
63594         Reviewed by Sam Weinig.
63595
63596         <rdar://problem/5604897> Double-clicking on JavaScript console error
63597         won't show the line where it occurred
63598
63599         Make the URLs clickable in the console, since double clicking is used for
63600         word text selection. Makes the word "line" localizable. Messages that don't
63601         have a URL will no longer print "undefined". Messages that have a line number
63602         less than or equal to 0 will no longer be printed.
63603
63604         * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
63605         * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
63606           and change the click handler to look for a link with the
63607           "console-message-url" class name.
63608         * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
63609           line row is needed. 
63610         * page/inspector/inspector.css: Update the look of the URL in the console.
63611
63612 2007-12-20  Adam Barth  <hk9565@gmail.com>
63613
63614         Reviewed and landed by Sam Weinig.
63615
63616         http://bugs.webkit.org/show_bug.cgi?id=15313
63617         <rdar://problem/5514516>
63618
63619         The same-origin check was incorrect in two cases (both fixed in this
63620         patch):
63621
63622         A) If both the source and the target have set their document.domain
63623            to the same value, the protocol must also match in order for
63624            access to be allowed.  Without this requirement, the browser is
63625            vulnerable to the following attack:
63626
63627            1) Suppose there is an HTTPS site (www.example.com) that sets
63628               document.domain = "example.com".
63629            2) A network attacker redirects the browser to http://www.example.com/
63630               a) injects script to set document.domain = "example.com", and
63631               b) opens a window to https://www.example.com/
63632            3) Now the network attacker can inject script into the HTTPS page,
63633               stealing cookies and issuing banking transactions.
63634
63635         B) If only one of the source and target has set document.domain, then
63636            access should be denied.  With this behavior, the browser is
63637            vulnerable to the following attack:
63638
63639            1) Suppose http://foo.example.com/ opens an iframe to
63640               http://foo.example.com/frame.html that
63641               a) sets document.domain = "example.com", and
63642               b) opens an iframe to http://bar.example.com/
63643               This is a common usage of document.domain for cross-domain
63644               communication, see for example:
63645                 http://www.collinjackson.com/research/papers/fp801-jackson.pdf
63646            2) The inner-most iframe, which is from bar.example.com, sets
63647               document.domain = "example.com".
63648            3) Now the inner-most iframe can inject script into the middle
63649               iframe (say via document.write).  This bar.example.com script
63650               now has access to the outer-most frame (from foo.example.com).
63651
63652         Both these changes cause WebKit to match the behavior of Firefox 2 and
63653         IE6 in these cases.  This patch includes regression tests for both
63654         issues.
63655
63656         Internet Explorer 7 and Opera 9 are more strict in that they require
63657         the port numbers to match when both pages have document.domain set.
63658         Opera 9 allows access when only one page has set document.domain, but
63659         this is a security vulnerability.
63660
63661         Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
63662                http/tests/security/cross-frame-access-parent-explicit-domain.html
63663
63664         * bindings/js/kjs_window.cpp:
63665         (KJS::createWindow):
63666         (KJS::Window::allowsAccessFrom):
63667         * dom/Document.cpp:
63668         (WebCore::Document::domain):
63669         (WebCore::Document::setDomain):
63670         (WebCore::Document::initSecurityOrigin):
63671         * dom/Document.h:
63672         (WebCore::Document::securityOrigin):
63673         * loader/FrameLoader.cpp:
63674         (WebCore::FrameLoader::begin):
63675         (WebCore::FrameLoader::checkCallImplicitClose):
63676         (WebCore::FrameLoader::shouldAllowNavigation):
63677         * platform/SecurityOrigin.cpp:
63678         (WebCore::SecurityOrigin::setForURL):
63679         (WebCore::SecurityOrigin::createForFrame):
63680         (WebCore::SecurityOrigin::canAccess):
63681         * platform/SecurityOrigin.h:
63682         (WebCore::SecurityOrigin::domain):
63683         * storage/Database.cpp:
63684         (WebCore::Database::openDatabase):
63685         (WebCore::Database::Database):
63686         (WebCore::Database::securityOriginData):
63687         * storage/Database.h:
63688         (WebCore::Database::databaseDebugName):
63689         * storage/DatabaseTracker.cpp:
63690         (WebCore::DatabaseTracker::canEstablishDatabase):
63691         * storage/SQLTransaction.cpp:
63692         (WebCore::SQLTransaction::postflightAndCommit):
63693         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
63694
63695 2007-12-20  Rodney Dawes  <dobey@wayofthemonkey.com>
63696
63697         Reviewed by Darin Adler.
63698
63699         Define XP_UNIX when building with plugins on X11.
63700         Use new npruntime_internal.h instead of npruntime.h.
63701         http://bugs.webkit.org/show_bug.cgi?id=15669
63702
63703         * ForwardingHeaders/bindings/npruntime_internal.h
63704         * WebCore.pro:
63705         * html/HTMLPlugInElement.h:
63706
63707 2007-12-19  johnnyding.webkit  <johnnyding.webkit@gmail.com>
63708
63709         Reviewed by Alexey. Landed by Stephanie.
63710
63711         - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
63712           Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
63713           Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing 
63714           the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
63715
63716
63717         * html/HTMLTokenizer.cpp:
63718         (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
63719         (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
63720         * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
63721
63722 2007-12-20  Eric Seidel  <eric@webkit.org>
63723
63724         Reviewed by Nikolas Zimmermann.
63725
63726         WebKit claims to support SVG feature strings it shouldn't
63727         http://bugs.webkit.org/show_bug.cgi?id=15480
63728
63729         * dom/DOMImplementation.cpp:
63730         (WebCore::isSVG10Feature):
63731         (WebCore::isSVG11Feature):
63732
63733 2007-12-20  John Sullivan  <sullivan@apple.com>
63734
63735         Reviewed by Oliver and Geoff
63736         
63737         - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter 
63738           than white "hole" behind it
63739
63740         * rendering/RenderText.cpp:
63741         (WebCore::RenderText::addLineBoxRects):
63742         respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
63743
63744 2007-12-20  Dan Bernstein  <mitz@apple.com>
63745
63746         Reviewed by Darin Adler.
63747
63748         - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
63749
63750         * platform/win/ScrollViewWin.cpp:
63751         (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
63752         scroll offsets even if scrolling is not allowed, because navigation and
63753         scrollTo should still work.
63754         (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
63755         not allowed.
63756
63757 2007-12-17  Tony Chang  <idealisms@gmail.com>
63758
63759         Reviewed by Darin.
63760
63761         - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
63762           text selection does not always begin at mouse down point
63763           Reset the m_dragSrc object on mouse down on all platforms.
63764
63765         Test: fast/text/reset-drag-on-mouse-down.html
63766
63767         * page/EventHandler.cpp:
63768         (WebCore::EventHandler::handleMousePressEvent):
63769         * page/mac/EventHandlerMac.mm:
63770         (WebCore::EventHandler::mouseDown):
63771
63772 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
63773
63774         Reviewed by Oliver Hunt.
63775
63776         Build support:
63777         * ForwardingHeaders/kjs/SymbolTable.h: Added.
63778         * ForwardingHeaders/wtf/VectorTraits.h: Added.
63779
63780         * bindings/js/JSDOMWindowCustom.cpp:
63781         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
63782         getDirectLocation with getOwnPropertySlot. getDirectLocation is no
63783         longer valid, since global declarations are not stored in the property
63784         map.
63785
63786         (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
63787         JSGlobalObject::put. JSObject::put is no longer valid, since global
63788         declarations are not stored in the property map.
63789
63790         * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
63791         calls, since JSObject is not our base class. This was always a bug, but
63792         the bug is even more apparent after some of my changes.
63793
63794         (KJS::Window::clear): Removed call to clearProperties because
63795         JSGlobalObject::reset takes care of that now.
63796
63797         * history/CachedPage.cpp:
63798         * history/CachedPage.h: Added support for saving a symbol table and
63799         localStorage to the page cache, and restoring it.
63800
63801 2007-12-19  Dan Bernstein  <mitz@apple.com>
63802
63803         Reviewed by Darin Adler and Dave Hyatt.
63804
63805         - Substitute the user's preferred standard font for an unknown primary
63806           font before falling back on the platform's last resort font
63807
63808         Cannot be tested in DumpRenderTree because it sets the standard font to
63809         Times, which is also the hard-coded last resort font on Mac.
63810
63811         * css/CSSFontSelector.cpp:
63812         (WebCore::CSSFontSelector::getFontData): Changed the early bail out
63813         condition to allow getting generic font families from settings even if
63814         there are not @font-face rules. Fixed a typo that mapped fantasy to
63815         cursive. Added a mapping from -webkit-standard to the standard family.
63816         * css/CSSStyleSelector.cpp:
63817         (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
63818         a font selector.
63819         (WebCore::CSSRuleSet::addRulesFromSheet):
63820         (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
63821         font selector.
63822         * css/CSSStyleSelector.h:
63823         (WebCore::CSSStyleSelector::fontSelector):
63824         * platform/graphics/FontCache.cpp:
63825         (WebCore::FontCache::getFontData): Try the user's preferred standard
63826         font before the platform's last resort font.
63827
63828 2007-12-19  Sven Herzberg  <sven@imendio.com>
63829
63830         Reviewed by Alp Toker.
63831
63832         Scaled font destruction takes place in FontData::platformDestroy(). No
63833         need to do it in FontPlatformData::~FontPlatformData().
63834
63835         Destroying platform data in platformDestroy() is a convention we
63836         borrow from the Mac and Win ports.
63837
63838         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
63839
63840 2007-12-19  Alice Liu  <alice.liu@apple.com>
63841
63842         build fix (Windows)
63843
63844         Changed uint to unsigned int.  uint caused Windows build breakage
63845
63846         * page/Page.cpp:
63847         (WebCore::Page::markAllMatchesForText):
63848         * page/Page.h:
63849
63850 2007-12-19  Christian Dywan  <christian@twotoasts.de> 
63851
63852         Reviewed by Alp Toker.
63853
63854         http://bugs.webkit.org/show_bug.cgi?id=16222
63855         [GTK] Implement inline search and highlighting of matching strings.
63856
63857         Implement search and highlighting logic directly in WebCore.
63858
63859         * page/Page.cpp:
63860         (WebCore::incrementFrame):
63861         (WebCore::Page::findString):
63862         (WebCore::Page::markAllMatchesForText):
63863         (WebCore::Page::unmarkAllTextMatches):
63864         * page/Page.h:
63865
63866 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
63867
63868         Reviewed by Sam Weinig, Dan Bernstein.
63869
63870         Tiger build fix: restored some graphics code still needed on Tiger.
63871
63872         * platform/graphics/GraphicsTypes.h:
63873         * platform/graphics/cg/GraphicsContextCG.cpp:
63874         * platform/graphics/mac/GraphicsContextMac.mm:
63875         (WebCore::GraphicsContext::setCompositeOperation):
63876
63877 2007-12-19  Alp Toker  <alp@atoker.com>
63878
63879         Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
63880         the Pango backend API in these cases.
63881
63882         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
63883         (WebCore::FontPlatformData::FontPlatformData):
63884         (WebCore::FontPlatformData::~FontPlatformData):
63885
63886 2007-12-19  Alice Liu  <alice.liu@apple.com>
63887
63888         Reviewed by Darin.
63889
63890         Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
63891         on Geico.com WebCore::Document::inPageCache()
63892
63893         Calling Node::willRemove on the focusedNode would immediately tell the document to remove
63894         the focused node, and trigger JS events.  This means that the document is mutated while
63895         the engine is trying to tell all child nodes that it's about to removed.  To avoid
63896         crashing, we need to hold off on mutating the document until node traversal is finished.
63897
63898         * dom/ContainerNode.cpp:
63899         (WebCore::ContainerNode::removeChild):
63900         (WebCore::ContainerNode::removeChildren):
63901         * dom/Node.cpp:
63902         * dom/Node.h:
63903         (WebCore::Node::willRemove):
63904         * loader/FrameLoader.cpp:
63905         (WebCore::FrameLoader::clear):
63906
63907 2007-12-19  Andre Boule  <aboule@apple.com>
63908
63909         Reviewed by Dan Bernstein.
63910
63911         Test: fast/canvas/canvas-composite.html
63912
63913         Fix for:
63914         <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
63915
63916         This fix makes setCompositeOperation consistent across all platforms that use CG.
63917
63918         The following compositing modes don't pass however that is covered by another bug:
63919         source-in
63920         source-out
63921         destination-in
63922         destination-atop
63923         copy
63924         <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
63925
63926         * platform/graphics/GraphicsTypes.h:
63927         * platform/graphics/cg/GraphicsContextCG.cpp:
63928         (WebCore::GraphicsContext::setCompositeOperation):
63929         * platform/graphics/mac/GraphicsContextMac.mm:
63930         * platform/win/GraphicsContextWin.cpp:
63931
63932 2007-12-19  Dan Bernstein  <mitz@apple.com>
63933
63934         Reviewed by Dave Hyatt.
63935
63936         - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
63937
63938         Test: fast/dynamic/subtree-boundary-percent-height.html
63939
63940         * rendering/RenderObject.cpp:
63941         (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
63942         percent heights because sometimes they compute to 'auto'.
63943
63944 2007-12-19  Sam Weinig  <sam@webkit.org>
63945
63946         Reviewed by Maciej.
63947
63948         http://bugs.webkit.org/show_bug.cgi?id=16511
63949         Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
63950         - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
63951
63952         * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
63953         (WebCore::ChildNodeList::ChildNodeList):
63954         * dom/ClassNodeList.cpp:
63955         (WebCore::ClassNodeList::ClassNodeList):
63956         * dom/ClassNodeList.h:
63957
63958         Move getElementsByName and getElementsByClassName to Node so they
63959         can use easily employ the caching already used by ChildNodeLists.  In the case of 
63960         getElementsByClassName, this reduces code duplication in Element as well
63961         * dom/Document.cpp:
63962         * dom/Document.h:
63963
63964         Move getElementsByClassName to Node.
63965         * dom/Element.cpp:
63966         * dom/Element.h:
63967
63968         * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
63969         (WebCore::NameNodeList::NameNodeList):
63970         (WebCore::NameNodeList::item):
63971         * dom/NameNodeList.h:
63972
63973         Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
63974         * dom/Node.cpp:
63975         (WebCore::TagNodeList::TagNodeList):
63976         (WebCore::Node::Node):
63977         (WebCore::Node::~Node):
63978         (WebCore::Node::childNodes):
63979         (WebCore::Node::registerNodeList):
63980         (WebCore::Node::getElementsByName):
63981         (WebCore::Node::getElementsByClassName):
63982         * dom/Node.h: Make m_nodeLists an OwnPtr.  Moved getElementsByName and getElementsByClassName here
63983
63984         Allow subclasses to choose whether they want to receive the notifications using a new bit.
63985         * dom/NodeList.cpp:
63986         (WebCore::NodeList::NodeList):
63987         * dom/NodeList.h:
63988         (WebCore::NodeList::needsNotifications):
63989
63990 2007-12-19  Dave Hyatt  <hyatt@apple.com>
63991
63992         Add support for GDI text rendering to WebKit.
63993       
63994         Reviewed by mitz
63995         
63996         * css/CSSStyleSelector.cpp:
63997         (WebCore::CSSStyleSelector::applyProperty):
63998         * dom/Document.cpp:
63999         (WebCore::Document::recalcStyle):
64000         * page/Settings.cpp:
64001         (WebCore::Settings::setFontRenderingMode):
64002         (WebCore::Settings::fontRenderingMode):
64003         * page/Settings.h:
64004         * platform/graphics/Font.h:
64005         (WebCore::Font::renderingMode):
64006         * platform/graphics/FontCache.cpp:
64007         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
64008         (WebCore::FontPlatformDataCacheKey::operator==):
64009         (WebCore::computeHash):
64010         (WebCore::FontCache::getCachedFontPlatformData):
64011         * platform/graphics/FontDescription.h:
64012         (WebCore::FontDescription::FontDescription):
64013         (WebCore::FontDescription::renderingMode):
64014         (WebCore::FontDescription::setRenderingMode):
64015         (WebCore::FontDescription::operator==):
64016         * platform/graphics/GraphicsContext.h:
64017         * platform/graphics/win/FontCacheWin.cpp:
64018         (WebCore::FontCache::fontExists):
64019         (WebCore::FontCache::createFontPlatformData):
64020         * platform/graphics/win/FontDataWin.cpp:
64021         (WebCore::FontData::platformInit):
64022         (WebCore::FontData::smallCapsFontData):
64023         (WebCore::FontData::containsCharacters):
64024         (WebCore::FontData::determinePitch):
64025         (WebCore::FontData::platformWidthForGlyph):
64026         * platform/graphics/win/FontPlatformData.h:
64027         (WebCore::FontPlatformData::FontPlatformData):
64028         (WebCore::FontPlatformData::useGDI):
64029         (WebCore::FontPlatformData::operator==):
64030         * platform/graphics/win/FontPlatformDataWin.cpp:
64031         (WebCore::FontPlatformData::FontPlatformData):
64032         * platform/graphics/win/FontWin.cpp:
64033         (WebCore::Font::drawGlyphs):
64034         * platform/graphics/win/IconWin.cpp:
64035         (WebCore::Icon::paint):
64036         * platform/win/GraphicsContextWin.cpp:
64037         (WebCore::GraphicsContext::getWindowsContext):
64038         (WebCore::GraphicsContext::releaseWindowsContext):
64039         * platform/win/UniscribeController.cpp:
64040         (WebCore::UniscribeController::shapeAndPlaceItem):
64041         * platform/win/UniscribeController.h:
64042         * plugins/win/PluginViewWin.cpp:
64043         (WebCore::PluginViewWin::paint):
64044
64045 2007-12-19  Sven Herzberg  <sven@imendio.com>
64046
64047         Reviewed by Alp Toker.
64048
64049         Replace the fontconfig/freetype based font management with a pango
64050         based one. Fixes:
64051         http://bugs.webkit.org/show_bug.cgi?id=15229
64052
64053         * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
64054         the platform specific destroy code
64055         (FontData::containsCharacters()): implemented font coverage with pango
64056         * platform/gtk/FontPlatformData.h: replaced fontconfig specific
64057         members with pango-specific ones
64058         * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
64059         FontPlatformData class
64060         (FontPlatformData::FontPlatformData()): implemented the font-matching
64061         with a PangoFontDescription instead of an FcPattern; initialize the
64062         scaled font by using the API for PangoCairoFont
64063         (FontPlatformData::init()): initialize the PangoFontMap and set up a
64064         hash table to translate the font family name into a font family
64065         (FontPlatformData::isFixedPitch()): implemented by querying the
64066         PangoFontFamily
64067         (FontPlatformData::operator==): compare the FontPlatformData by
64068         comparing the font pointers or the described fonts
64069         * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
64070         added a function to query a glyph from a PangoFont
64071         (GlyphPage::fill()): implemented the fill function with Pango instead
64072         of fontconfig/freetype
64073
64074 2007-12-19  Alp Toker  <alp@atoker.com>
64075
64076         Reviewed by Holger Freyther.
64077
64078         Improve graphics operator approximations
64079         
64080         These changes match Cairo's own CG approximations.
64081
64082         * platform/graphics/cairo/GraphicsContextCairo.cpp:
64083         (WebCore::toCairoOperator):
64084
64085 2007-12-19  Alp Toker  <alp@atoker.com>
64086
64087         Reviewed by Holger Freyther.
64088
64089         Check the bounding box before doing a full hit test
64090
64091         * platform/graphics/cairo/PathCairo.cpp:
64092         (WebCore::Path::contains):
64093
64094 2007-12-18  Sam Weinig  <sam@webkit.org>
64095
64096         Reviewed by Geoff.
64097
64098         Fix for <rdar://problem/5646478>
64099         REGRESSION: fast/events/event-view-toString fails on Leopard
64100
64101         This fixes an issue where we were incorrectly setting the lastInPrototypeChain
64102         for the JSDOMWindow (the global object) before a call to setPrototype overwrote
64103         it. This fixes it by passing the prototype up the constructor chain so that it
64104         is set before any calls can be made.
64105
64106         * bindings/js/kjs_window.cpp:
64107         (KJS::Window::Window):
64108         * bindings/js/kjs_window.h:
64109         * bindings/scripts/CodeGeneratorJS.pm:
64110
64111 2007-12-18  Beth Dakin  <bdakin@apple.com>
64112
64113         Reviewed by Oliver.
64114
64115         Fix for <rdar://problem/5616982> SVGs with width and height 100% 
64116         fail to render when used as <img> or CSS image (16167)
64117
64118         This final part of the work fixes the <img> tag.
64119
64120         This is the real fix. 
64121         * rendering/RenderImage.cpp:
64122         (WebCore::RenderImage::calcReplacedWidth): Set the container size 
64123         on the image. Setting the container size only actually sticks if 
64124         the values are non-zero, so if the container size really was set, 
64125         use the imageSize that is calculated using the container size. If 
64126         it did not stick but the image does have relative width (meaning 
64127         that the container size is 0), set the width to 0 by hand. We want 
64128         to avoid setting the width before we have a container size or we 
64129         will end up incorrectly using the default size of 300x150.
64130         (WebCore::RenderImage::calcReplacedHeight): Same as above, but for 
64131         height.
64132
64133         A few more pieces of information have to be exposed through cached 
64134         image to make this happen.
64135         * loader/CachedImage.cpp:
64136         (WebCore::CachedImage::usesImageContainerSize): As mentioned above, 
64137         when setContainerSize() is called, the container size is only 
64138         actually set if the values are non-zero. This call tells you if it 
64139         was set.
64140         (WebCore::CachedImage::imageHasRelativeWidth):
64141         (WebCore::CachedImage::imageHasRelativeHeight):
64142         * loader/CachedImage.h:
64143         * platform/graphics/Image.h:
64144         (WebCore::Image::usesContainerSize):
64145         * svg/graphics/SVGImage.cpp:
64146         (WebCore::SVGImage::usesContainerSize):
64147         * svg/graphics/SVGImage.h:
64148
64149 2007-12-18  Mark Rowe  <mrowe@apple.com>
64150
64151         Rubber-stamped by Maciej Stachowiak.
64152
64153         Remove outdated and non-functioning project files for the Apollo port.
64154
64155         * WebCore.apolloproj: Removed.
64156
64157 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
64158
64159         <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
64160         
64161         Need to translate the char back into a key code for posting our WM_KEYDOWN.
64162         
64163         Reviewed by Ada.
64164
64165         * platform/win/PopupMenuWin.cpp:
64166         (WebCore::PopupWndProc):
64167
64168 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
64169
64170         <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
64171         
64172         Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
64173         Only create a font with the last one.
64174         
64175         Reviewed by Mitz, Darin.
64176
64177         * platform/graphics/win/FontCacheWin.cpp:
64178         (WebCore::metaFileEnumProc):
64179         (WebCore::FontCache::getFontDataForCharacters):
64180
64181 2007-12-17  Brent Fulgham  <bfulgham@gmail.com>
64182
64183         Reviewed by Darin.
64184
64185         http://bugs.webkit.org/show_bug.cgi?id=16464
64186         Modify WebCore to use win32 thread primitives
64187
64188         Updates to support native windows threading primitives
64189         rather than pthreads emulation library.
64190
64191         * WebCore.vcproj/WebCore.vcproj:
64192         * config.h:
64193         * platform/Threading.h:
64194         * platform/win/MutexWin.cpp: Added.
64195         (WebCore::Mutex::Mutex):
64196         (WebCore::Mutex::~Mutex):
64197         (WebCore::Mutex::lock):
64198         (WebCore::Mutex::tryLock):
64199         (WebCore::Mutex::unlock):
64200         * platform/win/ThreadConditionWin.cpp: Added.
64201         (WebCore::ThreadCondition::ThreadCondition):
64202         (WebCore::ThreadCondition::~ThreadCondition):
64203         (WebCore::ThreadCondition::wait):
64204         (WebCore::ThreadCondition::signal):
64205         (WebCore::ThreadCondition::broadcast):
64206         * platform/win/ThreadingWin.cpp:
64207         (WebCore::threadMapMutex):
64208         (WebCore::threadMap):
64209         (WebCore::storeThreadHandleByIdentifier):
64210         (WebCore::identifierByThreadHandle):
64211         (WebCore::threadHandleForIdentifier):
64212         (WebCore::clearThreadHandleForIdentifier):
64213         (WebCore::createThread):
64214         (WebCore::waitForThreadCompletion):
64215         (WebCore::detachThread):
64216         (WebCore::currentThread):
64217
64218 2007-12-18  Rodney Dawes  <dobey@wayofthemonkey.com>
64219
64220         Reviewed by Darin Adler.
64221
64222         Handle EINTR when set by select() and try the select() again
64223         http://bugs.webkit.org/show_bug.cgi?id=16071
64224
64225         * platform/network/curl/ResourceHandleManager.cpp:
64226         (ResourceHandleManager::downloadTimerCallback):
64227
64228 2007-12-18  Dan Bernstein  <mitz@apple.com>
64229
64230         Reviewed by Dave Hyatt.
64231
64232         - avoid the simplified Chinese font linking code for characters that are
64233           not in any Windows code page
64234
64235         * platform/graphics/win/FontCacheWin.cpp:
64236         (WebCore::FontCache::getFontDataForCharacters):
64237
64238 2007-12-18  Brady Eidson <beidson@apple.com>
64239
64240         Reviewed by Adele
64241
64242         <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
64243
64244         Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
64245         protected by authentication.  Occasionally one can view the main page of a site but the favicon
64246         is behind the iron curtain - in these cases, we should *not* prompt for a username and password
64247         solely for the favicon.
64248
64249         * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
64250
64251         * loader/SubresourceLoader.cpp:
64252         (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
64253           is virtual from ResourceLoader, SubresourceLoader can override.  First call to the 
64254           SubresourceLoaderClient.  If they cancel the resource load, return early. Otherwise, let
64255           ResourceLoader work its magic (resulting in the auth sheet coming down)
64256         * loader/SubresourceLoader.h:
64257
64258         * loader/SubresourceLoaderClient.h:
64259         (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
64260
64261         * loader/icon/IconLoader.cpp:
64262         (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
64263           never prompt the user for credentials just for a favicon.
64264         * loader/icon/IconLoader.h:
64265
64266 2007-12-18  John Sullivan  <sullivan@apple.com>
64267
64268         Reviewed by Brady
64269         
64270         - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
64271
64272         * storage/DatabaseTracker.cpp:
64273         (WebCore::DatabaseTracker::canEstablishDatabase):
64274         pass "name" instead of "displayName" if there's no displayName
64275
64276 2007-12-17  Dan Bernstein  <mitz@apple.com>
64277
64278         Reviewed by Maciej Stachowiak.
64279
64280         - restore ButtonFace and ThreeDFace to their previous values for non-Mac
64281           platforms. The Mac port also uses the same values for now instead
64282           of NSColor-based ones.
64283
64284         * rendering/RenderTheme.cpp:
64285         (WebCore::RenderTheme::systemColor):
64286
64287 2007-12-17  Rodney Dawes  <dobey@wayofthemonkey.com>
64288
64289         Reviewed by Maciej Stachowiak.
64290
64291         Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
64292         Add required Frame::createScriptInstanceForWidget to FrameGtk
64293
64294         * config.h:
64295         * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
64296
64297 2007-12-17  Alice Liu  <alice.liu@apple.com>
64298
64299         Reviewed by Adam.
64300
64301         Fixed <rdar://5566435> window with no scrollbars can be scrolled
64302
64303         * platform/win/ScrollViewWin.cpp:
64304         (WebCore::ScrollView::maximumScroll):
64305         corrected maximumScroll() to account for scrolling not allowed.
64306         (WebCore::ScrollView::wheelEvent):
64307
64308 2007-12-14  Juan A. Suarez Romero  <jasuarez@igalia.com>
64309
64310         Reviewed by Alp Toker.
64311
64312         http://bugs.webkit.org/show_bug.cgi?id=16042
64313         [GTK] Eliminate webkit_init()
64314
64315         Move webkit initialization to WebView class init.
64316
64317         * WebCore.pro:
64318
64319 2007-12-17  Jon Honeycutt  <jhoneycutt@apple.com>
64320
64321         Reviewed by Darin.
64322
64323         <rdar://problem/5651291> REGRESSION: Flash content doesn't display
64324         (www.adobe.com)
64325
64326         We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
64327
64328         * plugins/win/PluginViewWin.cpp:
64329         (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
64330         NPEvent*
64331         (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
64332         (WebCore::PluginViewWin::handleKeyboardEvent): same
64333         (WebCore::PluginViewWin::handleMouseEvent): same
64334         * plugins/win/PluginViewWin.h:
64335
64336 2007-12-17  Alexey Proskuryakov  <ap@webkit.org>
64337
64338         Reviewed by Darin.
64339
64340         Live to the promise of never making AppKit special character codes visible via DOM.
64341
64342         Test: fast/events/arrow-keys-on-body.html
64343
64344         * page/EventHandler.cpp:
64345         (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
64346         to let quirks-aware code strip special charactrers.
64347         * platform/mac/KeyEventMac.mm:
64348         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
64349         mode, remove the text if it's a special character.
64350
64351 2007-12-17  Mark Rowe  <mrowe@apple.com>
64352
64353         Reviewed by Darin Adler.
64354
64355         Fix incorrect array size and incorrect array index in convertNSColorToColor.
64356
64357         * rendering/RenderThemeMac.mm:
64358         (WebCore::convertNSColorToColor):
64359
64360 2007-12-17  Darin Adler  <darin@apple.com>
64361
64362         Reviewed by Mark Rowe.
64363
64364         - fix http://bugs.webkit.org/show_bug.cgi?id=16468
64365           REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
64366
64367         * storage/DatabaseThread.cpp:
64368         (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
64369         because there's no guarantee it won't lose its last reference otherwise.
64370
64371 2007-12-17  Dan Bernstein  <mitz@apple.com>
64372
64373         Reviewed by Maciej Stachowiak.
64374
64375         - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
64376           and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
64377
64378         * platform/graphics/win/FontCacheWin.cpp:
64379         (WebCore::FontCache::getFontDataForCharacters): To ensure that font
64380         linking gives consistent results for characters that are exclusive to
64381         the simplified Chinese code page and characters that belong to that
64382         code page and other code pages, always ask to map to simplified Chinese
64383         alone first.
64384
64385 2007-12-17  Christian Dywan  <christian@twotoasts.de>
64386
64387         Reviewed by Alp Toker.
64388
64389         http://bugs.webkit.org/show_bug.cgi?id=16378
64390         Implement Icon for Gtk
64391
64392         Icon provides a GdkPixbuf containing a themed icon.
64393         The icon theme is probed for an icon name according to the
64394         Icon Naming Specification or conventional Gnome icon names respectively.
64395
64396         See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
64397
64398         * platform/graphics/Icon.h:
64399         * platform/graphics/gtk/IconGtk.cpp:
64400         (WebCore::Icon::~Icon):
64401         (WebCore::lookupIconName):
64402         (WebCore::Icon::newIconForFile):
64403         (WebCore::Icon::paint):
64404
64405 2007-12-16  Sam Weinig  <sam@webkit.org>
64406
64407         Reviewed by Mitz.
64408
64409         Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
64410         Move the JS Location object to its own file
64411
64412         - Move Location into its own file and rename it JSLocation.
64413
64414         * DerivedSources.make:
64415         * WebCore.pro:
64416         * WebCore.vcproj/WebCore.vcproj:
64417         * WebCore.xcodeproj/project.pbxproj:
64418         * WebCoreSources.bkl:
64419         * bindings/js/JSDocumentCustom.cpp:
64420         * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
64421         (WebCore::JSLocation::JSLocation):
64422         (WebCore::JSLocation::getValueProperty):
64423         (WebCore::JSLocation::getOwnPropertySlot):
64424         (WebCore::JSLocation::put):
64425         (WebCore::JSLocationProtoFuncReplace::callAsFunction):
64426         (WebCore::JSLocationProtoFuncReload::callAsFunction):
64427         (WebCore::JSLocationProtoFuncAssign::callAsFunction):
64428         (WebCore::JSLocationProtoFuncToString::callAsFunction):
64429         * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
64430         (WebCore::JSLocation::):
64431         (WebCore::JSLocation::frame):
64432         (WebCore::JSLocation::classInfo):
64433         * bindings/js/kjs_window.cpp:
64434         (KJS::Window::location):
64435         * bindings/js/kjs_window.h:
64436         * history/CachedPage.cpp:
64437
64438 2007-12-16  Dan Bernstein  <mitz@apple.com>
64439
64440         Reviewed by Sam Weinig.
64441
64442         - make 'cursor: copy' and 'cursor: none' work.
64443
64444         Already covered by manual-tests/cursor.html
64445
64446         * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
64447         needed for the 33rd and 34th cursor values.
64448
64449 2007-12-16  Mark Rowe  <mrowe@apple.com>
64450
64451         Reviewed by Maciej Stachowiak.
64452
64453         Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
64454
64455         * WebCore.base.exp:
64456         * WebCore.xcodeproj/project.pbxproj:
64457         * loader/NetscapePlugInStreamLoader.h:
64458         * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
64459         * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
64460
64461 2007-12-16  Sam Weinig  <sam@webkit.org>
64462
64463         Reviewed by Maciej.
64464
64465         Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
64466         Cleanup kjs_window
64467
64468         - Move ScheduledAction into its own file and put it in the WebCore namespace.
64469
64470         * WebCore.pro:
64471         * WebCore.vcproj/WebCore.vcproj:
64472         * WebCore.xcodeproj/project.pbxproj:
64473         * WebCoreSources.bkl:
64474         * bindings/js/PausedTimeouts.cpp:
64475         * bindings/js/PausedTimeouts.h:
64476         * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
64477         (WebCore::ScheduledAction::ScheduledAction):
64478         (WebCore::ScheduledAction::execute):
64479         * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
64480         (WebCore::ScheduledAction::ScheduledAction):
64481         * bindings/js/kjs_window.cpp:
64482         (KJS::DOMWindowTimer::DOMWindowTimer):
64483         (KJS::DOMWindowTimer::action):
64484         (KJS::DOMWindowTimer::takeAction):
64485         (KJS::Window::installTimeout):
64486         (KJS::Window::timerFired):
64487         * bindings/js/kjs_window.h:
64488
64489 2007-12-16  Alp Toker  <alp@atoker.com>
64490
64491         Reviewed by Maciej.
64492
64493         http://bugs.webkit.org/show_bug.cgi?id=16356
64494         [GTK] Integrate GStreamer video with the graphics backend
64495
64496         Integrate the GStreamer media backend with the Cairo graphics backend.
64497         There are still some issues: Data is copied more often than necessary,
64498         and repaint() is not called, causing transformed video not to update
64499         sometimes.
64500
64501         * WebCore.pro:
64502         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
64503         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
64504         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
64505         (WebCore::MediaPlayerPrivate::currentTime):
64506         (WebCore::MediaPlayerPrivate::setEndTime):
64507         (WebCore::MediaPlayerPrivate::seeking):
64508         (WebCore::MediaPlayerPrivate::naturalSize):
64509         (WebCore::MediaPlayerPrivate::setMuted):
64510         (WebCore::MediaPlayerPrivate::setRect):
64511         (WebCore::MediaPlayerPrivate::setVisible):
64512         (WebCore::MediaPlayerPrivate::repaint):
64513         (WebCore::MediaPlayerPrivate::paint):
64514         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
64515         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
64516         * platform/graphics/gtk/VideoSinkGStreamer.cpp: Added.
64517         (webkit_video_sink_base_init):
64518         (webkit_video_sink_init):
64519         (webkit_video_sink_idle_func):
64520         (webkit_video_sink_render):
64521         (webkit_video_sink_set_caps):
64522         (webkit_video_sink_dispose):
64523         (webkit_video_sink_finalize):
64524         (webkit_video_sink_set_property):
64525         (webkit_video_sink_get_property):
64526         (webkit_video_sink_stop):
64527         (webkit_video_sink_class_init):
64528         (webkit_video_sink_new):
64529         (webkit_video_sink_set_surface):
64530         (plugin_init):
64531         * platform/graphics/gtk/VideoSinkGStreamer.h: Added.
64532
64533 2007-12-16  Mark Rowe  <mrowe@apple.com>
64534
64535         Mac build fix.
64536
64537         * WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target.
64538         Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the
64539         new shared implementation.
64540
64541 2007-12-16  Rodney Dawes  <dobey@wayofthemonkey.com>
64542
64543         Reviewed by Maciej Stachowiak.
64544
64545         http://bugs.webkit.org/show_bug.cgi?id=16389
64546         Bug 16389: Common Implementation of NetscapePlugInStreamLoader
64547
64548         * WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
64549         * loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
64550         * loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.
64551
64552 2007-12-16  Grace Kloba  <klobag@gmail.com>
64553
64554         Reviewed by Darin Adler.
64555
64556         Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
64557         Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken
64558
64559         * dom/Document.cpp:
64560         (WebCore::Document::Document):
64561         * loader/FrameLoader.cpp:
64562         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
64563         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
64564
64565 2007-12-16  Darin Adler  <darin@apple.com>
64566
64567         Reviewed by Maciej.
64568
64569         - fix <rdar://problem/5636065> First form of SQLTransaction.executeSql() fails with TYPE_ERROR dom exception
64570
64571         Test: storage/execute-sql-args.html
64572
64573         * bindings/js/JSSQLTransactionCustom.cpp:
64574         (WebCore::JSSQLTransaction::executeSql): Added exception handling code so that once an
64575         exception happens, we won't try to do any more argument processing. Changed processing
64576         of the second argument so that we allow an undefined value or null, and simply omit the
64577         array. Changed processing of the second argument so that we don't require an actual
64578         JavaScript array. Instead, as with the JavaScript array operations themselves, we use
64579         the length property and corresponding numeric properties of the object, allowing other
64580         objects to act as arrays. Changed processing of the third and fourth arguments to
64581         allow the undefined value as well as null; we check the value of the argument rather
64582         than looking at the size of the passed-in arguments list.
64583
64584 2007-12-16  Sam Weinig  <sam@webkit.org>
64585
64586         Reviewed by Darin.
64587
64588         More of http://bugs.webkit.org/show_bug.cgi?id=16385
64589         Cleanup kjs_window
64590
64591         - Move PausedTimeouts into its own file and put it in the WebCore namespace.
64592
64593         * WebCore.pro:
64594         * WebCore.vcproj/WebCore.vcproj:
64595         * WebCore.xcodeproj/project.pbxproj:
64596         * WebCoreSources.bkl:
64597         * bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
64598         * bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
64599         * bindings/js/kjs_window.cpp:
64600         (KJS::Window::pauseTimeouts):
64601         * bindings/js/kjs_window.h:
64602         * history/CachedPage.cpp:
64603         * history/CachedPage.h:
64604         * page/Chrome.cpp:
64605
64606 2007-12-16  Beth Dakin  <bdakin@apple.com>
64607
64608         Reviewed by Geoff.
64609
64610         Make relative-size SVGs work in border-image.
64611
64612         * rendering/RenderBox.cpp:
64613         (WebCore::RenderBox::calculateBackgroundSize):
64614         * rendering/RenderObject.cpp:
64615         (WebCore::RenderObject::paintBorderImage):
64616
64617 2007-12-16  Darin Adler  <darin@apple.com>
64618
64619         - fix Tiger build (my fault it was broken)
64620
64621         * rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.
64622
64623 2007-12-16  Andrew Wellington  <proton@wiretapped.net>
64624
64625         Reviewed by Darin.
64626         
64627         http://bugs.webkit.org/show_bug.cgi?id=6129
64628         Incomplete implementation of CSS 2.1 system colors
64629
64630         Test: fast/css/css2-system-color.html
64631         
64632         Based on original patch by Rob Buis.
64633         
64634         System colors are retrieved from NSColor as appropriate. If the color is a pattern color
64635         (and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
64636         color and sample that to get a solid color.
64637
64638         * css/CSSStyleSelector.cpp:
64639         (WebCore::colorForCSSValue):
64640         * rendering/RenderTheme.cpp:
64641         (WebCore::RenderTheme::systemColor):
64642         * rendering/RenderTheme.h:
64643         * rendering/RenderThemeMac.h:
64644         * rendering/RenderThemeMac.mm:
64645         (WebCore::getSystemColor):
64646         (WebCore::RenderThemeMac::platformColorsDidChange):
64647         (WebCore::RenderThemeMac::systemColor):
64648
64649 2007-12-16  Dan Bernstein  <mitz@apple.com>
64650
64651         Reviewed by Darin Adler.
64652
64653         - fix http://bugs.webkit.org/show_bug.cgi?id=16426
64654           Divs with overflow:auto: scrollbars not correctly updated when contents change
64655
64656         Test: fast/overflow/scrollbar-position-update.html
64657
64658         * platform/mac/PlatformScrollBarMac.mm:
64659         (WebCore::PlatformScrollbar::updateThumbProportion): Update the
64660         NSScroller's value for the new proportions.
64661         * rendering/RenderLayer.cpp:
64662         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary
64663         repaint(). Scrollbars repaint themselves as needed.
64664
64665 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
64666
64667         Reviewed by Darin.
64668
64669         http://bugs.webkit.org/show_bug.cgi?id=14140
64670         <rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly
64671
64672         * dom/KeyboardEvent.h:
64673         (WebCore::KeypressCommand::KeypressCommand):
64674         (WebCore::KeyboardEvent::keypressCommands):
64675         Change stored command class to preserve complete information about commands.
64676
64677         * editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion
64678         command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText:
64679         as a command.
64680
64681         * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting
64682         a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.
64683
64684 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
64685
64686         Reviewed by Darin.
64687
64688         http://bugs.webkit.org/show_bug.cgi?id=16462
64689         REGRESSION: access keys broken on Windows
64690
64691         * page/EventHandler.cpp:
64692         (WebCore::EventHandler::handleAccessKey):
64693         (WebCore::EventHandler::keyEvent):
64694         * page/EventHandler.h:
64695         Make handleAccessKey a class method; rely on WebKit to call it on Windows and wxWidgets.
64696
64697 2007-12-16  Xan Lopez  <xan@gnome.org>
64698
64699         Reviewed by Alexey Proskuryakov.
64700
64701         http://bugs.webkit.org/show_bug.cgi?id=16454
64702         [GTK] Text input doesn't work consistently on PPC
64703
64704         * platform/gtk/KeyEventGtk.cpp:
64705         (WebCore::singleCharacterString):
64706
64707         UChar is 2 bytes (UTF-16), so transform accordingly from
64708         gunichar (UCS-4). Fixes keyboard input on big endian systems.
64709
64710 2007-12-15  Darin Adler  <darin@apple.com>
64711
64712         Reviewed by Mark Rowe.
64713
64714         - better build fix for the problem affecting GTK and some other platforms
64715           "this time for sure"
64716
64717         * WebCore.xcodeproj/project.pbxproj:
64718         * bindings/js/JSEventTargetBase.cpp: Move the include of the .lut.h file here.
64719         * bindings/js/JSEventTargetBase.h: Instead of including the .lut.h file in the header,
64720         which won't work, declare the tables that are in the .lut.h file in the header.
64721
64722 2007-12-12  Kevin Watters  <kevin@dotsyntax.com>
64723
64724         Reviewed by Darin Adler.
64725
64726         Fixed the Wx port's FontPlatformData for use in HashTable.
64727         - FontPlatformData(Deleted) made unequal to FontPlatformData()
64728
64729         * platform/graphics/wx/FontPlatformData
64730
64731 2007-12-15  Dan Bernstein  <mitz@apple.com>
64732
64733         Reviewed by Darin Adler.
64734
64735         - fix <rdar://problem/5636090> Text in Georgia, Armenian, Inuktitut, Cree, or Cherokee (KA, HY, IU, CR, CHR) draws as all missing glyphs
64736
64737         * platform/graphics/win/FontCacheWin.cpp:
64738         (WebCore::metaFileEnumProc): Added. Called during metafile record
64739         enumeration and extracts the font from the create font record.
64740         (WebCore::FontCache::getFontDataForCharacters): If font linking fails,
64741         let Uniscribe draw the characters and see what font it chooses.
64742
64743 2007-12-15  Darin Adler  <darin@apple.com>
64744
64745         * WebCore.pro: Roll my last change out. Was wrong and didn't fix the build.
64746
64747 2007-12-15  Darin Adler  <darin@apple.com>
64748
64749         Another try at a GTK build fix.
64750
64751         * WebCore.pro: Add JSEventTargetBase.cpp to LUT_TABLE_FILES instead of LUT_FILES.
64752
64753 2007-12-15  Sam Weinig  <sam@webkit.org>
64754
64755         Force windows to regenerate COM DOM bindings.
64756
64757         * WebCore.vcproj/build-generated-files.sh: Add license. 
64758         * bindings/scripts/CodeGeneratorCOM.pm: Use shared WK_ucfirst.
64759
64760 2007-12-15  Sam Weinig  <sam@webkit.org>
64761
64762         Fix Windows and wx builds.
64763
64764         * WebCore.vcproj/WebCore.vcproj:
64765         * WebCoreSources.bkl:
64766
64767 2007-12-15  Mark Rowe  <mrowe@apple.com>
64768
64769         Gtk build fix.  Add JSEventTargetBase.cpp to SOURCES.
64770
64771         * WebCore.pro:
64772
64773 2007-12-15  Sam Weinig  <sam@webkit.org>
64774
64775         Fix wx build.
64776
64777         * WebCoreSources.bkl:
64778
64779 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
64780
64781         Not reviewed. Build fix for Qt/Gtk.
64782
64783         * WebCore.pro: Include JSEventTargetBase.lut.h in generation
64784
64785 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
64786
64787         Reviewed by Eric.
64788
64789         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)
64790
64791         Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
64792         in the base class. Applied the same refactorization to EventTargetNode.
64793
64794         This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
64795         to share as much code as possible with the EventTargetNode classes.
64796
64797         * DerivedSources.make:
64798         * WebCore.xcodeproj/project.pbxproj:
64799         * bindings/js/JSEventTargetBase.cpp: Added.
64800         (WebCore::retrieveEventTargetAndCorrespondingNode):
64801         (WebCore::eventNameForPropertyToken):
64802         * bindings/js/JSEventTargetBase.h: Added.
64803         (WebCore::JSEventTargetProperties::):
64804         (WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
64805         (WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
64806         (WebCore::::create):
64807         (WebCore::JSEventTargetBase::JSEventTargetBase):
64808         (WebCore::JSEventTargetBase::getValueProperty):
64809         (WebCore::JSEventTargetBase::putValueProperty):
64810         (WebCore::JSEventTargetBase::getOwnPropertySlot):
64811         (WebCore::JSEventTargetBase::put):
64812         (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
64813         (WebCore::JSEventTargetPrototype::self):
64814         (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
64815         (WebCore::JSEventTargetPrototype::classInfo):
64816         * bindings/js/JSEventTargetNode.cpp:
64817         (WebCore::JSEventTargetNode::getOwnPropertySlot):
64818         (WebCore::JSEventTargetNode::getValueProperty):
64819         (WebCore::JSEventTargetNode::put):
64820         (WebCore::JSEventTargetNode::putValueProperty):
64821         (WebCore::JSEventTargetNode::setListener):
64822         (WebCore::toEventTargetNode):
64823         * bindings/js/JSEventTargetNode.h:
64824         (WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
64825         (WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
64826         * dom/EventTarget.cpp:
64827         (WebCore::EventTarget::addEventListener):
64828         (WebCore::EventTarget::removeEventListener):
64829         (WebCore::EventTarget::dispatchGenericEvent):
64830         (WebCore::EventTarget::removeAllEventListeners):
64831         (WebCore::EventTarget::insertedIntoDocument):
64832         (WebCore::EventTarget::removedFromDocument):
64833         (WebCore::EventTarget::handleLocalEvents):
64834         (WebCore::EventTarget::applySVGEventTargetRules):
64835         (WebCore::forbidEventDispatch):
64836         (WebCore::allowEventDispatch):
64837         (WebCore::eventDispatchForbidden):
64838         * dom/EventTarget.h:
64839         (WebCore::EventTarget::preDispatchEventHandler):
64840         (WebCore::EventTarget::postDispatchEventHandler):
64841         (WebCore::forbidEventDispatch):
64842         (WebCore::allowEventDispatch):
64843         * dom/EventTargetNode.cpp:
64844         (WebCore::EventTargetNode::~EventTargetNode):
64845         (WebCore::EventTargetNode::insertedIntoDocument):
64846         (WebCore::EventTargetNode::removedFromDocument):
64847         (WebCore::EventTargetNode::addEventListener):
64848         (WebCore::EventTargetNode::removeEventListener):
64849         (WebCore::EventTargetNode::removeAllEventListeners):
64850         (WebCore::EventTargetNode::handleLocalEvents):
64851         (WebCore::EventTargetNode::dispatchEvent):
64852         (WebCore::EventTargetNode::dispatchWindowEvent):
64853         * dom/EventTargetNode.h:
64854         (WebCore::EventTargetNode::localEventListeners):
64855         * svg/SVGElement.cpp:
64856         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
64857         (WebCore::SVGElement::dispatchEvent):
64858
64859 2007-12-15  Eric Seidel  <eric@webkit.org>
64860
64861         Reviewed by Oliver.
64862         
64863         Width of SVG elements not applied to container elements
64864         http://bugs.webkit.org/show_bug.cgi?id=16305
64865         Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
64866         This is caused by poor factoring in the render tree.  RenderContainer probably should be a template.
64867
64868         svg/css/css-box-min-width.html
64869
64870         * rendering/RenderSVGRoot.cpp:
64871         (WebCore::RenderSVGRoot::calcPrefWidths): Added.
64872         * rendering/RenderSVGRoot.h:
64873         * css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds
64874
64875 2007-12-15  David Kilzer  <ddkilzer@apple.com>
64876
64877         Fix comment after isSafeScript() was renamed to allowsAccessFrom().
64878
64879         * bindings/js/kjs_window.cpp:
64880         (KJS::createWindow):
64881
64882 2007-12-15  Alp Toker  <alp@atoker.com>
64883
64884         Reviewed by Mark Rowe.
64885
64886         http://bugs.webkit.org/show_bug.cgi?id=16449
64887         cairo_arc() functions hang or crash when passed inf as radius or start/end angle
64888
64889         Add checks. This matches a similar workaround for a CG bug in the CG
64890         graphics backend: <rdar://problem/5189233>
64891
64892         Fixes:
64893           fast/canvas/arc-crash.html
64894           fast/canvas/canvas-with-incorrect-args.html
64895
64896         * platform/graphics/cairo/PathCairo.cpp:
64897         (WebCore::Path::addArc):
64898
64899 2007-12-15  Alexey Proskuryakov  <ap@webkit.org>
64900
64901         Reviewed by Darin.
64902
64903         http://bugs.webkit.org/show_bug.cgi?id=16078
64904         Google Maps zooming via the scroll wheel (almost) always zooms IN only.
64905
64906         * dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
64907         Ensure that delta is never rounded down to zero - we are getting values less than 1 from 
64908         many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.
64909
64910 2007-12-14  Dan Bernstein  <mitz@apple.com>
64911
64912         - Windows build fix
64913
64914         * WebCore.vcproj/WebCore.vcproj:
64915
64916 2007-12-14  Alp Toker  <alp@atoker.com>
64917
64918         GTK+/Qt build fix. Track added files in r28722.
64919
64920         * WebCore.pro:
64921
64922 2007-12-14  Sam Weinig  <sam@webkit.org>
64923
64924         Reviewed by Geoff.
64925
64926         Speed up getElementByClassName.
64927         - This makes getElementByClassName 33% faster on the stress test
64928           linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.
64929
64930         * platform/text/StringImpl.cpp:
64931         (WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.
64932
64933 2007-12-14  Alp Toker  <alp@atoker.com>
64934
64935         Reviewed by Maciej.
64936
64937         http://bugs.webkit.org/show_bug.cgi?id=16432
64938         [GTK] Update license headers
64939
64940         Consent has been given by the authors of these files to change license
64941         to the LGPL as outlined in the bug report.
64942
64943         * platform/gtk/ClipboardGtk.cpp:
64944         * platform/gtk/ContextMenuGtk.cpp:
64945         * platform/gtk/ContextMenuItemGtk.cpp:
64946         * platform/gtk/CookieJarGtk.cpp:
64947         * platform/gtk/CursorGtk.cpp:
64948         * platform/gtk/DragDataGtk.cpp:
64949         * platform/gtk/DragImageGtk.cpp:
64950         * platform/gtk/PasteboardGtk.cpp:
64951         * platform/gtk/PlatformScreenGtk.cpp:
64952         * platform/gtk/PlatformScrollBarGtk.cpp:
64953         * platform/gtk/SearchPopupMenuGtk.cpp:
64954         * platform/gtk/WidgetGtk.cpp:
64955
64956 2007-12-14  Darin Adler  <darin@apple.com>
64957
64958         Reviewed by Adele.
64959
64960         - fix http://bugs.webkit.org/show_bug.cgi?id=16442
64961           navigation policy delegate gets called twice for each load
64962
64963         * loader/MainResourceLoader.cpp:
64964         (WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
64965         That's handled by FrameLoader.
64966
64967         * loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
64968         and continueAfterNavigationPolicy.
64969
64970 2007-12-14  Anders Carlsson  <andersca@apple.com>
64971
64972         Reviewed by Brady.
64973
64974         Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
64975         return nil in that case.
64976         
64977         * loader/FrameLoader.cpp:
64978         (WebCore::FrameLoader::didExplicitOpen):
64979
64980 2007-12-14  David Smith  <catfish.man@gmail.com>
64981
64982         Reviewed by Mitz.
64983
64984         - fix http://bugs.webkit.org/show_bug.cgi?id=14955
64985           Implement getElementsByClassName.
64986
64987         This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
64988         and takes advantage of admitting that it's class-specific to encapsulate class attribute 
64989         parsing so it can be shared.  It also changes the class to use a Vector, rather than a linked
64990         list to store the class names.
64991
64992         Tests: fast/dom/getElementsByClassName/001.html
64993                fast/dom/getElementsByClassName/002.html
64994                fast/dom/getElementsByClassName/003.html
64995                fast/dom/getElementsByClassName/004.html
64996                fast/dom/getElementsByClassName/005.html
64997                fast/dom/getElementsByClassName/006.html
64998                fast/dom/getElementsByClassName/007.html
64999                fast/dom/getElementsByClassName/008.html
65000                fast/dom/getElementsByClassName/009.html
65001                fast/dom/getElementsByClassName/010.xml
65002                fast/dom/getElementsByClassName/011.xml
65003                fast/dom/getElementsByClassName/012.html
65004                fast/dom/getElementsByClassName/013.html
65005                fast/dom/getElementsByClassName/014.html
65006                fast/dom/getElementsByClassName/array/001.html
65007                fast/dom/getElementsByClassName/array/002.html
65008                fast/dom/getElementsByClassName/array/003.html
65009                fast/dom/getElementsByClassName/array/004.html
65010                fast/dom/getElementsByClassName/dumpNodeList.html
65011
65012         * WebCore.xcodeproj/project.pbxproj:
65013         * css/CSSStyleSelector.cpp:
65014         (WebCore::CSSStyleSelector::matchRules):
65015         (WebCore::CSSStyleSelector::checkOneSelector):
65016         * dom/AtomicStringList.h: Removed.
65017         * dom/ClassNames.cpp: Added.
65018         (WebCore::ClassNames::contains):
65019         (WebCore::ClassNames::parseClassAttribute):
65020         * dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
65021         (WebCore::ClassNames::ClassNames):
65022         (WebCore::ClassNames::size):
65023         (WebCore::ClassNames::clear):
65024         (WebCore::ClassNames::operator[]):
65025         (WebCore::isClassWhitespace):
65026         * dom/ClassNodeList.cpp: Added.
65027         (WebCore::ClassNodeList::ClassNodeList):
65028         (WebCore::ClassNodeList::length):
65029         (WebCore::ClassNodeList::item):
65030         (WebCore::ClassNodeList::nodeMatches):
65031         * dom/ClassNodeList.h: Added.
65032         * dom/Document.cpp:
65033         (WebCore::Document::getElementsByName):
65034         (WebCore::Document::getElementsByClassName):
65035         * dom/Document.h:
65036         * dom/Document.idl:
65037         * dom/Element.cpp:
65038         (WebCore::Element::getClassNames):
65039         (WebCore::Element::getElementsByClassName):
65040         * dom/Element.h:
65041         * dom/Element.idl:
65042         * dom/NameNodeList.cpp:
65043         (WebCore::NameNodeList::NameNodeList):
65044         (WebCore::NameNodeList::item):
65045         (WebCore::NameNodeList::nodeMatches):
65046         * dom/NameNodeList.h:
65047         * dom/NamedMappedAttrMap.cpp:
65048         (WebCore::NamedMappedAttrMap::clearAttributes):
65049         (WebCore::NamedMappedAttrMap::parseClassAttribute):
65050         * dom/NamedMappedAttrMap.h:
65051         (WebCore::NamedMappedAttrMap::getClassNames):
65052         * dom/StyledElement.cpp:
65053         (WebCore::StyledElement::getClassNames):
65054         * dom/StyledElement.h:
65055
65056 2007-12-14  Darin Adler  <darin@apple.com>
65057
65058         Reviewed by Sam.
65059
65060         - fix http://bugs.webkit.org/show_bug.cgi?id=16351
65061           FontFallbackList.h doesn't include wtf/PassRefPtr.h
65062           
65063         * platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
65064         * platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.
65065
65066 2007-12-14  Darin Adler  <darin@apple.com>
65067
65068         Reviewed by Alexey.
65069
65070         - http://bugs.webkit.org/show_bug.cgi?id=16420
65071           change regression tests to use document.execCommand instead of textInputController.doCommand
65072
65073         Add a few more operations to document.execCommand.
65074
65075         Finished up the transition to the new Editor::Command, including removing
65076         the Editor::execCommand function.
65077
65078         * WebCore.base.exp: Added Editor::Command::isSupported.
65079         * editing/Editor.h: Removed execCommand.
65080         * editing/EditorCommand.cpp:
65081         (WebCore::expandSelectionToGranularity): Added.
65082         (WebCore::verticalScrollDistance): Added; replaces canScroll.
65083         (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
65084         (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
65085         (WebCore::executeDeleteForward): Ditto.
65086         (WebCore::executeDeleteToBeginningOfLine): Ditto.
65087         (WebCore::executeDeleteToBeginningOfParagraph): Ditto.
65088         (WebCore::executeDeleteToEndOfLine): Ditto.
65089         (WebCore::executeDeleteToEndOfParagraph): Ditto.
65090         (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
65091         Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
65092         removing the explicit scrolling, and letting it be done automatically by code that makes
65093         the caret visible. In some cases the old code would scroll twice which was harmless but
65094         unnecessary.
65095         (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
65096         (WebCore::executeMovePageUp): See MovePageDown above.
65097         (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
65098         (WebCore::executeSelectLine): Ditto.
65099         (WebCore::executeSelectParagraph): Ditto.
65100         (WebCore::executeSelectSentence): Ditto.
65101         (WebCore::executeSelectWord): Ditto.
65102         (WebCore::executeSwapWithMark): Some small tweaks.
65103
65104         * page/ContextMenuController.cpp:
65105         (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
65106         instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
65107         bit more, but I didn't do that this time.
65108
65109         - Removed some obsolete unused code.
65110
65111         * page/mac/EventHandlerMac.mm:
65112         (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
65113         NSTextView. This was left over from when we used NSTextField and NSTextView for form
65114         elements and is no longer used at all.
65115
65116         * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
65117         of the bridge or another. We really need to find a time to tear down the rest of the
65118         bridge, but that's not this patch.
65119
65120         * page/mac/WebCoreFrameBridge.mm:
65121         (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
65122         instead of using a method.
65123         (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
65124         Took out obsolete comment about matching enums (we use a single enum now and have for some
65125         time).
65126         (-[WebCoreFrameBridge selectionGranularity]): Ditto.
65127
65128 2007-12-14  Justin Garcia  <justin.garcia@apple.com>
65129
65130         Reviewed by Darin Adler.
65131
65132         <rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list
65133
65134         * editing/CompositeEditCommand.cpp:
65135         (WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
65136         * editing/CompositeEditCommand.h:
65137         * editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
65138         * editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
65139         * editing/InsertListCommand.cpp:
65140         (WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
65141         it and listNode, if they exists, so that moving listChildNode doesn't put it out
65142         of order.  Added a test case to cover each change.
65143         * editing/SplitElementCommand.cpp:
65144         (WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
65145         tries to split a container at a bogus child, and an early return to avoid a
65146         hang in that case.
65147
65148 2007-12-14  Anders Carlsson  <andersca@apple.com>
65149
65150         Reviewed by Darin and Geoff.
65151
65152         <rdar://problem/5619295> 
65153         REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)
65154
65155         _NPN_CreateScriptObject doesn't take an origin root object anymore.
65156         
65157         * html/HTMLPlugInElement.cpp:
65158         (WebCore::HTMLPlugInElement::createNPObject):
65159         * page/Frame.cpp:
65160         (WebCore::Frame::windowScriptNPObject):
65161
65162 2007-12-14  Dan Bernstein  <mitz@apple.com>
65163
65164         Reviewed by Darin Adler.
65165
65166         - fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
65167           which is the root cause of:
65168           http://bugs.webkit.org/show_bug.cgi?id=12943
65169           box-shadow: small values don't affect shadow position
65170           http://bugs.webkit.org/show_bug.cgi?id=14736
65171           Safari implementation of text-shadow off by 1px
65172
65173         * platform/graphics/cg/GraphicsContextCG.cpp:
65174         (WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
65175         of the offsets passed to CGContextSetShadow* to ensure that the end
65176         result after truncation is the desired integer offsets.
65177
65178 2007-12-13  Alp Toker  <alp@atoker.com>
65179
65180         curl backend build fix for breakage introduced in r28709.
65181
65182         * platform/network/ResourceHandleInternal.h:
65183         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
65184
65185 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
65186
65187         Reviewed by Oliver Hunt.
65188
65189         <rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element
65190
65191         * editing/InsertLineBreakCommand.cpp:
65192         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
65193         handle editing positions, like [input, 0];
65194         * editing/InsertParagraphSeparatorCommand.cpp:
65195         (WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
65196         off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
65197         the input element itself.
65198         Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
65199         nesting a <div>.
65200
65201 2007-12-13  Alp Toker  <alp@atoker.com>
65202
65203         Reviewed by Oliver Hunt.
65204
65205         http://bugs.webkit.org/show_bug.cgi?id=16365
65206         [cURL] Acid2 test segmentation fault
65207
65208         This patch makes the Acid2 test pass.
65209
65210         Defer the cleanup of cancelled jobs and halt further transfer as early
65211         as possible.
65212
65213         Bug found by and initial patch provided by Luca Bruno.
65214
65215         * platform/network/curl/ResourceHandleManager.cpp:
65216         (WebCore::writeCallback):
65217         (WebCore::headerCallback):
65218         (WebCore::ResourceHandleManager::downloadTimerCallback):
65219         (WebCore::ResourceHandleManager::cancel):
65220
65221 2007-12-13  Sam Weinig  <sam@webkit.org>
65222
65223         Reviewed by Mark Rowe.
65224
65225         Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.
65226
65227         * page/InspectorController.cpp:
65228         (WebCore::moveByUnrestricted):
65229         (WebCore::InspectorController::windowScriptObjectAvailable):
65230         (WebCore::InspectorController::moveWindowBy):
65231         * page/InspectorController.h:
65232         * page/inspector/inspector.js:
65233
65234 2007-12-13  Dan Bernstein  <mitz@apple.com>
65235
65236         Reviewed by Dave Hyatt.
65237
65238         - fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function
65239
65240         Test: fast/css/transition-timing-function.html
65241
65242         * css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
65243         not reject non-primitive non-list values, and instead made sure that the
65244         mapping functions rejected them if necessary. This allows non-primitive
65245         timing functions to be mapped.
65246         (WebCore::CSSStyleSelector::mapBackgroundAttachment):
65247         (WebCore::CSSStyleSelector::mapBackgroundClip):
65248         (WebCore::CSSStyleSelector::mapBackgroundComposite):
65249         (WebCore::CSSStyleSelector::mapBackgroundOrigin):
65250         (WebCore::CSSStyleSelector::mapBackgroundImage):
65251         (WebCore::CSSStyleSelector::mapBackgroundRepeat):
65252         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
65253         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
65254         (WebCore::CSSStyleSelector::mapTransitionDuration):
65255         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
65256         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
65257         (WebCore::CSSStyleSelector::mapTransitionProperty):
65258         * css/CSSTimingFunctionValue.cpp:
65259         (WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
65260         regression test.
65261         * css/CSSTimingFunctionValue.h:
65262         (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
65263         Added. Returns true.
65264         * css/CSSValue.h:
65265         (WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
65266         false.
65267
65268 2007-12-13  Steve Falkenburg  <sfalken@apple.com>
65269
65270         Move source file generation into its own vcproj to fix build dependencies.
65271
65272         Reviewed by Adam.
65273
65274         * WebCore.vcproj/WebCore.make:
65275         * WebCore.vcproj/WebCore.sln:
65276         * WebCore.vcproj/WebCore.submit.sln:
65277         * WebCore.vcproj/WebCore.vcproj:
65278         * WebCore.vcproj/WebCoreGenerated.vcproj: Added.
65279
65280 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
65281
65282         Reviewed by Oliver Hunt.
65283         
65284         <rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
65285         
65286         Some of the operations performed in removeHTMLFontStyle were non-undoable.
65287         
65288         I'm having trouble writing a layout test for this because I can't get DRT to
65289         perform editing operations in separate Undo steps without adding unacceptably long
65290         wait times between operations.  I filed:
65291         
65292         <rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps
65293
65294         * editing/ApplyStyleCommand.cpp:
65295         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
65296
65297 2007-12-13  Sam Weinig  <sam@webkit.org>
65298
65299         Reviewed by Anders.
65300
65301         Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
65302         Toolbar dragged inspector cannot be moved beyond screen edges
65303
65304         * page/InspectorController.cpp:
65305         (WebCore::moveByUnrestricted):
65306         (WebCore::InspectorController::windowScriptObjectAvailable):
65307         (WebCore::InspectorController::moveByUnrestricted):
65308         * page/InspectorController.h:
65309         * page/inspector/inspector.js:
65310
65311 2007-12-13  Adam Roben  <aroben@apple.com>
65312
65313         Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
65314
65315         Windows Media Player has a modal message loop that will deliver
65316         messages to us at inappropriate times and we will crash if we handle
65317         them when they are delivered. In PluginViewWin, we add a quirk for
65318         Media Player to set a flag whenever we give the plugin a chance to
65319         execute code, and in SharedTimerWin we check if the plugin is
65320         executing code and repost messages if so.
65321
65322         Reviewed by Anders.
65323
65324         * platform/win/SharedTimerWin.cpp:
65325         (WebCore::TimerWindowWndProc): Repost messages if we're calling a
65326         plugin.
65327         * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
65328         setCallingPlugin(true/false).
65329         (WebCore::PluginViewWin::updateWindow):
65330         (WebCore::PluginViewWin::dispatchNPEvent):
65331         (WebCore::PluginViewWin::setNPWindowRect):
65332         (WebCore::PluginViewWin::start):
65333         (WebCore::PluginViewWin::stop):
65334         (WebCore::PluginViewWin::performRequest):
65335         (WebCore::PluginViewWin::bindingInstance):
65336         (WebCore::PluginViewWin::determineQuirks):
65337         (WebCore::PluginViewWin::setCallingPlugin): Added.
65338         (WebCore::PluginViewWin::isCallingPlugin): Added.
65339         * plugins/win/PluginViewWin.h: Added a new quirk.
65340
65341 2007-12-13  Alp Toker  <alp@atoker.com>
65342
65343         Add a missing DEPENDPATH. Fixes non-clean builds following networking
65344         header changes.
65345
65346         * WebCore.pro:
65347
65348 2007-12-13  Dan Bernstein  <mitz@apple.com>
65349
65350         Reviewed by Anders Carlsson.
65351
65352         - fix regression in fast/text/international/bidi-override on Tiger
65353
65354         * platform/graphics/GlyphPageTreeNode.cpp:
65355         (WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
65356         too. I forgot to add them when I added them to treatAsZeroWidthSpace in
65357         an earlier patch.
65358
65359 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
65360
65361         Reviewed by Darin Adler.
65362
65363         <rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
65364         
65365         The code that checks the selected Range to see if it's inside an anchor
65366         checks ancestors of the Range's commonAncestor() but not the
65367         commonAncestor() itself, and so we'd fail to add markup for the enclosing
65368         anchor to the pasteboard.
65369         
65370         Some enclosing element getters check the node passed to the getter and some
65371         don't.  There were a few places where we incorrectly assumed that enclosing 
65372         element getters check the node passed to the getter, but this is the only 
65373         case that I'm able to write a test case for at the moment.
65374         
65375         In this patch I've:
65376         Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
65377         like the newer enclosing element getters.  This is important because we must
65378         soon add code to the getters so that they understand that some editing positions
65379         inside nodes don't actually refer to positions inside those nodes but positions
65380         before and after them.  Like [table, 0].
65381         Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
65382         n where [n, o] is the position passed to the getter, instead of starting the the parent
65383         of n.  This makes all but a few of the enclosing element getters behave consistently.
65384         Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable 
65385         nodes if the input position was editable.  This fixes a bug that that the above change
65386         exposed.
65387         Changed enclosingTableCell to simply call enclosingNodeWithType.  We should do
65388         this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
65389         unless doing so would affect readability, like it would in the case of enclosingTableCell.
65390         Ditto for enclosingBlock.
65391
65392         * editing/AppendNodeCommand.cpp:
65393         (WebCore::AppendNodeCommand::doApply):
65394         * editing/DeleteButtonController.cpp:
65395         (WebCore::enclosingDeletableElement):
65396         * editing/DeleteSelectionCommand.cpp:
65397         (WebCore::DeleteSelectionCommand::initializePositionData):
65398         (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
65399         * editing/Editor.cpp:
65400         (WebCore::Editor::selectionUnorderedListState):
65401         (WebCore::Editor::selectionOrderedListState):
65402         * editing/IndentOutdentCommand.cpp:
65403         (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
65404         (WebCore::IndentOutdentCommand::outdentParagraph):
65405         * editing/InsertNodeBeforeCommand.cpp:
65406         (WebCore::InsertNodeBeforeCommand::doApply):
65407         * editing/InsertParagraphSeparatorCommand.cpp:
65408         (WebCore::InsertParagraphSeparatorCommand::doApply):
65409         * editing/ReplaceSelectionCommand.cpp:
65410         (WebCore::ReplaceSelectionCommand::shouldMerge):
65411         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
65412         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
65413         * editing/TextIterator.cpp:
65414         * editing/htmlediting.cpp:
65415         (WebCore::enclosingBlock):
65416         (WebCore::enclosingNodeWithTag):
65417         (WebCore::enclosingNodeOfType):
65418         (WebCore::enclosingTableCell):
65419         (WebCore::isTableCell):
65420         * editing/htmlediting.h:
65421         * editing/markup.cpp:
65422         (WebCore::appendStartMarkup):
65423         (WebCore::createMarkup):
65424
65425 2007-12-13  Alexey Proskuryakov  <ap@webkit.org>
65426
65427         Reviewed by Darin.
65428
65429         Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.
65430
65431         * WebCore.base.exp:
65432         * dom/KeyboardEvent.cpp:
65433         (WebCore::KeyboardEvent::charCode):
65434         * page/EventHandler.cpp:
65435         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
65436         (WebCore::EventHandler::keyEvent):
65437         * page/EventHandler.h:
65438         * page/Settings.cpp:
65439         (WebCore::Settings::Settings):
65440         (WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
65441         * page/Settings.h:
65442         (WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
65443         * page/mac/EventHandlerMac.mm:
65444         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
65445         * platform/PlatformKeyboardEvent.h:
65446         * platform/mac/KeyEventMac.mm:
65447         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
65448         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
65449
65450 2007-12-13  Dan Bernstein  <mitz@apple.com>
65451
65452         - build fix
65453
65454         * platform/network/cf/ResourceErrorCF.cpp:
65455
65456 2007-12-13  Antti Koivisto  <antti@apple.com>
65457
65458         Reviewed by Tim Hatcher.
65459
65460         Fix <rdar://problem/5605674> 
65461         Make <video> display WebKit context menu instead of the QTKit one.
65462     
65463         It doesn't really matter where the QTMovieView is.
65464
65465         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
65466         (WebCore::MediaPlayerPrivate::createQTMovieView):
65467         (WebCore::MediaPlayerPrivate::setRect):
65468
65469 2007-12-13  Dan Bernstein  <mitz@apple.com>
65470
65471         Reviewed by Adam Roben.
65472
65473         - ensure that Unicode bidi control characters are rendered as zero width
65474           spaces
65475
65476         Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html
65477
65478         * platform/graphics/Font.h:
65479         (WebCore::Font::treatAsZeroWidthSpace):
65480         * platform/graphics/GlyphPageTreeNode.cpp:
65481         (WebCore::GlyphPageTreeNode::initializePage):
65482         * platform/text/CharacterNames.h:
65483
65484 2007-12-13  Brady Eidson  <beidson@apple.com>
65485
65486         Build fix
65487
65488         * platform/wx/TemporaryLinkStubs.cpp:
65489
65490 2007-12-12  Brady Eidson  <beidson@apple.com>
65491
65492         Build fix
65493
65494         * platform/gtk/TemporaryLinkStubs.cpp:
65495
65496 2007-12-12  Brady Eidson  <beidson@apple.com>
65497
65498         Build fix
65499
65500         * WebCore.pro:
65501         * history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed
65502
65503 2007-12-12  Brady Eidson  <beidson@apple.com>
65504
65505         Build fix
65506
65507         * platform/win/TemporaryLinkStubs.cpp:
65508
65509 2007-12-12  Brady Eidson  <beidson@apple.com>
65510
65511         Reviewed by Sam Weinig
65512
65513         Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)
65514
65515         All back/forward list and page cache related items used to be in WebKit.
65516         When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
65517         Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive.  We accomplished this via some #ifdefs
65518         in CachedPage and having the Mac-only CachedPageMac.mm
65519
65520         To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the 
65521         concept of "CachedPagePlatformData" which can contain anything the platform API wants.  
65522
65523         I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.
65524
65525         * WebCore.base.exp:
65526         * WebCore.xcodeproj/project.pbxproj:
65527
65528         * history/CachedPage.cpp:
65529         (WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
65530         (WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists.  Also delete the CachedPagePlatformData.
65531         (WebCore::CachedPage::setCachedPagePlatformData):
65532         (WebCore::CachedPage::cachedPagePlatformData):
65533         * history/CachedPage.h:
65534
65535         * history/CachedPagePlatformData.h: Added.
65536         (WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
65537         (WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().
65538
65539         * history/PageCache.cpp:
65540         (WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"
65541
65542         * history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.
65543
65544         * loader/FrameLoader.cpp:
65545         (WebCore::FrameLoader::transitionToCommitted): Call the new client methods.  Make some work previously done by WebKitMac cross platform 
65546           (setting the cached DocumentLoader to the Frame).
65547         (WebCore::FrameLoader::cachePageForHistoryItem):  Renamed the client methods
65548
65549         * loader/FrameLoaderClient.h:  The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
65550           become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly
65551
65552         * svg/graphics/SVGImageEmptyClients.h:
65553         (WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
65554         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
65555         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):
65556
65557 2007-12-12  Dan Bernstein  <mitz@apple.com>
65558
65559         Reviewed by Oliver Hunt.
65560
65561         - fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)
65562
65563         * css/CSSStyleSelector.cpp:
65564         (WebCore::CSSStyleSelector::applyProperty): When the font property is
65565         set to 'initial', set the font size to its initial value, 'medium',
65566         and the font family to the standard family.
65567
65568 2007-12-12  Justin Garcia  <justin.garcia@apple.com>
65569
65570         Reviewed by Darin Adler.
65571
65572         <rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection
65573
65574         * editing/DeleteSelectionCommand.cpp:
65575         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
65576         Don't remove the table row that contained the end of the selection if it is where we are
65577         about to place the ending selection.
65578         Don't remove all empty rows after the row that contained the start of the selection,
65579         they might come after the row that contained the end of the selection.
65580
65581 2007-12-12  Sam Weinig  <sam@webkit.org>
65582
65583         Reviewed by Anders Carlsson.
65584
65585         Add button to clear the Web Inspector's console.
65586
65587         * English.lproj/InspectorLocalizedStrings.js:
65588         * page/inspector/ConsolePanel.js:
65589         * page/inspector/inspector.css:
65590
65591 2007-12-12  Anders Carlsson  <andersca@apple.com>
65592
65593         Reviewed by Adam and Jon.
65594
65595         <rdar://problem/5349282>
65596         popup blocking is not applied to plugins on Windows.
65597         
65598         Implement popup blocking. If the plug-in supports the new 
65599         NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
65600         to determine if a plug-in request can open new windows.
65601         
65602         If a plug-in does not support the new API, we assume that a plug-in can open new windows
65603         in response to either mouse click or key press events.
65604         
65605         * plugins/win/PluginViewWin.cpp:
65606         (WebCore::PluginRequestWin::PluginRequestWin):
65607         (WebCore::PluginRequestWin::shouldAllowPopups):
65608         Add new shouldAllowPopups member.
65609         
65610         (WebCore::PluginViewWin::popPopupsStateTimerFired):
65611         Reset the popup state.
65612         
65613         (WebCore::isWindowsMessageUserGesture):
65614         New function that given a windows message id returns whether it's a user gesture or not.
65615         
65616         (WebCore::PluginViewWin::wndProc):
65617         Allow popups if the window message is a user gesture.
65618         
65619         (WebCore::PluginViewWin::dispatchNPEvent):
65620         New method that dispatches an NPEvent, turning on popups if necessary.
65621         
65622         (WebCore::PluginViewWin::paint):
65623         (WebCore::PluginViewWin::handleKeyboardEvent):
65624         (WebCore::PluginViewWin::handleMouseEvent):
65625         Call dispatchNPEvent().
65626         
65627         (WebCore::PluginViewWin::performRequest):
65628         (WebCore::PluginViewWin::load):
65629         Add calls to shouldAllowPopups().
65630         
65631         (WebCore::PluginViewWin::pushPopupsEnabledState):
65632         (WebCore::PluginViewWin::popPopupsEnabledState):
65633         New methods that maintain the popup state stack.
65634         
65635         (WebCore::PluginViewWin::arePopupsAllowed):
65636         New method that returns whether popups are allowed.
65637         
65638         (WebCore::PluginViewWin::PluginViewWin):
65639         * plugins/win/PluginViewWin.h:
65640         Add new instance variables.
65641         
65642         * plugins/win/npapi.cpp:
65643         (NPN_PushPopupsEnabledState):
65644         (NPN_PopPopupsEnabledState):
65645         Implement these.
65646
65647 2007-12-12  Dan Bernstein  <mitz@apple.com>
65648
65649         Reviewed by John Sullivan.
65650
65651         - fix a bug in debug builds only where selecting an earlier item in
65652           a popup selects the first item
65653
65654         Test: fast/forms/menulist-selection-reset.html
65655
65656         * html/HTMLSelectElement.cpp:
65657         (WebCore::HTMLSelectElement::recalcListItems): Added an argument that
65658         tells that function whether it should update the selected state of
65659         option elements.
65660         (WebCore::HTMLSelectElement::checkListItems): Changed to pass false
65661         as the above argument.
65662         * html/HTMLSelectElement.h:
65663
65664 2007-12-12  Adele Peterson  <adele@apple.com>
65665
65666         Reviewed by Geoff.
65667
65668         Fix for <rdar://problem/5643054> Remove cue point implementation for media elements
65669
65670         When the specification for cue ranges is more final, we will implement those.
65671
65672         * html/HTMLMediaElement.cpp:
65673         (WebCore::HTMLMediaElement::~HTMLMediaElement):
65674         (WebCore::HTMLMediaElement::load):
65675         * html/HTMLMediaElement.h:
65676         * html/HTMLMediaElement.idl:
65677         * platform/graphics/MediaPlayer.cpp:
65678         * platform/graphics/MediaPlayer.h:
65679         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
65680         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
65681         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
65682         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
65683         (WebCore::MediaPlayerPrivate::load):
65684         (WebCore::MediaPlayerPrivate::play):
65685         (WebCore::MediaPlayerPrivate::pause):
65686         (WebCore::MediaPlayerPrivate::setEndTime):
65687         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
65688         (WebCore::MediaPlayerPrivate::endPointTimerFired):
65689         (WebCore::MediaPlayerPrivate::timeChanged):
65690         (WebCore::MediaPlayerPrivate::didEnd):
65691         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
65692         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
65693         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
65694         (WebCore::MediaPlayerPrivate::endPointTimerFired):
65695         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
65696
65697 2007-12-12  Darin Fisher  <darin@chromium.org>
65698
65699         Reviewed by Maciej.
65700
65701         Fixes:
65702         http://bugs.webkit.org/show_bug.cgi?id=16408
65703
65704         When navigating back/forward to a http:// link, we should prefer to
65705         load from cache if possible.
65706
65707         * loader/FrameLoader.cpp:
65708
65709 2007-12-12  Anders Carlsson  <andersca@apple.com>
65710
65711         Reviewed by Sam.
65712
65713         <rdar://problem/5132003>
65714         dumpResourceLoadCallbacks is not implemented in DRT on Windows.
65715         
65716         * platform/network/cf/ResourceErrorCF.cpp:
65717         (WebCore::ResourceError::unpackPlatformError):
65718         Handle kCFErrorDomainWinSock.
65719         
65720         * platform/network/cf/ResourceHandleCFNet.cpp:
65721         (WebCore::willSendRequest):
65722         Ignore willSendRequest calls where the redirect response is null, like we do in 
65723         the Mac version.
65724
65725 2007-12-12  Steve Falkenburg  <sfalken@apple.com>
65726
65727         <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
65728         
65729         Reviewed by Anders.
65730
65731         * platform/win/SharedTimerWin.cpp:
65732         (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
65733
65734 2007-12-12  Beth Dakin  <bdakin@apple.com>
65735
65736         Reviewed by Oliver.
65737
65738         Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs 
65739         with width and height 100% clip to 300 x 150
65740
65741         Though it was correct in an earlier iteration of my patch, it is 
65742         not sufficient in the final, committed version to ask if the 
65743         relativeWidthValue() or relativeHeightValue() is greater than 0 
65744         just to determine if one has been set, for, they are now 
65745         initialized to 300 and 150 respectively! This patch instead adds a 
65746         bool to keep track of whether a container size has been set, and 
65747         only used the relative value if it has.
65748
65749         * rendering/RenderSVGRoot.cpp:
65750         (WebCore::RenderSVGRoot::calcViewport):
65751         * svg/SVGSVGElement.cpp:
65752         (WebCore::SVGSVGElement::SVGSVGElement):
65753         * svg/SVGSVGElement.h:
65754         (WebCore::SVGSVGElement::setContainerSize):
65755         (WebCore::SVGSVGElement::hasSetContainerSize):
65756
65757 2007-12-12  Brady Eidson  <beidson@apple.com>
65758
65759         Reviewed by Steve Falkenburg 
65760
65761         <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
65762
65763         * platform/network/ProtectionSpace.cpp:
65764         (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
65765
65766 2007-12-12  Alp Toker  <alp@atoker.com>
65767
65768         Reviewed by Maciej.
65769
65770         http://bugs.webkit.org/show_bug.cgi?id=16388
65771         [GTK] Widget::setCursor() gets called frequently
65772
65773         Cache the current cursor to avoid calling gdk_window_set_cursor() when
65774         there's no change in cursor.
65775
65776         * platform/gtk/WidgetGtk.cpp:
65777         (WebCore::Widget::Widget):
65778         (WebCore::Widget::cursor):
65779         (WebCore::Widget::setCursor):
65780
65781 2007-12-12  Rodney Dawes  <dobey@wayofthemonkey.com>
65782
65783         Reviewed by Maciej.
65784
65785         http://bugs.webkit.org/show_bug.cgi?id=16342
65786         Build Warning and Error fixes in WebCore GTK+
65787
65788         Use C-style casts for casting function pointers to gpointer
65789         Use static_cast<int> to cast a float to int to fix a warning
65790
65791         * platform/gtk/PlatformScrollBarGtk.cpp:
65792         (PlatformScrollbar::PlatformScrollbar):
65793         (PlatformScrollbar::~PlatformScrollbar):
65794         (PlatformScrollbar::gtkValueChanged):
65795         * platform/gtk/ThreadingGtk.cpp:
65796         (callFunctionOnMainThread):
65797         (callOnMainThread):
65798
65799 2007-12-12  Dan Bernstein  <mitz@apple.com>
65800
65801         Reviewed by Darin Adler.
65802
65803         - better fix for a crash when pressing a key that is not associated
65804           with a command
65805
65806         * editing/EditorCommand.cpp:
65807         (WebCore::Editor::command): Return the empty command if the command name
65808         is empty.
65809
65810 2007-12-12  Alexey Proskuryakov  <ap@webkit.org>
65811
65812         Reviewed by Darin.
65813
65814         http://bugs.webkit.org/show_bug.cgi?id=16410
65815         Implement isKeypadEvent() on Windows
65816
65817         Test: platform/win/fast/events/keyLocation-numpad.html
65818
65819         * platform/win/KeyEventWin.cpp:
65820         (WebCore::isKeypadEvent): Added.
65821         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
65822
65823 2007-12-12  Oliver Hunt  <oliver@apple.com>
65824
65825         Reviewed by Maciej.
65826
65827         <rdar://problem/5071781> window.mouseout events are not sent 
65828         to window when mouse moves out of window 
65829
65830         Make PlatformMouseEvent recognise WM_MOUSELEAVE.
65831
65832         * platform/win/PlatformMouseEventWin.cpp:
65833         (WebCore::messageToEventType):
65834         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
65835
65836 2007-12-12  Sam Weinig  <sam@webkit.org>
65837
65838         Fix Mac release build.
65839
65840         * WebCore.base.exp:
65841
65842 2007-12-12  Sam Weinig  <sam@webkit.org>
65843
65844         Build fix for Qt, Gtk, and Wx.
65845
65846         * css/CSSParser.cpp:
65847         (WebCore::CSSParser::parseValue):
65848         * loader/win/FrameLoaderWin.cpp:
65849         (WebCore::FrameLoader::urlSelected):
65850         * platform/network/curl/ResourceHandleManager.cpp:
65851         (WebCore::parseDataUrl):
65852         (WebCore::ResourceHandleManager::startJob):
65853         * platform/network/win/CookieJarWin.cpp:
65854         (WebCore::setCookies):
65855         (WebCore::cookies):
65856         * platform/network/win/ResourceHandleWin.cpp:
65857         (WebCore::ResourceHandle::start):
65858         * platform/qt/PasteboardQt.cpp:
65859         (WebCore::Pasteboard::writeURL):
65860
65861 2007-12-11  Dan Bernstein  <mitz@apple.com>
65862
65863         Reviewed by Maciej Stachowiak.
65864
65865         - allow non-integer font sizes on Windows for small caps
65866
65867         * platform/graphics/win/FontDataWin.cpp:
65868         (WebCore::FontData::smallCapsFontData):
65869         * platform/graphics/win/FontPlatformData.h:
65870         (WebCore::FontPlatformData::size):
65871         (WebCore::FontPlatformData::setSize):
65872         * platform/graphics/win/FontPlatformDataWin.cpp:
65873         (WebCore::FontPlatformData::FontPlatformData):
65874
65875 2007-12-11  Sam Weinig  <sam@webkit.org>
65876
65877         Build fix for Qt, Gtk, and Wx.
65878
65879         * platform/gtk/CookieJarGtk.cpp:
65880         (WebCore::setCookies):
65881         (WebCore::cookies):
65882         * platform/qt/ClipboardQt.cpp:
65883         (WebCore::ClipboardQt::writeURL):
65884         * platform/qt/CookieJarQt.cpp:
65885         (WebCore::setCookies):
65886         (WebCore::cookies):
65887         * platform/wx/PasteboardWx.cpp:
65888         (WebCore::Pasteboard::writeURL):
65889
65890 2007-12-11  Sam Weinig  <sam@webkit.org>
65891
65892         Reviewed by Darin Adler.
65893
65894         Scrub URL out of the tree in preparation for renaming KURL to URL.
65895             - Renames Document::URL() -> Document::url()
65896             - Renames DocumentLoader::URL() -> DocumentLoader::url()
65897             - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
65898             - Remove FrameLoader::URL()
65899             - Various variable renames.
65900
65901         The change from Document::URL() to Document::url() required changes
65902         to the bindings scripts as well, because URL() is the name of a DOM
65903         method.  The code generation scripts now have code to special case URL()
65904         to url().
65905
65906         * WebCore.base.exp:
65907         * bindings/js/kjs_events.cpp:
65908         (WebCore::JSLazyEventListener::parseCode):
65909         * bindings/js/kjs_navigator.cpp:
65910         (KJS::Navigator::getValueProperty):
65911         * bindings/js/kjs_proxy.cpp:
65912         (WebCore::KJSProxy::initScript):
65913         * bindings/js/kjs_window.cpp:
65914         (KJS::Window::put):
65915         (KJS::Window::allowsAccessFrom):
65916         (KJS::Location::put):
65917         (KJS::LocationProtoFuncReplace::callAsFunction):
65918         (KJS::LocationProtoFuncReload::callAsFunction):
65919         (KJS::LocationProtoFuncAssign::callAsFunction):
65920         * bindings/scripts/CodeGenerator.pm:
65921         * bindings/scripts/CodeGeneratorCOM.pm:
65922         * bindings/scripts/CodeGeneratorJS.pm:
65923         * bindings/scripts/CodeGeneratorObjC.pm:
65924         * css/CSSImportRule.cpp:
65925         (WebCore::CSSImportRule::insertedIntoParent):
65926         * css/CSSParser.cpp:
65927         (WebCore::CSSParser::parseValue):
65928         (WebCore::CSSParser::parseContent):
65929         (WebCore::CSSParser::parseBackgroundImage):
65930         (WebCore::CSSParser::parseFontFaceSrc):
65931         (WebCore::CSSParser::parseBorderImage):
65932         (WebCore::CSSParser::createImportRule):
65933         * css/CSSStyleSelector.cpp:
65934         (WebCore::CSSStyleSelector::setEncodedURL):
65935         * dom/Document.cpp:
65936         (WebCore::Document::processHttpEquiv):
65937         (WebCore::Document::cookie):
65938         (WebCore::Document::setCookie):
65939         (WebCore::Document::domain):
65940         (WebCore::Document::setDomain):
65941         (WebCore::Document::getImageMap):
65942         (WebCore::Document::completeURL):
65943         * dom/Document.h:
65944         (WebCore::Document::url):
65945         (WebCore::Document::baseURL):
65946         * dom/Element.cpp:
65947         (WebCore::Element::baseURI):
65948         * dom/ProcessingInstruction.h:
65949         * dom/StyledElement.cpp:
65950         (WebCore::StyledElement::addCSSImageProperty):
65951         * dom/StyledElement.h:
65952         * dom/XMLTokenizer.cpp:
65953         (WebCore::XMLTokenizer::endElementNs):
65954         (WebCore::XMLTokenizer::end):
65955         * dom/XMLTokenizer.h:
65956         * editing/Editor.cpp:
65957         (WebCore::Editor::copy):
65958         * editing/markup.cpp:
65959         (WebCore::completeURLs):
65960         * history/CachedPage.h:
65961         (WebCore::CachedPage::url):
65962         * history/HistoryItem.cpp:
65963         (WebCore::HistoryItem::HistoryItem):
65964         (WebCore::HistoryItem::setURL):
65965         (WebCore::HistoryItem::isCurrentDocument):
65966         * html/HTMLBaseElement.cpp:
65967         (WebCore::HTMLBaseElement::process):
65968         * html/HTMLParser.cpp:
65969         (WebCore::HTMLParser::reportErrorToConsole):
65970         * html/HTMLScriptElement.cpp:
65971         (WebCore::HTMLScriptElement::childrenChanged):
65972         (WebCore::HTMLScriptElement::insertedIntoDocument):
65973         (WebCore::HTMLScriptElement::evaluateScript):
65974         * html/HTMLScriptElement.h:
65975         * html/HTMLTokenizer.cpp:
65976         (WebCore::HTMLTokenizer::scriptExecution):
65977         * loader/Cache.cpp:
65978         (WebCore::createResource):
65979         (WebCore::Cache::requestResource):
65980         * loader/CachedCSSStyleSheet.cpp:
65981         (WebCore::CachedCSSStyleSheet::checkNotify):
65982         * loader/CachedResource.cpp:
65983         (WebCore::CachedResource::CachedResource):
65984         * loader/CachedResource.h:
65985         (WebCore::CachedResource::):
65986         * loader/CachedScript.h:
65987         * loader/DocLoader.cpp:
65988         (WebCore::DocLoader::checkForReload):
65989         (WebCore::DocLoader::requestResource):
65990         * loader/DocumentLoader.cpp:
65991         (WebCore::DocumentLoader::url):
65992         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
65993         (WebCore::DocumentLoader::setRequest):
65994         (WebCore::DocumentLoader::startLoadingMainResource):
65995         * loader/DocumentLoader.h:
65996         * loader/FrameLoader.cpp:
65997         (WebCore::FormSubmission::FormSubmission):
65998         (WebCore::ScheduledRedirection::ScheduledRedirection):
65999         (WebCore::FrameLoader::changeLocation):
66000         (WebCore::FrameLoader::urlSelected):
66001         (WebCore::FrameLoader::requestFrame):
66002         (WebCore::FrameLoader::loadSubframe):
66003         (WebCore::FrameLoader::submitFormAgain):
66004         (WebCore::FrameLoader::submitForm):
66005         (WebCore::FrameLoader::didExplicitOpen):
66006         (WebCore::FrameLoader::replaceContentsWithScriptResult):
66007         (WebCore::FrameLoader::executeScript):
66008         (WebCore::FrameLoader::receivedFirstData):
66009         (WebCore::FrameLoader::begin):
66010         (WebCore::FrameLoader::startIconLoader):
66011         (WebCore::FrameLoader::commitIconURLToIconDatabase):
66012         (WebCore::FrameLoader::scheduleRefresh):
66013         (WebCore::FrameLoader::redirectionTimerFired):
66014         (WebCore::FrameLoader::loadPlugin):
66015         (WebCore::FrameLoader::didNotOpenURL):
66016         (WebCore::FrameLoader::updatePolicyBaseURL):
66017         (WebCore::FrameLoader::scrollToAnchor):
66018         (WebCore::FrameLoader::startRedirectionTimer):
66019         (WebCore::FrameLoader::load):
66020         (WebCore::FrameLoader::canLoad):
66021         (WebCore::FrameLoader::shouldHideReferrer):
66022         (WebCore::FrameLoader::shouldAllowNavigation):
66023         (WebCore::FrameLoader::commitProvisionalLoad):
66024         (WebCore::FrameLoader::clientRedirected):
66025         (WebCore::FrameLoader::open):
66026         (WebCore::FrameLoader::didTellBridgeAboutLoad):
66027         (WebCore::FrameLoader::haveToldBridgeAboutLoad):
66028         (WebCore::FrameLoader::post):
66029         (WebCore::FrameLoader::loadResourceSynchronously):
66030         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
66031         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
66032         (WebCore::FrameLoader::createHistoryItem):
66033         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
66034         (WebCore::FrameLoader::loadItem):
66035         (WebCore::FrameLoader::urlsMatchItem):
66036         (WebCore::FrameLoader::recursiveGoToItem):
66037         (WebCore::FrameLoader::updateHistoryForStandardLoad):
66038         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
66039         * loader/FrameLoader.h:
66040         (WebCore::FrameLoader::url):
66041         * loader/ImageDocument.cpp:
66042         (WebCore::ImageDocument::createDocumentStructure):
66043         * loader/MainResourceLoader.cpp:
66044         (WebCore::shouldLoadAsEmptyDocument):
66045         (WebCore::MainResourceLoader::didFinishLoading):
66046         * loader/NavigationAction.cpp:
66047         (WebCore::NavigationAction::NavigationAction):
66048         * loader/NavigationAction.h:
66049         (WebCore::NavigationAction::url):
66050         * loader/PluginDocument.cpp:
66051         (WebCore::PluginTokenizer::createDocumentStructure):
66052         * loader/SubresourceLoader.cpp:
66053         (WebCore::SubresourceLoader::load):
66054         (WebCore::SubresourceLoader::create):
66055         * loader/icon/IconLoader.cpp:
66056         (WebCore::IconLoader::startLoading):
66057         (WebCore::IconLoader::finishLoading):
66058         * loader/loader.cpp:
66059         (WebCore::Loader::servePendingRequests):
66060         * loader/mac/LoaderNSURLExtras.m:
66061         (urlOriginalData):
66062         * page/Chrome.cpp:
66063         (WebCore::Chrome::setToolTip):
66064         * page/ContextMenuController.cpp:
66065         (WebCore::ContextMenuController::contextMenuItemSelected):
66066         * page/Frame.cpp:
66067         (WebCore::Frame::setUserStyleSheetLocation):
66068         * page/InspectorController.cpp:
66069         (WebCore::InspectorResource::type):
66070         (WebCore::addSourceToFrame):
66071         (WebCore::InspectorController::addScriptResource):
66072         (WebCore::InspectorController::updateScriptResourceRequest):
66073         (WebCore::InspectorController::didCommitLoad):
66074         * page/mac/WebCoreFrameBridge.mm:
66075         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
66076         * platform/KURL.h:
66077         (WebCore::KURL::string):
66078         (WebCore::KURL::deprecatedString):
66079         * platform/mac/ClipboardMac.mm:
66080         (WebCore::ClipboardMac::getData):
66081         * platform/mac/CookieJar.mm:
66082         (WebCore::cookies):
66083         (WebCore::setCookies):
66084         * platform/mac/PasteboardMac.mm:
66085         (WebCore::Pasteboard::writeURL):
66086         (WebCore::fileWrapperForImage):
66087         (WebCore::Pasteboard::writeImage):
66088         (WebCore::Pasteboard::plainText):
66089         * platform/network/ResourceHandle.cpp:
66090         (WebCore::ResourceHandle::portAllowed):
66091         * platform/network/ResourceRequestBase.cpp:
66092         (WebCore::ResourceRequestBase::isNull):
66093         * platform/network/cf/ResourceHandleCFNet.cpp:
66094         (WebCore::willSendRequest):
66095         (WebCore::didReceiveResponse):
66096         (WebCore::didReceiveData):
66097         (WebCore::didFinishLoading):
66098         (WebCore::didFail):
66099         (WebCore::didReceiveChallenge):
66100         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
66101         (WebCore::ResourceHandle::~ResourceHandle):
66102         (WebCore::ResourceHandle::start):
66103         * platform/win/ClipboardUtilitiesWin.cpp:
66104         (WebCore::createGlobalData):
66105         (WebCore::urlToMarkup):
66106         * platform/win/ClipboardWin.cpp:
66107         (WebCore::writeURL):
66108         (WebCore::writeImageToDataObject):
66109         (WebCore::ClipboardWin::writeURL):
66110         (WebCore::ClipboardWin::writeRange):
66111         * platform/win/PasteboardWin.cpp:
66112         (WebCore::Pasteboard::writeSelection):
66113         (WebCore::Pasteboard::writeURL):
66114         * plugins/win/PluginDatabaseWin.cpp:
66115         (WebCore::PluginDatabaseWin::findPlugin):
66116         * plugins/win/PluginStreamWin.cpp:
66117         (WebCore::PluginStreamWin::startStream):
66118         (WebCore::PluginStreamWin::destroyStream):
66119         * plugins/win/PluginViewWin.cpp:
66120         (WebCore::scriptStringIfJavaScriptURL):
66121         (WebCore::PluginViewWin::performRequest):
66122         * svg/SVGImageLoader.cpp:
66123         (WebCore::SVGImageLoader::updateFromElement):
66124         * xml/XMLHttpRequest.cpp:
66125         (WebCore::XMLHttpRequest::getResponseXML):
66126         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
66127         * xml/XSLImportRule.cpp:
66128         (WebCore::XSLImportRule::loadSheet):
66129         * xml/XSLTProcessor.cpp:
66130         (WebCore::XSLTProcessor::createDocumentFromSource):
66131         (WebCore::xsltStylesheetPointer):
66132         (WebCore::xmlDocPtrFromNode):
66133
66134 2007-12-11  Beth Dakin  <bdakin@apple.com>
66135
66136         Reviewed by Darin.
66137
66138         Fix for <rdar://problem/5641255> SVGs with width and height 100% 
66139         fail to render when used as background images
66140
66141         CachedImage now has a setImageContainerSize function. It is only 
66142         needed for SVG right now.
66143         * loader/CachedImage.cpp:
66144         (WebCore::CachedImage::setImageContainerSize):
66145         * loader/CachedImage.h:
66146
66147         Relatively sized SVGs have no intrinsic size. Because this call is 
66148         low-level enough that we cannot pass in the container size and get 
66149         the real size of the SVG, we need to know if it has relative 
66150         dimensions, and if so, we need to get the size from scaledTileSize.
66151         * platform/graphics/Image.cpp:
66152         (WebCore::Image::drawTiled):
66153         * platform/graphics/Image.h:
66154         (WebCore::Image::setContainerSize):
66155         (WebCore::Image::hasRelativeWidth):
66156         (WebCore::Image::hasRelativeHeight):
66157
66158         Re-factored calculateBackgroundSize a bit so that it returns an 
66159         IntSize. Made it a member function so that it can send m_width and 
66160         m_height along to setImageContainerSize.
66161         * rendering/RenderBox.cpp:
66162         (WebCore::RenderBox::calculateBackgroundSize):
66163         (WebCore::RenderBox::calculateBackgroundImageGeometry):
66164         * rendering/RenderBox.h:
66165
66166         Need to account for relatively sized SVGs in calcViewport()
66167         * rendering/RenderSVGRoot.cpp:
66168         (WebCore::RenderSVGRoot::calcViewport):
66169         
66170         Added new member variables to store the size of the SVG container. 
66171         relativeWidthValue() and relativeHeightValue() use the stored SVG 
66172         container size to correctly calculate the width and height of a 
66173         relatively sized SVG.
66174         * svg/SVGSVGElement.cpp:
66175         (WebCore::SVGSVGElement::SVGSVGElement):
66176         (WebCore::SVGSVGElement::setContainerSize):
66177         (WebCore::SVGSVGElement::relativeWidthValue):
66178         (WebCore::SVGSVGElement::relativeHeightValue):
66179         * svg/SVGSVGElement.h:
66180         (WebCore::SVGSVGElement::containerSize):
66181         
66182         Re-factored size calculations to use the size of the container.
66183         * svg/graphics/SVGImage.cpp:
66184         (WebCore::SVGImage::setContainerSize):
66185         (WebCore::SVGImage::size):
66186         (WebCore::SVGImage::hasRelativeWidth):
66187         (WebCore::SVGImage::hasRelativeHeight):
66188         * svg/graphics/SVGImage.h:
66189
66190 2007-12-11  Darin Adler  <darin@apple.com>
66191
66192         * editing/Editor.cpp:
66193         (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
66194         a missing return statement.
66195
66196 2007-12-11  Darin Adler  <darin@apple.com>
66197
66198         Reviewed by Geoff.
66199
66200         - exposed many new commands to the DOM Document executeCommand function by
66201           merging the JSEditor and Editor executeCommand implementations
66202         - replaced the execCommand function with a EditorCommand class
66203         - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
66204         - replaced the WTF::CaseInsensitiveHash<> class template with the
66205           WebCore::CaseFoldingHash class
66206
66207         * WebCore.base.exp: Updated.
66208         * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
66209         * WebCore.vcproj/WebCore.vcproj: Ditto.
66210         * WebCore.xcodeproj/project.pbxproj: Ditto.
66211         * WebCoreSources.bkl: Ditto.
66212
66213         * dom/Document.cpp:
66214         (WebCore::Document::Document): Removed code to set up m_jsEditor.
66215         (WebCore::Document::~Document): Removed code to delete m_jsEditor.
66216         (WebCore::command): Added. Helper function that gets an Editor::Command.
66217         (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
66218         JSEditor.
66219         (WebCore::Document::queryCommandEnabled): Ditto.
66220         (WebCore::Document::queryCommandIndeterm):
66221         (WebCore::Document::queryCommandState): Ditto.
66222         (WebCore::Document::queryCommandSupported): Ditto.
66223         (WebCore::Document::queryCommandValue): Ditto.
66224
66225         * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
66226         use CaseFoldingHash.
66227
66228         * editing/Editor.cpp:
66229         (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
66230         made into a member function so it is accessible from the new EditorCommand.cpp file.
66231         Also changed to get the selection from the passed-in frame instead of from the
66232         page, because this should work on the targeted frame unless the event overrides it.
66233         (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
66234         (WebCore::Editor::handleInputMethodKeypress): Ditto.
66235         (WebCore::imageElementFromImageDocument): Renamed and changed to return
66236         a HTMLImageElement instead of a Node*.
66237         (WebCore::Editor::canCopy): Updated for name change.
66238         (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
66239         (WebCore::Editor::selectionOrderedListState): Ditto.
66240         (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
66241         (WebCore::updateState): Moved here from Frame.
66242         (WebCore::Editor::selectionHasStyle): Ditto.
66243         (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
66244         (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
66245         selectionForCommand change.
66246         (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
66247         (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
66248         machinery since it's no longer in this file as a local function.
66249         (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
66250         (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
66251         local variable.
66252         (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
66253         without a kill ring, but it's relatively straightforward to implement one.
66254         (WebCore::Editor::appendToKillRing): Put default implementation here for
66255         platforms other than Mac. We should probably put a simple kill ring
66256         implementation here -- doesn't need to be shared with the OS oh platforms
66257         other than Mac.
66258         (WebCore::Editor::prependToKillRing): Ditto.
66259         (WebCore::Editor::yankFromKillRing): Ditto.
66260         (WebCore::Editor::startNewKillRingSequence): Ditto.
66261         (WebCore::Editor::setKillRingToYankedState): Ditto.
66262
66263         * editing/Editor.h: Moved the TriState enum here instead of inside the
66264         Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
66265         here from the Frame class. Added Editor::Command class with five functions
66266         for the various things you can do with a command (execute it, check if it
66267         can be used, and its state and value). Changed hte parameter of
66268         setBaseWritingDirection to be a const String& rather than a String.
66269         Got rid of the kill-ring-related operations, but added the kill ring
66270         functions themselves. Made selectedRange() public. Made the
66271         m_startNewKillRingSequence not Mac-specific and added "should" to its
66272         name.
66273
66274         * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
66275         Retained only the editing commands.
66276         (WebCore::targetFrame): Moved to the top of the file.
66277         (WebCore::executeApplyStyle): Added. Helper function for commands
66278         that need to apply styles.
66279         (WebCore::executeToggleStyle): Added. Helper function for commands
66280         that need to toggle styles based on the style of the start of selection.
66281         (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
66282         for paragraph styles.
66283         (WebCore::executeInsertFragment): Added. Helper function for commands
66284         that need to insert a DOM fragment.
66285         (WebCore::executeInsertNode): Added. Helper function for commands that
66286         need to insert a tree rooted in a single DOM node.
66287         (WebCore::stateStyle): Added. Helper function for the state of commands
66288         that represent style.
66289         (WebCore::valueStyle): Added. Helper function for the value of commands
66290         that represent style.
66291         (WebCore::canScroll): Added. Helper functions for some move and scroll
66292         commands that need to determine if the renderer they are in can scroll.
66293         (WebCore::unionDOMRanges): Moved here from EditorMac.
66294         (WebCore::executeBackColor):
66295         (WebCore::executeBackwardDelete):
66296         (WebCore::executeCopy):
66297         (WebCore::executeCreateLink):
66298         (WebCore::executeCut):
66299         (WebCore::executeDelete):
66300         (WebCore::executeDeleteToMark):
66301         (WebCore::executeDeleteWordBackward):
66302         (WebCore::executeDeleteWordForward):
66303         (WebCore::executeFindString):
66304         (WebCore::executeFontName):
66305         (WebCore::executeFontSize):
66306         (WebCore::executeFontSizeDelta):
66307         (WebCore::executeForeColor):
66308         (WebCore::executeFormatBlock):
66309         (WebCore::executeForwardDelete):
66310         (WebCore::executeIndent):
66311         (WebCore::executeInsertBacktab):
66312         (WebCore::executeInsertHorizontalRule):
66313         (WebCore::executeInsertHTML):
66314         (WebCore::executeInsertImage):
66315         (WebCore::executeInsertLineBreak):
66316         (WebCore::executeInsertNewline):
66317         (WebCore::executeInsertNewlineInQuotedContent):
66318         (WebCore::executeInsertOrderedList):
66319         (WebCore::executeInsertParagraph):
66320         (WebCore::executeInsertTab):
66321         (WebCore::executeInsertText):
66322         (WebCore::executeInsertUnorderedList):
66323         (WebCore::executeJustifyCenter):
66324         (WebCore::executeJustifyFull):
66325         (WebCore::executeJustifyLeft):
66326         (WebCore::executeJustifyRight):
66327         (WebCore::executeMoveBackward):
66328         (WebCore::executeMoveBackwardAndModifySelection):
66329         (WebCore::executeMoveDown):
66330         (WebCore::executeMoveDownAndModifySelection):
66331         (WebCore::executeMoveDownByPageAndModifyCaret):
66332         (WebCore::executeMoveForward):
66333         (WebCore::executeMoveForwardAndModifySelection):
66334         (WebCore::executeMoveLeft):
66335         (WebCore::executeMoveLeftAndModifySelection):
66336         (WebCore::executeMoveRight):
66337         (WebCore::executeMoveRightAndModifySelection):
66338         (WebCore::executeMoveToBeginningOfDocument):
66339         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
66340         (WebCore::executeMoveToBeginningOfLine):
66341         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
66342         (WebCore::executeMoveToBeginningOfParagraph):
66343         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
66344         (WebCore::executeMoveToBeginningOfSentence):
66345         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
66346         (WebCore::executeMoveToEndOfDocument):
66347         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
66348         (WebCore::executeMoveToEndOfSentence):
66349         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
66350         (WebCore::executeMoveToEndOfLine):
66351         (WebCore::executeMoveToEndOfLineAndModifySelection):
66352         (WebCore::executeMoveToEndOfParagraph):
66353         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
66354         (WebCore::executeMoveParagraphBackwardAndModifySelection):
66355         (WebCore::executeMoveParagraphForwardAndModifySelection):
66356         (WebCore::executeMoveUp):
66357         (WebCore::executeMoveUpAndModifySelection):
66358         (WebCore::executeMoveUpByPageAndModifyCaret):
66359         (WebCore::executeMoveWordBackward):
66360         (WebCore::executeMoveWordBackwardAndModifySelection):
66361         (WebCore::executeMoveWordForward):
66362         (WebCore::executeMoveWordForwardAndModifySelection):
66363         (WebCore::executeMoveWordLeft):
66364         (WebCore::executeMoveWordLeftAndModifySelection):
66365         (WebCore::executeMoveWordRight):
66366         (WebCore::executeMoveWordRightAndModifySelection):
66367         (WebCore::executeOutdent):
66368         (WebCore::executePaste):
66369         (WebCore::executePasteAndMatchStyle):
66370         (WebCore::executePrint):
66371         (WebCore::executeRedo):
66372         (WebCore::executeRemoveFormat):
66373         (WebCore::executeSelectAll):
66374         (WebCore::executeSelectToMark):
66375         (WebCore::executeSetMark):
66376         (WebCore::executeStrikethrough):
66377         (WebCore::executeSubscript):
66378         (WebCore::executeSuperscript):
66379         (WebCore::executeSwapWithMark):
66380         (WebCore::executeToggleBold):
66381         (WebCore::executeToggleItalic):
66382         (WebCore::executeTranspose):
66383         (WebCore::executeUnderline):
66384         (WebCore::executeUndo):
66385         (WebCore::executeUnlink):
66386         (WebCore::executeUnscript):
66387         (WebCore::executeUnselect):
66388         (WebCore::executeYank):
66389         (WebCore::executeYankAndSelect):
66390         (WebCore::supported):
66391         (WebCore::supportedPaste):
66392         (WebCore::enabled):
66393         (WebCore::enabledAnySelection):
66394         (WebCore::enabledAnySelectionAndMark):
66395         (WebCore::enableCaretInEditableText):
66396         (WebCore::enabledCopy):
66397         (WebCore::enabledCut):
66398         (WebCore::enabledInEditableText):
66399         (WebCore::enabledInRichlyEditableText):
66400         (WebCore::enabledPaste):
66401         (WebCore::enabledRangeInEditableText):
66402         (WebCore::enabledRangeInRichlyEditableText):
66403         (WebCore::enabledRedo):
66404         (WebCore::enabledUndo):
66405         (WebCore::stateNone):
66406         (WebCore::stateBold):
66407         (WebCore::stateItalic):
66408         (WebCore::stateOrderedList):
66409         (WebCore::stateStrikethrough):
66410         (WebCore::stateSubscript):
66411         (WebCore::stateSuperscript):
66412         (WebCore::stateUnderline):
66413         (WebCore::stateUnorderedList):
66414         (WebCore::valueNull):
66415         (WebCore::valueBackColor):
66416         (WebCore::valueFontName):
66417         (WebCore::valueFontSize):
66418         (WebCore::valueFontSizeDelta):
66419         (WebCore::valueForeColor):
66420         (WebCore::createCommandMap): Added lots of commands, including all the commands
66421         from JSEditor. A few commands needed different behavior based on whether they are
66422         invoked from the DOM or a keyboard binding.
66423         (WebCore::Editor::command): Added. Gets a command object given a name.
66424         (WebCore::Editor::Command::Command): Added.
66425         (WebCore::Editor::Command::execute): Added.
66426         (WebCore::Editor::Command::isSupported): Added.
66427         (WebCore::Editor::Command::isEnabled): Added.
66428         (WebCore::Editor::Command::state): Added.
66429         (WebCore::Editor::Command::value): Added.
66430         (WebCore::Editor::execCommand): Changed to call command().execute().
66431
66432         * editing/JSEditor.cpp: Removed.
66433         * editing/JSEditor.h: Removed.
66434
66435         * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
66436         kill ring commands, so the kill ring commands can be cross-platform.
66437         (WebCore::Editor::appendToKillRing): Added.
66438         (WebCore::Editor::prependToKillRing): Added.
66439         (WebCore::Editor::yankFromKillRing): Added.
66440         (WebCore::Editor::startNewKillRingSequence): Added.
66441         (WebCore::Editor::setKillRingToYankedState): Added.
66442
66443         * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
66444         * page/Frame.h: Ditto.
66445
66446         * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
66447         * page/mac/WebCoreFrameBridge.h: Ditto.
66448
66449         * platform/ContextMenu.cpp:
66450         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
66451
66452         * platform/text/StringHash.h:
66453         (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
66454         (WebCore::StringHash::equal): Ditto.
66455         (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
66456         classes into this.
66457         (WebCore::CaseFoldingHash::equal): Ditto.
66458
66459         * platform/text/StringImpl.cpp:
66460         (WebCore::equal): Changed to invoke StringHash.
66461         (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
66462
66463         * dom/DOMImplementation.cpp:
66464         (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
66465         (WebCore::isSVG10Feature): Ditto.
66466         (WebCore::isSVG11Feature): Ditto.
66467         * loader/FrameLoader.cpp:
66468         (WebCore::localSchemes): Ditto.
66469         * platform/graphics/FontCache.cpp:
66470         (WebCore::computeHash): Ditto.
66471         * platform/network/HTTPHeaderMap.h: Ditto.
66472         * platform/text/PlatformString.h: Ditto.
66473         * platform/text/StringImpl.h: Ditto.
66474         * rendering/RenderPartObject.cpp:
66475         (WebCore::RenderPartObject::updateWidget): Ditto.
66476         * xml/XMLHttpRequest.cpp:
66477         (WebCore::canSetRequestHeader): Ditto.
66478
66479         * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
66480
66481 2007-12-11  Darin Adler  <darin@apple.com>
66482
66483         * platform/wx/KeyboardEventWx.cpp:
66484         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
66485         WX build. Changes the code around a little bit.
66486
66487 2007-12-11  Darin Adler  <darin@apple.com>
66488
66489         * platform/wx/KeyboardEventWx.cpp:
66490         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
66491
66492 2007-12-11  Dan Bernstein  <mitz@apple.com>
66493
66494         Reviewed by Darin Adler.
66495
66496         - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
66497
66498         Test: fast/text/international/complex-character-based-fallback.html
66499
66500         * platform/graphics/Font.cpp:
66501         (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
66502         that forces this function to use the small caps font. It is used for
66503         combining marks that need to combine with a small cap.
66504         * platform/graphics/Font.h:
66505         * platform/win/UniscribeController.cpp:
66506         (WebCore::UniscribeController::advance): Changed to split the string
66507         into runs of characters that will be rendered using the same FontData.
66508         This is done by calling glyphDataForCharacter() for each cahracter to
66509         find the FontData it should be rendered with.
66510         (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
66511         argument that is passed on to shapeAndPlaceItem() instead of the
66512         smallCaps argument.
66513         (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
66514         argument and removed the font fallback logic from this function, as
66515         it is now expected to be called with an item all of whose characters
66516         can be rendered with the given fontData.
66517         * platform/win/UniscribeController.h:
66518
66519 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
66520
66521         Reviewed by Darin.
66522
66523         <rdar://problem/5535636>
66524         Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
66525
66526         http://bugs.webkit.org/show_bug.cgi?id=13916
66527         JavaScript detects Tab as a character input on a textfield validation
66528
66529         Test: platform/win/fast/events/double-dead-char.html
66530
66531         * platform/PlatformKeyboardEvent.h:
66532         (WebCore::PlatformKeyboardEvent::):
66533         (WebCore::PlatformKeyboardEvent::type):
66534         (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
66535         (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
66536         (WebCore::PlatformKeyboardEvent::keyIdentifier):
66537         (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
66538         Added an explicit type member to differentiate different kinds of events:
66539           RawKeyDown == keydown == WM_KEYDOWN
66540           KeyUp == keyup == WM_KEYUP
66541           Char == keypress == WM_CHAR
66542           KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
66543           event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
66544
66545         * platform/mac/KeyEventMac.mm:
66546         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
66547         Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
66548         (WebCore::windowsKeyCodeForKeyEvent): 
66549         (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
66550         that it still fails.
66551         (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
66552         should not be available in those (because it cannot be provided on Windows).
66553
66554         * platform/win/KeyEventWin.cpp:
66555         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
66556         Used standard Windows constants for bit masks instead of our own ones.
66557         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
66558
66559         * platform/gtk/KeyEventGtk.cpp:
66560         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
66561         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
66562         * platform/qt/PlatformKeyboardEventQt.cpp:
66563         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
66564         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
66565         * platform/wx/KeyboardEventWx.cpp:
66566         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
66567         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
66568         Updated for cross-platform changes as much as it was possible without appropriate build
66569         environments.
66570
66571         * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
66572         convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
66573
66574         * bridge/EditorClient.h:
66575         Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
66576         Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
66577
66578         * dom/Document.h:
66579         * dom/Document.cpp:
66580         (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
66581
66582         * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
66583
66584         * dom/KeyboardEvent.cpp:
66585         (WebCore::eventTypeForKeyboardEventType):
66586         (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
66587         now straightforward, so scary hacks such as using autorepeat to distinguish types are
66588         not needed.
66589         (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
66590         (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
66591         Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
66592         character codes.
66593
66594         * editing/Editor.h:
66595         * editing/Editor.cpp:
66596         (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
66597         (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
66598         (WebCore::Editor::handleInputMethodKeydown): Ditto.
66599
66600         * html/HTMLButtonElement.cpp:
66601         (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
66602         appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
66603         not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
66604         highlighted when Space is pressed.
66605
66606         * html/HTMLInputElement.cpp:
66607         (WebCore::HTMLInputElement::defaultEventHandler):
66608         * html/HTMLSelectElement.cpp:
66609         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
66610         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
66611         Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
66612         described above.
66613
66614         * page/EventHandler.cpp:
66615         (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
66616         to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
66617         handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
66618         now being handleInputMethodKeydown().
66619         (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
66620         (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
66621         as default tab handling happens when processing keydown.
66622         (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
66623         event handling. Fixed accesskey processing to use information that's available in a raw keydown
66624         event.
66625
66626         (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
66627         handle tabs during keydown processing.
66628
66629         * page/mac/EventHandlerMac.mm:
66630         (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
66631         what callers want.
66632
66633         * platform/text/PlatformString.h:
66634         * platform/text/String.cpp:
66635         (WebCore::String::characterStartingAt):
66636         * platform/text/StringImpl.cpp:
66637         (WebCore::StringImpl::characterStartingAt):
66638         * platform/text/StringImpl.h:
66639         Added a UChar32 accessor.
66640
66641         * svg/graphics/SVGImageEmptyClients.h:
66642         (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
66643         (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
66644         Updated for new function names.
66645
66646 2007-12-11  John Sullivan  <sullivan@apple.com>
66647
66648         Reviewed by Adele
66649
66650         Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
66651
66652         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
66653         (WebCore::MediaPlayerPrivate::createQTMovieView):
66654         (WebCore::MediaPlayerPrivate::detachQTMovieView):
66655
66656 2007-12-11  Alexey Proskuryakov  <ap@webkit.org>
66657
66658         Reviewed by Darin.
66659
66660         http://bugs.webkit.org/show_bug.cgi?id=16325
66661         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
66662
66663         Fix this on Windows, too!
66664
66665         Test: http/tests/misc/empty-cookie.html
66666
66667         * platform/network/win/CookieJarWin.cpp:
66668         (WebCore::setCookies):
66669         (WebCore::cookies):
66670         Same fix as on Mac, translated into CF.
66671
66672         * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
66673
66674 2007-12-11  Christian Dywan  <christian@twotoasts.de>
66675
66676         Reviewed by Alp Toker.
66677
66678         http://bugs.webkit.org/show_bug.cgi?id=16371
66679         Implement additional mouse cursors for Gtk
66680
66681         Added cursor bitmaps from Mozilla:
66682         http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
66683
66684         * platform/gtk/CursorGtk.cpp:
66685         (WebCore::customCursorNew):
66686         (WebCore::verticalTextCursor):
66687         (WebCore::cellCursor):
66688         (WebCore::contextMenuCursor):
66689         (WebCore::noDropCursor):
66690         (WebCore::copyCursor):
66691         (WebCore::progressCursor):
66692         (WebCore::aliasCursor):
66693         (WebCore::noneCursor):
66694         (WebCore::notAllowedCursor):
66695         (WebCore::zoomInCursor):
66696         (WebCore::zoomOutCursor):
66697         * platform/gtk/CursorGtk.h: Added.
66698
66699 2007-12-10  Oliver Hunt  <oliver@apple.com>
66700
66701         Reviewed by Weinig, Dan, and Alexey.
66702
66703         Fix character set used for dynamically loaded scripts.
66704
66705         Fix for:
66706             <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
66707             <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
66708             <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
66709             
66710         Use the same logic to determine the charset for a script loaded dynamically
66711         as we do for a statically loaded script.
66712
66713         * html/HTMLScriptElement.cpp:
66714         (WebCore::HTMLScriptElement::insertedIntoDocument):
66715
66716 2007-12-10  Justin Garcia  <justin.garcia@apple.com>
66717
66718         Reviewed by Oliver Hunt.
66719
66720         <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
66721         
66722         We were trying to insert a block of the requested type before the body element.
66723         
66724         * editing/FormatBlockCommand.cpp:
66725         (WebCore::FormatBlockCommand::doApply): 
66726         Removed unnecessary ()s in the if condition.
66727         Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
66728         a) upstreamStart will never be outside the root editable element, since in that case
66729         there would be no block inside the editable root to Format, and b) if upstreamStart.node() 
66730         *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
66731         at [root, 0].
66732         Added comments to explain the use of upstream() in the second if-clause.
66733         Added an early return for case where there is nothing selected, in that case, there is nothing
66734         to move.
66735
66736 2007-12-10  Adele Peterson  <adele@apple.com>
66737
66738         Reviewed and partially fixed by Tim Hatcher.
66739
66740         Remaining part of fix for <rdar://problem/5633400>
66741         Transformed <video> is not clipped correctly until a repaint is forced
66742
66743         Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
66744         from clobbering the WebCore repaints.
66745
66746         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
66747         * html/HTMLMediaElement.h:
66748         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
66749         * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
66750
66751         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
66752         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
66753         (method_setImplementation): Added for Tiger.
66754
66755         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
66756         (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
66757         (WebCore::MediaPlayerPrivate::setVisible): ditto.
66758         (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
66759
66760         (WebCore::MediaPlayerPrivate::repaint): Added.  Triggers a repaint on the video renderer.
66761         (-[WebCoreMovieObserver repaint]): ditto.
66762
66763         (WebCore::mainThreadSetNeedsDisplay): Added.
66764          Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
66765         (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
66766
66767 2007-12-10  Geoffrey Garen  <ggaren@apple.com>
66768
66769         Reviewed by Sam Weinig.
66770
66771         Updated for rename in JavaScriptCore.
66772
66773         * bridge/mac/WebCoreScriptDebugger.mm:
66774         (-[WebCoreScriptCallFrame scopeChain]):
66775         (-[WebCoreScriptCallFrame functionName]):
66776         (-[WebCoreScriptCallFrame evaluateWebScript:]):
66777
66778 2007-12-10  Rodney Dawes  <dobey@wayofthemonkey.com>
66779
66780         Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
66781         <http://bugs.webkit.org/show_bug.cgi?id=16383>
66782
66783         Use KJS::Window not the ambiguous Window
66784
66785         Reviewed by ddkilzer.
66786
66787         * bindings/js/kjs_dom.cpp (checkNodeSecurity):
66788
66789 2007-12-10  Sam Weinig  <sam@webkit.org>
66790
66791         Fix non-mac builds.
66792
66793         * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
66794
66795 2007-12-10  Brett Wilson  <brettw@chromium.org>
66796
66797         Reviewed by Darin.
66798
66799         Fix a divide by 0 in the progress tracker.
66800         http://bugs.webkit.org/show_bug.cgi?id=15055
66801
66802         * loader/ProgressTracker.cpp:
66803         (WebCore::ProgressTracker::incrementProgress):
66804
66805 2007-12-09  Sam Weinig  <sam@webkit.org>
66806
66807         Reviewed by Darin.
66808
66809         More cleanup of kjs_window.
66810         - Move WindowFeatures from bridge/ to page/
66811         - Move functions related to WindowFeatures (boolFeature,
66812           floatFeature, setWindowFeature, parseWindowFeatures) into the class.
66813         - Fix up whitespace.
66814
66815         * WebCore.vcproj/WebCore.vcproj:
66816         * WebCore.xcodeproj/project.pbxproj:
66817         * bindings/js/kjs_window.cpp:
66818         (KJS::DOMWindowTimer::~DOMWindowTimer):
66819         (KJS::createWindow):
66820         (KJS::showModalDialog):
66821         (KJS::Window::getOwnPropertySlot):
66822         (KJS::Window::allowsAccessFrom):
66823         (KJS::Window::shouldInterruptScript):
66824         (KJS::WindowProtoFuncAToB::callAsFunction):
66825         (KJS::WindowProtoFuncOpen::callAsFunction):
66826         (KJS::Window::setReturnValueSlot):
66827         (KJS::ScheduledAction::execute):
66828         (KJS::Window::timerFired):
66829         (KJS::Location::Location):
66830         (KJS::Location::getValueProperty):
66831         (KJS::Location::getOwnPropertySlot):
66832         (KJS::Location::put):
66833         (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
66834         (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
66835         (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
66836         allowsAccessFrom, cleanup the function a little.
66837         (KJS::PausedTimeouts::~PausedTimeouts):
66838         * bridge/WindowFeatures.h: Removed.
66839         * page/WindowFeatures.cpp: Added.
66840         (WebCore::isSeparator):
66841         (WebCore::WindowFeatures::WindowFeatures):
66842         (WebCore::WindowFeatures::setWindowFeature):
66843         (WebCore::WindowFeatures::boolFeature):
66844         (WebCore::WindowFeatures::floatFeature):
66845         * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
66846         (WebCore::WindowFeatures::WindowFeatures):
66847
66848 2007-12-10  Timothy Hatcher  <timothy@apple.com>
66849
66850         Reviewed by Mark Rowe.
66851
66852         <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
66853
66854         * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
66855           so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
66856
66857 2007-12-10  Alp Toker  <alp@atoker.com>
66858
66859         Reviewed by Niko.
66860
66861         Cairo implementation of GraphicsContext::setUseAntialiasing().
66862
66863         * platform/graphics/cairo/GraphicsContextCairo.cpp:
66864         (WebCore::GraphicsContext::setUseAntialiasing):
66865
66866 2007-12-10  Rob Buis  <buis@kde.org>
66867
66868         Reviewed by Darin.
66869
66870         http://bugs.webkit.org/show_bug.cgi?id=16182
66871         SVG should disable antialiasing for shape-rendering="crispEdges"
66872
66873         Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
66874
66875         * platform/graphics/GraphicsContext.h:
66876         * platform/graphics/cairo/GraphicsContextCairo.cpp:
66877         (WebCore::GraphicsContext::setUseAntialiasing):
66878         * platform/graphics/cg/GraphicsContextCG.cpp:
66879         (WebCore::GraphicsContext::setUseAntialiasing):
66880         * platform/graphics/qt/GraphicsContextQt.cpp:
66881         (WebCore::GraphicsContext::setUseAntialiasing):
66882         * platform/graphics/wx/GraphicsContextWx.cpp:
66883         (WebCore::GraphicsContext::setUseAntialiasing):
66884         * rendering/RenderPath.cpp:
66885         (WebCore::RenderPath::paint):
66886
66887 2007-12-09  Rob Buis  <buis@kde.org>
66888
66889         Reviewed by Niko.
66890
66891         http://bugs.webkit.org/show_bug.cgi?id=16163
66892         SVG crash in Node::setChanged() on Debug builds only (trashed parent)
66893
66894         Fix the crash by properly unregistering as client from SVGResource
66895         when deleting a styled svg node.
66896
66897         * svg/SVGStyledElement.cpp:
66898         (WebCore::SVGStyledElement::~SVGStyledElement):
66899
66900 2007-12-10  Brady Eidson  <beidson@apple.com>
66901
66902         Rubberstamped by John
66903
66904         * storage/DatabaseTracker.cpp:
66905         (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
66906           for the new quota, we should allow the database to be created
66907
66908 2007-12-10  David D. Kilzer  <ddkilzer@webkit.org>
66909
66910         Bug 9683: Implement select.options.remove() method
66911         <http://bugs.webkit.org/show_bug.cgi?id=9683>
66912
66913         Reviewed by Maciej.
66914
66915         Implement select.options.remove() by calling select.remove()
66916         with the same arguments.  This is what MSIE 7 does, although its
66917         select.remove() method differs from WebKit's by throwing an
66918         exception when called with no arguments or with a negative
66919         integer argument.  Note that the DOM Level 1 documentation
66920         specifies that select.remove() does not throw an exception.
66921
66922         Tests: fast/js/select-options-remove-gc.html
66923                fast/js/select-options-remove.html
66924
66925         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
66926         (WebCore::JSHTMLOptionsCollection::remove): Added.
66927         * html/HTMLOptionsCollection.cpp:
66928         (WebCore::HTMLOptionsCollection::remove): Added.
66929         * html/HTMLOptionsCollection.h:
66930         * html/HTMLOptionsCollection.idl:
66931
66932 2007-12-09  Sam Weinig  <sam@webkit.org>
66933
66934         Rubber stamped by Mark Rowe.
66935
66936         * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
66937
66938 2007-12-09  Oliver Hunt  <oliver@apple.com>
66939
66940         Reviewed by Niko.
66941
66942         Correction, 'z' and 'Z' are the only commands that cannot have an extended
66943         list of arguments.
66944
66945         * svg/SVGParserUtilities.cpp:
66946         (WebCore::SVGPathParser::parseSVG):
66947
66948 2007-12-09  Oliver Hunt  <oliver@apple.com>
66949
66950         Reviewed by Niko.
66951
66952         Prevent unlimited iteration in the case of invalid path data.
66953         
66954         The only path commands that can leave numbers trailing the command processing
66955         are 'm' and 'M', in which trailing numbers are parsed as arguments to an
66956         implicit lineto command.  In any case we should just terminate as an invalid
66957         path.
66958
66959         * svg/SVGParserUtilities.cpp:
66960         (WebCore::SVGPathParser::parseSVG):
66961
66962 2007-12-09  Luca Bruno  <lethalman88@gmail.com>
66963
66964         Reviewed by Alp Toker.
66965
66966         http://bugs.webkit.org/show_bug.cgi?id=15825
66967         [GTK] curl - slow dns causing hangs.
66968
66969         Create a vector of jobs, to satisfy requests in the right order.
66970         Set a limit to the number of simultaneous connections.
66971
66972         * platform/network/curl/ResourceHandleManager.cpp:
66973         (WebCore::maxRunningJobs): added
66974         (WebCore::ResourceHandleManager::ResourceHandleManager):
66975         (WebCore::ResourceHandleManager::removeFromCurl):
66976         (WebCore::ResourceHandleManager::startScheduledJobs):
66977
66978         * platform/network/curl/ResourceHandleManager.h:
66979         (WebCore::ResourceHandleList): removed
66980         (WebCore::ResourceHandleManager::m_runningJobs): added
66981         (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
66982         (WebCore::ResourceHandleManager::m_resourceHandleList): added
66983
66984 2007-12-08  Sam Weinig  <sam@webkit.org>
66985
66986         Reviewed by Oliver.
66987
66988         Cleanup kjs_window.h/cpp.
66989
66990         * bindings/js/kjs_window.cpp:
66991         (KJS::WindowPrivate::WindowPrivate):
66992         (KJS::DOMWindowTimer::DOMWindowTimer):
66993         (KJS::Window::Window):
66994         (KJS::Window::retrieveWindow):
66995         (KJS::Window::retrieveActive):
66996         (KJS::Window::retrieve):
66997         (KJS::Window::location):
66998         (KJS::Window::mark):
66999         (KJS::allowPopUp):
67000         (KJS::parseModalDialogFeatures):
67001         (KJS::floatFeature):
67002         (KJS::canShowModalDialog):
67003         (KJS::canShowModalDialogNow):
67004         (KJS::showModalDialog):
67005         (KJS::Window::getValueProperty):
67006         (KJS::Window::getOwnPropertySlot):
67007         (KJS::Window::globalExec):
67008         (KJS::Window::setListener):
67009         (KJS::Window::getListener):
67010         (KJS::Window::findOrCreateJSEventListener):
67011         (KJS::Window::findOrCreateJSUnprotectedEventListener):
67012         (KJS::Window::clearHelperObjectProperties):
67013         (KJS::Window::setCurrentEvent):
67014         (KJS::WindowProtoFuncAToB::callAsFunction):
67015         (KJS::WindowProtoFuncBToA::callAsFunction):
67016         (KJS::WindowProtoFuncOpen::callAsFunction):
67017         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
67018         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
67019         (KJS::WindowProtoFuncSetInterval::callAsFunction):
67020         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
67021         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
67022         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
67023         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
67024         * bindings/js/kjs_window.h:
67025         (KJS::PausedTimeouts::PausedTimeouts):
67026         (KJS::PausedTimeouts::takeTimeouts):
67027         (KJS::ScheduledAction::ScheduledAction):
67028
67029 2007-12-08  Sam Weinig  <sam@webkit.org>
67030
67031         Reviewed by Mitz.
67032
67033         Move window scrolling, moving and resizing methods from KJS::Window
67034         to WebCore::DOMWindow so that there bindings can be autogenerated.
67035
67036         Tests: fast/dom/Window/window-resize-and-move-arguments.html
67037                fast/dom/Window/window-scroll-arguments.html
67038
67039         * WebCore.xcodeproj/project.pbxproj:
67040         * bindings/js/kjs_window.cpp:
67041         (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
67042         (KJS::WindowProtoFuncOpen::callAsFunction):
67043         (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
67044         * bindings/js/kjs_window.h:
67045         * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
67046         to ensure that the no less than the declared number of attributes
67047         is allowed.
67048         * page/DOMWindow.cpp:
67049         (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
67050         (WebCore::DOMWindow::scrollBy):
67051         (WebCore::DOMWindow::scrollTo):
67052         (WebCore::DOMWindow::moveBy):
67053         (WebCore::DOMWindow::moveTo):
67054         (WebCore::DOMWindow::resizeBy):
67055         (WebCore::DOMWindow::resizeTo):
67056         * page/DOMWindow.h:
67057         (WebCore::DOMWindow::scroll):
67058         * page/DOMWindow.idl:
67059
67060 2007-12-08  Kevin Ollivier  <kevino@theolliviers.com>
67061
67062         Reviewed by Alp Toker.
67063
67064         http://bugs.webkit.org/show_bug.cgi?id=14651
67065         [CURL] didReceiveResponse() only called for HTTP loads
67066
67067         http://bugs.webkit.org/show_bug.cgi?id=14583
67068         [GDK] file:// relative CSS include URLs handled incorrectly
67069
67070         Make sure CURL sets the ResourceResponse URL and calls
67071         didReceiveResponse for local files too. 
67072
67073         * platform/network/curl/ResourceHandleManager.cpp:
67074         (WebCore::writeCallback):
67075
67076 2007-12-08  Oliver Hunt  <oliver@apple.com>
67077
67078         Reviewed by Sam W.
67079
67080         Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
67081         
67082         Fixes <rdar://problem/5620249> Must disable SVG animation
67083         <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
67084         
67085         In order to allow finer grained control over the set of SVG features
67086         this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
67087         distinct flags:
67088         ENABLE_SVG_ANIMATION
67089         ENABLE_SVG_FILTERS
67090         ENABLE_SVG_FONTS
67091         ENABLE_SVG_AS_IMAGE
67092         ENABLE_SVG_USE
67093         
67094         by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
67095
67096         * Configurations/WebCore.xcconfig:
67097         * DerivedSources.make:
67098           Handle the increased number of build flags that may be necessary
67099           
67100         * WebCore.SVG.Animation.exp: Added.
67101         * WebCore.SVG.Filters.exp: Added.
67102         * WebCore.SVG.exp:
67103           We now may not need the animation or filter exports so 
67104           these need to be separate.
67105           
67106         * WebCore.vcproj/WebCore.vcproj:
67107         * WebCore.vcproj/build-generated-files.sh:
67108           Update for new flags
67109           
67110         Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES) 
67111         with the appropriate specific feature flag.  
67112         * bindings/js/JSSVGElementWrapperFactory.cpp:
67113         (WebCore::createJSSVGWrapper):
67114         * bindings/objc/DOM.mm:
67115         (WebCore::createElementClassMap):
67116         * dom/make_names.pl:
67117         * loader/CachedImage.cpp:
67118         (WebCore::CachedImage::createImage):
67119         * page/DOMWindow.idl:
67120         * rendering/RenderPath.cpp:
67121         (WebCore::RenderPath::absoluteClippedOverflowRect):
67122         * rendering/RenderSVGContainer.cpp:
67123         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
67124         * rendering/RenderSVGImage.cpp:
67125         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
67126         * rendering/RenderSVGRoot.cpp:
67127         (WebCore::RenderSVGRoot::paint):
67128         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
67129         * rendering/RenderSVGText.cpp:
67130         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
67131         * rendering/SVGRenderSupport.cpp:
67132         (WebCore::prepareToRenderSVGContent):
67133         (WebCore::finishRenderSVGContent):
67134         * svg/SVGAnimateElement.cpp:
67135         * svg/SVGAnimateElement.h:
67136         * svg/SVGAnimateElement.idl:
67137         * svg/SVGAnimateMotionElement.cpp:
67138         * svg/SVGAnimateMotionElement.h:
67139         * svg/SVGAnimateTransformElement.cpp:
67140         * svg/SVGAnimateTransformElement.h:
67141         * svg/SVGAnimateTransformElement.idl:
67142         * svg/SVGComponentTransferFunctionElement.cpp:
67143         * svg/SVGComponentTransferFunctionElement.h:
67144         * svg/SVGComponentTransferFunctionElement.idl:
67145         * svg/SVGDocumentExtensions.cpp:
67146         (WebCore::SVGDocumentExtensions::startAnimations):
67147         * svg/SVGFEBlendElement.cpp:
67148         * svg/SVGFEBlendElement.h:
67149         * svg/SVGFEBlendElement.idl:
67150         * svg/SVGFEColorMatrixElement.cpp:
67151         * svg/SVGFEColorMatrixElement.h:
67152         * svg/SVGFEColorMatrixElement.idl:
67153         * svg/SVGFEComponentTransferElement.cpp:
67154         * svg/SVGFEComponentTransferElement.h:
67155         * svg/SVGFEComponentTransferElement.idl:
67156         * svg/SVGFECompositeElement.cpp:
67157         * svg/SVGFECompositeElement.h:
67158         * svg/SVGFECompositeElement.idl:
67159         * svg/SVGFEDiffuseLightingElement.cpp:
67160         * svg/SVGFEDiffuseLightingElement.h:
67161         * svg/SVGFEDiffuseLightingElement.idl:
67162         * svg/SVGFEDisplacementMapElement.cpp:
67163         * svg/SVGFEDisplacementMapElement.h:
67164         * svg/SVGFEDisplacementMapElement.idl:
67165         * svg/SVGFEDistantLightElement.cpp:
67166         * svg/SVGFEDistantLightElement.h:
67167         * svg/SVGFEDistantLightElement.idl:
67168         * svg/SVGFEFloodElement.cpp:
67169         * svg/SVGFEFloodElement.h:
67170         * svg/SVGFEFloodElement.idl:
67171         * svg/SVGFEFuncAElement.cpp:
67172         * svg/SVGFEFuncAElement.h:
67173         * svg/SVGFEFuncAElement.idl:
67174         * svg/SVGFEFuncBElement.cpp:
67175         * svg/SVGFEFuncBElement.h:
67176         * svg/SVGFEFuncBElement.idl:
67177         * svg/SVGFEFuncGElement.cpp:
67178         * svg/SVGFEFuncGElement.h:
67179         * svg/SVGFEFuncGElement.idl:
67180         * svg/SVGFEFuncRElement.cpp:
67181         * svg/SVGFEFuncRElement.h:
67182         * svg/SVGFEFuncRElement.idl:
67183         * svg/SVGFEGaussianBlurElement.cpp:
67184         * svg/SVGFEGaussianBlurElement.h:
67185         * svg/SVGFEGaussianBlurElement.idl:
67186         * svg/SVGFEImageElement.cpp:
67187         * svg/SVGFEImageElement.h:
67188         * svg/SVGFEImageElement.idl:
67189         * svg/SVGFELightElement.cpp:
67190         * svg/SVGFELightElement.h:
67191         * svg/SVGFEMergeElement.cpp:
67192         * svg/SVGFEMergeElement.h:
67193         * svg/SVGFEMergeElement.idl:
67194         * svg/SVGFEMergeNodeElement.cpp:
67195         * svg/SVGFEMergeNodeElement.h:
67196         * svg/SVGFEMergeNodeElement.idl:
67197         * svg/SVGFEOffsetElement.cpp:
67198         * svg/SVGFEOffsetElement.h:
67199         * svg/SVGFEOffsetElement.idl:
67200         * svg/SVGFEPointLightElement.cpp:
67201         * svg/SVGFEPointLightElement.h:
67202         * svg/SVGFEPointLightElement.idl:
67203         * svg/SVGFESpecularLightingElement.cpp:
67204         * svg/SVGFESpecularLightingElement.h:
67205         * svg/SVGFESpecularLightingElement.idl:
67206         * svg/SVGFESpotLightElement.cpp:
67207         * svg/SVGFESpotLightElement.h:
67208         * svg/SVGFESpotLightElement.idl:
67209         * svg/SVGFETileElement.cpp:
67210         * svg/SVGFETileElement.h:
67211         * svg/SVGFETileElement.idl:
67212         * svg/SVGFETurbulenceElement.cpp:
67213         * svg/SVGFETurbulenceElement.h:
67214         * svg/SVGFETurbulenceElement.idl:
67215         * svg/SVGFilterElement.cpp:
67216         * svg/SVGFilterElement.h:
67217         * svg/SVGFilterElement.idl:
67218         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
67219         * svg/SVGTimer.cpp:
67220         (WebCore::SVGTimer::animationsByElement):
67221         * svg/SVGUseElement.cpp:
67222         (WebCore::SVGUseElement::buildPendingResource):
67223         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
67224         * svg/SVGUseElement.h:
67225         * svg/TimeScheduler.cpp:
67226         (WebCore::TimeScheduler::connectIntervalTimer):
67227         (WebCore::TimeScheduler::disconnectIntervalTimer):
67228         * svg/graphics/SVGResourceFilter.cpp:
67229         * svg/graphics/SVGResourceFilter.h:
67230         * svg/graphics/cg/SVGResourceFilterCg.cpp:
67231         * svg/graphics/cg/SVGResourceFilterCg.mm:
67232         * svg/graphics/filters/SVGDistantLightSource.h:
67233         * svg/graphics/filters/SVGFEBlend.cpp:
67234         * svg/graphics/filters/SVGFEBlend.h:
67235         * svg/graphics/filters/SVGFEColorMatrix.cpp:
67236         * svg/graphics/filters/SVGFEColorMatrix.h:
67237         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
67238         * svg/graphics/filters/SVGFEComponentTransfer.h:
67239         * svg/graphics/filters/SVGFEComposite.cpp:
67240         * svg/graphics/filters/SVGFEComposite.h:
67241         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
67242         * svg/graphics/filters/SVGFEConvolveMatrix.h:
67243         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
67244         * svg/graphics/filters/SVGFEDiffuseLighting.h:
67245         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
67246         * svg/graphics/filters/SVGFEDisplacementMap.h:
67247         * svg/graphics/filters/SVGFEFlood.cpp:
67248         * svg/graphics/filters/SVGFEFlood.h:
67249         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
67250         * svg/graphics/filters/SVGFEGaussianBlur.h:
67251         * svg/graphics/filters/SVGFEImage.cpp:
67252         * svg/graphics/filters/SVGFEImage.h:
67253         * svg/graphics/filters/SVGFEMerge.cpp:
67254         * svg/graphics/filters/SVGFEMerge.h:
67255         * svg/graphics/filters/SVGFEMorphology.cpp:
67256         * svg/graphics/filters/SVGFEMorphology.h:
67257         * svg/graphics/filters/SVGFEOffset.cpp:
67258         * svg/graphics/filters/SVGFEOffset.h:
67259         * svg/graphics/filters/SVGFESpecularLighting.cpp:
67260         * svg/graphics/filters/SVGFESpecularLighting.h:
67261         * svg/graphics/filters/SVGFETile.h:
67262         * svg/graphics/filters/SVGFETurbulence.cpp:
67263         * svg/graphics/filters/SVGFETurbulence.h:
67264         * svg/graphics/filters/SVGFilterEffect.cpp:
67265         * svg/graphics/filters/SVGFilterEffect.h:
67266         * svg/graphics/filters/SVGLightSource.cpp:
67267         * svg/graphics/filters/SVGLightSource.h:
67268         * svg/graphics/filters/SVGPointLightSource.h:
67269         * svg/graphics/filters/SVGSpotLightSource.h:
67270         * svg/graphics/filters/cg/SVGFEBlendCg.mm:
67271         * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
67272         * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
67273         * svg/graphics/filters/cg/SVGFECompositeCg.mm:
67274         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
67275         * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
67276         * svg/graphics/filters/cg/SVGFEFloodCg.mm:
67277         * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
67278         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
67279         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
67280         * svg/graphics/filters/cg/SVGFEImageCg.mm:
67281         * svg/graphics/filters/cg/SVGFEMergeCg.mm:
67282         * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
67283         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
67284         * svg/graphics/filters/cg/SVGFETileCg.mm:
67285         * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
67286         * svg/graphics/filters/cg/WKArithmeticFilter.h:
67287         * svg/graphics/filters/cg/WKArithmeticFilter.m:
67288         * svg/graphics/filters/cg/WKComponentMergeFilter.h:
67289         * svg/graphics/filters/cg/WKComponentMergeFilter.m:
67290         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
67291         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
67292         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
67293         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
67294         * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
67295         * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
67296         * svg/graphics/filters/cg/WKDistantLightFilter.h:
67297         * svg/graphics/filters/cg/WKDistantLightFilter.m:
67298         * svg/graphics/filters/cg/WKGammaTransferFilter.h:
67299         * svg/graphics/filters/cg/WKGammaTransferFilter.m:
67300         * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
67301         * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
67302         * svg/graphics/filters/cg/WKLinearTransferFilter.h:
67303         * svg/graphics/filters/cg/WKLinearTransferFilter.m:
67304         * svg/graphics/filters/cg/WKNormalMapFilter.h:
67305         * svg/graphics/filters/cg/WKNormalMapFilter.m:
67306         * svg/graphics/filters/cg/WKPointLightFilter.h:
67307         * svg/graphics/filters/cg/WKPointLightFilter.m:
67308         * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
67309         * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
67310         * svg/graphics/filters/cg/WKSpotLightFilter.h:
67311         * svg/graphics/filters/cg/WKSpotLightFilter.m:
67312         * svg/graphics/filters/cg/WKTableTransferFilter.h:
67313         * svg/graphics/filters/cg/WKTableTransferFilter.m:
67314         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
67315         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
67316         * svg/svgtags.in:
67317
67318 2007-12-08  Dan Bernstein  <mitz@apple.com>
67319
67320         Reviewed by Adele Peterson.
67321
67322         - fix two bugs in parsing of stylesheets in <style> elements created by
67323           the parser:
67324           1. each such stylesheet is parsed twice, once when the text node is
67325              added and again when the </style> tag is reached
67326           2. re-inserting such a <style> element into the document fails to
67327              re-parse and apply its stylesheet.
67328
67329         Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html
67330
67331         * html/HTMLStyleElement.cpp:
67332         (WebCore::HTMLStyleElement::finishedParsing):
67333         * svg/SVGStyleElement.cpp:
67334         (WebCore::SVGStyleElement::finishedParsing):
67335
67336 2007-12-07  Sam Weinig  <sam@webkit.org>
67337
67338         Reviewed by Darin.
67339
67340         - Removes the faulty isSafeScript implementation that was only
67341           used for plugins.
67342         - Renames isSafeScript to allowsAccessFrom.
67343
67344         * bindings/js/JSDOMWindowCustom.cpp:
67345         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
67346         (WebCore::JSDOMWindow::customPut):
67347         * bindings/js/kjs_dom.cpp:
67348         (WebCore::checkNodeSecurity):
67349         * bindings/js/kjs_window.cpp:
67350         (KJS::createWindow):
67351         (KJS::Window::getValueProperty):
67352         (KJS::Window::namedItemGetter):
67353         (KJS::Window::getOwnPropertySlot):
67354         (KJS::Window::put):
67355         (KJS::Window::allowsAccessFrom):
67356         (KJS::Window::setListener):
67357         (KJS::Window::getListener):
67358         (KJS::WindowProtoFuncOpen::callAsFunction):
67359         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
67360         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
67361         (KJS::WindowProtoFuncSetInterval::callAsFunction):
67362         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
67363         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
67364         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
67365         (KJS::Location::getOwnPropertySlot):
67366         (KJS::Location::put):
67367         (KJS::LocationProtoFuncReplace::callAsFunction):
67368         (KJS::LocationProtoFuncReload::callAsFunction):
67369         (KJS::LocationProtoFuncAssign::callAsFunction):
67370         (KJS::LocationProtoFuncToString::callAsFunction):
67371         * bindings/js/kjs_window.h:
67372         (KJS::Window::allowsAccessFrom):
67373         * bindings/objc/WebScriptObject.mm:
67374         (-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
67375         the new call.
67376         * bindings/scripts/CodeGeneratorJS.pm:
67377
67378 2007-12-08  Rob Buis  <buis@kde.org>
67379
67380         Reviewed by Darin.
67381
67382         http://bugs.webkit.org/show_bug.cgi?id=15464
67383         SVGLengthList allows bad values
67384
67385         Be more strict with svg lengths without a unit identifier.
67386
67387         Test: svg/custom/invalid-lengthlist.svg
67388
67389         * svg/SVGLength.cpp:
67390         (WebCore::SVGLength::setValueAsString):
67391
67392 2007-12-08  Rob Buis  <buis@kde.org>
67393
67394         Mac Tiger build fix.
67395
67396         Use the wtf prefix when including MathExtras.h.
67397
67398         * rendering/RenderMedia.cpp:
67399
67400 2007-12-08  Alp Toker  <alp@atoker.com>
67401
67402         GTK+ build fix (for ENABLE_VIDEO builds):
67403
67404         Include MathExtras.h to get isfinite().
67405
67406         * rendering/RenderMedia.cpp:
67407
67408 2007-12-08  Rob Buis  <buis@kde.org>
67409
67410         Reviewed by Darin.
67411
67412         http://bugs.webkit.org/show_bug.cgi?id=15528
67413         svg_dynamic_cast should be removed
67414
67415         Replace svg_dynamic_cast with a combination of
67416         isSVGElement and static_cast.
67417
67418         * rendering/SVGRootInlineBox.cpp:
67419         (WebCore::SVGRootInlineBox::buildLayoutInformation):
67420         (WebCore::SVGRootInlineBox::buildTextChunks):
67421         * svg/SVGAnimationElement.cpp:
67422         (WebCore::SVGAnimationElement::targetElement):
67423         * svg/SVGElement.h:
67424         * svg/SVGElementInstance.cpp:
67425         (WebCore::SVGElementInstance::updateInstance):
67426         * svg/SVGFilterElement.cpp:
67427         (WebCore::SVGFilterElement::canvasResource):
67428         * svg/SVGGradientElement.cpp:
67429         (WebCore::SVGGradientElement::buildStops):
67430         * svg/SVGLocatable.cpp:
67431         (WebCore::SVGLocatable::getTransformToElement):
67432         * svg/SVGMaskElement.cpp:
67433         (WebCore::SVGMaskElement::drawMaskerContent):
67434         * svg/SVGSwitchElement.cpp:
67435         (WebCore::SVGSwitchElement::childShouldCreateRenderer):
67436         * svg/SVGUseElement.cpp:
67437         (WebCore::SVGUseElement::insertedIntoDocument):
67438         (WebCore::SVGUseElement::buildPendingResource):
67439         (WebCore::SVGUseElement::buildInstanceTree):
67440         (WebCore::SVGUseElement::handleDeepUseReferencing):
67441         (WebCore::SVGUseElement::buildShadowTree):
67442         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
67443         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
67444         * svg/graphics/SVGResource.cpp:
67445         (WebCore::getResourceById):
67446
67447 2007-12-07  Antti Koivisto  <antti@apple.com>
67448
67449         Reviewed by Adele.
67450         
67451         Partial fix for <rdar://problem/5633400>
67452         Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
67453         
67454         Fix video painting when transform is applied.
67455
67456         Test: media/video-transformed.html
67457
67458         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
67459         (WebCore::MediaPlayerPrivate::paint):
67460
67461 2007-12-07  Dan Bernstein  <mitz@apple.com>
67462
67463         Reviewed by Sam Weinig.
67464
67465         - fix http://bugs.webkit.org/show_bug.cgi?id=16348
67466           @font-face does not affect the default style
67467
67468         Test: fast/css/font-face-default-font.html
67469
67470         * dom/Document.cpp:
67471         (WebCore::Document::recalcStyle): Pass our font selector to
67472         Font::update() if we already have one.
67473
67474 2007-12-07  Darin Adler  <darin@apple.com>
67475
67476         - fix Windows build
67477
67478         * bridge/win/GlobalHistoryWin.cpp:
67479         (WebCore::historyContains): Missed a rename.
67480
67481 2007-12-07  Brady Eidson  <beidson@apple.com>
67482
67483         Reviewed by Anders and Darin
67484
67485         When a statement bumps up against the quota and the UI Delegate grants more space, we need to
67486         actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
67487         in the DatabaseTracker, which was already done)
67488
67489         * storage/SQLTransaction.cpp:
67490         (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
67491           the SQLiteDatabase to the new maximum size
67492
67493 2007-12-07  Darin Adler  <darin@apple.com>
67494
67495         - fix Tiger build
67496
67497         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
67498         QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.
67499
67500 2007-12-07  Darin Adler  <darin@apple.com>
67501
67502         - fix 64-bit build, hopefully without breaking Tiger build
67503
67504         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
67505         (WebCore::MediaPlayerPrivate::updateStates):
67506         Don't use Movies.h constants that are nonexistent in 64-bit.
67507         Define the new QTMovie.h constants, though, when using an older QTKit.
67508
67509 2007-12-07  Brady Eidson  <beidson@apple.com>
67510
67511         Reviewed by Anders
67512
67513         Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed
67514
67515         * storage/DatabaseTracker.cpp:
67516         (WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
67517         (WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
67518         * storage/DatabaseTracker.h:
67519
67520 2007-12-07  Darin Adler  <darin@apple.com>
67521
67522         Reviewed by Mitz.
67523
67524         - http://bugs.webkit.org/show_bug.cgi?id=15981
67525           speed up visited-link code a bit
67526
67527         * bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
67528         instead of requiring a DeprecatedString.
67529
67530         * bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
67531         Also removes pointless "fast Latin-1" case that was never used.
67532         * bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
67533         * platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
67534         * platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
67535
67536         * css/CSSStyleSelector.cpp:
67537         (WebCore::findHash): Added. Helper for cleanpath.
67538         (WebCore::findSlashDotDotSlash): Ditto.
67539         (WebCore::findSlashSlash): Ditto.
67540         (WebCore::findSlashDotSlash): Ditto.
67541         (WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
67542         DeprecatedString find function.
67543         (WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
67544         (WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
67545         instead of an AtomicString for the attribute value. Changed to use fast helper function
67546         instead of slower DeprecatedString::contains function, and also made the fast case not
67547         bother allocating a DeprecatedConstString.
67548
67549         - unrelated tiny cleanup
67550
67551         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67552         (WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
67553         (WebCore::cgGradientCallback): Ditto.
67554
67555 2007-12-07  Darin Adler  <darin@apple.com>
67556
67557         Fix build on Tiger (Mark Rowe told me how).
67558
67559         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
67560         Include <objc/objc-runtime.h>, which existed back on Tiger,
67561         rather than <objc/runtime.h>, which did not.
67562
67563 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
67564
67565         Build fix: rolling out last build fix to change #include path.
67566
67567         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
67568
67569 2007-12-07  Steve Falkenburg  <sfalken@apple.com>
67570
67571         Re-named our B&I flag from BUILDBOT to PRODUCTION.
67572
67573         Reviewed by Sam Weinig.
67574
67575         * WebCore.vcproj/WebCore.make:
67576
67577 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
67578
67579         Build fix: corrected #include path.
67580
67581         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
67582
67583 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
67584
67585         Reviewed by Sam Weinig.
67586
67587         Added some namespace qualifications and a forwarding header, now that
67588         KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.
67589
67590         * ForwardingHeaders/wtf/ListRefPtr.h: Added.
67591         * bindings/js/JSXSLTProcessor.cpp:
67592         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
67593         * bindings/js/kjs_binding.cpp:
67594         (KJS::ScriptInterpreter::getDOMNodeForDocument):
67595         (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
67596         (KJS::ScriptInterpreter::putDOMNodeForDocument):
67597         (KJS::ScriptInterpreter::markDOMNodesForDocument):
67598         (KJS::ScriptInterpreter::updateDOMNodeDocument):
67599
67600 2007-12-07  Adam Roben  <aroben@apple.com>
67601
67602         Add SoftLinking.h for Windows and use it in a few places
67603
67604         Reviewed by Oliver.
67605
67606         * WebCore.vcproj/WebCore.vcproj: Added new file to project.
67607         * platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
67608         (WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
67609         soft-linking calls.
67610         (WebCore::PlatformScrollbar::paintButton): Check for the presence of
67611         the SafariTheme library now that we can't check for the presence of
67612         paintThemePart directly.
67613         (WebCore::PlatformScrollbar::paintTrack): Ditto.
67614         (WebCore::PlatformScrollbar::paintThumb): Ditto.
67615         * platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
67616         * rendering/RenderThemeSafari.cpp: Same basic changes as to
67617         PlatformScrollBarSafari.cpp.
67618         (WebCore::RenderThemeSafari::RenderThemeSafari):
67619         (WebCore::RenderThemeSafari::isControlStyled):
67620         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
67621         * rendering/RenderThemeSafari.h: Removed m_themeDLL member.
67622
67623 2007-12-07  Darin Adler  <darin@apple.com>
67624
67625         Reviewed by Adele.
67626
67627         - fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
67628           at WebCore::HTMLSelectElement::saveState const + 152
67629
67630         Test: fast/forms/select-set-inner.html
67631
67632         * dom/ContainerNode.cpp:
67633         (WebCore::ContainerNode::removeChildren): Added a return value, as with other
67634         calls that change children, so we can optimize for the case where it does nothing.
67635         (WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
67636         * dom/ContainerNode.h: See above.
67637
67638         * html/HTMLOptGroupElement.cpp:
67639         (WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
67640         recalcSelectOptions in that case.
67641         (WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
67642         addChild, for consistency with HTMLSelectElement; no need to override both.
67643         (WebCore::HTMLOptGroupElement::groupLabelText): Made const.
67644         * html/HTMLOptGroupElement.h: See above.
67645
67646         * html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
67647         override childrenChanged, and addChild calls that.
67648         (WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
67649         recalcSelectOptions in that case.
67650         (WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
67651         by using a for loop and traverseNextSibling. Also added some new comments and
67652         removed some obsolete ones.
67653         (WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
67654         sure we don't have a stale list items vector.
67655         * html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
67656         This will help us catch cases where we have too few calls to setRecalcListItems.
67657
67658 2007-12-07  Dan Bernstein  <mitz@apple.com>
67659
67660         Reviewed by Darin Adler.
67661
67662         - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
67663
67664         Test: fast/repaint/focus-ring.html
67665
67666         * editing/SelectionController.cpp:
67667         (WebCore::SelectionController::caretRepaintRect): Changed to return just
67668         the caret rect without any padding.
67669         (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
67670         just the caret rect without any padding.
67671         * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
67672         clearFocusRingClip().
67673         * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
67674         * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
67675         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
67676         m_focusRingClip member.
67677         * platform/graphics/mac/GraphicsContextMac.mm:
67678         (WebCore::GraphicsContext::drawFocusRing): Changed to call
67679         wkDrawFocusRing() once without setting up additional clip. On Leopard,
67680         wkDrawFocusRing() respects the context clip now. On Tiger, a
67681         transparency layer is used to apply clipping to the focus ring.
67682         * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
67683         methods and member.
67684         * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
67685         * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
67686         to wkDrawFocusRing().
67687         * platform/mac/WebCoreSystemInterface.mm: Ditto.
67688         * rendering/RenderLayer.cpp:
67689         (WebCore::setClip): Removed call to set the focus ring clip.
67690         (WebCore::restoreClip): Removed call to reset the focus ring clip.
67691
67692 2007-12-07  Darin Adler  <darin@apple.com>
67693
67694         Reviewed by Antti Koivisto and Kevin Decker.
67695
67696         - fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup
67697
67698         Also did a lot of small tweaks to MediaPlayerPrivateQTKit.
67699
67700         * WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.
67701
67702         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
67703         Made a lot more functions const. Made a few more members private and a couple inline.
67704         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
67705         things we currently use in QTKit. It's a little more awkward for classes and other data objects
67706         than it is for functions, but still relatively straightforward, with no changes needed to the
67707         client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
67708         it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
67709         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
67710         members to nil.
67711         (WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
67712         (WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
67713         (WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
67714         Changed to use long instead of int because that's the type for a QTTime time scale anyway.
67715         (WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
67716         (WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
67717         (WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
67718         points set to avoid a potential problem with a set being modified as we iterate it.
67719         (WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
67720         (WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
67721         values, used the constants from the headers directly.
67722         (WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
67723         pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
67724         of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
67725         no better). Used RetainPtr instead of explicit CFRelease calls.
67726
67727         * platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
67728         It's not quite as automatic as the soft linking we can do for functions, since these define
67729         functions to get the values, so you need to define macros to make what look like variable
67730         accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.
67731
67732         * html/HTMLMediaElement.h:
67733         * html/TimeRanges.h:
67734         * html/VoidCallback.h:
67735         * platform/graphics/MediaPlayer.h:
67736         Use angle brackets for wtf includes. Omit unneeded includes.
67737
67738 2007-12-07  Dan Bernstein  <mitz@apple.com>
67739
67740         Reviewed by Darin Adler.
67741
67742         - fix http://bugs.webkit.org/show_bug.cgi?id=16334
67743           <rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely
67744
67745         Test: fast/dynamic/subtree-no-common-root-static-y.html
67746
67747         * rendering/RenderObject.cpp:
67748         (WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
67749         to setChildNeedsLayout() to not mark containing blocks and added a
67750         separate call to markContainingBlocksForLayout() that will not schedule
67751         a layout if we are already in the middle of scheduleRelayoutOfSubtree().
67752
67753 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
67754
67755         Reviewed by Darin.
67756
67757         http://bugs.webkit.org/show_bug.cgi?id=16325
67758         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
67759         
67760         Test: http/tests/misc/empty-cookie.html
67761
67762         * platform/mac/CookieJar.mm:
67763         (WebCore::setCookies): Don't store empty cookies.
67764         (WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
67765         with an earlier version of Leopard!
67766
67767 2007-12-06  Ada Chan  <adachan@apple.com>
67768
67769         Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
67770         returning true when there's an error).
67771
67772         Reviewed by Steve.
67773
67774         * platform/win/FileSystemWin.cpp:
67775         (WebCore::makeAllDirectories):
67776
67777 2007-12-06  Darin Adler  <darin@apple.com>
67778
67779         - fix broken regression test
67780
67781         * bindings/js/kjs_binding.cpp:
67782         (KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.
67783
67784 2007-12-06  Darin Adler  <darin@apple.com>
67785
67786         Reviewed by Sam Weinig.
67787
67788         - fix http://bugs.webkit.org/show_bug.cgi?id=16332
67789           ObjC DOM exception object descriptions should include the exception name
67790
67791         * WebCore.pro: Added ExceptionCode.cpp.
67792         * WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
67793         * WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
67794         * WebCoreSources.bkl: Added ExceptionCode.cpp.
67795
67796         * bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
67797         ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
67798         the many unneeded includes that were here. Had to keep one special case here, for
67799         SECURITY_ERR.
67800
67801         * bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
67802         new getExceptionCodeDescription function so that this shares the exception name
67803         information that was previously only available to JavaScript.
67804
67805         * dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
67806         (WebCore::getExceptionCodeDescription): Added some assertions, and made the function
67807         handle exception names in a slightly more robust way that is not subject to integer
67808         overflow. (Not a real world issue since we should never receive a bad exception code.)
67809
67810         * dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
67811         getExceptionCodeDescription function.
67812
67813         * svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
67814         the comments were mildly helpful, but others were incorrect. This now matches the other
67815         exception-related headers such as RangeException.h.
67816
67817 2007-12-06  Brady Eidson  <beidson@apple.com>
67818
67819         Reviewed by Darin
67820
67821         Fixed a glaring bug that would prevent a statement from getting run a second time
67822
67823         * storage/SQLStatement.cpp:
67824         (WebCore::SQLStatement::execute): Clear failure due to quota *before* we check the error
67825           and return early
67826         (WebCore::SQLStatement::clearFailureDueToQuota): Only clear the error if it was a quota error
67827
67828 2007-12-06  Timothy Hatcher  <timothy@apple.com>
67829
67830         Reviewed by Oliver Hunt.
67831
67832         Use keydown instead of keypress so keyIdentifier can be used.
67833
67834         * page/inspector/ConsolePanel.js: Use keydown instead of keypress.
67835         * page/inspector/DatabasePanel.js: Ditto.
67836         * page/inspector/inspector.js: Ditto. Plus call removeEventListener
67837         before deleting windowLoaded.
67838
67839 2007-12-06  Adam Roben  <aroben@apple.com>
67840
67841         Rename FontsTable.plist to FontsList.plist
67842
67843         Rubberstamped by Hyatt.
67844
67845         * platform/graphics/win/FontDatabase.cpp:
67846
67847 2007-12-06  Brady Eidson  <beidson@apple.com>
67848
67849         Reviewed by Darin
67850
67851         Tweaked a comment and a few assertions from my last checkin
67852
67853         * storage/SQLStatement.cpp:
67854         (WebCore::SQLStatement::execute):
67855         (WebCore::SQLStatement::clearFailureDueToQuota):
67856         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
67857
67858 2007-12-06  Brady Eidson <beidson@apple.com>
67859
67860         Reviewed by Darin
67861
67862         Finished hooking up UI Delegate for databases - Database operations will now enforce a size quota and
67863         will ask the UI Delegate for more space when that quota is met
67864
67865         * platform/sql/SQLiteDatabase.cpp: Add the new SQLResultFull constant
67866         * platform/sql/SQLiteDatabase.h: Ditto
67867
67868         * storage/Database.cpp:
67869         (WebCore::Database::securityOriginData): Added this accessor, copying for thread safety
67870         (WebCore::Database::stringIdentifier): Ditto
67871         * storage/Database.h:
67872
67873         * storage/SQLStatement.cpp:
67874         (WebCore::SQLStatement::SQLStatement):
67875         (WebCore::SQLStatement::execute): Change to return an enum that represents 3 states - success, error, and quota.
67876           If the result is quota, this statement expects that it might be run again, presumably after the user increases 
67877           the quota
67878         (WebCore::SQLStatement::setFailureDueToQuota): Setup a quota failure, including a flag and the error
67879         (WebCore::SQLStatement::clearFailureDueToQuota): Clear a quota failure, for when the statement is rerun
67880         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
67881         * storage/SQLStatement.h:
67882
67883         * storage/SQLTransaction.cpp:
67884         (WebCore::SQLTransaction::SQLTransaction):
67885         (WebCore::SQLTransaction::performPendingCallback): Added an acceptable callback pointer
67886         (WebCore::SQLTransaction::openTransactionAndPreflight): Setup the quota in the database that will remain for this 
67887           transaction.  Note that in this patch, the quota being set is wrong - it makes sense to fix that in a follow up patch
67888         (WebCore::SQLTransaction::runStatements): Modified to add the ability to re-run a statement based on the UI delegate
67889           decision and whether the current statement was already run
67890         (WebCore::SQLTransaction::runCurrentStatement): Added another result condition - the Quota result - and handle it
67891         (WebCore::SQLTransaction::handleCurrentStatementError): Statements can now error-out from two places, so the code
67892           that handles a statement error was moved here
67893         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Added - Consult the UI delegate for more quota, then 
67894           reschedule the current statement on the database thread
67895         * storage/SQLTransaction.h:
67896
67897 2007-12-06  Steve Falkenburg  <sfalken@apple.com>
67898
67899         <rdar://problem/5614257> Crash in timer / hashtable code due to uncaught exception
67900         
67901         Don't use callback-based timers, since these cause Windows to eat Windows crashes
67902         in code the timers call.
67903         
67904         Windows appears to be defending against "shatter" attacks partially by setting
67905         up a structured exception block while dispatching callback-based WM_TIMERs.
67906         
67907         I verified this by adding a divide by zero into some timer callback code.
67908         In the case where the timer was dispatched via a callback, the divide by zero
67909         exception was silently handled and ignored, with execution continuing after
67910         our call to DispatchMessage.  When processed via the WNDPROC, no SEH
67911         block was established by Windows, and our divide by zero generated a real
67912         crash (which is what we wanted).
67913         
67914         Windows handling our crashes for us led us to leave the timer data structures
67915         in an invalid state so the next time a timer was set, we'd crash accessing an
67916         invalid HashMap of timer data.
67917         
67918         Reviewed by Hyatt.
67919
67920         * platform/win/SharedTimerWin.cpp:
67921         (WebCore::TimerWindowWndProc):
67922         (WebCore::setSharedTimerFireTime):
67923
67924 2007-12-06  Adam Roben  <aroben@apple.com>
67925
67926         Fix <rdar://5108390> Feed title is too low in blue banner
67927
67928         Way back in r23069 we started applying the same font ascent hack that
67929         Mac WebKit applies to Helvetica, Times, and Courier. We did this so
67930         that those fonts would match the Mac metrics when we run the
67931         regression tests. However, this hack was applying to Arial on Windows
67932         when a site would specify the Helvetica font face because Windows will
67933         alias the font names. Instead of removing the hack entirely, we
67934         turn it off by default but provide some SPI so that DumpRenderTree can
67935         turn it on.
67936
67937         Reviewed by Hyatt.
67938
67939         All tests pass.
67940
67941         * platform/graphics/FontData.h: Add a new static method to turn on the
67942         hack on Windows only.
67943         * platform/graphics/win/FontDataWin.cpp:
67944         (WebCore::FontData::setShouldApplyMacAscentHack): Added.
67945         (WebCore::FontData::platformInit): Only perform the hack if
67946         shouldApplyMacAscentHack is true.
67947
67948 2007-12-06  Geoffrey Garen  <ggaren@apple.com>
67949
67950         Reviewed by Sam Weinig.
67951
67952         Fixed http://bugs.webkit.org/show_bug.cgi?id=16328
67953         REGRESSION (r28470): Crash expanding a GMail conversation
67954         
67955         * page/Frame.cpp:
67956         (WebCore::Frame::scriptProxy): Only return 0 if JS seems disabled *and*
67957         we haven't created the proxy yet. If we've created the proxy already, a
67958         script may be in the midst of execution, even though we've lost our
67959         settings object. During execution, scripts assume they have free access
67960         to the proxy.
67961
67962 2007-12-06  Adele Peterson  <adele@apple.com>
67963
67964         Reviewed by Oliver.
67965
67966         Fix for <rdar://problem/5631356> Toggling display property on video causes controls to get lost
67967
67968         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attach): Call updateFromElement.
67969         * html/HTMLMediaElement.h:
67970
67971 2007-12-05  Antti Koivisto  <antti@apple.com>
67972
67973         Reviewed by Oliver.
67974
67975         Rename
67976
67977         Movie -> MediaPlayer
67978         MoviePrivate -> MediaPlayerPrivate
67979         
67980         Movie is QuickTime terminology and clashes with its C API.
67981
67982         * WebCore.xcodeproj/project.pbxproj:
67983         * html/HTMLMediaElement.cpp:
67984         (WebCore::HTMLMediaElement::HTMLMediaElement):
67985         (WebCore::HTMLMediaElement::~HTMLMediaElement):
67986         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
67987         (WebCore::HTMLMediaElement::bufferingRate):
67988         (WebCore::HTMLMediaElement::load):
67989         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
67990         (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
67991         (WebCore::HTMLMediaElement::setReadyState):
67992         (WebCore::HTMLMediaElement::progressEventTimerFired):
67993         (WebCore::HTMLMediaElement::seek):
67994         (WebCore::HTMLMediaElement::currentTime):
67995         (WebCore::HTMLMediaElement::duration):
67996         (WebCore::HTMLMediaElement::playbackRate):
67997         (WebCore::HTMLMediaElement::setPlaybackRate):
67998         (WebCore::HTMLMediaElement::play):
67999         (WebCore::HTMLMediaElement::pause):
68000         (WebCore::HTMLMediaElement::setVolume):
68001         (WebCore::HTMLMediaElement::setMuted):
68002         (WebCore::HTMLMediaElement::pickMedia):
68003         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
68004         (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
68005         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
68006         (WebCore::HTMLMediaElement::mediaPlayerCuePointReached):
68007         (WebCore::HTMLMediaElement::addCuePoint):
68008         (WebCore::HTMLMediaElement::buffered):
68009         (WebCore::HTMLMediaElement::seekable):
68010         (WebCore::HTMLMediaElement::effectiveStart):
68011         (WebCore::HTMLMediaElement::effectiveEnd):
68012         (WebCore::HTMLMediaElement::effectiveLoopStart):
68013         (WebCore::HTMLMediaElement::effectiveLoopEnd):
68014         (WebCore::HTMLMediaElement::updateMediaPlayer):
68015         (WebCore::HTMLMediaElement::willSaveToCache):
68016         * html/HTMLMediaElement.h:
68017         (WebCore::HTMLMediaElement::player):
68018         * html/HTMLVideoElement.cpp:
68019         (WebCore::HTMLVideoElement::videoWidth):
68020         (WebCore::HTMLVideoElement::videoHeight):
68021         * platform/MIMETypeRegistry.cpp:
68022         (WebCore::initialiseSupportedMediaMIMETypes):
68023         (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
68024         (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
68025         * platform/MIMETypeRegistry.h:
68026         * platform/graphics/MediaPlayer.cpp: Copied from WebCore/platform/graphics/Movie.cpp.
68027         (WebCore::MediaPlayer::MediaPlayer):
68028         (WebCore::MediaPlayer::~MediaPlayer):
68029         (WebCore::MediaPlayer::load):
68030         (WebCore::MediaPlayer::cancelLoad):
68031         (WebCore::MediaPlayer::play):
68032         (WebCore::MediaPlayer::pause):
68033         (WebCore::MediaPlayer::duration):
68034         (WebCore::MediaPlayer::currentTime):
68035         (WebCore::MediaPlayer::seek):
68036         (WebCore::MediaPlayer::paused):
68037         (WebCore::MediaPlayer::seeking):
68038         (WebCore::MediaPlayer::naturalSize):
68039         (WebCore::MediaPlayer::hasVideo):
68040         (WebCore::MediaPlayer::networkState):
68041         (WebCore::MediaPlayer::readyState):
68042         (WebCore::MediaPlayer::volume):
68043         (WebCore::MediaPlayer::setVolume):
68044         (WebCore::MediaPlayer::rate):
68045         (WebCore::MediaPlayer::setRate):
68046         (WebCore::MediaPlayer::muted):
68047         (WebCore::MediaPlayer::setMuted):
68048         (WebCore::MediaPlayer::dataRate):
68049         (WebCore::MediaPlayer::setEndTime):
68050         (WebCore::MediaPlayer::addCuePoint):
68051         (WebCore::MediaPlayer::removeCuePoint):
68052         (WebCore::MediaPlayer::clearCuePoints):
68053         (WebCore::MediaPlayer::maxTimeBuffered):
68054         (WebCore::MediaPlayer::maxTimeSeekable):
68055         (WebCore::MediaPlayer::bytesLoaded):
68056         (WebCore::MediaPlayer::totalBytesKnown):
68057         (WebCore::MediaPlayer::totalBytes):
68058         (WebCore::MediaPlayer::setRect):
68059         (WebCore::MediaPlayer::visible):
68060         (WebCore::MediaPlayer::setVisible):
68061         (WebCore::MediaPlayer::paint):
68062         (WebCore::MediaPlayer::getSupportedTypes):
68063         (WebCore::MediaPlayer::networkStateChanged):
68064         (WebCore::MediaPlayer::readyStateChanged):
68065         (WebCore::MediaPlayer::volumeChanged):
68066         (WebCore::MediaPlayer::timeChanged):
68067         (WebCore::MediaPlayer::cuePointReached):
68068         * platform/graphics/MediaPlayer.h: Copied from WebCore/platform/graphics/Movie.h.
68069         (WebCore::MediaPlayerClient::~MediaPlayerClient):
68070         (WebCore::MediaPlayerClient::mediaPlayerNetworkStateChanged):
68071         (WebCore::MediaPlayerClient::mediaPlayerReadyStateChanged):
68072         (WebCore::MediaPlayerClient::mediaPlayerVolumeChanged):
68073         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
68074         (WebCore::MediaPlayerClient::mediaPlayerCuePointReached):
68075         * platform/graphics/Movie.cpp: Removed.
68076         * platform/graphics/Movie.h: Removed.
68077         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.cpp.
68078         (WebCore::mediaPlayerPrivateErrorCallback):
68079         (WebCore::mediaPlayerPrivateEOSCallback):
68080         (WebCore::mediaPlayerPrivateStateCallback):
68081         (WebCore::mediaPlayerPrivateBufferingCallback):
68082         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
68083         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
68084         (WebCore::MediaPlayerPrivate::load):
68085         (WebCore::MediaPlayerPrivate::play):
68086         (WebCore::MediaPlayerPrivate::pause):
68087         (WebCore::MediaPlayerPrivate::duration):
68088         (WebCore::MediaPlayerPrivate::currentTime):
68089         (WebCore::MediaPlayerPrivate::seek):
68090         (WebCore::MediaPlayerPrivate::setEndTime):
68091         (WebCore::MediaPlayerPrivate::addCuePoint):
68092         (WebCore::MediaPlayerPrivate::removeCuePoint):
68093         (WebCore::MediaPlayerPrivate::clearCuePoints):
68094         (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
68095         (WebCore::MediaPlayerPrivate::cancelSeek):
68096         (WebCore::MediaPlayerPrivate::cuePointTimerFired):
68097         (WebCore::MediaPlayerPrivate::paused):
68098         (WebCore::MediaPlayerPrivate::seeking):
68099         (WebCore::MediaPlayerPrivate::naturalSize):
68100         (WebCore::MediaPlayerPrivate::hasVideo):
68101         (WebCore::MediaPlayerPrivate::setVolume):
68102         (WebCore::MediaPlayerPrivate::setMuted):
68103         (WebCore::MediaPlayerPrivate::setRate):
68104         (WebCore::MediaPlayerPrivate::dataRate):
68105         (WebCore::MediaPlayerPrivate::networkState):
68106         (WebCore::MediaPlayerPrivate::readyState):
68107         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
68108         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
68109         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
68110         (WebCore::MediaPlayerPrivate::bytesLoaded):
68111         (WebCore::MediaPlayerPrivate::totalBytesKnown):
68112         (WebCore::MediaPlayerPrivate::totalBytes):
68113         (WebCore::MediaPlayerPrivate::cancelLoad):
68114         (WebCore::MediaPlayerPrivate::updateStates):
68115         (WebCore::MediaPlayerPrivate::loadStateChanged):
68116         (WebCore::MediaPlayerPrivate::rateChanged):
68117         (WebCore::MediaPlayerPrivate::sizeChanged):
68118         (WebCore::MediaPlayerPrivate::timeChanged):
68119         (WebCore::MediaPlayerPrivate::volumeChanged):
68120         (WebCore::MediaPlayerPrivate::didEnd):
68121         (WebCore::MediaPlayerPrivate::loadingFailed):
68122         (WebCore::MediaPlayerPrivate::setRect):
68123         (WebCore::MediaPlayerPrivate::setVisible):
68124         (WebCore::MediaPlayerPrivate::paint):
68125         (WebCore::MediaPlayerPrivate::getSupportedTypes):
68126         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
68127         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.h.
68128         * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Removed.
68129         * platform/graphics/gtk/MoviePrivateGStreamer.h: Removed.
68130         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.h.
68131         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.mm.
68132         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
68133         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
68134         (WebCore::MediaPlayerPrivate::createQTMovie):
68135         (WebCore::MediaPlayerPrivate::createQTMovieView):
68136         (WebCore::MediaPlayerPrivate::createQTTime):
68137         (WebCore::MediaPlayerPrivate::load):
68138         (WebCore::MediaPlayerPrivate::play):
68139         (WebCore::MediaPlayerPrivate::pause):
68140         (WebCore::MediaPlayerPrivate::duration):
68141         (WebCore::MediaPlayerPrivate::currentTime):
68142         (WebCore::MediaPlayerPrivate::seek):
68143         (WebCore::MediaPlayerPrivate::doSeek):
68144         (WebCore::MediaPlayerPrivate::cancelSeek):
68145         (WebCore::MediaPlayerPrivate::seekTimerFired):
68146         (WebCore::MediaPlayerPrivate::setEndTime):
68147         (WebCore::MediaPlayerPrivate::addCuePoint):
68148         (WebCore::MediaPlayerPrivate::removeCuePoint):
68149         (WebCore::MediaPlayerPrivate::clearCuePoints):
68150         (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
68151         (WebCore::MediaPlayerPrivate::cuePointTimerFired):
68152         (WebCore::MediaPlayerPrivate::paused):
68153         (WebCore::MediaPlayerPrivate::seeking):
68154         (WebCore::MediaPlayerPrivate::naturalSize):
68155         (WebCore::MediaPlayerPrivate::hasVideo):
68156         (WebCore::MediaPlayerPrivate::setVolume):
68157         (WebCore::MediaPlayerPrivate::setMuted):
68158         (WebCore::MediaPlayerPrivate::setRate):
68159         (WebCore::MediaPlayerPrivate::dataRate):
68160         (WebCore::MediaPlayerPrivate::networkState):
68161         (WebCore::MediaPlayerPrivate::readyState):
68162         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
68163         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
68164         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
68165         (WebCore::MediaPlayerPrivate::bytesLoaded):
68166         (WebCore::MediaPlayerPrivate::totalBytesKnown):
68167         (WebCore::MediaPlayerPrivate::totalBytes):
68168         (WebCore::MediaPlayerPrivate::cancelLoad):
68169         (WebCore::MediaPlayerPrivate::updateStates):
68170         (WebCore::MediaPlayerPrivate::loadStateChanged):
68171         (WebCore::MediaPlayerPrivate::rateChanged):
68172         (WebCore::MediaPlayerPrivate::sizeChanged):
68173         (WebCore::MediaPlayerPrivate::timeChanged):
68174         (WebCore::MediaPlayerPrivate::volumeChanged):
68175         (WebCore::MediaPlayerPrivate::didEnd):
68176         (WebCore::MediaPlayerPrivate::setRect):
68177         (WebCore::MediaPlayerPrivate::setVisible):
68178         (WebCore::MediaPlayerPrivate::paint):
68179         (WebCore::MediaPlayerPrivate::getSupportedTypes):
68180         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
68181         * platform/graphics/mac/MoviePrivateQTKit.h: Removed.
68182         * platform/graphics/mac/MoviePrivateQTKit.mm: Removed.
68183         * rendering/RenderMedia.cpp:
68184         (WebCore::RenderMedia::player):
68185         * rendering/RenderMedia.h:
68186         * rendering/RenderVideo.cpp:
68187         (WebCore::RenderVideo::RenderVideo):
68188         (WebCore::RenderVideo::~RenderVideo):
68189         (WebCore::RenderVideo::videoSizeChanged):
68190         (WebCore::RenderVideo::paintReplaced):
68191         (WebCore::RenderVideo::layout):
68192         (WebCore::RenderVideo::updateFromElement):
68193         (WebCore::RenderVideo::updatePlayer):
68194         * rendering/RenderVideo.h:
68195
68196 2007-12-06  Geoffrey Garen  <ggaren@apple.com>
68197
68198         Build fix: access global object directly.
68199
68200         * plugins/win/PluginViewWin.cpp:
68201         (WebCore::PluginViewWin::bindingInstance):
68202
68203 2007-12-06  Mark Rowe  <mrowe@apple.com>
68204
68205         Reviewed by Eric.
68206
68207         Fix bug spotted by GCC 4.2.
68208
68209         * bindings/js/kjs_window.cpp:
68210         (KJS::allowPopUp): Remove extraneous semicolon that completely changed the meaning of allowPopUp.
68211
68212 2007-12-06  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
68213
68214         Reviewed by Alp Toker.
68215
68216         http://bugs.webkit.org/show_bug.cgi?id=16173
68217         Licensing change
68218
68219         Change license from BSD to LGPL.
68220
68221         * platform/gtk/FileSystemGtk.cpp:
68222
68223 2007-12-05  Rob Buis  <buis@kde.org>
68224
68225         Reviewed by Mitz.
68226
68227         http://bugs.webkit.org/show_bug.cgi?id=15289
68228         WebKit does not respect clip paths of a 0x0 rect
68229
68230         Make empty clip paths clip the whole referencing graphic.
68231
68232         * svg/SVGClipPathElement.cpp:
68233         (WebCore::SVGClipPathElement::canvasResource):
68234         * svg/graphics/SVGResourceClipper.h:
68235         (WebCore::ClipDataList::isEmpty):
68236
68237 2007-12-05  Darin Adler  <darin@apple.com>
68238
68239         Reviewed by Maciej.
68240
68241         - fix http://bugs.webkit.org/show_bug.cgi?id=16266
68242           <rdar://problem/5625279> REGRESSION: crash loading CNN.com at
68243           Interpreter::createObjectsForGlobalObjectProperties()
68244
68245         I don't know how to reproduce this in a test.
68246
68247         * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
68248         Call JSEventTargetNode::mark instead of DOMObject::mark. There's no difference
68249         right now, but it's best to call your base class, not your base's base.
68250
68251         * bindings/js/kjs_events.h: Removed unneeded virtual from the
68252         JSUnprotectedEventListener::mark() function; it neither derives from or is
68253         derived from anyone else with a mark() function so there's no need for virtual.
68254
68255         * bindings/js/kjs_window.cpp: (KJS::Window::mark): Call JSGlobalObject::mark,
68256         not JSObject::mark. This is the actual bug fix.
68257
68258 2007-12-05  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
68259
68260         http://bugs.webkit.org/show_bug.cgi?id=16145
68261         [gtk] Implement media support in GTK backend
68262
68263         Reviewed by Alp Toker.
68264
68265         Remove old comments, fix variable names, match WebKit coding style.
68266
68267         * platform/graphics/gtk/MoviePrivateGStreamer.cpp:
68268         (WebCore::moviePrivateEOSCallback):
68269         (WebCore::MoviePrivate::MoviePrivate):
68270         (WebCore::MoviePrivate::load):
68271         (WebCore::MoviePrivate::play):
68272         (WebCore::MoviePrivate::pause):
68273         (WebCore::MoviePrivate::currentTime):
68274         (WebCore::MoviePrivate::seek):
68275         (WebCore::MoviePrivate::cancelSeek):
68276         (WebCore::MoviePrivate::seeking):
68277         (WebCore::MoviePrivate::naturalSize):
68278         (WebCore::MoviePrivate::setVolume):
68279         (WebCore::MoviePrivate::setMuted):
68280         (WebCore::MoviePrivate::maxTimeBuffered):
68281         (WebCore::MoviePrivate::bytesLoaded):
68282         (WebCore::MoviePrivate::totalBytesKnown):
68283         (WebCore::MoviePrivate::totalBytes):
68284         (WebCore::MoviePrivate::updateStates):
68285         (WebCore::MoviePrivate::didEnd):
68286         (WebCore::MoviePrivate::paint):
68287         (WebCore::MoviePrivate::createGSTPlayBin):
68288         * platform/graphics/gtk/MoviePrivateGStreamer.h:
68289
68290 2007-12-05  Mark Rowe  <mrowe@apple.com>
68291
68292         Speculative wx build fix.  Add PlugInInfoStore::pluginNameForMIMEType to the temporary link stubs.
68293
68294         * platform/wx/TemporaryLinkStubs.cpp:
68295
68296 2007-12-05  Alp Toker  <alp@atoker.com>
68297
68298         Rubber stamped by Mark Rowe.
68299
68300         Remove DEPENDPATH on the generated sources directory. This causes
68301         trouble and is no longer necessary following the glib-genmarshal
68302         generator split.
68303
68304         * WebCore.pro:
68305
68306 2007-12-04  Geoffrey Garen  <ggaren@apple.com>
68307
68308         Reviewed by Darin Adler.
68309
68310         Third step in refactoring JSGlobalObject: Moved data members and data
68311         member access from Interpreter to JSGlobalObject. Changed Interpreter
68312         member functions to static functions. Same for the subclass, 
68313         ScriptInterpreter.
68314         
68315         This is a big change, but it's mostly code motion and renaming.
68316         
68317 2007-12-05  Darin Adler  <darin@apple.com>
68318
68319         "Reviewed" by Geoff.
68320
68321         * loader/FrameLoader.cpp:
68322         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Removed assertion.
68323         (WebCore::FrameLoader::dispatchDidCommitLoad): This one too.
68324         The assertions are firing like crazy. Not sure why yet.
68325
68326 2007-12-05  Darin Adler  <darin@apple.com>
68327
68328         Reviewed by Adam Roben.
68329
68330         - fix http://bugs.webkit.org/show_bug.cgi?id=16306
68331           Assertion failed in WebCore/loader/FrameLoader.cpp:4642
68332
68333         * loader/FrameLoader.cpp:
68334         (WebCore::FrameLoader::dispatchDidCommitLoad): Check m_creatingInitialEmptyDocument
68335         and don't deliver the client call in that case.
68336
68337 2007-12-05  Mark Rowe  <mrowe@apple.com>
68338
68339         Reviewed by Kevin Decker.
68340
68341         Fix 64-bit debug build.
68342
68343         * platform/text/mac/TextCodecMac.cpp:
68344         (WebCore::TextCodecMac::decode): OSStatus is a long for 32-bit but int on 64-bit,
68345         so we need to cast it to be able to use a single format specifier on both.
68346
68347 2007-12-05  Kevin Decker  <kdecker@apple.com>
68348
68349         Reviewed by Hyatt.
68350
68351         <rdar://problem/5613106> Acordex: REGRESSION (Tiger-Leopard): plug-ins can no longer take over TIFF images (affects uspto.gov)
68352        
68353         * loader/FrameLoader.cpp:
68354         (WebCore::FrameLoader::shouldUsePlugin): Allow plug-ins (with the exception of QuickTime) to
68355         takeover TIFF once again.
68356         
68357 2007-12-05  Luca Bruno  <lethalman88@gmail.com>
68358
68359         Reviewed by Alp Toker.
68360
68361         http://bugs.webkit.org/show_bug.cgi?id=16290
68362         [GTK] Pasting clipboard in rich text.
68363
68364         * platform/gtk/PasteboardGtk.cpp:
68365         (Pasteboard::documentFragment): Implement rich text paste support.
68366
68367 2007-12-05  Adele Peterson  <adele@apple.com>
68368
68369         Reviewed by Hyatt.
68370
68371         Reverting fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
68372
68373         We need to just fix the underlying focus ring repaint problem.
68374
68375         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
68376
68377 2007-12-04  Kevin McCullough  <kmccullough@apple.com>
68378
68379         Reviewed by Darin.
68380
68381         - <rdar://5621435>
68382         - Security Fix. Instead of having it off by default, WebKit now must
68383         explicitly turn off local-resource restriction when needed for backwards
68384         compatibility reasons.
68385
68386         * loader/FrameLoader.cpp:
68387
68388 2007-12-05  Adam Roben  <aroben@apple.com>
68389
68390         Set the menu item identifier for all menu items
68391
68392         This allows WebKit clients to distinguish between submenus in the
68393         context menu.
68394
68395         Reviewed by Darin.
68396
68397         No test possible.
68398
68399         * platform/win/ContextMenuItemWin.cpp:
68400         (WebCore::ContextMenuItem::ContextMenuItem):
68401
68402 2007-12-05  Dan Bernstein  <mitz@apple.com>
68403
68404         Reviewed by Darin Adler.
68405
68406         - WebCore part of fixing <rdar://problem/5111082> Flash popup video ad doesn't close when clicked at http://www.firestonecompleteautocare.com/
68407
68408         * manual-tests/nested-plug-ins.html: Added.
68409         * manual-tests/resources/nested-plug-ins-inner-frame.html: Added.
68410         * manual-tests/resources/nested-plug-ins-outer-frame.html: Added.
68411         * platform/ScrollView.h:
68412         * platform/Widget.h:
68413         (WebCore::Widget::attachToWindow): Added. Tells the widget that it is connected
68414         via visible ScrollViews to the root ScrollView of the WebView.
68415         (WebCore::Widget::detachFromWindow): Added. Tells the widget that it is no longer
68416         connected via visible ScrollViews to the root ScrollView of the WebView.
68417         * platform/win/ScrollViewWin.cpp:
68418         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate): Added
68419         m_visible and m_attachedToWindow members.
68420         (WebCore::ScrollView::attachToWindow): Added. Attaches all children if this
68421         view is visible.
68422         (WebCore::ScrollView::detachFromWindow): Added. Detaches all children if this
68423         view is visible (otherwise they would be detached already).
68424         (WebCore::ScrollView::show): Added. Attaches all children if this view
68425         is attached.
68426         (WebCore::ScrollView::hide): Added. Detaches all children if this view
68427         is attached (otherwise they would be detached already).
68428         (WebCore::ScrollView::isAttachedToWindow): Added.
68429         * platform/win/WidgetWin.cpp:
68430         (WebCore::Widget::setParent): Added calls to attachToWindow() and detachFromWindow()
68431         depending on whether the parent is set and attached or not.
68432         * plugins/win/PluginViewWin.cpp:
68433         (WebCore::PluginViewWin::setFocus):
68434         (WebCore::PluginViewWin::show): Changed to show the plug-in only if
68435         this view is attached.
68436         (WebCore::PluginViewWin::hide): Changed to hide the plug-in only if this
68437         view is attached (otherwise it would be hidden already).
68438         (WebCore::PluginViewWin::attachToWindow): Added. Shows the plug-in if this view
68439         is visible.
68440         (WebCore::PluginViewWin::detachFromWindow): Added. Hides the plug-in if this view
68441         is visible (otherwise it would be hidden already).
68442         (WebCore::PluginViewWin::PluginViewWin):
68443         * plugins/win/PluginViewWin.h: Added m_attachedToWindow member.
68444
68445 2007-12-04  Alp Toker  <alp@atoker.com>
68446
68447         Potential GTK+ build fix for the glib-genmarshal issue.
68448
68449         Split the glib-genmarshal qmake generator in two; one for the source
68450         file, another for the header.
68451
68452         * WebCore.pro:
68453
68454 2007-12-04  Alp Toker  <alp@atoker.com>
68455
68456         GTK+ build fix.
68457
68458         * platform/PlugInInfoStore.h:
68459
68460 2007-12-04  Kevin Decker  <kdecker@apple.com>
68461
68462         Reviewed by Anders.
68463
68464         <rdar://problem/5629125> PluginInfoStore needs the ability to return the name of a plug-in for a given MIME type
68465
68466         * page/mac/WebCoreViewFactory.h: Added pluginNameForMIMEType: method.
68467         * platform/PlugInInfoStore.h:
68468         * platform/gtk/TemporaryLinkStubs.cpp: Added stub version of pluginNameForMIMEType.
68469         (PlugInInfoStore::pluginNameForMIMEType):
68470         * platform/mac/PlugInInfoStoreMac.mm:
68471         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added.
68472         * platform/qt/PlugInInfoStoreQt.cpp: 
68473         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
68474         * plugins/win/PlugInInfoStoreWin.cpp: 
68475         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
68476
68477 2007-12-04  Adele Peterson  <adele@apple.com>
68478
68479         Reviewed by Darin.
68480
68481         Fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
68482
68483         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
68484         Adjust outline-offset so it doesn't extend beyond the border to interfere with typing
68485
68486 2007-12-04  Anders Carlsson  <andersca@apple.com>
68487
68488         Reviewed by Jon.
68489
68490         Always call NPP_NewStream, NPP_DestroyStream and NPP_URLNotify for JavaScript
68491         result streams, even if the JavaScript expression threw an exception or returned undefined.
68492         This matches what Firefox does.
68493         
68494         * plugins/win/PluginStreamWin.cpp:
68495         (WebCore::PluginStreamWin::sendJavaScriptStream):
68496         Handle the result string being null, and set the correct NPReason if it is.
68497         
68498         * plugins/win/PluginViewWin.cpp:
68499         (WebCore::PluginViewWin::performRequest):
68500         Always send the JavaScript stream, regardless of the result could be converted to a string or not.
68501
68502 2007-12-04  Adele Peterson  <adele@apple.com>
68503
68504         Reviewed by Hyatt.
68505
68506         Fix for <rdar://problem/5622464> controls should show up for audio element
68507
68508         * css/html4.css: Added styles for audio controls.  This will need to be refined, since we may want a different look for audio controls.
68509         * html/HTMLMediaElement.cpp:
68510         (WebCore::HTMLMediaElement::attributeChanged): When the controls attribute changes detach and reattach if necessary. 
68511         (WebCore::HTMLMediaElement::rendererIsNeeded): Added.
68512         (WebCore::HTMLMediaElement::createRenderer): Added.  Uses RenderMedia.
68513         * html/HTMLMediaElement.h:
68514         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): Added constructor that doesn't take intrinsic size.
68515         * rendering/RenderMedia.h:
68516
68517 2007-12-04  Anders Carlsson  <andersca@apple.com>
68518
68519         Reviewed by Sam.
68520
68521         Add isSafeScript(const JSGlobalObject*) so we won't get the JSGlobalObject
68522         implementation, which always returns true(!).
68523         
68524         * bindings/js/kjs_window.cpp:
68525         (KJS::Window::isSafeScript):
68526         Make the static isSafeScript method take two JSGlobalObjects.
68527         
68528         * bindings/js/kjs_window.h:
68529         (KJS::Window::isSafeScript):
68530         Implement isSafeScript and have it call the static method.
68531
68532 2007-11-27  Adam Roben  <aroben@apple.com>
68533
68534         Make the implementation of Frame::setNeedsReapplyStyles cross-platform
68535
68536         Reviewed by Hyatt.
68537
68538         No change in functionality.
68539
68540         * page/Frame.cpp:
68541         (WebCore::Frame::setNeedsReapplyStyles): Added. Invalidates the
68542         FrameView so that FrameView::layout will be called, which ends up
68543         calling reapplyStyles.
68544         (WebCore::Frame::needsReapplyStyles): Added.
68545         (WebCore::Frame::reapplyStyles): Renamed from reparseConfiguration.
68546         (WebCore::FramePrivate::FramePrivate):
68547         * page/Frame.h:
68548         * page/FramePrivate.h: Added new boolean member.
68549         * page/FrameView.cpp:
68550         (WebCore::FrameView::layout): Call Frame::reapplyStyles if needed.
68551         (WebCore::FrameView::needsLayout): Say that we need layout if the
68552         Frame needs styles reapplied.
68553         * page/mac/WebCoreFrameBridge.h: Removed setNeedsReapplyStyles.
68554         * page/mac/WebCoreFrameBridge.mm:
68555         (-[WebCoreFrameBridge reapplyStylesForDeviceType:]): Updated for
68556         rename.
68557
68558         * bridge/win/FrameWin.cpp: Removed Frame::setNeedsReapplyStyles.
68559         * page/gtk/FrameGtk.cpp: Ditto.
68560         * page/mac/FrameMac.mm: Ditto.
68561         * page/qt/FrameQt.cpp: Ditto.
68562         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
68563
68564 2007-12-04  Antti Koivisto  <antti@apple.com>
68565
68566         Reviewed by Adele.
68567
68568         Pass intrinsic size to the base class.
68569
68570         * rendering/RenderMedia.cpp:
68571         (WebCore::RenderMedia::RenderMedia):
68572
68573 2007-12-04  Adele Peterson  <adele@apple.com>
68574
68575         Reviewed by Darin.
68576
68577         Fix for <rdar://problem/5578209> REGRESSION: Crash in WebCore::DeprecatedValueListImpl::Private::copyList when going back on zoomerang.com/survey
68578
68579         * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
68580           When the new url is exactly the same as the old url, don't treat it like a fragment navigation, since its going to cause a reload.
68581
68582 2007-12-04  Darin Adler  <darin@apple.com>
68583
68584         Reviewed by Kevin Decker.
68585
68586         - added an assertion for a situation that leads to a Safari assertion:
68587           a commit that is not followed by a load completion
68588
68589         - removed some unneeded FrameLoader stuff -- maybe some day we'll get this
68590           class cut down to size
68591
68592         * loader/FrameLoader.cpp:
68593         (WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
68594         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
68595         that we already sent a commit before sending a complete.
68596         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
68597         client directly instead of indirecting through a function.
68598         (WebCore::FrameLoader::loadItem): Ditto.
68599         (WebCore::FrameLoader::goToItem): Ditto.
68600         (WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
68601         state from Settings instead of FrameLoaderClient. Also call client directly
68602         instead of indirecting through a function.
68603         (WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
68604         of indirecting through a function.
68605         (WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
68606         that we did not yet send a commit and set the flag that will be used to check
68607         that we don't do this twice in a row without an intervening completion call.
68608
68609         * loader/FrameLoader.h: Added a boolean for the assertion. Removed six
68610         now-unneeded functions.
68611
68612         * loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.
68613
68614         * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
68615         the private browsing state from Settings instead of FrameLoaderClient.
68616
68617         * svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.
68618
68619 2007-12-03  Antti Koivisto  <antti@apple.com>
68620
68621         Reviewed by Adele.
68622         
68623         Fix <rdar://problem/5624802> 
68624         Controller displays outside of <video> element when width and height aren't specified 
68625
68626         - Explicitly adjust size of the controls tree root.
68627         - Switch RenderMedia base class back to RenderReplaced. It is easier to manage the shadow tree
68628           by hand. This also allows better code sharing with other replaced element classes.
68629         - Move duplicated layout and painting code from subclasses up to RenderReplaced.
68630
68631         Test: media/video-controls-rendering.html
68632
68633         * rendering/RenderHTMLCanvas.cpp:
68634         (WebCore::RenderHTMLCanvas::paintReplaced):
68635         * rendering/RenderHTMLCanvas.h:
68636             Share code.
68637         * rendering/RenderImage.cpp:
68638         (WebCore::RenderImage::paintReplaced):
68639         (WebCore::RenderImage::minimumReplacedHeight):
68640         * rendering/RenderImage.h:
68641             Share code.
68642         * rendering/RenderMedia.cpp:
68643         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
68644         (WebCore::RenderMediaControlShadowRoot::setParent):
68645             Add a subclass just to get through encapsulation to use setParent().
68646         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
68647             Move initialization to the constructor.
68648         (WebCore::RenderMedia::RenderMedia):
68649         (WebCore::RenderMedia::~RenderMedia):
68650         (WebCore::RenderMedia::layout):
68651             Resize and layout the controller root by hand.
68652         (WebCore::RenderMedia::firstChild):
68653         (WebCore::RenderMedia::lastChild):
68654         (WebCore::RenderMedia::removeChild):
68655             Support one child renderer for controls.
68656         (WebCore::RenderMedia::createControlsShadowRoot):
68657         * rendering/RenderMedia.h:
68658         (WebCore::RenderMedia::isMedia):
68659             Switch base class to RenderReplaced, delete the now unnecessary stuff.
68660         * rendering/RenderReplaced.cpp:
68661         (WebCore::RenderReplaced::layout):
68662         (WebCore::RenderReplaced::paint):
68663         * rendering/RenderReplaced.h:
68664         (WebCore::RenderReplaced::minimumReplacedHeight):
68665         (WebCore::RenderReplaced::paintReplaced):
68666             Share code.
68667         * rendering/RenderVideo.cpp:
68668         (WebCore::RenderVideo::videoSizeChanged):
68669             Simplify, just request relayout.
68670         (WebCore::RenderVideo::paintReplaced):
68671         (WebCore::RenderVideo::layout):
68672         * rendering/RenderVideo.h:
68673             Share code.
68674
68675 2007-12-04  Michael Natterer  <mitch@imendio.com>
68676
68677         Reviewed by Alp Toker.
68678
68679         * WebCore.pro: fix build of webkit-marshal by building the
68680         functions into a separate .cpp file instead of including them in
68681         the header. This way we can use the marshallers from more than one
68682         file without using bad hacks.
68683
68684         Add the generated sources directory to DEPENDPATH.
68685
68686 2007-12-04  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
68687
68688         Reviewed by Alp Toker.
68689
68690         http://bugs.webkit.org/show_bug.cgi?id=16145
68691         [gtk] Implement media support in GTK backend
68692
68693         This implements the media tags of HTML5 on the GTK+ port based on the 
68694         Mac port. Media tests pass although some tests required a small modifications: 
68695         As per the HTML5 spec, the loading of the clip should start only after 
68696         all script are done.  But in the case of the tests, the loading starts 
68697         before some callbacks get registered.  This has been discussed with 
68698         Antti Koivisto, and the tests should be updated.
68699
68700         There is only one known issue: one time in 10 tries, loading a buffered 
68701         clip will never end buffering.  The buffering will stall at 97% for no 
68702         apparent reasons.  Reloading the page usually works around the problem.
68703         On the GStreamer side, some codecs don't return correct values, therefore
68704         they make the tests fail.  For instance H.264 will make the video-end 
68705         test fail.  This should be fixed in GStreamer 0.10.15.
68706
68707         This version displays video in a pop up window.  A place holder is drawn
68708         on the page where the video should appear.
68709
68710         By default, it is turned off in WebCore.pro until GStreamer/X
68711         detection issues are sorted out.
68712
68713         * WebCore.pro:
68714         Disable video for now
68715         * platform/Logging.cpp:
68716         * platform/Logging.h:
68717         Added a logging level for Media stuff
68718         * platform/graphics/Movie.cpp:
68719         * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Added.
68720         (WebCore::moviePrivateErrorCallback):
68721         (WebCore::moviePrivateEOSCallback):
68722         (WebCore::moviePrivateStateCallback):
68723         (WebCore::moviePrivateBufferingCallback):
68724         (WebCore::moviePrivateWindowIDCallback):
68725         (WebCore::MoviePrivate::MoviePrivate):
68726         (WebCore::MoviePrivate::~MoviePrivate):
68727         (WebCore::MoviePrivate::load):
68728         (WebCore::MoviePrivate::play):
68729         (WebCore::MoviePrivate::pause):
68730         (WebCore::MoviePrivate::duration):
68731         (WebCore::MoviePrivate::currentTime):
68732         (WebCore::MoviePrivate::seek):
68733         (WebCore::MoviePrivate::setEndTime):
68734         (WebCore::MoviePrivate::addCuePoint):
68735         (WebCore::MoviePrivate::removeCuePoint):
68736         (WebCore::MoviePrivate::clearCuePoints):
68737         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
68738         (WebCore::MoviePrivate::cancelSeek):
68739         (WebCore::MoviePrivate::cuePointTimerFired):
68740         (WebCore::MoviePrivate::paused):
68741         (WebCore::MoviePrivate::seeking):
68742         (WebCore::MoviePrivate::naturalSize):
68743         (WebCore::MoviePrivate::hasVideo):
68744         (WebCore::MoviePrivate::setVolume):
68745         (WebCore::MoviePrivate::setMuted):
68746         (WebCore::MoviePrivate::setRate):
68747         (WebCore::MoviePrivate::dataRate):
68748         (WebCore::MoviePrivate::networkState):
68749         (WebCore::MoviePrivate::readyState):
68750         (WebCore::MoviePrivate::maxTimeBuffered):
68751         (WebCore::MoviePrivate::maxTimeSeekable):
68752         (WebCore::MoviePrivate::maxTimeLoaded):
68753         (WebCore::MoviePrivate::bytesLoaded):
68754         (WebCore::MoviePrivate::totalBytesKnown):
68755         (WebCore::MoviePrivate::totalBytes):
68756         (WebCore::MoviePrivate::cancelLoad):
68757         (WebCore::MoviePrivate::updateStates):
68758         (WebCore::MoviePrivate::loadStateChanged):
68759         (WebCore::MoviePrivate::rateChanged):
68760         (WebCore::MoviePrivate::sizeChanged):
68761         (WebCore::MoviePrivate::timeChanged):
68762         (WebCore::MoviePrivate::volumeChanged):
68763         (WebCore::MoviePrivate::didEnd):
68764         (WebCore::MoviePrivate::loadingFailed):
68765         (WebCore::MoviePrivate::setRect):
68766         (WebCore::MoviePrivate::setVisible):
68767         (WebCore::MoviePrivate::paint):
68768         (WebCore::MoviePrivate::getSupportedTypes):
68769         (WebCore::MoviePrivate::createGSTPlayBin):
68770         * platform/graphics/gtk/MoviePrivateGStreamer.h: Added.
68771
68772 2007-12-04  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
68773
68774         Reviewed by Simon.
68775
68776         * Implement the InspectorClient for the Qt port
68777         * It does not support highlighting of nodes yet
68778         * Use QRC to open the internal page. The important thing is the
68779         '/' in the URL to make WebCore::Document::completeURL behave the
68780         way we want.
68781         * To make the InspectorClient work we will have to mark qrc as secure.
68782
68783         * WebCore.pro:
68784         * loader/FrameLoader.cpp:
68785         (WebCore::localSchemes):
68786         * page/inspector/WebKit.qrc: Added.
68787
68788 2007-12-04  Alp Toker  <alp@atoker.com>
68789
68790         Rubber stamped by Mark Rowe.
68791
68792         Remove two unused variables to silence warnings.
68793
68794         * html/CanvasRenderingContext2D.cpp:
68795         (WebCore::CanvasRenderingContext2D::fill):
68796         (WebCore::CanvasRenderingContext2D::stroke):
68797
68798 2007-12-03  Dan Bernstein  <mitz@apple.com>
68799
68800         Reviewed by Darin Adler.
68801
68802         - fix <rdar://problem/5134044> fast/frames/frame-src-attribute.html fails on Windows
68803
68804         * platform/win/ScrollViewWin.cpp:
68805         (WebCore::ScrollView::visibleWidth): Do not return negative values.
68806         (WebCore::ScrollView::visibleHeight): Ditto.
68807
68808 2007-12-03  Dan Bernstein  <mitz@apple.com>
68809
68810         Reviewed by Dave Hyatt.
68811
68812         - fix <rdar://problem/5346452> Resize event doesn't fire on body element inside a frame
68813
68814         Test: fast/events/resize-subframe.html
68815
68816         * page/FrameView.cpp:
68817         (WebCore::FrameViewPrivate::FrameViewPrivate): Added a timer used when
68818         deferring tasks that need to be done after layout.
68819         (WebCore::FrameViewPrivate::reset):
68820         (WebCore::FrameView::~FrameView):
68821         (WebCore::FrameView::layout): Moved the updating of widget positions,
68822         loading plug-ins and sending events queued up during layout into
68823         performPostLayoutTasks(). performPostLayoutTasks() is called after
68824         layout unless the layout was triggered by a previous layout's post-
68825         layout tasks. In the latter case, performPostLayoutTasks() is scheduled
68826         to run later.
68827         (WebCore::FrameView::performPostLayoutTasks): Performs work that needs
68828         to be done after layout but which can result in arbitrary code
68829         execution and therefore may re-invalidate the layout. This includes
68830         updating widget positions, loading plug-ins, and dispatching layout-
68831         related DOM events (scroll, overflow and resize).
68832         (WebCore::FrameView::postLayoutTimerFired):
68833         (WebCore::FrameView::dispatchScheduledEvents):
68834         * page/FrameView.h:
68835         * page/mac/WebCoreFrameBridge.h:
68836         * page/mac/WebCoreFrameBridge.mm: Removed -sendResizeEvent since this
68837         is handled by FrameView now.
68838
68839 2007-12-03  Rob Buis  <buis@kde.org>
68840
68841         Reviewed by Darin.
68842
68843         http://bugs.webkit.org/show_bug.cgi?id=15767
68844         Text decorations do not respect "visibility" property
68845
68846         Only paint decorations if visibility is "visible".
68847
68848         * rendering/SVGInlineTextBox.cpp:
68849         (WebCore::SVGInlineTextBox::paintDecoration):
68850
68851 2007-12-03  Steve Falkenburg  <sfalken@apple.com>
68852
68853         Fix build.
68854
68855         * WebCore.vcproj/WebCore.vcproj:
68856
68857 2007-12-03  Nikolas Zimmermann  <zimmermann@kde.org>
68858
68859         Reviewed by David.
68860
68861         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15645
68862         Don't allow selectors to interfere with the SVG shadow tree (<use> internal non-exposed tree).
68863
68864         * css/CSSStyleSelector.cpp:
68865         (WebCore::CSSStyleSelector::checkSelector):
68866
68867 2007-12-03  Dan Bernstein  <mitz@apple.com>
68868
68869         Reviewed by Adam Roben.
68870
68871         - fix <rdar://problem/5538651> REGRESSSION: domfuzz: null deref in WebCore::Document::canReplaceChild
68872
68873         Test: fast/dom/Document/replaceChild-null-oldChild.html
68874
68875         * dom/Document.cpp:
68876         (WebCore::Document::canReplaceChild):
68877
68878 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
68879
68880         Reviewed by Simon.
68881
68882         * Avoid crashes by making sure everything is layouted before
68883         we start painting. This avoids a crash in Widget::invalidateRect
68884         because QPainter::begin would fail
68885         * The QWebFrame::layout() methods and calls are left untouched because
68886         this would be an API decision.
68887         
68888
68889         WARNING: NO TEST CASES ADDED OR CHANGED
68890
68891         * page/FrameView.cpp:
68892         (WebCore::FrameView::updateControlTints):
68893         * page/FrameView.h:
68894         * platform/ScrollView.h:
68895         * platform/qt/ScrollViewQt.cpp:
68896         (WebCore::ScrollView::children):
68897
68898 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
68899
68900         Reviewed by Simon.
68901
68902         * Implement GraphicsContext::fillRoundedRect similiar to the
68903         CoreGraphics implementation only addPath is not called this
68904         seems to be only needed for CoreGraphics.
68905         
68906
68907         WARNING: NO TEST CASES ADDED OR CHANGED
68908
68909         * platform/graphics/qt/GraphicsContextQt.cpp:
68910         (WebCore::GraphicsContext::fillRoundedRect):
68911
68912 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
68913
68914         Reviewed by Simon.
68915
68916         * Coding Style fixes
68917         
68918
68919         WARNING: NO TEST CASES ADDED OR CHANGED
68920
68921         * platform/qt/ScrollViewQt.cpp:
68922         (WebCore::ScrollView::addChild):
68923         (WebCore::ScrollView::removeChild):
68924
68925 2007-12-03  Alp Toker  <alp@atoker.com>
68926
68927         Reviewed by Mark Rowe.
68928
68929         Don't delete the decoder if it's already been created. The one we have
68930         is fine.
68931
68932         Cairo image cleanups. Nothing substantial.
68933
68934         Notify ImageObservers where appropriate.
68935
68936         * platform/graphics/cairo/ImageCairo.cpp:
68937         (WebCore::BitmapImage::draw):
68938         (WebCore::Image::drawPattern):
68939         * platform/graphics/cairo/ImageSourceCairo.cpp:
68940         (WebCore::ImageSource::setData):
68941         * platform/graphics/gtk/ImageGtk.cpp:
68942
68943 2007-12-03  Simon Hausmann  <hausmann@webkit.org>
68944
68945         Reviewed by Lars.
68946
68947         Fixed crash when rendering form elements with Qt 4.4
68948
68949         QPainter::device() is not guaranteed to return a QWidget, so do the safe "cast" with the
68950         help of QPaintDevice::devType().
68951         Also fall back to the QApplication::style() if we don't have a widget.
68952
68953         * platform/qt/RenderThemeQt.cpp:
68954         (WebCore::RenderThemeQt::paintButton):
68955         (WebCore::RenderThemeQt::paintTextField):
68956         (WebCore::RenderThemeQt::paintMenuList):
68957         (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
68958
68959 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
68960
68961         Reviewed by Sam Weinig.
68962
68963         * Add FrameLoader::shouldTreatSchemeAsLocal which is similar to
68964         shouldTreatURLAsLocal.
68965         * Make use of FrameLoader::shouldTreatSchemeAsLocal in SecurityOrigin
68966         and do not hardcode "file". This is needed for the WebKit/qt port to make
68967         the Web Inspector work as it using the qrc protocol instead of file.
68968
68969
68970         * loader/FrameLoader.cpp:
68971         (WebCore::FrameLoader::shouldTreatSchemeAsLocal):
68972         * loader/FrameLoader.h:
68973         * platform/SecurityOrigin.cpp:
68974         (WebCore::SecurityOrigin::isSecureTransitionTo):
68975
68976 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
68977
68978         Rubber stamped by Sam Weinig.
68979
68980         Only add applewebdata to the localSchemes when building for the
68981         mac. This is in preparation of adding qrc for the Qt port there
68982         as well and http://bugs.webkit.org/show_bug.cgi?id=15938.
68983
68984         According to Anders applewebdata is not used on the win port.
68985
68986         * loader/FrameLoader.cpp:
68987         (WebCore::localSchemes):
68988
68989 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
68990
68991         Rubber stamped by Sam Weinig.
68992
68993         Fix a typo. It is contains and not containts
68994
68995         * loader/FrameLoader.cpp:
68996
68997 2007-12-03  Alp Toker  <alp@atoker.com>
68998
68999         Add another missing DEPENDPATH.
69000
69001         Noticed when fixing the build.
69002
69003         * WebCore.pro:
69004
69005 2007-12-03  Adam Roben  <aroben@apple.com>
69006
69007         Speculative Windows build fix
69008
69009         * plugins/win/PluginViewWin.cpp:
69010         (WebCore::getString):
69011
69012 2007-12-03  Geoffrey Garen  <ggaren@apple.com>
69013
69014         Build fix: added symbols to the right .exp file.
69015
69016         * WebCore.base.exp:
69017
69018 2007-12-02  Geoffrey Garen  <ggaren@apple.com>
69019
69020         Reviewed by Eric Seidel.
69021
69022         Updated to match the JavaScriptCore change to move virtual methods from
69023         Interpreter to JSGlobalObject.
69024         
69025         Moved virtual ScriptInterpreter functions to Window.
69026
69027 2007-12-02  Darin Adler  <darin@apple.com>
69028
69029         Reviewed by Mitz.
69030
69031         - fix <rdar://problem/5601995> Hang/crash on http://ebay-uk.custhelp.com/
69032
69033         There were two problems here:
69034
69035             1) Incorrect HTMLCollection behavior led to us trying to insert a
69036                new row inside an existing row instead of next to it. The fix for
69037                this is to make HTMLCollection work better for table-related
69038                collections.
69039
69040             2) HTMLTableRowElement::insertCell would return a bad pointer if
69041                the insertion failed. The code should have failed, but not crashed,
69042                so it's worth fixing that too.
69043
69044         While fixing the HTMLCollection issues, I did some clean-up of that
69045         class and its derived classes.
69046
69047         Test: fast/dom/HTMLTableElement/rows.html
69048         Test: fast/dom/HTMLTableElement/tBodies.html
69049         Test: fast/dom/HTMLTableRowElement/cells.html
69050         Test: fast/dom/HTMLTableRowElement/insertCell.html
69051         Test: fast/dom/HTMLTableSectionElement/rows.html
69052
69053         * bindings/js/JSHTMLCollectionCustom.cpp:
69054         (WebCore::toJS): Updated because collectionType() was renamed to type().
69055
69056         * html/HTMLCollection.cpp:
69057         (WebCore::HTMLCollection::HTMLCollection): Updated for data member name
69058         changes. Also added a protected constructor for use by derived classes
69059         that pass in a CollectionInfo.
69060         (WebCore::HTMLCollection::CollectionInfo::copyCacheMap): Moved out of
69061         the header.
69062         (WebCore::isTableSection): Added.
69063         (WebCore::HTMLCollection::itemAfter): Renamed from traverseNextItem,
69064         because the old name was grammatically incorrect and thus a bit confusing.
69065         Changed to operate on Element* instead of Node*, and use 0 to start
69066         rather than passing in the base node (required since the base node can be
69067         a document, which is not an element). Generalized the code that made
69068         NodeChildren not descend into deeper descendants so it can be used for
69069         TRCells, TSectionRows, TableTBodies, and TableRows. Reformatted the
69070         switch statement and got rid of the "found" boolean since we can just
69071         return when we find something. Got rid of the default case, and instead
69072         listed all the enum values. Also changed to use a for loop for clarity.
69073         (WebCore::HTMLCollection::calcLength): Updated for itemAfter changes.
69074         (WebCore::HTMLCollection::item): Ditto.
69075         (WebCore::HTMLCollection::nextItem): Ditto.
69076         (WebCore::HTMLCollection::checkForNameMatch): Updated to take an Element
69077         instead of a Node pointer.
69078         (WebCore::HTMLCollection::namedItem): More of the same.
69079         (WebCore::HTMLCollection::updateNameCache): Ditto.
69080         (WebCore::HTMLCollection::namedItems): Ditto.
69081         (WebCore::HTMLCollection::nextNamedItem): Ditto.
69082         (WebCore::HTMLCollection::tags): Ditto.
69083
69084         * html/HTMLCollection.h: Added a type FormElements, so that the
69085         HTMLFormCollection would not have a type of DocImages, which is what
69086         it previously did. Changed the base parameter to be a PassRefPtr to
69087         make it clear we take ownership of it. Added a comment explaining
69088         why we should change the name CollectionInfo. Made a lot more members
69089         private instead of protected. Renamed traverseNextItem to itemAfter.
69090         Changed most functions to take Element* instead of Node*.
69091
69092         * html/HTMLFormCollection.cpp:
69093         (WebCore::HTMLFormCollection::formCollectionInfo): Added.
69094         (WebCore::HTMLFormCollection::HTMLFormCollection): Updated to pass
69095         collection info into the base class.
69096         (WebCore::HTMLFormCollection::calcLength): Updated to use base() so we
69097         don't need to get at m_base directly.
69098         (WebCore::HTMLFormCollection::item): Same, but for info().
69099         (WebCore::HTMLFormCollection::getNamedItem): Removed unused first
69100         argument.
69101         (WebCore::HTMLFormCollection::getNamedFormItem): Got rid of unneeded
69102         checks that the base is still an element and still a form, since that's
69103         guaranteed.
69104         (WebCore::HTMLFormCollection::nextItem): Use info().
69105         (WebCore::HTMLFormCollection::nextNamedItemInternal): Node instead of
69106         Element, some name changes.
69107         (WebCore::HTMLFormCollection::namedItem): Update for changes elsewhere.
69108         (WebCore::HTMLFormCollection::nextNamedItem): Ditto, also rewrote loop
69109         to be much simpler.
69110         (WebCore::HTMLFormCollection::updateNameCache): More of the same.
69111
69112         * html/HTMLFormCollection.h: Changed constructor to take an
69113         HTMLFormElement, using a PassRefPtr to communicate transfer of
69114         ownership. Made everything private instead of protected. Removed
69115         unneeded override of firstItem. Made getNamedItem and
69116         nextNamedItemInternal non-virtual. Removed unused first argument of
69117         getNamedItem. Added declaration of formCollectionInfo.
69118
69119         * html/HTMLNameCollection.cpp:
69120         (WebCore::HTMLNameCollection::HTMLNameCollection): Updated to pass
69121         collection info into the base class.
69122         (WebCore::HTMLNameCollection::itemAfter): Reformatted a bit and
69123         changed into a for loop.
69124
69125         * html/HTMLNameCollection.h: Updated for name changes. Made function
69126         private instead of public. Used PassRefPtr in constructor.
69127
69128         * html/HTMLOptionsCollection.cpp:
69129         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Updated to
69130         pass collection info into the base class.
69131         (WebCore::HTMLOptionsCollection::add): Updated for public/private
69132         changes in the base class.
69133         (WebCore::HTMLOptionsCollection::selectedIndex): Ditto.
69134         (WebCore::HTMLOptionsCollection::setSelectedIndex): Ditto.
69135         (WebCore::HTMLOptionsCollection::setLength): Ditto.
69136
69137         * html/HTMLOptionsCollection.h: Changed constructor parameter to be a
69138         PassRefPtr.
69139
69140         * html/HTMLTableRowElement.cpp:
69141         (WebCore::HTMLTableRowElement::insertCell): Changed code to use RefPtr
69142         and PassRefPtr since this creates a new object. This alone fixed the
69143         crash. Also cleaned up logic a bit to be more readable.
69144
69145         * html/HTMLTableRowElement.h: Changed insertCell to return a PassRefPtr.
69146         Also reordered functions a bit to make things a little more logical and
69147         removed the unused ncols data member.
69148
69149         * html/HTMLTableSectionElement.cpp:
69150         (WebCore::HTMLTableSectionElement::rows): Pass TSectionRows, not
69151         TableRows. This mistake was harmless before because TableRows and
69152         TSectionRows were handled identically inside HTMLCollection, but that is
69153         no longer the case with this fix.
69154
69155         * bindings/scripts/CodeGeneratorJS.pm: Add an include to cope with the
69156         fact that HTMLOptionsCollection no longer includes HTMLOptionElement.
69157         I don't think this really should be a special case -- might be worth
69158         returning later to see if this can be optimized.
69159
69160 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
69161
69162         Reviewed by Adam.
69163
69164         RenderSVGViewportContainer sets wrong width/height.
69165         Share code with RenderSVGContainer in a central calcBounds() function.
69166
69167         Fixes:
69168         - svg/custom/use-css-events.svg (http://bugs.webkit.org/show_bug.cgi?id=15403)
69169         - svg/custom/deep-dynamic-updates.svg
69170         - svg/custom/use-clipped-hit.svg
69171         - svg/custom/image-clipped-hit.svg
69172
69173         * rendering/RenderSVGContainer.cpp:
69174         (WebCore::RenderSVGContainer::layout):
69175         (WebCore::RenderSVGContainer::calcBounds):
69176         * rendering/RenderSVGContainer.h:
69177         * rendering/RenderSVGViewportContainer.cpp:
69178         (WebCore::RenderSVGViewportContainer::layout):
69179
69180 2007-12-02  Brady Eidson <beidson@apple.com>
69181
69182         Reviewed by Darin
69183
69184         databaseChanged notifications were being sent out on the database thread - they need to be on the main thread
69185         like all other notifications we send out!
69186
69187         * platform/SecurityOriginData.cpp:
69188         (WebCore::SecurityOriginData::copy): Add a deep copy method, for when an object thread hops
69189         * platform/SecurityOriginData.h:
69190
69191         * storage/DatabaseTracker.cpp:
69192         (WebCore::notificationMutex):
69193         (WebCore::notificationQueue):
69194         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged): Add the origin/name pair to a queue
69195         (WebCore::DatabaseTracker::scheduleForNotification): Schedule to deliver this queue of notifications
69196           on the main thread
69197         (WebCore::DatabaseTracker::notifyDatabasesChanged): Deliver all notifications in the queue
69198         * storage/DatabaseTracker.h:
69199
69200         * storage/SQLTransaction.cpp:
69201         (WebCore::SQLTransaction::postflightAndCommit): scheduleNotifyDatabaseChanged() instead of "notify now!"
69202         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
69203
69204 2007-12-02  Rob Buis  <buis@kde.org>
69205
69206         Reviewed by Darin.
69207
69208         http://bugs.webkit.org/show_bug.cgi?id=16002
69209         Load SVG (and other) UA StyleSheets dynamically when needed
69210
69211         Load svg sheet when needed.
69212
69213         * css/CSSStyleSelector.cpp:
69214         (WebCore::screenEval):
69215         (WebCore::printEval):
69216         (WebCore::CSSStyleSelector::CSSStyleSelector):
69217         (WebCore::CSSStyleSelector::loadDefaultStyle):
69218         (WebCore::CSSStyleSelector::styleForElement):
69219         (WebCore::CSSRuleSet::addRulesFromSheet):
69220
69221 2007-12-02  Mark Rowe  <mrowe@apple.com>
69222
69223         Try and fix the Windows build.
69224
69225         * plugins/win/PluginViewWin.cpp:
69226         (WebCore::PluginViewWin::bindingInstance):
69227
69228 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
69229
69230         Rubber stamped by Eric.
69231
69232         Move platform/graphics/svg to graphics/svg as discussed on webkit-dev.
69233         Updated all project files.
69234
69235         * WebCore.pro:
69236         * WebCore.vcproj/WebCore.vcproj:
69237         * WebCore.xcodeproj/project.pbxproj:
69238         * platform/graphics/svg: Removed.
69239         * platform/graphics/svg/SVGImage.cpp: Removed.
69240         * platform/graphics/svg/SVGImage.h: Removed.
69241         * platform/graphics/svg/SVGImageEmptyClients.h: Removed.
69242         * platform/graphics/svg/SVGPaintServer.cpp: Removed.
69243         * platform/graphics/svg/SVGPaintServer.h: Removed.
69244         * platform/graphics/svg/SVGPaintServerGradient.cpp: Removed.
69245         * platform/graphics/svg/SVGPaintServerGradient.h: Removed.
69246         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp: Removed.
69247         * platform/graphics/svg/SVGPaintServerLinearGradient.h: Removed.
69248         * platform/graphics/svg/SVGPaintServerPattern.cpp: Removed.
69249         * platform/graphics/svg/SVGPaintServerPattern.h: Removed.
69250         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp: Removed.
69251         * platform/graphics/svg/SVGPaintServerRadialGradient.h: Removed.
69252         * platform/graphics/svg/SVGPaintServerSolid.cpp: Removed.
69253         * platform/graphics/svg/SVGPaintServerSolid.h: Removed.
69254         * platform/graphics/svg/SVGResource.cpp: Removed.
69255         * platform/graphics/svg/SVGResource.h: Removed.
69256         * platform/graphics/svg/SVGResourceClipper.cpp: Removed.
69257         * platform/graphics/svg/SVGResourceClipper.h: Removed.
69258         * platform/graphics/svg/SVGResourceFilter.cpp: Removed.
69259         * platform/graphics/svg/SVGResourceFilter.h: Removed.
69260         * platform/graphics/svg/SVGResourceListener.h: Removed.
69261         * platform/graphics/svg/SVGResourceMarker.cpp: Removed.
69262         * platform/graphics/svg/SVGResourceMarker.h: Removed.
69263         * platform/graphics/svg/SVGResourceMasker.cpp: Removed.
69264         * platform/graphics/svg/SVGResourceMasker.h: Removed.
69265         * platform/graphics/svg/cairo: Removed.
69266         * platform/graphics/svg/cairo/RenderPathCairo.cpp: Removed.
69267         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Removed.
69268         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Removed.
69269         * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Removed.
69270         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Removed.
69271         * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Removed.
69272         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Removed.
69273         * platform/graphics/svg/cg: Removed.
69274         * platform/graphics/svg/cg/CgSupport.cpp: Removed.
69275         * platform/graphics/svg/cg/CgSupport.h: Removed.
69276         * platform/graphics/svg/cg/RenderPathCg.cpp: Removed.
69277         * platform/graphics/svg/cg/SVGPaintServerCg.cpp: Removed.
69278         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp: Removed.
69279         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Removed.
69280         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp: Removed.
69281         * platform/graphics/svg/cg/SVGResourceClipperCg.cpp: Removed.
69282         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Removed.
69283         * platform/graphics/svg/cg/SVGResourceFilterCg.mm: Removed.
69284         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Removed.
69285         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm: Removed.
69286         * platform/graphics/svg/filters: Removed.
69287         * platform/graphics/svg/filters/SVGDistantLightSource.h: Removed.
69288         * platform/graphics/svg/filters/SVGFEBlend.cpp: Removed.
69289         * platform/graphics/svg/filters/SVGFEBlend.h: Removed.
69290         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp: Removed.
69291         * platform/graphics/svg/filters/SVGFEColorMatrix.h: Removed.
69292         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp: Removed.
69293         * platform/graphics/svg/filters/SVGFEComponentTransfer.h: Removed.
69294         * platform/graphics/svg/filters/SVGFEComposite.cpp: Removed.
69295         * platform/graphics/svg/filters/SVGFEComposite.h: Removed.
69296         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp: Removed.
69297         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h: Removed.
69298         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp: Removed.
69299         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h: Removed.
69300         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp: Removed.
69301         * platform/graphics/svg/filters/SVGFEDisplacementMap.h: Removed.
69302         * platform/graphics/svg/filters/SVGFEFlood.cpp: Removed.
69303         * platform/graphics/svg/filters/SVGFEFlood.h: Removed.
69304         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp: Removed.
69305         * platform/graphics/svg/filters/SVGFEGaussianBlur.h: Removed.
69306         * platform/graphics/svg/filters/SVGFEImage.cpp: Removed.
69307         * platform/graphics/svg/filters/SVGFEImage.h: Removed.
69308         * platform/graphics/svg/filters/SVGFEMerge.cpp: Removed.
69309         * platform/graphics/svg/filters/SVGFEMerge.h: Removed.
69310         * platform/graphics/svg/filters/SVGFEMorphology.cpp: Removed.
69311         * platform/graphics/svg/filters/SVGFEMorphology.h: Removed.
69312         * platform/graphics/svg/filters/SVGFEOffset.cpp: Removed.
69313         * platform/graphics/svg/filters/SVGFEOffset.h: Removed.
69314         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp: Removed.
69315         * platform/graphics/svg/filters/SVGFESpecularLighting.h: Removed.
69316         * platform/graphics/svg/filters/SVGFETile.h: Removed.
69317         * platform/graphics/svg/filters/SVGFETurbulence.cpp: Removed.
69318         * platform/graphics/svg/filters/SVGFETurbulence.h: Removed.
69319         * platform/graphics/svg/filters/SVGFilterEffect.cpp: Removed.
69320         * platform/graphics/svg/filters/SVGFilterEffect.h: Removed.
69321         * platform/graphics/svg/filters/SVGLightSource.cpp: Removed.
69322         * platform/graphics/svg/filters/SVGLightSource.h: Removed.
69323         * platform/graphics/svg/filters/SVGPointLightSource.h: Removed.
69324         * platform/graphics/svg/filters/SVGSpotLightSource.h: Removed.
69325         * platform/graphics/svg/filters/cg: Removed.
69326         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm: Removed.
69327         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm: Removed.
69328         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm: Removed.
69329         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm: Removed.
69330         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm: Removed.
69331         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm: Removed.
69332         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm: Removed.
69333         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm: Removed.
69334         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h: Removed.
69335         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm: Removed.
69336         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm: Removed.
69337         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm: Removed.
69338         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm: Removed.
69339         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm: Removed.
69340         * platform/graphics/svg/filters/cg/SVGFETileCg.mm: Removed.
69341         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm: Removed.
69342         * platform/graphics/svg/filters/cg/WKArithmeticFilter.cikernel: Removed.
69343         * platform/graphics/svg/filters/cg/WKArithmeticFilter.h: Removed.
69344         * platform/graphics/svg/filters/cg/WKArithmeticFilter.m: Removed.
69345         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.cikernel: Removed.
69346         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.h: Removed.
69347         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.m: Removed.
69348         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
69349         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.h: Removed.
69350         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m: Removed.
69351         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
69352         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.h: Removed.
69353         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m: Removed.
69354         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
69355         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.h: Removed.
69356         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m: Removed.
69357         * platform/graphics/svg/filters/cg/WKDistantLightFilter.cikernel: Removed.
69358         * platform/graphics/svg/filters/cg/WKDistantLightFilter.h: Removed.
69359         * platform/graphics/svg/filters/cg/WKDistantLightFilter.m: Removed.
69360         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.cikernel: Removed.
69361         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.h: Removed.
69362         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.m: Removed.
69363         * platform/graphics/svg/filters/cg/WKIdentityTransferFilter.h: Removed.
69364         * platform/graphics/svg/filters/cg/WKIdentityTransferFilter.m: Removed.
69365         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.cikernel: Removed.
69366         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.h: Removed.
69367         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.m: Removed.
69368         * platform/graphics/svg/filters/cg/WKNormalMapFilter.cikernel: Removed.
69369         * platform/graphics/svg/filters/cg/WKNormalMapFilter.h: Removed.
69370         * platform/graphics/svg/filters/cg/WKNormalMapFilter.m: Removed.
69371         * platform/graphics/svg/filters/cg/WKPointLightFilter.cikernel: Removed.
69372         * platform/graphics/svg/filters/cg/WKPointLightFilter.h: Removed.
69373         * platform/graphics/svg/filters/cg/WKPointLightFilter.m: Removed.
69374         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
69375         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.h: Removed.
69376         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m: Removed.
69377         * platform/graphics/svg/filters/cg/WKSpotLightFilter.cikernel: Removed.
69378         * platform/graphics/svg/filters/cg/WKSpotLightFilter.h: Removed.
69379         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m: Removed.
69380         * platform/graphics/svg/filters/cg/WKTableTransferFilter.cikernel: Removed.
69381         * platform/graphics/svg/filters/cg/WKTableTransferFilter.h: Removed.
69382         * platform/graphics/svg/filters/cg/WKTableTransferFilter.m: Removed.
69383         * platform/graphics/svg/mac: Removed.
69384         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Removed.
69385         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
69386         * platform/graphics/svg/qt: Removed.
69387         * platform/graphics/svg/qt/RenderPathQt.cpp: Removed.
69388         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp: Removed.
69389         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
69390         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp: Removed.
69391         * platform/graphics/svg/qt/SVGPaintServerQt.cpp: Removed.
69392         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
69393         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp: Removed.
69394         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp: Removed.
69395         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp: Removed.
69396         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp: Removed.
69397         * svg/graphics: Copied from platform/graphics/svg.
69398
69399 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
69400
69401         Reviewed by Maciej.
69402
69403         Fix IDL lookup in subdirectories. Missing 'my' prefix for the 'thisDir' variable.
69404         When entering subdirectories the 'thisDir' variable got altered - see snippet:
69405
69406         THISDIR: WebCore/page FOUND FILE: FrameView.h (endCondition: 0)
69407         ..
69408         -> ENTER: WebCore/page/gtk (THIS DIR: WebCore/page)
69409         ...
69410         <- LEAVE: WebCore/page/gtk (THIS DIR: WebCore/page/gtk)
69411         THISDIR: WebCore/page/gtk FOUND FILE: History.cpp (endCondition: 0)
69412
69413         'History.cpp' is located in WebCore/page not WebCore/page/gtk.
69414
69415         * bindings/scripts/CodeGenerator.pm:
69416
69417 2007-12-01  Alp Toker  <alp@atoker.com>
69418
69419         Reviewed by Adam Roben.
69420
69421         Add the newly introduced webkit.h convenience header.
69422
69423         * WebCore.pro:
69424
69425 2007-12-01  Antti Koivisto  <antti@apple.com>
69426
69427         Reviewed by Adam.
69428         
69429         - Fix crash when removing a loading media element from the tree.
69430         - Follow the spec by invoking pause() when element is removed from the tree instead of unloading.
69431
69432         Tests: http/tests/media/remove-while-loading.html
69433                media/remove-from-document.html
69434
69435         * html/HTMLMediaElement.cpp:
69436         (WebCore::HTMLMediaElement::removedFromDocument):
69437
69438 2007-12-01  Geoffrey Garen  <ggaren@apple.com>
69439
69440         Reviewed by Beth Dakin.
69441
69442         Restored the test string in this test.
69443
69444         * manual-tests/window-open-features-parsing.html:
69445
69446 2007-11-30  Geoffrey Garen  <ggaren@apple.com>
69447
69448         Reviewed by Beth Dakin.
69449         
69450         Modified WebCore to follow the new JSGlobalObject/Interpreter ownership
69451         rules in JavaScriptCore.
69452
69453         * bindings/js/kjs_binding.cpp:
69454         * bindings/js/kjs_binding.h: Removed stale, unused 
69455         interpreterForGlobalObject().
69456
69457         * bindings/js/kjs_proxy.cpp: Changed to store a global object, rather
69458         than an interpreter.
69459         (WebCore::KJSProxy::finishedWithEvent): Need to NULL check 
69460         m_globalObject here because we no longer unnecessarily instantiate it.
69461
69462         * bindings/js/kjs_window.cpp:
69463         (KJS::ScheduledAction::execute):
69464         * bindings/js/kjs_window.h: Removed redundant and less efficient 
69465         interpreter() function -- global objects have direct access to their
69466         interpreters now.
69467
69468         Changed these functions to pass around JSGlobalObjects instead of 
69469         Interpreters:
69470
69471         * page/Frame.cpp:
69472         (WebCore::Frame::bindingRootObject):
69473         (WebCore::Frame::createRootObject):
69474         * page/Frame.h:
69475         * page/mac/WebCoreFrameBridge.mm:
69476         (createRootObject):
69477
69478 2007-12-01  Darin Adler  <darin@apple.com>
69479
69480         Reviewed by Mitz.
69481
69482         - fix problem tracked by these bugs:
69483           http://bugs.webkit.org/show_bug.cgi?id=16097
69484           <rdar://problem/5619305> Safari crashes during load of LexisNexis search results
69485           <rdar://problem/5510779> CrashTracer: [USER] 25 crashes in Safari at
69486           WebCore::DocumentLoader::isLoadingMultipartContent const
69487
69488         * loader/ImageDocument.cpp:
69489         (WebCore::ImageDocument::createDocumentStructure): Create an ImageDocumentElement
69490         instead of an HTMLImageElement.
69491         (WebCore::ImageDocument::scale): Added a null check for m_imageElement.
69492         (WebCore::ImageDocument::resizeImageToFit): Ditto.
69493         (WebCore::ImageDocument::restoreImageSize): Ditto.
69494         (WebCore::ImageDocument::imageFitsInWindow): Ditto.
69495         (WebCore::ImageDocument::windowSizeChanged): Ditto.
69496         (WebCore::ImageDocumentElement::~ImageDocumentElement): Call
69497         disconnectImageElement so m_imageElement will be set to 0
69498          if we're still connected to the document.
69499         (WebCore::ImageDocumentElement::willMoveToNewOwnerDocument): Ditto.
69500
69501         * loader/ImageDocument.h: Changed image element type to be
69502         ImageDocumentElement instead of HTMLImageElement. Also added
69503         a disconnectImageElement function that sets m_imageElement to 0.
69504
69505 2007-12-01  Darin Adler  <darin@apple.com>
69506
69507         - remove the empty directories
69508
69509         * ksvg2: Removed.
69510         * ksvg2/css: Removed.
69511         * ksvg2/events: Removed.
69512         * ksvg2/misc: Removed.
69513         * ksvg2/scripts: Removed.
69514
69515 2007-12-01  Julien Chaffraix  <julien.chaffraix@gmail.com>
69516
69517         Bug 16189: XMLHttpRequest::setRequestHeader() should not set certain headers
69518
69519         Reviewed by Darin Adler.
69520
69521         * xml/XMLHttpRequest.cpp:
69522         (WebCore::canSetRequestHeader):
69523
69524         Test: http/tests/xmlhttprequest/set-dangerous-headers.html
69525
69526 2007-12-01  Rahul Abrol  <ra5ul@comcast.net>
69527
69528         Reviewed by Adam Roben.
69529
69530         http://bugs.webkit.org/show_bug.cgi?id=16128
69531         Ignore resizable=no for window.open().
69532
69533         * bindings/js/kjs_window.cpp:
69534         (KJS::setWindowFeature):
69535         (KJS::parseWindowFeatures):
69536         * manual-tests/window-open-features-parsing.html:
69537
69538 2007-12-01  Dan Bernstein  <mitz@apple.com>
69539
69540         Reviewed by Darin Adler.
69541
69542         - fix <rdar://problem/5619240> REGRESSION (Leopard-r28069): Reproducible crash with a Mootools-based calendar picker (jump to null in FrameView::layout)
69543
69544         Test: fast/dynamic/subtree-common-root.html
69545
69546         * page/FrameView.cpp:
69547         (WebCore::FrameView::layoutRoot): Added a parameter to let this method
69548         return the layout root for a pending layout as well.
69549         (WebCore::FrameView::scheduleRelayoutOfSubtree): Pass the new root
69550         to markContainingBlocksForLayout(). Otherwise,
69551         markContainingBlocksForLayout() could mark past the new root, if it had
69552         previously been marked as having a normal child needing layout and then
69553         was reached via a positioned child.
69554         * page/FrameView.h:
69555         * rendering/RenderBox.cpp:
69556         (WebCore::RenderBox::calcWidth):
69557         * rendering/RenderObject.cpp:
69558         (WebCore::RenderObject::~RenderObject): Fixed the ASSERT so that
69559         it would really catch deletion of the layout root.
69560         (WebCore::RenderObject::markContainingBlocksForLayout): Added the
69561         newRoot parameter, which tells this method where to stop marking.
69562         * rendering/RenderObject.h:
69563
69564 2007-12-01  Dan Bernstein  <mitz@apple.com>
69565
69566         Reviewed by Darin Adler.
69567
69568         - fold FontStyle into TextRun
69569
69570         * WebCore.xcodeproj/project.pbxproj:
69571         * platform/graphics/Font.cpp:
69572         (WebCore::WidthIterator::WidthIterator):
69573         (WebCore::WidthIterator::advance):
69574         (WebCore::Font::width):
69575         (WebCore::Font::drawSimpleText):
69576         (WebCore::Font::drawGlyphBuffer):
69577         (WebCore::Font::drawText):
69578         (WebCore::Font::floatWidth):
69579         (WebCore::Font::floatWidthForSimpleText):
69580         (WebCore::Font::selectionRectForText):
69581         (WebCore::Font::selectionRectForSimpleText):
69582         (WebCore::Font::offsetForPosition):
69583         (WebCore::Font::offsetForPositionForSimpleText):
69584         * platform/graphics/Font.h:
69585         (WebCore::TextRun::TextRun):
69586         (WebCore::TextRun::setText):
69587         (WebCore::TextRun::allowTabs):
69588         (WebCore::TextRun::xPos):
69589         (WebCore::TextRun::padding):
69590         (WebCore::TextRun::rtl):
69591         (WebCore::TextRun::ltr):
69592         (WebCore::TextRun::directionalOverride):
69593         (WebCore::TextRun::applyRunRounding):
69594         (WebCore::TextRun::applyWordRounding):
69595         (WebCore::TextRun::spacingDisabled):
69596         (WebCore::TextRun::disableSpacing):
69597         (WebCore::TextRun::disableRoundingHacks):
69598         (WebCore::TextRun::setRTL):
69599         (WebCore::TextRun::setDirectionalOverride):
69600         * platform/graphics/FontStyle.h: Removed.
69601         * platform/graphics/GraphicsContext.cpp:
69602         (WebCore::GraphicsContext::drawText):
69603         (WebCore::GraphicsContext::drawBidiText):
69604         (WebCore::GraphicsContext::drawHighlightForText):
69605         * platform/graphics/GraphicsContext.h:
69606         * platform/graphics/StringTruncator.cpp:
69607         (WebCore::stringWidth):
69608         * platform/graphics/gtk/FontGtk.cpp:
69609         (WebCore::Font::drawComplexText):
69610         (WebCore::Font::floatWidthForComplexText):
69611         (WebCore::Font::offsetForPositionForComplexText):
69612         (WebCore::Font::selectionRectForComplexText):
69613         * platform/graphics/mac/FontMac.mm:
69614         (WebCore::ATSULayoutParameters::ATSULayoutParameters):
69615         (WebCore::addDirectionalOverride):
69616         (WebCore::overrideLayoutOperation):
69617         (WebCore::ATSULayoutParameters::initialize):
69618         (WebCore::Font::selectionRectForComplexText):
69619         (WebCore::Font::drawComplexText):
69620         (WebCore::Font::floatWidthForComplexText):
69621         (WebCore::Font::offsetForPositionForComplexText):
69622         * platform/graphics/qt/FontQt.cpp:
69623         (WebCore::generateComponents):
69624         (WebCore::Font::drawText):
69625         (WebCore::Font::width):
69626         (WebCore::Font::offsetForPosition):
69627         (WebCore::cursorToX):
69628         (WebCore::Font::selectionRectForText):
69629         * platform/graphics/win/FontWin.cpp:
69630         (WebCore::Font::selectionRectForComplexText):
69631         (WebCore::Font::drawComplexText):
69632         (WebCore::Font::floatWidthForComplexText):
69633         (WebCore::Font::offsetForPositionForComplexText):
69634         * platform/graphics/wx/FontWx.cpp:
69635         (WebCore::Font::selectionRectForComplexText):
69636         (WebCore::Font::drawComplexText):
69637         (WebCore::Font::floatWidthForComplexText):
69638         (WebCore::Font::offsetForPositionForComplexText):
69639         * platform/mac/WebCoreTextRenderer.mm:
69640         (WebCoreDrawTextAtPoint):
69641         (WebCoreTextFloatWidth):
69642         * platform/win/PopupMenuWin.cpp:
69643         (WebCore::PopupMenu::paint):
69644         * platform/win/UniscribeController.cpp:
69645         (WebCore::UniscribeController::UniscribeController):
69646         (WebCore::UniscribeController::offsetForPosition):
69647         (WebCore::UniscribeController::advance):
69648         (WebCore::UniscribeController::itemizeShapeAndPlace):
69649         (WebCore::UniscribeController::resetControlAndState):
69650         (WebCore::UniscribeController::shapeAndPlaceItem):
69651         * platform/win/UniscribeController.h:
69652         * platform/win/WebCoreTextRenderer.cpp:
69653         (WebCore::doDrawTextAtPoint):
69654         * rendering/EllipsisBox.cpp:
69655         (WebCore::EllipsisBox::paint):
69656         * rendering/InlineTextBox.cpp:
69657         (WebCore::InlineTextBox::selectionRect):
69658         (WebCore::InlineTextBox::paint):
69659         (WebCore::InlineTextBox::paintSelection):
69660         (WebCore::InlineTextBox::paintCompositionBackground):
69661         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
69662         (WebCore::InlineTextBox::paintTextMatchMarker):
69663         (WebCore::InlineTextBox::offsetForPosition):
69664         (WebCore::InlineTextBox::positionForOffset):
69665         * rendering/RenderFileUploadControl.cpp:
69666         (WebCore::RenderFileUploadControl::paintObject):
69667         (WebCore::RenderFileUploadControl::calcPrefWidths):
69668         * rendering/RenderImage.cpp:
69669         * rendering/RenderListBox.cpp:
69670         (WebCore::RenderListBox::updateFromElement):
69671         (WebCore::RenderListBox::paintItemForeground):
69672         * rendering/RenderMenuList.cpp:
69673         (WebCore::RenderMenuList::updateOptionsWidth):
69674         * rendering/RenderText.cpp:
69675         (WebCore::RenderText::widthFromCache):
69676         (WebCore::RenderText::calcPrefWidths):
69677         (WebCore::RenderText::width):
69678         * rendering/RenderText.h:
69679         (WebCore::RenderText::allowTabs):
69680         * rendering/RenderTextControl.cpp:
69681         (WebCore::RenderTextControl::calcPrefWidths):
69682         * rendering/SVGInlineTextBox.cpp:
69683         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
69684         (WebCore::SVGInlineTextBox::paintCharacters):
69685         (WebCore::SVGInlineTextBox::paintSelection):
69686         * rendering/SVGRootInlineBox.cpp:
69687         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
69688         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
69689         (WebCore::svgTextRunForInlineTextBox):
69690         * rendering/SVGRootInlineBox.h:
69691
69692 2007-12-01  Adam Treat  <treat@kde.org>
69693
69694         Reviewed by Simon.
69695
69696         * Don't hide symbols when in Debug mode
69697         * On Linux (glibc) provide a backtrace in the test output for debugging purposes
69698
69699         * WebCore.pro:
69700
69701 2007-11-30  Alp Toker  <alp@atoker.com>
69702
69703         Reviewed by Adam Roben.
69704
69705         http://bugs.webkit.org/show_bug.cgi?id=15691
69706         [GTK] Public API does not follow GTK+ conventions
69707
69708         Refactor the WebKit/GTK+ public API. Changes:
69709           WebKitPage -> WebKitWebView
69710           WebKitFrame -> WebKitWebFrame
69711
69712         Public API source and header names have been updated to mirror the API
69713         changes.
69714
69715         The API is now kept in WebKit/gtk/WebView to match other ports in the
69716         same class such as Mac and Win.
69717
69718         * WebCore.pro:
69719
69720 2007-11-30   Anders Carlsson  <andersca@apple.com>
69721
69722         Add platform/text project group.
69723         
69724         * WebCore.vcproj/WebCore.vcproj:
69725
69726 2007-11-30   Anders Carlsson  <andersca@apple.com>
69727
69728         Remove extra </Filter> tag which prevented the vcproj from being parsed correctly.
69729         
69730         * WebCore.vcproj/WebCore.vcproj:
69731
69732 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
69733
69734         Not reviewed. Try to fix qt/gtk build.
69735
69736         * WebCore.pro:
69737
69738 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
69739
69740         Rubber stamped by Eric.
69741
69742         Final integration of ksvg2 in WebKit. Moving ksvg2/ to svg/ and killing all it's subdirectories,
69743         by moving the files into approriate locations (css, rendering, ...) - as dicsussed on the
69744         mailing list and on IRC with David/Darin & Eric.
69745
69746         Updated all build files - though I can't guarantee it builds on non-mac. Need buildbot to verify.
69747
69748         * DerivedSources.make:
69749         * WebCore.pro:
69750         * WebCore.vcproj/WebCore.vcproj:
69751         * WebCore.xcodeproj/project.pbxproj:
69752         * bindings/js/JSSVGLazyEventListener.cpp: Copied from ksvg2/events/JSSVGLazyEventListener.cpp.
69753         * bindings/js/JSSVGLazyEventListener.h: Copied from ksvg2/events/JSSVGLazyEventListener.h.
69754         * css/SVGCSSComputedStyleDeclaration.cpp: Copied from ksvg2/css/SVGCSSComputedStyleDeclaration.cpp.
69755         * css/SVGCSSParser.cpp: Copied from ksvg2/css/SVGCSSParser.cpp.
69756         * css/SVGCSSPropertyNames.in: Copied from ksvg2/css/SVGCSSPropertyNames.in.
69757         * css/SVGCSSStyleSelector.cpp: Copied from ksvg2/css/SVGCSSStyleSelector.cpp.
69758         * css/SVGCSSValueKeywords.in: Copied from ksvg2/css/SVGCSSValueKeywords.in.
69759         * dom/make_names.pl: Copied from ksvg2/scripts/make_names.pl.
69760         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Removed.
69761         * ksvg2/css/SVGCSSParser.cpp: Removed.
69762         * ksvg2/css/SVGCSSPropertyNames.in: Removed.
69763         * ksvg2/css/SVGCSSStyleSelector.cpp: Removed.
69764         * ksvg2/css/SVGCSSValueKeywords.in: Removed.
69765         * ksvg2/css/SVGRenderStyle.cpp: Removed.
69766         * ksvg2/css/SVGRenderStyle.h: Removed.
69767         * ksvg2/css/SVGRenderStyleDefs.cpp: Removed.
69768         * ksvg2/css/SVGRenderStyleDefs.h: Removed.
69769         * ksvg2/events/JSSVGLazyEventListener.cpp: Removed.
69770         * ksvg2/events/JSSVGLazyEventListener.h: Removed.
69771         * ksvg2/events/SVGZoomEvent.cpp: Removed.
69772         * ksvg2/events/SVGZoomEvent.h: Removed.
69773         * ksvg2/events/SVGZoomEvent.idl: Removed.
69774         * ksvg2/misc/PointerEventsHitRules.cpp: Removed.
69775         * ksvg2/misc/PointerEventsHitRules.h: Removed.
69776         * ksvg2/misc/SVGDocumentExtensions.cpp: Removed.
69777         * ksvg2/misc/SVGDocumentExtensions.h: Removed.
69778         * ksvg2/misc/SVGImageLoader.cpp: Removed.
69779         * ksvg2/misc/SVGImageLoader.h: Removed.
69780         * ksvg2/misc/SVGTimer.cpp: Removed.
69781         * ksvg2/misc/SVGTimer.h: Removed.
69782         * ksvg2/misc/TimeScheduler.cpp: Removed.
69783         * ksvg2/misc/TimeScheduler.h: Removed.
69784         * ksvg2/misc/xlinkattrs.in: Removed.
69785         * ksvg2/scripts/make_names.pl: Removed.
69786         * ksvg2/svg: Removed.
69787         * ksvg2/svg/ColorDistance.cpp: Removed.
69788         * ksvg2/svg/ColorDistance.h: Removed.
69789         * ksvg2/svg/GradientAttributes.h: Removed.
69790         * ksvg2/svg/LinearGradientAttributes.h: Removed.
69791         * ksvg2/svg/PatternAttributes.h: Removed.
69792         * ksvg2/svg/RadialGradientAttributes.h: Removed.
69793         * ksvg2/svg/SVGAElement.cpp: Removed.
69794         * ksvg2/svg/SVGAElement.h: Removed.
69795         * ksvg2/svg/SVGAElement.idl: Removed.
69796         * ksvg2/svg/SVGAngle.cpp: Removed.
69797         * ksvg2/svg/SVGAngle.h: Removed.
69798         * ksvg2/svg/SVGAngle.idl: Removed.
69799         * ksvg2/svg/SVGAnimateColorElement.cpp: Removed.
69800         * ksvg2/svg/SVGAnimateColorElement.h: Removed.
69801         * ksvg2/svg/SVGAnimateColorElement.idl: Removed.
69802         * ksvg2/svg/SVGAnimateElement.cpp: Removed.
69803         * ksvg2/svg/SVGAnimateElement.h: Removed.
69804         * ksvg2/svg/SVGAnimateElement.idl: Removed.
69805         * ksvg2/svg/SVGAnimateMotionElement.cpp: Removed.
69806         * ksvg2/svg/SVGAnimateMotionElement.h: Removed.
69807         * ksvg2/svg/SVGAnimateTransformElement.cpp: Removed.
69808         * ksvg2/svg/SVGAnimateTransformElement.h: Removed.
69809         * ksvg2/svg/SVGAnimateTransformElement.idl: Removed.
69810         * ksvg2/svg/SVGAnimatedAngle.idl: Removed.
69811         * ksvg2/svg/SVGAnimatedBoolean.idl: Removed.
69812         * ksvg2/svg/SVGAnimatedEnumeration.idl: Removed.
69813         * ksvg2/svg/SVGAnimatedInteger.idl: Removed.
69814         * ksvg2/svg/SVGAnimatedLength.idl: Removed.
69815         * ksvg2/svg/SVGAnimatedLengthList.idl: Removed.
69816         * ksvg2/svg/SVGAnimatedNumber.idl: Removed.
69817         * ksvg2/svg/SVGAnimatedNumberList.idl: Removed.
69818         * ksvg2/svg/SVGAnimatedPathData.cpp: Removed.
69819         * ksvg2/svg/SVGAnimatedPathData.h: Removed.
69820         * ksvg2/svg/SVGAnimatedPathData.idl: Removed.
69821         * ksvg2/svg/SVGAnimatedPoints.cpp: Removed.
69822         * ksvg2/svg/SVGAnimatedPoints.h: Removed.
69823         * ksvg2/svg/SVGAnimatedPoints.idl: Removed.
69824         * ksvg2/svg/SVGAnimatedPreserveAspectRatio.idl: Removed.
69825         * ksvg2/svg/SVGAnimatedRect.idl: Removed.
69826         * ksvg2/svg/SVGAnimatedString.idl: Removed.
69827         * ksvg2/svg/SVGAnimatedTemplate.h: Removed.
69828         * ksvg2/svg/SVGAnimatedTransformList.idl: Removed.
69829         * ksvg2/svg/SVGAnimationElement.cpp: Removed.
69830         * ksvg2/svg/SVGAnimationElement.h: Removed.
69831         * ksvg2/svg/SVGAnimationElement.idl: Removed.
69832         * ksvg2/svg/SVGCircleElement.cpp: Removed.
69833         * ksvg2/svg/SVGCircleElement.h: Removed.
69834         * ksvg2/svg/SVGCircleElement.idl: Removed.
69835         * ksvg2/svg/SVGClipPathElement.cpp: Removed.
69836         * ksvg2/svg/SVGClipPathElement.h: Removed.
69837         * ksvg2/svg/SVGClipPathElement.idl: Removed.
69838         * ksvg2/svg/SVGColor.cpp: Removed.
69839         * ksvg2/svg/SVGColor.h: Removed.
69840         * ksvg2/svg/SVGColor.idl: Removed.
69841         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp: Removed.
69842         * ksvg2/svg/SVGComponentTransferFunctionElement.h: Removed.
69843         * ksvg2/svg/SVGComponentTransferFunctionElement.idl: Removed.
69844         * ksvg2/svg/SVGCursorElement.cpp: Removed.
69845         * ksvg2/svg/SVGCursorElement.h: Removed.
69846         * ksvg2/svg/SVGCursorElement.idl: Removed.
69847         * ksvg2/svg/SVGDefinitionSrcElement.cpp: Removed.
69848         * ksvg2/svg/SVGDefinitionSrcElement.h: Removed.
69849         * ksvg2/svg/SVGDefinitionSrcElement.idl: Removed.
69850         * ksvg2/svg/SVGDefsElement.cpp: Removed.
69851         * ksvg2/svg/SVGDefsElement.h: Removed.
69852         * ksvg2/svg/SVGDefsElement.idl: Removed.
69853         * ksvg2/svg/SVGDescElement.cpp: Removed.
69854         * ksvg2/svg/SVGDescElement.h: Removed.
69855         * ksvg2/svg/SVGDescElement.idl: Removed.
69856         * ksvg2/svg/SVGDocument.cpp: Removed.
69857         * ksvg2/svg/SVGDocument.h: Removed.
69858         * ksvg2/svg/SVGDocument.idl: Removed.
69859         * ksvg2/svg/SVGElement.cpp: Removed.
69860         * ksvg2/svg/SVGElement.h: Removed.
69861         * ksvg2/svg/SVGElement.idl: Removed.
69862         * ksvg2/svg/SVGElementInstance.cpp: Removed.
69863         * ksvg2/svg/SVGElementInstance.h: Removed.
69864         * ksvg2/svg/SVGElementInstance.idl: Removed.
69865         * ksvg2/svg/SVGElementInstanceList.cpp: Removed.
69866         * ksvg2/svg/SVGElementInstanceList.h: Removed.
69867         * ksvg2/svg/SVGElementInstanceList.idl: Removed.
69868         * ksvg2/svg/SVGEllipseElement.cpp: Removed.
69869         * ksvg2/svg/SVGEllipseElement.h: Removed.
69870         * ksvg2/svg/SVGEllipseElement.idl: Removed.
69871         * ksvg2/svg/SVGException.h: Removed.
69872         * ksvg2/svg/SVGException.idl: Removed.
69873         * ksvg2/svg/SVGExternalResourcesRequired.cpp: Removed.
69874         * ksvg2/svg/SVGExternalResourcesRequired.h: Removed.
69875         * ksvg2/svg/SVGExternalResourcesRequired.idl: Removed.
69876         * ksvg2/svg/SVGFEBlendElement.cpp: Removed.
69877         * ksvg2/svg/SVGFEBlendElement.h: Removed.
69878         * ksvg2/svg/SVGFEBlendElement.idl: Removed.
69879         * ksvg2/svg/SVGFEColorMatrixElement.cpp: Removed.
69880         * ksvg2/svg/SVGFEColorMatrixElement.h: Removed.
69881         * ksvg2/svg/SVGFEColorMatrixElement.idl: Removed.
69882         * ksvg2/svg/SVGFEComponentTransferElement.cpp: Removed.
69883         * ksvg2/svg/SVGFEComponentTransferElement.h: Removed.
69884         * ksvg2/svg/SVGFEComponentTransferElement.idl: Removed.
69885         * ksvg2/svg/SVGFECompositeElement.cpp: Removed.
69886         * ksvg2/svg/SVGFECompositeElement.h: Removed.
69887         * ksvg2/svg/SVGFECompositeElement.idl: Removed.
69888         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp: Removed.
69889         * ksvg2/svg/SVGFEDiffuseLightingElement.h: Removed.
69890         * ksvg2/svg/SVGFEDiffuseLightingElement.idl: Removed.
69891         * ksvg2/svg/SVGFEDisplacementMapElement.cpp: Removed.
69892         * ksvg2/svg/SVGFEDisplacementMapElement.h: Removed.
69893         * ksvg2/svg/SVGFEDisplacementMapElement.idl: Removed.
69894         * ksvg2/svg/SVGFEDistantLightElement.cpp: Removed.
69895         * ksvg2/svg/SVGFEDistantLightElement.h: Removed.
69896         * ksvg2/svg/SVGFEDistantLightElement.idl: Removed.
69897         * ksvg2/svg/SVGFEFloodElement.cpp: Removed.
69898         * ksvg2/svg/SVGFEFloodElement.h: Removed.
69899         * ksvg2/svg/SVGFEFloodElement.idl: Removed.
69900         * ksvg2/svg/SVGFEFuncAElement.cpp: Removed.
69901         * ksvg2/svg/SVGFEFuncAElement.h: Removed.
69902         * ksvg2/svg/SVGFEFuncAElement.idl: Removed.
69903         * ksvg2/svg/SVGFEFuncBElement.cpp: Removed.
69904         * ksvg2/svg/SVGFEFuncBElement.h: Removed.
69905         * ksvg2/svg/SVGFEFuncBElement.idl: Removed.
69906         * ksvg2/svg/SVGFEFuncGElement.cpp: Removed.
69907         * ksvg2/svg/SVGFEFuncGElement.h: Removed.
69908         * ksvg2/svg/SVGFEFuncGElement.idl: Removed.
69909         * ksvg2/svg/SVGFEFuncRElement.cpp: Removed.
69910         * ksvg2/svg/SVGFEFuncRElement.h: Removed.
69911         * ksvg2/svg/SVGFEFuncRElement.idl: Removed.
69912         * ksvg2/svg/SVGFEGaussianBlurElement.cpp: Removed.
69913         * ksvg2/svg/SVGFEGaussianBlurElement.h: Removed.
69914         * ksvg2/svg/SVGFEGaussianBlurElement.idl: Removed.
69915         * ksvg2/svg/SVGFEImageElement.cpp: Removed.
69916         * ksvg2/svg/SVGFEImageElement.h: Removed.
69917         * ksvg2/svg/SVGFEImageElement.idl: Removed.
69918         * ksvg2/svg/SVGFELightElement.cpp: Removed.
69919         * ksvg2/svg/SVGFELightElement.h: Removed.
69920         * ksvg2/svg/SVGFEMergeElement.cpp: Removed.
69921         * ksvg2/svg/SVGFEMergeElement.h: Removed.
69922         * ksvg2/svg/SVGFEMergeElement.idl: Removed.
69923         * ksvg2/svg/SVGFEMergeNodeElement.cpp: Removed.
69924         * ksvg2/svg/SVGFEMergeNodeElement.h: Removed.
69925         * ksvg2/svg/SVGFEMergeNodeElement.idl: Removed.
69926         * ksvg2/svg/SVGFEOffsetElement.cpp: Removed.
69927         * ksvg2/svg/SVGFEOffsetElement.h: Removed.
69928         * ksvg2/svg/SVGFEOffsetElement.idl: Removed.
69929         * ksvg2/svg/SVGFEPointLightElement.cpp: Removed.
69930         * ksvg2/svg/SVGFEPointLightElement.h: Removed.
69931         * ksvg2/svg/SVGFEPointLightElement.idl: Removed.
69932         * ksvg2/svg/SVGFESpecularLightingElement.cpp: Removed.
69933         * ksvg2/svg/SVGFESpecularLightingElement.h: Removed.
69934         * ksvg2/svg/SVGFESpecularLightingElement.idl: Removed.
69935         * ksvg2/svg/SVGFESpotLightElement.cpp: Removed.
69936         * ksvg2/svg/SVGFESpotLightElement.h: Removed.
69937         * ksvg2/svg/SVGFESpotLightElement.idl: Removed.
69938         * ksvg2/svg/SVGFETileElement.cpp: Removed.
69939         * ksvg2/svg/SVGFETileElement.h: Removed.
69940         * ksvg2/svg/SVGFETileElement.idl: Removed.
69941         * ksvg2/svg/SVGFETurbulenceElement.cpp: Removed.
69942         * ksvg2/svg/SVGFETurbulenceElement.h: Removed.
69943         * ksvg2/svg/SVGFETurbulenceElement.idl: Removed.
69944         * ksvg2/svg/SVGFilterElement.cpp: Removed.
69945         * ksvg2/svg/SVGFilterElement.h: Removed.
69946         * ksvg2/svg/SVGFilterElement.idl: Removed.
69947         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp: Removed.
69948         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h: Removed.
69949         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.idl: Removed.
69950         * ksvg2/svg/SVGFitToViewBox.cpp: Removed.
69951         * ksvg2/svg/SVGFitToViewBox.h: Removed.
69952         * ksvg2/svg/SVGFitToViewBox.idl: Removed.
69953         * ksvg2/svg/SVGFontFaceElement.cpp: Removed.
69954         * ksvg2/svg/SVGFontFaceElement.h: Removed.
69955         * ksvg2/svg/SVGFontFaceElement.idl: Removed.
69956         * ksvg2/svg/SVGFontFaceFormatElement.cpp: Removed.
69957         * ksvg2/svg/SVGFontFaceFormatElement.h: Removed.
69958         * ksvg2/svg/SVGFontFaceFormatElement.idl: Removed.
69959         * ksvg2/svg/SVGFontFaceNameElement.cpp: Removed.
69960         * ksvg2/svg/SVGFontFaceNameElement.h: Removed.
69961         * ksvg2/svg/SVGFontFaceNameElement.idl: Removed.
69962         * ksvg2/svg/SVGFontFaceSrcElement.cpp: Removed.
69963         * ksvg2/svg/SVGFontFaceSrcElement.h: Removed.
69964         * ksvg2/svg/SVGFontFaceSrcElement.idl: Removed.
69965         * ksvg2/svg/SVGFontFaceUriElement.cpp: Removed.
69966         * ksvg2/svg/SVGFontFaceUriElement.h: Removed.
69967         * ksvg2/svg/SVGFontFaceUriElement.idl: Removed.
69968         * ksvg2/svg/SVGForeignObjectElement.cpp: Removed.
69969         * ksvg2/svg/SVGForeignObjectElement.h: Removed.
69970         * ksvg2/svg/SVGForeignObjectElement.idl: Removed.
69971         * ksvg2/svg/SVGGElement.cpp: Removed.
69972         * ksvg2/svg/SVGGElement.h: Removed.
69973         * ksvg2/svg/SVGGElement.idl: Removed.
69974         * ksvg2/svg/SVGGradientElement.cpp: Removed.
69975         * ksvg2/svg/SVGGradientElement.h: Removed.
69976         * ksvg2/svg/SVGGradientElement.idl: Removed.
69977         * ksvg2/svg/SVGImageElement.cpp: Removed.
69978         * ksvg2/svg/SVGImageElement.h: Removed.
69979         * ksvg2/svg/SVGImageElement.idl: Removed.
69980         * ksvg2/svg/SVGLangSpace.cpp: Removed.
69981         * ksvg2/svg/SVGLangSpace.h: Removed.
69982         * ksvg2/svg/SVGLangSpace.idl: Removed.
69983         * ksvg2/svg/SVGLength.cpp: Removed.
69984         * ksvg2/svg/SVGLength.h: Removed.
69985         * ksvg2/svg/SVGLength.idl: Removed.
69986         * ksvg2/svg/SVGLengthList.cpp: Removed.
69987         * ksvg2/svg/SVGLengthList.h: Removed.
69988         * ksvg2/svg/SVGLengthList.idl: Removed.
69989         * ksvg2/svg/SVGLineElement.cpp: Removed.
69990         * ksvg2/svg/SVGLineElement.h: Removed.
69991         * ksvg2/svg/SVGLineElement.idl: Removed.
69992         * ksvg2/svg/SVGLinearGradientElement.cpp: Removed.
69993         * ksvg2/svg/SVGLinearGradientElement.h: Removed.
69994         * ksvg2/svg/SVGLinearGradientElement.idl: Removed.
69995         * ksvg2/svg/SVGList.h: Removed.
69996         * ksvg2/svg/SVGListTraits.h: Removed.
69997         * ksvg2/svg/SVGLocatable.cpp: Removed.
69998         * ksvg2/svg/SVGLocatable.h: Removed.
69999         * ksvg2/svg/SVGLocatable.idl: Removed.
70000         * ksvg2/svg/SVGMPathElement.cpp: Removed.
70001         * ksvg2/svg/SVGMPathElement.h: Removed.
70002         * ksvg2/svg/SVGMarkerElement.cpp: Removed.
70003         * ksvg2/svg/SVGMarkerElement.h: Removed.
70004         * ksvg2/svg/SVGMarkerElement.idl: Removed.
70005         * ksvg2/svg/SVGMaskElement.cpp: Removed.
70006         * ksvg2/svg/SVGMaskElement.h: Removed.
70007         * ksvg2/svg/SVGMaskElement.idl: Removed.
70008         * ksvg2/svg/SVGMatrix.idl: Removed.
70009         * ksvg2/svg/SVGMetadataElement.cpp: Removed.
70010         * ksvg2/svg/SVGMetadataElement.h: Removed.
70011         * ksvg2/svg/SVGMetadataElement.idl: Removed.
70012         * ksvg2/svg/SVGNumber.idl: Removed.
70013         * ksvg2/svg/SVGNumberList.cpp: Removed.
70014         * ksvg2/svg/SVGNumberList.h: Removed.
70015         * ksvg2/svg/SVGNumberList.idl: Removed.
70016         * ksvg2/svg/SVGPaint.cpp: Removed.
70017         * ksvg2/svg/SVGPaint.h: Removed.
70018         * ksvg2/svg/SVGPaint.idl: Removed.
70019         * ksvg2/svg/SVGParserUtilities.cpp: Removed.
70020         * ksvg2/svg/SVGParserUtilities.h: Removed.
70021         * ksvg2/svg/SVGPathElement.cpp: Removed.
70022         * ksvg2/svg/SVGPathElement.h: Removed.
70023         * ksvg2/svg/SVGPathElement.idl: Removed.
70024         * ksvg2/svg/SVGPathSeg.h: Removed.
70025         * ksvg2/svg/SVGPathSeg.idl: Removed.
70026         * ksvg2/svg/SVGPathSegArc.cpp: Removed.
70027         * ksvg2/svg/SVGPathSegArc.h: Removed.
70028         * ksvg2/svg/SVGPathSegArcAbs.idl: Removed.
70029         * ksvg2/svg/SVGPathSegArcRel.idl: Removed.
70030         * ksvg2/svg/SVGPathSegClosePath.cpp: Removed.
70031         * ksvg2/svg/SVGPathSegClosePath.h: Removed.
70032         * ksvg2/svg/SVGPathSegClosePath.idl: Removed.
70033         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp: Removed.
70034         * ksvg2/svg/SVGPathSegCurvetoCubic.h: Removed.
70035         * ksvg2/svg/SVGPathSegCurvetoCubicAbs.idl: Removed.
70036         * ksvg2/svg/SVGPathSegCurvetoCubicRel.idl: Removed.
70037         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp: Removed.
70038         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h: Removed.
70039         * ksvg2/svg/SVGPathSegCurvetoCubicSmoothAbs.idl: Removed.
70040         * ksvg2/svg/SVGPathSegCurvetoCubicSmoothRel.idl: Removed.
70041         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp: Removed.
70042         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h: Removed.
70043         * ksvg2/svg/SVGPathSegCurvetoQuadraticAbs.idl: Removed.
70044         * ksvg2/svg/SVGPathSegCurvetoQuadraticRel.idl: Removed.
70045         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Removed.
70046         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h: Removed.
70047         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl: Removed.
70048         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl: Removed.
70049         * ksvg2/svg/SVGPathSegLineto.cpp: Removed.
70050         * ksvg2/svg/SVGPathSegLineto.h: Removed.
70051         * ksvg2/svg/SVGPathSegLinetoAbs.idl: Removed.
70052         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp: Removed.
70053         * ksvg2/svg/SVGPathSegLinetoHorizontal.h: Removed.
70054         * ksvg2/svg/SVGPathSegLinetoHorizontalAbs.idl: Removed.
70055         * ksvg2/svg/SVGPathSegLinetoHorizontalRel.idl: Removed.
70056         * ksvg2/svg/SVGPathSegLinetoRel.idl: Removed.
70057         * ksvg2/svg/SVGPathSegLinetoVertical.cpp: Removed.
70058         * ksvg2/svg/SVGPathSegLinetoVertical.h: Removed.
70059         * ksvg2/svg/SVGPathSegLinetoVerticalAbs.idl: Removed.
70060         * ksvg2/svg/SVGPathSegLinetoVerticalRel.idl: Removed.
70061         * ksvg2/svg/SVGPathSegList.cpp: Removed.
70062         * ksvg2/svg/SVGPathSegList.h: Removed.
70063         * ksvg2/svg/SVGPathSegList.idl: Removed.
70064         * ksvg2/svg/SVGPathSegMoveto.cpp: Removed.
70065         * ksvg2/svg/SVGPathSegMoveto.h: Removed.
70066         * ksvg2/svg/SVGPathSegMovetoAbs.idl: Removed.
70067         * ksvg2/svg/SVGPathSegMovetoRel.idl: Removed.
70068         * ksvg2/svg/SVGPatternElement.cpp: Removed.
70069         * ksvg2/svg/SVGPatternElement.h: Removed.
70070         * ksvg2/svg/SVGPatternElement.idl: Removed.
70071         * ksvg2/svg/SVGPoint.idl: Removed.
70072         * ksvg2/svg/SVGPointList.cpp: Removed.
70073         * ksvg2/svg/SVGPointList.h: Removed.
70074         * ksvg2/svg/SVGPointList.idl: Removed.
70075         * ksvg2/svg/SVGPolyElement.cpp: Removed.
70076         * ksvg2/svg/SVGPolyElement.h: Removed.
70077         * ksvg2/svg/SVGPolygonElement.cpp: Removed.
70078         * ksvg2/svg/SVGPolygonElement.h: Removed.
70079         * ksvg2/svg/SVGPolygonElement.idl: Removed.
70080         * ksvg2/svg/SVGPolylineElement.cpp: Removed.
70081         * ksvg2/svg/SVGPolylineElement.h: Removed.
70082         * ksvg2/svg/SVGPolylineElement.idl: Removed.
70083         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Removed.
70084         * ksvg2/svg/SVGPreserveAspectRatio.h: Removed.
70085         * ksvg2/svg/SVGPreserveAspectRatio.idl: Removed.
70086         * ksvg2/svg/SVGRadialGradientElement.cpp: Removed.
70087         * ksvg2/svg/SVGRadialGradientElement.h: Removed.
70088         * ksvg2/svg/SVGRadialGradientElement.idl: Removed.
70089         * ksvg2/svg/SVGRect.idl: Removed.
70090         * ksvg2/svg/SVGRectElement.cpp: Removed.
70091         * ksvg2/svg/SVGRectElement.h: Removed.
70092         * ksvg2/svg/SVGRectElement.idl: Removed.
70093         * ksvg2/svg/SVGRenderingIntent.h: Removed.
70094         * ksvg2/svg/SVGRenderingIntent.idl: Removed.
70095         * ksvg2/svg/SVGSVGElement.cpp: Removed.
70096         * ksvg2/svg/SVGSVGElement.h: Removed.
70097         * ksvg2/svg/SVGSVGElement.idl: Removed.
70098         * ksvg2/svg/SVGScriptElement.cpp: Removed.
70099         * ksvg2/svg/SVGScriptElement.h: Removed.
70100         * ksvg2/svg/SVGScriptElement.idl: Removed.
70101         * ksvg2/svg/SVGSetElement.cpp: Removed.
70102         * ksvg2/svg/SVGSetElement.h: Removed.
70103         * ksvg2/svg/SVGSetElement.idl: Removed.
70104         * ksvg2/svg/SVGStopElement.cpp: Removed.
70105         * ksvg2/svg/SVGStopElement.h: Removed.
70106         * ksvg2/svg/SVGStopElement.idl: Removed.
70107         * ksvg2/svg/SVGStringList.cpp: Removed.
70108         * ksvg2/svg/SVGStringList.h: Removed.
70109         * ksvg2/svg/SVGStringList.idl: Removed.
70110         * ksvg2/svg/SVGStylable.cpp: Removed.
70111         * ksvg2/svg/SVGStylable.h: Removed.
70112         * ksvg2/svg/SVGStylable.idl: Removed.
70113         * ksvg2/svg/SVGStyleElement.cpp: Removed.
70114         * ksvg2/svg/SVGStyleElement.h: Removed.
70115         * ksvg2/svg/SVGStyleElement.idl: Removed.
70116         * ksvg2/svg/SVGStyledElement.cpp: Removed.
70117         * ksvg2/svg/SVGStyledElement.h: Removed.
70118         * ksvg2/svg/SVGStyledLocatableElement.cpp: Removed.
70119         * ksvg2/svg/SVGStyledLocatableElement.h: Removed.
70120         * ksvg2/svg/SVGStyledTransformableElement.cpp: Removed.
70121         * ksvg2/svg/SVGStyledTransformableElement.h: Removed.
70122         * ksvg2/svg/SVGSwitchElement.cpp: Removed.
70123         * ksvg2/svg/SVGSwitchElement.h: Removed.
70124         * ksvg2/svg/SVGSwitchElement.idl: Removed.
70125         * ksvg2/svg/SVGSymbolElement.cpp: Removed.
70126         * ksvg2/svg/SVGSymbolElement.h: Removed.
70127         * ksvg2/svg/SVGSymbolElement.idl: Removed.
70128         * ksvg2/svg/SVGTRefElement.cpp: Removed.
70129         * ksvg2/svg/SVGTRefElement.h: Removed.
70130         * ksvg2/svg/SVGTRefElement.idl: Removed.
70131         * ksvg2/svg/SVGTSpanElement.cpp: Removed.
70132         * ksvg2/svg/SVGTSpanElement.h: Removed.
70133         * ksvg2/svg/SVGTSpanElement.idl: Removed.
70134         * ksvg2/svg/SVGTests.cpp: Removed.
70135         * ksvg2/svg/SVGTests.h: Removed.
70136         * ksvg2/svg/SVGTests.idl: Removed.
70137         * ksvg2/svg/SVGTextContentElement.cpp: Removed.
70138         * ksvg2/svg/SVGTextContentElement.h: Removed.
70139         * ksvg2/svg/SVGTextContentElement.idl: Removed.
70140         * ksvg2/svg/SVGTextElement.cpp: Removed.
70141         * ksvg2/svg/SVGTextElement.h: Removed.
70142         * ksvg2/svg/SVGTextElement.idl: Removed.
70143         * ksvg2/svg/SVGTextPathElement.cpp: Removed.
70144         * ksvg2/svg/SVGTextPathElement.h: Removed.
70145         * ksvg2/svg/SVGTextPathElement.idl: Removed.
70146         * ksvg2/svg/SVGTextPositioningElement.cpp: Removed.
70147         * ksvg2/svg/SVGTextPositioningElement.h: Removed.
70148         * ksvg2/svg/SVGTextPositioningElement.idl: Removed.
70149         * ksvg2/svg/SVGTitleElement.cpp: Removed.
70150         * ksvg2/svg/SVGTitleElement.h: Removed.
70151         * ksvg2/svg/SVGTitleElement.idl: Removed.
70152         * ksvg2/svg/SVGTransform.cpp: Removed.
70153         * ksvg2/svg/SVGTransform.h: Removed.
70154         * ksvg2/svg/SVGTransform.idl: Removed.
70155         * ksvg2/svg/SVGTransformDistance.cpp: Removed.
70156         * ksvg2/svg/SVGTransformDistance.h: Removed.
70157         * ksvg2/svg/SVGTransformList.cpp: Removed.
70158         * ksvg2/svg/SVGTransformList.h: Removed.
70159         * ksvg2/svg/SVGTransformList.idl: Removed.
70160         * ksvg2/svg/SVGTransformable.cpp: Removed.
70161         * ksvg2/svg/SVGTransformable.h: Removed.
70162         * ksvg2/svg/SVGTransformable.idl: Removed.
70163         * ksvg2/svg/SVGURIReference.cpp: Removed.
70164         * ksvg2/svg/SVGURIReference.h: Removed.
70165         * ksvg2/svg/SVGURIReference.idl: Removed.
70166         * ksvg2/svg/SVGUnitTypes.h: Removed.
70167         * ksvg2/svg/SVGUnitTypes.idl: Removed.
70168         * ksvg2/svg/SVGUseElement.cpp: Removed.
70169         * ksvg2/svg/SVGUseElement.h: Removed.
70170         * ksvg2/svg/SVGUseElement.idl: Removed.
70171         * ksvg2/svg/SVGViewElement.cpp: Removed.
70172         * ksvg2/svg/SVGViewElement.h: Removed.
70173         * ksvg2/svg/SVGViewElement.idl: Removed.
70174         * ksvg2/svg/SVGViewSpec.cpp: Removed.
70175         * ksvg2/svg/SVGViewSpec.h: Removed.
70176         * ksvg2/svg/SVGViewSpec.idl: Removed.
70177         * ksvg2/svg/SVGZoomAndPan.cpp: Removed.
70178         * ksvg2/svg/SVGZoomAndPan.h: Removed.
70179         * ksvg2/svg/SVGZoomAndPan.idl: Removed.
70180         * ksvg2/svg/svgattrs.in: Removed.
70181         * ksvg2/svg/svgtags.in: Removed.
70182         * rendering/PointerEventsHitRules.cpp: Copied from ksvg2/misc/PointerEventsHitRules.cpp.
70183         * rendering/PointerEventsHitRules.h: Copied from ksvg2/misc/PointerEventsHitRules.h.
70184         * rendering/SVGRenderStyle.cpp: Copied from ksvg2/css/SVGRenderStyle.cpp.
70185         * rendering/SVGRenderStyle.h: Copied from ksvg2/css/SVGRenderStyle.h.
70186         * rendering/SVGRenderStyleDefs.cpp: Copied from ksvg2/css/SVGRenderStyleDefs.cpp.
70187         * rendering/SVGRenderStyleDefs.h: Copied from ksvg2/css/SVGRenderStyleDefs.h.
70188         * svg: Copied from ksvg2/svg.
70189         * svg/SVGDocumentExtensions.cpp: Copied from ksvg2/misc/SVGDocumentExtensions.cpp.
70190         * svg/SVGDocumentExtensions.h: Copied from ksvg2/misc/SVGDocumentExtensions.h.
70191         * svg/SVGImageLoader.cpp: Copied from ksvg2/misc/SVGImageLoader.cpp.
70192         * svg/SVGImageLoader.h: Copied from ksvg2/misc/SVGImageLoader.h.
70193         * svg/SVGTimer.cpp: Copied from ksvg2/misc/SVGTimer.cpp.
70194         * svg/SVGTimer.h: Copied from ksvg2/misc/SVGTimer.h.
70195         * svg/SVGZoomEvent.cpp: Copied from ksvg2/events/SVGZoomEvent.cpp.
70196         * svg/SVGZoomEvent.h: Copied from ksvg2/events/SVGZoomEvent.h.
70197         * svg/SVGZoomEvent.idl: Copied from ksvg2/events/SVGZoomEvent.idl.
70198         * svg/TimeScheduler.cpp: Copied from ksvg2/misc/TimeScheduler.cpp.
70199         * svg/TimeScheduler.h: Copied from ksvg2/misc/TimeScheduler.h.
70200         * svg/xlinkattrs.in: Copied from ksvg2/misc/xlinkattrs.in.
70201
70202 2007-11-30  Kevin Ollivier  <kevino@theolliviers.com>
70203
70204         wx build fix. Add WebCore/platform/graphics/wx to includes.
70205
70206         * webcore-wx.bkl:
70207
70208 2007-11-30  Brady Eidson  <beidson@apple.com>
70209
70210         Reviewed by Geoff
70211
70212         Further hookup of Database API
70213         With this change, any database operation that writes to the database (UPDATE, INSERT, CREATE, etc) will
70214         result in a didModifyDatabase notification when the transaction is successfully committed
70215
70216         * storage/DatabaseAuthorizer.cpp: Global rename of "m_lastActionIncreasedSize" to "m_lastActionChangedDatabase"
70217         (WebCore::DatabaseAuthorizer::reset):
70218         (WebCore::DatabaseAuthorizer::createTable):
70219         (WebCore::DatabaseAuthorizer::allowAlterTable):
70220         (WebCore::DatabaseAuthorizer::createIndex):
70221         (WebCore::DatabaseAuthorizer::createTrigger):
70222         (WebCore::DatabaseAuthorizer::createVTable):
70223         (WebCore::DatabaseAuthorizer::allowInsert):
70224         (WebCore::DatabaseAuthorizer::allowUpdate):
70225         * storage/DatabaseAuthorizer.h:
70226         (WebCore::DatabaseAuthorizer::lastActionChangedDatabase):
70227
70228         * storage/DatabaseTracker.cpp:
70229         (WebCore::DatabaseTracker::notifyDatabaseChanged): Added.  Allow external entities (SQLTransaction) to be able
70230           to request a didModifyDatabase notification to the delegate
70231         * storage/DatabaseTracker.h:
70232
70233         * storage/SQLTransaction.cpp: Added m_modifiedDatabase flag which tracks if any statement over the course of 
70234           a transaction resulted in a change to the database.
70235         (WebCore::SQLTransaction::SQLTransaction):
70236         (WebCore::SQLTransaction::runCurrentStatement): Set m_modifiedDatabase to true if the authorizer reports a mutation
70237           statement occurred
70238         (WebCore::SQLTransaction::postflightAndCommit): If the transaction successfully commits, call DatabaseTracker::notifyDatabaseChanged
70239         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
70240         * storage/SQLTransaction.h:
70241
70242 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
70243
70244         Rubber stamped by David.
70245
70246         Next round of moves - platform reorganization.
70247         Move text/font/glyph related files from the individual port directories
70248         into platform/text/<port> or platform/graphics/<port>.
70249
70250         * DerivedSources.make:
70251         * WebCore.pro:
70252         * WebCore.vcproj/WebCore.vcproj:
70253         * WebCore.xcodeproj/project.pbxproj:
70254         * platform/cf/StringCF.cpp: Removed.
70255         * platform/cf/StringImplCF.cpp: Removed.
70256         * platform/graphics/gtk/FontCacheGtk.cpp: Copied from platform/gtk/FontCacheGtk.cpp.
70257         * platform/graphics/gtk/FontDataGtk.cpp: Copied from platform/gtk/FontDataGtk.cpp.
70258         * platform/graphics/gtk/FontGtk.cpp: Copied from platform/gtk/FontGtk.cpp.
70259         * platform/graphics/gtk/FontPlatformData.h: Copied from platform/gtk/FontPlatformData.h.
70260         * platform/graphics/gtk/FontPlatformDataGtk.cpp: Copied from platform/gtk/FontPlatformDataGtk.cpp.
70261         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp: Copied from platform/gtk/GlyphPageTreeNodeGtk.cpp.
70262         * platform/graphics/mac/FontCacheMac.mm: Copied from platform/mac/FontCacheMac.mm.
70263         * platform/graphics/mac/FontCustomPlatformData.cpp: Copied from platform/mac/FontCustomPlatformData.cpp.
70264         * platform/graphics/mac/FontCustomPlatformData.h: Copied from platform/mac/FontCustomPlatformData.h.
70265         * platform/graphics/mac/FontDataMac.mm: Copied from platform/mac/FontDataMac.mm.
70266         * platform/graphics/mac/FontMac.mm: Copied from platform/mac/FontMac.mm.
70267         * platform/graphics/mac/FontPlatformData.h: Copied from platform/mac/FontPlatformData.h.
70268         * platform/graphics/mac/FontPlatformDataMac.mm: Copied from platform/mac/FontPlatformDataMac.mm.
70269         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp: Copied from platform/mac/GlyphPageTreeNodeMac.cpp.
70270         * platform/graphics/qt/FontCacheQt.cpp: Copied from platform/qt/FontCacheQt.cpp.
70271         * platform/graphics/qt/FontCustomPlatformData.cpp: Copied from platform/qt/FontCustomPlatformData.cpp.
70272         * platform/graphics/qt/FontCustomPlatformData.h: Copied from platform/qt/FontCustomPlatformData.h.
70273         * platform/graphics/qt/FontDataQt.cpp: Copied from platform/qt/FontDataQt.cpp.
70274         * platform/graphics/qt/FontPlatformData.h: Copied from platform/qt/FontPlatformData.h.
70275         * platform/graphics/qt/FontQt.cpp: Copied from platform/qt/FontQt.cpp.
70276         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp: Copied from platform/qt/GlyphPageTreeNodeQt.cpp.
70277         * platform/graphics/win/FontCacheWin.cpp: Copied from platform/win/FontCacheWin.cpp.
70278         * platform/graphics/win/FontCustomPlatformData.cpp: Copied from platform/win/FontCustomPlatformData.cpp.
70279         * platform/graphics/win/FontCustomPlatformData.h: Copied from platform/win/FontCustomPlatformData.h.
70280         * platform/graphics/win/FontDataWin.cpp: Copied from platform/win/FontDataWin.cpp.
70281         * platform/graphics/win/FontDatabase.cpp: Copied from platform/win/FontDatabase.cpp.
70282         * platform/graphics/win/FontDatabase.h: Copied from platform/win/FontDatabase.h.
70283         * platform/graphics/win/FontPlatformData.h: Copied from platform/win/FontPlatformData.h.
70284         * platform/graphics/win/FontPlatformDataWin.cpp: Copied from platform/win/FontPlatformDataWin.cpp.
70285         * platform/graphics/win/FontWin.cpp: Copied from platform/win/FontWin.cpp.
70286         * platform/graphics/win/GlyphPageTreeNodeWin.cpp: Copied from platform/win/GlyphPageTreeNodeWin.cpp.
70287         * platform/graphics/wx/FontCacheWx.cpp: Copied from platform/wx/FontCacheWx.cpp.
70288         * platform/graphics/wx/FontDataWx.cpp: Copied from platform/wx/FontDataWx.cpp.
70289         * platform/graphics/wx/FontPlatformData.h: Copied from platform/wx/FontPlatformData.h.
70290         * platform/graphics/wx/FontPlatformDataWx.cpp: Copied from platform/wx/FontPlatformDataWx.cpp.
70291         * platform/graphics/wx/FontWx.cpp: Copied from platform/wx/FontWx.cpp.
70292         * platform/graphics/wx/GlyphMapWx.cpp: Copied from platform/wx/GlyphMapWx.cpp.
70293         * platform/gtk/FontCacheGtk.cpp: Removed.
70294         * platform/gtk/FontDataGtk.cpp: Removed.
70295         * platform/gtk/FontGtk.cpp: Removed.
70296         * platform/gtk/FontPlatformData.h: Removed.
70297         * platform/gtk/FontPlatformDataGtk.cpp: Removed.
70298         * platform/gtk/GlyphPageTreeNodeGtk.cpp: Removed.
70299         * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Removed.
70300         * platform/mac/FontCacheMac.mm: Removed.
70301         * platform/mac/FontCustomPlatformData.cpp: Removed.
70302         * platform/mac/FontCustomPlatformData.h: Removed.
70303         * platform/mac/FontDataMac.mm: Removed.
70304         * platform/mac/FontMac.mm: Removed.
70305         * platform/mac/FontPlatformData.h: Removed.
70306         * platform/mac/FontPlatformDataMac.mm: Removed.
70307         * platform/mac/GlyphPageTreeNodeMac.cpp: Removed.
70308         * platform/mac/ShapeArabic.c: Removed.
70309         * platform/mac/ShapeArabic.h: Removed.
70310         * platform/mac/StringImplMac.mm: Removed.
70311         * platform/mac/StringMac.mm: Removed.
70312         * platform/mac/TextBoundaries.mm: Removed.
70313         * platform/mac/TextBreakIteratorInternalICUMac.mm: Removed.
70314         * platform/mac/TextCodecMac.cpp: Removed.
70315         * platform/mac/TextCodecMac.h: Removed.
70316         * platform/mac/character-sets.txt: Removed.
70317         * platform/mac/mac-encodings.txt: Removed.
70318         * platform/mac/make-charset-table.pl: Removed.
70319         * platform/qt/FontCacheQt.cpp: Removed.
70320         * platform/qt/FontCustomPlatformData.cpp: Removed.
70321         * platform/qt/FontCustomPlatformData.h: Removed.
70322         * platform/qt/FontDataQt.cpp: Removed.
70323         * platform/qt/FontPlatformData.h: Removed.
70324         * platform/qt/FontQt.cpp: Removed.
70325         * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
70326         * platform/qt/StringQt.cpp: Removed.
70327         * platform/qt/TextBoundaries.cpp: Removed.
70328         * platform/qt/TextBreakIteratorQt.cpp: Removed.
70329         * platform/qt/TextCodecQt.cpp: Removed.
70330         * platform/qt/TextCodecQt.h: Removed.
70331         * platform/symbian/StringImplSymbian.cpp: Removed.
70332         * platform/symbian/StringSymbian.cpp: Removed.
70333         * platform/text/cf: Added.
70334         * platform/text/cf/StringCF.cpp: Copied from platform/cf/StringCF.cpp.
70335         * platform/text/cf/StringImplCF.cpp: Copied from platform/cf/StringImplCF.cpp.
70336         * platform/text/gtk: Added.
70337         * platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Copied from platform/gtk/TextBreakIteratorInternalICUGtk.cpp.
70338         * platform/text/mac/ShapeArabic.c: Copied from platform/mac/ShapeArabic.c.
70339         * platform/text/mac/ShapeArabic.h: Copied from platform/mac/ShapeArabic.h.
70340         * platform/text/mac/StringImplMac.mm: Copied from platform/mac/StringImplMac.mm.
70341         * platform/text/mac/StringMac.mm: Copied from platform/mac/StringMac.mm.
70342         * platform/text/mac/TextBoundaries.mm: Copied from platform/mac/TextBoundaries.mm.
70343         * platform/text/mac/TextBreakIteratorInternalICUMac.mm: Copied from platform/mac/TextBreakIteratorInternalICUMac.mm.
70344         * platform/text/mac/TextCodecMac.cpp: Copied from platform/mac/TextCodecMac.cpp.
70345         * platform/text/mac/TextCodecMac.h: Copied from platform/mac/TextCodecMac.h.
70346         * platform/text/mac/character-sets.txt: Copied from platform/mac/character-sets.txt.
70347         * platform/text/mac/mac-encodings.txt: Copied from platform/mac/mac-encodings.txt.
70348         * platform/text/mac/make-charset-table.pl: Copied from platform/mac/make-charset-table.pl.
70349         * platform/text/qt: Added.
70350         * platform/text/qt/StringQt.cpp: Copied from platform/qt/StringQt.cpp.
70351         * platform/text/qt/TextBoundaries.cpp: Copied from platform/qt/TextBoundaries.cpp.
70352         * platform/text/qt/TextBreakIteratorQt.cpp: Copied from platform/qt/TextBreakIteratorQt.cpp.
70353         * platform/text/qt/TextCodecQt.cpp: Copied from platform/qt/TextCodecQt.cpp.
70354         * platform/text/qt/TextCodecQt.h: Copied from platform/qt/TextCodecQt.h.
70355         * platform/text/symbian: Added.
70356         * platform/text/symbian/StringImplSymbian.cpp: Copied from platform/symbian/StringImplSymbian.cpp.
70357         * platform/text/symbian/StringSymbian.cpp: Copied from platform/symbian/StringSymbian.cpp.
70358         * platform/text/win: Added.
70359         * platform/text/win/TextBreakIteratorInternalICUWin.cpp: Copied from platform/win/TextBreakIteratorInternalICUWin.cpp.
70360         * platform/text/wx: Added.
70361         * platform/text/wx/StringWx.cpp: Copied from platform/wx/StringWx.cpp.
70362         * platform/win/FontCacheWin.cpp: Removed.
70363         * platform/win/FontCustomPlatformData.cpp: Removed.
70364         * platform/win/FontCustomPlatformData.h: Removed.
70365         * platform/win/FontDataWin.cpp: Removed.
70366         * platform/win/FontDatabase.cpp: Removed.
70367         * platform/win/FontDatabase.h: Removed.
70368         * platform/win/FontPlatformData.h: Removed.
70369         * platform/win/FontPlatformDataWin.cpp: Removed.
70370         * platform/win/FontWin.cpp: Removed.
70371         * platform/win/GlyphPageTreeNodeWin.cpp: Removed.
70372         * platform/win/TextBreakIteratorInternalICUWin.cpp: Removed.
70373         * platform/wx/FontCacheWx.cpp: Removed.
70374         * platform/wx/FontDataWx.cpp: Removed.
70375         * platform/wx/FontPlatformData.h: Removed.
70376         * platform/wx/FontPlatformDataWx.cpp: Removed.
70377         * platform/wx/FontWx.cpp: Removed.
70378         * platform/wx/GlyphMapWx.cpp: Removed.
70379         * platform/wx/StringWx.cpp: Removed.
70380         * webcore-wx.bkl:
70381
70382 2007-11-30  Kevin Ollivier  <kevino@theolliviers.com>
70383
70384         Build fix for wx port. Adding editing/RemoveFormatCommand.cpp
70385
70386         * WebCoreSources.bkl:
70387
70388 2007-11-30  Simon Hausmann  <hausmann@webkit.org>
70389
70390         Reviewed by Adam Roben.
70391
70392         Fix the build with DATABASE=0.
70393
70394         * page/Settings.cpp:
70395         (WebCore::Settings::setDefaultDatabaseOriginQuota):
70396         (WebCore::Settings::defaultDatabaseOriginQuota):
70397
70398 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
70399
70400         Rubber stamped by Darin.
70401
70402         Fix misplaced file. The name "FontStyle" is not correct though - it probably
70403         needs yet another move - but this time inside platform/graphics - as soon
70404         as we agree on a better name.
70405
70406         * WebCore.xcodeproj/project.pbxproj:
70407         * platform/graphics/FontStyle.h: Copied from platform/text/FontStyle.h.
70408         * platform/text/FontStyle.h: Removed.
70409
70410 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
70411
70412         Reviewed by Sam.
70413
70414         Rename "FontStyle FontStyle(...)" to "FontStyle fontStyle(...)".
70415         I scripted a bit too much while doing the TextStyle -> FontStyle change.
70416
70417         * platform/win/PopupMenuWin.cpp:
70418         (WebCore::PopupMenu::paint):
70419         * rendering/EllipsisBox.cpp:
70420         (WebCore::EllipsisBox::paint):
70421         * rendering/RenderFileUploadControl.cpp:
70422         (WebCore::RenderFileUploadControl::paintObject):
70423         * rendering/RenderListBox.cpp:
70424         (WebCore::RenderListBox::updateFromElement):
70425         (WebCore::RenderListBox::paintItemForeground):
70426         * rendering/RenderTextControl.cpp:
70427         (WebCore::RenderTextControl::setStyle):
70428         (WebCore::RenderTextControl::createInnerTextStyle):
70429         (WebCore::RenderTextControl::createSubtreeIfNeeded):
70430         * rendering/RenderTextControl.h:
70431         * rendering/SVGRootInlineBox.cpp:
70432         (WebCore::svgFontStyleForInlineTextBox):
70433
70434 2007-11-30  Alp Toker  <alp@atoker.com>
70435
70436         GTK+ build fix following the recent text reorganization.
70437
70438         * WebCore.pro:
70439
70440 2007-11-29  Jon Honeycutt  <jhoneycutt@apple.com>
70441
70442         Reviewed by Adam.
70443
70444         Part of <rdar://problem/5506522> Seed: cannot type into text box in
70445         Facebook, don't see plugin content (Adobe Flash)
70446
70447         * plugins/win/PluginViewWin.cpp:
70448         (WebCore::PluginViewWin::handleMouseEvent): Focus the plugin's parent
70449         frame  
70450
70451 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
70452
70453         Not reviewed. Trying to fix gtk/qt/wx build. (I expected problems because of the moves)
70454
70455         * WebCore.pro:
70456         * webcore-base.bkl:
70457
70458 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
70459
70460         Rubber stamped by Brady.
70461
70462         Started platform reorganization (platform/text addition).
70463         Moving string/text/font related classes into new places - as discussed on webkit-dev.
70464
70465         In a follow-up commit I'll move classes out of platform/{mac,win,...} into
70466         platform/text/{mac,win,...}, and also do the ksvg2/ -> svg/ move.
70467
70468         * WebCore.order:
70469         * WebCore.pro:
70470         * WebCore.vcproj/WebCore.vcproj:
70471         * WebCore.xcodeproj/project.pbxproj:
70472         * WebCoreSources.bkl:
70473         * editing/ReplaceSelectionCommand.cpp:
70474         (WebCore::ReplacementFragment::insertFragmentForTestRendering):
70475         * platform/AtomicString.cpp: Removed.
70476         * platform/AtomicString.h: Removed.
70477         * platform/AtomicStringImpl.h: Removed.
70478         * platform/Base64.cpp: Removed.
70479         * platform/Base64.h: Removed.
70480         * platform/BidiContext.cpp: Removed.
70481         * platform/BidiContext.h: Removed.
70482         * platform/BidiResolver.h: Removed.
70483         * platform/CString.cpp: Removed.
70484         * platform/CString.h: Removed.
70485         * platform/CharacterNames.h: Removed.
70486         * platform/CharsetData.h: Removed.
70487         * platform/Font.cpp: Removed.
70488         * platform/Font.h: Removed.
70489         * platform/FontCache.cpp: Removed.
70490         * platform/FontCache.h: Removed.
70491         * platform/FontData.cpp: Removed.
70492         * platform/FontData.h: Removed.
70493         * platform/FontDescription.h: Removed.
70494         * platform/FontFallbackList.cpp: Removed.
70495         * platform/FontFallbackList.h: Removed.
70496         * platform/FontFamily.cpp: Removed.
70497         * platform/FontFamily.h: Removed.
70498         * platform/FontSelector.h: Removed.
70499         * platform/GlyphBuffer.h: Removed.
70500         * platform/GlyphPageTreeNode.cpp: Removed.
70501         * platform/GlyphPageTreeNode.h: Removed.
70502         * platform/GlyphWidthMap.cpp: Removed.
70503         * platform/GlyphWidthMap.h: Removed.
70504         * platform/PlatformString.h: Removed.
70505         * platform/RegularExpression.cpp: Removed.
70506         * platform/RegularExpression.h: Removed.
70507         * platform/SegmentedString.cpp: Removed.
70508         * platform/SegmentedString.h: Removed.
70509         * platform/String.cpp: Removed.
70510         * platform/StringHash.h: Removed.
70511         * platform/StringImpl.cpp: Removed.
70512         * platform/StringImpl.h: Removed.
70513         * platform/StringTruncator.cpp: Removed.
70514         * platform/StringTruncator.h: Removed.
70515         * platform/TextBoundaries.h: Removed.
70516         * platform/TextBoundariesICU.cpp: Removed.
70517         * platform/TextBreakIterator.h: Removed.
70518         * platform/TextBreakIteratorICU.cpp: Removed.
70519         * platform/TextBreakIteratorInternalICU.h: Removed.
70520         * platform/TextCodec.cpp: Removed.
70521         * platform/TextCodec.h: Removed.
70522         * platform/TextCodecICU.cpp: Removed.
70523         * platform/TextCodecICU.h: Removed.
70524         * platform/TextCodecLatin1.cpp: Removed.
70525         * platform/TextCodecLatin1.h: Removed.
70526         * platform/TextCodecUTF16.cpp: Removed.
70527         * platform/TextCodecUTF16.h: Removed.
70528         * platform/TextCodecUserDefined.cpp: Removed.
70529         * platform/TextCodecUserDefined.h: Removed.
70530         * platform/TextDecoder.cpp: Removed.
70531         * platform/TextDecoder.h: Removed.
70532         * platform/TextDirection.h: Removed.
70533         * platform/TextEncoding.cpp: Removed.
70534         * platform/TextEncoding.h: Removed.
70535         * platform/TextEncodingRegistry.cpp: Removed.
70536         * platform/TextEncodingRegistry.h: Removed.
70537         * platform/TextStream.cpp: Removed.
70538         * platform/TextStream.h: Removed.
70539         * platform/TextStyle.h: Removed.
70540         * platform/UnicodeRange.cpp: Removed.
70541         * platform/UnicodeRange.h: Removed.
70542         * platform/graphics/Font.cpp: Copied from platform/Font.cpp.
70543         (WebCore::WidthIterator::WidthIterator):
70544         (WebCore::Font::width):
70545         (WebCore::Font::drawSimpleText):
70546         (WebCore::Font::drawGlyphBuffer):
70547         (WebCore::Font::drawText):
70548         (WebCore::Font::floatWidth):
70549         (WebCore::Font::floatWidthForSimpleText):
70550         (WebCore::Font::selectionRectForText):
70551         (WebCore::Font::selectionRectForSimpleText):
70552         (WebCore::Font::offsetForPosition):
70553         (WebCore::Font::offsetForPositionForSimpleText):
70554         * platform/graphics/Font.h: Copied from platform/Font.h.
70555         * platform/graphics/FontCache.cpp: Copied from platform/FontCache.cpp.
70556         * platform/graphics/FontCache.h: Copied from platform/FontCache.h.
70557         * platform/graphics/FontData.cpp: Copied from platform/FontData.cpp.
70558         * platform/graphics/FontData.h: Copied from platform/FontData.h.
70559         * platform/graphics/FontDescription.h: Copied from platform/FontDescription.h.
70560         * platform/graphics/FontFallbackList.cpp: Copied from platform/FontFallbackList.cpp.
70561         * platform/graphics/FontFallbackList.h: Copied from platform/FontFallbackList.h.
70562         * platform/graphics/FontFamily.cpp: Copied from platform/FontFamily.cpp.
70563         * platform/graphics/FontFamily.h: Copied from platform/FontFamily.h.
70564         * platform/graphics/FontSelector.h: Copied from platform/FontSelector.h.
70565         * platform/graphics/GlyphBuffer.h: Copied from platform/GlyphBuffer.h.
70566         * platform/graphics/GlyphPageTreeNode.cpp: Copied from platform/GlyphPageTreeNode.cpp.
70567         * platform/graphics/GlyphPageTreeNode.h: Copied from platform/GlyphPageTreeNode.h.
70568         * platform/graphics/GlyphWidthMap.cpp: Copied from platform/GlyphWidthMap.cpp.
70569         * platform/graphics/GlyphWidthMap.h: Copied from platform/GlyphWidthMap.h.
70570         * platform/graphics/GraphicsContext.cpp:
70571         (WebCore::GraphicsContext::drawText):
70572         (WebCore::GraphicsContext::drawBidiText):
70573         (WebCore::GraphicsContext::drawHighlightForText):
70574         * platform/graphics/GraphicsContext.h:
70575         * platform/graphics/StringTruncator.cpp: Copied from platform/StringTruncator.cpp.
70576         (WebCore::stringWidth):
70577         * platform/graphics/StringTruncator.h: Copied from platform/StringTruncator.h.
70578         * platform/graphics/qt/GraphicsContextQt.cpp:
70579         * platform/gtk/FontGtk.cpp:
70580         (WebCore::Font::drawComplexText):
70581         (WebCore::Font::floatWidthForComplexText):
70582         (WebCore::Font::offsetForPositionForComplexText):
70583         (WebCore::Font::selectionRectForComplexText):
70584         * platform/mac/FontMac.mm:
70585         (WebCore::ATSULayoutParameters::ATSULayoutParameters):
70586         (WebCore::Font::selectionRectForComplexText):
70587         (WebCore::Font::drawComplexText):
70588         (WebCore::Font::floatWidthForComplexText):
70589         (WebCore::Font::offsetForPositionForComplexText):
70590         * platform/mac/WebCoreTextRenderer.mm:
70591         (WebCoreDrawTextAtPoint):
70592         (WebCoreTextFloatWidth):
70593         * platform/qt/FontQt.cpp:
70594         (WebCore::generateComponents):
70595         (WebCore::Font::drawText):
70596         (WebCore::Font::width):
70597         (WebCore::Font::floatWidth):
70598         (WebCore::Font::offsetForPosition):
70599         (WebCore::cursorToX):
70600         (WebCore::Font::selectionRectForText):
70601         * platform/text: Added.
70602         * platform/text/AtomicString.cpp: Copied from platform/AtomicString.cpp.
70603         * platform/text/AtomicString.h: Copied from platform/AtomicString.h.
70604         * platform/text/AtomicStringImpl.h: Copied from platform/AtomicStringImpl.h.
70605         * platform/text/Base64.cpp: Copied from platform/Base64.cpp.
70606         * platform/text/Base64.h: Copied from platform/Base64.h.
70607         * platform/text/BidiContext.cpp: Copied from platform/BidiContext.cpp.
70608         * platform/text/BidiContext.h: Copied from platform/BidiContext.h.
70609         * platform/text/BidiResolver.h: Copied from platform/BidiResolver.h.
70610         * platform/text/CString.cpp: Copied from platform/CString.cpp.
70611         * platform/text/CString.h: Copied from platform/CString.h.
70612         * platform/text/CharacterNames.h: Copied from platform/CharacterNames.h.
70613         * platform/text/FontStyle.h: Copied from platform/TextStyle.h.
70614         (WebCore::FontStyle::FontStyle):
70615         * platform/text/PlatformString.h: Copied from platform/PlatformString.h.
70616         * platform/text/RegularExpression.cpp: Copied from platform/RegularExpression.cpp.
70617         * platform/text/RegularExpression.h: Copied from platform/RegularExpression.h.
70618         * platform/text/SegmentedString.cpp: Copied from platform/SegmentedString.cpp.
70619         * platform/text/SegmentedString.h: Copied from platform/SegmentedString.h.
70620         * platform/text/String.cpp: Copied from platform/String.cpp.
70621         * platform/text/StringHash.h: Copied from platform/StringHash.h.
70622         * platform/text/StringImpl.cpp: Copied from platform/StringImpl.cpp.
70623         * platform/text/StringImpl.h: Copied from platform/StringImpl.h.
70624         * platform/text/TextBoundaries.h: Copied from platform/TextBoundaries.h.
70625         * platform/text/TextBoundariesICU.cpp: Copied from platform/TextBoundariesICU.cpp.
70626         (WebCore::findNextWordFromIndex):
70627         * platform/text/TextBreakIterator.h: Copied from platform/TextBreakIterator.h.
70628         * platform/text/TextBreakIteratorICU.cpp: Copied from platform/TextBreakIteratorICU.cpp.
70629         * platform/text/TextBreakIteratorInternalICU.h: Copied from platform/TextBreakIteratorInternalICU.h.
70630         * platform/text/TextCodec.cpp: Copied from platform/TextCodec.cpp.
70631         * platform/text/TextCodec.h: Copied from platform/TextCodec.h.
70632         * platform/text/TextCodecICU.cpp: Copied from platform/TextCodecICU.cpp.
70633         * platform/text/TextCodecICU.h: Copied from platform/TextCodecICU.h.
70634         * platform/text/TextCodecLatin1.cpp: Copied from platform/TextCodecLatin1.cpp.
70635         * platform/text/TextCodecLatin1.h: Copied from platform/TextCodecLatin1.h.
70636         * platform/text/TextCodecUTF16.cpp: Copied from platform/TextCodecUTF16.cpp.
70637         * platform/text/TextCodecUTF16.h: Copied from platform/TextCodecUTF16.h.
70638         * platform/text/TextCodecUserDefined.cpp: Copied from platform/TextCodecUserDefined.cpp.
70639         * platform/text/TextCodecUserDefined.h: Copied from platform/TextCodecUserDefined.h.
70640         * platform/text/TextDecoder.cpp: Copied from platform/TextDecoder.cpp.
70641         * platform/text/TextDecoder.h: Copied from platform/TextDecoder.h.
70642         * platform/text/TextDirection.h: Copied from platform/TextDirection.h.
70643         * platform/text/TextEncoding.cpp: Copied from platform/TextEncoding.cpp.
70644         * platform/text/TextEncoding.h: Copied from platform/TextEncoding.h.
70645         * platform/text/TextEncodingRegistry.cpp: Copied from platform/TextEncodingRegistry.cpp.
70646         * platform/text/TextEncodingRegistry.h: Copied from platform/TextEncodingRegistry.h.
70647         * platform/text/TextStream.cpp: Copied from platform/TextStream.cpp.
70648         * platform/text/TextStream.h: Copied from platform/TextStream.h.
70649         * platform/text/UnicodeRange.cpp: Copied from platform/UnicodeRange.cpp.
70650         * platform/text/UnicodeRange.h: Copied from platform/UnicodeRange.h.
70651         * platform/text/mac: Added.
70652         * platform/text/mac/CharsetData.h: Copied from platform/CharsetData.h.
70653         * platform/win/FontWin.cpp:
70654         (WebCore::Font::selectionRectForComplexText):
70655         (WebCore::Font::drawComplexText):
70656         (WebCore::Font::floatWidthForComplexText):
70657         (WebCore::Font::offsetForPositionForComplexText):
70658         * platform/win/PopupMenuWin.cpp:
70659         (WebCore::PopupMenu::paint):
70660         * platform/win/UniscribeController.cpp:
70661         (WebCore::UniscribeController::UniscribeController):
70662         * platform/win/UniscribeController.h:
70663         * platform/win/WebCoreTextRenderer.cpp:
70664         (WebCore::doDrawTextAtPoint):
70665         * platform/wx/FontWx.cpp:
70666         (WebCore::Font::selectionRectForComplexText):
70667         (WebCore::Font::drawComplexText):
70668         (WebCore::Font::floatWidthForComplexText):
70669         (WebCore::Font::offsetForPositionForComplexText):
70670         * rendering/EllipsisBox.cpp:
70671         (WebCore::EllipsisBox::paint):
70672         * rendering/InlineTextBox.cpp:
70673         (WebCore::InlineTextBox::selectionRect):
70674         (WebCore::InlineTextBox::paint):
70675         (WebCore::InlineTextBox::paintSelection):
70676         (WebCore::InlineTextBox::paintCompositionBackground):
70677         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
70678         (WebCore::InlineTextBox::paintTextMatchMarker):
70679         (WebCore::InlineTextBox::offsetForPosition):
70680         (WebCore::InlineTextBox::positionForOffset):
70681         * rendering/RenderFileUploadControl.cpp:
70682         (WebCore::RenderFileUploadControl::paintObject):
70683         (WebCore::RenderFileUploadControl::calcPrefWidths):
70684         * rendering/RenderImage.cpp:
70685         * rendering/RenderListBox.cpp:
70686         (WebCore::RenderListBox::updateFromElement):
70687         (WebCore::RenderListBox::paintItemForeground):
70688         * rendering/RenderMenuList.cpp:
70689         (WebCore::RenderMenuList::updateOptionsWidth):
70690         * rendering/RenderText.cpp:
70691         (WebCore::RenderText::widthFromCache):
70692         (WebCore::RenderText::calcPrefWidths):
70693         (WebCore::RenderText::width):
70694         * rendering/RenderTextControl.cpp:
70695         (WebCore::RenderTextControl::setStyle):
70696         (WebCore::RenderTextControl::createInnerFontStyle):
70697         (WebCore::RenderTextControl::createSubtreeIfNeeded):
70698         (WebCore::RenderTextControl::calcPrefWidths):
70699         * rendering/RenderTextControl.h:
70700         * rendering/SVGInlineTextBox.cpp:
70701         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
70702         (WebCore::SVGInlineTextBox::paintCharacters):
70703         (WebCore::SVGInlineTextBox::paintSelection):
70704         * rendering/SVGRootInlineBox.cpp:
70705         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
70706         (WebCore::svgFontStyleForInlineTextBox):
70707         * rendering/SVGRootInlineBox.h:
70708
70709 2007-11-30  Adele Peterson  <adele@apple.com>
70710
70711         Reviewed by Darin.
70712
70713         Fix for http://bugs.webkit.org/show_bug.cgi?id=16072
70714         <rdar://problem/5463821> REGRESSION: Mousemove event isn't fired when mouse moves over scrollbar with pressed button (16072)
70715
70716         Test: fast/events/mousemove-after-drag-over-scrollbar.html
70717
70718         * page/EventHandler.cpp:
70719         (WebCore::EventHandler::handleMouseMoveEvent): If the mouse is pressed, and we've moved over a new scrollbar, then we can clear m_lastScrollbarUnderMouse.
70720          We should only need to show the hover effect when the mouse isn't pressed.
70721
70722 2007-11-29  Brady Eidson <beidson@apple.com>
70723
70724         Reviewed by Tim
70725
70726         Part of <rdar://problem/5556377> - Need to accurately track and enforce database quota
70727
70728         SQLite has the ability to enforce the page usage for databases.  This gives us bulletproof
70729         enforcement of the database size limit with reasonable granularity (within 1023 bytes by 
70730         default on OS X with SQLite 3.4.0)
70731
70732         This also involved enhancing the ability to install/remove the authorizer to run the PRAGMA
70733         statements involved
70734
70735         Note this patch does not actually use the new maximumSize() functionality of the 
70736         SQLiteDatabase class - that can be reviewed/landed seperately
70737         
70738         * platform/sql/SQLiteDatabase.cpp:
70739         (WebCore::SQLiteDatabase::SQLiteDatabase): 
70740         (WebCore::SQLiteDatabase::maximumSize): Return the current maximum size in bytes
70741         (WebCore::SQLiteDatabase::setMaximumSize): Based on m_pageSize, set the maximum page count
70742           to enforce the maximum size in bytes
70743         (WebCore::SQLiteDatabase::pageSize): Fetch m_pageSize if it hasn't been fetched, or return
70744           the cached value
70745         (WebCore::SQLiteDatabase::setAuthorizer): Use enableAuthorizer for the sqlite_* level 
70746           authorizer setup
70747         (WebCore::SQLiteDatabase::enableAuthorizer): Install or remove the sqlite authorizer handler
70748         * platform/sql/SQLiteDatabase.h: Add the m_pageSize member so we only have to fetch it once
70749
70750 2007-11-29  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
70751
70752         Reviewed by Maciej.
70753
70754         * Fix fast/events/mousedown_in_scrollbar.html
70755         * This test used to crash in PlatformScrollbarQt::mouse*Event due parent() returning 0.
70756         * Extend the current check that the scrollbar in the mev can be go away.
70757         This happens if we destroy a RenderLayer as the result of a click. In the
70758         case of Qt we can have this scrollbar in m_lastScrollbarUnderMouse. The RenderLayer
70759         is the ScrollbarClient, m_lastScrollbarUnderMouse is a RefPtr and keeps the
70760         last reference. When calling into this scrollbar the m_client pointer is a dangling pointer.
70761         We extend the check to set m_lastScrollbarUnderMouse back to zero when it was the
70762         scrollbar in the old mev and is gone in the new one.
70763         * This happens only on the Qt port because we send more/different move events.
70764
70765         * page/EventHandler.cpp:
70766         (WebCore::EventHandler::handleMousePressEvent):
70767
70768 2007-11-29  Antti Koivisto  <antti@apple.com>
70769
70770         Reviewed by Mitz.
70771
70772         Fix aspect ratio calculation of video.
70773         
70774         Video should always be treated as a replaced element in size calculation.
70775         
70776         Test: media/video-aspect-ratio.html
70777
70778         * rendering/RenderBox.cpp:
70779         (WebCore::RenderBox::calcWidth):
70780         (WebCore::RenderBox::calcHeight):
70781         * rendering/RenderBox.h:
70782         (WebCore::RenderBox::shouldCalculateSizeAsReplaced):
70783         * rendering/RenderMedia.h:
70784         (WebCore::RenderMedia::shouldCalculateSizeAsReplaced):
70785
70786 2007-11-29  Sam Weinig  <sam@webkit.org>
70787
70788         Reviewed by Oliver.
70789
70790         Additional fix for <rdar://problem/5592988> / http://bugs.webkit.org/show_bug.cgi?id=15936
70791         - More closely match IE's policy for frame navigation.
70792
70793         * bindings/js/kjs_window.cpp:
70794         (KJS::WindowProtoFuncOpen::callAsFunction):
70795         * loader/FrameLoader.cpp:
70796         (WebCore::FrameLoader::shouldAllowNavigation):
70797         * page/FrameTree.cpp:
70798         (WebCore::FrameTree::top):
70799         * page/FrameTree.h:
70800
70801 2007-11-29  Dan Bernstein  <mitz@apple.com>
70802
70803         Reviewed by Adam Roben and John Sullivan.
70804
70805         - make the recent searches popup extend only along the straight part of
70806           the search field (unless it needs to be wider).
70807
70808         * platform/PopupMenuClient.h:
70809           Added clientInsetLeft() and clientInsetRight() for clients to
70810           specify desired horizontal insets for the menu.
70811         * platform/win/PopupMenuWin.cpp:
70812         (WebCore::PopupMenu::calculatePositionAndSize):
70813         (WebCore::PopupMenu::paint):
70814         * rendering/RenderMenuList.cpp:
70815         (WebCore::RenderMenuList::clientInsetLeft): Added. Returns 0.
70816         (WebCore::RenderMenuList::clientInsetRight): Ditto.
70817         * rendering/RenderMenuList.h:
70818         * rendering/RenderTextControl.cpp:
70819         (WebCore::RenderTextControl::clientInsetLeft): Added. Returns half the
70820         control's height, which is the radius of the cap on the left.
70821         (WebCore::RenderTextControl::clientInsetRight): Added.
70822         * rendering/RenderTextControl.h:
70823
70824 2007-11-30  Alp Toker  <alp@atoker.com>
70825
70826         Reviewed by Maciej.
70827
70828         http://bugs.webkit.org/show_bug.cgi?id=16173
70829         Licensing change
70830
70831         Change license from BSD to LGPL.
70832
70833         This is being done to encourage vendors to contribute their fixes back
70834         upstream.
70835
70836         * platform/graphics/gtk/ColorGtk.cpp:
70837         * platform/graphics/gtk/IntPointGtk.cpp:
70838         * platform/graphics/gtk/IntRectGtk.cpp:
70839         * platform/graphics/svg/cairo/RenderPathCairo.cpp:
70840         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
70841         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
70842         * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp:
70843         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
70844         * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp:
70845         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
70846         * platform/gtk/Language.cpp:
70847         * platform/gtk/LoggingGtk.cpp:
70848         * platform/gtk/SoundGtk.cpp:
70849         * platform/gtk/SystemTimeGtk.cpp:
70850         * platform/gtk/TextBreakIteratorInternalICUGtk.cpp:
70851
70852 2007-11-29  Darin Adler  <darin@apple.com>
70853
70854         Reviewed by Adele.
70855
70856         - fix http://bugs.webkit.org/show_bug.cgi?id=16191
70857           REGRESSION: cannot tab to radio input after setting checked to false
70858
70859         Test: fast/forms/input-radio-checked-tab.html
70860
70861         * html/HTMLFormElement.cpp:
70862         (WebCore::HTMLFormElement::CheckedRadioButtons::addButton): Fix this code
70863         so that it doesn't call setChecked(false) until after the map has been updated.
70864         Otherwise, we can end up deallocating the map before manipulating it. As long
70865         as I was changing the function, I decided to make it do only a single hash
70866         table lookup.
70867
70868         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setChecked):
70869         Remove the button from the radio buttons set before changing the checked
70870         state. This matches the idiom used elsewhere and fixes the problem where
70871         setting checked to false would not remove it from the set.
70872
70873 2007-11-29  Justin Garcia  <justin.garcia@apple.com>
70874
70875         Reviewed by Darin Adler.
70876
70877         <rdar://problem/5620093> Brief hang when Safari caches page text of XML document
70878
70879         * editing/TextIterator.cpp:
70880         (WebCore::TextIterator::representNodeOffsetZero): When we haven't been emitting any 
70881         characters, shouldRepresentNodeOffsetZero() can create VisiblePositions, which is
70882         expensive.  So, we perform the inexpensive checks on m_node to see if it necessitates 
70883         emitting a character first and will early return before encountering 
70884         shouldRepresentNodeOffsetZero()s worse case behavior.
70885
70886 2007-11-29  Anders Carlsson  <andersca@apple.com>
70887
70888         Reviewed by Sam.
70889
70890         Don't install event handlers or set the zoom cursor if auto-shrink has been disabled.
70891
70892         * loader/ImageDocument.cpp:
70893         (WebCore::ImageDocument::createDocumentStructure):
70894         (WebCore::ImageDocument::imageChanged):
70895
70896 2007-11-29  Beth Dakin  <bdakin@apple.com>
70897
70898         Reviewed by Geoff.
70899
70900         Fix for <rdar://problem/5620151> Disable JavaScript for SVG as 
70901         image for <img> and CSS images
70902
70903         * platform/graphics/svg/SVGImage.cpp:
70904         (WebCore::SVGImage::dataChanged): When we create the empty clients, 
70905         explicitly disable JavaScript in the settings.
70906
70907 2007-11-29  Brady Eidson  <beidson@apple.com>
70908
70909         Reviewed by Anders
70910
70911         Support for <rdar://problem/5556381> and <rdar://problem/5556379>
70912
70913         The Database feature in the engine needs to support delegate calls for policy decisions and
70914         also provide notifications when origins and databases change their state.
70915
70916         This patch also polishes off the missing features of the management API
70917
70918         * page/Chrome.cpp: Implement the two UIDelegate methods
70919         (WebCore::Chrome::requestQuotaIncreaseForNewDatabase): Ask for more space to create a new database if it won't fit
70920         (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation): Ask for more space to complete an in-progress operation
70921         * page/Chrome.h:
70922         * page/ChromeClient.h:
70923         * platform/graphics/svg/SVGImageEmptyClients.h:
70924         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
70925         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
70926
70927         * storage/Database.cpp:
70928         (WebCore::Database::openDatabase): Check to see if this database can be opened - the quota must be high 
70929           enough and if it isn't, the UIDelegate should have a change to bump the quota.
70930           Also update the UI-relevant details (display name and estimated size) upon successful opening of the database
70931
70932         * storage/DatabaseDetails.h: Remove the version parameter as it is a programatic detail of a
70933           site database and is not important to API clients
70934         (WebCore::DatabaseDetails::DatabaseDetails):
70935         (WebCore::DatabaseDetails::isValid):
70936         (WebCore::DatabaseDetails::name):
70937
70938         * storage/DatabaseTracker.cpp:
70939         (WebCore::DatabaseTracker::openTrackerDatabase): Tweaked the schema here - there was a horrible bug with the old schema that would
70940           prevent you from having two databases of the same name from two different origins.  Also simplify the origin-management schema
70941         (WebCore::DatabaseTracker::canEstablishDatabase): Added.  Does some estimated size vs quota checks, and asks the UI delegate for 
70942           more space if necessary
70943         (WebCore::DatabaseTracker::hasEntryForOrigin):
70944         (WebCore::DatabaseTracker::establishEntryForOrigin): Establishes a tracker entry for the given origin with the current default quota
70945           Also notifies the client of the new origin
70946         (WebCore::DatabaseTracker::setDatabaseDetails): Update the display name and estimated size for the given database
70947         (WebCore::DatabaseTracker::fullPathForDatabase): Tweak to add the ability to get the path without creating it - for management purposes
70948         (WebCore::DatabaseTracker::populateOrigins): Populate origins from the Origins table instead of the Databases table
70949         (WebCore::DatabaseTracker::origins):
70950         (WebCore::DatabaseTracker::detailsForNameAndOrigin): For API management
70951         (WebCore::DatabaseTracker::usageForDatabase):
70952         (WebCore::DatabaseTracker::usageForOrigin):
70953         (WebCore::DatabaseTracker::quotaForOrigin):
70954         (WebCore::DatabaseTracker::setQuota): Notify the client
70955         (WebCore::DatabaseTracker::addDatabase): Notify the client 
70956         (WebCore::DatabaseTracker::deleteAllDatabases):
70957         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
70958         (WebCore::DatabaseTracker::deleteDatabase):
70959         (WebCore::DatabaseTracker::deleteDatabaseFile):
70960         * storage/DatabaseTracker.h:
70961
70962 2007-11-29  Dan Bernstein  <mitz@apple.com>
70963
70964         Reviewed by Beth Dakin and Darin Adler.
70965
70966         - manual test for <rdar://problem/5346394> Contextmenu event doesn't fire on body element inside frame
70967
70968         * manual-tests/context-click-unfocused-frame.html: Added.
70969
70970 2007-11-28  Antti Koivisto  <antti@apple.com>
70971
70972         Reviewed by Geoff.
70973         
70974         Fallback content inside media elements should not be rendered.
70975
70976         Test: media/fallback.html
70977
70978         * rendering/RenderMedia.h:
70979         (WebCore::RenderMedia::canHaveChildren):
70980
70981 2007-11-28  Mark Rowe  <mrowe@apple.com>
70982
70983         Windows build fix.
70984
70985         * WebCore.vcproj/WebCore.vcproj:
70986
70987 2007-11-28  Mark Rowe  <mrowe@apple.com>
70988
70989         Gtk build fix.
70990
70991         * WebCore.pro:
70992
70993 2007-11-28  Antti Koivisto  <antti@apple.com>
70994
70995         Reviewed by Oliver.
70996
70997         Make QTMovieView fill color transparent. This behavior matches the specification
70998         (and allows nice alpha blended video).
70999
71000         * platform/graphics/mac/MoviePrivateQTKit.mm:
71001         (WebCore::MoviePrivate::createQTMovieView):
71002
71003 2007-11-28  Antti Koivisto  <antti@apple.com>
71004
71005         Reviewed by Darin.
71006
71007         Test: media/video-controls.html
71008         
71009         <rdar://problem/5605668>
71010         Implement controls attribute for video element
71011         
71012         - Add RenderMedia and make RenderVideo its subclass. Controls code goes to RenderMedia while
71013           video specific (painting etc) code stays in RenderVideo. For example audio controls can be implemented
71014           later by just instantiating RenderMedia as renderer.
71015         - Make media renderer hierarchy inherit from RenderBlock instead of RenderReplaced so it can 
71016           have child nodes (for controls).
71017         - Controls are implemented as a shadow DOM.
71018         - Current look is a placeholder. It is defined purely in CSS.
71019         - Some things like volume controls are not yet implemented.
71020         - Fade-in/out is done manually, CSS animations don't work well in shadow trees.
71021           
71022         * WebCore.xcodeproj/project.pbxproj:
71023         * css/html4.css:
71024         * html/HTMLMediaElement.cpp:
71025         (WebCore::HTMLMediaElement::attributeChanged):
71026         (WebCore::HTMLMediaElement::updateMovie):
71027         (WebCore::HTMLMediaElement::defaultEventHandler):
71028         * html/HTMLMediaElement.h:
71029         * rendering/RenderMedia.cpp: Added.
71030         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
71031         (WebCore::MediaControlShadowRootElement::isShadowNode):
71032         (WebCore::MediaControlShadowRootElement::shadowParentNode):
71033         (WebCore::MediaControlInputElement::MediaControlInputElement):
71034         (WebCore::MediaControlInputElement::attachToParent):
71035         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
71036         (WebCore::MediaControlPlayButtonElement::inPausedState):
71037         (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
71038         (WebCore::MediaControlPlayButtonElement::update):
71039         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
71040         (WebCore::MediaControlTimelineElement::defaultEventHandler):
71041         (WebCore::MediaControlTimelineElement::update):
71042         (WebCore::RenderMedia::RenderMedia):
71043         (WebCore::RenderMedia::~RenderMedia):
71044         (WebCore::RenderMedia::mediaElement):
71045         (WebCore::RenderMedia::movie):
71046         (WebCore::RenderMedia::setStyle):
71047         (WebCore::RenderMedia::createControlsShadowRoot):
71048         (WebCore::RenderMedia::createPanel):
71049         (WebCore::RenderMedia::createPlayButton):
71050         (WebCore::RenderMedia::createTimeline):
71051         (WebCore::RenderMedia::createTimeDisplay):
71052         (WebCore::RenderMedia::updateFromElement):
71053         (WebCore::RenderMedia::updateControls):
71054         (WebCore::RenderMedia::timeUpdateTimerFired):
71055         (WebCore::RenderMedia::updateTimeDisplay):
71056         (WebCore::RenderMedia::updateControlVisibility):
71057         (WebCore::RenderMedia::changeOpacity):
71058         (WebCore::RenderMedia::opacityAnimationTimerFired):
71059         (WebCore::RenderMedia::forwardEvent):
71060         * rendering/RenderMedia.h: Added.
71061         (WebCore::RenderMedia::renderName):
71062         (WebCore::RenderMedia::isMedia):
71063         (WebCore::RenderMedia::intrinsicSize):
71064         * rendering/RenderObject.h:
71065         (WebCore::RenderObject::isMedia):
71066         * rendering/RenderVideo.cpp:
71067         (WebCore::RenderVideo::RenderVideo):
71068         (WebCore::RenderVideo::videoSizeChanged):
71069         (WebCore::RenderVideo::paintObject):
71070         (WebCore::RenderVideo::layout):
71071         (WebCore::RenderVideo::updateFromElement):
71072         (WebCore::RenderVideo::calcAspectRatioWidth):
71073         (WebCore::RenderVideo::calcAspectRatioHeight):
71074         * rendering/RenderVideo.h:
71075
71076 2007-11-28  Justin Garcia  <justin.garcia@apple.com>
71077
71078         Reviewed by Darin Adler.
71079
71080         <rdar://problem/5573879> GMail Beta: Crash in when undoing Remove Formating
71081         
71082         In the new beta, Google has added some custom code on top of our RemoveFormat
71083         to work around a bug where fully selected lists aren't removed.  This code corrupts
71084         the undo stack and causes crashes.  This change fixes two problems with RemoveFormat
71085         so that Google doesn't have to have any custom code. After checking this in I'll 
71086         work on bulletproofing the undo stack
71087
71088         * WebCore.xcodeproj/project.pbxproj: 
71089         * editing/CompositeEditCommand.cpp:
71090         (WebCore::CompositeEditCommand::insertLineBreak): Added this convenience method.
71091         (WebCore::CompositeEditCommand::inputText): Added code to select all inserted text, not
71092         just the last paragraph.  Added code to support an input string with '\n's.
71093         * editing/CompositeEditCommand.h:
71094         * editing/Editor.cpp:
71095         (WebCore::Editor::removeFormattingAndStyle): Moved code to its own EditCommand.
71096         * editing/RemoveFormatCommand.cpp: Added. Moved code from removeFormattingAndStyle here.
71097         (WebCore::RemoveFormatCommand::RemoveFormatCommand):
71098         (WebCore::RemoveFormatCommand::doApply): Added code to remove fully selected lists.
71099         * editing/RemoveFormatCommand.h: Added.
71100         (WebCore::RemoveFormatCommand::editingAction):
71101
71102 2007-11-28  Dan Bernstein  <mitz@apple.com>
71103
71104         Reviewed by Dave Hyatt.
71105
71106         - fix <rdar://problem/5612459> CrashTracer: [REGRESSION] 61 crashes in Safari at com.apple.WebCore: WebCore::AutoTableLayout::layout + 2046
71107
71108         Test: fast/table/empty-auto-column-zero-divide.html
71109
71110         * rendering/AutoTableLayout.cpp:
71111         (WebCore::AutoTableLayout::recalcColumn):
71112         (WebCore::AutoTableLayout::fullRecalc):
71113         (WebCore::AutoTableLayout::calcEffectiveWidth):
71114         (WebCore::AutoTableLayout::layout): When distributing the remaining
71115         width among columns, skip those whose effective (rather than
71116         specified) width is auto and contain only empty cells.
71117
71118 2007-11-28  Peter Kasting  <pkasting@google.com>
71119
71120         Reviewed by Alp Toker.
71121
71122         http://bugs.webkit.org/show_bug.cgi?id=16169
71123         GIF decoder needs to set hasAlpha() correctly on subsequent frames.
71124         
71125         This also removes the workaround for this problem in
71126         ImageSourceCairo.cpp.
71127
71128         * platform/graphics/cairo/ImageSourceCairo.cpp:
71129         (WebCore::ImageSource::frameHasAlphaAtIndex):
71130         * platform/image-decoders/gif/GIFImageDecoder.cpp:
71131         (WebCore::GIFImageDecoder::initFrameBuffer):
71132
71133 2007-11-28  Dan Bernstein  <mitz@apple.com>
71134
71135         Reviewed by Darin Adler and Adam Roben.
71136
71137         - <rdar://problem/5057218> Reenable "recent searches" search field menu when menu is fully implemented
71138
71139         * platform/win/SearchPopupMenuWin.cpp:
71140         (WebCore::SearchPopupMenu::enabled): Changed to return true.
71141         (WebCore::autosaveKey): Added. Returns a preferences key for the
71142         autosave name by prefixing it with "com.apple.WebKit.searchField:".
71143         (WebCore::SearchPopupMenu::saveRecentSearches): Implemented.
71144         (WebCore::SearchPopupMenu::loadRecentSearches): Implemented.
71145
71146 2007-11-28  Alp Toker  <alp@atoker.com>
71147
71148         Reviewed by Mark Rowe.
71149
71150         http://bugs.webkit.org/show_bug.cgi?id=15689
71151         [GTK] Background of loading images is always black
71152
71153         frameHasAlphaAtIndex() exists only to allow optimization for cases we
71154         are certain the image can be blitted rather than composited.
71155
71156         Thus we need to be conservative, returning false only when we are
71157         absolutely certain there is no need for composited copying, and true
71158         otherwise.
71159
71160         CG doesn't even bother with this optimization at all and always
71161         returns true.
71162
71163         Patch includes a workaround for
71164           http://bugs.webkit.org/show_bug.cgi?id=16169
71165           GIF ImageDecoder hasAlpha() return value incorrect
71166
71167         * platform/graphics/cairo/ImageSourceCairo.cpp:
71168         (WebCore::ImageSource::frameHasAlphaAtIndex):
71169
71170 2007-11-27  Alp Toker  <alp@atoker.com>
71171
71172         Reviewed by Mark Rowe.
71173
71174         Install the JavaScriptCore headers as part of the GTK+ port.
71175
71176         * WebCore.pro:
71177
71178 2007-11-27  Beth Dakin  <bdakin@apple.com>
71179
71180         Reviewed by Oliver.
71181
71182         Fix for <rdar://problem/5616052> SVGs with width or height of 100% 
71183         hang when used as a background-image (16164)
71184
71185         * platform/graphics/svg/SVGImage.cpp:
71186         (WebCore::SVGImage::size): Use valueAsPercentage() for percents 
71187         instead of valueInSpecifiedUnits(). valueInSpecifiedUnits() 
71188         returns, for example, 50 for 50%, so multiplying percentages by the 
71189         default size of 300 x 150 led to ridiculously huge dimensions for 
71190         SVG images, and the subsequent hang. 
71191
71192 2007-11-27  Jon Honeycutt  <jhoneycutt@apple.com>
71193
71194         Reviewed by Adam.
71195
71196         Set haveRegisteredWindowClass when we register the window class.
71197
71198         * plugins/win/PluginViewWin.cpp:
71199         (WebCore::registerPluginView):
71200
71201 2007-11-27  Timothy Hatcher  <timothy@apple.com>
71202
71203         Reviewed by Sam Weinig.
71204
71205         Bug 16165: Dragging the inspector toolbar should move the window
71206         http://bugs.webkit.org/show_bug.cgi?id=16165
71207
71208         * page/inspector/DocumentPanel.js: Call the new drag functions, and cleanup code.
71209         * page/inspector/inspector.css: Only make the toolbar transparent in detached mode.
71210         * page/inspector/inspector.js: Call the new drag functions, and cleanup code. Add
71211           toolbar drag functions that move the window.
71212
71213 2007-11-27  Antti Koivisto  <antti@apple.com>
71214
71215         Reviewed by Mitz.
71216
71217         Small changes to make RenderSlider a bit more generic so it can be used in video controls.
71218
71219         * html/HTMLInputElement.cpp:
71220         (WebCore::HTMLInputElement::defaultEventHandler): Fix coordinates with forwarded events.
71221         * rendering/RenderSlider.cpp:
71222         (WebCore::HTMLSliderThumbElement::defaultEventHandler): Fix coordinates with forwarded events.
71223         (WebCore::RenderSlider::setStyle):
71224         (WebCore::RenderSlider::createThumbStyle): Copy thumb left and top from the orginal style so position does not reset.
71225         (WebCore::RenderSlider::mouseEventIsInThumb): Make this work with forwarded events.
71226         * rendering/RenderSlider.h:
71227
71228 2007-11-27  Antti Koivisto  <antti@apple.com>
71229
71230         Reviewed by Darin.
71231
71232         - Don't use hasPseudoId() optimization for pseudo styles used in shadow trees. These styles
71233           generally exist when asked for so the optimization does not do much. This reverses the continuing
71234           growth of the _pseudoBits bitfield in RenderStyle.
71235         - Add some pseudo elements for media controls
71236
71237         * css/CSSSelector.cpp:
71238         (WebCore::CSSSelector::extractPseudoType):
71239         * css/CSSSelector.h:
71240         (WebCore::CSSSelector::):
71241         * css/CSSStyleSelector.cpp:
71242         (WebCore::CSSStyleSelector::matchRulesForList):
71243         (WebCore::CSSStyleSelector::checkOneSelector):
71244         * rendering/RenderObject.cpp:
71245         (WebCore::RenderObject::getPseudoStyle):
71246         * rendering/RenderStyle.cpp:
71247         (WebCore::pseudoBit):
71248         (WebCore::RenderStyle::hasPseudoStyle):
71249         (WebCore::RenderStyle::setHasPseudoStyle):
71250         * rendering/RenderStyle.h:
71251         (WebCore::RenderStyle::):
71252
71253 2007-11-27  Timothy Hatcher  <timothy@apple.com>
71254
71255         Reviewed by Kevin McCullough.
71256
71257         Bug 16161: window.moveBy(0, 0) moves the window by -22px vertically
71258         http://bugs.webkit.org/show_bug.cgi?id=16161
71259
71260         Removed the "Adjust the window rect to be in the coordinate space of
71261         the screen rect" step which was always adding (0,22) to the window
71262         position (on the main screen). Instead, account for screen X and Y
71263         in the bottom and right constrain step.
71264
71265         Added more test cases to: fast/dom/Window/window-resize.html
71266
71267         * bindings/js/kjs_window.cpp:
71268         (KJS::adjustWindowRect):
71269
71270 2007-11-27  Timothy Hatcher  <timothy@apple.com>
71271
71272         Reviewed by Adam Roben.
71273
71274         * page/inspector/inspector.css: Make the text in the Network
71275         panel legend more readable.
71276
71277 2007-11-27  Timothy Hatcher  <timothy@apple.com>
71278
71279         Reviewed by Adam Roben.
71280
71281         Don't call setNeedsReapplyStylesInAllFrames if the
71282         authorAndUserStylesEnabled setting didn't change.
71283
71284         * page/Settings.cpp:
71285         (WebCore::Settings::setAuthorAndUserStylesEnabled):
71286
71287 2007-11-27  Alp Toker  <alp@atoker.com>
71288
71289         Fix potential broken build due to a missing DEPENDPATH.
71290
71291         * WebCore.pro:
71292
71293 2007-11-26  Timothy Hatcher  <timothy@apple.com>
71294
71295         Reviewed by Dave Hyatt.
71296
71297         <rdar://problem/5569233> Add the ability to disable author and user CSS styles
71298
71299         * WebCore.base.exp: Add the Settings::setAuthorAndUserStylesEnabled symbol.
71300         * css/CSSStyleSelector.cpp:
71301         (WebCore::CSSStyleSelector::CSSStyleSelector): Add a new matchAuthorAndUserStyles parameter.
71302         (WebCore::CSSStyleSelector::styleForElement): Check m_matchAuthorAndUserStyles before
71303         matching user and author rules.
71304         (WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto.
71305         (WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
71306         * css/CSSStyleSelector.h: Add m_matchAuthorAndUserStyles and new constructor parameter.
71307         * dom/Document.cpp:
71308         (WebCore::Document::Document): Pass Settings::authorAndUserStylesEnabled to the CSSStyleSelector.
71309         (WebCore::Document::recalcStyleSelector): Skip collecting the author stylesheets if
71310         Settings::authorAndUserStylesEnabled is false, and pass that to the CSSStyleSelector.
71311         * page/Settings.cpp:
71312         (WebCore::Settings::Settings): Initialize m_authorAndUserStylesEnabled to true.
71313         (WebCore::Settings::setAuthorAndUserStylesEnabled): Recalc style in all the frames
71314         when the setting changes.
71315         * page/Settings.h: Add m_authorAndUserStylesEnabled.
71316         (WebCore::Settings::authorAndUserStylesEnabled): Return m_authorAndUserStylesEnabled.
71317
71318 2007-11-27  Alp Toker  <alp@atoker.com>
71319
71320         Reviewed by Mark Rowe.
71321
71322         Based on changes by Mike Emmel.
71323
71324         CURL HTTP backend local file fixes:
71325
71326         Set a MIME type for local files based on the file extension.
71327
71328         Remove any HTTP query part sent to a local file.
71329
71330         * platform/network/curl/ResourceHandleManager.cpp:
71331         (WebCore::ResourceHandleManager::startJob):
71332
71333 2007-11-26  Brady Eidson  <beidson@apple.com>
71334
71335         Reviewed by Mark Rowe
71336
71337         Allow setting the default storage quota per database origin
71338
71339         * WebCore.base.exp:
71340
71341         * page/Settings.cpp:
71342         (WebCore::Settings::setDefaultDatabaseOriginQuota):
71343         (WebCore::Settings::defaultDatabaseOriginQuota):
71344         * page/Settings.h:
71345
71346         * storage/DatabaseTracker.cpp:
71347         (WebCore::DatabaseTracker::DatabaseTracker):
71348         (WebCore::DatabaseTracker::setDefaultOriginQuota):
71349         (WebCore::DatabaseTracker::defaultOriginQuota):
71350         * storage/DatabaseTracker.h:
71351
71352 2007-11-26  Peter Kasting  <pkasting@google.com>
71353
71354         Reviewed by Alp Toker.
71355
71356         http://bugs.webkit.org/show_bug.cgi?id=15974
71357         GIF decoding should respect frames' specified disposal methods.
71358
71359         * platform/image-decoders/ImageDecoder.h:
71360         (WebCore::RGBA32Buffer::):
71361         (WebCore::RGBA32Buffer::RGBA32Buffer):
71362         (WebCore::RGBA32Buffer::disposalMethod):
71363         (WebCore::RGBA32Buffer::setDisposalMethod):
71364         * platform/image-decoders/gif/GIFImageDecoder.cpp:
71365         (WebCore::GIFImageDecoder::frameBufferAtIndex):
71366         (WebCore::GIFImageDecoder::initFrameBuffer):
71367         (WebCore::GIFImageDecoder::prepEmptyFrameBuffer):
71368         (WebCore::GIFImageDecoder::haveDecodedRow):
71369         (WebCore::GIFImageDecoder::frameComplete):
71370         * platform/image-decoders/gif/GIFImageDecoder.h:
71371         * platform/image-decoders/gif/GIFImageReader.cpp:
71372         (GIFImageReader::read):
71373         * platform/image-decoders/gif/GIFImageReader.h:
71374         (GIFFrameReader::GIFFrameReader):
71375
71376 2007-11-26  Adam Roben  <aroben@apple.com>
71377
71378         Add a Color(CGColorRef) constructor
71379
71380         Reviewed by Darin.
71381
71382         * platform/graphics/Color.h:
71383         * platform/graphics/cg/ColorCG.cpp:
71384         (WebCore::Color::Color): Added.
71385
71386 2007-11-26  Adele Peterson  <adele@apple.com>
71387
71388         Reviewed by Darin.
71389
71390         Update to last change.  Moved addPendingSheet call to within nil check for m_cachedSheet.
71391
71392         * page/Frame.cpp:
71393         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
71394
71395 2007-11-26  Adele Peterson  <adele@apple.com>
71396
71397         Reviewed by Darin.
71398
71399         Fix for <rdar://problem/5591583> CrashTracer: [USER] 157 in Mail crashes at -[WebCoreFrameBridge reapplyStylesForDeviceType:]
71400
71401         * page/Frame.cpp: Add nil checks since every other caller of requestCSSStyleSheet checks for nil.
71402         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
71403         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
71404
71405 2007-11-26  Mark Rowe  <mrowe@apple.com>
71406
71407         GCC 4.2 build fix.
71408
71409         * xml/XSLTUnicodeSort.cpp: Add another WTF_ATTRIBUTE_PRINTF.
71410
71411 2007-11-26  Feng Qian <feng@chromium.org>
71412
71413         Reviewed and touched up by Sam Weinig.
71414
71415         Fix for http://bugs.webkit.org/show_bug.cgi?id=16073
71416
71417         Test: http/tests/security/xss-DENIED-invalid-domain-change.html
71418
71419         * dom/Document.cpp:
71420         (WebCore::Document::setDomain): Don't set the securityOrigin policy unless
71421         the set succeeds.  Adds some early returns as well.
71422
71423 2007-11-26  Steve Falkenburg  <sfalken@apple.com>
71424
71425         Build fix.
71426
71427         * WebCore.vcproj/WebCore.make:
71428         * WebCore.vcproj/migrate-idls.sh:
71429
71430 2007-11-26  Sam Weinig  <sam@webkit.org>
71431
71432         Fix potential null-dereference.
71433
71434         Reviewed by Adam Roben.
71435
71436         * page/FrameTree.cpp:
71437         (WebCore::FrameTree::isDescendantOf):
71438
71439 2007-11-26  Sam Weinig  <sam@webkit.org>
71440
71441         Reviewed by Darin.
71442
71443         Fix for <rdar://problem/5592988>
71444         - Enforce tighter restrictions on what frames in other domains
71445           can be navigated.
71446
71447         Tests: http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change.html
71448                http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change.html
71449
71450         * bindings/js/kjs_window.cpp:
71451         (KJS::Window::put):
71452         (KJS::Location::put):
71453         (KJS::LocationProtoFuncReplace::callAsFunction):
71454         (KJS::LocationProtoFuncAssign::callAsFunction):
71455         * loader/FrameLoader.cpp:
71456         (WebCore::FrameLoader::createWindow):
71457         (WebCore::FrameLoader::load):
71458         (WebCore::FrameLoader::shouldAllowNavigation): Move and update logic from canTarget().
71459         * loader/FrameLoader.h:
71460         * page/FrameTree.cpp:
71461         (WebCore::FrameTree::isDescendantOf): Make this O(1) in the case when both frames are not
71462         in the same page.
71463
71464 2007-11-26  Steve Falkenburg  <sfalken@apple.com>
71465
71466         Build fix.
71467
71468         * WebCore.vcproj/migrate-idls.sh:
71469
71470 2007-11-26  Dan Bernstein  <mitz@apple.com>
71471
71472         Reviewed by Dave Hyatt.
71473
71474         - fix <rdar://problem/5609337> Making a float shorter does not remove it from the floating object list of a nested block it intruded into
71475
71476         Test: fast/dynamic/float-withdrawal-2.html
71477
71478         * rendering/RenderBlock.cpp:
71479         (WebCore::RenderBlock::layoutBlockChildren): When a float may have
71480         been withdrawn from a child, mark all descendants if necessary and not
71481         just the child.
71482
71483 2007-11-26  Steve Falkenburg  <sfalken@apple.com>
71484
71485         Build fix.
71486
71487         * WebCore.vcproj/MigrateIDLAndScripts: Copied from WebCore.vcproj/MigrateIDLAndScripts.make.
71488         * WebCore.vcproj/MigrateIDLAndScripts.make: Removed.
71489         * WebCore.vcproj/migrate-idls.sh:
71490
71491 2007-11-26  Brady Eidson  <beidson@apple.com>
71492
71493         Reviewed by Anders (and typo lovingly found by Adam)
71494
71495         Change Databases to be stored in a per-origin directory hierarchy - this will make
71496         storage quotas much easier to enforce
71497
71498         * platform/SecurityOriginData.cpp:
71499         (WebCore::SecurityOriginData::SecurityOriginData): Parse string based on '_' instead of ':'
71500         (WebCore::SecurityOriginData::stringIdentifier): Change to use '_' as a separator instead of ':'.  
71501           '_' still works due to not being allowed in domain names, but also is a valid filename character '
71502           on all filesystems we care about
71503
71504         * storage/DatabaseTracker.cpp:
71505         (WebCore::DatabaseTracker::fullPathForDatabase): Create a per-origin directory hierarchy to categorize
71506           databases by origin
71507
71508 2007-11-26  Timothy Hatcher  <timothy@apple.com>
71509
71510         Reviewed by Adam Roben.
71511
71512         Bug 16137: Web Inspector window on Leopard should have a unified toolbar and window title
71513         http://bugs.webkit.org/show_bug.cgi?id=16137
71514
71515         On Leopard the toolbar background will be transparent, to allow the
71516         window background to show through the transparent WebView. The 
71517         search results divs needed to move inside the "main" div, so they
71518         would be clipped and not show where the toolbar is.
71519
71520         * page/InspectorController.cpp:
71521         (WebCore::platform): Return a string for which platform we are.
71522         (WebCore::InspectorController::windowScriptObjectAvailable):
71523         Define the platform function on the JavaScript class.
71524         * page/inspector/Panel.js: Add panels to the panels div.
71525         * page/inspector/inspector.css: On the Leopard platform make
71526         the toolbar background transparent so the window background shows.
71527         * page/inspector/inspector.html: Add a panels div and move search
71528         result divs inside the main div.
71529         * page/inspector/inspector.js: Tweak the resize code to acount for
71530         the search results divs moving inside the main div.
71531
71532 2007-11-25  Rodney Dawes  <dobey@wayofthemonkey.com>
71533
71534         Reviewed by Maciej Stachowiak.
71535
71536         Remove the unneeded CFNETWORK #ifdefs.
71537
71538         * loader/NetscapePlugInStreamLoader.h:
71539
71540 2007-11-24  Laszlo Gombos  <laszlo.gombos@gmail.com>
71541
71542         Reviewed by Sam Weinig.
71543
71544         Add printf format attribute to several functions. Use the the new WTF_ATTRIBUTE_PRINTF define.
71545
71546         * dom/XMLTokenizer.cpp:
71547         * dom/XMLTokenizer.h:
71548         * platform/DeprecatedString.h:
71549         * platform/PlatformString.h:
71550
71551 2007-11-25  Dan Bernstein  <mitz@apple.com>
71552
71553         Reviewed by Adam Roben.
71554
71555         - fix off-center error images
71556
71557         Covered by many pixel tests with missing images
71558
71559         * rendering/RenderImage.cpp:
71560         (WebCore::RenderImage::paint): Account for the 1 pixel outline when
71561         positioning the error image.
71562
71563 2007-11-25  Kevin Ollivier  <kevino@theolliviers.com>
71564
71565         wx build fix. Fix filename case for case-sensitive filesystems.
71566
71567         * WebCoreSources.bkl:
71568
71569 2007-11-22  Nikolas Zimmermann  <zimmermann@kde.org>
71570
71571         Reviewed by Adam Roben.
71572
71573         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15564
71574
71575         Fix problems with hidden glyphs. They were taken into account for quite
71576         some operations (hit testing, length calulcations etc..) except painting.
71577         Especially fixes boundaries of <textPath> (see using Web Inspector) if
71578         text-anchor isn't equal to 'start'.
71579
71580         Added testcase:
71581         svg/text/textPathBoundsBug.svg
71582
71583         Fixed testcase: (all showed text selection problems on text paths)
71584         svg/batik/text/textGlyphOrientationHorizontal.svg
71585         svg/batik/text/textOnPath.svg
71586         svg/batik/text/textOnPath3.svg
71587         svg/batik/text/verticalTextOnPath.svg
71588         svg/text/text-align-04-b.svg
71589         svg/W3C-SVG-1.1/text-align-04-b.svg
71590
71591         * rendering/SVGCharacterLayoutInfo.cpp:
71592         (WebCore::SVGChar::isHidden):
71593         * rendering/SVGCharacterLayoutInfo.h:
71594         (WebCore::SVGCharOnPath::SVGCharOnPath):
71595         * rendering/SVGInlineTextBox.cpp:
71596         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
71597         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
71598         * rendering/SVGRootInlineBox.cpp:
71599         (WebCore::topLeftPositionOfCharacterRange):
71600         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
71601         (WebCore::cummulatedWidthOrHeightOfTextChunk):
71602         (WebCore::applyTextAnchorToTextChunk):
71603         (WebCore::applyTextLengthCorrectionToTextChunk):
71604         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
71605         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
71606         (WebCore::SVGRootInlineBox::buildTextChunks):
71607
71608 2007-11-25  Alexey Proskuryakov  <ap@webkit.org>
71609
71610         Reviewed by Maciej.
71611
71612         http://bugs.webkit.org/show_bug.cgi?id=15919
71613         XSLTProcessor.transformToFragment creates an extra not defined TEXT_NODE at the end
71614
71615         Test: fast/xsl/extra-lf-at-end.html
71616
71617         * xml/XSLTProcessor.cpp:
71618         (WebCore::writeToVector): Changed to use Vector to avoid slow String::apend().
71619         (WebCore::saveResultToString): Remove trailing line feed if present.
71620
71621 2007-11-24  Mark Rowe  <mrowe@apple.com>
71622
71623         Reviewed by Tim Hatcher.
71624
71625         Fix <rdar://problem/5432686> 333MB RPRVT seems to leak @ www.43folders.com (1hr plug-in stream).
71626         http://bugs.webkit.org/show_bug.cgi?id=13705
71627
71628         Don't buffer the entire stream contents in memory in the ResourceLoader.
71629
71630         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
71631         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
71632         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
71633         * loader/mac/WebPlugInStreamLoaderDelegate.h:
71634
71635 2007-11-23  Adam Roben  <aroben@apple.com>
71636
71637         Get rid of WebCoreSystemInterface on Windows
71638
71639         The one function defined in that file is now in WebKitSystemInterface.
71640
71641         Reviewed by Tim.
71642
71643         * WebCore.vcproj/WebCore.vcproj: Removed
71644         WebCoreSystemInterface.{cpp,h}.
71645         * platform/graphics/cg/ImageCG.cpp: Made #include of
71646         WebCoreSystemInterface.h Mac-only.
71647         * platform/win/GraphicsContextWin.cpp: Ditto.
71648         * platform/win/WebCoreSystemInterface.cpp: Removed.
71649         * platform/win/WebCoreSystemInterface.h: Removed.
71650
71651 2007-11-24  Adam Roben  <aroben@apple.com>
71652
71653         Replace uses of %@ with %s in the inspector
71654
71655         Rubberstamped by Tim.
71656
71657         * English.lproj/InspectorLocalizedStrings.js: Changed %@ to %s.
71658         * page/inspector/DatabasePanel.js: Ditto.
71659         * page/inspector/StylesSidebarPane.js: Ditto.
71660         * page/inspector/inspector.js: Ditto.
71661         * page/inspector/utilities.js:
71662         (String.vsprintf): Removed @ as a format specifier.
71663
71664 2007-11-24  Adam Roben  <aroben@apple.com>
71665
71666         Windows build fix
71667
71668         Turn off the change made in r27984 on Windows for now.
71669
71670         * xml/XSLTProcessor.cpp:
71671         (WebCore::XSLTProcessor::transformToString):
71672         * xml/XSLTUnicodeSort.cpp:
71673
71674 2007-11-24  Timothy Hatcher  <timothy@apple.com>
71675
71676         Reviewed by Adam Roben.
71677
71678         Bug 16121: Web Inspector needs helper functions that pass a 'this' object to
71679         addEventListener and setTimeout
71680         http://bugs.webkit.org/show_bug.cgi?id=16121
71681
71682         Add Function.prototype.bind. This helper will return a wrapper function
71683         that will call the original function with the supplied arguments
71684         and using the supplied 'this' object.
71685
71686         * page/inspector/Database.js: Remove a use of setTimeout by
71687           inheriting some common functions from Resource.
71688         * page/inspector/DatabasePanel.js: Use the new bind function.
71689         * page/inspector/ConsolePanel.js: Ditto.
71690         * page/inspector/DocumentPanel.js: Ditto.
71691         * page/inspector/NetworkPanel.js: Ditto.
71692         * page/inspector/PropertiesSection.js: Ditto.
71693         * page/inspector/Resource.js: Ditto.
71694         * page/inspector/SidebarPane.js: Ditto.
71695         * page/inspector/inspector.html: Moved Database.js after Resource.js,
71696           now that Database.js uses it.
71697         * page/inspector/inspector.js: Use the new bind function. Also
71698           removed a setTimeout used for the localized strings code. There is
71699           now a load event listener added to the localized strings script
71700           element that will call WebInspector.loaded.
71701         * page/inspector/utilities.js: Add Function.prototype.bind.
71702
71703 2007-11-24  Timothy Hatcher  <timothy@apple.com>
71704
71705         Reviewed by Adam Roben.
71706
71707         Bug 16112: Some Web Inspector UI elements use offsetWidth and offsetHeight before the stylesheet loads
71708         http://bugs.webkit.org/show_bug.cgi?id=16112
71709
71710         In the places where we use offsetWidth and offsetHeight before
71711         the stylesheet loads there is now a check. If the body's
71712         offsetWidth is not greater than zero, then set a timeout
71713         to do the updates requiring the stylesheet later.
71714
71715         The three places this happened:
71716         - DOM tree selection highlight would show up at the wrong height
71717           when using Inspect Element to open the inspector.
71718         - DOM tree breadcrumbs would not collapse when using Inspect Element
71719           to open the inspector.
71720         - Network Timeline divider lines would not show when opening directly
71721           into the timeline.
71722
71723         * page/inspector/DocumentPanel.js: Check if the stylesheet loaded.
71724         * page/inspector/NetworkPanel.js: Ditto.
71725         * page/inspector/inspector.html: Include the stylesheet before
71726           any scripts, this will help get it loaded sooner.
71727
71728 2007-11-24  Kevin Ollivier  <kevino@theolliviers.com>
71729
71730         Add wx implementation for pathGetFilename
71731
71732         Reviewed by David D. Kilzer.
71733
71734         * html/HTMLFormElement.cpp:
71735         (WebCore::pathGetFilename):
71736
71737 2007-11-23  Timothy Hatcher  <timothy@apple.com>
71738
71739         Reviewed by Adam Roben.
71740
71741         Bug 16110: Clicking inside the resource headers in the network timeline collapses them
71742         http://bugs.webkit.org/show_bug.cgi?id=16110
71743
71744         Toggle the resource headers only if the click happens on the
71745         resource row, not within the headers area.
71746
71747         * WebCore.xcodeproj/project.pbxproj:
71748         * page/inspector/NetworkPanel.js:
71749
71750 2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>
71751
71752         Win build fixes. CURL needs winsock, so don't disable it, and
71753         include pthreads.h to get the threadsafe *_r functions.
71754
71755         Reviewed by Adam Roben.
71756
71757         * config.h:
71758         * loader/FTPDirectoryDocument.cpp:
71759         * loader/FTPDirectoryParser.cpp:
71760
71761 2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>
71762
71763         wx build fix. Move wx settings to project build settings,
71764         remove some old settings that were masking a build problem,
71765         and fix include ordering to ensure proper config.h and
71766         unicode/utf8.h headers are used. 
71767
71768         * webcore-base.bkl:
71769         * webcore-wx.bkl:
71770
71771 2007-11-23  Simon Hausmann  <hausmann@webkit.org>
71772
71773         Reviewed by George Staikos <staikos@kde.org>.
71774
71775         Another build fix specific to trunk (instead of the stable branch) to fix make clean (which the buildbots call).
71776
71777         * WebCore.pro:
71778
71779 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
71780
71781         Not reviewed, trivial leak fix.
71782
71783         Fix xsltUnicodeSortFunction() memory leaks.
71784
71785         * xml/XSLTUnicodeSort.cpp:
71786         (WebCore::xsltUnicodeSortFunction):
71787
71788 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
71789
71790         Reviewed by Maciej.
71791
71792         <rdar://problem/5539306> REGRESSION: redirect fails when subframe's document is opened but
71793         not closed (affects digg.com)
71794
71795         Tests: fast/loader/meta-refresh-vs-open.html
71796                fast/loader/redirect-with-open-subframe-2.html
71797                fast/loader/redirect-with-open-subframe.html
71798                http/tests/loading/onload-vs-immediate-refresh.pl
71799
71800         * loader/FrameLoader.cpp:
71801         (WebCore::FrameLoader::scheduleRedirection): Only check whether the load is complete for
71802         HTTP redirects - JavaScript-initiated ones are effective immediately.
71803
71804 2007-11-23  Dan Bernstein  <mitz@apple.com>
71805
71806         Reviewed by Alexey Proskuryakov.
71807
71808         - apply matrix transforms on the correct side of the transformation
71809           matrix (not on the side where the vector is multiplied).
71810
71811         Test: fast/transforms/matrix-02.html
71812
71813         * rendering/RenderStyle.h:
71814         (WebCore::MatrixTransformOperation::apply):
71815
71816 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
71817
71818         Reviewed by Maciej.
71819
71820         http://bugs.webkit.org/show_bug.cgi?id=16077
71821         <rdar://problem/5609785> XSLT processor <xsl:sort> algorithm is incompatible with other
71822         browser implementations
71823
71824         Test: fast/xsl/sort-unicode.xml
71825
71826         * xml/XSLTProcessor.cpp:
71827         (WebCore::XSLTProcessor::transformToString): Set a custom sort function.
71828
71829         * xml/XSLTUnicodeSort.cpp: Added.
71830         (init_xsltTransformError):
71831         (xsltTransformError):
71832         (WebCore::xsltUnicodeSortFunction):
71833         * xml/XSLTUnicodeSort.h: Added.
71834         ICU-based implementation of xsl:sort, using an example from libxslt distribution.
71835         Only minimal coding style fixes to ease synchronization with upstream in the future.
71836
71837         * icu/unicode/ucol.h: Added.
71838         * icu/unicode/uset.h: Added.
71839         Taken from ICU 3.2
71840
71841         * WebCore.pro:
71842         * WebCore.vcproj/WebCore.vcproj:
71843         * WebCore.xcodeproj/project.pbxproj:
71844         * WebCoreSources.bkl:
71845         Added XSLTUnicodeSort.cpp.
71846
71847 2007-11-22  Alexey Proskuryakov  <ap@webkit.org>
71848
71849         Reviewed by Maciej.
71850
71851         http://bugs.webkit.org/show_bug.cgi?id=14977
71852         Hixie's DOM Core performance test shows insert >10x slower than append
71853
71854         Each invocation of Element.childNodes[n] was creating and registering a new ChildNodeList,
71855         which persisted and listened to notifications until GC.
71856
71857         A fix is to avoid registering child node lists for notifications - they don't need them, as
71858         they share a common cache in Node.
71859
71860         * dom/Node.cpp:
71861         (WebCore::Node::registerNodeList):
71862         (WebCore::Node::unregisterNodeList):
71863         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
71864         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
71865         * dom/NodeList.h:
71866         (WebCore::NodeList::needsNotifications):
71867
71868 2007-11-22  Dan Bernstein  <mitz@apple.com>
71869
71870         Reviewed by Antti Koivisto.
71871
71872         - fix http://bugs.webkit.org/show_bug.cgi?id=15811
71873           WebKit plug-ins can re-enter WebKit under attach()
71874           <rdar://problem/5577978>
71875
71876         Defer plug-in loading until after attach and recalcStyle using the
71877         post-attach callback mechanism. Netscape plug-ins are still loaded only
71878         after layout.
71879
71880         * dom/ContainerNode.cpp:
71881         Made NodeCallbackQueue elements retain the Node because callbacks might
71882         delete nodes that are in the callback queue.
71883         (WebCore::ContainerNode::suspendPostAttachCallbacks): Added. Needed to
71884         prevent post-attach callbacks from being dispatched under recalcStyle().
71885         (WebCore::ContainerNode::resumePostAttachCallbacks): Ditto.
71886         (WebCore::ContainerNode::dispatchPostAttachCallbacks): Factored out from
71887         attach().
71888         (WebCore::ContainerNode::attach):
71889         * dom/ContainerNode.h:
71890         * dom/Document.cpp:
71891         (WebCore::Document::recalcStyle): Added calls to
71892         suspendPostAttachCallbacks() and resumePostAttachCallbacks().
71893         * html/HTMLEmbedElement.cpp:
71894         (WebCore::HTMLEmbedElement::HTMLEmbedElement):
71895         (WebCore::HTMLEmbedElement::attach): Changed to queue the widget update
71896         for post-attach.
71897         (WebCore::HTMLEmbedElement::updateWidget): Added. Called by the
71898         post-attach callback.
71899         * html/HTMLEmbedElement.h: Added an m_needWidgetUpdate member needed to
71900         prevent a double update if another plug-in's post-attach updateWidget()
71901         triggers a layout which updates the widget before this plug-in's
71902         post-attach callback is invoked.
71903         (WebCore::HTMLEmbedElement::setNeedWidgetUpdate): Added a setter for
71904         m_needWidgetUpdate.
71905         * html/HTMLObjectElement.cpp:
71906         (WebCore::HTMLObjectElement::attach): Changed to queue the widget update
71907         for post-attach.
71908         (WebCore::HTMLObjectElement::updateWidget): Added. Called by the
71909         post-attach callback.
71910         * html/HTMLObjectElement.h:
71911         (WebCore::HTMLObjectElement::setNeedWidgetUpdate): Added a setter for
71912         m_needWidgetUpdate.
71913         * html/HTMLPlugInElement.cpp:
71914         (WebCore::HTMLPlugInElement::updateWidgetCallback): Added.
71915         * html/HTMLPlugInElement.h:
71916         (WebCore::HTMLPlugInElement::updateWidget):
71917         * rendering/RenderPartObject.cpp:
71918         (WebCore::RenderPartObject::updateWidget): Added calls to
71919         setNeedWidgetUpdate(false) so that if this method is called from
71920         FrameView::layout() during post-attach dispatch of another plug-in,
71921         it will not be called again when this plug-in's post-attach callback
71922         is dispatched.
71923         * rendering/RenderPartObject.h:
71924         (WebCore::RenderPartObject::updateWidget) Renamed argument to match
71925         the method definition.
71926
71927 2007-11-22  Timothy Hatcher  <timothy@apple.com>
71928
71929         Reviewed by Dan Bernstein.
71930
71931         Fix the Element.hasStyleClass and Element.removeStyleClass helpers
71932         to not find and replace substrings, but whole class names at the
71933         beginning or end of the string or surrounded by whitespace.
71934
71935         * page/inspector/utilities.js:
71936
71937 2007-11-22  Timothy Hatcher  <timothy@apple.com>
71938
71939         Revert part of my r27935 change that made the Tip balloons
71940         animate with CSS transitions. The balloon was only opacity 0,
71941         so it would cause its row to highlight when hovering over
71942         another row.
71943
71944         * page/inspector/NetworkPanel.js:
71945         * page/inspector/inspector.css:
71946
71947 2007-11-22  Dan Bernstein  <mitz@apple.com>
71948
71949         Reviewed by Maciej Stachowiak.
71950
71951         - fix http://bugs.webkit.org/show_bug.cgi?id=15943
71952           -webkit-transform matrix does not work
71953
71954         Test: fast/transforms/matrix-01.html
71955
71956         Parse all six matrix entries as numbers.
71957
71958         * css/CSSParser.cpp:
71959         (WebCore::TransformOperationInfo::TransformOperationInfo):
71960         (WebCore::CSSParser::parseTransform):
71961         * css/CSSStyleSelector.cpp:
71962         (WebCore::CSSStyleSelector::applyProperty):
71963         * rendering/RenderStyle.cpp:
71964         (WebCore::MatrixTransformOperation::blend):
71965         * rendering/RenderStyle.h:
71966         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
71967         (WebCore::MatrixTransformOperation::apply):
71968
71969 2007-11-22  Laszlo Gombos  <laszlo.gombos@gmail.com>
71970
71971         Reviewed by Alp Toker.
71972
71973         Fix some compilation warnings.  Do not reference undefined (platform) specific type (WebCore::CachedFont::m_fontData)
71974
71975         * loader/CachedFont.cpp:
71976         (WebCore::CachedFont::~CachedFont):
71977         (WebCore::CachedFont::allReferencesRemoved):
71978
71979 2007-11-22  Alp Toker  <alp@atoker.com>
71980
71981         Reviewed by Mark Rowe.
71982
71983         GTK+ drawing fix.
71984
71985         Add a check to avoid crashing when the GraphicsContext is not
71986         associated with a GdkEventExpose. This was noticed when adding
71987         printing support but might be triggered in other situations too.
71988
71989         * platform/gtk/WidgetGtk.cpp:
71990         (WebCore::Widget::paint):
71991
71992 2007-11-22  Julien Chaffraix  <julien.chaffraix@gmail.com>
71993
71994         Reviewed by Alexey.
71995
71996         Bug 15530: XMLHttpRequest should not support certain methods
71997
71998         Test: http/tests/xmlhttprequest/xmlhttprequest-forbidden-methods-exception.html
71999
72000         * xml/XMLHttpRequest.cpp:
72001         (WebCore::XMLHttpRequest::open):
72002
72003 2007-11-22  Simon Hausmann  <hausmann@kde.org>
72004
72005         Reviewed by George.
72006
72007         For the build inside Qt include qbase.pri and don't duplicate what qbase.pri otherwise does (install targets, etc.)
72008
72009         * WebCore.pro:
72010
72011 2007-11-22  Simon Hausmann  <hausmann@kde.org>
72012
72013         Reviewed by George.
72014
72015         Don't set OBJECTS_DIR when building inside Qt
72016
72017         * WebCore.pro:
72018
72019 2007-11-22  Simon Hausmann  <hausmann@kde.org>
72020
72021         Reviewed by George.
72022
72023         Use ../generated as path for the generated sources for builds inside Qt
72024
72025         * WebCore.pro:
72026
72027 2007-11-22  Simon Hausmann  <hausmann@kde.org>
72028
72029         Reviewed by George.
72030
72031         Make the directory of where to put the generated sources configurable through the GENERATED_SOURCE_DIR variable
72032
72033         * WebCore.pro:
72034
72035 2007-11-22  Simon Hausmann  <hausmann@kde.org>
72036
72037         Reviewed by George.
72038
72039         Centralize the setup for all the extra compilers in a addExtraCompiler function.
72040         
72041         This allows adding a "generated_files" target that builds all generated files using "make generated_files".
72042         For the build inside Qt we do not generate actual rules for the extra compilers but instead
72043         do the variable substitution of compiler.output manually and add the generated sources to SOURCES.
72044
72045         * WebCore.pro:
72046
72047 2007-11-21  Timothy Hatcher  <timothy@apple.com>
72048
72049         Reviewed by Eric Seidel.
72050
72051         Show Fonts as Yellow in the network timeline.
72052
72053         * page/inspector/NetworkPanel.js:
72054         * page/inspector/inspector.css:
72055
72056 2007-11-21  Dan Bernstein  <mitz@apple.com>
72057
72058         Reviewed by Eric Seidel.
72059
72060         - fix <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)
72061
72062         Test: fast/repaint/subtree-root-skipped.html
72063
72064         * page/FrameView.cpp:
72065         (WebCore::FrameViewPrivate::FrameViewPrivate): Initialize the layout
72066         root to 0.
72067         (WebCore::FrameView::layoutRoot): Changed to return a RenderObject
72068         instead of a Node.
72069         (WebCore::FrameView::layout): Changed for layout root being a renderer
72070         rather than a DOM node. Also replaced clearing the repaint rects
72071         set with asserting that it is empty if this is the top-level call to
72072         layout(). If it is not, the set may contain rects from enclosing
72073         layout() and those should not be removed.
72074         (WebCore::FrameView::scheduleRelayout): Changed for layout root being
72075         a renderer rather than a DOM node.
72076         (WebCore::isObjectAncestorContainerOf): Added this helper function that
72077         tests whether one object will be marked by calling
72078         markContainingBlocksForLayout() on the other.
72079         (WebCore::FrameView::scheduleRelayoutOfSubtree): Changed for layout
72080         root being a renderer rather than a DOM node. Changed the check if new
72081         and current layout roots are on the same path from the root to use
72082         the subgraph of the render tree defined by container()hood instead of
72083         the DOM tree and parenthood.
72084         * page/FrameView.h:
72085         * rendering/RenderBox.cpp: 
72086         (WebCore::RenderBox::calcWidth): Changed for layout root being a
72087         renderer rather than a DOM node.
72088         * rendering/RenderObject.cpp:
72089         (WebCore::RenderObject::~RenderObject): Added an assertion that the
72090         object being deleted is not currently the layout root.
72091         (WebCore::RenderObject::scheduleRelayout): Changed for layout root being
72092         a renderer rather than a DOM node.
72093
72094 2007-11-21  Mark Rowe  <mrowe@apple.com>
72095
72096         Reviewed by Eric.
72097
72098         Fix WebCore to build without warnings under GCC 4.2.
72099
72100         * Configurations/Base.xcconfig:
72101         * css/CSSRuleList.cpp:
72102         (WebCore::CSSRuleList::deleteRule):
72103         * css/CSSStyleSelector.cpp:
72104         (WebCore::CSSStyleSelector::locateSharedStyle):
72105         * html/HTMLParser.cpp:
72106         (WebCore::HTMLParser::allowNestedRedundantTag):
72107         * rendering/RenderBlock.cpp:
72108         (WebCore::RenderBlock::fillInlineSelectionGaps):
72109         (WebCore::RenderBlock::fillBlockSelectionGaps):
72110         * rendering/RenderLayer.cpp:
72111         (WebCore::RenderLayer::stackingContext):
72112         (WebCore::RenderLayer::enclosingPositionedAncestor):
72113         (WebCore::RenderLayer::transparentAncestor):
72114         * rendering/RenderStyle.cpp:
72115         (WebCore::BackgroundLayer::fillUnsetProperties):
72116         (WebCore::Transition::fillUnsetProperties):
72117         * rendering/RenderText.cpp:
72118         (WebCore::RenderText::containsOnlyWhitespace):
72119         * rendering/bidi.cpp:
72120         (WebCore::RenderBlock::determineStartPosition):
72121
72122 2007-11-21  Alp Toker  <alp@atoker.com>
72123
72124         Reviewed by Mark Rowe.
72125
72126         http://bugs.webkit.org/show_bug.cgi?id=16071
72127         Curl backend handles EINTR incorrectly
72128
72129         Defer timers during select() to avoid interruption by timer signals.
72130
72131         * platform/network/curl/ResourceHandleManager.cpp:
72132         (WebCore::ResourceHandleManager::downloadTimerCallback):
72133
72134 2007-11-21  Mark Rowe  <mrowe@apple.com>
72135
72136         Reviewed by Tim Hatcher.
72137
72138         Changes due to <rdar://problem/5602936> Need to resolve new GCC 4.2 warnings
72139
72140         Update format strings to use format specifiers that match the argument types.
72141
72142         * loader/icon/IconDatabase.cpp:
72143         (WebCore::IconDatabase::performURLImport):
72144         (WebCore::IconDatabase::writeToDatabase):
72145         * platform/mac/TextCodecMac.cpp:
72146         (WebCore::TextCodecMac::decode):
72147         * storage/Database.cpp:
72148         (WebCore::Database::deliverAllPendingCallbacks):
72149
72150 2007-11-21  Xan Lopez  <xan@gnome.org>
72151
72152         Reviewed by Alp Toker.
72153
72154         Clarify scroll event processing with a comment.
72155
72156         * platform/gtk/PlatformScrollBarGtk.cpp:
72157         (gtkScrollEventCallback):
72158
72159 2007-11-21  Timothy Hatcher  <timothy@apple.com>
72160
72161         Reviewed by Adam Roben.
72162
72163         Bug 16085: Web Inspector's Network Timeline graph code clean up and misc. fixes
72164         http://bugs.webkit.org/show_bug.cgi?id=16085
72165         
72166         Changes include:
72167         - Refactor the drawing code as nested functions instead of global functions.
72168         - Compute the segment percentages only once per call to drawSummaryGraph.
72169         - Account for percentages that rounded down to total less-than 100%.
72170         - Draw the pill shadow better using the canvas shadow drawing properties.
72171         - Removes a couple canvas context saves and restores.
72172
72173         * page/inspector/NetworkPanel.js:
72174
72175 2007-11-21  Alexey Proskuryakov  <ap@webkit.org>
72176
72177         Reviewed by Adam Roben.
72178
72179         http://bugs.webkit.org/show_bug.cgi?id=16056
72180         Unicode not being interpreted correctly in Web Inspector source view
72181
72182         Cannot be tested automatically.
72183
72184         * loader/CachedCSSStyleSheet.cpp:
72185         (WebCore::CachedCSSStyleSheet::encoding):
72186         * loader/CachedCSSStyleSheet.h:
72187         * loader/CachedResource.h:
72188         (WebCore::CachedResource::encoding):
72189         * loader/CachedScript.cpp:
72190         (WebCore::CachedScript::encoding):
72191         * loader/CachedScript.h:
72192         * loader/CachedXBLDocument.cpp:
72193         (WebCore::CachedXBLDocument::encoding):
72194         * loader/CachedXBLDocument.h:
72195         * loader/CachedXSLStyleSheet.cpp:
72196         (WebCore::CachedXSLStyleSheet::encoding):
72197         * loader/CachedXSLStyleSheet.h:
72198         Teach textual CachedResources to report their encodings.
72199
72200         * page/InspectorController.cpp:
72201         (WebCore::addSourceToFrame):
72202         (WebCore::updateResourceResponse):
72203         Use the actual encoding - the network layer has little idea about it.
72204
72205 2007-11-20  Mark Rowe  <mrowe@apple.com>
72206
72207         Reviewed by Maciej Stachowiak.
72208
72209         Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities)
72210         http://bugs.webkit.org/show_bug.cgi?id=16076
72211
72212         XMLTokenizer was calling CharacterData::appendData twice per entity in the fragment of XML being
72213         parsed (once for text before the entity, once for the entity itself).  This triggered O(n^2) copying
72214         of the CharacterData's string due to resizing.  We now prevent this happening by buffering all the
72215         content for a given Text node in the XMLTokenizer before sending it out to the node in a single go.
72216
72217         * dom/XMLTokenizer.cpp:
72218         (WebCore::XMLTokenizer::characters): Append the characters to the buffer.
72219         (WebCore::XMLTokenizer::endDocument): Ensure the buffer is flushed when the document has ended.
72220         (WebCore::endDocumentHandler):
72221         (WebCore::XMLTokenizer::enterText):
72222         (WebCore::XMLTokenizer::exitText): Append the contents of the buffer to the node.
72223         (WebCore::XMLTokenizer::initializeParserContext): Add the endDocument handler.
72224         (WebCore::parseXMLDocumentFragment): Force endDocument to be called when parsing a fragment to ensure
72225         that the buffer gets flushed to the node.
72226         * dom/XMLTokenizer.h:
72227
72228 2007-11-20  Timothy Hatcher  <timothy@apple.com>
72229
72230         Reviewed by Mark Rowe.
72231
72232         Animate the status area and tip balloons in the Web Inspector
72233         with CSS animations.
72234
72235         * page/inspector/NetworkPanel.js:
72236         * page/inspector/inspector.css:
72237         * page/inspector/inspector.js:
72238
72239 2007-11-20  Kevin Ollivier  <kevino@theolliviers.com>
72240
72241         wx build fix for Windows. Don't use WebCore/move-js-headers.sh as
72242         it indiscriminately copies any headers inside JavaScriptCore,
72243         which includes Tiger ICU headers. 
72244
72245         * webcore-base.bkl:
72246         Remove references to the WebCore/include dir generated by
72247         move-js-headers.sh, and also get headers from JavaScriptCore
72248         directly rather than from WebCore/ForwardingHeaders. 
72249
72250 2007-11-20  Alp Toker  <alp@atoker.com>
72251
72252         Reviewed by Mark Rowe.
72253
72254         Avoid pointlessly mallocing and freeing this transform matrix.
72255
72256         * platform/gtk/FontPlatformDataGtk.cpp:
72257         (WebCore::FontPlatformData::FontPlatformData):
72258
72259 2007-11-20  Naiem Shaik  <naiem.shaik@gmail.com>
72260
72261         Reviewed by Alp Toker.
72262
72263         http://bugs.webkit.org/show_bug.cgi?id=15763
72264         [GTK] Enter key does not take to the link highlighted.
72265
72266         Add missing keycode cases.
72267
72268         * platform/gtk/KeyEventGtk.cpp:
72269         (WebCore::keyIdentifierForGdkKeyCode):
72270         (WebCore::windowsKeyCodeForKeyEvent):
72271         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
72272
72273 2007-11-20  Mark Rowe  <mrowe@apple.com>
72274
72275         Reviewed by Sam Weinig.
72276
72277         Fix http://bugs.webkit.org/show_bug.cgi?id=16074
72278         Bug 16074: execCommand("InsertHorizontalRule", false, "") results in id="" being inserted
72279
72280         For consistency with InsertOrderedList and InsertUnorderedList a value parameter of "" should
72281         not result in an id being set.
72282
72283         * editing/JSEditor.cpp: Don't set the id attribute if value is empty.
72284
72285 2007-11-20  Dan Bernstein  <mitz@apple.com>
72286
72287         Reviewed by Adam Roben.
72288
72289         - fix <rdar://problem/5090708> Textareas render broken-looking scrollbars when too short to show full scrollbar
72290
72291         * platform/win/PlatformScrollBar.h:
72292         * platform/win/PlatformScrollBarSafari.cpp:
72293         Added the "hit inset" constants (representing how far the track eats
72294         into the button).
72295         (WebCore::PlatformScrollbar::paint): Changed to paint the buttons and
72296         the thumb only if they should be showing.
72297         (WebCore::PlatformScrollbar::hasButtons): Added. Returns whether the
72298         arrows should be drawn.
72299         (WebCore::PlatformScrollbar::hasThumb): Added. Returns whether the thumb
72300         should be drawn.
72301         (WebCore::PlatformScrollbar::forwardButtonRect):
72302         (WebCore::PlatformScrollbar::trackRect): Changed to return the entire
72303         bounds of the scrollbar if the scrollbar has no buttons.
72304         (WebCore::PlatformScrollbar::paintTrack): Changed to paint a disabled
72305         track along the entire scrollbar if it has not buttons.
72306         (WebCore::PlatformScrollbar::hitTest): Changed to hit test only the
72307         parts that the scrollbar has in its current dimensions.
72308
72309 2007-11-20  Mark Rowe  <mrowe@apple.com>
72310
72311         Reviewed by Alp Toker.
72312
72313         * config.h: Change #if to #ifdef to silence warnings on non-Apple platforms.
72314
72315 2007-11-20  Simon Hausmann  <hausmann@kde.org>
72316
72317         Reviewed by Adam Treat <treat@kde.org>.
72318
72319         Remove static linkage of QtWebKit against the ICO image format plugin.
72320         Instead build the support for the ICO image format as a proper standalone qt image format plugin and install it.
72321
72322         * WebCore.pro:
72323         * platform/graphics/qt/ImageDecoderQt.cpp:
72324
72325 2007-11-20  David D. Kilzer  <ddkilzer@webkit.org>
72326
72327         no-svg build broken after r27278
72328         <http://bugs.webkit.org/show_bug.cgi?id=16061>
72329
72330         Reviewed by Eric.
72331
72332         * bindings/scripts/CodeGeneratorObjC.pm: Always generate DOMHTMLEmbedElementPrivate.h
72333         and DOMHTMLObjectElementPrivate.h for no-svg build.
72334
72335 2007-11-20  Adam Treat  <treat@kde.org>
72336
72337         Reviewed by Simon.
72338
72339         * Don't use so much heap memory.
72340
72341         * platform/graphics/qt/ImageDecoderQt.cpp:
72342         * platform/graphics/qt/ImageDecoderQt.h:
72343         * platform/graphics/qt/ImageSourceQt.cpp:
72344         (WebCore::ImageSource::createFrameAtIndex):
72345
72346 2007-11-20  Lars Knoll  <lars@trolltech.com>
72347
72348         Reviewed by Simon.
72349
72350         Fix text break interators.
72351         
72352         The break iterators where trying to be smart about the input
72353         string and caching their results. Unfortunately a pointer/string length
72354         comparison is not good enough in all cases (since some input is stack based
72355         temp strings). Removed the caching but at the same time started to use a more
72356         efficient constructor of QTextBoundaryFinder that doesn't need to malloc for
72357         most strings.
72358         
72359         Fixes two test cases that test "text-transform: capitalize".
72360
72361         * platform/qt/TextBreakIteratorQt.cpp:
72362         (WebCore::wordBreakIterator):
72363         (WebCore::characterBreakIterator):
72364         (WebCore::lineBreakIterator):
72365         (WebCore::sentenceBreakIterator):
72366
72367 2007-11-20  Adam Treat  <treat@kde.org>
72368
72369         Reviewed by George.
72370
72371         * Make gif animations work for instance.
72372
72373         * platform/graphics/qt/ImageDecoderQt.cpp:
72374         (WebCore::ImageDecoderQt::reset):
72375         (WebCore::ImageDecoderQt::setData):
72376         (WebCore::ImageDecoderQt::frameCount):
72377         (WebCore::ImageDecoderQt::repetitionCount):
72378         * platform/graphics/qt/ImageDecoderQt.h:
72379
72380 2007-11-20  Adam Treat  <treat@kde.org>
72381
72382         * Build in release mode
72383
72384         * platform/NotImplemented.h:
72385
72386 2007-11-20  Adam Treat  <treat@kde.org>
72387
72388         Reviewed by Simon and George.
72389
72390         * Be quiet and allow suppression of NotImplemented calls at runtime.
72391
72392         * platform/NotImplemented.h:
72393
72394 2007-11-19  Doug Turner  <dougt@meer.net>
72395
72396         Reviewed by Alp Toker.
72397
72398         http://bugs.webkit.org/show_bug.cgi?id=16054
72399         Crash when GlyphPage::fill is called with more than 256 bytes of data
72400
72401         http://bugs.webkit.org/show_bug.cgi?id=14446
72402         [GDK] Crash on http://www.wikipedia.org/
72403
72404         setGlyphDataForIndex() uses a fixed array of size 256 which we can't
72405         exceed. We need to return failure if the buffer has Unicode
72406         supplementary characters for now.
72407
72408         This strategy matches the Win port, which also doesn't support this
72409         case yet.
72410
72411         Add an assertion so nobody makes this mistake again.
72412
72413         * platform/GlyphPageTreeNode.h:
72414         (WebCore::GlyphPage::setGlyphDataForIndex):
72415         * platform/gtk/GlyphPageTreeNodeGtk.cpp:
72416         (WebCore::GlyphPage::fill):
72417
72418 2007-11-19  Doug Turner  <dougt@meer.net>
72419
72420         Reviewed by Timothy Hatcher.
72421
72422         http://bugs.webkit.org/show_bug.cgi?id=16050
72423         sqlite3_prepare16_v2 build bustage.
72424
72425         Using the correct SQLITE_VERSION_NUMBER around sqlite_prepare16_v2
72426         to fix build bustage.
72427
72428         * platform/sql/SQLiteStatement.cpp:
72429         (WebCore::SQLiteStatement::prepare):
72430
72431 2007-11-19  Mark Rowe  <mrowe@apple.com>
72432
72433         Build fix.  Don't over-qualify the constructor name.
72434
72435         * storage/DatabaseDetails.h:
72436
72437 2007-11-19  Brady Eidson <beidson@apple.com>
72438
72439         Reviewed by Maciej
72440
72441         Stub out the WebCore parts of the WebKit API
72442
72443         * WebCore.base.exp:
72444         * WebCore.xcodeproj/project.pbxproj:
72445
72446         * storage/DatabaseDetails.h: Added.  Simple container for vitals on a specific database
72447         (WebCore::DatabaseDetails::DatabaseDetails::DatabaseDetails):
72448         (WebCore::DatabaseDetails::DatabaseDetails):
72449         (WebCore::DatabaseDetails::isValid):
72450         (WebCore::DatabaseDetails::name):
72451         (WebCore::DatabaseDetails::version):
72452         (WebCore::DatabaseDetails::displayName):
72453         (WebCore::DatabaseDetails::expectedUsage):
72454         (WebCore::DatabaseDetails::currentUsage):
72455
72456         * storage/DatabaseTracker.cpp:  Added various methods for API usage
72457         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
72458         (WebCore::DatabaseTracker::usageForOrigin):
72459         (WebCore::DatabaseTracker::quotaForOrigin):
72460         (WebCore::DatabaseTracker::setQuota):
72461         * storage/DatabaseTracker.h:
72462
72463 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
72464
72465         wx port build fix.
72466
72467         * platform/graphics/wx/AffineTransformWx.cpp:
72468         (WebCore::AffineTransform::operator== ):
72469         m_transform is only available when using wxGraphicsContext.
72470
72471 2007-11-19  Alp Toker  <alp@atoker.com>
72472
72473         Reviewed by Mark Rowe.
72474
72475         GTK+ drawing fixes.
72476
72477         Add a check to avoid crashing when the GraphicsContext is not
72478         associated with a GdkDrawable. This was noticed when adding printing
72479         support but might be triggered in other situations too.
72480
72481         Do not render themes when painting is disabled. This is an
72482         optimisation for cases where GraphicsContext is used to calculate page
72483         dimensions etc. without actually rendering.
72484
72485         * platform/graphics/cairo/GraphicsContextCairo.cpp:
72486         (WebCore::GraphicsContext::gdkDrawable):
72487         * platform/gtk/RenderThemeGtk.cpp:
72488         (WebCore::paintMozWidget):
72489
72490 2007-11-13  Rahul Abrol  <ra5ul@comcast.net>
72491
72492         Reviewed by Tim Hatcher.
72493
72494         http://bugs.webkit.org/show_bug.cgi?id=15977
72495         Resizing images preference now toggles default image state.
72496
72497         * loader/ImageDocument.cpp:
72498         (WebCore::ImageDocument::ImageDocument):
72499         (WebCore::ImageDocument::createDocumentStructure):
72500         (WebCore::ImageDocument::imageChanged):
72501
72502 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
72503
72504         Update wx port build sources with recent changes, update
72505         wx FontPlatformData to be a class (MSVC7 gets confused
72506         otherwise...) and implement its hash() method.
72507
72508         Reviewed by Adam.
72509
72510         * WebCoreSources.bkl:
72511         * platform/wx/FontPlatformData.h:
72512         (WebCore::FontPlatformData::hash):
72513
72514 2007-11-19  Julien Chaffraix  <julien.chaffraix@gmail.com>
72515
72516         Reviewed by Darin.
72517
72518         http://bugs.webkit.org/show_bug.cgi?id=12194
72519         Bug 12194: Trying to access XMLHttpRequest.responseText or responseXML when they 
72520         are not available should raise an exception
72521
72522         Tests: http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
72523                http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html
72524
72525         * bindings/js/JSXMLHttpRequest.cpp:
72526         (KJS::JSXMLHttpRequest::getValueProperty):
72527         * xml/XMLHttpRequest.cpp:
72528         (WebCore::XMLHttpRequest::getResponseText):
72529         (WebCore::XMLHttpRequest::getResponseXML):
72530         * xml/XMLHttpRequest.h:
72531
72532 2007-11-19  Peter Kasting  <pkasting@google.com>
72533
72534         Reviewed by Darin Adler.
72535
72536         http://bugs.webkit.org/show_bug.cgi?id=15971
72537         The GIF decoder should not fail decoding if the caller asks it to
72538         decode again when no new data has arrived since the last call.
72539
72540         * platform/image-decoders/gif/GIFImageReader.cpp:
72541         (GIFImageReader::read):
72542
72543 2007-11-18  Brady Eidson <beidson@apple.com>
72544
72545         Reviewed by Eric
72546
72547         Fix a crash hashing a default SecurityOriginData object 
72548
72549         * storage/DatabaseTracker.cpp:
72550         (WebCore::SecurityOriginDataHash::hash): The default object has some default strings with NULL
72551           StringImpls - don't try to hash those!
72552
72553 2007-11-18  Timothy Hatcher  <timothy@apple.com>
72554
72555         Reviewed by Sam Weinig.
72556
72557         Bug 16043: Remove InspectorController.log now that console.log works
72558         http://bugs.webkit.org/show_bug.cgi?id=16043
72559
72560         Remove the last uses of InspectorController.log. Once use was no longer needed,
72561         checking an erro case that can't happen anymore. The other case now uses console.error.
72562
72563         * page/InspectorController.cpp: Remove the log function.
72564         (WebCore::InspectorController::windowScriptObjectAvailable): Remove the log function from
72565         InspectorController script class.
72566         * page/inspector/DocumentPanel.js: Remove a use of InspectorController.log that isn't needed.
72567         * page/inspector/Panel.js: Change InspectorController.log to console.log and early return.
72568
72569 2007-11-18  Timothy Hatcher  <timothy@apple.com>
72570
72571         Reviewed by Brady.
72572
72573         Bug 16041: REGRESSION: the Database panel in the Inspector stopped showing errors
72574         http://bugs.webkit.org/show_bug.cgi?id=16041
72575
72576         * page/inspector/DatabasePanel.js: Implement error callbacks to pass to executeSql()
72577           and transaction(). Refactored some code for the success and error callbacks to use.
72578
72579 2007-11-18  Alexey Proskuryakov  <ap@webkit.org>
72580
72581         Reviewed by Maciej.
72582
72583         <rdar://problem/5546393> Whitespace handling doesn't match HTML5.
72584
72585         HTML5 definition is the same as MSIE's, with the exception that the latter strips null
72586         characters. Firefox also treats U+0008 as whitespace, but not U+000B or U+000C.
72587
72588         Test: fast/parser/html-whitespace.html
72589
72590         * html/HTMLTokenizer.cpp:
72591         (WebCore::HTMLTokenizer::parseSpecial):
72592         (WebCore::HTMLTokenizer::parseTag):
72593         Use isASCIISpace, which matches HTML5 definition of whitespace, and also what we use to
72594         check for whitespace almost everywhere.
72595
72596 2007-11-17  Mark Rowe  <mrowe@apple.com>
72597
72598         Reviewed by Darin Adler.
72599
72600         Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
72601              <rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
72602              http://bugs.webkit.org/show_bug.cgi?id=16033
72603
72604         Update for changes in Interpreter method signatures.
72605
72606         * bindings/js/kjs_binding.cpp:
72607         (KJS::ScriptInterpreter::ScriptInterpreter):
72608         * bindings/js/kjs_window.cpp:
72609         (KJS::Window::clear):
72610
72611 2007-11-17  Timothy Hatcher  <timothy@apple.com>
72612
72613         Reviewed by Mark Rowe.
72614
72615         Bug 13470: i18n: The Web Inspector is not localizable
72616         http://bugs.webkit.org/show_bug.cgi?id=13470
72617
72618         Add support for localization to the Web Inspector. Clients need to
72619         implement localizedStringsURL() to return the URL of the
72620         InspectorLocalizedStrings.js that best matches the user's language.
72621
72622         * English.lproj: Added.
72623         * English.lproj/InspectorLocalizedStrings.js: Added.
72624         * WebCore.xcodeproj/project.pbxproj: Add InspectorLocalizedStrings.js.
72625         * page/InspectorClient.h: Add localizedStringsURL.
72626         * page/InspectorController.cpp: Add localizedStringsURL that calls
72627           the client. Also added a version exposed to JavaScript.
72628         * page/InspectorController.h: Add localizedStringsURL.
72629         * page/inspector/ConsolePanel.js: Call WebInspector.UIString
72630           for user visible strings.
72631         * page/inspector/DatabasePanel.js: Ditto.
72632         * page/inspector/DocumentPanel.js: Ditto.
72633         * page/inspector/ImagePanel.js: Ditto.
72634         * page/inspector/MetricsSidebarPane.js: Ditto.
72635         * page/inspector/NetworkPanel.js: Ditto.
72636         * page/inspector/Panel.js: Ditto.
72637         * page/inspector/PropertiesSidebarPane.js: Ditto.
72638         * page/inspector/Resource.js: Ditto.
72639         * page/inspector/ResourceCategory.js: Ditto.
72640         * page/inspector/SourcePanel.js: Ditto.
72641         * page/inspector/StylesSidebarPane.js: Ditto.
72642         * page/inspector/inspector.css: Use pre-wrap so database errors can use \n.
72643         * page/inspector/inspector.html: Remove some user visible strings.
72644         * page/inspector/inspector.js: Added WebInspector.UIString and call
72645           WebInspector.UIString for user visible strings. Some code needed to be 
72646           moved to WebInspector.loaded to use UIString after the localized strings
72647           get loaded.
72648         * platform/graphics/svg/SVGImageEmptyClients.h:
72649         (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin): Remove WebCore:: prefix.
72650         (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
72651         (WebCore::SVGEmptyInspectorClient::localizedStringsURL): Add empty stub.
72652         (WebCore::SVGEmptyInspectorClient::highlight): Remove WebCore:: prefix.
72653         (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
72654
72655 2007-11-17  Timothy Hatcher  <timothy@apple.com>
72656
72657         Reviewed by Adam.
72658
72659         Reworte String.sprintf to fix many bad bugs and to not use RegExp. Also added
72660         String.vsprintf so it can be used later for the localization function.
72661
72662         This version only supports argument reordering, precision for floats, and these
72663         format characters: d, f, s and @. Any unsupported format characters are logged
72664         and substituted like strings.
72665
72666         * page/inspector/utilities.js:
72667
72668 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
72669
72670         Windows build fix.
72671
72672         * editing/Editor.h: Made canSmartCopyOrDelete public, as Windows WebView still needs it.
72673
72674 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
72675
72676         Reviewed by Darin.
72677
72678         http://bugs.webkit.org/show_bug.cgi?id=15969
72679         Eliminate Editor::deleteRange()
72680
72681         No change in functionality.
72682
72683         * editing/CompositeEditCommand.h: Removed unimplemented deleteKeyPressed().
72684
72685         * editing/Editor.cpp:
72686         (WebCore::Editor::deleteWithDirection):
72687         (WebCore::Editor::cut):
72688         (WebCore::Editor::performDelete):
72689         * editing/Editor.h:
72690         Moved relevant Editor::deleteRange() functionality to its callers.
72691         Removed deleteSelectionWithSmartDelete(void), which was more confusing than helpful
72692         in my opinion.
72693
72694         * editing/mac/EditorMac.mm:
72695         (WebCore::initializeKillRingIfNeeded):
72696         (WebCore::Editor::addToKillRing):
72697         (WebCore::Editor::yank):
72698         (WebCore::Editor::yankAndSelect):
72699         (WebCore::Editor::setMark):
72700         (WebCore::unionDOMRanges):
72701         (WebCore::Editor::deleteToMark):
72702         (WebCore::Editor::selectToMark):
72703         (WebCore::Editor::swapWithMark):
72704         Pushed kill ring handling down from WebCore.
72705
72706         * page/mac/WebCoreFrameBridge.h:
72707         * page/mac/WebCoreFrameBridge.mm:
72708         Removed setMarkDOMRange (the corresponding getter is still needed).
72709
72710         * WebCore.base.exp: No longer need to export Editor::deleteRange() and Editor::insertTextWithoutSendingTextEvent().
72711         Export the new kill ring functions.
72712
72713 2007-11-16  Ryan Leavengood  <leavengood@gmail.com>
72714
72715         Reviewed by David Kilzer.
72716
72717         Build fix: the needed headers for POSIX file functions were not
72718         included.
72719
72720         * platform/posix/FileSystemPOSIX.cpp:
72721
72722 2007-11-16  Dan Bernstein  <mitz@apple.com>
72723
72724         Reviewed by Darin Adler.
72725
72726         - fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
72727           REGRESSION: Incomplete repaint of CSS image substitution
72728
72729         Test: fast/repaint/clip-with-layout-delta.html
72730
72731         * rendering/LayoutState.cpp:
72732         (WebCore::LayoutState::LayoutState): Account for layout delta when
72733         pushing additional clip.
72734
72735 2007-11-16  Antti Koivisto  <antti@apple.com>
72736
72737         Reviewed by Adele.
72738         
72739         Seeking related fixes, updates to match the latest specification
72740         - rename loopCount of HTMLMediaElement to playCount
72741         - add explicit seeking attribute to HTMLMediaElement to get semantics right
72742         - implement the specification behavior that currentTime must immediately return seeked position in HTMLMediaElement 
72743           instead of MoviePrivateQTKit 
72744         - fix broken behavior when seeking past end of the media, add tests
72745         - replace Movie didEnd callback with broader timeChanged callback (which gets called in didEnd case too)
72746         - use setDelayCallbacks: in various MoviePrivateQTKit methods to avoid bug prone synchronous callbacks from QT, make
72747           HTMLMediaElement not depend on synchronous callbacks
72748         - do some cleanups and simplifications in MoviePrivateQTKit, get rid of m_rateBeforeSeek and m_blockStateUpdate variables
72749
72750         Tests: http/tests/media/video-seekable-stall.html
72751                media/video-seeking.html
72752                media/video-seek-past-end-paused.html
72753                media/video-seek-past-end-playing.html
72754
72755         * html/HTMLAttributeNames.in: 
72756         * html/HTMLMediaElement.cpp:
72757         (WebCore::HTMLMediaElement::HTMLMediaElement):
72758         (WebCore::HTMLMediaElement::load):
72759         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
72760         (WebCore::HTMLMediaElement::setReadyState):
72761         (WebCore::HTMLMediaElement::seek):
72762         (WebCore::HTMLMediaElement::seeking):
72763         (WebCore::HTMLMediaElement::currentTime):
72764         (WebCore::HTMLMediaElement::ended):
72765         (WebCore::HTMLMediaElement::play):
72766         (WebCore::HTMLMediaElement::pause):
72767         (WebCore::HTMLMediaElement::playCount):
72768         (WebCore::HTMLMediaElement::setPlayCount):
72769         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
72770         (WebCore::HTMLMediaElement::movieTimeChanged):
72771         (WebCore::HTMLMediaElement::endedPlayback):
72772         (WebCore::HTMLMediaElement::updateMovie):
72773         * html/HTMLMediaElement.h:
72774         * html/HTMLMediaElement.idl:
72775         * platform/graphics/Movie.cpp:
72776         (WebCore::Movie::timeChanged):
72777         * platform/graphics/Movie.h:
72778         (WebCore::MovieClient::movieTimeChanged):
72779         * platform/graphics/mac/MoviePrivateQTKit.h:
72780         * platform/graphics/mac/MoviePrivateQTKit.mm:
72781         (WebCore::MoviePrivate::MoviePrivate):
72782         (WebCore::MoviePrivate::load):
72783         (WebCore::MoviePrivate::play):
72784         (WebCore::MoviePrivate::pause):
72785         (WebCore::MoviePrivate::currentTime):
72786         (WebCore::MoviePrivate::seek):
72787         (WebCore::MoviePrivate::doSeek):
72788         (WebCore::MoviePrivate::cancelSeek):
72789         (WebCore::MoviePrivate::seekTimerFired):
72790         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
72791         (WebCore::MoviePrivate::paused):
72792         (WebCore::MoviePrivate::updateStates):
72793         (WebCore::MoviePrivate::timeChanged):
72794         (WebCore::MoviePrivate::didEnd):
72795
72796 2007-11-16  Anders Carlsson  <andersca@apple.com>
72797
72798         Reviewed by Adam.
72799
72800         <rdar://problem/5603832>
72801         XMLHttpRequest readyState 3 & responseText buffer issues.
72802
72803         * platform/network/cf/ResourceHandleCFNet.cpp:
72804         (WebCore::makeFinalRequest):
72805         Add new parameter which controls whether content sniffing should be turned off.
72806         
72807         (WebCore::ResourceHandle::loadResourceSynchronously):
72808         Always content sniff sync loads.
72809         
72810         * platform/network/cf/ResourceRequestCFNet.cpp:
72811         (WebCore::ResourceRequest::doUpdatePlatformRequest):
72812         If the ResourceRequest already has a backing CFURLRequest, make a copy of it. This preserves
72813         any properties set on the CFURLRequest.
72814
72815 2007-11-16  Jon Honeycutt  <jhoneycutt@apple.com>
72816
72817         Reviewed by Ollie.
72818
72819         <rdar://problem/5605175> Crash closing or leaving window with ViewPoint 
72820         Media player plugin
72821
72822         ViewPoint plugin requires that we pass a valid NPSavedData* to
72823         NPP_Destroy.
72824
72825         * plugins/win/PluginViewWin.cpp: Pass a valid NPSavedData* to
72826         NPP_Destroy. If the plugin allocates data, discard it
72827
72828 2007-11-16  Mark Rowe  <mrowe@apple.com>
72829
72830         Reviewed by Tim Hatcher.
72831
72832         Build WebCore as a sub-framework of WebKit in all configurations.
72833
72834         * Configurations/WebCore.xcconfig:
72835         * WebCore.xcodeproj/project.pbxproj:
72836
72837 2007-11-16  Doug Turner  <dougt@meer.net>
72838
72839         Reviewed by Alp.
72840
72841         http://bugs.webkit.org/show_bug.cgi?id=16018
72842         build bustage when building on debian 4.0
72843
72844         Fix build bustage on GTK+ with older versions of Pango.
72845
72846         Don't cache the return value since the docs say it can change.
72847
72848         * platform/gtk/Language.cpp:
72849         (WebCore::defaultLanguage):
72850
72851 2007-11-16  Brady Eidson  <beidson@apple.com>
72852
72853         Build fix
72854
72855         * platform/SecurityOriginData.h:
72856         (WebCore::operator!=): Whoops!
72857
72858 2007-11-16  Brady Eidson  <beidson@apple.com>
72859
72860         Reviewed by Sam
72861
72862         Further purify DatabaseTracker to use SecurityOriginData instead of "a String"
72863
72864         * WebCore.base.exp:
72865         * WebCore.xcodeproj/project.pbxproj:
72866         * WebCore.vcproj/WebCore.vcproj
72867         * WebCore.pro
72868
72869         * platform/SecurityOriginData.cpp: Added.
72870         (WebCore::SecurityOriginData::SecurityOriginData): Add a constructor that takes a "stringIdentifier"-style string,
72871           since that form is what will be stored in the Databases.db on disk
72872         (WebCore::SecurityOriginData::stringIdentifier):
72873         * platform/SecurityOriginData.h:
72874         (WebCore::SecurityOriginData::protocol):
72875         (WebCore::SecurityOriginData::host):
72876         (WebCore::SecurityOriginData::port):
72877
72878         * storage/DatabaseTracker.cpp:
72879         (WebCore::SecurityOriginDataHash::hash): Follow the pattern Darin set in FontCache.cpp to make a decent hash for 
72880           a SecurityOriginData object
72881         (WebCore::SecurityOriginDataHash::equal):
72882         (WebCore::SecurityOriginDataTraits::deletedValue): "file::1" will never exist in normal operation
72883         (WebCore::SecurityOriginDataTraits::emptyValue): "file::2" will never exist in normal operation
72884         (WebCore::DatabaseTracker::fullPathForDatabase):
72885         (WebCore::DatabaseTracker::populateOrigins):
72886         (WebCore::DatabaseTracker::origins):
72887         (WebCore::DatabaseTracker::addDatabase):
72888         * storage/DatabaseTracker.h:
72889
72890 2007-11-16  Alexey Proskuryakov  <ap@webkit.org>
72891
72892         Windows build fix.
72893
72894         * WebCore.vcproj/WebCore.vcproj: Removed VoidCallback.cpp, added JSCustomVoidCallback.{h,cpp}.
72895
72896 2007-11-16  Nikolas Zimmermann  <zimmermann@kde.org>
72897
72898         Reviewed by Eric.
72899
72900         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12290
72901
72902         Implement all SVGTextContentElement DOM methods.
72903         This is the last missing SVG text feature. SVG fonts is next.
72904
72905         Added testcase: svg/custom/text-dom-01-f.svg (tests all new methods)
72906
72907         * ksvg2/svg/SVGTextContentElement.cpp:
72908         (WebCore::cummulatedCharacterRangeLength):
72909         (WebCore::SVGInlineTextBoxQueryWalker::):
72910         (WebCore::SVGInlineTextBoxQueryWalker::SVGInlineTextBoxQueryWalker):
72911         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
72912         (WebCore::SVGInlineTextBoxQueryWalker::setQueryInputParameters):
72913         (WebCore::SVGInlineTextBoxQueryWalker::longResult):
72914         (WebCore::SVGInlineTextBoxQueryWalker::floatResult):
72915         (WebCore::SVGInlineTextBoxQueryWalker::pointResult):
72916         (WebCore::SVGInlineTextBoxQueryWalker::rectResult):
72917         (WebCore::SVGInlineTextBoxQueryWalker::stopProcessing):
72918         (WebCore::findInlineTextBoxInTextChunks):
72919         (WebCore::rootInlineBoxForTextContentElement):
72920         (WebCore::executeTextQuery):
72921         (WebCore::SVGTextContentElement::getNumberOfChars):
72922         (WebCore::SVGTextContentElement::getComputedTextLength):
72923         (WebCore::SVGTextContentElement::getSubStringLength):
72924         (WebCore::SVGTextContentElement::getStartPositionOfChar):
72925         (WebCore::SVGTextContentElement::getEndPositionOfChar):
72926         (WebCore::SVGTextContentElement::getExtentOfChar):
72927         (WebCore::SVGTextContentElement::getRotationOfChar):
72928         (WebCore::SVGTextContentElement::getCharNumAtPosition):
72929         (WebCore::SVGTextContentElement::selectSubString):
72930         * ksvg2/svg/SVGTextContentElement.h:
72931         * rendering/SVGInlineTextBox.h:
72932
72933 2007-11-15  Adele Peterson  <adele@apple.com>
72934
72935         Reviewed by Oliver.
72936
72937         Fix for <rdar://problem/5566652> CrashTracer: [USER] 3 crashes in Safari at HTMLSelectElement::menuListDefaultEventHandler (reproducible on mactc30.com)
72938
72939         Test: fast/forms/menulist-no-renderer-onmousedown.html
72940
72941         * html/HTMLSelectElement.cpp:
72942         (WebCore::HTMLSelectElement::defaultEventHandler): Nil check the renderer here.  None of the default behavior makes sense if there's no renderer.
72943         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Moved the nil check to the main defaultEventHandler.
72944
72945 2007-11-15  Antti Koivisto  <antti@apple.com>
72946
72947         Reviewed by Adele.
72948
72949         Fix <rdar://problem/5601598>
72950         The movie tag should do initialization on need and not during startup.
72951         
72952         Initialize Movie MIME type hash on demand
72953
72954         * platform/MIMETypeRegistry.cpp:
72955         (WebCore::initialiseSupportedMovieMIMETypes):
72956         (WebCore::initialiseMIMETypeRegistry):
72957         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
72958         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
72959
72960 2007-11-15  Mark Rowe  <mrowe@apple.com>
72961
72962         Build fix for Qt on Windows.
72963
72964         * xml/XPathStep.cpp:
72965         (WebCore::XPath::Step::nodesInAxis):
72966
72967 2007-11-15  Timothy Hatcher  <timothy@apple.com>
72968
72969         Reviewed by Mark Rowe.
72970
72971         Bug 14761: Web Inspector leaks JS objects and DOM nodes
72972         http://bugs.webkit.org/show_bug.cgi?id=14761
72973
72974         * page/InspectorController.cpp:
72975         (WebCore::InspectorController::~InspectorController):
72976         Change the tear down order so that inspectorDestroyed() is called before
72977         InspectorController private data is set to Zero. The inspectorDestroyed()
72978         call ends up closing the WebView and triggering InspectorController::close()
72979         which unprotects m_scriptObject. This didn't happen when the private data
72980         was cleared before calling inspectorDestroyed().
72981
72982 2007-11-15  Mark Rowe  <mrowe@apple.com>
72983
72984         Gtk build fix.
72985
72986         * WebCore.pro:
72987
72988 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
72989
72990         Reviewed by Darin.
72991
72992         http://bugs.webkit.org/show_bug.cgi?id=15989
72993         XPath queries with predicates incorrectly retains the current node across unions
72994
72995         Test: fast/xpath/union-context-node.xhtml
72996
72997         * xml/XPathPath.cpp:
72998         (WebCore::XPath::LocationPath::evaluate): Restore context after evaluation.
72999         * xml/XPathStep.cpp:
73000         (WebCore::XPath::Step::evaluate): Do not backup context, as we can easily re-create it.
73001
73002 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
73003
73004         Reviewed by Darin.
73005
73006         http://bugs.webkit.org/show_bug.cgi?id=15988
73007         REGRESSION: XPath preceding-axis query misses nested elements
73008
73009         Test: fast/xpath/preceding-axis.xhtml
73010
73011         * xml/XPathStep.cpp:
73012         (WebCore::XPath::Step::nodesInAxis): Hopefully correct this time.
73013
73014 2007-11-15  Timothy Hatcher  <timothy@apple.com>
73015
73016         Reviewed by Mark Rowe and Sam.
73017
73018         This corrects a couple of issues in the Web Inspector where selected search results
73019         would not have the right text color when the window is inactive or the results are focused.
73020
73021         * page/inspector/inspector.css:
73022
73023 2007-11-15  Timothy Hatcher  <timothy@apple.com>
73024
73025         Reviewed by Sam.
73026
73027         Bug 16007: REGRESSION: Disclosure triangle click zone for resource categories is off by 10 pixels
73028         http://bugs.webkit.org/show_bug.cgi?id=16007
73029
73030         Makes the click width an option on TreeElement and make ResourceCategoryTreeElement
73031         a true subclass of TreeElement. The click width for ResourceCategoryTreeElement is 
73032         20 pixels, and the default is 10 pixels.
73033
73034         * page/inspector/ResourceCategory.js:
73035         * page/inspector/treeoutline.js:
73036
73037 2007-11-15  Anders Carlsson  <andersca@apple.com>
73038
73039         Reviewed by Brady.
73040
73041         Pass a VoidCallback to Database::transaction and Database::changeVersion.
73042         This is not yet hooked up to the database machinery.
73043         
73044         * WebCore.vcproj/WebCore.vcproj:
73045         * bindings/js/JSDatabaseCustom.cpp:
73046         (WebCore::JSDatabase::changeVersion):
73047         (WebCore::JSDatabase::transaction):
73048         * storage/Database.cpp:
73049         (WebCore::Database::changeVersion):
73050         (WebCore::Database::transaction):
73051         * storage/Database.h:
73052
73053 2007-11-15  Timothy Hatcher  <timothy@apple.com>
73054
73055         Reviewed by Adam.
73056
73057         Bug 16005: Hovering in the breadcrumbs causes jumpy behavior
73058         http://bugs.webkit.org/show_bug.cgi?id=16005
73059
73060         Hovering over cumbs no longer exposes new crumbs. Clicking on a collapsed
73061         crumb will expose as many hidden crumbs as possible to the user. Also crumbs
73062         that have ID attributes will compact to the ID over the tag name.
73063
73064         * page/inspector/DocumentPanel.js:
73065
73066 2007-11-15  Anders Carlsson  <andersca@apple.com>
73067
73068         Reviewed by Sam.
73069
73070         Make the VoidCallback DOM interface behave more like our other DOM interfaces.
73071         
73072         * bindings/js/JSCustomVoidCallback.h: Added.
73073         * bindings/js/JSCustomVoidCallback.cpp: Added.
73074         (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
73075         (WebCore::JSCustomVoidCallback::handleEvent):
73076         VoidCallback implementation that wraps a JS object.
73077         
73078         (WebCore::toVoidCallback):
73079         New method that creates a VoidCallback implementation given a JS object.
73080         
73081         * bindings/scripts/CodeGeneratorJS.pm:
73082         Specify that VoidCallback can fail conversion and add a custom conversion function.
73083         
73084         * html/HTMLMediaElement.cpp:
73085         (WebCore::HTMLMediaElement::movieCuePointReached):
73086         Call handleEvent on the callback.
73087         
73088         (WebCore::HTMLMediaElement::removeCuePoint):
73089         Comment out parts of this method, it has already been removed in the HTML5 spec and it relies
73090         on overriding VoidCallback equality.
73091         
73092         * html/VoidCallback.cpp: Removed.
73093         
73094         * html/VoidCallback.h:
73095         (WebCore::VoidCallback::VoidCallback):
73096         (WebCore::VoidCallback::~VoidCallback):
73097         Make this an abstract class with a pure virtual handleEvent method.
73098         
73099 2007-11-15  Adam Roben  <aroben@apple.com>
73100
73101         Fix <rdar://5485108> Type-select while a <select> menu is open doesn't work
73102
73103         There were two things broken here:
73104            - WebView now requires a WM_CHAR message to be sent before it will
73105              create a keyboard event with a charCode, but we were only sending
73106              a WM_KEYDOWN event.
73107            - The popup menu was not updating its focused index when the
73108              <select> element's selectedIndex changed.
73109
73110         Reviewed by Adele.
73111
73112         * platform/win/PopupMenuWin.cpp:
73113         (WebCore::PopupMenu::updateFromElement): Update the focused index from
73114         the client's selected index.
73115         (WebCore::PopupWndProc): When we receive a WM_CHAR message for a
73116         printable character, manufacture a WM_KEYDOWN message for it and post
73117         both that and the current WM_CHAR message to the WebView.
73118
73119 2007-11-15  Brady Eidson  <beidson@apple.com>
73120
73121         Build fix
73122
73123         * storage/DatabaseTracker.cpp:
73124         (WebCore::DatabaseTracker::fullPathForDatabase):
73125         (WebCore::DatabaseTracker::databaseNamesForOrigin):
73126
73127 2007-11-15  Brady Eidson  <beidson@apple.com>
73128
73129         Reviewed by John and Sam
73130
73131         Stubbing out everything required for a WebKit API for databases
73132
73133         Biggest change in WebCore is that we passed around SecurityOriginData as the representation
73134         of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
73135         that has a different purpose besides just hanging on to the data)
73136
73137         * WebCore.base.exp:
73138         * WebCore.xcodeproj/project.pbxproj:
73139
73140         * platform/SecurityOrigin.cpp:
73141         * platform/SecurityOrigin.h:
73142         * platform/SecurityOriginData.h: Added.  Simple object to encapsulate the 3
73143           pieces of data in the SecurityOrigin tuple
73144         (WebCore::SecurityOriginData::SecurityOriginData):
73145         (WebCore::SecurityOriginData::protocol):
73146         (WebCore::SecurityOriginData::host):
73147         (WebCore::SecurityOriginData::port):
73148         (WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
73149           colon separated
73150
73151         * storage/Database.cpp:
73152         (WebCore::Database::Database): Use SecurityOriginData instead
73153
73154         * storage/DatabaseTracker.cpp:
73155         (WebCore::DatabaseTracker::fullPathForDatabase):
73156         (WebCore::DatabaseTracker::databaseNamesForOrigin):
73157         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
73158         (WebCore::DatabaseTracker::deleteDatabase):
73159         * storage/DatabaseTracker.h:
73160
73161         * storage/DatabaseTrackerClient.h: Added.  For dispatching notifications up to WebKit
73162         (WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
73163
73164 2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
73165
73166         Reviewed by Anders.
73167
73168         NP_ASFILEONLY streams should not buffer data in m_deliveryData.
73169
73170         * plugins/win/PluginStreamWin.cpp:
73171         (WebCore::PluginStreamWin::didReceiveData):
73172
73173 2007-11-15  Justin Garcia  <justin.garcia@apple.com>
73174
73175         Reviewed by Adele Peterson.
73176
73177         <rdar://problem/5497643> Crash at Node::isDescendantOf when switching out of Edit HTML Source mode
73178         
73179         A textarea that contained the selection was removed but the selection wasn't cleared,
73180         and we'd crash in code that assumed a valid, in-document selection.
73181
73182         * editing/SelectionController.cpp:
73183         (WebCore::removingNodeRemovesPosition): Clear the selection if the node being removed is the
73184         shadowAncestorNode of the node that contains the position, not just if the node being removed
73185         contains that shadowAncestorNode.
73186
73187 2007-11-15  Nikolas Zimmermann  <zimmermann@kde.org>
73188
73189         Reviewed by Maciej.
73190
73191         Fix logic error: calculateGlyphBoundaries takes RTL text into account itself, no need to adjust offsets before.
73192
73193         * rendering/SVGInlineTextBox.cpp:
73194         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
73195         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
73196
73197 2007-11-15  Anders Carlsson  <andersca@apple.com>
73198
73199         Reviewed by Brady.
73200
73201         <rdar://problem/5562470>
73202         openDatabase does not work when the version string is empty
73203
73204         If the string is empty, pass a real empty string to sqlite3_bind_text16.
73205         
73206         * platform/sql/SQLiteStatement.cpp:
73207         (WebCore::SQLiteStatement::bindText):
73208
73209 2007-11-15  Anders Carlsson  <andersca@apple.com>
73210
73211         Reviewed by Brady.
73212
73213         Get rid of SQLiteStatement::bindText and rename bindText16 to bindText.
73214         Remove the copy parameter from bindText and bindBlob and always copy passed in data instead.
73215
73216         * loader/icon/IconDatabase.cpp:
73217         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
73218         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
73219         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
73220         (WebCore::IconDatabase::addIconURLToSQLDatabase):
73221         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
73222         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
73223         * platform/sql/SQLiteStatement.cpp:
73224         (WebCore::SQLiteStatement::prepare):
73225         * platform/sql/SQLiteStatement.h:
73226         * storage/Database.cpp:
73227         (WebCore::setTextValueInDatabase):
73228         * storage/DatabaseTracker.cpp:
73229         (WebCore::DatabaseTracker::fullPathForDatabase):
73230         (WebCore::DatabaseTracker::databaseNamesForOrigin):
73231         (WebCore::DatabaseTracker::addDatabase):
73232
73233 2007-11-14  Brady Eidson <beidson@apple.com>
73234
73235         Rubberstamped by Sam
73236
73237         * platform/SecurityOrigin.h: Lets make this an unsigned short and *not* rule out half the possible ports?
73238
73239 2007-11-14  Alexey Proskuryakov  <ap@webkit.org>
73240
73241         Reviewed by Justin Garcia.
73242
73243         http://bugs.webkit.org/show_bug.cgi?id=15781
73244         REGRESSION: Ligatures fail to form when typing in Devanagari (because WebKit can't handle
73245         a marked range that covers half of a composed character sequence)
73246
73247         Test: platform/mac/editing/input/devanagari-ligature.html
73248
73249         This fix is somewhat of a hack, as it asks editing commands to work with invalid selections.
73250         However, this is not entirely new for them, as Roman accents are typed in a similar manner.
73251
73252         In the future, we probably want to make commands work with ranges (or Positions explicitly).
73253
73254         * editing/Editor.cpp:
73255         (WebCore::Editor::selectComposition): Force selection to composition range.
73256         * editing/InsertTextCommand.cpp:
73257         (WebCore::InsertTextCommand::input): Force ending selection to inserted text range.
73258
73259 2007-11-14  Beth Dakin  <bdakin@apple.com>
73260
73261         Reviewed by Hyatt.
73262
73263         Fix for <rdar://problem/5540855> REGRESSION: Combination of client-
73264         side image map and <a> tag is not working properly (15522)
73265
73266         * html/HTMLMapElement.cpp:
73267         (WebCore::HTMLMapElement::checkDTD): Allow <map> to have both block 
73268         and inline children rather than just block children. This matches 
73269         Firefox. 
73270
73271 2007-11-14  Justin Garcia  <justin.garcia@apple.com>
73272
73273         Reviewed by Alexey Proskuryakov.
73274
73275         <rdar://problem/5546763> CrashTracer: [USER] 362 crashes at WebCore::DeleteSelectionCommand::mergeParagraphs
73276
73277         * editing/DeleteSelectionCommand.cpp:
73278         (WebCore::DeleteSelectionCommand::handleGeneralDelete): 
73279         Removed an irrelevant FIXME.
73280         (WebCore::DeleteSelectionCommand::mergeParagraphs): If the block that contained the end of the selection
73281         hasn't been removed but has been emptied by deletion, we would to try and fail to create a VisiblePosition
73282         inside that block, which could lead to a crash.  If that happens, there's no content in the block to move,
73283         so just remove the block and return.
73284         Preserve m_needPlaceholder during the call to moveParagraphs, since it may change it and since it does
73285         its own placeholder insertion when necessary.
73286         (WebCore::DeleteSelectionCommand::doApply): No need to check m_needPlaceholder before calling mergeParagraphs,
73287         because it handles preserving m_needPlaceholder when it calls moveParagraphs.
73288         
73289 2007-11-14  Timothy Hatcher  <timothy@apple.com>
73290
73291         Reviewed by Adam.
73292
73293         Bug 14380: Long DOM ancestry breadcrumb lists get cut off
73294         http://bugs.webkit.org/show_bug.cgi?id=14380
73295
73296         The breadcumbs will now be compacted and collapsed if there isn't enough room
73297         to show everything. The collapsing algorithm always affects the crumbs that
73298         are farthest away from the selected or hovered crumb first.
73299
73300         * page/inspector/DocumentPanel.js:
73301         * page/inspector/inspector.css:
73302
73303 2007-11-14  Anders Carlsson  <andersca@apple.com>
73304
73305         Use the correct include path.
73306         
73307         * platform/Cursor.h:
73308         * plugins/win/PluginPackageWin.h:
73309         * plugins/win/PluginStreamWin.h:
73310
73311 2007-11-13  Brady Eidson  <beidson@apple.com>
73312
73313         Reviewed by Adam
73314
73315         http://bugs.webkit.org/show_bug.cgi?id=15976 - ASSERT/crash when SQLTransactionCallback throws an exception
73316
73317         * storage/SQLTransaction.cpp:
73318         (WebCore::SQLTransaction::deliverTransactionCallback): Make a transaction error for the case where the 
73319           SQLTransactionCallback fails
73320         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Don't assert on the error callback, but null check it
73321           and make the commit/rollback decision accordingly
73322
73323 2007-11-13  Oliver Hunt  <oliver@apple.com>
73324
73325         Reviewed by Anders.
73326
73327         <rdar://problem/5365030> calling dataWithPDFInsideRect on an SVG with a gradient crashes (14780)
73328
73329         When drawing directly to PDF CG may delay the use of the gradient function until outside our
73330         standard drawing path, which in turn could let us invalidate the caches before they were used.
73331
73332         To work around this we now store the cached stops in a RefCounted object, so that we can ensure
73333         that cache exists as long as required.
73334         
73335         * platform/graphics/svg/SVGPaintServerGradient.cpp:
73336         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
73337         * platform/graphics/svg/SVGPaintServerGradient.h:
73338         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
73339         (WebCore::cgGradientCallback):
73340         (WebCore::CGShadingRefForLinearGradient):
73341         (WebCore::CGShadingRefForRadialGradient):
73342         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
73343
73344 2007-11-13  Anders Carlsson  <andersca@apple.com>
73345
73346         Fix Windows build.
73347         
73348         * platform/Cursor.h:
73349         * plugins/win/PluginPackageWin.h:
73350         * plugins/win/PluginStreamWin.h:
73351
73352 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
73353
73354         Reviewed by Anders Carlsson.
73355
73356         Renamed Shared to RefCounted.
73357
73358         * ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h.
73359         * ForwardingHeaders/wtf/Shared.h: Removed.
73360         * bindings/js/JSSVGPODTypeWrapper.h:
73361         * css/CSSFontFace.h:
73362         * css/CSSRuleList.h:
73363         * css/Counter.h:
73364         * css/Pair.h:
73365         * css/Rect.h:
73366         * css/StyleBase.h:
73367         * css/StyleSheetList.h:
73368         * dom/Attribute.h:
73369         * dom/Clipboard.h:
73370         * dom/DOMImplementation.h:
73371         * dom/Event.h:
73372         * dom/EventListener.h:
73373         * dom/NamedNodeMap.h:
73374         * dom/NodeFilter.h:
73375         * dom/NodeFilterCondition.h:
73376         * dom/NodeList.h:
73377         * dom/QualifiedName.h:
73378         * dom/Range.h:
73379         * dom/RangeException.h:
73380         * dom/RegisteredEventListener.h:
73381         * dom/Traversal.h:
73382         * editing/EditCommand.h:
73383         * history/BackForwardList.h:
73384         * history/CachedPage.h:
73385         * history/HistoryItem.cpp:
73386         (WebCore::HistoryItem::HistoryItem):
73387         * history/HistoryItem.h:
73388         * html/CanvasGradient.h:
73389         * html/CanvasPattern.h:
73390         * html/CanvasRenderingContext2D.h:
73391         * html/CanvasStyle.h:
73392         * html/HTMLCollection.h:
73393         * html/MediaError.h:
73394         * html/TimeRanges.h:
73395         * html/VoidCallback.h:
73396         * ksvg2/css/SVGRenderStyle.cpp:
73397         (WebCore::SVGRenderStyle::SVGRenderStyle):
73398         * ksvg2/css/SVGRenderStyle.h:
73399         * ksvg2/css/SVGRenderStyleDefs.cpp:
73400         (StyleFillData::StyleFillData):
73401         (StyleStrokeData::StyleStrokeData):
73402         (StyleStopData::StyleStopData):
73403         (StyleTextData::StyleTextData):
73404         (StyleClipData::StyleClipData):
73405         (StyleMaskData::StyleMaskData):
73406         (StyleMarkerData::StyleMarkerData):
73407         (StyleMiscData::StyleMiscData):
73408         * ksvg2/css/SVGRenderStyleDefs.h:
73409         * ksvg2/svg/SVGAngle.cpp:
73410         (WebCore::SVGAngle::SVGAngle):
73411         * ksvg2/svg/SVGAngle.h:
73412         * ksvg2/svg/SVGAnimatedTemplate.h:
73413         * ksvg2/svg/SVGElementInstanceList.h:
73414         * ksvg2/svg/SVGException.h:
73415         * ksvg2/svg/SVGList.h:
73416         * ksvg2/svg/SVGPathSeg.h:
73417         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
73418         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
73419         * ksvg2/svg/SVGPreserveAspectRatio.h:
73420         * ksvg2/svg/SVGRenderingIntent.h:
73421         * ksvg2/svg/SVGTransform.h:
73422         * ksvg2/svg/SVGUnitTypes.h:
73423         * loader/DocumentLoader.h:
73424         * loader/FormState.h:
73425         * loader/ResourceLoader.h:
73426         * loader/TextResourceDecoder.h:
73427         * loader/icon/IconRecord.h:
73428         * page/BarInfo.h:
73429         * page/Console.h:
73430         * page/DOMSelection.h:
73431         * page/DOMWindow.h:
73432         * page/Frame.h:
73433         * page/History.h:
73434         * page/InspectorController.cpp:
73435         * page/Plugin.h:
73436         * page/Screen.h:
73437         * platform/ArrayImpl.h:
73438         * platform/CString.h:
73439         * platform/Cursor.h:
73440         * platform/DeprecatedValueListImpl.cpp:
73441         (WebCore::DeprecatedValueListImpl::Private::Private):
73442         * platform/FileChooser.h:
73443         * platform/FontFallbackList.h:
73444         * platform/FontFamily.cpp:
73445         (WebCore::FontFamily::FontFamily):
73446         * platform/FontFamily.h:
73447         * platform/FontSelector.h:
73448         * platform/GlyphPageTreeNode.h:
73449         * platform/PopupMenu.h:
73450         * platform/RegularExpression.cpp:
73451         * platform/ScrollBar.h:
73452         * platform/SharedBuffer.h:
73453         * platform/StringImpl.h:
73454         * platform/graphics/Icon.h:
73455         * platform/graphics/svg/SVGResource.h:
73456         * platform/network/FormData.cpp:
73457         (WebCore::FormData::FormData):
73458         * platform/network/FormData.h:
73459         * platform/network/ResourceHandle.h:
73460         * platform/network/ResourceHandleClient.h:
73461         * rendering/RenderStyle.cpp:
73462         (WebCore::StyleSurroundData::StyleSurroundData):
73463         (WebCore::StyleBoxData::StyleBoxData):
73464         (WebCore::StyleVisualData::StyleVisualData):
73465         (WebCore::StyleBackgroundData::StyleBackgroundData):
73466         (WebCore::StyleMarqueeData::StyleMarqueeData):
73467         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
73468         (WebCore::StyleMultiColData::StyleMultiColData):
73469         (WebCore::StyleTransformData::StyleTransformData):
73470         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
73471         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
73472         (WebCore::StyleInheritedData::StyleInheritedData):
73473         * rendering/RenderStyle.h:
73474         * rendering/SVGCharacterLayoutInfo.h:
73475         (WebCore::SVGCharOnPath::SVGCharOnPath):
73476         * storage/SQLResultSetRowList.h:
73477         * xml/DOMParser.h:
73478         * xml/XMLHttpRequest.h:
73479         * xml/XMLSerializer.h:
73480         * xml/XPathEvaluator.h:
73481         * xml/XPathExpression.h:
73482         * xml/XPathNSResolver.h:
73483         * xml/XPathResult.h:
73484         * xml/XPathValue.h:
73485         * xml/XSLTProcessor.h:
73486
73487 2007-11-13  Brady Eidson  <beidson@apple.com>
73488
73489         Reviewed by Mark Rowe
73490
73491         Remove errantly added files, and fix the idl (for reference's sake)
73492
73493         * storage/JSCustomSQLStatementCallback.h: Removed.
73494         * storage/JSCustomSQLStatementErrorCallback.h: Removed.
73495         * storage/JSCustomSQLTransactionCallback.h: Removed.
73496         * storage/JSCustomSQLTransactionErrorCallback.h: Removed.
73497         * storage/SQLStatementCallback.idl:
73498
73499 2007-11-13  Adam Roben  <aroben@apple.com>
73500
73501         Fix a bug and improve upon Brady's fix
73502
73503         Reviewed by Anders.
73504
73505         * bindings/js/JSSQLTransactionCustom.cpp:
73506         (WebCore::JSSQLTransaction::executeSql): Made the code a little
73507         clearer and more correct.
73508         * loader/icon/IconDatabase.cpp: Put parentheses around the expansion
73509         of IS_ICON_SYNC_THREAD() so that ASSERT_NOT_SYNC_THREAD() does the
73510         comparison it meant to.
73511
73512 2007-11-13  Sam Weinig  <sam@webkit.org>
73513
73514         Fix Qt and Gtk builds.
73515
73516         * WebCore.pro: Remove non-generated idl files.
73517
73518 2007-11-13  Mark Rowe  <mrowe@apple.com>
73519
73520         Remove removed file from the project.
73521
73522         * WebCore.pro:
73523
73524 2007-11-13  Brady Eidson  <beidson@apple.com>
73525
73526         Release build fix
73527
73528         * bindings/js/JSSQLTransactionCustom.cpp:
73529         (WebCore::JSSQLTransaction::executeSql):
73530
73531 2007-11-13  Adam Roben  <aroben@apple.com>
73532
73533         Add WindowMessageBroadcaster
73534
73535         This class is used to listen in on messages sent to HWNDs. Multiple
73536         WindowMessageListeners can be notified about messages sent to a single
73537         HWND, and one WindowMessageListener can listen to messages from
73538         multiple HWNDs.
73539
73540         Reviewed by Ada.
73541
73542         * WebCore.vcproj/WebCore.vcproj: Added new files to project.
73543         * platform/win/WindowMessageBroadcaster.cpp: Added.
73544         (WebCore::instancesMap): Static helper.
73545         (WebCore::WindowMessageBroadcaster::addListener): Registers a listener
73546         for a particular HWND.
73547         (WebCore::WindowMessageBroadcaster::removeListener): Removes a
73548         listener for a particular HWND.
73549         (WebCore::WindowMessageBroadcaster::WindowMessageBroadcaster):
73550         (WebCore::WindowMessageBroadcaster::~WindowMessageBroadcaster):
73551         (WebCore::WindowMessageBroadcaster::destroy): Removes this broadcaster
73552         from the instancesMap, removes all of its listeners, unsubclasses the
73553         window, and deletes the broadcaster.
73554         (WebCore::WindowMessageBroadcaster::unsubclassWindow): Unsubclasses
73555         the window (which means that SubclassedWndProc won't be called again
73556         for this window).
73557         (WebCore::WindowMessageBroadcaster::SubclassedWndProc): Notifies all
73558         the listeners about every message sent to the HWND
73559         * platform/win/WindowMessageBroadcaster.h: Added.
73560         (WebCore::WindowMessageBroadcaster::listeners):
73561         (WebCore::WindowMessageBroadcaster::originalWndProc):
73562         * platform/win/WindowMessageListener.h: Added.
73563
73564 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
73565
73566         Reviewed by Sam Weinig.
73567
73568         Moved Shared.h into wtf so it could be used in more places. Retained 
73569         TreeShared, but moved it to its own file, TreeShared.h.
73570
73571         * ForwardingHeaders/wtf/Shared.h: Added.
73572         * WebCore.xcodeproj/project.pbxproj:
73573         * bindings/js/JSSVGPODTypeWrapper.h:
73574         * css/CSSFontFace.h:
73575         * css/CSSRuleList.h:
73576         * css/Counter.h:
73577         * css/Pair.h:
73578         * css/Rect.h:
73579         * css/StyleBase.h:
73580         * css/StyleSheetList.h:
73581         * dom/Clipboard.h:
73582         * dom/DOMImplementation.h:
73583         * dom/Event.h:
73584         * dom/EventListener.h:
73585         * dom/NamedNodeMap.h:
73586         * dom/NodeFilterCondition.h:
73587         * dom/NodeList.h:
73588         * dom/Range.h:
73589         * dom/RangeException.h:
73590         * dom/RegisteredEventListener.h:
73591         * dom/Traversal.h:
73592         * history/BackForwardList.h:
73593         * history/CachedPage.h:
73594         * history/HistoryItem.h:
73595         * html/CanvasGradient.h:
73596         * html/CanvasPattern.h:
73597         * html/HTMLCollection.h:
73598         * html/MediaError.h:
73599         * html/TimeRanges.h:
73600         * html/VoidCallback.h:
73601         * ksvg2/css/SVGRenderStyleDefs.h:
73602         * ksvg2/svg/SVGAnimatedTemplate.h:
73603         * ksvg2/svg/SVGElementInstanceList.h:
73604         * ksvg2/svg/SVGList.h:
73605         * ksvg2/svg/SVGPathSeg.h:
73606         * ksvg2/svg/SVGPreserveAspectRatio.h:
73607         * ksvg2/svg/SVGRenderingIntent.h:
73608         * ksvg2/svg/SVGTransform.h:
73609         * ksvg2/svg/SVGUnitTypes.h:
73610         * loader/DocumentLoader.h:
73611         * loader/FormState.h:
73612         * loader/ResourceLoader.h:
73613         * loader/TextResourceDecoder.h:
73614         * loader/icon/IconRecord.h:
73615         * page/BarInfo.h:
73616         * page/Console.h:
73617         * page/DOMSelection.h:
73618         * page/DOMWindow.h:
73619         * page/History.h:
73620         * page/InspectorController.cpp:
73621         * page/Plugin.h:
73622         * page/Screen.h:
73623         * platform/ArrayImpl.h:
73624         * platform/CString.h:
73625         * platform/DeprecatedValueListImpl.cpp:
73626         * platform/FontFallbackList.h:
73627         * platform/FontFamily.h:
73628         * platform/FontSelector.h:
73629         * platform/GlyphPageTreeNode.h:
73630         * platform/PopupMenu.h:
73631         * platform/RegularExpression.cpp:
73632         * platform/ScrollBar.h:
73633         * platform/Shared.h: Removed.
73634         * platform/SharedBuffer.h:
73635         * platform/StringImpl.h:
73636         * platform/graphics/Icon.h:
73637         * platform/graphics/svg/SVGResource.h:
73638         * platform/network/FormData.h:
73639         * platform/network/ResourceHandleClient.h:
73640         * rendering/RenderStyle.h:
73641         * rendering/SVGCharacterLayoutInfo.h:
73642         * storage/SQLResultSetRowList.h:
73643         * xml/DOMParser.h:
73644         * xml/XMLSerializer.h:
73645         * xml/XPathEvaluator.h:
73646         * xml/XPathExpression.h:
73647         * xml/XPathNSResolver.h:
73648         * xml/XPathResult.h:
73649
73650 2007-11-13  Brady Eidson  <beidson@apple.com>
73651
73652         JS bindings by Anders, reviewed by Brady
73653         WebCore changes by Brady, reviewed by Anders and Tim
73654
73655         Adapt to the new iteration of the HTML5 client-side storage spec.
73656
73657         Based largely on implementation feedback we generated in landing our first version of this API and also
73658         on the input of others in the community, the database spec went through a large overhaul that addresses
73659         many concerns.  Amongst other changes/improvements:
73660         - SQLTransaction object is added and all transactions are explicit.  In addition, since the API manages
73661           transactions explicitly, transaction-related language in SQL statements is disallowed
73662         - executeSql() is now on a transaction object instead of the database object.
73663         - Database.changeVersion() now takes place within the context of a transaction.  Therefore the version 
73664           change can be atomic along with the statements that modify the DB schema
73665
73666         Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
73667         as a chain of events on the SQLTransaction object where processing is handed off between being processed 
73668         asynchronously and calling back up to javascript.  To accomplish this voodoo, SQLTransaction has a series of 
73669         methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.
73670
73671         * DerivedSources.make:
73672         * WebCore.xcodeproj/project.pbxproj:
73673
73674         * bindings/js/JSDatabaseCustom.cpp:
73675         (WebCore::JSDatabase::changeVersion): Adapt to the new API
73676         (WebCore::JSDatabase::transaction): Added
73677
73678         * bindings/js/JSSQLTransactionCustom.cpp: Added.
73679         (WebCore::JSSQLTransaction::executeSql): Added
73680
73681         * page/DOMWindow.cpp:
73682         (WebCore::DOMWindow::openDatabase): Add the new arguments
73683         * page/DOMWindow.h:
73684         * page/DOMWindow.idl:
73685
73686         * page/inspector/DatabasePanel.js: Use the new API
73687
73688         * storage/ChangeVersionWrapper.cpp: Added.  Implementation of "SQLTransactionWrapper" that enforces
73689           changing the version of the database
73690         (WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
73691         (WebCore::ChangeVersionWrapper::performPreflight):
73692         (WebCore::ChangeVersionWrapper::performPostflight):
73693         * storage/ChangeVersionWrapper.h: Added.
73694         (WebCore::ChangeVersionWrapper::sqlError):
73695
73696         * storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
73697           happen solely on the background thread - most of these changes result from that change
73698         (WebCore::Database::Database): Removed an obsolete FIXME
73699         (WebCore::Database::openAndVerifyVersion): 
73700         (WebCore::Database::getVersionFromDatabase):
73701         (WebCore::Database::setVersionInDatabase):
73702         (WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
73703         (WebCore::Database::performOpenAndVerify):
73704         (WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
73705         (WebCore::Database::changeVersion): Changed for the new API from JS
73706         (WebCore::Database::transaction): Added, for the new API from JS
73707         (WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
73708         (WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
73709         (WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
73710         (WebCore::Database::performGetTableNames):
73711         (WebCore::Database::deliverAllPendingCallbacks):
73712         (WebCore::Database::deliverPendingCallback):
73713         (WebCore::Database::setExpectedVersion):
73714         * storage/Database.h: 
73715         * storage/Database.idl:
73716
73717         * storage/DatabaseTask.cpp:  Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
73718           to replace the m_synchronous flag
73719         (WebCore::DatabaseTask::performTask):
73720         (WebCore::DatabaseTask::lockForSynchronousScheduling):
73721         (WebCore::DatabaseTask::waitForSynchronousCompletion):
73722         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
73723         * storage/DatabaseTask.h:
73724
73725         * storage/SQLError.h: New API object
73726
73727         * storage/SQLResultSet.cpp:
73728         (WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
73729         * storage/SQLResultSet.h:
73730         * storage/SQLResultSet.idl:
73731
73732         * storage/SQLStatement.cpp: Added.
73733         (WebCore::SQLStatement::SQLStatement):
73734         (WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
73735         (WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
73736           of an actual version vs. expected version mismatch
73737         (WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
73738         * storage/SQLStatement.h: Added.
73739         (WebCore::SQLStatement::hasStatementCallback):
73740         (WebCore::SQLStatement::hasStatementErrorCallback):
73741         (WebCore::SQLStatement::sqlError): Get the error for this statement, if any
73742
73743         * storage/SQLTransaction.cpp: Added.
73744         (WebCore::SQLTransaction::SQLTransaction):
73745         (WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
73746         (WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
73747         (WebCore::SQLTransaction::performNextStep): Call the method for the next step
73748         (WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
73749         (WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight 
73750           using the SQLTransactionWrapper, if any
73751         (WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
73752         (WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread 
73753           and make runStatements() the next step
73754         (WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction 
73755         (WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
73756         (WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
73757         (WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
73758         (WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
73759         (WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
73760         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
73761         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
73762           transaction after it error'ed out
73763         * storage/SQLTransaction.h:
73764         (WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): 
73765         (WebCore::SQLTransaction::database):
73766         * storage/SQLTransaction.idl:
73767
73768         The following were made obsolete by the new version of the API:
73769         * bindings/js/JSCustomSQLCallback.cpp: Removed.
73770         * bindings/js/JSCustomSQLCallback.h: Removed.
73771         * bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
73772         * bindings/js/JSCustomVersionChangeCallback.h: Removed.
73773         * storage/DatabaseCallback.cpp: Removed.
73774         * storage/DatabaseCallback.h: Removed.
73775         * storage/SQLCallback.h: Removed.
73776         * storage/SQLCallback.idl: Removed.
73777         * storage/VersionChangeCallback.h: Removed.
73778         * storage/VersionChangeCallback.idl: Removed.
73779
73780 2007-11-13  Dan Bernstein  <mitz@apple.com>
73781
73782         Reviewed by Beth Dakin.
73783
73784         - fix <rdar://problem/5551163> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click
73785
73786         * css/html4.css: Added a 'cursor: auto' rule for links.
73787         * manual-tests/link-cursor-auto.html: Added.
73788
73789 2007-11-13  Dan Bernstein  <mitz@apple.com>
73790
73791         Reviewed by Beth Dakin.
73792
73793         - fix <rdar://problem/5516272> Reproducible crash in RenderObject::setStyle involving going Back from a non-HTML document (Bookmarks view, PDF view)
73794
73795         The root cause for the crash is that when a non-HTML view enters the
73796         frame, the frame's document pointer keeps pointing at the last HTML-type
73797         document it contained. This patch does not address the root cause, but
73798         makes changes to account for that condition.
73799
73800         * loader/FrameLoader.cpp:
73801         (WebCore::FrameLoader::receivedMainResourceError): Do not change the
73802         frame's current document's page cache state here.
73803         (WebCore::FrameLoader::invalidateCurrentItemCachedPage): If the frame's
73804         current document is in fact the history item being invalidated, then
73805         set its page cache state here.
73806
73807 2007-11-12  Antti Koivisto  <antti@apple.com>
73808
73809         Reviewed by Adele.
73810
73811         Fix that 'timeupdate' and 'waiting' events were never dispatched.
73812         
73813         Add explicit m_paused attribute instead of trying to derive paused state from
73814         underlying media. Call updatePlayState() to start/stop media playback
73815         when any attribute that affects active playback state changes. This matches 
73816         specification text.
73817         
73818         Test: http/tests/media/video-play-stall.html
73819
73820         * html/HTMLMediaElement.cpp:
73821         (WebCore::HTMLMediaElement::HTMLMediaElement):
73822         (WebCore::HTMLMediaElement::setReadyState):
73823         (WebCore::HTMLMediaElement::paused):
73824         (WebCore::HTMLMediaElement::play):
73825         (WebCore::HTMLMediaElement::pause):
73826         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
73827         (WebCore::HTMLMediaElement::movieDidEnd):
73828         (WebCore::HTMLMediaElement::updatePlayState):
73829         * html/HTMLMediaElement.h:
73830
73831 2007-11-13  John Sullivan  <sullivan@apple.com>
73832
73833         Reviewed by Darin.
73834
73835         removed recently-added PreferredType concept; we found a better way to do what
73836         ths was accomplishing
73837
73838         * bridge/WindowFeatures.h:
73839         (WebCore::WindowFeatures::WindowFeatures):
73840         removed definition of PreferredType
73841                         
73842         * page/ContextMenuController.cpp:
73843         (WebCore::openNewWindow):
73844         removed use of PreferredType
73845
73846 2007-11-12  Alexey Proskuryakov  <ap@webkit.org>
73847
73848         Reviewed by Darin.
73849
73850         http://bugs.webkit.org/show_bug.cgi?id=15954
73851         Move DOM Selection operations out of SelectionController
73852
73853         No change in functionality.
73854
73855         * editing/SelectionController.cpp:
73856         (WebCore::SelectionController::setSelectedRange):
73857         * editing/SelectionController.h:
73858         * page/DOMSelection.cpp:
73859         (WebCore::DOMSelection::anchorNode):
73860         (WebCore::DOMSelection::baseNode):
73861         (WebCore::DOMSelection::anchorOffset):
73862         (WebCore::DOMSelection::baseOffset):
73863         (WebCore::DOMSelection::focusNode):
73864         (WebCore::DOMSelection::extentNode):
73865         (WebCore::DOMSelection::focusOffset):
73866         (WebCore::DOMSelection::extentOffset):
73867         (WebCore::DOMSelection::isCollapsed):
73868         (WebCore::DOMSelection::type):
73869         (WebCore::DOMSelection::rangeCount):
73870         (WebCore::DOMSelection::collapse):
73871         (WebCore::DOMSelection::collapseToEnd):
73872         (WebCore::DOMSelection::collapseToStart):
73873         (WebCore::DOMSelection::empty):
73874         (WebCore::DOMSelection::setBaseAndExtent):
73875         (WebCore::DOMSelection::setPosition):
73876         (WebCore::DOMSelection::modify):
73877         (WebCore::DOMSelection::extend):
73878         (WebCore::DOMSelection::getRangeAt):
73879         (WebCore::DOMSelection::removeAllRanges):
73880         (WebCore::DOMSelection::addRange):
73881         (WebCore::DOMSelection::deleteFromDocument):
73882         (WebCore::DOMSelection::containsNode):
73883         (WebCore::DOMSelection::selectAllChildren):
73884         (WebCore::DOMSelection::toString):
73885         * page/DOMSelection.h:
73886         Moved all DOM API methods to DOMSelection; changed SelectionController::setSelectedRange()
73887         to return its result directly instead of via an ExceptionCode that no caller wanted.
73888
73889         * editing/Editor.cpp:
73890         (WebCore::Editor::deleteRange):
73891         (WebCore::Editor::removeFormattingAndStyle):
73892         (WebCore::Editor::selectComposition):
73893         (WebCore::Editor::setComposition):
73894         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
73895         Adapted for SelectionController::setSelectedRange() now returning a bool.
73896         SelectionController::toString() is no longer avasilable, use plainText() explicitly.
73897
73898         * WebCore.base.exp: Changed SelectionController::setSelectedRange() signature.
73899
73900 2007-11-12  Dan Bernstein  <mitz@apple.com>
73901
73902         Reviewed by Darin Adler.
73903
73904         - <http://bugs.webkit.org/show_bug.cgi?id=15890>
73905           Most of www.aol.com still redraws unnecessarily when headline/photo section changes
73906
73907         Test: fast/repaint/invisible-objects.html
73908
73909         Avoid repainting invisible blocks if they are enclosed in a layer that
73910         contains no visible objects.
73911
73912         * rendering/RenderBlock.cpp:
73913         (WebCore::RenderBlock::layoutBlock):
73914         * rendering/RenderBox.cpp:
73915         (WebCore::RenderBox::absoluteClippedOverflowRect):
73916
73917 2007-11-12  Timothy Hatcher  <timothy@apple.com>
73918
73919         Reviewed by Mark Rowe.
73920
73921         Prevent selecting a word in the breadcrumb or the styles section when double
73922         clicking on a DOM node in the outline tree.
73923
73924         * page/inspector/DocumentPanel.js: Call preventDefault() when a mousedown event
73925           with a detail of 2 or higher comes in. This prevents the selection.
73926         * page/inspector/inspector.css: Mark the breadcrumb as user-select: none.
73927
73928 2007-11-12  Oliver Hunt  <oliver@apple.com>
73929
73930         Reviewed by John S.
73931
73932         <rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
73933         
73934         EventHandler needs to reset these fields when a drag terminates, otherwise
73935         EventHandler is left in an inconsistent state when a drag is initiated on a
73936         page with multiple frames.
73937
73938         * page/EventHandler.cpp:
73939         (WebCore::EventHandler::cancelDragAndDrop):
73940         (WebCore::EventHandler::performDragAndDrop):
73941         (WebCore::EventHandler::clearDragState):
73942         * page/EventHandler.h:
73943
73944 2007-11-12  Oliver Hunt  <oliver@apple.com>
73945
73946         Reviewed by Darin and Antti.
73947
73948         Return behaviour for 0 sized pattern back to what it was prior to r27704
73949
73950         This change in behaviour broke two layout tests in DRT, so correcting it
73951         corrects existing tests.
73952
73953         * platform/graphics/cg/ImageBufferCG.cpp:
73954
73955 2007-11-12  Timothy Hatcher  <timothy@apple.com>
73956
73957         Reviewed by John.
73958
73959         <rdar://problem/5268311> REGRESSION (Safari 2-3): Exception thrown when calling -[WebDataSource subresources]
73960
73961         * page/mac/WebCoreFrameBridge.mm:
73962         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
73963         If the SharedBuffer is null insert an empty NSData instead of nil.
73964
73965 2007-11-12  Darin Adler  <darin@apple.com>
73966
73967         Reviewed by Tim.
73968
73969         - http://bugs.webkit.org/show_bug.cgi?id=15947
73970           speed up page loading a bit by inlining
73971
73972         * loader/FrameLoader.cpp: (WebCore::FrameLoader::isLocationChange):
73973         Factored out the slow case of isScheduledLocationChangePending into this.
73974
73975         * loader/FrameLoader.h:
73976         (WebCore::FrameLoader::isScheduledLocationChangePending): Added an
73977         inline check of the far and away most common case, where m_scheduledRedirection
73978         is 0; the rest is in the isLocationChange function.
73979
73980 2007-11-12  George Staikos  <staikos@kde.org>
73981
73982         Reviewed by Tim.
73983
73984         Extract the text match marker highlight color into RenderTheme instead
73985         of the hardcoded yellow.
73986
73987         * rendering/InlineTextBox.cpp:
73988         (WebCore::InlineTextBox::paintTextMatchMarker):
73989         * rendering/RenderTheme.cpp:
73990         (WebCore::RenderTheme::platformTextSearchHighlightColor):
73991         * rendering/RenderTheme.h:
73992
73993 2007-11-12  Mark Rowe  <mrowe@apple.com>
73994
73995         Fix deadlock on launch on the Mac.
73996
73997         * loader/icon/IconDatabase.cpp:
73998         (WebCore::IconDatabase::open): Restore unlock that was mistakenly removed in r27717.
73999
74000 2007-11-12  Justin Haygood  <jhaygood@reaktix.com>
74001
74002         Reviewed by Brady.
74003
74004         http://bugs.webkit.org/show_bug.cgi?id=15955
74005         Reimplement threading functions in IconDatabase and SQLiteDatabase in terms of the threading abstractions
74006
74007         * loader/icon/IconDatabase.cpp:
74008         (WebCore::IconDatabase::open):
74009         (WebCore::IconDatabase::close):
74010         * loader/icon/IconDatabase.h:
74011         * platform/sql/SQLiteDatabase.cpp:
74012         (WebCore::SQLiteDatabase::SQLiteDatabase):
74013         (WebCore::SQLiteDatabase::open):
74014         (WebCore::SQLiteDatabase::close):
74015         * platform/sql/SQLiteDatabase.h:
74016
74017 2007-11-12  Adam Roben  <aroben@apple.com>
74018
74019         Windows build fix
74020
74021         * config.h: Touch because VS apparently can't figure out which files
74022         depend on ResourceResponse.h.
74023         * WebCore.vcproj/WebCore.vcproj: Add ResourceResponseBase files to
74024         project and remove old ResourceResponse files.
74025
74026 2007-11-12  Julien Chaffraix  <julien.chaffraix@gmail.com>
74027
74028         Reviewed by Darin.
74029
74030         http://bugs.webkit.org/show_bug.cgi?id=15334
74031         Split ResourceResponse into platform specific files
74032
74033         * WebCore.base.exp:
74034         * WebCore.pro:
74035         * WebCore.vcproj/WebCore.vcproj:
74036         * WebCore.xcodeproj/project.pbxproj:
74037         * platform/network/ResourceResponse.cpp: Removed.
74038         * platform/network/ResourceResponse.h: Removed.
74039         * platform/network/ResourceResponseBase.cpp: Copied from platform/network/ResourceResponse.cpp.
74040         (WebCore::ResourceResponseBase::asResourceResponse):
74041         (WebCore::ResourceResponseBase::isHTTP):
74042         (WebCore::ResourceResponseBase::url):
74043         (WebCore::ResourceResponseBase::setUrl):
74044         (WebCore::ResourceResponseBase::mimeType):
74045         (WebCore::ResourceResponseBase::setMimeType):
74046         (WebCore::ResourceResponseBase::expectedContentLength):
74047         (WebCore::ResourceResponseBase::setExpectedContentLength):
74048         (WebCore::ResourceResponseBase::textEncodingName):
74049         (WebCore::ResourceResponseBase::setTextEncodingName):
74050         (WebCore::ResourceResponseBase::suggestedFilename):
74051         (WebCore::ResourceResponseBase::setSuggestedFilename):
74052         (WebCore::ResourceResponseBase::httpStatusCode):
74053         (WebCore::ResourceResponseBase::setHTTPStatusCode):
74054         (WebCore::ResourceResponseBase::httpStatusText):
74055         (WebCore::ResourceResponseBase::setHTTPStatusText):
74056         (WebCore::ResourceResponseBase::httpHeaderField):
74057         (WebCore::ResourceResponseBase::setHTTPHeaderField):
74058         (WebCore::ResourceResponseBase::httpHeaderFields):
74059         (WebCore::ResourceResponseBase::isAttachment):
74060         (WebCore::ResourceResponseBase::setExpirationDate):
74061         (WebCore::ResourceResponseBase::expirationDate):
74062         (WebCore::ResourceResponseBase::setLastModifiedDate):
74063         (WebCore::ResourceResponseBase::lastModifiedDate):
74064         (WebCore::ResourceResponseBase::updateResourceResponse):
74065         * platform/network/ResourceResponseBase.h: Copied from platform/network/ResourceResponse.h.
74066         (WebCore::ResourceResponseBase::ResourceResponseBase):
74067         * platform/network/cf/ResourceResponse.h: Added.
74068         (WebCore::ResourceResponse::ResourceResponse):
74069         * platform/network/curl/ResourceResponse.h: Added.
74070         (WebCore::ResourceResponse::ResourceResponse):
74071         (WebCore::ResourceResponse::doUpdateResourceResponse):
74072         * platform/network/mac/ResourceResponse.h: Added.
74073         (WebCore::ResourceResponse::ResourceResponse):
74074         * platform/network/qt/ResourceResponse.h: Added.
74075         (WebCore::ResourceResponse::ResourceResponse):
74076         (WebCore::ResourceResponse::doUpdateResourceResponse):
74077
74078 2007-11-11  Justin Haygood  <jhaygood@reaktix.com>
74079
74080         Reviewed by Adam Roben.
74081
74082         http://bugs.webkit.org/show_bug.cgi?id=15939
74083         Adds a currentThread API for use by SQLiteDatabase, etc.
74084
74085         * platform/Threading.h:
74086         * platform/ThreadingNone.cpp:
74087         (WebCore::currentThread):
74088         * platform/gtk/ThreadingGtk.cpp:
74089         (WebCore::identifierByGthreadHandle):
74090         * platform/pthreads/ThreadingPthreads.cpp:
74091         (WebCore::identifierByPthreadHandle):
74092         (WebCore::currentThread):
74093
74094 2007-11-11  Dan Bernstein  <mitz@apple.com>
74095
74096         Reviewed by Adam Roben.
74097
74098         - fix http://bugs.webkit.org/show_bug.cgi?id=15942
74099           REGRESSION: Selecting "Edit Html" tab in Blogger causes crash (Assertion failed: isRange())
74100
74101         Test: editing/selection/cleared-by-relayout.html
74102
74103         * editing/Selection.cpp:
74104         (WebCore::Selection::toRange): Check if the selection has been cleared
74105         by updating layout.
74106
74107 2007-11-11  Darin Adler  <darin@apple.com>
74108
74109         Reviewed by Mark Rowe.
74110
74111         - fix line numbers that were off since my recent patch
74112
74113         * platform/SegmentedString.h:
74114         (WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers
74115         and rename it to m_doNotExcludeLineNumbers.
74116         (WebCore::SegmentedSubstring::excludeLineNumbers): Updated.
74117         (WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added.
74118         (WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated.
74119         (WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix
74120         the regression, but keep the speediness. I accidentally had removed a ! here.
74121
74122         * platform/SegmentedString.cpp:
74123         (WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.
74124
74125 2007-11-11  Oliver Hunt  <oliver@apple.com>
74126
74127         Reviewed by Darin.
74128
74129         Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
74130         malformed SVG file in WebCore::ImageBuffer::create. Add protection
74131         against a potential overflow.
74132
74133         * platform/graphics/cg/ImageBufferCG.cpp:
74134
74135 2007-11-11  Antti Koivisto  <antti@apple.com>
74136
74137         Reviewed by Darin.
74138
74139         Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.
74140
74141         * bindings/js/kjs_binding.cpp:
74142         (KJS::setDOMException):
74143         * dom/Attr.cpp:
74144         (WebCore::Attr::setPrefix):
74145         * dom/Document.cpp:
74146         (WebCore::Document::createElement):
74147         * dom/Element.cpp:
74148         (WebCore::Element::setPrefix):
74149         * dom/Range.cpp:
74150         (WebCore::Range::setStart):
74151         (WebCore::Range::setEnd):
74152         (WebCore::Range::isPointInRange):
74153         (WebCore::Range::comparePoint):
74154         (WebCore::Range::compareBoundaryPoints):
74155         (WebCore::Range::deleteContents):
74156         (WebCore::Range::processContents):
74157         (WebCore::Range::extractContents):
74158         (WebCore::Range::insertNode):
74159         (WebCore::Range::setStartAfter):
74160         (WebCore::Range::setEndBefore):
74161         (WebCore::Range::setEndAfter):
74162         (WebCore::Range::selectNode):
74163         (WebCore::Range::surroundContents):
74164         (WebCore::Range::setStartBefore):
74165         * editing/TextIterator.cpp:
74166         (WebCore::TextIterator::TextIterator):
74167         * html/CanvasRenderingContext2D.cpp:
74168         (WebCore::CanvasRenderingContext2D::createPattern):
74169         * html/HTMLMediaElement.cpp:
74170         (WebCore::HTMLMediaElement::play):
74171         (WebCore::HTMLMediaElement::pause):
74172         * html/HTMLSelectElement.cpp:
74173         (WebCore::HTMLSelectElement::add):
74174         (WebCore::HTMLSelectElement::setOption):
74175         * xml/XPathEvaluator.cpp:
74176         (WebCore::XPathEvaluator::evaluate):
74177
74178 2007-11-11  Darin Adler  <darin@apple.com>
74179
74180         Reviewed by Mitz.
74181
74182         - http://bugs.webkit.org/show_bug.cgi?id=15945
74183           speed up GraphicsContextCG typical case by skipping roundToDevicePixels
74184
74185         * platform/graphics/cg/GraphicsContextCG.cpp:
74186         (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
74187         longer know if the transform is identity or not.
74188         (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
74189         CGContextSave/RestoreGState.
74190         (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
74191         longer know if the transform is identity or not.
74192         (WebCore::GraphicsContext::endTransparencyLayer): Ditto.
74193         (WebCore::GraphicsContext::scale): Ditto.
74194         (WebCore::GraphicsContext::rotate): Ditto.
74195         (WebCore::GraphicsContext::translate): Ditto.
74196         (WebCore::GraphicsContext::concatCTM): Ditto.
74197         (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
74198         is known to be identity, and record that fact when we discover it otherwise.
74199
74200         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
74201         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
74202         Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
74203
74204 2007-11-11  Darin Adler  <darin@apple.com>
74205
74206         Reviewed by Mitz.
74207
74208         - http://bugs.webkit.org/show_bug.cgi?id=15944
74209           streamline SegmentedString to speed up parsing
74210
74211         I measured a speed-up of the page load test while developing this patch. I don't
74212         have a precise figure, though.
74213
74214         * html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
74215         lineno to m_lineNumber.
74216         * html/HTMLTokenizer.cpp:
74217         (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
74218         since we don't want to update a line number.
74219         (WebCore::HTMLTokenizer::parseSpecial): Ditto.
74220         (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
74221         instead of lineNumberPtr() since the advance function now takes a reference.
74222         (WebCore::HTMLTokenizer::parseServer): Ditto.
74223         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
74224         (WebCore::HTMLTokenizer::parseText): Ditto.
74225         (WebCore::HTMLTokenizer::parseEntity): Ditto.
74226         (WebCore::HTMLTokenizer::parseTag): Ditto.
74227         (WebCore::HTMLTokenizer::write): Ditto.
74228
74229         * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
74230         * loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
74231         Don't pass 0 to the advance function.
74232
74233         * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
74234         the most common case, and pushed less common cases into a separate function
74235         that is not inlined. Also got rid of a branch by separating the case with a
74236         line number from the case without one.
74237
74238         * platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
74239         Added. The aforementioned less common cases are here.
74240
74241 2007-11-11  Antti Koivisto  <antti@apple.com>
74242
74243         Forgot to do this review change (and test HTTP commit).
74244
74245         * html/HTMLMediaElement.cpp:
74246         (WebCore::HTMLMediaElement::play):
74247
74248 2007-11-11  Antti Koivisto  <antti@apple.com>
74249
74250         Reviewed by Darin.
74251         
74252         - Update play() and pause() to match current HTML5 draft
74253             - send events asynchronously
74254             - add timeupdate event to pause
74255             - rethrow load() exception, not others
74256         - Use list for async events to get ordering right
74257
74258         Tests: media/video-pause-empty-events.html
74259                media/video-play-empty-events.html
74260                media/video-play-pause-events.html
74261                media/video-play-pause-exception.html
74262
74263         * html/HTMLMediaElement.cpp:
74264         (WebCore::HTMLMediaElement::dispatchEventAsync): 
74265         (WebCore::HTMLMediaElement::asyncEventTimerFired):
74266         (WebCore::HTMLMediaElement::play):
74267         (WebCore::HTMLMediaElement::pause):
74268         * html/HTMLMediaElement.h:
74269
74270 2007-11-11  Nikolas Zimmermann  <zimmermann@kde.org>
74271
74272         Reviewed by Eric.
74273
74274         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)
74275
74276         Add (basic) support for dominant-baseline / alignment-baseline text properties.
74277         Note: there are no official testcases, and no-one implemented it before. Only ASV3
74278               supported dominant-baseline, but not correct it seems.
74279
74280         * rendering/SVGRootInlineBox.cpp:
74281         (WebCore::dominantBaselineToShift):
74282         (WebCore::alignmentBaselineToShift):
74283         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
74284
74285 2007-11-11  Adam Roben  <aroben@apple.com>
74286
74287         Add wrappers around CoCreateInstance to COMPtr
74288
74289         I followed the example of the Query constructor and query method by
74290         adding a Create constructor and create method.
74291
74292         Reviewed by Darin.
74293
74294         * platform/win/COMPtr.h:
74295         (COMPtr::COMPtr): Added a new constructor that calls
74296         CoCreateInstance.
74297         (COMPtr::create): Added.
74298         (COMPtr::createInstance): Added.
74299
74300 2007-11-11  Alexey Proskuryakov  <ap@nypop.com>
74301
74302         Reviewed by Darin.
74303
74304         http://bugs.webkit.org/show_bug.cgi?id=15896
74305         More editing cleanup
74306
74307         No functionality changes.
74308
74309         * dom/Node.h: Moved several editing-related methods elsewhere.
74310         * dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
74311         to highlight that it is a match to offsetInCharacters(), and much different from other
74312         offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
74313         offsetInCharacters() before calling this.
74314
74315         * dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
74316         * dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
74317         Updated for above renamings.
74318
74319         * dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
74320
74321         * dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
74322
74323         * dom/Position.h:
74324         * dom/Position.cpp:
74325         (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
74326         (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
74327         (WebCore::Position::previous): Adapted to the above move.
74328         (WebCore::Position::next): Ditto.
74329         (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
74330         and BR elements are covered by editingIgnoresContent().
74331         (WebCore::Position::downstream): Ditto.
74332         (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
74333         (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
74334
74335         * dom/PositionIterator.h: Added a comment describing this class from the original check-in.
74336         * dom/PositionIterator.cpp:
74337         (WebCore::PositionIterator::increment): Updated for the above moves.
74338         (WebCore::PositionIterator::decrement): Ditto.
74339
74340         * dom/ProcessingInstruction.h:
74341         * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
74342         ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
74343         I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
74344
74345         * dom/Range.cpp:
74346         (WebCore::Range::selectNodeContents):
74347         * editing/ApplyStyleCommand.cpp:
74348         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
74349         (WebCore::ApplyStyleCommand::applyInlineStyle):
74350         (WebCore::maxRangeOffset):
74351         (WebCore::ApplyStyleCommand::removeInlineStyle):
74352         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
74353         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
74354         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
74355         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
74356         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
74357         * editing/CompositeEditCommand.cpp:
74358         (WebCore::CompositeEditCommand::insertNodeAt):
74359         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
74360         * editing/DeleteSelectionCommand.cpp:
74361         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
74362         * editing/InsertLineBreakCommand.cpp:
74363         (WebCore::InsertLineBreakCommand::doApply):
74364         * editing/InsertParagraphSeparatorCommand.cpp:
74365         (WebCore::InsertParagraphSeparatorCommand::doApply):
74366         * editing/InsertTextCommand.cpp:
74367         (WebCore::InsertTextCommand::insertTab):
74368         * editing/visible_units.cpp:
74369         (WebCore::previousLinePosition):
74370         (WebCore::nextLinePosition):
74371         Updated for the above moves.
74372
74373         * editing/Editor.cpp:
74374         (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
74375
74376         * editing/TextIterator.cpp:
74377         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
74378         match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
74379         (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
74380
74381         * editing/htmlediting.h:
74382         * editing/htmlediting.cpp:
74383         (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
74384         child nodes, other than via DOM manipulation, which is not specific to BRs.
74385         (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
74386         (WebCore::maxDeepOffset): Ditto.
74387         (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
74388         (WebCore::caretMaxOffset): Ditto.
74389
74390         * page/EventHandler.cpp:
74391         (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
74392         caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
74393         will take care of adjusting the offset.
74394
74395         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
74396         * page/mac/WebCoreFrameBridge.mm:
74397         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
74398         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
74399         Changed some runtime checks that seemingly cannot fail into assertions.
74400
74401 2007-11-11  Darin Adler  <darin@apple.com>
74402
74403         Reviewed by Sam.
74404
74405         - updated for JSRegExp function changes
74406
74407         * platform/RegularExpression.cpp:
74408         (WebCore::RegularExpression::Private::compile):
74409         (WebCore::RegularExpression::match):
74410
74411 2007-11-10  Mark Rowe  <mrowe@apple.com>
74412
74413         Qt Linux build fix.
74414
74415         * platform/UnicodeRange.h:
74416
74417 2007-11-10  Mark Rowe  <mrowe@apple.com>
74418
74419         Qt Windows build fix.
74420
74421         * platform/UnicodeRange.h:
74422
74423 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
74424
74425         Reviewed by Eric.
74426
74427         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
74428         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
74429
74430         Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
74431         Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
74432
74433         * WebCore.pro: Add platform/UnicodeRange.cpp to build
74434         * WebCore.xcodeproj/project.pbxproj: Dito.
74435         * rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
74436         (WebCore::SVGChar::characterTransform):
74437         * rendering/SVGCharacterLayoutInfo.h: New variables.
74438         (WebCore::SVGCharOnPath::SVGCharOnPath):
74439         (WebCore::SVGChar::SVGChar):
74440         * rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
74441         (WebCore::glyphOrientationToAngle):
74442         (WebCore::glyphOrientationIsMultiplyOf180Degrees):
74443         (WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
74444         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
74445         (WebCore::cummulatedWidthOrHeightOfTextChunk):
74446         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
74447
74448 2007-11-10  Timothy Hatcher  <timothy@apple.com>
74449
74450         Reviewed by Sam Weinig.
74451
74452         * page/inspector/StylesSidebarPane.js: Fix the wording of a comment
74453           and switch over to use getUniqueProperties in another place.
74454
74455 2007-11-10  John Sullivan  <sullivan@apple.com>
74456
74457         Reviewed by Sam Weinig
74458
74459         Rest of fix for 5394877
74460
74461         * bindings/js/kjs_window.cpp:
74462         (KJS::Window::isSafeScript):
74463         Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
74464         private browsing mode either.
74465
74466 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
74467
74468         Reviewed by Oliver.
74469
74470         Fix function name difference - header said 'unicodeRangeForCharacter', actually
74471         implemented function is 'findCharUnicodeRange'. They are not compiled yet.
74472
74473         * platform/UnicodeRange.h:
74474
74475 2007-11-10  Dan Bernstein  <mitz@apple.com>
74476
74477         Reviewed by Darin Adler.
74478
74479         - fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link
74480
74481         No test because context menu events cannot be tested in DumpRenderTree.
74482
74483         * page/EventHandler.cpp:
74484         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
74485         If the click occurred in an active link, selects the entire link
74486         element. Otherwise selects the closest word.
74487         (WebCore::EventHandler::sendContextMenuEvent): Call
74488         selectClosestWordOrLinkFromMouseEvent().
74489         * page/EventHandler.h:
74490
74491 2007-11-10  John Sullivan  <sullivan@apple.com>
74492
74493         Reviewed by Tim Hatcher
74494
74495         - fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when 
74496           in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
74497
74498         * bindings/js/kjs_window.cpp:
74499         (KJS::Window::isSafeScript):
74500         Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
74501
74502 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
74503
74504         Reviewed by Darin.
74505
74506         http://bugs.webkit.org/show_bug.cgi?id=15922
74507         Implement more of Mozilla Selection API
74508
74509         Tests: editing/selection/containsNode.html
74510                editing/selection/deleteFromDocument.html
74511                editing/selection/extend.html
74512                editing/selection/selectAllChildren.html
74513
74514         * editing/SelectionController.cpp:
74515         (WebCore::SelectionController::deleteFromDocument):
74516         (WebCore::SelectionController::containsNode):
74517         (WebCore::SelectionController::selectAllChildren):
74518         (WebCore::SelectionController::extend):
74519         * editing/SelectionController.h:
74520         Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
74521         which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
74522         Removed a comment mentioning removeRange(), as this method makes no sense without multiple
74523         selection range support.
74524
74525         * page/DOMSelection.cpp:
74526         (WebCore::DOMSelection::extend):
74527         (WebCore::DOMSelection::deleteFromDocument):
74528         (WebCore::DOMSelection::containsNode):
74529         (WebCore::DOMSelection::selectAllChildren):
74530         * page/DOMSelection.h:
74531         * page/DOMSelection.idl:
74532         Exposed the new methods.
74533
74534 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
74535
74536         Reviewed by Darin.
74537
74538         http://bugs.webkit.org/show_bug.cgi?id=15892
74539         DOM Range operations are not implemented for ProcessingInstruction nodes
74540
74541         Test: fast/dom/Range/range-processing-instructions.html
74542
74543         * dom/Range.cpp:
74544         (WebCore::Range::processContents): Implemented ProcessingInstruction cases.
74545         (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
74546         to use ProcessingInstruction.data.
74547
74548 2007-11-09  Timothy Hatcher  <timothy@apple.com>
74549
74550         Reviewed by Mark Rowe.
74551
74552         Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
74553         http://bugs.webkit.org/show_bug.cgi?id=12054
74554
74555         - Add support code for routing copy events to the focused element.
74556         - Implement copying the currently selected DOM node. The node
74557           and it's subtree is copied to the clipboard. If the node has no
74558           outerHTML, the nodeValue is copied (text nodes, etc.)
74559         - Implement copy for the resource sidebar. The URL is copied for the
74560           currently selected resource.
74561
74562         * page/inspector/DocumentPanel.js:
74563         * page/inspector/inspector.js:
74564
74565 2007-11-09  Antti Koivisto  <antti@apple.com>
74566
74567         Reviewed by Adele.
74568
74569         Fix occasional blank video with poster attribute.
74570
74571         * html/HTMLMediaElement.cpp:
74572         (WebCore::HTMLMediaElement::load):
74573         (WebCore::HTMLMediaElement::didRestoreFromCache):
74574         Just calling updateFromElement() does the right thing for both poster image and video.
74575
74576 2007-11-04  Sam Weinig  <sam@webkit.org>
74577
74578         Reviewed by Adam Roben.
74579
74580         <rdar://problem/5435940>
74581         The COM bindings for the DOM should be autogenerated like the other DOM bindings
74582
74583         Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
74584         is being introduced in this patch and to insure that no conflicts arise, a temporary
74585         prefix of "GEN_" has been used for all the new classes.
74586
74587         The build architecture for these bindings differs slightly from the other autogenerated
74588         bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
74589         is done for the Objective-C bindigs currently), the IDLs and generation scripts are
74590         migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
74591
74592         This commit includes:
74593             - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
74594               and ref-counting.
74595             - Generating all of the Core DOM and most of HTML and CSS
74596             - Generating Event, EventTarget, and EventListener
74597
74598         * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
74599         * WebCore.vcproj/WebCore.vcproj:
74600         * WebCore.vcproj/migrate-idls.sh: Added.
74601         * bindings/scripts/CodeGenerator.pm:
74602         * bindings/scripts/CodeGeneratorCOM.pm: Added.
74603         * dom/EventListener.h: Make the isWindowEvent parameter default to false
74604         to allow autogeneration based on the IDL.
74605
74606 2007-11-09  Tristan O'Tierney  <tristan@apple.com>
74607
74608         Reviewed by Timothy Hatcher.
74609         
74610         This patch is for the WebKit side of <rdar://problem/5591115>.
74611         We need a way to tell context menu navigations, such as "Open in New Window"
74612         to override any sort of browser preference for tab based navigation.
74613
74614         * bridge/WindowFeatures.h:
74615         (WebCore::WindowFeatures::WindowFeatures):
74616         Added a new struct member var, preferredType
74617         and an accompanying enum type PreferredType
74618         to send a window type recommendation up to the Chrome. 
74619         
74620         * page/ContextMenuController.cpp:
74621         (WebCore::openNewWindow):
74622         Set the window features to recommend a new Window for
74623         "Open in New Window" context menu action.
74624
74625 2007-11-08  Adam Roben  <aroben@apple.com>
74626
74627         Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick
74628
74629         We now match the behavior of Firefox and IE, which is to always just
74630         send a click event to the focused button when the Enter key is pressed
74631         (previously we were submitting forms directly in some cases).
74632
74633         Reviewed by Adele.
74634
74635         Test: fast/forms/enter-clicks-buttons.html
74636
74637         * html/HTMLButtonElement.cpp:
74638         (WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
74639         fancy when Enter is pressed on a <button type=button> -- just send a
74640         click event like we do for other button types.
74641         * html/HTMLInputElement.cpp:
74642         (WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
74643         the same way we treat type=submit and type=reset: just send a click
74644         event when Enter is pressed.
74645
74646 2007-11-09  Dan Bernstein  <mitz@apple.com>
74647
74648         Reviewed by Antti Koivisto.
74649
74650         - fix a bug in invisible layer culling: dynamically changing a 
74651           descendant of an invisible layer to be visible did not work
74652
74653         Test: fast/layers/layer-content-visibility-change.html
74654
74655         * rendering/RenderLayer.cpp:
74656         (WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
74657         make sure that our stacking context rebuilds its z-order lists to
74658         include us.
74659
74660 2007-11-09  David Hyatt  <hyatt@apple.com>
74661
74662         Clean up matrix() parsing.  Make sure the first four arguments can be lengths or numbers.  The last two
74663         args can be lengths or numbers or percents.
74664
74665         Reviewed by Beth
74666
74667         * WebCore.xcodeproj/project.pbxproj:
74668         * css/CSSParser.cpp:
74669         (WebCore::TransformOperationInfo::TransformOperationInfo):
74670         (WebCore::CSSParser::parseTransform):
74671         * rendering/RenderStyle.h:
74672         (WebCore::MatrixTransformOperation::apply):
74673
74674 2007-11-09  Beth Dakin  <bdakin@apple.com>
74675
74676         Reviewed by Oliver.
74677
74678         Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix 
74679         math leads to crazy problems
74680
74681         Transform matrices accept the first four parameters as CSS lengths. 
74682         CSS lengths get mapped into WebCore::Lengths as percents by 
74683         WebCore::convertToLength(). Percent lengths cannot call value(). It 
74684         does not yield a correct result and it asserts on Debug builds. 
74685
74686         * rendering/RenderStyle.h:
74687         (WebCore::MatrixTransformOperation::apply): Instead of calling 
74688         value() on the lengths, call calcValue. This fixes the assert and 
74689         the bad rendering. 
74690
74691 2007-11-09  Simon Hausmann  <hausmann@kde.org>
74692
74693         build/link fix for Qt/Windows.
74694
74695         userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
74696         define it twice.
74697
74698         * platform/qt/TemporaryLinkStubs.cpp:
74699
74700 2007-11-09  Simon Hausmann  <hausmann@kde.org>
74701
74702         Reviewed by Holger.
74703
74704         Fix ContextMenu allocation in the Qt port.
74705
74706         Store all items and submenus value based in ContextMenu and ContextMenuItem.
74707         That fixes the crashes when the context menu was populated with sub-menus because
74708         of the use of temporary ContextMenu objects like this:
74709
74710         ContextMenu subMenu(...);
74711         subMenu.appendItem(...);
74712         subMenu.appendItem(...);
74713
74714         subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents
74715
74716         * platform/ContextMenu.h:
74717         * platform/ContextMenuItem.h:
74718         * platform/PlatformMenuDescription.h:
74719         * platform/qt/ContextMenuItemQt.cpp:
74720         (WebCore::ContextMenuItem::ContextMenuItem):
74721         (WebCore::ContextMenuItem::platformSubMenu):
74722         * platform/qt/ContextMenuQt.cpp:
74723         (WebCore::ContextMenu::ContextMenu):
74724         (WebCore::ContextMenu::~ContextMenu):
74725         (WebCore::ContextMenu::appendItem):
74726         (WebCore::ContextMenu::itemCount):
74727
74728 2007-11-09  Peter Kasting  <pkasting@google.com>
74729
74730         Reviewed by Mark Rowe.
74731
74732         http://bugs.webkit.org/show_bug.cgi?id=15909
74733         Malformed GIFs should not result in memory corruption.
74734
74735         * platform/image-decoders/gif/GIFImageDecoder.cpp:
74736         (WebCore::GIFImageDecoder::haveDecodedRow):
74737
74738 2007-11-08  Timothy Hatcher  <timothy@apple.com>
74739
74740         Reviewed by Sam Weinig.
74741
74742         Some Web Inspector CSS editing changes.
74743         - Only delete the property if all the text is delete or the new user input correctly parses.
74744           This prevents deleting the existing property if the new text is invalid.
74745         - Intercept the Escape key and cancel editing, not saving any changes.
74746
74747         * page/inspector/StylesSidebarPane.js:
74748
74749 2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>
74750
74751         Bakefiles for building WebCore, needed by wx port.
74752
74753         Reviewed by Mark Rowe.
74754
74755         * WebCoreSources.bkl: Added.
74756         * webcore-base.bkl: Added.
74757         * webcore-wx.bkl: Added.
74758
74759 2007-11-08  Justin Haygood  <jhaygood@reaktix.com>
74760
74761         Reviewed by Mark Rowe.
74762
74763         http://bugs.webkit.org/show_bug.cgi?id=15905
74764
74765         Fix builds with HTML 5 Storage support disabled.
74766         ENABLE(DATABASE) needs to be added in a few places.
74767
74768         * page/InspectorController.cpp:
74769         * storage/Database.h:
74770
74771 2007-11-08  Steve Falkenburg  <sfalken@apple.com>
74772
74773         <rdar://problem/5524082> Allow images to be dragged out directly into other apps
74774         
74775         We weren't including CF_HDROP in our image drops.  This broke drag of
74776         images out of the browser window directly into other apps (examples
74777         include notepad, mspaint, msword).
74778         
74779         Reviewed by Oliver, Ada.
74780
74781         * platform/win/ClipboardWin.cpp:
74782         (WebCore::createGlobalImageFileContent): Removed unused variable.
74783         (WebCore::createGlobalHDropContent): Added
74784         (WebCore::writeFileToDataObject): Write HDROP data if available.
74785         (WebCore::writeImageToDataObject): Write HDROP for dragged images.
74786         (WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.
74787
74788 2007-11-08  Xan Lopez  <xan@gnome.org>
74789
74790         Reviewed by Alp.
74791
74792         http://bugs.webkit.org/show_bug.cgi?id=15908
74793         Use g_object_ref_sink when available
74794
74795         * platform/gtk/PopupMenuGtk.cpp:
74796         (WebCore::PopupMenu::show):
74797         * platform/gtk/ScrollViewGtk.cpp:
74798         (WebCore::ScrollView::setGtkAdjustments):
74799
74800 2007-11-08  Dan Bernstein  <mitz@apple.com>
74801
74802         Reviewed by Beth Dakin.
74803
74804         - fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely
74805
74806         Test: fast/dom/length-attribute-mapping.html
74807
74808         * dom/StyledElement.cpp:
74809         (WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
74810         logic to stop after the first "%" or "*" in the string. This allows for
74811         "100%25" to be mapped to "100%" like it is in Firefox and WinIE.
74812
74813 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
74814
74815         - Build fix.
74816
74817         * loader/FrameLoaderClient.h:
74818         * platform/graphics/svg/SVGImageEmptyClients.h:
74819         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
74820
74821 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
74822
74823         Reviewed by Sam.
74824
74825         - windowObjectCleared() is no longer const.  It needs to setup the
74826         script debugger and cannot be const to do so.
74827
74828         * loader/FrameLoaderClient.h:
74829         * platform/graphics/svg/SVGImageEmptyClients.h:
74830         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
74831
74832 2007-11-08  Adam Roben  <aroben@apple.com>
74833
74834         Hopeful Windows build fix
74835
74836         * rendering/RenderObject.cpp: Touch this file to make it recompile.
74837
74838 2007-11-08  Sam Weinig  <sam@webkit.org>
74839
74840         Reviewed by Darin.
74841
74842         Convert JavaScript internal function objects to use one class per
74843         function.  This avoids a switch statement inside what used to be
74844         the shared function classes and will allow Shark to better analyze
74845         the code.
74846
74847         To make this switch, the value property of the HashEntry was changed
74848         to a union of an intptr_t (which is used to continue handle valueGetters)
74849         and function pointer which points to a static constructor for the
74850         individual new function objects.
74851
74852         SunSpider claims this is a 1.0% speedup.
74853
74854         - On the WebCore side, I updated CodeGeneratorJS.pm to generate the
74855           new classes and hand updated the remain non-generated (groan) classes.
74856
74857         * bindings/js/JSDOMWindowCustom.cpp:
74858         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
74859         * bindings/js/JSEventTargetNode.cpp:
74860         (WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
74861         (WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
74862         (WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
74863         * bindings/js/JSEventTargetNode.h:
74864         * bindings/js/JSHTMLInputElementBase.cpp:
74865         (WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
74866         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
74867         * bindings/js/JSHTMLInputElementBase.h:
74868         (WebCore::JSHTMLInputElementBase::):
74869         * bindings/js/JSXMLHttpRequest.cpp:
74870         (KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
74871         (KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
74872         (KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
74873         (KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
74874         (KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
74875         (KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
74876         (KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
74877         (KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
74878         (KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
74879         (KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
74880         * bindings/js/JSXMLHttpRequest.h:
74881         (KJS::JSXMLHttpRequest::impl):
74882         * bindings/js/JSXSLTProcessor.cpp:
74883         (KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
74884         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
74885         (KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
74886         (KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
74887         (KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
74888         (KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
74889         (KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
74890         (KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
74891         * bindings/js/JSXSLTProcessor.h:
74892         * bindings/js/kjs_events.cpp:
74893         (WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
74894         (WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
74895         (WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
74896         (WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
74897         * bindings/js/kjs_events.h:
74898         * bindings/js/kjs_navigator.cpp:
74899         (KJS::Plugins::):
74900         (KJS::Navigator::getOwnPropertySlot):
74901         (KJS::Plugins::getOwnPropertySlot):
74902         (KJS::PluginsFunctionRefresh::callAsFunction):
74903         (KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
74904         * bindings/js/kjs_navigator.h:
74905         (KJS::Navigator::):
74906         * bindings/js/kjs_window.cpp:
74907         (KJS::Window::getOwnPropertySlot):
74908         (KJS::Window::put):
74909         (KJS::WindowProtoFuncAToB::callAsFunction):
74910         (KJS::WindowProtoFuncBToA::callAsFunction):
74911         (KJS::WindowProtoFuncOpen::callAsFunction):
74912         (KJS::WindowProtoFuncScrollBy::callAsFunction):
74913         (KJS::WindowProtoFuncScrollTo::callAsFunction):
74914         (KJS::WindowProtoFuncMoveBy::callAsFunction):
74915         (KJS::WindowProtoFuncMoveTo::callAsFunction):
74916         (KJS::WindowProtoFuncResizeBy::callAsFunction):
74917         (KJS::WindowProtoFuncResizeTo::callAsFunction):
74918         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
74919         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
74920         (KJS::WindowProtoFuncSetInterval::callAsFunction):
74921         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
74922         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
74923         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
74924         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
74925         (KJS::Location::getOwnPropertySlot):
74926         (KJS::Location::put):
74927         (KJS::LocationProtoFuncReplace::callAsFunction):
74928         (KJS::LocationProtoFuncReload::callAsFunction):
74929         (KJS::LocationProtoFuncAssign::callAsFunction):
74930         (KJS::LocationProtoFuncToString::callAsFunction):
74931         * bindings/js/kjs_window.h:
74932         (KJS::Window::):
74933         * bindings/scripts/CodeGeneratorJS.pm:
74934
74935 2007-11-08  Mark Rowe  <mrowe@apple.com>
74936
74937         Fix the Gtk, Qt and Wx builds.
74938
74939         * platform/gtk/TemporaryLinkStubs.cpp:
74940         * platform/qt/TemporaryLinkStubs.cpp:
74941         * platform/wx/TemporaryLinkStubs.cpp:
74942
74943 2007-11-08  Mark Rowe  <mrowe@apple.com>
74944
74945         Not reviewed.  Fix two instances of includes using the wrong case in the filename.
74946
74947         * platform/graphics/mac/MoviePrivateQTKit.mm:
74948         * platform/wx/MimeTypeRegistryWx.cpp:
74949
74950 2007-11-08  Darin Adler  <darin@apple.com>
74951
74952         Reviewed by Adam.
74953
74954         - fix <rdar://problem/5552943> accesskey does not focus <button> elements
74955
74956         Test: fast/forms/access-key.html
74957
74958         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
74959         Added a call to focus.
74960
74961 2007-11-07  Darin Adler  <darin@apple.com>
74962
74963         Reviewed by Steve.
74964
74965         - cut down on notImplemented() functions on Windows
74966
74967         * bridge/AXObjectCache.h: Put #if around the accessibility
74968         global.
74969
74970         * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
74971         Moved here from TemporaryLinkStubs.
74972
74973         * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
74974         using the ResourceResponse that's now available from the DocumentLoader.
74975
74976         * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
74977         the Editor instead of the obsolete one on the Frame.
74978
74979         * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
74980         * loader/FrameLoader.h: Removed overrideMediaType.
74981
74982         * loader/gtk/DocumentLoaderGtk.cpp: Removed.
74983         * loader/mac/DocumentLoaderMac.mm: Removed.
74984         * loader/qt/DocumentLoaderQt.cpp: Removed.
74985
74986         * page/Frame.cpp: Removed transpose.
74987         * page/Frame.h: Ditto.
74988         * page/FrameView.h: Removed updateBorder.
74989         * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
74990         * page/mac/FrameMac.mm: Ditto.
74991         * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
74992         overrideMediaType.
74993         * page/qt/FrameQt.cpp: Removed issueTransposeCommand.
74994
74995         * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
74996         * platform/qt/TemporaryLinkStubs.cpp: Ditto.
74997         * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
74998         * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
74999         issueTransposeCommand, and overrideMediaType.
75000
75001         * platform/network/cf/ResourceHandleCFNet.cpp:
75002         (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
75003         (WebCore::ResourceHandle::willLoadFromCache): Ditto.
75004         * platform/win/GraphicsContextWin.cpp:
75005         (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
75006         * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
75007         * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
75008         * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.
75009
75010         * WebCore.pro: Updated for removed files.
75011         * WebCore.xcodeproj/project.pbxproj: Updated for removed file.
75012
75013 2007-11-08  Mark Rowe  <mrowe@apple.com>
75014
75015        Build fix for case-sensitive file systems.  Fix case of file names
75016        in #include's.
75017
75018         * html/HTMLMediaElement.cpp:
75019         * platform/graphics/Movie.cpp:
75020
75021 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75022
75023         Reviewed by Lars Knoll <lars@trolltech.com>.
75024
75025         Remove some warnings about not implemented methods.
75026
75027         * ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
75028         specific to the NS API and won't be implemented on Qt.
75029         * ResourceHandle::bufferedData can not be reached as we return false in
75030         ResourceHandle::supportsBufferedData.
75031
75032
75033         * platform/network/qt/ResourceHandleQt.cpp:
75034         (WebCore::ResourceHandle::supportsBufferedData):
75035
75036 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75037
75038         Reviewed by Lars Knoll <lars@trolltech.com>.
75039
75040         Cleanup checking for the request method.
75041
75042         * Check the request method only in QWebNetworkManager::add.
75043         * Currently HEAD, GET, POST are allowed and for everything else
75044         QWebNetworkManager::add returns false.
75045         * Returning false is compatible with ResourceHandle::start and it
75046         can be used in ResourceHandle::loadResourceSynchronously to generate
75047         a ResourceError
75048
75049
75050         * platform/network/qt/ResourceHandleQt.cpp:
75051         (WebCore::ResourceHandle::start):
75052         (WebCore::ResourceHandle::loadResourceSynchronously):
75053
75054 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75055
75056         Reviewed by Lars Knoll <lars@trolltech.com>.
75057
75058         Implement WebCore::callOnMainThread
75059
75060         Implemented using a global QObject, that is moved to the main thread
75061         and then sending a custom event to it.
75062         Picked a number below QEvent::User but above any other documented value.
75063
75064
75065         * platform/qt/ThreadingQt.cpp:
75066         (WebCore::PerformFunctionEvent::PerformFunctionEvent):
75067         (WebCore::MainThreadInvoker::MainThreadInvoker):
75068         (WebCore::MainThreadInvoker::event):
75069         (WebCore::callOnMainThread):
75070
75071 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75072
75073         Reviewed by Lars Knoll <lars@trolltech.com>.
75074
75075         Avoid problems with calling QPainter::begin() on an already active paintdevice
75076
75077         * Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
75078         crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
75079         * If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
75080         used by the ScrollView on a layout triggered by QWebPage::paintEvent.
75081
75082
75083         * platform/qt/WidgetQt.cpp:
75084         (WebCore::Widget::invalidateRect):
75085
75086 2007-11-08  Eric Seidel  <eric@webkit.org>
75087
75088         No review.
75089
75090         * ksvg2/svg/SVGPathElement.h: remove old comment
75091
75092 2007-11-07  Antti Koivisto  <antti@apple.com>
75093
75094         Reviewed by Ollie.
75095
75096         Ensure video renderer has correct size if video has already been loaded
75097         when it is constructed.
75098
75099         * rendering/RenderVideo.cpp:
75100         (WebCore::RenderVideo::RenderVideo):
75101
75102 2007-11-07  Antti Koivisto  <antti@apple.com>
75103
75104         Reviewed by Ollie.
75105
75106         Ensure video is visible when it should be.
75107
75108         * rendering/RenderVideo.cpp:
75109         (WebCore::RenderVideo::updateMovie):
75110
75111 2007-11-07  Dan Bernstein  <mitz@apple.com>
75112
75113         Reviewed by Darin Adler.
75114
75115         - fix <rdar://problem/5523503> Safari crashes clicking scroll bar in FaceBook 'Trips'
75116
75117         Layers and listboxes are two kinds of ScrollBarClient that can be
75118         removed while the scrollbar is tracking the mouse. The scrollbar is not
75119         destroyed until later, and meanwhile it can try to call the client,
75120         which results in a crash.
75121
75122         * manual-tests/stale-scrollbar-client-crash.html: Added.
75123         * platform/ScrollBar.h:
75124         (WebCore::Scrollbar::setClient): Added.
75125         * rendering/RenderLayer.cpp:
75126         (WebCore::RenderLayer::destroyScrollbar): Call Scrollbar::setClient().
75127         * rendering/RenderListBox.cpp:
75128         (WebCore::RenderListBox::~RenderListBox): Ditto.
75129
75130 2007-11-07  Adam Roben  <aroben@apple.com>
75131
75132         Fix <rdar://5569268> Crash when opening any FTP site in second tab/window
75133
75134         Reviewed by Sam.
75135
75136         No test possible.
75137
75138         * platform/win/SharedBufferWin.cpp:
75139         (WebCore::SharedBuffer::createWithContentsOfFile): Bail if we get an
75140         empty path, because _wfopen_s will crash if we pass it a null pointer.
75141
75142 2007-11-07  David Kilzer  <ddkilzer@apple.com>
75143
75144         WebKit confuses width/height for Media Queries device-aspect-ratio evaluation
75145         <http://bugs.webkit.org/show_bug.cgi?id=14893>
75146         <rdar://problem/5380295>
75147
75148         Reviewed by Darin.
75149
75150         Tests: fast/css/device-aspect-ratio.html
75151                fast/css/max-device-aspect-ratio.html
75152                fast/css/min-device-aspect-ratio.html
75153
75154         * css/MediaQueryEvaluator.cpp:
75155         (WebCore::parseAspectRatio): Renamed method parameters from a/b to h/v.
75156         (WebCore::device_aspect_ratioMediaFeatureEval): Renamed local variables from
75157         a/b to h/v.  Switched first two arguments of the call to cmpvalue() to fix
75158         the bug.
75159
75160 2007-11-07  Dan Bernstein  <mitz@apple.com>
75161
75162         Reviewed by Dave Hyatt.
75163
75164         - fix http://bugs.webkit.org/show_bug.cgi?id=15887
75165           REGRESSION (r27576): Crash in RenderStyle::affectedByHoverRules clicking link on Digg
75166
75167         Test: fast/css/display-none-inline-style-change-crash.html
75168
75169         * dom/Element.cpp:
75170         (WebCore::Element::recalcStyle): Fixed the crash by null-checking
75171         the current style and removed other checks that are not strictly
75172         necessary.
75173
75174 2007-11-07  Brady Eidson  <beidson@apple.com>
75175
75176         Rubberstamped by Sam
75177
75178         Remove FrameLoaderClient methods from SVG that were pruned awhile ago
75179
75180         * platform/graphics/svg/SVGImageEmptyClients.h:
75181
75182 2007-11-07  Dan Bernstein  <mitz@apple.com>
75183
75184         Reviewed by Darin Adler.
75185
75186         - fix a bug where CSS rules with :hover in the ancestor chain stopped
75187           working after changing the inline style declaration of the ancestor
75188
75189         Test: fast/css/affected-by-hover-after-style-change.html
75190
75191         * dom/Element.cpp:
75192         (WebCore::Element::recalcStyle): If we are not forcing style
75193         recalculation for all descendants, preserve any "affected by
75194         {hover|active|drag} bits that we may have acquired from them.
75195         Also renamed _style to currentStyle.
75196
75197 2007-11-06  Timothy Hatcher  <timothy@apple.com>
75198
75199         Reviewed by Adam.
75200
75201         Bug 11920: Web Inspector should have Firebug-like CSS editing
75202         http://bugs.webkit.org/show_bug.cgi?id=11920
75203
75204         * css/CSSComputedStyleDeclaration.h:
75205           (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit): Return false. I'm not sure why
75206           this was true, but computed style has no concept of implicit. So false makes more sense
75207           and makes the code simpler in the inspector. This function was added for the inspector,
75208           so this isn't a compatibility change.
75209         * page/inspector/PropertiesSection.js: Add a getter/setter to reset populated status.
75210         * page/inspector/StylesSidebarPane.js: Some refactoring along with the main support for
75211           style editing.
75212         * page/inspector/inspector.css: Style changes for propery editing and focus correctness.
75213         * page/inspector/inspector.js: Look for a handleKeyEvent function of the focus element before
75214           trying to call a function based on the element's id. Call focused and blurred on the focused
75215           element when currentFocusElement is changed. Use the new listItemElement getter instead of
75216           the private property.
75217         * page/inspector/treeoutline.js: No longer expand on double click if ondblclick is implemented.
75218           Shrink the toggle zone to 10px to better match the size of the arrow. Add an onattach call
75219           to allow generation of the title using the DOM element. Add listItemElement and
75220           childrenListElement getters.
75221         * page/inspector/utilities.js: Add new helper prototype methods on CSSStyleDeclaration.
75222         * page/inspector/DocumentPanel.js: Use the new listItemElement getter instead of the private
75223           property. Also expand the DOM node on double click now that the TreeOutline dosen't do it.
75224         * page/inspector/Resource.js: Use the new listItemElement and childrenListElement getters
75225           instead of the private properties.
75226
75227 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75228
75229         Reviewed by Alexey Proskuryakov.
75230
75231         Coding style fix, don't use inline explicitly.
75232
75233         * bridge/WindowFeatures.h:
75234
75235 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75236
75237         Reviewed by Maciej.
75238
75239         For safety provide a default constructor for WindowFeatures().
75240         ContextMenuController.cpp: createNewWindow as well as QWebPage need to
75241         create a default initialized WindowFeatures object on the fly.
75242
75243         * bridge/WindowFeatures.h:
75244         (WebCore::WindowFeatures::WindowFeatures):
75245
75246 2007-11-07  Simon Hausmann  <shausman@trolltech.com>
75247
75248         Reviewed by Lars.
75249
75250         Fix "nmake clean" for the Qt/Windows build by replacing tmp/ with a variable that ends with the correct type of slash/backslash depending on the choice of compiler/make tool.
75251
75252         * WebCore.pro:
75253
75254 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75255
75256         Reviewed by Lars.
75257
75258         Made the QWebSettings::webGraphic functions static. The implementation was using QWebSettings::global() anyway.
75259
75260         * platform/graphics/qt/ImageQt.cpp:
75261         (loadResourcePixmap):
75262
75263 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75264
75265         Reviewed by Lars.
75266
75267         Moved the WebCore::Image specific function loadResourcePixmap from qwebsettings.cpp to ImageQt.cpp and made it static.
75268
75269         * platform/graphics/qt/ImageQt.cpp:
75270         (loadResourcePixmap):
75271
75272 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75273
75274         Reviewed by Lars.
75275
75276         Restructure the context menu classes for the Qt port. ContextMenu and ContextMenuItem don't store
75277         QActions/QMenus anymore but just store the action type, tag, title and optionally submenu as created
75278         in ContextMenu::populate().
75279         For the actual Qt context menu we traverse this structure after sendContextMenuEvent and create a QMenu
75280         out of it. That menu is currently not functional anymore though.
75281
75282         * platform/ContextMenu.h:
75283         * platform/ContextMenuItem.h:
75284         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
75285         * platform/PlatformMenuDescription.h:
75286         * platform/qt/ContextMenuItemQt.cpp:
75287         (WebCore::ContextMenuItem::ContextMenuItem):
75288         (WebCore::ContextMenuItem::type):
75289         (WebCore::ContextMenuItem::setType):
75290         (WebCore::ContextMenuItem::action):
75291         (WebCore::ContextMenuItem::setAction):
75292         (WebCore::ContextMenuItem::title):
75293         (WebCore::ContextMenuItem::setTitle):
75294         (WebCore::ContextMenuItem::platformSubMenu):
75295         (WebCore::ContextMenuItem::setSubMenu):
75296         (WebCore::ContextMenuItem::setChecked):
75297         (WebCore::ContextMenuItem::setEnabled):
75298         * platform/qt/ContextMenuQt.cpp:
75299         (WebCore::ContextMenu::ContextMenu):
75300         (WebCore::ContextMenu::~ContextMenu):
75301         (WebCore::ContextMenu::appendItem):
75302         (WebCore::ContextMenu::itemCount):
75303         (WebCore::ContextMenu::insertItem):
75304         (WebCore::ContextMenu::setPlatformDescription):
75305         (WebCore::ContextMenu::platformDescription):
75306
75307 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75308
75309         Reviewed by Lars.
75310
75311         Changed ContextMenu::setPlatformDescription for the Qt port to not show the qmenu right away
75312         but instead just behave as a normal setter that takes ownership of the platform menu description (the qmenu).
75313         Instead now QWebPage::contextMenuEvent() retrieves the QMenu after calling sendContextMenuEvent and calls exec()
75314         on it.
75315
75316         * platform/qt/ContextMenuQt.cpp:
75317
75318 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75319
75320         Reviewed by Lars.
75321
75322         Changed to PlatformMouseEvent constructor to allow construction from a QContextMenuEvent.
75323         Call sendContextMenuEvent on the event handler from a QWidget::contextMenuEvent re-implementation instead of in mousePressEvent.
75324
75325         * platform/PlatformMouseEvent.h:
75326         * platform/qt/PlatformMouseEventQt.cpp:
75327         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
75328
75329 2007-11-07  Lars Knoll  <lars@trolltech.com>
75330
75331         Reviewed by Simon.
75332
75333         don't put nbsp's into the plan text paste
75334         
75335         Fix both ClipboardQt and PasteboardQt to replace
75336         nbsp's with spaces before putting the text onto the
75337         native clipboard. This is consistent with Mac and Win
75338         and fixes at least editing/pasteboard/4076267-3.html
75339
75340         * platform/qt/ClipboardQt.cpp:
75341         (WebCore::ClipboardQt::writeRange):
75342         * platform/qt/PasteboardQt.cpp:
75343         (WebCore::Pasteboard::writeSelection):
75344
75345 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75346
75347         Reviewed by Lars Knoll <lars@trolltech.com>.
75348
75349         Implement Pasteboard::writeImage()
75350         
75351         * Pasteboard is now fully implemented. Copying of Images into the Clipboard
75352         is now supported.
75353         * As with URLs we only copy into the Clipboard (and not additionally to the
75354         Selection)
75355
75356         * platform/qt/PasteboardQt.cpp:
75357         (WebCore::Pasteboard::writeImage):
75358
75359 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75360
75361         Reviewed by Lars Knoll <lars@trolltech.com>.
75362
75363         Apple CodingStyle fixes
75364
75365         * platform/qt/PasteboardQt.cpp:
75366         (WebCore::Pasteboard::documentFragment):
75367
75368 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75369
75370         Reviewed by Lars Knoll <lars@trolltech.com>.
75371
75372         Implement Pasteboard::writeURL()
75373         * The URL currently gets written as text/plain and text/uri-list.
75374         The win and mac port have some more types which we currently do
75375         not support. When supporting them we can use the 'titleString'
75376         as well.
75377         * As with writeSelection we only copy into the Clipboard. We could
75378         consider copying into the Selection as well.
75379
75380         * platform/qt/PasteboardQt.cpp:
75381         (WebCore::Pasteboard::writeURL):
75382
75383 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
75384
75385         Reviewed by Lars Knoll <lars@trolltech.com>.
75386
75387         Kill whitespace
75388
75389         * platform/qt/PasteboardQt.cpp:
75390         (WebCore::Pasteboard::documentFragment):
75391
75392 2007-11-07  Lars Knoll  <lars@trolltech.com>
75393
75394         Reviewed by Simon.
75395
75396         Use the correct function calls to convert a selection to
75397         HTML or plain text.
75398
75399         * platform/qt/ClipboardQt.cpp:
75400         (WebCore::ClipboardQt::setData):
75401         (WebCore::ClipboardQt::writeRange):
75402         * platform/qt/PasteboardQt.cpp:
75403         (WebCore::Pasteboard::writeSelection):
75404
75405 2007-11-07  Lars Knoll  <lars@trolltech.com>
75406
75407         Reviewed by Simon.
75408
75409         Some more clipboard fixes.
75410         
75411         We have to set things immediately on the QClipBoard if the
75412         Clipboard object is not for dragging.
75413         
75414         This is due to the fact that the Clipboard object might be
75415         rather long lived if accessed through javascript (it'll only
75416         get deleted by JS garbage collection). We have to transfer
75417         the data over to the QClipboard before that to make things work.
75418         
75419         Fixes editing/execCommand/copy-without-selection.html
75420
75421         * platform/qt/ClipboardQt.cpp:
75422         (WebCore::ClipboardQt::ClipboardQt):
75423         (WebCore::ClipboardQt::~ClipboardQt):
75424         (WebCore::ClipboardQt::clearData):
75425         (WebCore::ClipboardQt::clearAllData):
75426         (WebCore::ClipboardQt::getData):
75427         (WebCore::ClipboardQt::setData):
75428         (WebCore::ClipboardQt::declareAndWriteDragImage):
75429         (WebCore::ClipboardQt::writeURL):
75430         (WebCore::ClipboardQt::writeRange):
75431
75432 2007-11-07  Simon Hausmann  <hausmann@kde.org>
75433
75434         Reviewed by Mark.
75435
75436         Fix compilation on Windows with non-cygwin perl. open FILE, "|-" is
75437         not supported due to implicit forks, use IPC::Open2 instead.
75438
75439         * bindings/scripts/IDLParser.pm:
75440
75441 2007-11-07  Dan Bernstein  <mitz@apple.com>
75442
75443         Reviewed by Brady Eidson.
75444
75445         - fix http://bugs.webkit.org/show_bug.cgi?id=15877
75446           REGRESSION: r27486 caused a layout regression at my bank's website
75447
75448         Test: fast/block/float/overhanging-after-height-decrease-offsets.html
75449
75450         * rendering/RenderBlock.cpp:
75451         (WebCore::RenderBlock::layoutBlock):
75452
75453 2007-11-06  Beth Dakin  <bdakin@apple.com>
75454
75455         Reviewed by Sam.
75456
75457         <rdar://problem/5575812> REGRESSION:When using absolute positioning 
75458         with overflow:auto div, WebKit seems to add an additional 15px
75459
75460         * rendering/RenderBox.cpp:
75461         (WebCore::RenderBox::containingBlockWidthForPositioned): We need to 
75462         subtract off the vertical scrollbar width too.
75463
75464 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
75465
75466         Reviewed by Dan Bernstein.
75467         
75468         <rdar://problem/5583387> ASSERTION FAILED: !refChild->hasTagName(bodyTag) when pasting newline in plain text into rich text Mail
75469         <rdar://problem/5583362> REGRESSION (5523.10.3-TOT): Newlines stripped when pasting plain text in Mail
75470
75471         * editing/markup.cpp:
75472         (WebCore::createFragmentFromText): Put paragraphs of text into clones of the block
75473         that encloses the input context, unless that block is the body, which shouldn't
75474         be cloned.  In that case, use regular divs, as we did before r27369.
75475
75476 2007-11-06  Christian Dywan  <christian@twotoasts.de>
75477
75478         Reviewed by Darin.
75479
75480         Fix http://bugs.webkit.org/show_bug.cgi?id=15828
75481         Bug 15828: WebKit GTK include and lib directory is installed in qt4-named directory
75482
75483         * WebCore.pro: Use sane default install paths for the gtk port.
75484
75485 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
75486
75487         Reviewed by Darin Adler.
75488         
75489         <rdar://problem/5576619> 
75490         REGRESSION: Caret disappears after deleting the last character in inline hole (15714)
75491
75492         * editing/TypingCommand.cpp:
75493         (WebCore::TypingCommand::deleteSelection): Like the other TypingCommands, including
75494         both of the other deletion commands, call typingAddedToOpenCommand(), which takes 
75495         the command's endingSelection and sets it as selection.
75496
75497 2007-11-06  Dan Bernstein  <mitz@apple.com>
75498
75499         Reviewed by Antti Koivisto and Dave Hyatt.
75500
75501         - fix <rdar://problem/5582961> Incorrect layout and floating object list corruption when CSS decreases a block's height
75502
75503         Test: fast/block/float/overhanging-after-height-decrease.html
75504
75505         * rendering/RenderBlock.cpp:
75506         (WebCore::RenderBlock::layoutBlock): If after calculating the height
75507         it turns out that there are overhanging floats that were not overhanging
75508         before, rescan children with overhanging floats and add them. 
75509         (WebCore::RenderBlock::layoutBlockChildren): Added a parameter that
75510         returns the lowest float bottom of any of the children.
75511         (WebCore::RenderBlock::addOverhangingFloats): Changed to return the
75512         lowest float bottom.
75513         * rendering/RenderBlock.h:
75514
75515 2007-11-06  Adele Peterson  <adele@apple.com>
75516
75517         Reviewed by Darin.
75518
75519         Switched all uses of HTMLImageLoader to use OwnPtrs.
75520
75521         * html/HTMLInputElement.h:
75522         * html/HTMLInputElement.cpp:
75523         (WebCore::HTMLInputElement::init):
75524         (WebCore::HTMLInputElement::~HTMLInputElement):
75525         (WebCore::HTMLInputElement::setInputType):
75526         (WebCore::HTMLInputElement::parseMappedAttribute):
75527         (WebCore::HTMLInputElement::attach):
75528         * html/HTMLObjectElement.h:
75529         * html/HTMLObjectElement.cpp:
75530         (WebCore::HTMLObjectElement::HTMLObjectElement):
75531         (WebCore::HTMLObjectElement::~HTMLObjectElement):
75532         (WebCore::HTMLObjectElement::parseMappedAttribute):
75533         (WebCore::HTMLObjectElement::attach):
75534         * html/HTMLVideoElement.h:
75535         * html/HTMLVideoElement.cpp:
75536         (WebCore::HTMLVideoElement::HTMLVideoElement):
75537         (WebCore::HTMLVideoElement::attach):
75538         (WebCore::HTMLVideoElement::detach):
75539         (WebCore::HTMLVideoElement::parseMappedAttribute):
75540
75541 2007-11-06  Antti Koivisto  <antti@apple.com>
75542
75543         Reviewed by Darin.
75544         
75545         Trigger media load on on src attribute changes as specified in new HTML5 draft.
75546
75547         Tests: media/video-src-change.html
75548                media/video-src-remove.html
75549                media/video-src-set.html
75550
75551         * html/HTMLMediaElement.cpp:
75552         (WebCore::HTMLMediaElement::attributeChanged):
75553         * html/HTMLMediaElement.h:
75554
75555 2007-11-06  Dan Bernstein  <mitz@apple.com>
75556
75557         Reviewed by Darin Adler.
75558
75559         - fix http://bugs.webkit.org/show_bug.cgi?id=15838
75560           Incomplete repaint toggling "How you know this person" on Facebook
75561
75562         Test: fast/repaint/make-children-non-inline.html
75563
75564         * rendering/RenderBlock.cpp:
75565         (WebCore::RenderBlock::makeChildrenNonInline): Repaint the block. This
75566         is needed because the inline children may be repositioned as they move
75567         into new anonymous blocks, but those blocks have no knowledge of where
75568         their children used to be, so they cannot invalidate those areas.
75569
75570 2007-11-06  Alexey Proskuryakov  <ap@webkit.org>
75571
75572         Reviewed by Darin.
75573
75574         http://bugs.webkit.org/show_bug.cgi?id=15847
75575         Some editing cleanup
75576
75577         No change in functionality.
75578
75579         * editing/TextIterator.cpp:
75580         (WebCore::plainText):
75581         * editing/TextIterator.h:
75582         Made WebCore::plainText() return String instead of DeprecatedString.
75583
75584         * bridge/mac/WebCoreAXObject.mm:
75585         (-[WebCoreAXObject textUnderElement]):
75586         (-[WebCoreAXObject value]):
75587         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
75588         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
75589         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
75590         Updated for the above change. There is no need to explicitly convert to NSString now.
75591
75592         * editing/EditCommand.cpp:
75593         (WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
75594         initialized in constructor body, so the work done in initializer list was wasted.
75595
75596         (WebCore::EditCommand::apply): Moved some stars.
75597         (WebCore::EditCommand::unapply): Ditto.
75598         (WebCore::EditCommand::reapply): Ditto.
75599         (WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
75600         removed one of the checks.
75601
75602         * editing/SelectionController.cpp:
75603         (WebCore::SelectionController::toString): plainText() result type now matches what we need here.
75604
75605         * page/mac/WebCoreFrameBridge.h:
75606         * page/mac/WebCoreFrameBridge.mm:
75607         Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
75608         -[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].
75609
75610 2007-11-05  Mark Rowe  <mrowe@apple.com>
75611
75612         Mac build fix.
75613
75614         * bindings/js/JSHTMLDocumentCustom.cpp:
75615         (WebCore::writeHelper):
75616
75617 2007-11-05  Adam Roben  <aroben@apple.com>
75618
75619         Don't crash if SafariTheme can't be loaded
75620
75621         PlatformScrollBarSafari and RenderThemeSafari were not checking
75622         whether SafariTheme was successfully loaded. All other uses of
75623         SafariTheme already check this.
75624
75625         Reviewed by Steve.
75626
75627         * platform/win/PlatformScrollBarSafari.cpp: Don't paint if SafariTheme
75628         couldn't be loaded.
75629         (WebCore::PlatformScrollbar::paintButton):
75630         (WebCore::PlatformScrollbar::paintTrack):
75631         (WebCore::PlatformScrollbar::paintThumb):
75632         * rendering/RenderThemeSafari.cpp:
75633         (WebCore::RenderThemeSafari::isControlStyled): Always return true if
75634         we couldn't load SafariTheme. This way we should never try to paint
75635         themed controls (and we assert as such in the paint functions).
75636         (WebCore::RenderThemeSafari::paintCheckbox):
75637         (WebCore::RenderThemeSafari::paintRadio):
75638         (WebCore::RenderThemeSafari::paintButton):
75639         (WebCore::RenderThemeSafari::paintTextField):
75640         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
75641         (WebCore::RenderThemeSafari::paintTextArea):
75642         (WebCore::RenderThemeSafari::paintMenuList):
75643         (WebCore::RenderThemeSafari::paintSliderThumb):
75644         (WebCore::RenderThemeSafari::paintSearchField):
75645         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
75646         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
75647         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
75648
75649 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
75650
75651         Adding the rest of wx port's graphics impl. 
75652
75653         Rubber-stamped by Maciej Stachowiak.
75654
75655         * platform/graphics/wx/AffineTransformWx.cpp: Added.
75656         * platform/graphics/wx/GraphicsContextWx.cpp: Added.
75657         * platform/graphics/wx/ImageBufferWx.cpp: Added.
75658         * platform/graphics/wx/ImageSourceWx.cpp: Added.
75659         * platform/graphics/wx/ImageWx.cpp: Added.
75660         * platform/graphics/wx/PathWx.cpp: Added.
75661
75662 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
75663
75664         wx port bug fixes and new files to get platform/wx building on trunk.
75665
75666         Rubber-stamped by Maciej Stachowiak.
75667
75668         * platform/wx/CursorWx.cpp:
75669         * platform/wx/FileSystemWx.cpp: Added.
75670         * platform/wx/FontCacheWx.cpp:
75671         * platform/wx/FontPlatformDataWx.cpp:
75672         * platform/wx/FontWx.cpp:
75673         * platform/wx/KeyboardEventWx.cpp:
75674         * platform/wx/LocalizedStringsWx.cpp: Added.
75675         * platform/wx/LoggingWx.cpp: Added.
75676         * platform/wx/RenderThemeWx.cpp:
75677         * platform/wx/ScrollViewWx.cpp:
75678         * platform/wx/SharedTimerWx.cpp:
75679         * platform/wx/StringWx.cpp:
75680         * platform/wx/ThreadingWx.cpp: Added.
75681         * platform/wx/WidgetWx.cpp:
75682
75683 2007-11-05  Adele Peterson  <adele@apple.com>
75684
75685         Reviewed by Maciej.
75686
75687         Fix for <rdar://problem/5579999> Add poster attribute for video element
75688
75689         * html/HTMLAttributeNames.in: Added poster attribute.
75690
75691         * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
75692           Calls imageSourceAttributeName instead of having special cases for the different kinds of elements. 
75693         * dom/Element.cpp: (WebCore::Element::imageSourceAttributeName): Added.
75694         * dom/Element.h:
75695         * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::imageSourceAttributeName): Added.
75696         * html/HTMLObjectElement.h:
75697
75698         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::movieNetworkStateChanged):
75699           Calls updatePosterImage when the network state is empty and when the first frame has been loaded.
75700         * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::rendererIsNeeded): Made this inline.  HTMLVideoElement now also implements this.
75701
75702         * html/HTMLVideoElement.idl: Added case for poster attribute.
75703         * html/HTMLVideoElement.h: Added image loader and flag to keep track of whether or not the poster image should be shown.
75704         * html/HTMLVideoElement.cpp:
75705         (WebCore::HTMLVideoElement::HTMLVideoElement): Initialize m_imageLoader and m_shouldShowPosterImage.
75706         (WebCore::HTMLVideoElement::rendererIsNeeded): Calls HTMLElement::rendererIsNeeded since HTMLMediaElements have renderer by default.
75707         (WebCore::HTMLVideoElement::createRenderer): Create a RenderImage or RenderVideo depending on whether or not the poster image should be shown.
75708         (WebCore::HTMLVideoElement::attach): Set up image loader and RenderImage if necessary.
75709         (WebCore::HTMLVideoElement::detach): Delete image loader if its no longer needed.
75710         (WebCore::HTMLVideoElement::parseMappedAttribute): Added case to process poster attribute.
75711         (WebCore::HTMLVideoElement::poster): Added getter for poster attribute.
75712         (WebCore::HTMLVideoElement::setPoster): Added setter for poster attribute.
75713         (WebCore::HTMLVideoElement::isURLAttribute): Added.
75714         (WebCore::HTMLVideoElement::imageSourceAttributeName): Added.
75715         (WebCore::HTMLVideoElement::updatePosterImage): Added.  Updates m_shouldShowPosterImage and if its changed, detaches and attaches so the renderer is correct.
75716
75717 2007-11-05  Adam Roben  <aroben@apple.com>
75718
75719         Fix <rdar://5563572> SVG image support is turned off
75720
75721         Turned on SVG images for all platforms.
75722
75723         Reviewed by Eric.
75724
75725         * WebCore.vcproj/WebCore.vcproj: Added SVGImage.{cpp,h}
75726         * loader/CachedImage.cpp:
75727         (WebCore::CachedImage::createImage): Removed platform checks for
75728         SVGImage.
75729
75730 2007-11-05  Antti Koivisto  <antti@apple.com>
75731
75732         Reviewed by Darin.
75733
75734         QTMovieView can generate callbacks during paint. This can lead to crashes.
75735         
75736         Delay callbacks so they get handled after painting is completed. No test case,
75737         I don't know how to reliably reproduce this.
75738
75739         * platform/graphics/mac/MoviePrivateQTKit.mm:
75740         (WebCore::MoviePrivate::MoviePrivate):
75741         (WebCore::MoviePrivate::~MoviePrivate):
75742         (WebCore::MoviePrivate::paint):
75743         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
75744         (-[WebCoreMovieObserver disconnect]):
75745         (-[WebCoreMovieObserver loadStateChanged:]):
75746         (-[WebCoreMovieObserver rateChanged:]):
75747         (-[WebCoreMovieObserver sizeChanged:]):
75748         (-[WebCoreMovieObserver timeChanged:]):
75749         (-[WebCoreMovieObserver volumeChanged:]):
75750         (-[WebCoreMovieObserver didEnd:]):
75751         (-[WebCoreMovieObserver setDelayCallbacks:]):
75752
75753 2007-11-05  Antti Koivisto  <antti@apple.com>
75754
75755         Reviewed by Adam.
75756
75757         Add some missing WebCore* prefixes to ObjC classes
75758
75759         * platform/mac/FileChooserMac.mm:
75760         (WebCore::FileChooser::FileChooser):
75761         * platform/mac/SharedBufferMac.mm:
75762         (WebCore::SharedBuffer::createNSData):
75763         (WebCore::SharedBuffer::createCFData):
75764         * platform/mac/SharedTimerMac.cpp:
75765         (WebCore::setSharedTimerFireTime):
75766
75767 2007-11-05  Ada Chan  <adachan@apple.com>
75768
75769         <rdar://problem/5579772> Regression: AltGr does not work
75770         We now store the system key event info in PlatforkKeyboardEvent().
75771
75772         Reviewed by Oliver.
75773
75774         * platform/PlatformKeyboardEvent.h:
75775         (WebCore::PlatformKeyboardEvent::isSystemKey):
75776         * platform/win/KeyEventWin.cpp:
75777         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
75778
75779 2007-11-02  Tristan O'Tierney  <tristan@apple.com>
75780
75781         Reviewed by Darin Adler.
75782
75783         * WebCore.xcodeproj/project.pbxproj:
75784         Set WindowFeatures.h as a Private header.
75785         
75786         * loader/FrameLoader.cpp:
75787         (WebCore::FrameLoader::createWindow):
75788         Revised to use a single createWindow function instead of
75789         two createWindow functions and one createModalDialog function.
75790         The logic for this is now addressed in WebKit in an effort
75791         to make this easier to follow.
75792         
75793         * page/Chrome.cpp:
75794         (WebCore::Chrome::createWindow):
75795         * page/Chrome.h:
75796         * page/ChromeClient.h:
75797         * page/ContextMenuController.cpp:
75798         (WebCore::openNewWindow):
75799         * platform/graphics/svg/SVGImageEmptyClients.h:
75800         (WebCore::SVGEmptyChromeClient::createWindow):
75801         Revised to take new additional windowFeatures parameter.
75802
75803 2007-11-04  Geoffrey Garen  <ggaren@apple.com>
75804
75805         Reviewed by Darin Adler.
75806         
75807         http://bugs.webkit.org/show_bug.cgi?id=15835
75808
75809         Small adaptations to new KJS::List class.
75810
75811         * bindings/js/kjs_window.cpp:
75812         (KJS::WindowFunc::callAsFunction):
75813         (KJS::ScheduledAction::ScheduledAction):
75814
75815 2007-11-05  Adam Roben  <aroben@apple.com>
75816
75817         Allow passing a base class pointer to COMPtr::copyRefTo
75818
75819         Reviewed by Sam.
75820
75821         * platform/win/COMPtr.h:
75822
75823 2007-11-05  Dan Bernstein  <mitz@apple.com>
75824
75825         Reviewed by Oliver Hunt.
75826
75827         - fix ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when a class attribute is all-whitespace
75828
75829         Test: fast/dom/class-all-whitespace.html
75830
75831         * dom/StyledElement.cpp:
75832         (WebCore::StyledElement::parseMappedAttribute): Check if there is any
75833         non-whitespace character in the class attribute.
75834
75835 2007-11-05  Brady Eidson  <beidson@apple.com>
75836
75837         Reviewed by Sam
75838
75839         Add transaction blocking to the DatabaseAuthorizer in preparation for the new version
75840         of the sql storage API
75841
75842         * storage/DatabaseAuthorizer.cpp:
75843         (WebCore::DatabaseAuthorizer::allowTransaction):
75844         * storage/DatabaseAuthorizer.h:
75845
75846 2007-11-05  Mark Rowe  <mrowe@apple.com>
75847
75848         Reviewed by Alp Toker.
75849
75850         Have getMIMETypeForExtension return a null string when no MIME type is known
75851         for the extension rather than returning "text/plain".  This prevents plugin data
75852         being dumped into object elements when plugins are disabled.
75853
75854         * platform/gtk/MIMETypeRegistryGtk.cpp:
75855         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
75856
75857 2007-11-04  Sam Weinig  <sam@webkit.org>
75858
75859         Rubber-stamped by Adam Roben.
75860
75861         Rename SecurityOrigin::allowsAccessFrom to SecurityOrigin::canAccess to 
75862         clear up ambiguity.
75863
75864         * bindings/js/kjs_window.cpp:
75865         (KJS::Window::isSafeScript):
75866         * platform/SecurityOrigin.cpp:
75867         (WebCore::SecurityOrigin::canAccess):
75868         * platform/SecurityOrigin.h:
75869
75870 2007-11-04  Timothy Hatcher  <timothy@apple.com>
75871
75872         Reviewed by Adam.
75873
75874         Bug 15834: There are many subtle bugs in the Styles pane of the Web Inspector
75875         http://bugs.webkit.org/show_bug.cgi?id=15834
75876
75877         - Broke up DocumentPanel and added three SidebarPane sub-classes.
75878         - Fixed many Style pane bugs, including:
75879           * Poor handling of duplicate properties in the same rule. Some of this can't be
75880             fixed since we can't only get the "winning" value for duplicate properties.
75881             So we should only show one entry per unique property name.
75882           * Computed style does not show font shorthand sub-properties if 'font' was used.
75883           * Property priority was broken, the wrong properties were crossed out.
75884           * The 'border' shorthand shows null for the shorthand value.
75885           * Shorthands didn't show their priority (e.g. !important).
75886           * HSL and HTML hex colors didn't have preview swatch blocks.
75887           * Code refactoring, making it easier to reuse for console.log later.
75888
75889         * page/inspector/DocumentPanel.js: Move sidebar pane code to three seperate
75890           classes in new files.
75891         * page/inspector/MetricsSidebarPane.js: Added.
75892         * page/inspector/Panel.js: Remove an InspectorController.log() call.
75893         * page/inspector/PropertiesSection.js: Add the section to the TreeOutline.
75894           So TreeElements can access properties on their section.
75895         * page/inspector/PropertiesSidebarPane.js: Added.
75896         * page/inspector/SidebarPane.js: Remove the explicit asignment of the
75897           onexpand and oncollapse to null. These were hiding prototypes.
75898         * page/inspector/StylesSidebarPane.js: Added.
75899         * page/inspector/inspector.html: Include the new script files.
75900         * page/inspector/treeoutline.js: If a null representedObject is passed
75901           in just use a empty object.
75902
75903 2007-11-04  David D. Kilzer  <ddkilzer@webkit.org>
75904
75905         Fix build when spaces appear in the WebKit source path.
75906
75907         Reviewed by Mark Rowe.
75908
75909         * bindings/scripts/IDLParser.pm: Use safer open() method which lists
75910         arguments individually and prevents the need to work around spaces
75911         in the path.
75912
75913 2007-11-04  Alp Toker  <alp@atoker.com>
75914
75915         Reviewed by Alexey Proskuryakov.
75916
75917         Fix a crash when no clipboard text is available
75918
75919         * platform/gtk/PasteboardGtk.cpp:
75920         (WebCore::Pasteboard::plainText):
75921
75922 2007-11-03  Darin Adler  <darin@apple.com>
75923
75924         Reviewed by Maciej.
75925
75926         - WebCore part of http://bugs.webkit.org/show_bug.cgi?id=15821
75927           remove unused PCRE features for speed
75928
75929         * page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
75930         * page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement):
75931         Remove use of "[[:digit:]]" syntax. This hasn't worked for some time.
75932         Use "\d" instead.
75933
75934         * platform/RegularExpression.h: Remove the unused cap function. We can
75935         add it back later if we find we need it.
75936         * platform/RegularExpression.cpp:
75937         (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore
75938         regular expression entry point changes.
75939         (WebCore::RegularExpression::Private::~Private): Ditto.
75940         (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL.
75941         This means that regular expressions with metacharactesr like ^ in them
75942         won't work any more with non-whole-string searches, but we don't use
75943         any regular expressions like that.
75944
75945 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
75946
75947         Update the link stubs to match the current build,
75948         and fix coding style issues.
75949
75950         Reviewed by Mark Rowe.
75951
75952         * platform/wx/TemporaryLinkStubs.cpp:
75953         (loadResourceIntoArray):
75954         (findNextSentenceFromIndex):
75955         (findSentenceBoundary):
75956         (Frame::dashboardRegionsChanged):
75957         (WebCore::historyContains):
75958         (CachedPage::close):
75959         (Editor::showStylesPanel):
75960         (EventHandler::passSubframeEventToSubframe):
75961         (EventHandler::passWheelEventToWidget):
75962         (WebCore::currentTextBreakLocaleID):
75963
75964 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
75965
75966         wx <-> WebKit conversions for IntPoint, IntRect and FloatRect
75967
75968         Reviewed by Mark Rowe.
75969
75970         * platform/graphics/wx/FloatRectWx.cpp: Added.
75971         * platform/graphics/wx/IntPointWx.cpp: Added.
75972         * platform/graphics/wx/IntRectWx.cpp: Added.
75973
75974 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
75975
75976         wx <-> WebKit data type conversions for Pen and Color.
75977
75978         Reviewed by Darin Adler.
75979
75980         * platform/graphics/wx: Added.
75981         * platform/graphics/wx/ColorWx.cpp: Added.
75982         * platform/graphics/wx/PenWx.cpp: Added.
75983
75984 2007-11-03  Sam Weinig  <sam@webkit.org>
75985
75986         Reviewed by Oliver.
75987
75988         Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
75989         The variable had been kept around for binary compatibility, but since nothing
75990         else is there is no point in continuing to keep it around.
75991
75992         * bindings/js/JSDOMExceptionConstructor.cpp:
75993         * bindings/js/JSHTMLInputElementBase.cpp:
75994         * bindings/js/JSNamedNodesCollection.cpp:
75995         * bindings/js/JSXMLHttpRequest.cpp:
75996         * bindings/js/JSXSLTProcessor.cpp:
75997         * bindings/js/kjs_css.cpp:
75998         * bindings/js/kjs_events.cpp:
75999         * bindings/js/kjs_navigator.cpp:
76000         * bindings/js/kjs_window.cpp:
76001         * bindings/scripts/CodeGeneratorJS.pm:
76002
76003 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
76004
76005         Build fixes to get wx impls. building on trunk.
76006
76007         Reviewed by Mark Rowe.
76008
76009         * platform/wx/DragDataWx.cpp:
76010         (WebCore::DragData::containsFiles):
76011         (WebCore::DragData::asFilenames):
76012         * platform/wx/DragImageWx.cpp:
76013         (WebCore::scaleDragImage):
76014         * platform/wx/MimeTypeRegistryWx.cpp:
76015         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
76016         * platform/wx/MouseEventWx.cpp:
76017         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
76018         * platform/wx/MouseWheelEventWx.cpp:
76019         * platform/wx/PasteboardWx.cpp:
76020         (WebCore::Pasteboard::writeImage):
76021         * platform/wx/WidgetWx.cpp:
76022         (WebCore::Widget::setCursor):
76023
76024 2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>
76025
76026         Sort files(...); sections of Xcode project files.
76027
76028         Rubber-stamped by Darin.
76029
76030         * WebCore.xcodeproj/project.pbxproj:
76031         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:
76032
76033 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
76034
76035         Coding style fixes for platform/wx files.
76036
76037         Reviewed by Mark Rowe.
76038
76039         * platform/wx/ClipboardWx.cpp:
76040         * platform/wx/GlyphMapWx.cpp:
76041         * platform/wx/ScreenWx.cpp:
76042
76043 2007-11-03  Alp Toker  <alp@atoker.com>
76044
76045         Reviewed by Mark Rowe.
76046
76047         Implement platform scrollbar static width/height getters
76048
76049         * platform/gtk/PlatformScrollBar.h:
76050         * platform/gtk/PlatformScrollBarGtk.cpp:
76051         (scrollbarSize):
76052         (PlatformScrollbar::horizontalScrollbarHeight):
76053
76054 2007-11-03  Alp Toker  <alp@atoker.com>
76055
76056         Reviewed by Mark Rowe.
76057
76058         Cast function pointers to gpointer.
76059
76060         * platform/gtk/PlatformScrollBarGtk.cpp:
76061         (PlatformScrollbar::~PlatformScrollbar):
76062
76063 2007-11-03  Alp Toker  <alp@atoker.com>
76064
76065         Reviewed by Adam Roben.
76066
76067         RenderThemeGtk implementation based on Mozilla's GTK+ style code
76068
76069         There is still work needed to complete this feature.
76070
76071         * WebCore.pro:
76072         * platform/gtk/RenderThemeGtk.cpp:
76073         (WebCore::theme):
76074         (WebCore::RenderThemeGtk::RenderThemeGtk):
76075         (WebCore::supportsFocus):
76076         (WebCore::RenderThemeGtk::supportsFocusRing):
76077         (WebCore::RenderThemeGtk::controlSupportsTints):
76078         (WebCore::RenderThemeGtk::baselinePosition):
76079         (WebCore::adjustMozStyle):
76080         (WebCore::setMozState):
76081         (WebCore::paintMozWidget):
76082         (WebCore::setButtonPadding):
76083         (WebCore::setToggleSize):
76084         (WebCore::RenderThemeGtk::setCheckboxSize):
76085         (WebCore::RenderThemeGtk::paintCheckbox):
76086         (WebCore::RenderThemeGtk::setRadioSize):
76087         (WebCore::RenderThemeGtk::paintRadio):
76088         (WebCore::RenderThemeGtk::adjustButtonStyle):
76089         (WebCore::RenderThemeGtk::paintButton):
76090         (WebCore::RenderThemeGtk::adjustMenuListStyle):
76091         (WebCore::RenderThemeGtk::paintMenuList):
76092         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
76093         (WebCore::RenderThemeGtk::paintTextField):
76094         (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
76095         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
76096         (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
76097         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
76098         (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
76099         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
76100         (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
76101         (WebCore::RenderThemeGtk::paintSearchField):
76102         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
76103         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
76104         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
76105         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
76106         (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
76107         (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
76108         (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
76109         (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
76110         (WebCore::RenderThemeGtk::caretBlinkFrequency):
76111         (WebCore::RenderThemeGtk::systemFont):
76112         (WebCore::gtkStyleSetCallback):
76113         (WebCore::RenderThemeGtk::gtkContainer):
76114         (WebCore::RenderThemeGtk::gtkEntry):
76115         (WebCore::RenderThemeGtk::gtkTreeView):
76116         * platform/gtk/RenderThemeGtk.h:
76117         * platform/gtk/gtk2drawing.c: Added.
76118         (moz_gtk_enable_style_props):
76119         (ensure_window_widget):
76120         (setup_widget_prototype):
76121         (ensure_button_widget):
76122         (ensure_checkbox_widget):
76123         (ensure_radiobutton_widget):
76124         (ensure_scrollbar_widget):
76125         (ensure_spin_widget):
76126         (ensure_scale_widget):
76127         (ensure_entry_widget):
76128         (ensure_option_menu_widget):
76129         (ensure_arrow_widget):
76130         (ensure_handlebox_widget):
76131         (ensure_toolbar_widget):
76132         (ensure_tooltip_widget):
76133         (ensure_tab_widget):
76134         (ensure_progress_widget):
76135         (ensure_frame_widget):
76136         (ensure_menu_bar_widget):
76137         (ensure_menu_bar_item_widget):
76138         (ensure_menu_popup_widget):
76139         (ensure_menu_item_widget):
76140         (ensure_check_menu_item_widget):
76141         (ConvertGtkState):
76142         (TSOffsetStyleGCArray):
76143         (TSOffsetStyleGCs):
76144         (moz_gtk_button_paint):
76145         (moz_gtk_init):
76146         (moz_gtk_checkbox_get_metrics):
76147         (moz_gtk_radio_get_metrics):
76148         (moz_gtk_checkbox_get_focus):
76149         (moz_gtk_radio_get_focus):
76150         (moz_gtk_button_get_focus):
76151         (moz_gtk_option_menu_get_metrics):
76152         (moz_gtk_toggle_paint):
76153         (calculate_arrow_dimensions):
76154         (moz_gtk_scrollbar_button_paint):
76155         (moz_gtk_scrollbar_trough_paint):
76156         (moz_gtk_scrollbar_thumb_paint):
76157         (moz_gtk_spin_paint):
76158         (moz_gtk_scale_paint):
76159         (moz_gtk_scale_thumb_paint):
76160         (moz_gtk_gripper_paint):
76161         (moz_gtk_entry_paint):
76162         (moz_gtk_option_menu_paint):
76163         (moz_gtk_dropdown_arrow_paint):
76164         (moz_gtk_container_paint):
76165         (moz_gtk_toggle_label_paint):
76166         (moz_gtk_toolbar_paint):
76167         (moz_gtk_tooltip_paint):
76168         (moz_gtk_frame_paint):
76169         (moz_gtk_progressbar_paint):
76170         (moz_gtk_progress_chunk_paint):
76171         (moz_gtk_tab_paint):
76172         (moz_gtk_tabpanels_paint):
76173         (moz_gtk_menu_bar_paint):
76174         (moz_gtk_menu_popup_paint):
76175         (moz_gtk_menu_item_paint):
76176         (moz_gtk_check_menu_item_paint):
76177         (moz_gtk_window_paint):
76178         (moz_gtk_get_widget_border):
76179         (moz_gtk_get_dropdown_arrow_size):
76180         (moz_gtk_get_scalethumb_metrics):
76181         (moz_gtk_get_scrollbar_metrics):
76182         (moz_gtk_widget_paint):
76183         (moz_gtk_get_scrollbar_widget):
76184         (moz_gtk_shutdown):
76185         * platform/gtk/gtkdrawing.h: Added.
76186
76187 2007-11-03  Alp Toker  <alp@atoker.com>
76188
76189         Reviewed by Mark Rowe.
76190
76191         Do not allow scrollbars to handle wheel events
76192         
76193         We bubble the wheel event up so the parent can handle it instead.
76194
76195         * platform/gtk/PlatformScrollBarGtk.cpp:
76196         (gtkScrollEventCallback):
76197         (PlatformScrollbar::PlatformScrollbar):
76198         (PlatformScrollbar::~PlatformScrollbar):
76199
76200 2007-11-03  Alp Toker  <alp@atoker.com>
76201
76202         Reviewed by Mark Rowe.
76203
76204         Frame scrolling and invalidation fixes
76205
76206         Make upward scroll events have a positive delta to match other ports.
76207
76208         Fix the invalidation rect offset for frames so that scrolling works properly.
76209
76210         Avoid allocating negative sizes to widgets to avoid GTK+ warnings.
76211
76212         Allow tabbing to all widgets and links.
76213
76214         Fix event returns, improving the focus situation and correcting scroll wheel
76215         behavior.
76216
76217         * page/gtk/EventHandlerGtk.cpp:
76218         (WebCore::EventHandler::tabsToAllControls):
76219         (WebCore::EventHandler::passWheelEventToWidget):
76220         * platform/gtk/ScrollViewGtk.cpp:
76221         (WebCore::ScrollViewScrollbar::geometryChanged):
76222         (WebCore::ScrollView::updateContents):
76223         (WebCore::ScrollView::update):
76224         (WebCore::ScrollView::wheelEvent):
76225         (WebCore::ScrollView::updateScrollbars):
76226         * platform/gtk/WheelEventGtk.cpp:
76227         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
76228
76229 2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>
76230
76231         LGPL'ed files contain incorrect FSF address
76232         <http://bugs.webkit.org/show_bug.cgi?id=14885>
76233
76234         * bindings/js/JSSVGTransformListCustom.cpp:
76235         * ksvg2/svg/SVGException.idl:
76236         * ksvg2/svg/SVGTextPathElement.cpp:
76237         * ksvg2/svg/SVGTextPathElement.h:
76238         * ksvg2/svg/SVGViewSpec.cpp:
76239         * ksvg2/svg/SVGViewSpec.h:
76240         * platform/mac/FontCustomPlatformData.cpp:
76241         * platform/mac/FontCustomPlatformData.h:
76242         * platform/mac/FontPlatformDataMac.mm:
76243         * platform/win/FontCustomPlatformData.cpp:
76244         * platform/win/FontCustomPlatformData.h:
76245         * rendering/RenderSVGRoot.cpp:
76246         * rendering/RenderSVGRoot.h:
76247         * rendering/RenderSVGTextPath.cpp:
76248         * rendering/RenderSVGTextPath.h:
76249         * rendering/RenderSVGTransformableContainer.h:
76250         * rendering/RenderSVGViewportContainer.cpp:
76251         * rendering/RenderSVGViewportContainer.h:
76252         * rendering/SVGCharacterLayoutInfo.cpp:
76253         * rendering/SVGCharacterLayoutInfo.h:
76254         * rendering/SVGRenderSupport.cpp:
76255         * rendering/SVGRenderSupport.h:
76256
76257 2007-11-02  Antti Koivisto  <antti@apple.com>
76258
76259         Reviewed by Adam.
76260         
76261         Add video width/height DOM and content attributes from latest HTML5 draft.
76262
76263         Test: media/video-width-height.html
76264
76265         * html/HTMLVideoElement.cpp:
76266         (WebCore::HTMLVideoElement::parseMappedAttribute):
76267         (WebCore::HTMLVideoElement::width):
76268         (WebCore::HTMLVideoElement::setWidth):
76269         (WebCore::HTMLVideoElement::height):
76270         (WebCore::HTMLVideoElement::setHeight):
76271         * html/HTMLVideoElement.h:
76272         * html/HTMLVideoElement.idl:
76273
76274 2007-11-02  Darin Adler  <darin@apple.com>
76275
76276         Reviewed by Maciej.
76277
76278         * DerivedSources.make: Remove a few explicit filenames from some rules by using
76279         make variables a little more.
76280         * WebCore.LP64.exp: Fix typo, grammar.
76281
76282 2007-11-02  Darin Adler  <darin@apple.com>
76283
76284         Reviewed by Maciej.
76285
76286         - use the new HashMap::take function where appropriate
76287
76288         * bindings/js/kjs_binding.cpp:
76289         (KJS::addWrapper): Made an inline rather than a macro; inlines good, macros bad.
76290         (KJS::removeWrapper): Ditto.
76291         (KJS::removeWrappers): Ditto.
76292         (KJS::ScriptInterpreter::putDOMObject): Use the inline instead of the macro.
76293         (KJS::ScriptInterpreter::forgetDOMObject): Ditto. This involves using take instead
76294         of remove -- in theory ever so slightly less efficient, but I think it's fine.
76295         (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
76296         (KJS::ScriptInterpreter::putDOMNodeForDocument): Use the inline instead of the macro.
76297         (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Use take instead of find/remove.
76298         (KJS::ScriptInterpreter::updateDOMNodeDocument): Use the inlines instead of the macros.
76299
76300         * bindings/js/kjs_window.cpp: (KJS::Window::clearTimeout): Use take instead of find/remove.
76301         * bridge/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::remove): Ditto.
76302         * page/AnimationController.cpp: (WebCore::AnimationControllerPrivate::clear): Ditto.
76303         * rendering/RenderBlock.cpp:
76304         (WebCore::RenderBlock::~RenderBlock): Ditto.
76305         (WebCore::RenderBlock::setDesiredColumnCountAndWidth): Ditto.
76306         * rendering/RootInlineBox.cpp: Ditto.(WebCore::RootInlineBox::detachEllipsisBox): Ditto.
76307
76308 2007-11-02  Antti Koivisto  <antti@apple.com>
76309
76310         Reviewed by Darin.
76311
76312         Enable video composition.
76313
76314         * WebCore.base.exp:
76315         * platform/graphics/mac/MoviePrivateQTKit.mm:
76316         (WebCore::MoviePrivate::createQTMovieView):
76317         * platform/mac/WebCoreSystemInterface.h:
76318         * platform/mac/WebCoreSystemInterface.mm:
76319
76320 2007-11-02  Darin Adler  <darin@apple.com>
76321
76322         Reviewed by Mitz.
76323
76324         - fix http://bugs.webkit.org/show_bug.cgi?id=15806
76325           <rdar://problem/5561626> ASSERT(element->isRadioButton()) fires destroying form elements
76326
76327         Test: fast/forms/remove-radio-button-assert.html
76328
76329         * html/HTMLGenericFormElement.cpp: (WebCore::HTMLGenericFormElement::removeFromForm):
76330         Added protected function to be used by derived classes that need to do the same sort
76331         of removal from form that's automatically done by the base class in certain circumstances.
76332         * html/HTMLGenericFormElement.h: Added removeFromForm.
76333
76334         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::~HTMLInputElement):
76335         Call removeFromForm here so the element is removed before we destroy the HTMLInputElement
76336         part of this object. By the time we get to the base class's destructor it's too late.
76337         The problem is specific to radio buttons so we don't have to worry about other classes
76338         derived from HTMLGenericFormElement.
76339
76340 2007-11-02  Darin Adler  <darin@apple.com>
76341
76342         Reviewed by Mitz.
76343
76344         - speculative fix for http://bugs.webkit.org/show_bug.cgi?id=15805
76345           <rdar://problem/5510779> crashes in isLoadingMultipartContent
76346
76347         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingMultipartContent):
76348         Instead of asserting the frame loader is non-0, return false if it is 0.
76349
76350 2007-11-02  Darin Adler  <darin@apple.com>
76351
76352         Reviewed by Mitz.
76353
76354         - fix <rdar://problem/5530185> WebKit does not show <object> fallback content when both
76355           URL and MIME type is omitted
76356
76357         Already covered by existing tests (that had incorrect results).
76358
76359         * loader/FrameLoader.cpp: (WebCore::FrameLoader::requestObject): Return false to indicate
76360         failure when both URL and MIME type are empty. The old code would not attempt a load, but
76361         it would indicate success.
76362
76363         * rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget): Remove
76364         non-helpful early exit for the case where there is no URL and no type. Returning early
76365         prevents the fallback code from running.
76366
76367 2007-11-02  Alp Toker  <alp@atoker.com>
76368
76369         Reviewed by Darin.
76370
76371         Include Cairo headers properly
76372
76373         * platform/graphics/AffineTransform.h:
76374         * platform/graphics/ImageBuffer.h:
76375         * platform/graphics/cairo/AffineTransformCairo.cpp:
76376         * platform/gtk/FontPlatformDataGtk.cpp:
76377
76378 2007-11-01  Oliver Hunt  <oliver@apple.com>
76379
76380         Reviewed by Alexey.
76381
76382         Make sure we send the correct events for Capslock, Shift, Ctrl, Alt and the Windows key        
76383
76384         * platform/win/KeyEventWin.cpp:
76385         (WebCore::keyIdentifierForWindowsKeyCode):
76386         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
76387
76388 2007-11-01  Geoffrey Garen  <ggaren@apple.com>
76389
76390         Reviewed by Maciej Stachowiak.
76391         
76392         In preparation for making List a simple stack-allocated Vector:
76393
76394         Removed all instances of List copying, assignment, and/or storage.
76395         
76396         Layout tests and JS tests pass.
76397
76398         * bindings/js/kjs_window.cpp:
76399         (KJS::WindowFunc::callAsFunction): Stores a Vector of protected 
76400         JSValue*'s instead of a List now. Converts to List on the fly when 
76401         calling the timer function. This is slightly less efficient, but the 
76402         common case is 0-2 arguments, so it's no biggie.
76403
76404         (HTML iBench shows no regression. PLT does not use JS timers.)
76405         
76406         (KJS::ScheduledAction::execute): Uses the more efficient and non-copying
76407         List::slice now.
76408         (KJS::ScheduledAction::ScheduledAction): ditto
76409
76410         * bindings/objc/WebScriptObject.mm:
76411         (getListFromNSArray): Takes a List out parameter now, to avoid copying.
76412
76413 2007-11-01  Oliver Hunt  <oliver@apple.com>
76414
76415         Reviewed by Geoff.
76416
76417         Correct event behaviour on certain control keys
76418
76419         Make sure we send the correct keyDown and keyUp events for the
76420         control keys CapsLock, Shift, Ctrl, Alt, and Meta/Command, and
76421         uses Windows key codes for the event keyCode.
76422
76423         * WebCore.base.exp:
76424         * page/EventHandler.cpp:
76425         (WebCore::EventHandler::keyEvent):
76426         * platform/PlatformKeyboardEvent.h:
76427         * platform/gtk/KeyEventGtk.cpp:
76428         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
76429         * platform/mac/KeyEventMac.mm:
76430         (WebCore::keyIdentifierForKeyEvent):
76431         (WebCore::WindowsKeyCodeForKeyEvent):
76432         (WebCore::isKeyUpEvent):
76433         (WebCore::textFromEvent):
76434         (WebCore::unmodifiedTextFromEvent):
76435         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
76436         * platform/win/KeyEventWin.cpp:
76437         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
76438         * platform/wx/KeyEventWin.cpp:
76439         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
76440
76441 2007-11-01  Timothy Hatcher  <timothy@apple.com>
76442
76443         Reviewed by Sam.
76444
76445         * page/inspector/inspector.css: Use the white disclosure triangles
76446           when a parent DOM element is sepected.
76447
76448 2007-11-01  Justin Garcia  <justin.garcia@apple.com>
76449
76450         Reviewed by Oliver Hunt.
76451
76452         <rdar://problem/5195056> Huge plain text pastes are slow, time spent in ApplyStyleCommand::doApply
76453
76454         * editing/ReplaceSelectionCommand.cpp:
76455         (WebCore::ReplaceSelectionCommand::doApply): No need to match style when pasting
76456         into a plaintext-only region, since when we build the fragment to insert from
76457         plain text, we don't put any style information on it, so it will automatically
76458         match style with no intervention.
76459         * editing/markup.cpp:
76460         (WebCore::createFragmentFromText): Place paragraphs into clones of the
76461         block being inserted into, instead of default paragraph elements,
76462         so that when inserted content will match the surrounding paragraph style.
76463         This was broken before, but I haven't added a layout test yet because
76464         there currently isn't a way to get only plain text onto the pasteboard
76465         in a layout test.
76466
76467 2007-11-01  Sam Weinig  <sam@webkit.org>
76468
76469         Reviewed by Adam Roben. 
76470
76471         Add a releaseRef method to COMPtr which matches the behavior
76472         of the method by the same name in PassRefPtr.  This is in
76473         preparation of adding autogenerated COM DOM bindings.
76474
76475         * platform/win/COMPtr.h:
76476         (COMPtr::releaseRef):
76477
76478 2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>
76479
76480         wx impl. for DragController and EventHandler interfaces.
76481
76482         Reviewed by Adam Roben.
76483
76484         * page/wx: Added.
76485         * page/wx/DragControllerWx.cpp: Added.
76486         (WebCore::DragController::isCopyKeyDown):
76487         (WebCore::DragController::dragOperation):
76488         (WebCore::DragController::maxDragImageSize):
76489         * page/wx/EventHandlerWx.cpp: Added.
76490         (WebCore::EventHandler::passMousePressEventToSubframe):
76491         (WebCore::EventHandler::passMouseMoveEventToSubframe):
76492         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
76493         (WebCore::EventHandler::passMousePressEventToScrollbar):
76494         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
76495         (WebCore::EventHandler::focusDocumentView):
76496         (WebCore::EventHandler::eventActivatedView):
76497         (WebCore::EventHandler::createDraggingClipboard):
76498
76499 2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>
76500
76501         Adding files for wx impl. of editing interfaces.
76502
76503         Reviewed by Adam Roben.
76504
76505         * editing/wx: Added.
76506         * editing/wx/EditorWx.cpp: Added.
76507         (WebCore::Editor::newGeneralClipboard):
76508
76509 2007-11-01  Sam Weinig  <sam@webkit.org>
76510
76511         Reviewed by Adam Roben.
76512
76513         Make implicit conversions from LPCSTRs and BSTRs to WebCore string
76514         types possible in preparation of adding autogenerated COM DOM bindings.
76515
76516         * platform/AtomicString.cpp: 
76517         (WebCore::AtomicString::add):
76518         * platform/AtomicString.h:
76519         (WebCore::AtomicString::AtomicString):
76520         * platform/PlatformString.h:
76521         * platform/win/BString.cpp:
76522         (WebCore::BString::BString):
76523         * platform/win/BString.h:
76524
76525 2007-11-01  Brady Eidson  <beidson@apple.com>
76526
76527         Reviewed by Anders
76528
76529         Renamed a flag inside of SQLiteTransaction and added an accessor (for future work)
76530
76531         * platform/sql/SQLiteTransaction.cpp:
76532         (WebCore::SQLiteTransaction::SQLiteTransaction):
76533         (WebCore::SQLiteTransaction::~SQLiteTransaction):
76534         (WebCore::SQLiteTransaction::begin):
76535         (WebCore::SQLiteTransaction::commit):
76536         (WebCore::SQLiteTransaction::rollback):
76537         * platform/sql/SQLiteTransaction.h:
76538         (WebCore::SQLiteTransaction::inProgress):
76539
76540 2007-11-01  Adam Roben  <aroben@apple.com>
76541
76542         Remove all duplicate xcopy commands from WebCore's post-build step
76543
76544         Also add the /d option to the copy of platform/sql.
76545
76546         Rubberstamped by Sam.
76547
76548         * WebCore.vcproj/WebCore.vcproj:
76549
76550 2007-11-01  Adele Peterson  <adele@apple.com>
76551
76552         Reviewed by Maciej.
76553
76554         Add support for the animation of the -webkit-border-raduis properties.
76555
76556         * page/AnimationController.cpp:
76557         (WebCore::blendFunc): Added for IntSize.
76558         (WebCore::ImplicitAnimation::animate): Added cases for border radius properties.
76559
76560 2007-11-01  Alp Toker  <alp@atoker.com>
76561
76562         Reviewed by Mitz Pettel.
76563
76564         Fix an unbalanced save/restore.
76565
76566         * platform/graphics/cg/ImageCG.cpp:
76567         (WebCore::BitmapImage::draw):
76568
76569 2007-11-01  David Hyatt  <hyatt@apple.com>
76570
76571         Add support for the animation of the visibility property.
76572
76573         Reviewed by oliver, aroben
76574
76575         * page/AnimationController.cpp:
76576         (WebCore::blendFunc):
76577         (WebCore::ImplicitAnimation::animate):
76578
76579 2007-11-01  Kevin McCullough  <kmccullough@apple.com>
76580
76581         Reviewed by Adam.
76582
76583         - Made COMPtr be able to be used by certain other templates,
76584         specifically HashSet.
76585
76586         * platform/win/COMPtr.h:
76587         (WTF::):
76588
76589 2007-11-01  Dan Bernstein  <mitz@apple.com>
76590
76591         Reviewed by Dave Hyatt.
76592
76593         - fix http://bugs.webkit.org/show_bug.cgi?id=15015
76594           <rdar://problem/5420308> Most of www.aol.com redraws unnecessarily when headline/photo section changes
76595
76596         Test: fast/repaint/overflow-clip-subtree-layout.html
76597
76598         This patch does not address the bigger issue of doing a full relayout
76599         of inline flows containing floats, but it addresses the problem on
76600         aol.com, where the changes that trigger layout are confined to an
76601         overflow area inside the float.
76602
76603         * page/FrameView.cpp:
76604         (WebCore::FrameView::scheduleRelayoutOfSubtree): If the new and old
76605         layout roots are different but one descends from the other, make (or
76606         keep) the ancestor as the layout root.
76607         * rendering/RenderObject.cpp:
76608         (WebCore::objectIsRelayoutBoundary): Made boxes with overflow
76609         clipping and non-auto width and height relayout boundaries.
76610
76611 2007-11-01  Alexey Proskuryakov  <ap@webkit.org>
76612
76613         Reviewed by Mark Rowe.
76614
76615         Fixed line endings that got confused in this file somehow.
76616
76617         * platform/network/ResourceResponse.cpp:
76618         (WebCore::ResourceResponse::isAttachment):
76619
76620 2007-11-01  Peter Kasting  <pkasting@google.com>
76621
76622         Reviewed by Dave Hyatt.
76623
76624         http://bugs.webkit.org/show_bug.cgi?id=15778
76625         Malformed GIFs should not result in memory corruption.
76626
76627         * platform/image-decoders/gif/GIFImageDecoder.cpp:
76628         (WebCore::GIFImageDecoder::haveDecodedRow):
76629         * platform/image-decoders/gif/GIFImageReader.cpp:
76630         (GIFImageReader::output_row):
76631         (GIFImageReader::read):
76632
76633 2007-10-31  Adam Roben  <aroben@apple.com>
76634
76635         Fix a crash when parsing a cubic-bezier function
76636
76637         Reviewed by Hyatt.
76638
76639         Test: fast/css/parse-timing-function-crash.html
76640
76641         * WebCore.vcproj/WebCore.vcproj:
76642         * css/CSSParser.cpp:
76643         (WebCore::CSSParser::parseTimingFunctionValue): Don't walk off the end
76644         of the ValueList.
76645
76646 2007-10-31  David Hyatt  <hyatt@apple.com>
76647
76648         Fix a merge error from when I applied my patch to ToT.  A couple of lines should be part of an if.
76649
76650         * rendering/RenderStyle.cpp:
76651         (WebCore::RenderStyle::adjustTransitions):
76652
76653 2007-10-31  Anders Carlsson  <andersca@apple.com>
76654
76655         Reviewed by Sam.
76656
76657         Add new SQL callback interfaces and JS implementations of them.
76658         
76659         * DerivedSources.make:
76660         * WebCore.xcodeproj/project.pbxproj:
76661         * bindings/js/JSCustomSQLStatementCallback.cpp: Added.
76662         (WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
76663         (WebCore::JSCustomSQLStatementCallback::handleEvent):
76664         * bindings/js/JSCustomSQLStatementCallback.h: Added.
76665         * bindings/js/JSCustomSQLStatementErrorCallback.cpp: Added.
76666         (WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
76667         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
76668         * bindings/js/JSCustomSQLStatementErrorCallback.h: Added.
76669         * bindings/js/JSCustomSQLTransactionCallback.cpp: Added.
76670         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
76671         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
76672         * bindings/js/JSCustomSQLTransactionCallback.h: Added.
76673         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: Added.
76674         (WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
76675         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
76676         * bindings/js/JSCustomSQLTransactionErrorCallback.h: Added.
76677         * storage/JSCustomSQLStatementCallback.h: Added.
76678         * storage/JSCustomSQLStatementErrorCallback.h: Added.
76679         * storage/JSCustomSQLTransactionCallback.h: Added.
76680         * storage/JSCustomSQLTransactionErrorCallback.h: Added.
76681         * storage/SQLStatementCallback.h: Added.
76682         (WebCore::SQLStatementCallback::~SQLStatementCallback):
76683         * storage/SQLStatementCallback.idl: Added.
76684         * storage/SQLStatementErrorCallback.h: Added.
76685         (WebCore::SQLStatementErrorCallback::~SQLStatementErrorCallback):
76686         * storage/SQLStatementErrorCallback.idl: Added.
76687         * storage/SQLTransaction.h: Added.
76688         * storage/SQLTransaction.idl: Added.
76689         * storage/SQLTransactionCallback.h: Added.
76690         (WebCore::SQLTransactionCallback::~SQLTransactionCallback):
76691         * storage/SQLTransactionCallback.idl: Added.
76692         * storage/SQLTransactionErrorCallback.h: Added.
76693         (WebCore::SQLTransactionErrorCallback::~SQLTransactionErrorCallback):
76694         * storage/SQLTransactionErrorCallback.idl: Added.
76695
76696 2007-10-31  Justin Garcia  <justin.garcia@apple.com>
76697
76698         Reviewed by Dave Harrison.
76699
76700         <rdar://problem/5569741> Pasting content with a line break into a list can remove the list
76701
76702         * editing/htmlediting.cpp:
76703         (WebCore::enclosingEmptyListItem): A single list item can contain multiple 
76704         paragraphs, so if the incoming VisiblePosition is in an empty paragraph in a 
76705         list item, that list item isn't necessarily empty.
76706
76707 2007-10-31  David Hyatt  <hyatt@apple.com>
76708
76709         Disable style sharing for animating styles.
76710
76711         Reviewed by mitzpettel
76712
76713         * css/CSSStyleSelector.cpp:
76714         (WebCore::CSSStyleSelector::canShareStyleWithElement):
76715
76716 2007-10-31  Dan Bernstein  <mitz@apple.com>
76717
76718         Reviewed by Darin Adler.
76719
76720         - fix intermediate length calculation
76721
76722         * rendering/Length.h:
76723         (WebCore::Length::blend):
76724
76725 2007-10-31  Anders Carlsson  <andersca@apple.com>
76726
76727         Reviewed by Darin.
76728
76729         Add new SQLError implementation.
76730         
76731         * DerivedSources.make:
76732         * WebCore.vcproj/WebCore.vcproj:
76733         * WebCore.xcodeproj/project.pbxproj:
76734         * storage/SQLError.h: Added.
76735         (WebCore::SQLError::SQLError):
76736         (WebCore::SQLError::code):
76737         (WebCore::SQLError::message):
76738         * storage/SQLError.idl: Added.
76739
76740 2007-10-31  David Hyatt  <hyatt@apple.com>
76741
76742         Change the initial value of transition-property to all.  Change the initial value of
76743         transition-duration to 0.
76744
76745         Reviewed by antti
76746
76747         * rendering/RenderStyle.h:
76748         (WebCore::RenderStyle::initialTransitionDuration):
76749         (WebCore::RenderStyle::initialTransitionProperty):
76750
76751 2007-10-31  Alp Toker  <alp@atoker.com>
76752
76753         Reviewed by Mark Rowe.
76754
76755         The new Color must be marked valid.
76756
76757         * platform/graphics/gtk/ColorGtk.cpp:
76758
76759 2007-10-31  Simon Hausmann  <hausmann@kde.org>
76760
76761         Reviewed by Maciej;
76762
76763         Build fix for non-Qt builds.
76764
76765         * dom/XMLTokenizer.cpp:
76766         (WebCore::XMLTokenizer::XMLTokenizer):
76767
76768 2007-10-31  Simon Hausmann  <hausmann@kde.org>
76769
76770         Reviewed by Lars.
76771
76772         Fix dependency path to header files of the public API of the Qt port.
76773
76774         * WebCore.pro:
76775
76776 2007-10-31  Holger Freyther  <zecke@selfish.org>
76777
76778         Reviewed by Simon.
76779
76780         * QXmlStreamNamespaceDeclaration doesn't have the constructor we
76781         want to use for Qt4.3. Reenable the old code path which is likely
76782         to be dead as I have not checked if m_prefixToNamespaceMap is actually
76783         used.
76784         * Guard the entity resolver with the QT_VERSION as well.
76785         * Partially reverts 369506279abdaa863e15efed649ca19e062f2c30 and
76786         d2b54d0fc1b07a2480f4f7a1417abd7a636b0107 for Qt4.3.
76787
76788         * dom/XMLTokenizer.cpp:
76789         (WebCore::XMLTokenizer::XMLTokenizer):
76790         * dom/XMLTokenizer.h:
76791
76792 2007-10-31  Holger Freyther  <zecke@selfish.org>
76793
76794         Reviewed by Lars Knoll <lars@trolltech.com>.
76795
76796         * QMimeData::removeData will be new in Qt4.4, don't use it for Qt4.3 
76797         * Provide a bad fallback implementation to filter the format list.
76798
76799         * platform/qt/ClipboardQt.cpp:
76800         (WebCore::ClipboardQt::clearData):
76801
76802 2007-10-31  Lars Knoll  <lars@trolltech.com>
76803
76804         Reviewed by Simon.
76805
76806         add an entitiy resolver to QXmlStream.
76807         Fixes fast/parser/entities-in-attributes.xhtml.
76808
76809         * dom/XMLTokenizer.cpp:
76810         (WebCore::EntityResolver::resolveUndeclaredEntity):
76811         (WebCore::XMLTokenizer::XMLTokenizer):
76812         (WebCore::XMLTokenizer::~XMLTokenizer):
76813
76814 2007-10-31  Lars Knoll  <lars@trolltech.com>
76815
76816         Reviewed by Simon.
76817
76818         Fixes in the XML tokenizer when using QXmlStream.
76819         
76820         Use new functionality of QXmlStream in Qt 4.4 to simplify
76821         the code (but keep the old code for now to still support Qt 4.3).
76822         
76823         Add proper support for namespace handling when parsing into
76824         a document fragment.
76825
76826         * dom/XMLTokenizer.cpp:
76827         (WebCore::XMLTokenizer::XMLTokenizer):
76828         (WebCore::XMLTokenizer::write):
76829         (WebCore::XMLTokenizer::startElementNs):
76830         * dom/XMLTokenizer.h:
76831
76832 2007-10-31  Lars Knoll  <lars@trolltech.com>
76833
76834         Reviewed by Simon.
76835
76836         add support for dragging images.
76837
76838         * platform/DragImage.h:
76839         * platform/qt/ClipboardQt.cpp:
76840         (WebCore::ClipboardQt::clearData):
76841         (WebCore::ClipboardQt::setDragImage):
76842         (WebCore::ClipboardQt::setDragImageElement):
76843         (WebCore::ClipboardQt::createDragImage):
76844         (WebCore::getCachedImage):
76845         (WebCore::ClipboardQt::declareAndWriteDragImage):
76846         * platform/qt/ClipboardQt.h:
76847
76848 2007-10-31  Lars Knoll  <lars@trolltech.com>
76849
76850         Reviewed by Simon.
76851
76852         fix most of the issues I found with Clipboard and DnD.
76853
76854         * editing/qt/EditorQt.cpp:
76855         * platform/qt/ClipboardQt.cpp:
76856         (WebCore::ClipboardQt::ClipboardQt):
76857         (WebCore::ClipboardQt::~ClipboardQt):
76858         (WebCore::ClipboardQt::clearData):
76859         (WebCore::ClipboardQt::clearAllData):
76860         (WebCore::ClipboardQt::getData):
76861         (WebCore::ClipboardQt::setData):
76862         (WebCore::ClipboardQt::types):
76863         (WebCore::ClipboardQt::setDragImage):
76864         (WebCore::ClipboardQt::setDragImageElement):
76865         (WebCore::ClipboardQt::declareAndWriteDragImage):
76866         (WebCore::ClipboardQt::writeURL):
76867         (WebCore::ClipboardQt::writeRange):
76868         (WebCore::ClipboardQt::hasData):
76869         * platform/qt/ClipboardQt.h:
76870         * platform/qt/DragDataQt.cpp:
76871         (WebCore::DragData::asURL):
76872
76873 2007-10-30  Mark Rowe  <mrowe@apple.com>
76874
76875         Fix the Gtk and Qt builds by stubbing out PlatformKeyboardEvent::currentCapsLockState.
76876
76877         * platform/gtk/KeyEventGtk.cpp:
76878         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
76879         * platform/qt/PlatformKeyboardEventQt.cpp:
76880         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
76881
76882 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
76883
76884         Reviewed by Anders.
76885
76886         http://bugs.webkit.org/show_bug.cgi?id=15762
76887         XSLStylesheet loads subresources from a wrong URL
76888
76889         Covered by corrected existing tests.
76890
76891         * xml/XSLStyleSheet.cpp:
76892         (WebCore::XSLStyleSheet::parseString): Pass stylesheet URL, not
76893         the document one.
76894
76895 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
76896
76897         Reviewed by Darin.
76898
76899         http://bugs.webkit.org/show_bug.cgi?id=10818
76900         String::append does 2 full copies instead of 1 (or zero!)
76901
76902         No change in functionality, thus no test.
76903
76904         * platform/String.cpp:
76905         (WebCore::String::append): Rewrote to copy once. Also removed an ancient
76906         FIXME that doesn't seem to make any sense. Note that append() behavior doesn't 
76907         match documented String behavior ("modifications to one instance will
76908         also modify all others"), but there are a lot of methods that don't.
76909
76910 2007-10-31  Adam Roben  <aroben@apple.com>
76911
76912         Windows build fix
76913
76914         * WebCore.vcproj/WebCore.vcproj: Add [JS]ProgressEvent.{cpp,h} files.
76915
76916 2007-10-30  Adam Roben  <aroben@apple.com>
76917
76918         Windows build fixes
76919
76920         I'm not completely sure why these const issues weren't caught by GCC,
76921         but MSVC was certainly not happy with them.
76922
76923         * editing/IndentOutdentCommand.cpp:
76924         (WebCore::isIndentBlockquote):
76925         * editing/markup.cpp:
76926         (WebCore::styleFromMatchedRulesAndInlineDecl):
76927
76928 2007-10-30  David Hyatt  <hyatt@apple.com>
76929
76930         transition-property was defaulting to all when it should default to none.  
76931
76932         It was taking a string type.  I figured out how to make it take an ident instead, so you can write:
76933
76934         transition-property: opacity
76935
76936         instead of
76937
76938         transition-property: "opacity"
76939
76940         Transition layers also weren't properly repeating patterns the way they were supposed to.  I fixed that.
76941
76942         Finally, I fixed a bug in the code to fix up transition layers where something was misplaced that should have been inside a null check.
76943
76944         Reviewed by aroben
76945
76946         * css/CSSHelper.h:
76947         * css/CSSParser.cpp:
76948         (WebCore::CSSParser::parseTransitionProperty):
76949         * css/CSSStyleSelector.cpp:
76950         (WebCore::CSSStyleSelector::adjustRenderStyle):
76951         * page/AnimationController.cpp:
76952         (WebCore::ImplicitAnimation::animate):
76953         * rendering/RenderStyle.cpp:
76954         (WebCore::RenderStyle::adjustTransitions):
76955         * rendering/RenderStyle.h:
76956         (WebCore::RenderStyle::initialTransitionProperty):
76957
76958 2007-10-30  Antti Koivisto  <antti@apple.com>
76959
76960         Reviewed by Geoff.
76961
76962         Leak fix
76963
76964         * platform/graphics/mac/MoviePrivateQTKit.mm:
76965         (WebCore::MoviePrivate::getSupportedTypes):
76966
76967 2007-10-30  Dan Bernstein  <mitz@apple.com>
76968
76969         Reviewed by Stephanie Lewis.
76970
76971         - fix <rdar://problem/5547237> REGRESSION (304-ToT): Repro font-related crash in fontdatawin.cpp Line 93 (many sites)
76972
76973         * platform/win/FontDataWin.cpp:
76974         (WebCore::FontData::platformInit): Handle the case where the font has no
76975         glyphs on page zero.
76976
76977 2007-10-30  David Hyatt  <hyatt@apple.com>
76978
76979         Make sure CSS transforms can be animated using the CSS transition property.
76980
76981         Reviewed by Dan and Antti
76982
76983         * css/CSSStyleSelector.cpp:
76984         (WebCore::CSSStyleSelector::applyProperty):
76985         * page/AnimationController.cpp:
76986         (WebCore::blendFunc):
76987         (WebCore::ImplicitAnimation::animate):
76988         * rendering/Length.h:
76989         (WebCore::Length::blend):
76990         * rendering/RenderStyle.cpp:
76991         (WebCore::StyleTransformData::operator==):
76992         (WebCore::TransformOperations::operator==):
76993         (WebCore::blendLengths):
76994         (WebCore::ScaleTransformOperation::blend):
76995         (WebCore::RotateTransformOperation::blend):
76996         (WebCore::SkewTransformOperation::blend):
76997         (WebCore::TranslateTransformOperation::blend):
76998         (WebCore::MatrixTransformOperation::blend):
76999         * rendering/RenderStyle.h:
77000         (WebCore::TransformOperations::operator!=):
77001         (WebCore::TransformOperations::isEmpty):
77002         (WebCore::TransformOperations::size):
77003         (WebCore::TransformOperations::operator[]):
77004         (WebCore::TransformOperations::append):
77005         (WebCore::RenderStyle::transform):
77006         (WebCore::RenderStyle::setTransform):
77007         (WebCore::RenderStyle::initialTransform):
77008
77009 2007-10-30  Antti Koivisto  <antti@apple.com>
77010
77011         Another Qt/GTK build fix.
77012
77013         * bindings/js/JSHTMLElementWrapperFactory.cpp:
77014
77015 2007-10-30  Antti Koivisto  <antti@apple.com>
77016
77017         Attempt to fix Qt/GTK build.
77018
77019         * WebCore.pro:
77020
77021 2007-10-30  Justin Garcia  <justin.garcia@apple.com>
77022
77023         Reviewed by Darin Adler.
77024
77025         <rdar://problem/5549929> CrashTracer: [USER] 35 crashes at WebCore::CharacterData::insertData
77026         
77027         We were trying to insert a tab into a br, after the br incorrectly ended up inside
77028         a tab span.
77029         
77030         * editing/DeleteButtonController.cpp: 
77031         (WebCore::isDeletableElement): Changed to take in a const Node* instead of a Node*.
77032         * editing/DeleteSelectionCommand.cpp:
77033         (WebCore::isTableRow): Ditto.
77034         * editing/IndentOutdentCommand.cpp:
77035         (WebCore::isIndentBlockquote): Ditto.
77036         (WebCore::isListOrIndentBlockquote): Ditto.
77037         * editing/InsertLineBreakCommand.cpp:
77038         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Added, moved code from
77039         doApply here.
77040         (WebCore::InsertLineBreakCommand::doApply): 
77041         Don't upstream() the insertion position.  upstream()ing it will only have an effect
77042         when the insertion position is the first in its paragraph (since we canonicalize
77043         VisiblePositions to the upstream() candidate).  In this start of paragraph case, 
77044         upstream() can move outside inline elements like tab spans or elements that might
77045         have a different whitespace mode (added two test cases to cover these).
77046         Moved code to decide whether to insert a br or a '\n' to its own method.
77047         Removed special case code for inserting at a position inside a tab span.  We instead
77048         adjust the insertion position before insertion if it is inside a tab span and
77049         handle insertion in the appropriate if-block.  This fixes a bug where we would 
77050         only insert one line break when two were needed (added a testcase).
77051         Removed special case code for inserting before and after tables and horizontal
77052         rules.  We handle these insertions in the appropriate if-block.
77053         * editing/InsertLineBreakCommand.h:
77054         * editing/ReplaceSelectionCommand.cpp:
77055         (WebCore::isMailPasteAsQuotationNode): Change to take in a const Node*.
77056         * editing/htmlediting.cpp:
77057         (WebCore::isContentEditable): Ditto.
77058         (WebCore::isBlock): Ditto.
77059         (WebCore::enclosingNodeOfType): Changed to take a function pointer to a function
77060         that takes in a const Node*.
77061         (WebCore::isTabSpanTextNode): Check to see that the node actually a text node,
77062         and not, say, a br.
77063         * editing/htmlediting.h:
77064         * editing/markup.cpp:
77065         (WebCore::styleFromMatchedRulesAndInlineDecl): Changed to take in a const Node*.
77066         (WebCore::elementHasTextDecorationProperty): Ditto.
77067
77068 2007-10-30  Antti Koivisto  <antti@apple.com>
77069
77070         Add missing files.
77071
77072         * html/VoidCallback.cpp: Added.
77073         (VoidCallback::VoidCallback):
77074         (VoidCallback::~VoidCallback):
77075         (VoidCallback::handleEvent):
77076         (VoidCallback::execute):
77077         (VoidCallback::operator==):
77078         (WebCore::toVoidCallback):
77079         * html/VoidCallback.h: Added.
77080         * html/VoidCallback.idl: Added.
77081
77082 2007-10-30  David Kilzer  <ddkilzer@webkit.org>
77083
77084         Generated files missing from WebCore's Xcode project file
77085         <http://bugs.webkit.org/show_bug.cgi?id=15406>
77086
77087         Reviewed by Darin.
77088
77089         Added the following files to the Xcode project file (note that
77090         JSHTMLInputElementBaseTable.cpp is used as a header file):
77091
77092         - DOMCSSStyleSheetPrivate.h
77093         - DOMEventPrivate.h
77094         - DOMHTMLCollectionPrivate.h
77095         - DOMHTMLEmbedElementPrivate.h
77096         - DOMHTMLIFrameElementPrivate.h
77097         - DOMHTMLObjectElementPrivate.h
77098         - DOMHTMLSelectElementPrivate.h
77099         - DOMTextEventInternal.h
77100         - JSHTMLInputElementBaseTable.cpp
77101
77102         * DerivedSources.make: Removed DOMSVGException.h and JSSVGAnimatedPoints.h
77103         since their generated code was not used.
77104         * WebCore.xcodeproj/project.pbxproj: Added missing header files.
77105
77106 2007-10-29  Antti Koivisto  <antti@apple.com>
77107
77108         Rubber stamped by Adele.
77109
77110         Initial media (<video> and <audio>) support from feature branch and 
77111         QTKit based platform implementation.
77112         
77113         This will need to be updated to match current draft specification.
77114
77115         * Configurations/WebCore.xcconfig:
77116         * DerivedSources.make:
77117         * WebCore.base.exp:
77118         * WebCore.xcodeproj/project.pbxproj:
77119         * bindings/js/JSEventCustom.cpp:
77120         (WebCore::toJS):
77121         * bindings/js/JSHTMLAudioElementConstructor.cpp: Added.
77122         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
77123         (WebCore::JSHTMLAudioElementConstructor::implementsConstruct):
77124         (WebCore::JSHTMLAudioElementConstructor::construct):
77125         * bindings/js/JSHTMLAudioElementConstructor.h: Added.
77126         * bindings/js/JSHTMLElementWrapperFactory.cpp:
77127         (WebCore::createJSHTMLWrapper):
77128         * bindings/js/kjs_window.cpp:
77129         (KJS::Window::getValueProperty):
77130         * bindings/js/kjs_window.h:
77131         (KJS::Window::):
77132         * bindings/scripts/CodeGeneratorJS.pm:
77133         * dom/Document.cpp:
77134         (WebCore::Document::createEvent):
77135         (WebCore::Document::willSaveToCache):
77136         (WebCore::Document::didRestoreFromCache):
77137         (WebCore::Document::registerForCacheCallbacks):
77138         (WebCore::Document::unregisterForCacheCallbacks):
77139         * dom/Document.h:
77140         * dom/Element.cpp:
77141         (WebCore::Element::setBooleanAttribute):
77142         * dom/Element.h:
77143         (WebCore::Element::willSaveToCache):
77144         * dom/Event.cpp:
77145         (WebCore::Event::isProgressEvent):
77146         * dom/Event.h:
77147         * dom/EventNames.h:
77148         * dom/EventTargetNode.cpp:
77149         (WebCore::EventTargetNode::dispatchProgressEvent):
77150         * dom/EventTargetNode.h:
77151         * dom/ProgressEvent.cpp: Added.
77152         (WebCore::ProgressEvent::ProgressEvent):
77153         (WebCore::ProgressEvent::initProgressEvent):
77154         (WebCore::ProgressEvent::initProgressEventNS):
77155         * dom/ProgressEvent.h: Added.
77156         (WebCore::ProgressEvent::lengthComputable):
77157         (WebCore::ProgressEvent::loaded):
77158         (WebCore::ProgressEvent::total):
77159         (WebCore::ProgressEvent::isProgressEvent):
77160         * dom/ProgressEvent.idl: Added.
77161         * history/CachedPage.cpp:
77162         (WebCore::CachedPage::CachedPage):
77163         * html/HTMLAttributeNames.in:
77164         * html/HTMLAudioElement.cpp: Added.
77165         (WebCore::HTMLAudioElement::HTMLAudioElement):
77166         * html/HTMLAudioElement.h: Added.
77167         (WebCore::HTMLAudioElement::tagPriority):
77168         * html/HTMLAudioElement.idl: Added.
77169         * html/HTMLElement.cpp:
77170         (WebCore::inlineTagList):
77171         * html/HTMLElementFactory.cpp:
77172         (WebCore::audioConstructor):
77173         (WebCore::videoConstructor):
77174         (WebCore::sourceConstructor):
77175         (WebCore::createFunctionMap):
77176         * html/HTMLInputElement.cpp:
77177         (WebCore::HTMLInputElement::~HTMLInputElement):
77178         (WebCore::HTMLInputElement::setInputType):
77179         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
77180         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
77181         * html/HTMLMediaElement.cpp: Added.
77182         (WebCore::HTMLMediaElement::HTMLMediaElement):
77183         (WebCore::HTMLMediaElement::~HTMLMediaElement):
77184         (WebCore::HTMLMediaElement::checkDTD):
77185         (WebCore::HTMLMediaElement::rendererIsNeeded):
77186         (WebCore::HTMLMediaElement::createRenderer):
77187         (WebCore::HTMLMediaElement::insertedIntoDocument):
77188         (WebCore::HTMLMediaElement::removedFromDocument):
77189         (WebCore::HTMLMediaElement::scheduleLoad):
77190         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
77191         (WebCore::HTMLMediaElement::dispatchEventAsync):
77192         (WebCore::HTMLMediaElement::loadTimerFired):
77193         (WebCore::HTMLMediaElement::asyncEventTimerFired):
77194         (WebCore::serializeTimeOffset):
77195         (WebCore::parseTimeOffset):
77196         (WebCore::HTMLMediaElement::getTimeOffsetAttribute):
77197         (WebCore::HTMLMediaElement::setTimeOffsetAttribute):
77198         (WebCore::HTMLMediaElement::error):
77199         (WebCore::HTMLMediaElement::src):
77200         (WebCore::HTMLMediaElement::HTMLMediaElement::setSrc):
77201         (WebCore::HTMLMediaElement::currentSrc):
77202         (WebCore::HTMLMediaElement::networkState):
77203         (WebCore::HTMLMediaElement::bufferingRate):
77204         (WebCore::HTMLMediaElement::load):
77205         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
77206         (WebCore::HTMLMediaElement::movieReadyStateChanged):
77207         (WebCore::HTMLMediaElement::setReadyState):
77208         (WebCore::HTMLMediaElement::progressEventTimerFired):
77209         (WebCore::HTMLMediaElement::seek):
77210         (WebCore::HTMLMediaElement::readyState):
77211         (WebCore::HTMLMediaElement::seeking):
77212         (WebCore::HTMLMediaElement::currentTime):
77213         (WebCore::HTMLMediaElement::setCurrentTime):
77214         (WebCore::HTMLMediaElement::duration):
77215         (WebCore::HTMLMediaElement::paused):
77216         (WebCore::HTMLMediaElement::defaultPlaybackRate):
77217         (WebCore::HTMLMediaElement::setDefaultPlaybackRate):
77218         (WebCore::HTMLMediaElement::playbackRate):
77219         (WebCore::HTMLMediaElement::setPlaybackRate):
77220         (WebCore::HTMLMediaElement::ended):
77221         (WebCore::HTMLMediaElement::autoplay):
77222         (WebCore::HTMLMediaElement::setAutoplay):
77223         (WebCore::HTMLMediaElement::play):
77224         (WebCore::HTMLMediaElement::pause):
77225         (WebCore::HTMLMediaElement::loopCount):
77226         (WebCore::HTMLMediaElement::setLoopCount):
77227         (WebCore::HTMLMediaElement::start):
77228         (WebCore::HTMLMediaElement::setStart):
77229         (WebCore::HTMLMediaElement::end):
77230         (WebCore::HTMLMediaElement::setEnd):
77231         (WebCore::HTMLMediaElement::loopStart):
77232         (WebCore::HTMLMediaElement::setLoopStart):
77233         (WebCore::HTMLMediaElement::loopEnd):
77234         (WebCore::HTMLMediaElement::setLoopEnd):
77235         (WebCore::HTMLMediaElement::currentLoop):
77236         (WebCore::HTMLMediaElement::setCurrentLoop):
77237         (WebCore::HTMLMediaElement::controls):
77238         (WebCore::HTMLMediaElement::setControls):
77239         (WebCore::HTMLMediaElement::volume):
77240         (WebCore::HTMLMediaElement::setVolume):
77241         (WebCore::HTMLMediaElement::muted):
77242         (WebCore::HTMLMediaElement::setMuted):
77243         (WebCore::HTMLMediaElement::pickMedia):
77244         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
77245         (WebCore::HTMLMediaElement::movieVolumeChanged):
77246         (WebCore::HTMLMediaElement::movieDidEnd):
77247         (WebCore::HTMLMediaElement::movieCuePointReached):
77248         (WebCore::HTMLMediaElement::addCuePoint):
77249         (WebCore::HTMLMediaElement::removeCuePoint):
77250         (WebCore::HTMLMediaElement::buffered):
77251         (WebCore::HTMLMediaElement::played):
77252         (WebCore::HTMLMediaElement::seekable):
77253         (WebCore::HTMLMediaElement::effectiveStart):
77254         (WebCore::HTMLMediaElement::effectiveEnd):
77255         (WebCore::HTMLMediaElement::effectiveLoopStart):
77256         (WebCore::HTMLMediaElement::effectiveLoopEnd):
77257         (WebCore::HTMLMediaElement::activelyPlaying):
77258         (WebCore::HTMLMediaElement::endedPlayback):
77259         (WebCore::HTMLMediaElement::willSaveToCache):
77260         (WebCore::HTMLMediaElement::didRestoreFromCache):
77261         * html/HTMLMediaElement.h: Added.
77262         (WebCore::HTMLMediaElement::movie):
77263         (WebCore::HTMLMediaElement::isVideo):
77264         (WebCore::HTMLMediaElement::):
77265         (WebCore::HTMLMediaElement::CallbackEntry::CallbackEntry):
77266         * html/HTMLMediaElement.idl: Added.
77267         * html/HTMLSourceElement.cpp: Added.
77268         (WebCore::HTMLSourceElement::HTMLSourceElement):
77269         (WebCore::HTMLSourceElement::~HTMLSourceElement):
77270         (WebCore::HTMLSourceElement::insertedIntoDocument):
77271         (WebCore::HTMLSourceElement::src):
77272         (WebCore::HTMLSourceElement::setSrc):
77273         (WebCore::HTMLSourceElement::media):
77274         (WebCore::HTMLSourceElement::setMedia):
77275         (WebCore::HTMLSourceElement::type):
77276         (WebCore::HTMLSourceElement::setType):
77277         * html/HTMLSourceElement.h: Added.
77278         (WebCore::HTMLSourceElement::endTagRequirement):
77279         (WebCore::HTMLSourceElement::tagPriority):
77280         * html/HTMLSourceElement.idl: Added.
77281         * html/HTMLTagNames.in:
77282         * html/HTMLVideoElement.cpp: Added.
77283         (WebCore::HTMLVideoElement::HTMLVideoElement):
77284         (WebCore::HTMLVideoElement::videoWidth):
77285         (WebCore::HTMLVideoElement::videoHeight):
77286         * html/HTMLVideoElement.h: Added.
77287         (WebCore::HTMLVideoElement::tagPriority):
77288         (WebCore::HTMLVideoElement::isVideo):
77289         * html/HTMLVideoElement.idl: Added.
77290         * html/MediaError.h: Added.
77291         (WebCore::MediaError::):
77292         (WebCore::MediaError::MediaError):
77293         (WebCore::MediaError::code):
77294         * html/MediaError.idl: Added.
77295         * html/TimeRanges.cpp: Added.
77296         (TimeRanges::TimeRanges):
77297         (TimeRanges::start):
77298         (TimeRanges::end):
77299         (TimeRanges::add):
77300         (TimeRanges::contain):
77301         * html/TimeRanges.h: Added.
77302         (WebCore::TimeRanges::TimeRanges):
77303         (WebCore::TimeRanges::length):
77304         (WebCore::TimeRanges::Range::Range):
77305         * html/TimeRanges.idl: Added.
77306         * page/DOMWindow.idl:
77307         * platform/MIMETypeRegistry.cpp:
77308         (WebCore::initialiseSupportedMovieMIMETypes):
77309         (WebCore::initialiseMIMETypeRegistry):
77310         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
77311         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
77312         * platform/MIMETypeRegistry.h:
77313         * platform/graphics/Movie.cpp: Added.
77314         (WebCore::Movie::Movie):
77315         (WebCore::Movie::~Movie):
77316         (WebCore::Movie::load):
77317         (WebCore::Movie::cancelLoad):
77318         (WebCore::Movie::play):
77319         (WebCore::Movie::pause):
77320         (WebCore::Movie::duration):
77321         (WebCore::Movie::currentTime):
77322         (WebCore::Movie::seek):
77323         (WebCore::Movie::paused):
77324         (WebCore::Movie::seeking):
77325         (WebCore::Movie::naturalSize):
77326         (WebCore::Movie::hasVideo):
77327         (WebCore::Movie::networkState):
77328         (WebCore::Movie::readyState):
77329         (WebCore::Movie::volume):
77330         (WebCore::Movie::setVolume):
77331         (WebCore::Movie::rate):
77332         (WebCore::Movie::setRate):
77333         (WebCore::Movie::muted):
77334         (WebCore::Movie::setMuted):
77335         (WebCore::Movie::dataRate):
77336         (WebCore::Movie::setEndTime):
77337         (WebCore::Movie::addCuePoint):
77338         (WebCore::Movie::removeCuePoint):
77339         (WebCore::Movie::clearCuePoints):
77340         (WebCore::Movie::maxTimeBuffered):
77341         (WebCore::Movie::maxTimeSeekable):
77342         (WebCore::Movie::bytesLoaded):
77343         (WebCore::Movie::totalBytesKnown):
77344         (WebCore::Movie::totalBytes):
77345         (WebCore::Movie::setRect):
77346         (WebCore::Movie::visible):
77347         (WebCore::Movie::setVisible):
77348         (WebCore::Movie::paint):
77349         (WebCore::Movie::getSupportedTypes):
77350         (WebCore::Movie::networkStateChanged):
77351         (WebCore::Movie::readyStateChanged):
77352         (WebCore::Movie::volumeChanged):
77353         (WebCore::Movie::didEnd):
77354         (WebCore::Movie::cuePointReached):
77355         * platform/graphics/Movie.h: Added.
77356         (WebCore::MovieClient::~MovieClient):
77357         (WebCore::MovieClient::movieNetworkStateChanged):
77358         (WebCore::MovieClient::movieReadyStateChanged):
77359         (WebCore::MovieClient::movieVolumeChanged):
77360         (WebCore::MovieClient::movieDidEnd):
77361         (WebCore::MovieClient::movieCuePointReached):
77362         (WebCore::Movie::parentWidget):
77363         (WebCore::Movie::setParentWidget):
77364         (WebCore::Movie::rect):
77365         (WebCore::Movie::):
77366         * platform/graphics/mac/MoviePrivateQTKit.h: Added.
77367         * platform/graphics/mac/MoviePrivateQTKit.mm: Added.
77368         (WebCore::MoviePrivate::MoviePrivate):
77369         (WebCore::MoviePrivate::~MoviePrivate):
77370         (WebCore::MoviePrivate::createQTMovie):
77371         (WebCore::MoviePrivate::createQTMovieView):
77372         (WebCore::MoviePrivate::createQTTime):
77373         (WebCore::MoviePrivate::load):
77374         (WebCore::MoviePrivate::play):
77375         (WebCore::MoviePrivate::pause):
77376         (WebCore::MoviePrivate::duration):
77377         (WebCore::MoviePrivate::currentTime):
77378         (WebCore::MoviePrivate::seek):
77379         (WebCore::MoviePrivate::setEndTime):
77380         (WebCore::MoviePrivate::addCuePoint):
77381         (WebCore::MoviePrivate::removeCuePoint):
77382         (WebCore::MoviePrivate::clearCuePoints):
77383         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
77384         (WebCore::MoviePrivate::cancelSeek):
77385         (WebCore::MoviePrivate::seekTimerFired):
77386         (WebCore::MoviePrivate::cuePointTimerFired):
77387         (WebCore::MoviePrivate::paused):
77388         (WebCore::MoviePrivate::seeking):
77389         (WebCore::MoviePrivate::naturalSize):
77390         (WebCore::MoviePrivate::hasVideo):
77391         (WebCore::MoviePrivate::setVolume):
77392         (WebCore::MoviePrivate::setMuted):
77393         (WebCore::MoviePrivate::setRate):
77394         (WebCore::MoviePrivate::dataRate):
77395         (WebCore::MoviePrivate::networkState):
77396         (WebCore::MoviePrivate::readyState):
77397         (WebCore::MoviePrivate::maxTimeBuffered):
77398         (WebCore::MoviePrivate::maxTimeSeekable):
77399         (WebCore::MoviePrivate::maxTimeLoaded):
77400         (WebCore::MoviePrivate::bytesLoaded):
77401         (WebCore::MoviePrivate::totalBytesKnown):
77402         (WebCore::MoviePrivate::totalBytes):
77403         (WebCore::MoviePrivate::cancelLoad):
77404         (WebCore::MoviePrivate::updateStates):
77405         (WebCore::MoviePrivate::loadStateChanged):
77406         (WebCore::MoviePrivate::rateChanged):
77407         (WebCore::MoviePrivate::sizeChanged):
77408         (WebCore::MoviePrivate::timeChanged):
77409         (WebCore::MoviePrivate::volumeChanged):
77410         (WebCore::MoviePrivate::didEnd):
77411         (WebCore::MoviePrivate::setRect):
77412         (WebCore::MoviePrivate::setVisible):
77413         (WebCore::MoviePrivate::paint):
77414         (WebCore::MoviePrivate::getSupportedTypes):
77415         (-[WebCoreMovieObserver loadStateChanged:]):
77416         (-[WebCoreMovieObserver rateChanged:]):
77417         (-[WebCoreMovieObserver sizeChanged:]):
77418         (-[WebCoreMovieObserver timeChanged:]):
77419         (-[WebCoreMovieObserver volumeChanged:]):
77420         (-[WebCoreMovieObserver didEnd:]):
77421         (-[WebCoreMovieObserver setCallback:WebCore::]):
77422         * platform/mac/WebCoreSystemInterface.h:
77423         * platform/mac/WebCoreSystemInterface.mm:
77424         * rendering/RenderLayer.cpp:
77425         (WebCore::RenderLayer::collectLayers):
77426         * rendering/RenderVideo.cpp: Added.
77427         (WebCore::RenderVideo::RenderVideo):
77428         (WebCore::RenderVideo::~RenderVideo):
77429         (WebCore::RenderVideo::movie):
77430         (WebCore::RenderVideo::videoSizeChanged):
77431         (WebCore::RenderVideo::paint):
77432         (WebCore::RenderVideo::layout):
77433         (WebCore::RenderVideo::updateFromElement):
77434         (WebCore::RenderVideo::updateMovie):
77435         (WebCore::RenderVideo::isWidthSpecified):
77436         (WebCore::RenderVideo::isHeightSpecified):
77437         (WebCore::RenderVideo::calcReplacedWidth):
77438         (WebCore::RenderVideo::calcReplacedHeight):
77439         (WebCore::RenderVideo::calcAspectRatioWidth):
77440         (WebCore::RenderVideo::calcAspectRatioHeight):
77441         (WebCore::RenderVideo::calcPrefWidths):
77442         * rendering/RenderVideo.h: Added.
77443         (WebCore::RenderVideo::renderName):
77444
77445 2007-10-30  Sam Weinig  <sam@webkit.org>
77446
77447         Reviewed by Adam Roben.
77448
77449         Add Interface and Class UUIDs to the IDLs in preparation of adding
77450         autogeneration of the COM DOM bindings.
77451
77452         * bindings/scripts/IDLParser.pm: Relax parsing rules to allow newlines as whitespace.
77453         * css/CSSCharsetRule.idl:
77454         * css/CSSFontFaceRule.idl:
77455         * css/CSSImportRule.idl:
77456         * css/CSSMediaRule.idl:
77457         * css/CSSPageRule.idl:
77458         * css/CSSPrimitiveValue.idl:
77459         * css/CSSRule.idl:
77460         * css/CSSRuleList.idl:
77461         * css/CSSStyleDeclaration.idl:
77462         * css/CSSStyleRule.idl:
77463         * css/CSSStyleSheet.idl:
77464         * css/CSSUnknownRule.idl:
77465         * css/CSSValue.idl:
77466         * css/CSSValueList.idl:
77467         * css/Counter.idl:
77468         * css/MediaList.idl:
77469         * css/RGBColor.idl:
77470         * css/Rect.idl:
77471         * css/StyleSheet.idl:
77472         * css/StyleSheetList.idl:
77473         * dom/Attr.idl:
77474         * dom/CDATASection.idl:
77475         * dom/CharacterData.idl:
77476         * dom/Comment.idl:
77477         * dom/DOMImplementation.idl:
77478         * dom/Document.idl:
77479         * dom/DocumentFragment.idl:
77480         * dom/DocumentType.idl:
77481         * dom/Element.idl:
77482         * dom/Entity.idl:
77483         * dom/EntityReference.idl:
77484         * dom/Event.idl:
77485         * dom/EventListener.idl:
77486         * dom/EventTarget.idl:
77487         * dom/NamedNodeMap.idl:
77488         * dom/Node.idl:
77489         * dom/NodeList.idl:
77490         * dom/Notation.idl:
77491         * dom/ProcessingInstruction.idl:
77492         * dom/Text.idl:
77493         * html/CanvasGradient.idl:
77494         * html/CanvasPattern.idl:
77495         * html/CanvasRenderingContext2D.idl:
77496         * html/HTMLAnchorElement.idl:
77497         * html/HTMLAppletElement.idl:
77498         * html/HTMLAreaElement.idl:
77499         * html/HTMLBRElement.idl:
77500         * html/HTMLBaseElement.idl:
77501         * html/HTMLBaseFontElement.idl:
77502         * html/HTMLBlockquoteElement.idl:
77503         * html/HTMLBodyElement.idl:
77504         * html/HTMLButtonElement.idl:
77505         * html/HTMLCanvasElement.idl:
77506         * html/HTMLCollection.idl:
77507         * html/HTMLDListElement.idl:
77508         * html/HTMLDirectoryElement.idl:
77509         * html/HTMLDivElement.idl:
77510         * html/HTMLDocument.idl:
77511         * html/HTMLElement.idl:
77512         * html/HTMLEmbedElement.idl:
77513         * html/HTMLFieldSetElement.idl:
77514         * html/HTMLFontElement.idl:
77515         * html/HTMLFormElement.idl:
77516         * html/HTMLFrameElement.idl:
77517         * html/HTMLFrameSetElement.idl:
77518         * html/HTMLHRElement.idl:
77519         * html/HTMLHeadElement.idl:
77520         * html/HTMLHeadingElement.idl:
77521         * html/HTMLHtmlElement.idl:
77522         * html/HTMLIFrameElement.idl:
77523         * html/HTMLImageElement.idl:
77524         * html/HTMLInputElement.idl:
77525         * html/HTMLIsIndexElement.idl:
77526         * html/HTMLLIElement.idl:
77527         * html/HTMLLabelElement.idl:
77528         * html/HTMLLegendElement.idl:
77529         * html/HTMLLinkElement.idl:
77530         * html/HTMLMapElement.idl:
77531         * html/HTMLMarqueeElement.idl:
77532         * html/HTMLMenuElement.idl:
77533         * html/HTMLMetaElement.idl:
77534         * html/HTMLModElement.idl:
77535         * html/HTMLOListElement.idl:
77536         * html/HTMLObjectElement.idl:
77537         * html/HTMLOptGroupElement.idl:
77538         * html/HTMLOptionElement.idl:
77539         * html/HTMLOptionsCollection.idl:
77540         * html/HTMLParagraphElement.idl:
77541         * html/HTMLParamElement.idl:
77542         * html/HTMLPreElement.idl:
77543         * html/HTMLQuoteElement.idl:
77544         * html/HTMLScriptElement.idl:
77545         * html/HTMLSelectElement.idl:
77546         * html/HTMLStyleElement.idl:
77547         * html/HTMLTableCaptionElement.idl:
77548         * html/HTMLTableCellElement.idl:
77549         * html/HTMLTableColElement.idl:
77550         * html/HTMLTableElement.idl:
77551         * html/HTMLTableRowElement.idl:
77552         * html/HTMLTableSectionElement.idl:
77553         * html/HTMLTextAreaElement.idl:
77554         * html/HTMLTitleElement.idl:
77555         * html/HTMLUListElement.idl:
77556
77557 2007-10-30  Adele Peterson  <adele@apple.com>
77558
77559         RS by Darin.
77560
77561         * page/AnimationController.cpp: (WebCore::blendFunc): Use lround instead of round.
77562
77563 2007-10-29  Timothy Hatcher  <timothy@apple.com>
77564
77565         Reviewed by John Sullivan.
77566
77567         - Allow showing and closing the inspector programatically.
77568         - Add showConsole() and showTimeline() methods. 
77569
77570         * WebCore.base.exp: Add exports for WebKit.
77571         * page/InspectorController.cpp:
77572         (WebCore::callSimpleFunction): Renamed from callClearFunction().
77573         (WebCore::unloading): Renamed to close().
77574         (WebCore::InspectorController::InspectorController):
77575         (WebCore::InspectorController::inspect): Moved showing code to show().
77576         (WebCore::InspectorController::setWindowVisible): Show the timeline or console if needed.
77577         (WebCore::InspectorController::show): Code factored out of inspect().
77578         (WebCore::InspectorController::showConsole): Call show() and the JS showConsole().
77579         (WebCore::InspectorController::showTimeline): Call show() and the JS showTimeline().
77580         (WebCore::InspectorController::close):
77581         (WebCore::InspectorController::clearScriptResources): Call the new callSimpleFunction.
77582         (WebCore::InspectorController::clearDatabaseScriptResources): Ditto.
77583         (WebCore::InspectorController::clearScriptConsoleMessages): Ditto.
77584         (WebCore::InspectorController::clearNetworkTimeline): Ditto.
77585         * page/InspectorController.h: Add and rename methods.
77586         * page/inspector/inspector.js: Add showConsole() and showTimeline().
77587
77588 2007-10-30  Adele Peterson  <adele@apple.com>
77589
77590         Reviewed by Sam.
77591
77592         Build fix.
77593
77594         * page/AnimationController.cpp: (WebCore::blendFunc):
77595
77596 2007-10-30  Adele Peterson  <adele@apple.com>
77597
77598         Reviewed by Darin.
77599
77600         WebCore part of fix for http://bugs.webkit.org/show_bug.cgi?id=10577
77601         <rdar://problem/5103625> REGRESSION: Caps lock icon should show in password fields
77602
77603         Test: manual-tests/password-caps-lock.html
77604
77605         * WebCore.base.exp: Added symbol for capsLockStateMayHaveChanged.
77606
77607         * page/Frame.cpp: (WebCore::Frame::setIsActive): Calls capsLockStateMayHaveChanged.
77608         * page/EventHandler.cpp: (WebCore::EventHandler::capsLockStateMayHaveChanged): Added. Tells the focused node's renderer that the capsLockStateMayHaveChanged.
77609         * page/EventHandler.h:
77610
77611         * platform/PlatformKeyboardEvent.h:
77612         * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
77613         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
77614
77615         * rendering/RenderTextControl.cpp:
77616         (WebCore::RenderTextControl::RenderTextControl):
77617         (WebCore::RenderTextControl::paint): Added.  If m_shouldDrawCapsLockIndicator is true, paints the caps lock indicator after the background.
77618         (WebCore::RenderTextControl::forwardEvent): When the control gets and loses focus, update the caps lock state.
77619         (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Added. Updates m_shouldDrawCapsLockIndicator, which is true if the field is a password field, 
77620          and the frame is active, and the element is focused, and the caps lock is on.  Causes a repaint when m_shouldDrawCapsLockIndicator changes state.
77621         * rendering/RenderTextControl.h: Added m_shouldDrawCapsLockIndicator.
77622         * rendering/RenderObject.h: (WebCore::RenderObject::capsLockStateMayHaveChanged): Added.
77623
77624         * rendering/RenderTheme.h: (WebCore::RenderTheme::paintCapsLockIndicator): Added.
77625         * rendering/RenderThemeMac.h:
77626         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintCapsLockIndicator): Added.  Calls wkDrawCapsLockIndicator.
77627         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCapsLockIndicator): Added.  Calls paintThemePart for the CapsLockPart.
77628         * rendering/RenderThemeSafari.h:
77629
77630 2007-10-30  David Hyatt  <hyatt@apple.com>
77631
77632         Land support for implicit animation in CSS.
77633
77634         Reviewed by mitz, darin
77635
77636         * css/CSSParser.cpp:
77637         (WebCore::CSSParser::parseTimingFunctionValue):
77638         (WebCore::CSSParser::parseTransitionTimingFunction):
77639         (WebCore::CSSParser::parseTransitionProperty):
77640         * css/CSSStyleSelector.cpp:
77641         (WebCore::CSSStyleSelector::mapTransitionDuration):
77642         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
77643         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
77644         (WebCore::CSSStyleSelector::mapTransitionProperty):
77645         * css/CSSTimingFunctionValue.h:
77646         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
77647         (WebCore::CSSTimingFunctionValue::x1):
77648         (WebCore::CSSTimingFunctionValue::y1):
77649         (WebCore::CSSTimingFunctionValue::x2):
77650         (WebCore::CSSTimingFunctionValue::y2):
77651         * dom/Element.cpp:
77652         (WebCore::Element::styleForRenderer):
77653         (WebCore::Element::createRenderer):
77654         * dom/Node.cpp:
77655         (WebCore::Node::createRendererIfNeeded):
77656         (WebCore::Node::setRenderStyle):
77657         * page/AnimationController.cpp:
77658         (WebCore::CurveData::CurveData):
77659         (WebCore::CurveData::sampleCurveX):
77660         (WebCore::CurveData::sampleCurveY):
77661         (WebCore::CurveData::sampleCurveDerivativeX):
77662         (WebCore::CurveData::solveCurveX):
77663         (WebCore::solveEpsilon):
77664         (WebCore::solveCubicBezierFunction):
77665         (WebCore::ImplicitAnimation::finished):
77666         (WebCore::CompositeImplicitAnimation::~CompositeImplicitAnimation):
77667         (WebCore::CompositeImplicitAnimation::hasAnimationForProperty):
77668         (WebCore::ImplicitAnimation::ImplicitAnimation):
77669         (WebCore::ImplicitAnimation::~ImplicitAnimation):
77670         (WebCore::ImplicitAnimation::reset):
77671         (WebCore::ImplicitAnimation::progress):
77672         (WebCore::blendFunc):
77673         (WebCore::ImplicitAnimation::animate):
77674         (WebCore::CompositeImplicitAnimation::animate):
77675         (WebCore::CompositeImplicitAnimation::animating):
77676         (WebCore::CompositeImplicitAnimation::reset):
77677         (WebCore::AnimationControllerPrivate::hasImplicitAnimations):
77678         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
77679         (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
77680         (WebCore::AnimationControllerPrivate::get):
77681         (WebCore::AnimationControllerPrivate::clear):
77682         (WebCore::AnimationControllerPrivate::updateTimer):
77683         (WebCore::AnimationControllerPrivate::timerFired):
77684         (WebCore:::m_data):
77685         (WebCore::AnimationController::~AnimationController):
77686         (WebCore::AnimationController::cancelImplicitAnimations):
77687         (WebCore::AnimationController::updateImplicitAnimations):
77688         (WebCore::AnimationController::suspendAnimations):
77689         (WebCore::AnimationController::resumeAnimations):
77690         * page/AnimationController.h:
77691         * page/Frame.cpp:
77692         (WebCore::FramePrivate::FramePrivate):
77693         * rendering/RenderBox.cpp:
77694         (WebCore::RenderBox::setStyle):
77695         (WebCore::RenderBox::destroy):
77696         * rendering/RenderObject.cpp:
77697         (WebCore::RenderObject::setAnimatableStyle):
77698         (WebCore::RenderObject::destroy):
77699         * rendering/RenderObject.h:
77700         * rendering/RenderStyle.h:
77701         (WebCore::TimingFunction::TimingFunction):
77702         (WebCore::TimingFunction::operator==):
77703         (WebCore::TimingFunction::x1):
77704         (WebCore::TimingFunction::y1):
77705         (WebCore::TimingFunction::x2):
77706         (WebCore::TimingFunction::y2):
77707         (WebCore::TimingFunction::type):
77708         (WebCore::Transition::transitionProperty):
77709         (WebCore::Transition::setTransitionProperty):
77710         (WebCore::RenderStyle::initialTransitionProperty):
77711         * rendering/RenderWidget.cpp:
77712         (WebCore::RenderWidget::destroy):
77713
77714 2007-10-29  Beth Dakin  <bdakin@apple.com>
77715
77716         Reviewed by Hyatt.
77717
77718         Fix for <rdar://problem/5399614> anchor tag is not rendered without 
77719         text content, works in Firefox with CSS background-image (13237)
77720
77721         This patch allows empty inlines that have box decorations or width 
77722         from border/padding/margin to have line boxes.
77723
77724         * rendering/bidi.cpp:
77725         (WebCore::inlineFlowAllowsLineBox): Convenience function that 
77726         defines when we allow an inline flow to have a line box.
77727         (WebCore::requiresLineBox): Call inlineFlowAllowsLineBox.
77728         (WebCore::shouldSkipWhitespaceAfterStartObject): New function to 
77729         merge some shared code between list markers and empty inline flows 
77730         that fall at the beginning of a line.
77731         (WebCore::RenderBlock::findNextLineBreak): Make flows more like 
77732         list markers.
77733
77734         One interesting side effect of this bug appeared in our xhtml/svg 
77735         tests that generate parser error tags. The tag we generate was 
77736         actually an empty inline with box decorations. This patch causes 
77737         those inlines to draw now, and the parser errors looked strange. So 
77738         I changed it so that the parsererror tag is display:block. This 
77739         matches Firefox, and I think was the original intent of the tag 
77740         since that causes its red background and border to show up.
77741         * dom/XMLTokenizer.cpp:
77742         (WebCore::createXHTMLParserErrorHeader):
77743
77744 2007-10-29  Dan Bernstein  <mitz@apple.com>
77745
77746         Reviewed by Dave Hyatt.
77747
77748         - fix crashing tests fast/frames/inline-object-inside-frameset.html and
77749           fast/forms/form-hides-table.html
77750
77751         * rendering/RenderBox.cpp:
77752         (WebCore::RenderBox::destroy):
77753         * rendering/RenderWidget.cpp:
77754         (WebCore::RenderWidget::destroy):
77755
77756 2007-10-29  Dan Bernstein  <mitz@apple.com>
77757
77758         Reviewed by Adam Roben.
77759
77760         - fix http://bugs.webkit.org/show_bug.cgi?id=15750
77761           REGRESSION(r27173): Web Inspector freezes beneath Image::drawPattern()
77762
77763         Test: fast/backgrounds/size/zero.html
77764
77765         * platform/graphics/cg/ImageCG.cpp:
77766         (WebCore::Image::drawPattern): Added an ASSERT and an early return
77767         to guard against singular pattern transforms.
77768         * rendering/RenderBox.cpp:
77769         (WebCore::cacluateBackgroundSize): Changed to ensure a minimum tile
77770         size of 1x1.
77771
77772 2007-10-29  Alp Toker  <alp@atoker.com>
77773
77774         Reviewed by Maciej.
77775
77776         Add GTK+ convenience conversions for various primitives
77777
77778         * WebCore.pro:
77779         * platform/graphics/Color.h:
77780         * platform/graphics/IntPoint.h:
77781         * platform/graphics/IntRect.h:
77782         * platform/graphics/gtk/ColorGtk.cpp: Added.
77783         (WebCore::Color::Color):
77784         * platform/graphics/gtk/IntPointGtk.cpp: Added.
77785         (WebCore::IntPoint::IntPoint):
77786         (WebCore::IntPoint::operator GdkPoint):
77787         * platform/graphics/gtk/IntRectGtk.cpp: Added.
77788         (WebCore::IntRect::IntRect):
77789         (WebCore::IntRect::operator GdkRectangle):
77790
77791 2007-10-29  Jon Honeycutt  <jhoneycutt@apple.com>
77792
77793         Reviewed by Anders.
77794
77795         Speculative fix for <rdar://5538489> Safari 3.0.4 seed hangs at
77796         http://tgmonline.futuregamer.it/ (works fine on Safari 2.0.4 and Safari
77797         Beta for Mac)
77798         
77799         I cannot reproduce this hang, but it is likely due to our not limiting
77800         WM_USER+1 messages or InvalidateRect calls for a plugin with initially-
77801         unknown MIME type. The embed tag on the page is missing a type
77802         attribute, so as fallback, we choose to load the Flash plugin based on
77803         the file extension of "swf." However, we do not record this determined
77804         MIME type, and so our quirks cannot be established.
77805         
77806         Changed findPlugin() so that, if it fails to find a plugin for the
77807         given MIME type, it will lookup the MIME type for the file extension -
77808         overwriting its passed MIME type parameter - and search for a plugin
77809         for that MIME type.
77810
77811         * plugins/win/PluginDatabaseWin.cpp:
77812         (WebCore::PluginDatabaseWin::pluginForMIMEType): Added an early return
77813         if the MIME type is empty
77814         (WebCore::PluginDatabaseWin::MIMETypeForExtension): Added to replace
77815         pluginForExtension. Returns a String with the MIME type for the file
77816         extension. Also, changed to use case-insensitive compares
77817         (WebCore::PluginDatabaseWin::findPlugin): If we fail to find a plugin
77818         for the given extension, overwrite the incoming MIME type parameter
77819         with the MIME type for the file extension, and search for a plugin for
77820         that MIME type. Also, changed the way that the extension is determined
77821         (WebCore::PluginDatabaseWin::createPluginView): Pass a mutable String
77822         to findPlugin() so that it can be updated if necessary
77823         * plugins/win/PluginDatabaseWin.h: Changed findPlugin() to take a non-
77824         const String, removed definition of pluginForExtension, added
77825         definition for MIMETypeForExtension
77826         * plugins/win/PluginPackageWin.cpp: 
77827         (WebCore::PluginPackageWin::fetchInfo): Store the MIME type in
77828         lowercase for easier compares
77829
77830 2007-10-29  Andrew Wellington  <proton@wiretapped.net>
77831
77832         Not reviewed - build fix
77833
77834         Fix Mac Build.
77835         
77836         WebKit/WebCore/xml/XSLTProcessor.cpp:79: warning: 'level' may be used uninitialized
77837         in this function
77838
77839         * xml/XSLTProcessor.cpp:
77840         (WebCore::XSLTProcessor::parseErrorFunc):
77841
77842 2007-10-29  Alp Toker  <alp@atoker.com>
77843
77844         Reviewed by Adam Roben.
77845
77846         http://bugs.webkit.org/show_bug.cgi?id=15725
77847         [GTK] WebCore.pro header dependencies are incorrect
77848
77849         Fix header dependencies in the build system
77850
77851         INCLUDEPATH and DEPENDPATH are now up to date.
77852
77853         * WebCore.pro:
77854
77855 2007-10-29  Beth Dakin  <bdakin@apple.com>
77856
77857         Build fix.
77858
77859         * css/CSSParser.cpp:
77860         (WebCore::CSSParser::parseTimingFunctionValue):
77861         * css/CSSStyleSelector.cpp:
77862         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
77863
77864 2007-10-29  David Hyatt  <hyatt@apple.com>
77865
77866         Land the back end for CSS animated property transitions.  I am landing this in stages, so the AnimationController
77867         class is deliberately left empty.
77868
77869         Reviewed by darin/aroben
77870
77871         * WebCore.pro:
77872         * WebCore.vcproj/WebCore.vcproj:
77873         * WebCore.xcodeproj/project.pbxproj:
77874         * css/CSSComputedStyleDeclaration.cpp:
77875         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
77876         * css/CSSPropertyNames.in:
77877         * css/CSSTimingFunctionValue.cpp: Added.
77878         (WebCore::CSSTimingFunctionValue::cssText):
77879         * css/CSSTimingFunctionValue.h: Added.
77880         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
77881         (WebCore::CSSTimingFunctionValue::firstPoint):
77882         (WebCore::CSSTimingFunctionValue::secondPoint):
77883         * css/CSSValueKeywords.in:
77884         * history/CachedPage.cpp:
77885         (WebCore::CachedPage::restore):
77886         * page/AnimationController.cpp: Added.
77887         (WebCore::AnimationController::AnimationController):
77888         (WebCore::AnimationController::~AnimationController):
77889         (WebCore::AnimationController::cancelTransitions):
77890         (WebCore::AnimationController::updateTransitions):
77891         (WebCore::AnimationController::suspendAnimations):
77892         (WebCore::AnimationController::resumeAnimations):
77893         * page/AnimationController.h: Added.
77894         * page/Frame.cpp:
77895         (WebCore::Frame::animationController):
77896         (WebCore::Frame::clearTimers):
77897         * page/Frame.h:
77898         * page/FramePrivate.h:
77899         * rendering/RenderBox.cpp:
77900         (WebCore::RenderBox::setStyle):
77901         (WebCore::RenderBox::destroy):
77902         * rendering/RenderObject.cpp:
77903         (WebCore::RenderObject::animationController):
77904         * rendering/RenderObject.h:
77905         * rendering/RenderStyle.cpp:
77906         (WebCore::Transition::Transition):
77907         (WebCore::Transition::~Transition):
77908         (WebCore::Transition::operator=):
77909         (WebCore::Transition::operator==):
77910         (WebCore::Transition::fillUnsetProperties):
77911         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
77912         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
77913         (WebCore::StyleRareNonInheritedData::operator==):
77914         (WebCore::StyleRareNonInheritedData::transitionDataEquivalent):
77915         (WebCore::RenderStyle::diff):
77916         (WebCore::RenderStyle::adjustTransitions):
77917         (WebCore::RenderStyle::accessTransitions):
77918         * rendering/RenderStyle.h:
77919         (WebCore::BackgroundLayer::next):
77920         (WebCore::TimingFunction::TimingFunction):
77921         (WebCore::TimingFunction::operator==):
77922         (WebCore::Transition::next):
77923         (WebCore::Transition::isTransitionDurationSet):
77924         (WebCore::Transition::isTransitionRepeatCountSet):
77925         (WebCore::Transition::isTransitionTimingFunctionSet):
77926         (WebCore::Transition::isTransitionPropertySet):
77927         (WebCore::Transition::isEmpty):
77928         (WebCore::Transition::clearTransitionDuration):
77929         (WebCore::Transition::clearTransitionRepeatCount):
77930         (WebCore::Transition::clearTransitionTimingFunction):
77931         (WebCore::Transition::clearTransitionProperty):
77932         (WebCore::Transition::transitionDuration):
77933         (WebCore::Transition::transitionRepeatCount):
77934         (WebCore::Transition::transitionTimingFunction):
77935         (WebCore::Transition::transitionProperty):
77936         (WebCore::Transition::setTransitionDuration):
77937         (WebCore::Transition::setTransitionRepeatCount):
77938         (WebCore::Transition::setTransitionTimingFunction):
77939         (WebCore::Transition::setTransitionProperty):
77940         (WebCore::Transition::setNext):
77941         (WebCore::Transition::operator!=):
77942         (WebCore::RenderStyle::transitions):
77943         (WebCore::RenderStyle::clearTransitions):
77944         (WebCore::RenderStyle::inheritTransitions):
77945         (WebCore::RenderStyle::initialTransitionDuration):
77946         (WebCore::RenderStyle::initialTransitionRepeatCount):
77947         (WebCore::RenderStyle::initialTransitionTimingFunction):
77948         (WebCore::RenderStyle::initialTransitionProperty):
77949         * rendering/RenderWidget.cpp:
77950         (WebCore::RenderWidget::destroy):
77951
77952 2007-10-29  Alexey Proskuryakov  <ap@webkit.org>
77953
77954         Reviewed by Darin.
77955
77956         http://bugs.webkit.org/show_bug.cgi?id=6040
77957         XSLT does not report errors to the user
77958
77959         Made parseErrorFunc a static member function of XSLTProcessor to be reusable from XSLStylesheet.
77960         Switched to xmlSetStructuredErrorFunc to get an error structure instead of pre-formatted console
77961         output. Got rid of DeprecatedString in XSLTProcessor.
77962
77963         * dom/Document.cpp:
77964         (WebCore::Document::applyXSLTransform):
77965         * xml/XSLStyleSheet.cpp:
77966         (WebCore::XSLStyleSheet::parseString):
77967         * xml/XSLTProcessor.cpp:
77968         (WebCore::XSLTProcessor::parseErrorFunc):
77969         (WebCore::docLoaderFunc):
77970         (WebCore::setXSLTLoadCallBack):
77971         (WebCore::writeToString):
77972         (WebCore::saveResultToString):
77973         (WebCore::transformTextStringToXHTMLDocumentString):
77974         (WebCore::xsltParamArrayFromParameterMap):
77975         (WebCore::freeXsltParamArray):
77976         (WebCore::XSLTProcessor::createDocumentFromSource):
77977         (WebCore::createFragmentFromSource):
77978         (WebCore::xsltStylesheetPointer):
77979         (WebCore::xmlDocPtrFromNode):
77980         (WebCore::resultMIMEType):
77981         (WebCore::XSLTProcessor::transformToString):
77982         (WebCore::XSLTProcessor::transformToDocument):
77983         (WebCore::XSLTProcessor::transformToFragment):
77984         * xml/XSLTProcessor.h:
77985         (WebCore::XSLTProcessor::setXSLStylesheet):
77986         (WebCore::XSLTProcessor::importStylesheet):
77987         (WebCore::XSLTProcessor::xslStylesheet):
77988
77989 2007-10-29  Dan Bernstein  <mitz@apple.com>
77990
77991         Reviewed by John Sullivan.
77992
77993         - fix <rdar://problem/5424455> REGRESSION (r21168-r21193, Tiger only): Safari scrollbar is clipped at top when loading particular RSS page
77994
77995         Test: fast/repaint/layout-state-only-positioned.html
77996
77997         * rendering/RenderBlock.cpp:
77998         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Pop layout state
77999         before updating scroll info, which possibly repaints us.
78000
78001 2007-10-29  David Kilzer  <ddkilzer@webkit.org>
78002
78003         REGRESSION (r17701): Favicons should be viewable as image documents
78004         <http://bugs.webkit.org/show_bug.cgi?id=15640>
78005
78006         Reviewed by Darin.
78007
78008         On Tiger and Leopard, the image/x-icon MIME type is not returned from
78009         CGImageSourceCopyTypeIdentifiers(), so opening a URL to a favicon caused
78010         the icon to be downloaded instead being displayed in an image document.
78011
78012         Test: fast/images/favicon-as-image.html
78013
78014         * platform/MIMETypeRegistry.cpp:
78015         (WebCore::initialiseSupportedImageMIMETypes): Manually add image/x-icon to
78016         supportedImageMIMETypes and supportedImageResourceMIMETypes.  Also fixed
78017         comment about the image/bmp MIME type since it applies to both Tiger and
78018         Leopard.
78019
78020 2007-10-29  Maciej Stachowiak  <mjs@apple.com>
78021
78022         Reviewed by Mark.
78023
78024         - fixed assertion failures detected by the new assertions
78025
78026         * bindings/objc/DOMRGBColor.mm:
78027         (-[DOMRGBColor dealloc]): Clear _internal before calling [super dealloc]
78028         because it's not a pointer and shouldn't be in the normal wrapper cache.
78029         * dom/Document.cpp:
78030         (WebCore::Document::addImageMap): Don't access hashmap if name is null.
78031         (WebCore::Document::removeImageMap): ditto
78032         * dom/StyledElement.cpp:
78033         (WebCore::StyledElement::parseMappedAttribute): Don't claim we have a class
78034         when the class attribute is empty.
78035         * platform/TextCodecICU.cpp:
78036         (WebCore::gbkCallbackEscape): Don't look up 0 code points.
78037
78038 2007-10-28  Alexey Proskuryakov  <ap@webkit.org>
78039
78040         Reviewed by Darin.
78041
78042         http://bugs.webkit.org/show_bug.cgi?id=10734
78043         Made HTMLOptionElement.index read-only, matching IE and DOM standard.
78044
78045         Test: fast/dom/HTMLOptionElement/set-option-index-text.html
78046
78047         * html/HTMLOptionElement.idl: Marked index as readonly.
78048
78049         * html/HTMLOptionElement.cpp:
78050         * html/HTMLOptionElement.h:
78051         Removed setIndex().
78052
78053 2007-10-28  Eric Seidel  <eric@webkit.org>
78054
78055         Reviewed by darin.
78056
78057         Fix leaks on TOT and prevent Path code from logging to console so frequently
78058
78059         * platform/graphics/svg/SVGResourceFilter.h:
78060         (WebCore::SVGResourceFilterPlatformData::SVGResourceFilterPlatformData):
78061         (WebCore::SVGResourceFilterPlatformData::~SVGResourceFilterPlatformData):
78062         * platform/graphics/svg/cg/CgSupport.cpp:
78063         (WebCore::strokeBoundingBox):
78064         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
78065         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
78066
78067 2007-10-28  Mark Rowe  <mrowe@apple.com>
78068
78069         Reviewed by Maciej.
78070
78071         Replace uses of isNaN and isInf with isnan and isinf.
78072
78073         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
78074         (WebCore::JSHTMLOptionsCollection::setLength):
78075
78076 2007-10-28  Maciej Stachowiak  <mjs@apple.com>
78077
78078         Reviewed by Mark.
78079
78080         - fixed REGRESSION(r27176): Reproducible crash while trying to order dinner makes bdash sad
78081         http://bugs.webkit.org/show_bug.cgi?id=15731
78082
78083         * bindings/js/kjs_window.cpp:
78084         (KJS::Window::installTimeout): Avoid putting in or accessing empty or deleted keys.
78085         (KJS::Window::clearTimeout): ditto
78086         * manual-tests/bad-clearTimeout-crash.html: Added. Automated test not possible.
78087
78088 2007-10-28  Kevin Ollivier  <kevino@theolliviers.com>
78089
78090         wx port defines for graphics and network layers.
78091
78092         Reviewed by Darin Adler.
78093
78094         * platform/graphics/AffineTransform.h:
78095         * platform/graphics/BitmapImage.h:
78096         * platform/graphics/Color.h:
78097         * platform/graphics/FloatRect.h:
78098         * platform/graphics/GraphicsContext.h:
78099         * platform/graphics/ImageSource.h:
78100         * platform/graphics/IntPoint.h:
78101         * platform/graphics/IntRect.h:
78102         * platform/graphics/Path.h:
78103         * platform/graphics/Pen.h:
78104         * platform/network/ResourceHandle.h:
78105
78106
78107 2007-10-28  Alp Toker  <alp@atoker.com>
78108
78109         Reviewed by Anders Carlsson.
78110
78111         http://bugs.webkit.org/show_bug.cgi?id=14124
78112         [CURL] Support data URLs
78113
78114         Add data URL support (both Base64 and percent-encoded formats).
78115
78116         Inspired by code from the Qt port.
78117
78118         * platform/Base64.cpp:
78119         (WebCore::base64Decode):
78120         * platform/Base64.h:
78121         * platform/network/curl/ResourceHandleManager.cpp:
78122         (WebCore::ResourceHandleManager::startScheduledJobs):
78123         (WebCore::parseDataUrl):
78124
78125 2007-10-28  Alp Toker  <alp@atoker.com>
78126
78127         Reviewed by Adam Roben.
78128
78129         http://bugs.webkit.org/show_bug.cgi?id=15701
78130         The curl http backend does not deal properly with redirects
78131
78132         Implement http redirect support.
78133
78134         * platform/network/curl/ResourceHandleManager.cpp:
78135         (WebCore::headerCallback):
78136
78137 2007-10-28  Kevin Ollivier  <kevino@theolliviers.com>
78138
78139         Define types and accessors needed for wx implementation
78140         of platform classes. Also, turn off DisallowCTypes.h because
78141         disallowed methods appear in wx headers.
78142
78143         Reviewed by Adam Roben.
78144
78145         * config.h:
78146         * platform/ContextMenuItem.h:
78147         * platform/Cursor.h:
78148         * platform/DeprecatedString.h:
78149         * platform/DragData.h:
78150         * platform/DragImage.h:
78151         * platform/FontData.h:
78152         (WebCore::FontData::getWxFont):
78153         * platform/GlyphBuffer.h:
78154         (WebCore::GlyphBuffer::glyphAt):
78155         (WebCore::GlyphBuffer::advanceAt):
78156         (WebCore::GlyphBuffer::add):
78157         * platform/PlatformKeyboardEvent.h:
78158         (WebCore::PlatformKeyboardEvent::isWxCharEvent):
78159         * platform/PlatformMenuDescription.h:
78160         * platform/PlatformMouseEvent.h:
78161         * platform/PlatformString.h:
78162         * platform/PlatformWheelEvent.h:
78163         * platform/ScrollView.h:
78164         * platform/Widget.h:
78165         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
78166         * platform/image-decoders/gif/GIFImageDecoder.cpp:
78167         * platform/image-decoders/gif/GIFImageReader.cpp:
78168         * platform/image-decoders/ico/ICOImageDecoder.cpp:
78169         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
78170         * platform/image-decoders/png/PNGImageDecoder.cpp:
78171         * platform/image-decoders/xbm/XBMImageDecoder.cpp:
78172
78173 2007-10-28  Mark Rowe  <mrowe@apple.com>
78174
78175         We don't include "config.h" in headers.
78176
78177         * dom/XMLTokenizer.h:
78178         * platform/graphics/svg/SVGResourceFilter.h:
78179         * platform/image-decoders/ImageDecoder.h:
78180         * platform/wx/FontPlatformData.h:
78181
78182 2007-10-28  Darin Adler  <darin@apple.com>
78183
78184         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
78185         We don't include "config.h" in headers. Hope this desn't break
78186         the non-SVG build again.
78187
78188 2007-10-28  Eric Seidel  <eric@webkit.org>
78189
78190         Build fix for non-SVG build, no review.
78191
78192         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
78193         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm:
78194
78195 2007-10-28  Eric Seidel  <eric@webkit.org>
78196
78197         Reviewed by Oliver.
78198
78199         Push SVGResourceFilter platform specific data down into m_platformData
78200         in preparation for implementing a non-mac filter solution.
78201         
78202         Also update a very old email address in copyright headers
78203
78204         * WebCore.xcodeproj/project.pbxproj:
78205         * platform/graphics/FloatPoint3D.cpp:
78206         (WebCore::FloatPoint3D::FloatPoint3D):
78207         * platform/graphics/FloatPoint3D.h:
78208         * platform/graphics/svg/SVGResourceFilter.cpp:
78209         (WebCore::SVGResourceFilter::SVGResourceFilter):
78210         * platform/graphics/svg/SVGResourceFilter.h:
78211         (WebCore::SVGResourceFilter::platformData):
78212         (WebCore::SVGResourceFilter::effects):
78213         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
78214         (WebCore::SVGResourceFilter::createPlatformData):l
78215         (WebCore::SVGResourceFilter::prepareFilter):
78216         (WebCore::SVGResourceFilter::applyFilter):
78217         * platform/graphics/svg/filters/SVGDistantLightSource.h:
78218         * platform/graphics/svg/filters/SVGFEBlend.cpp:
78219         * platform/graphics/svg/filters/SVGFEBlend.h:
78220         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
78221         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
78222         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
78223         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
78224         * platform/graphics/svg/filters/SVGFEComposite.cpp:
78225         * platform/graphics/svg/filters/SVGFEComposite.h:
78226         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
78227         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
78228         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
78229         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
78230         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
78231         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
78232         * platform/graphics/svg/filters/SVGFEFlood.cpp:
78233         * platform/graphics/svg/filters/SVGFEFlood.h:
78234         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
78235         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
78236         * platform/graphics/svg/filters/SVGFEImage.cpp:
78237         * platform/graphics/svg/filters/SVGFEImage.h:
78238         * platform/graphics/svg/filters/SVGFEMerge.cpp:
78239         * platform/graphics/svg/filters/SVGFEMerge.h:
78240         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
78241         * platform/graphics/svg/filters/SVGFEMorphology.h:
78242         * platform/graphics/svg/filters/SVGFEOffset.cpp:
78243         * platform/graphics/svg/filters/SVGFEOffset.h:
78244         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
78245         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
78246         * platform/graphics/svg/filters/SVGFETile.h:
78247         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
78248         * platform/graphics/svg/filters/SVGFETurbulence.h:
78249         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
78250         * platform/graphics/svg/filters/SVGFilterEffect.h:
78251         * platform/graphics/svg/filters/SVGLightSource.cpp:
78252         * platform/graphics/svg/filters/SVGLightSource.h:
78253         * platform/graphics/svg/filters/SVGPointLightSource.h:
78254         * platform/graphics/svg/filters/SVGSpotLightSource.h:
78255         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
78256         (WebCore::SVGFEBlend::getCIFilter):
78257         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
78258         (WebCore::SVGFEColorMatrix::getCIFilter):
78259         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
78260         (WebCore::SVGFEComponentTransfer::getCIFilter):
78261         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
78262         (WebCore::SVGFEComposite::getCIFilter):
78263         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
78264         (WebCore::SVGFEDiffuseLighting::getCIFilter):
78265         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
78266         (WebCore::SVGFEDisplacementMap::getCIFilter):
78267         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
78268         (WebCore::SVGFEFlood::getCIFilter):
78269         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
78270         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
78271         (WebCore::SVGFEImage::getCIFilter):
78272         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
78273         (WebCore::SVGFEMerge::getCIFilter):
78274         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
78275         (WebCore::SVGFESpecularLighting::getCIFilter):
78276         * platform/graphics/svg/mac: Added.
78277         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Added.
78278         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Added.
78279         (WebCore::SVGResourceFilterPlatformDataMac::SVGResourceFilterPlatformDataMac):
78280         (WebCore::SVGResourceFilterPlatformDataMac::~SVGResourceFilterPlatformDataMac):
78281         (WebCore::SVGResourceFilterPlatformDataMac::getCIFilterStack):
78282         (WebCore::alphaImageForImage):
78283         (WebCore::SVGResourceFilterPlatformDataMac::imageForName):
78284         (WebCore::SVGResourceFilterPlatformDataMac::setImageForName):
78285         (WebCore::SVGResourceFilterPlatformDataMac::setOutputImage):
78286         (WebCore::SVGResourceFilterPlatformDataMac::inputImage):
78287
78288 2007-10-28  Alexey Proskuryakov  <ap@webkit.org>
78289
78290         Reviewed by Adam Roben.
78291
78292         http://bugs.webkit.org/show_bug.cgi?id=15217
78293         Plugin complains that xpcom_core.dll missing
78294
78295         * plugins/win/PluginDatabaseWin.cpp:
78296         (WebCore::PluginDatabaseWin::isPluginBlacklisted): Blacklist npmozax.dll.
78297
78298 2007-10-28  Timothy Hatcher  <timothy@apple.com>
78299
78300         Reviewed by Adam.
78301
78302         Pass the Document's domain to InspectorController:didOpenDatabase. This matches
78303         what the Inspector shows for other resources.
78304
78305         * storage/Database.cpp:
78306         (WebCore::Database::openDatabase):
78307
78308         * dom/Document.h: Remove KURL.h, no longer needed.
78309
78310 2007-10-28  Timothy Hatcher  <timothy@apple.com>
78311
78312         Reviewed by Adam.
78313
78314         Bug 15728: Selected Resource background image gradient has banding
78315         http://bugs.webkit.org/show_bug.cgi?id=15728
78316
78317         - Reduced images to 1px wide that are tiled horizontally in CSS.
78318         - Corrected the -webkit-background-size usage to specify auto for the width.
78319
78320         * page/inspector/Images/attachedShadow.png:
78321         * page/inspector/Images/bottomShadow.png:
78322         * page/inspector/Images/darkShadow.png:
78323         * page/inspector/Images/gradient.png:
78324         * page/inspector/Images/gradientHighlight.png:
78325         * page/inspector/Images/gradientHighlightBottom.png:
78326         * page/inspector/Images/sidebarSelection.png:
78327         * page/inspector/Images/sidebarSelectionBlurred.png:
78328         * page/inspector/Images/sidebarSelectionBlurredTall.png:
78329         * page/inspector/Images/sidebarSelectionGray.png:
78330         * page/inspector/Images/sidebarSelectionGrayTall.png:
78331         * page/inspector/Images/sidebarSelectionTall.png:
78332         * page/inspector/inspector.css:
78333
78334 2007-10-27  Timothy Hatcher  <timothy@apple.com>
78335
78336         Reviewed by Adam.
78337
78338         Bug 15727: Resizing the resource sidebar doesn't scale the font preview or network timeline
78339         http://bugs.webkit.org/show_bug.cgi?id=15727
78340
78341         Add one window resize listener and call the new resize function on the currentPanel.
78342         Also call the currentPanel's resize function when resizing the sidebar.
78343
78344         * page/inspector/DocumentPanel.js: Implement resize and call updateTreeSelection() when
78345           the panel is shown and when resizing the DOM sidebar.
78346         * page/inspector/FontPanel.js: Implement resize.
78347         * page/inspector/NetworkPanel.js: Ditto.
78348         * page/inspector/inspector.js: Add a window resize listener.
78349
78350 2007-10-27  Maciej Stachowiak  <mjs@apple.com>
78351
78352         Reviewed by Oliver.
78353         
78354         - update for HashTable changes
78355
78356         * bindings/js/JSSVGPODTypeWrapper.h:
78357         * dom/Document.h:
78358         * dom/QualifiedName.cpp:
78359         * dom/StyledElement.cpp:
78360         * ksvg2/svg/SVGAnimatedTemplate.h:
78361         * platform/FontCache.cpp:
78362         * platform/StringHash.h:
78363         (WTF::):
78364         * platform/TextEncodingRegistry.cpp:
78365         * platform/graphics/IntSizeHash.h:
78366         (WTF::):
78367         * plugins/win/PluginPackageWin.h:
78368
78369 2007-10-28  Alp Toker  <alp@atoker.com>
78370
78371         Reviewed by Adam Roben.
78372
78373         http://bugs.webkit.org/show_bug.cgi?id=15646
78374         [GTK] caretBlinkFrequency is hard-coded in Frame.cpp
78375
78376         Abstract caretBlinkFrequency to RenderTheme.
78377
78378         * page/Frame.cpp:
78379         (WebCore::Frame::selectionLayoutChanged):
78380         * platform/gtk/RenderThemeGtk.cpp:
78381         (WebCore::RenderThemeGtk::caretShouldBlink):
78382         (WebCore::RenderThemeGtk::caretBlinkFrequency):
78383         * platform/gtk/RenderThemeGtk.h:
78384         * rendering/RenderTheme.h:
78385
78386 2007-10-27  Timothy Hatcher  <timothy@apple.com>
78387
78388         Reviewed by Adam.
78389
78390         Don't print the line number in the Inspector Console if it is Zero.
78391
78392         * page/inspector/ConsolePanel.js:
78393
78394 2007-10-27  Sam Weinig  <sam@webkit.org>
78395
78396         Reviewed by Adam Roben.
78397
78398         Fix http://bugs.webkit.org/show_bug.cgi?id=14953
78399         Implement window.console in WebCore
78400
78401         - Adds a window.console object that has 4 methods (log, info, warn, and error)
78402           that send messages to the Chrome.  This moves functionality that was in the
78403           app down into WebCore.
78404
78405         * DerivedSources.make:
78406         * WebCore.pro:
78407         * WebCore.vcproj/WebCore.vcproj:
78408         * WebCore.xcodeproj/project.pbxproj:
78409         * bindings/scripts/CodeGeneratorJS.pm: Add extended attribute
78410         to mark attributes as [Replacable] which indicates they can 
78411         overridden when set.
78412         * page/Chrome.cpp:
78413         (WebCore::Chrome::addMessageToConsole): Allow all messages to go
78414         up to the ChromeClient.
78415         * page/Console.cpp: Added.
78416         (WebCore::Console::Console):
78417         (WebCore::Console::disconnectFrame):
78418         (WebCore::Console::error):
78419         (WebCore::Console::info):
78420         (WebCore::Console::log):
78421         (WebCore::Console::warn):
78422         * page/Console.h: Added.
78423         * page/Console.idl: Added.
78424         * page/DOMWindow.cpp:
78425         (WebCore::DOMWindow::clear):
78426         (WebCore::DOMWindow::console):
78427         * page/DOMWindow.h:
78428         * page/DOMWindow.idl:
78429
78430 2007-10-27  Eric Seidel  <eric@webkit.org>
78431
78432         Reviewed by aroben.
78433         
78434         Remove legacy createFilterEffect function (causing extra filter tests to fail on windows)
78435
78436         No functional changes, thus no tests.
78437
78438         * ksvg2/svg/SVGFEBlendElement.cpp:
78439         (WebCore::SVGFEBlendElement::filterEffect):
78440         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
78441         (WebCore::SVGFEColorMatrixElement::filterEffect):
78442         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
78443         (WebCore::SVGFEComponentTransferElement::filterEffect):
78444         * ksvg2/svg/SVGFECompositeElement.cpp:
78445         (WebCore::SVGFECompositeElement::filterEffect):
78446         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
78447         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
78448         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
78449         (WebCore::SVGFEDisplacementMapElement::filterEffect):
78450         * ksvg2/svg/SVGFEFloodElement.cpp:
78451         (WebCore::SVGFEFloodElement::filterEffect):
78452         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
78453         (WebCore::SVGFEGaussianBlurElement::filterEffect):
78454         * ksvg2/svg/SVGFEImageElement.cpp:
78455         (WebCore::SVGFEImageElement::filterEffect):
78456         * ksvg2/svg/SVGFEMergeElement.cpp:
78457         (WebCore::SVGFEMergeElement::filterEffect):
78458         * ksvg2/svg/SVGFEOffsetElement.cpp:
78459         (WebCore::SVGFEOffsetElement::filterEffect):
78460         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
78461         (WebCore::SVGFESpecularLightingElement::filterEffect):
78462         * ksvg2/svg/SVGFETileElement.cpp:
78463         (WebCore::SVGFETileElement::filterEffect):
78464         * ksvg2/svg/SVGFETurbulenceElement.cpp:
78465         (WebCore::SVGFETurbulenceElement::filterEffect):
78466         * platform/graphics/svg/SVGResourceFilter.h:
78467         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
78468         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
78469         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
78470
78471 2007-10-27  Dan Bernstein  <mitz@apple.com>
78472
78473         Reviewed by Darin Adler.
78474
78475         - fix a crash when opening Zenoss server history view
78476           <rdar://problem/5530657>
78477
78478         Test: fast/table/colgroup-relative.html
78479
78480         * rendering/LayoutState.cpp:
78481         (WebCore::LayoutState::LayoutState): Added a hasLayer() check before
78482         accessing layer().
78483
78484 2007-10-27  Julien  <julien.chaffraix@gmail.com>
78485
78486         Reviewed by Alexey.
78487
78488         http://bugs.webkit.org/show_bug.cgi?id=13141
78489         XMLHttpRequest should set readyState to 0 after abort()
78490         
78491         Test: http/tests/xmlhttprequest/xmlhttprequest-abort-readyState.html
78492
78493         * xml/XMLHttpRequest.cpp:
78494         (WebCore::XMLHttpRequest::open):
78495         (WebCore::XMLHttpRequest::abort):
78496
78497 2007-10-27  Dan Bernstein  <mitz@apple.com>
78498
78499         Reviewed by Dave Hyatt.
78500
78501         - fix rotated border images by using a temporary subimage containing
78502           only the part we want to tile
78503
78504         Test: fast/borders/border-image-rotate-transform.html
78505
78506         * platform/graphics/cg/ImageCG.cpp:
78507         (WebCore::Image::drawPatternCallback):
78508         (WebCore::Image::drawPattern):
78509
78510 2007-10-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
78511
78512         Reviewed by Alp.
78513
78514         http://bugs.webkit.org/show_bug.cgi?id=15722
78515         [GTK] Refactor gtk/RenderThemeGtk and implement a few more methods
78516
78517         Refactor/enhance GTK RenderTheme
78518
78519         * platform/gtk/RenderThemeGtk.cpp:
78520         (WebCore::RenderThemeGtk::supportsFocus): added TextArea, Menulist, Radio, and Checkbox Appearances
78521         (WebCore::RenderThemeGtk::supportsFocusRing): call supportsFocus() to check if focus on appearance is supported
78522         (WebCore::RenderThemeGtk::controlSupportsTints): copied from Qt and Safari ports
78523         (WebCore::RenderThemeGtk::baselinePosition): copied from Qt and Safari ports
78524         (WebCore::RenderThemeGtk::paintCheckbox): moved painting in paintButton
78525         (WebCore::RenderThemeGtk::paintRadio): moved painting in paintButton
78526         (WebCore::RenderThemeGtk::paintButton): paint the different buttons here, checking for the right appearance before doing so
78527         (WebCore::RenderThemeGtk::paintMenuList): use 0 instead of NULLs
78528         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
78529         (WebCore::RenderThemeGtk::getThemeData):
78530         * platform/gtk/RenderThemeGtk.h:
78531         (WebCore::RenderThemeGtk::supportsControlTints):
78532
78533 2007-10-27  Alexey Proskuryakov  <ap@webkit.org>
78534
78535         Reviewed by Darin.
78536
78537         http://bugs.webkit.org/show_bug.cgi?id=15555
78538         XMLHttpRequest does not support charset "x-user-defined", which can
78539         facilitate loading of binary data
78540
78541         Test: http/tests/xmlhttprequest/binary-x-user-defined.html
78542
78543         * WebCore.pro:
78544         * WebCore.vcproj/WebCore.vcproj:
78545         * WebCore.xcodeproj/project.pbxproj:
78546         * platform/TextCodecUserDefined.cpp: Added.
78547         (WebCore::TextCodecUserDefined::registerEncodingNames):
78548         (WebCore::newStreamingTextDecoderUserDefined):
78549         (WebCore::TextCodecUserDefined::registerCodecs):
78550         (WebCore::TextCodecUserDefined::decode):
78551         (WebCore::encodeComplexUserDefined):
78552         (WebCore::TextCodecUserDefined::encode):
78553         * platform/TextCodecUserDefined.h: Added.
78554         * platform/TextEncodingRegistry.cpp:
78555         (WebCore::buildBaseTextCodecMaps):
78556
78557 2007-10-27  Alexey Proskuryakov  <ap@webkit.org>
78558
78559         Reviewed by Darin.
78560
78561         http://bugs.webkit.org/show_bug.cgi?id=15467
78562         Setting innerHTML to blank string in application/xhtml+xml mode
78563         throws DOM Exception 7
78564
78565         Test: fast/dom/blank-innerHTML.xhtml
78566
78567         * dom/XMLTokenizer.cpp:
78568         (WebCore::parseXMLDocumentFragment): Bail out early if the input string is empty.
78569
78570 2007-10-26  Sam Weinig  <sam@webkit.org>
78571
78572         Enable dragging the left sidebar using the separator.
78573
78574         Reviewed by Anders (unless Mitz says otherwise).
78575
78576         * page/inspector/DocumentPanel.js:
78577         * page/inspector/inspector.css:
78578         * page/inspector/inspector.html:
78579         * page/inspector/inspector.js:
78580
78581 2007-10-26  Sam Weinig  <sam@webkit.org>
78582
78583         Fix an off by one error when resizing the Inspector find window.
78584
78585         Reviewed by Hyatt.
78586
78587         * page/inspector/inspector.js:
78588
78589 2007-10-26  Jon Honeycutt  <jhoneycutt@apple.com>
78590
78591         Reviewed by Adam.
78592
78593         Fix fallout from r26072, which leads to all plugin streams for local
78594         resources being cancelled
78595
78596         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
78597         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): Ensure this
78598         is an HTTP response before checking the HTTP response code
78599
78600 2007-10-26  David Hyatt  <hyatt@apple.com>
78601
78602         Fix for http://bugs.webkit.org/show_bug.cgi?id=15719, transformed box doesn't repaint properly
78603         when only translation changes.
78604
78605         Move the updating of the transform to in between the old repaint and the new repaint.
78606
78607         Reviewed by mitz
78608
78609         fast/repaint/transform-translate.html
78610
78611         * rendering/RenderLayer.cpp:
78612         (WebCore::RenderLayer::updateLayerPositions):
78613
78614 2007-10-26  Jon Honeycutt  <jhoneycutt@apple.com>
78615
78616         Reviewed by Darin.
78617
78618         <rdar://5557379> Crash in Silverlight when opening microsoft.com
78619
78620         The crash is within Silverlight, and the latest version of the plugin
78621         does not exhibit this crash, so just avoid loading this version of the
78622         plugin.
78623
78624         * plugins/win/PluginDatabaseWin.cpp: Added isPluginBlacklisted() and
78625         constants silverlightPluginMinRequiredVersionMSDWORD and
78626         silverlightPluginMinRequiredVersionLSDWORD. Their values are taken from 
78627         the version info of Silverlight 1.0.20926.0, which is a version known
78628         not to exhibit this crash
78629         (WebCore::PluginDatabaseWin::isPluginBlacklisted): Determine whether
78630         this plugin is blacklisted
78631         * plugins/win/PluginDatabaseWin.h:
78632         * plugins/win/PluginPackageWin.cpp:
78633         (WebCore::PluginPackageWin::PluginPackageWin): Initialize m_fileVersion*
78634         (WebCore::PluginPackageWin::getFileVersion):
78635         (WebCore::PluginPackageWin::storeFileVersion): Read version info for
78636         the plugin, and store the file version
78637         (WebCore::PluginPackageWin::fetchInfo): After determining the name,
78638         description, and file version, determine whether this plug-in is
78639         blacklisted. If so, return false so this plug-in isn't loaded
78640         * plugins/win/PluginPackageWin.h:
78641
78642 2007-10-26  Sam Weinig  <sam@webkit.org>
78643
78644         Reviewed by Adele Peterson.
78645
78646         Fix for <rdar://problem/5421754>
78647         m_frameName member variable in HTMLPlugInElement unnecessary
78648
78649         - Refactor the willRemove() method down into HTMLFrameOwnerElement now that
78650           we no longer need to use the m_frameName variable.
78651
78652         * html/HTMLFrameElementBase.cpp:
78653         * html/HTMLFrameElementBase.h:
78654         * html/HTMLFrameOwnerElement.cpp:
78655         (WebCore::HTMLFrameOwnerElement::willRemove):
78656         * html/HTMLFrameOwnerElement.h:
78657         * html/HTMLPlugInElement.cpp:
78658         * html/HTMLPlugInElement.h:
78659         * loader/FrameLoader.cpp:
78660         (WebCore::FrameLoader::requestObject):
78661
78662 2007-10-26  Adele Peterson  <adele@apple.com>
78663
78664         Export _wkDrawCapsLockIndicator.
78665
78666         * WebCore.base.exp:
78667
78668 2007-10-26  Adele Peterson  <adele@apple.com>
78669
78670         Reviewed by Oliver.
78671
78672         Adding WebKitSystemInterface support for the caps lock indicator
78673
78674         * platform/mac/WebCoreSystemInterface.h:
78675         * platform/mac/WebCoreSystemInterface.mm:
78676
78677 2007-10-26  Tristan O'Tierney  <tristan@apple.com>
78678
78679         Reviewed by Darin Adler.
78680
78681         <rdar://problem/5555053> REGRESSION:9A581: Window disappears when opening http://research.microsoft.com/users/darkok/
78682         The problem was caused by checkin r24654. This change moved explicit bounds checking into adjustWindowRect
78683         but failed to account for bounds checking (instead replaced with bounds clipping).  This caused issues
78684         when NaN was used. This patch goes one step further and does NaN checking to prevent the possibility of
78685         setting window bounds to NaN before an update occurs.
78686
78687         Test: fast/dom/Window/window-resize-nan.html
78688         
78689         * bindings/js/kjs_window.cpp:
78690         (KJS::adjustWindowRect):
78691         Added a new parameter, pendingChanges, which takes pending changes to the window
78692         rect, and if they are valid (not NaN) sets them on window.
78693         
78694         (KJS::WindowFunc::callAsFunction):
78695         Adjusted uses of adjustWindowRect to take new update parameter.
78696
78697 2007-10-26  Sam Weinig  <sam@webkit.org>
78698
78699         Reviewed by Tim Hatcher.
78700
78701         Fix for http://bugs.webkit.org/show_bug.cgi?id=15175
78702         Cannot copy text of errors from Web Inspector from Console view
78703
78704         * page/inspector/inspector.css: add -webkit-user-select: text for console messages.
78705
78706 2007-10-26  Sam Weinig  <sam@webkit.org>
78707
78708         Reviewed by Tim Hatcher.
78709
78710         Fix for http://bugs.webkit.org/show_bug.cgi?id=15446
78711         Web Inspector find window is not resizable
78712
78713         - Adds ability to resize the find window.
78714         - Fixes bug that messed up the find window when resizing the left sidebar. 
78715
78716         * page/inspector/inspector.css:
78717         * page/inspector/inspector.html:
78718         * page/inspector/inspector.js:
78719
78720 2007-10-26  Ada Chan  <adachan@apple.com>
78721
78722         Update m_current index after we've removed an item:
78723         - if item removed is before m_current, decrement m_current
78724         - if the current item is removed, make sure m_current is within bounds.
78725
78726         Reviewed by Darin.
78727
78728         * history/BackForwardList.cpp:
78729         (WebCore::BackForwardList::removeItem):
78730
78731 2007-10-26  Mark Rowe  <mrowe@apple.com>
78732
78733         Debug build fix.
78734
78735         * bindings/js/kjs_proxy.cpp:
78736         (WebCore::KJSProxy::~KJSProxy):
78737
78738 2007-10-26  Maciej Stachowiak  <mjs@apple.com>
78739
78740         No review, build fix.
78741
78742         * bindings/objc/WebScriptObject.mm:
78743         (+[WebScriptObject throwException:]):
78744         (-[WebScriptObject setException:]):
78745
78746 2007-10-26  Maciej Stachowiak  <mjs@apple.com>
78747
78748         Rubber Stamped by Mark.
78749
78750         - fix build
78751
78752         * bridge/mac/WebCoreScriptDebugger.mm:
78753         (-[WebCoreScriptCallFrame scopeChain]):
78754         (-[WebCoreScriptCallFrame functionName]):
78755         (-[WebCoreScriptCallFrame evaluateWebScript:]):
78756
78757 2007-10-26  Maciej Stachowiak  <mjs@apple.com>
78758
78759         Reviewed by Oliver.
78760
78761         - update for JavaScriptCore header changes
78762
78763         * bindings/objc/WebScriptObject.mm:
78764         * bridge/mac/WebCoreScriptDebugger.mm:
78765
78766 2007-10-26  Alp Toker  <alp@atoker.com>
78767
78768         Reviewed by Mark Rowe.
78769
78770         http://bugs.webkit.org/show_bug.cgi?id=15693
78771         [GTK] Paging does not work when widget is added to a GtkScrolledWindow
78772
78773         Eliminate MagicGtkScrollConstant in favour of the same calculations as
78774         GtkTextView for step and page increments. This also makes paging work,
78775         as the page increment was previously always 0.
78776
78777         * platform/gtk/ScrollViewGtk.cpp:
78778         (WebCore::ScrollView::updateScrollbars):
78779
78780 2007-10-25  Dan Bernstein  <mitz@apple.com>
78781
78782         Reviewed by Dave Hyatt and Sam Weinig.
78783
78784         Build fix
78785
78786         * platform/graphics/cg/ImageCG.cpp:
78787         (WebCore::Image::drawPattern):
78788
78789 2007-10-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
78790
78791         Reviewed by Alp.
78792
78793         http://bugs.webkit.org/show_bug.cgi?id=15656
78794         [GTK] Implement WebCore::Widget::isEnabled/setEnabled
78795
78796         * platform/gtk/WidgetGtk.cpp:
78797         (WebCore::Widget::isEnabled):
78798         (WebCore::Widget::setEnabled): Implemented.
78799
78800 2007-10-25  David Hyatt  <hyatt@apple.com>
78801
78802         Fix for bug 15672, background images don't tile properly inside transforms.  This patch fixes background
78803         tiling to work in the presence of transforms and fixes bugs in both SVG and CSS transforms.
78804
78805         Reviewed by aroben and mitz
78806
78807         * WebCore.base.exp:
78808         * platform/graphics/Image.cpp:
78809         (WebCore::Image::setData):
78810         * platform/graphics/cg/ImageCG.cpp:
78811         (WebCore::ImageInfo::ImageInfo):
78812         (WebCore::Image::drawPatternCallback):
78813         (WebCore::Image::drawPattern):
78814         * platform/graphics/mac/GraphicsContextMac.mm:
78815         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
78816         * platform/mac/WebCoreSystemInterface.h:
78817         * platform/mac/WebCoreSystemInterface.mm:
78818
78819 2007-10-25  Brady Eidson  <beidson@apple.com>
78820
78821         Blind build fix attempt
78822
78823         * WebCore.pro:
78824
78825 2007-10-25  Brady Eidson  <beidson@apple.com>
78826
78827         Reviewed by Anders and Sam
78828
78829         Bulk rename of platform/sql/SQL* to platform/sql/SQLite*
78830         
78831         This is more accurate in that there is no realistic "SQL" abstraction, the classes are obviously
78832         tied extremely close to SQLite, and is necessitated by the introduction of "SQLTransaction" in 
78833         the HTML5 database API which we are adopting.
78834
78835         * WebCore.vcproj/WebCore.vcproj:
78836         * WebCore.xcodeproj/project.pbxproj:
78837         * loader/icon/IconDatabase.cpp:
78838         (WebCore::IconDatabase::iconDatabaseSyncThread):
78839         (WebCore::databaseVersionNumber):
78840         (WebCore::isValidDatabase):
78841         (WebCore::createDatabaseTables):
78842         (WebCore::IconDatabase::performOpenInitialization):
78843         (WebCore::IconDatabase::checkIntegrity):
78844         (WebCore::IconDatabase::performURLImport):
78845         (WebCore::IconDatabase::writeToDatabase):
78846         (WebCore::IconDatabase::pruneUnretainedIcons):
78847         (WebCore::IconDatabase::checkForDanglingPageURLs):
78848         (WebCore::IconDatabase::imported):
78849         (WebCore::IconDatabase::setImported):
78850         (WebCore::readySQLiteStatement):
78851         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
78852         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
78853         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
78854         (WebCore::IconDatabase::addIconURLToSQLDatabase):
78855         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
78856         (WebCore::IconDatabase::removeIconFromSQLDatabase):
78857         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
78858         * loader/icon/IconDatabase.h:
78859         * loader/icon/IconRecord.cpp:
78860         * platform/sql/SQLAuthorizer.cpp: Removed.
78861         * platform/sql/SQLAuthorizer.h: Removed.
78862         * platform/sql/SQLDatabase.cpp: Removed.
78863         * platform/sql/SQLDatabase.h: Removed.
78864         * platform/sql/SQLStatement.cpp: Removed.
78865         * platform/sql/SQLStatement.h: Removed.
78866         * platform/sql/SQLTransaction.cpp: Removed.
78867         * platform/sql/SQLTransaction.h: Removed.
78868         * platform/sql/SQLiteAuthorizer.cpp: Copied from platform/sql/SQLAuthorizer.cpp.
78869         * platform/sql/SQLiteAuthorizer.h: Copied from platform/sql/SQLAuthorizer.h.
78870         (WebCore::SQLiteAuthorizer::~SQLiteAuthorizer):
78871         * platform/sql/SQLiteDatabase.cpp: Copied from platform/sql/SQLDatabase.cpp.
78872         (WebCore::SQLiteDatabase::SQLiteDatabase):
78873         (WebCore::SQLiteDatabase::~SQLiteDatabase):
78874         (WebCore::SQLiteDatabase::open):
78875         (WebCore::SQLiteDatabase::close):
78876         (WebCore::SQLiteDatabase::setFullsync):
78877         (WebCore::SQLiteDatabase::setSynchronous):
78878         (WebCore::SQLiteDatabase::setBusyTimeout):
78879         (WebCore::SQLiteDatabase::setBusyHandler):
78880         (WebCore::SQLiteDatabase::executeCommand):
78881         (WebCore::SQLiteDatabase::returnsAtLeastOneResult):
78882         (WebCore::SQLiteDatabase::tableExists):
78883         (WebCore::SQLiteDatabase::clearAllTables):
78884         (WebCore::SQLiteDatabase::runVacuumCommand):
78885         (WebCore::SQLiteDatabase::lastInsertRowID):
78886         (WebCore::SQLiteDatabase::lastChanges):
78887         (WebCore::SQLiteDatabase::lastError):
78888         (WebCore::SQLiteDatabase::lastErrorMsg):
78889         (WebCore::SQLiteDatabase::authorizerFunction):
78890         (WebCore::SQLiteDatabase::setAuthorizer):
78891         (WebCore::SQLiteDatabase::lock):
78892         (WebCore::SQLiteDatabase::unlock):
78893         * platform/sql/SQLiteDatabase.h: Copied from platform/sql/SQLDatabase.h.
78894         * platform/sql/SQLiteStatement.cpp: Copied from platform/sql/SQLStatement.cpp.
78895         (WebCore::SQLiteStatement::SQLiteStatement):
78896         (WebCore::SQLiteStatement::~SQLiteStatement):
78897         (WebCore::SQLiteStatement::prepare):
78898         * platform/sql/SQLiteStatement.h: Copied from platform/sql/SQLStatement.h.
78899         (WebCore::SQLiteStatement::database):
78900         * platform/sql/SQLiteTransaction.cpp: Copied from platform/sql/SQLTransaction.cpp.
78901         (WebCore::SQLiteTransaction::SQLiteTransaction):
78902         (WebCore::SQLiteTransaction::~SQLiteTransaction):
78903         (WebCore::SQLiteTransaction::begin):
78904         (WebCore::SQLiteTransaction::commit):
78905         (WebCore::SQLiteTransaction::rollback):
78906         * platform/sql/SQLiteTransaction.h: Copied from platform/sql/SQLTransaction.h.
78907         * storage/Database.cpp:
78908         (WebCore::retrieveTextResultFromDatabase):
78909         (WebCore::setTextValueInDatabase):
78910         (WebCore::Database::performExecuteSql):
78911         (WebCore::Database::performGetTableNames):
78912         (WebCore::Database::executeSql):
78913         * storage/Database.h:
78914         * storage/DatabaseAuthorizer.h:
78915         * storage/DatabaseTracker.cpp:
78916         (WebCore::DatabaseTracker::fullPathForDatabase):
78917         (WebCore::DatabaseTracker::populateOrigins):
78918         (WebCore::DatabaseTracker::databaseNamesForOrigin):
78919         (WebCore::DatabaseTracker::addDatabase):
78920         * storage/DatabaseTracker.h:
78921
78922 2007-10-25  Alexey Proskuryakov  <ap@webkit.org>
78923
78924         Reviewed by Darin.
78925
78926         http://bugs.webkit.org/show_bug.cgi?id=15650
78927         XML attribute nodes are not importable
78928
78929         Tests: fast/dom/import-attribute-node.html
78930                fast/dom/import-document-fragment.html
78931
78932         * dom/Document.cpp:
78933         (WebCore::Document::importNode): Implemented for Attribute and DocumentFragment nodes.
78934
78935 2007-10-25  Dan Bernstein  <mitz@apple.com>
78936
78937         Reviewed by Dave Hyatt.
78938
78939         - fix http://bugs.webkit.org/show_bug.cgi?id=15362
78940           <rdar://problem/5558715> Safari Crashes when opening a JS TreeGrid widget
78941
78942         Test: fast/dynamic/insert-before-table-part-in-continuation.html
78943
78944         * rendering/RenderFlow.cpp:
78945         (WebCore::RenderFlow::addChildWithContinuation): If beforeChild's
78946         parent is an anonymous table part, let the table figure out where to
78947         insert the new child.
78948
78949 2007-10-25  Alp Toker  <alp@atoker.com>
78950
78951         Reviewed by Brady.
78952
78953         http://bugs.webkit.org/show_bug.cgi?id=15686
78954         GtkLauncher aborts on launch due to uninitialized threading subsystem
78955
78956         Re-enable database support in the GTK+ port, with a fix.
78957
78958         * WebCore.pro:
78959
78960 2007-10-25  Jon Honeycutt  <jhoneycutt@apple.com>
78961
78962         Reviewed by Steve.
78963
78964         <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
78965         java page
78966
78967         Previous patch erroneously compared a path and a
78968         path-including-filename. This corrects that. It also caches the result
78969         of safariPluginsPath() and uses shell API funcs for determining filename
78970         and parent directory from a full path.
78971
78972         * plugins/win/PluginDatabaseWin.cpp:
78973         (WebCore::safariPluginsPath): Cache return value. Use API functions to
78974         build the path
78975         (WebCore::PluginDatabaseWin::pluginForMIMEType): Compare again plugin's
78976         parent directory, not full path
78977         (WebCore::PluginDatabaseWin::pluginForExtension): Same
78978         * plugins/win/PluginPackageWin.cpp:
78979         (WebCore::PluginPackageWin::PluginPackageWin): Store parent directory
78980         * plugins/win/PluginPackageWin.h:
78981         (WebCore::PluginPackageWin::parentDirectory):
78982         * plugins/win/PluginStreamWin.cpp:
78983         (WebCore::PluginStreamWin::didReceiveData):
78984
78985 2007-10-25  Alp Toker  <alp@atoker.com>
78986
78987         Unreviewed fix to make the GTK+ port run.
78988
78989         http://bugs.webkit.org/show_bug.cgi?id=15686
78990         GtkLauncher aborts on launch due to uninitialized threading subsystem
78991
78992         Disable database support until #15686 is fixed.
78993
78994         * WebCore.pro:
78995
78996 2007-10-25  Simon Hausmann  <hausmann@kde.org>
78997
78998         Reviewed by Lars.
78999
79000         Fixed a crash in the Qt 4.4 based text iterators when they're called with a null string.
79001
79002         * platform/qt/TextBreakIteratorQt.cpp:
79003         (WebCore::wordBreakIterator):
79004         (WebCore::characterBreakIterator):
79005         (WebCore::lineBreakIterator):
79006         (WebCore::sentenceBreakIterator):
79007
79008 2007-10-25  Holger Freyther  <zecke@selfish.org>
79009
79010         Reviewed by Simon Hausmann <hausmann@kde.org>.
79011
79012         * We need to set a != 0 status code for the fast/loader/xmlhttprequest-missing-file-exception.html
79013         * libxml2 has the semantic that when writing an empty string and finishing it will report an error. For QXmlStreamReader this is valid.
79014         * This is causing some regressions...
79015         
79016
79017         * dom/XMLTokenizer.cpp:
79018         (WebCore::XMLTokenizer::XMLTokenizer):
79019         (WebCore::XMLTokenizer::write):
79020         (WebCore::XMLTokenizer::end):
79021         * dom/XMLTokenizer.h:
79022
79023 2007-10-25  Holger Freyther  <zecke@selfish.org>
79024
79025         Reviewed by Simon Hausmann <hausmann@kde.org>.
79026
79027         * fast/dom/onerror-img.html regressed due checking the JobStates because in case of error (e.g. not being able to connect) the job will no be started.
79028         * Use the error message from Qt. It might or might not be translated.
79029
79030         * platform/network/qt/ResourceHandleQt.cpp:
79031         (WebCore::WebCoreSynchronousLoader::didFail):
79032
79033 2007-10-25  Holger Freyther  <zecke@selfish.org>
79034
79035         Reviewed by Simon Hausmann <hausmann@kde.org>.
79036
79037         * Implement our own queuing of network jobs to allow special handling of synchronous jobs. This makes us pass the fast/dom/xmlhttprequest-html-response-encoding.html test without a crash. Sync jobs will get a special treatment over the normals ones and in theory more than one sync job is supported.
79038         * This should be thread-safe besides QWebNetworkJob::{ref,deref}
79039         
79040
79041         * platform/network/qt/ResourceHandleQt.cpp:
79042         (WebCore::ResourceHandle::loadResourceSynchronously):
79043
79044 2007-10-25  Alp Toker  <alp@atoker.com>
79045
79046         Reviewed by Mark Rowe.
79047
79048         Add support for list box theme colors and styled menu list buttons.
79049
79050         Remove obsolete FIXMEs.
79051
79052         * platform/gtk/RenderThemeGtk.cpp:
79053         (WebCore::RenderThemeGtk::RenderThemeGtk):
79054         (WebCore::RenderThemeGtk::paintCheckbox):
79055         (WebCore::RenderThemeGtk::paintRadio):
79056         (WebCore::RenderThemeGtk::paintButton):
79057         (WebCore::RenderThemeGtk::adjustMenuListStyle):
79058         (WebCore::RenderThemeGtk::paintMenuList):
79059         (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
79060         (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
79061         (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
79062         (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
79063         (WebCore::RenderThemeGtk::gtkTreeView):
79064         * platform/gtk/RenderThemeGtk.h:
79065
79066 2007-10-25  Eric Seidel  <eric@webkit.org>
79067
79068         Reviewed by Geoff.
79069
79070         * bindings/js/kjs_window.h: fix bogus comment, s/DOMNode/DOMObject/
79071
79072 2007-10-24  Eric Seidel  <eric@webkit.org>
79073
79074         Reviewed by Maciej.
79075         
79076         Make Window subclass from JSGlobalObject (for a .5% win in Sunspider)
79077         http://bugs.webkit.org/show_bug.cgi?id=15681
79078
79079         No test cases necessary, no functional changes.
79080
79081         * WebCore.xcodeproj/project.pbxproj:
79082         * bindings/js/kjs_binding.cpp:
79083         (KJS::ScriptInterpreter::ScriptInterpreter):
79084         * bindings/js/kjs_binding.h:
79085         * bindings/js/kjs_proxy.cpp:
79086         (WebCore::KJSProxy::initScriptIfNeeded):
79087         * bindings/js/kjs_window.cpp:
79088         (KJS::Window::Window):
79089         * bindings/js/kjs_window.h:
79090         * bindings/objc/WebScriptObject.mm:
79091         (_didExecute):
79092         * bridge/mac/WebCoreScriptDebugger.mm:
79093
79094 2007-10-24  Adam Roben  <aroben@apple.com>
79095
79096         Add font database initialization code to WebCore
79097
79098         Reviewed by Ada.
79099
79100         * WebCore.vcproj/WebCore.vcproj: Added FontDatabase.{cpp,h}.
79101         * platform/win/FontDatabase.cpp: Added.
79102         (WebCore::systemFontsDirectory):
79103         (WebCore::fontsPlistPath):
79104         (WebCore::systemHasFontsNewerThanFontsPlist):
79105         (WebCore::readFontPlist):
79106         (WebCore::populateFontDatabaseFromPlist):
79107         (WebCore::populateFontDatabaseFromFileSystem):
79108         (WebCore::writeFontDatabaseToPlist):
79109         (WebCore::populateFontDatabase): This is the only function callable
79110         from outside this file. It populates the font database once, either
79111         from the fonts plist, or from the filesystem (and then saves a new
79112         fonts plist).
79113         * platform/win/FontDatabase.h: Added.
79114
79115 2007-10-24  Justin Garcia  <justin.garcia@apple.com>
79116
79117         Reviewed by Darin Adler.
79118
79119         Correcting the fix for:
79120         <rdar://problem/5544856> 
79121         REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
79122         
79123         Made removal of the previous composition part of the current Undo step in the 
79124         case where the new composition is the empty string, too.
79125
79126         * editing/Editor.cpp:
79127         (WebCore::Editor::confirmComposition): Call the new TypingCommand::deleteSelection,
79128         which either has the currently open typing command delete the current selection, or
79129         opens a new typing command (of type DeleteSelection) if one is not already open.
79130         (WebCore::Editor::setComposition): Ditto.
79131         * editing/TypingCommand.cpp:
79132         (WebCore::TypingCommand::deleteSelection): Added.
79133         (WebCore::TypingCommand::doApply): Handle DeleteSelection.
79134         (WebCore::TypingCommand::deleteKeyPressed): Clarified which deleteSelection
79135         is called.
79136         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
79137         (WebCore::TypingCommand::preservesTypingStyle): Handle DeleteSelection.
79138         * editing/TypingCommand.h:
79139
79140 2007-10-24  Sam Weinig  <sam@webkit.org>
79141
79142         Build fix.
79143
79144         * WebCore.vcproj/WebCore.vcproj:
79145
79146 2007-10-24  Alice Liu  <alice.liu@apple.com>
79147
79148         Reviewed by Oliver.
79149
79150         Fix <rdar://5410959>  editing/selection/drag-to-contenteditable-iframe.html fails on Windows
79151         
79152         * page/win/EventHandlerWin.cpp:
79153         (WebCore::EventHandler::passMouseMoveEventToSubframe):
79154         Some mouse move events are actually drags, which on mac return early from this function.
79155         Adding the same logic to its Windows equivalent.  
79156
79157 2007-10-24  Brady Eidson  <beidson@apple.com>
79158
79159         Reviewed by Anders
79160
79161         <rdar://5554130> DatabaseTracker.o has a global initializer
79162
79163         Since DatabaseTracker is a singleton, it makes much more sense to keep the database path as a member variable.
79164         Now constructing the shared DatabaseTracker no longer implicitly opens it - It is only opened when the databases 
79165         path is set.
79166         
79167         * WebCore.vcproj/WebCore.vcproj: Copy WebCore/storage headers for WebKit build
79168         
79169         * storage/Database.cpp:
79170         (WebCore::Database::~Database): Remove bogus assertion
79171         
79172         * storage/DatabaseTracker.cpp:
79173         (WebCore::DatabaseTracker::DatabaseTracker): Does nothing now!  Move this code to openTrackerDatabase
79174         (WebCore::DatabaseTracker::setDatabasePath): Set the member variable, also closing/opening the database if needed
79175         (WebCore::DatabaseTracker::databasePath):
79176         (WebCore::DatabaseTracker::openTrackerDatabase): To open and validate the Databases db, moved from the c'tor
79177         (WebCore::DatabaseTracker::fullPathForDatabase): Return the member variable
79178         * storage/DatabaseTracker.h:
79179
79180 2007-10-24  David Hyatt  <hyatt@apple.com>
79181
79182         Don't try to gap fill transformed selections.  Fix the invalidation of selection to use the clip to visible content
79183         code path so that it works with multi-column layouts and transforms.
79184
79185         Reviewed by aroben
79186
79187         * rendering/RenderBlock.cpp:
79188         (WebCore::RenderBlock::isSelectionRoot):
79189         (WebCore::RenderBlock::fillSelectionGaps):
79190         * rendering/RenderView.cpp:
79191         (WebCore::RenderView::setSelection):
79192
79193 2007-10-24  Eric Seidel  <eric@webkit.org>
79194
79195         No review, I want to tickle the CIA bot to test changes,
79196         and took this as an opportunity to clean up some old change logs.
79197
79198         * ChangeLog-2005-08-23: update email address
79199         * ChangeLog-2006-12-31: fix spelling mistakes
79200
79201 2007-10-24  Dan Bernstein  <mitz@apple.com>
79202
79203         Reviewed by Oliver Hunt.
79204
79205         - add "(anonymous)" to the renderName of anonymous table cells, rows and sections
79206
79207         * rendering/RenderTableCell.h:
79208         (WebCore::RenderTableCell::renderName):
79209         * rendering/RenderTableRow.h:
79210         (WebCore::RenderTableRow::renderName):
79211         * rendering/RenderTableSection.h:
79212         (WebCore::RenderTableSection::renderName):
79213
79214 2007-10-24  Timothy Hatcher  <timothy@apple.com>
79215
79216         Reviewed by Adam.
79217
79218         Bug 15476: DOM tree fully expands some elements when arrowing up
79219         http://bugs.webkit.org/show_bug.cgi?id=15476
79220
79221         Add a new expandTreeElementsWhenArrowing option to TreeOutline. This option
79222         is used only for the sidebar and search results.
79223
79224         * page/inspector/inspector.js: Opt-in for the sidebar and search results.
79225         * page/inspector/treeoutline.js: Add expandTreeElementsWhenArrowing and pass
79226           this option to traverseNextTreeElement and traversePreviousTreeElement.
79227
79228 2007-10-24  Anders Carlsson  <andersca@apple.com>
79229
79230         Reviewed by Geoff and Mitz.
79231
79232         <rdar://problem/5493833>
79233         REGRESSION: ~5MB of image data leaked @ cuteoverload.com (often seen while browsing other sites, too)
79234
79235         * bindings/js/kjs_binding.cpp:
79236         (KJS::ScriptInterpreter::markDOMNodesForDocument):
79237         If an image element that is currently loading an image is not in the document,
79238         it should still be marked.
79239         
79240         * bindings/js/kjs_html.cpp:
79241         (WebCore::ImageConstructorImp::construct):
79242         Force the document wrapper to be created.
79243         
79244         * html/HTMLImageElement.h:
79245         (WebCore::HTMLImageElement::haveFiredLoadEvent):
79246         New method which calls down to the image loader.
79247         
79248         * html/HTMLImageLoader.cpp:
79249         (WebCore::HTMLImageLoader::HTMLImageLoader):
79250         (WebCore::HTMLImageLoader::~HTMLImageLoader):
79251         (WebCore::HTMLImageLoader::setLoadingImage):
79252         (WebCore::HTMLImageLoader::dispatchLoadEvent):
79253         Remove code that's not needed anymore.
79254         
79255         * html/HTMLImageLoader.h:
79256         (WebCore::HTMLImageLoader::haveFiredLoadEvent):
79257         Make this public.
79258
79259 2007-10-23  Adam Roben  <aroben@apple.com>
79260
79261         Move Windows safe file creation code into WebCore from WebPreferences
79262
79263         Reviewed by Brady.
79264
79265         * platform/FileSystem.h:
79266         * platform/win/FileSystemWin.cpp:
79267         (WebCore::safeCreateFile): Moved here from WebKit/win/WebPreferences.cpp.
79268
79269 2007-10-23  Adam Roben  <aroben@apple.com>
79270
79271         Add methods to FileSystemWin to get some user profile directories
79272
79273         These directories are used to hold things like preferences, caches,
79274         etc.
79275
79276         Reviewed by Brady.
79277
79278         * platform/FileSystem.h: Added new method declarations for Windows
79279         only.
79280         * platform/win/FileSystemWin.cpp:
79281         (WebCore::bundleName): Added.
79282         (WebCore::storageDirectory): Added.
79283         (WebCore::cachedStorageDirectory): Added.
79284         (WebCore::localUserSpecificStorageDirectory): Added. Returns the
79285         directory where WebKit should store any user-specific data that should
79286         stay local to the current machine (i.e., shouldn't be stored in a
79287         roaming profile).
79288         (WebCore::roamingUserSpecificStorageDirectory): Added. Returns the
79289         directory where WebKit should store any user-specific data that should
79290         move with the user from machine to machine (i.e., should be stored in
79291         a roaming profile).
79292
79293 2007-10-24  Alp Toker  <alp@atoker.com>
79294
79295         Reviewed by Mark Rowe.
79296
79297         http://bugs.webkit.org/show_bug.cgi?id=15659
79298         InlineTextBox does not setStrokeStyle() as needed
79299
79300         GraphicsContextCairo workaround to support a GraphicsContextCG quirk:
79301
79302         Save and restore the StrokeStyle manually.
79303
79304         * platform/graphics/cairo/GraphicsContextCairo.cpp:
79305         (WebCore::GraphicsContext::drawLineForText):
79306
79307 2007-10-24  Julien Chaffraix  <julien.chaffraix@gmail.com>
79308
79309         Reviewed by Darin.
79310
79311         Patch for http://bugs.webkit.org/show_bug.cgi?id=15356
79312         Bug 15356: getResponseHeader and getAllResponseHeaders do not throw exceptions
79313
79314         - getAllResponseHeaders and getResponseHeader throws INVALID_STATE_ERR exception as specified in the specification
79315
79316         - Add the check to field-name production in getResponseHeader (call to isValidToken) and returns an empty string if the header is not valid (Opera and IE behaviour)
79317
79318         - Updated XMLHttpRequest::responseMIMEType() to keep its behaviour
79319
79320         Tests: http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html
79321                http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html
79322                http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html
79323
79324         * bindings/js/JSXMLHttpRequest.cpp:
79325         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
79326         * xml/XMLHttpRequest.cpp:
79327         (WebCore::XMLHttpRequest::getAllResponseHeaders):
79328         (WebCore::XMLHttpRequest::getResponseHeader):
79329         (WebCore::XMLHttpRequest::responseMIMEType):
79330         * xml/XMLHttpRequest.h:
79331
79332 2007-10-24  Lars Knoll  <lars@trolltech.com>
79333
79334         Reviewed by Simon.
79335
79336         implement most of DragData.
79337
79338         * platform/qt/DragDataQt.cpp:
79339         (WebCore::DragData::containsColor):
79340         (WebCore::DragData::containsFiles):
79341         (WebCore::DragData::asFilenames):
79342         (WebCore::DragData::containsPlainText):
79343         (WebCore::DragData::asPlainText):
79344         (WebCore::DragData::asColor):
79345         (WebCore::DragData::containsCompatibleContent):
79346         (WebCore::DragData::containsURL):
79347
79348 2007-10-24  Lars Knoll  <lars@trolltech.com>
79349
79350         Reviewed by Simon.
79351
79352         remove a stupid notImplemented() warning and implement PasteBoad::clear().
79353
79354         * platform/qt/PasteboardQt.cpp:
79355
79356 2007-10-24  Lars Knoll  <lars@trolltech.com>
79357
79358         Reviewed by Simon.
79359
79360         implement Pasteboard::documentFragment(), and fix a mem leak.
79361
79362         * platform/qt/PasteboardQt.cpp:
79363         (WebCore::Pasteboard::generalPasteboard):
79364         (WebCore::Pasteboard::documentFragment):
79365
79366 2007-10-24  Lars Knoll  <lars@trolltech.com>
79367
79368         Reviewed by Simon.
79369
79370         Simplify the PlatformKeyEvent constructor. No need to have an extra boolean for isKeyUp in there, as the QKeyEvent has the information.
79371
79372         * platform/PlatformKeyboardEvent.h:
79373         * platform/qt/PlatformKeyboardEventQt.cpp:
79374         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
79375
79376 2007-10-24  Lars Knoll  <lars@trolltech.com>
79377
79378         Reviewed by Simon.
79379
79380         use the new QTextBoundaryFinder class in Qt.
79381
79382         * platform/qt/TextBoundaries.cpp:
79383         (WebCore::findNextWordFromIndex):
79384         (WebCore::findWordBoundary):
79385         * platform/qt/TextBreakIteratorQt.cpp:
79386         (WebCore::wordBreakIterator):
79387         (WebCore::characterBreakIterator):
79388         (WebCore::lineBreakIterator):
79389         (WebCore::sentenceBreakIterator):
79390         (WebCore::textBreakFirst):
79391         (WebCore::textBreakNext):
79392         (WebCore::textBreakPreceding):
79393         (WebCore::textBreakFollowing):
79394         (WebCore::textBreakCurrent):
79395         (WebCore::isTextBreak):
79396
79397 2007-10-24  Darin Adler  <darin@apple.com>
79398
79399         Reviewed by Maciej.
79400
79401         - http://bugs.webkit.org/show_bug.cgi?id=15657
79402           change static hash tables to use powers of two for speed
79403
79404         * bindings/scripts/CodeGeneratorJS.pm: Updated to generate new format.
79405
79406 2007-10-24  Simon Hausmann  <hausmann@kde.org>
79407
79408         Reviewed by Lars.
79409
79410         Make the implementation of pathByAppendingComponent use QDir.
79411
79412         * platform/qt/FileSystemQt.cpp:
79413
79414 2007-10-24  David Hyatt  <hyatt@apple.com>
79415
79416         Make repainting work with transforms.
79417
79418         Reviewed by John Sullivan
79419
79420         * rendering/RenderBox.cpp:
79421         (WebCore::RenderBox::computeAbsoluteRepaintRect):
79422
79423 2007-10-23  Alp Toker  <alp@atoker.com>
79424
79425         Reviewed by Maciej.
79426
79427         http://bugs.webkit.org/show_bug.cgi?id=14412
79428         [GDK] Clipboard support
79429
79430         Initial clipboard implementation for the GTK+ port.
79431
79432         * platform/gtk/ClipboardGtk.cpp:
79433         (WebCore::Editor::newGeneralClipboard):
79434         * platform/gtk/PasteboardGtk.cpp:
79435         (WebCore::Pasteboard::generalPasteboard):
79436         (WebCore::Pasteboard::Pasteboard):
79437         (WebCore::Pasteboard::~Pasteboard):
79438         (WebCore::Pasteboard::writeSelection):
79439         (WebCore::Pasteboard::writeImage):
79440         (WebCore::Pasteboard::clear):
79441         (WebCore::Pasteboard::plainText):
79442         * platform/gtk/TemporaryLinkStubs.cpp:
79443
79444 2007-10-23  Timothy Hatcher  <timothy@apple.com>
79445
79446         Reviewed by Adam.
79447
79448         Fixes the Network panel so that it refreshes as needed.
79449
79450         * page/inspector/ConsolePanel.js: Call the base class show() and hide() first.
79451         * page/inspector/NetworkPanel.js: Add refreshNeeded and refreshIfNeeded back. Ditto.
79452
79453 2007-10-23  Justin Garcia  <justin.garcia@apple.com>
79454
79455         Reviewed by Oliver Hunt.
79456
79457         <rdar://problem/5544856> 
79458         REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
79459         
79460         No layout test for now because I'm having trouble getting Undo during a layout
79461         test to only undo the last Undo step, and I want to write a test that fails
79462         without the code change.
79463
79464         * editing/Editor.cpp:
79465         (WebCore::Editor::confirmComposition): When we replace the previous composition,
79466         delete it with a sub-command of the command used to insert the new composition,
79467         instead of with a separate command.  No new code was added because insertText
79468         already deletes the current selection.
79469         (WebCore::Editor::setComposition): Ditto.
79470
79471 2007-10-23  Adam Roben  <aroben@apple.com>
79472
79473         Fix the behavior of pathByAppendingComponent when path is empty
79474
79475         We now use the Windows Shell API function PathAppendW instead of
79476         rolling our own broken implementation.
79477
79478         Reviewed by Anders.
79479
79480         * platform/win/FileSystemWin.cpp:
79481         (WebCore::pathByAppendingComponent):
79482
79483 2007-10-23  Adele Peterson  <adele@apple.com>
79484
79485         Reviewed by Darin.
79486
79487         Fix for <rdar://problem/5543228> CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::HTMLInputElement::defaultEventHandler + 872
79488
79489         Test: fast/forms/textfield-onchange-deletion.html
79490
79491         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
79492           Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.
79493
79494 2007-10-23  Timothy Hatcher  <timothy@apple.com>
79495
79496         Reviewed by Sam Weinig.
79497
79498         - Made seperate files for the various classes in ResourcePanel.js.
79499         - Broke up ResourcePanel.js and created seperate panel classes for different resource types.
79500         - Moved View code down to the Panel base-class.
79501         - Reduced code duplication in DatabasePanel.js by sub-classing from the new ResourcePanel.
79502
79503         * page/inspector/DatabasePanel.js:
79504         * page/inspector/DocumentPanel.js: Added.
79505         * page/inspector/FontPanel.js: Added.
79506         * page/inspector/ImagePanel.js: Added.
79507         * page/inspector/Panel.js: Added.
79508         * page/inspector/PropertiesSection.js: Added.
79509         * page/inspector/Resource.js:
79510         * page/inspector/ResourcePanel.js:
79511         * page/inspector/SidebarPane.js: Added.
79512         * page/inspector/SourcePanel.js: Added.
79513         * page/inspector/inspector.css:
79514         * page/inspector/inspector.html:
79515         * page/inspector/inspector.js:
79516
79517 2007-10-23  Anders Carlsson  <andersca@apple.com>
79518
79519         Correct the version #if check.
79520         
79521         * platform/sql/SQLDatabase.cpp:
79522         (WebCore::SQLDatabase::authorizerFunction):
79523
79524 2007-10-23  Jon Honeycutt  <jhoneycutt@apple.com>
79525
79526         Reviewed by Anders.
79527
79528         <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
79529         java page
79530
79531         It is possible to load Mozilla's Java plugin instead of our own, which
79532         can lead to a crash. The fix is to prefer plugins in our own Plugins
79533         directory when searching for a plugin.
79534
79535         * plugins/win/PluginDatabaseWin.cpp:
79536         (WebCore::safariPluginsPath): Return the path to our own Plugins
79537         directory
79538         (WebCore::PluginDatabaseWin::defaultPluginPaths): Use new method
79539         safariPluginsPath()
79540         (WebCore::PluginDatabaseWin::pluginForMIMEType): If the plugin's path is
79541         our Plugins path, return this plugin. Otherwise, continue scanning the
79542         list of plugins
79543         (WebCore::PluginDatabaseWin::pluginForExtension): Same
79544         * plugins/win/PluginPackageWin.h:
79545         (WebCore::PluginPackageWin::path): Return this plugin's path
79546
79547 2007-10-23  Jasper Bryant-Greene  <m@ni.ac.nz>
79548
79549         Reviewed by Darin.
79550
79551         http://bugs.webkit.org/show_bug.cgi?id=15058
79552         Precedence fault in KeyEventGdk causes shift, control, alt etc to work incorrectly
79553
79554         Corrected precendence fault which was causing Shift, Alt, Control and
79555         Meta to behave incorrectly on GTK.
79556
79557         Coding style fix by Alp.
79558
79559         * platform/gtk/KeyEventGtk.cpp:
79560         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
79561
79562 2007-10-23  Sam Weinig  <sam@webkit.org>
79563
79564         Reviewed by Tim Hatcher.
79565
79566         Add resizing of the DOM view right sidebar.  This allows us to actually see the values now.
79567
79568         * page/inspector/ResourcePanel.js:
79569         * page/inspector/inspector.css:
79570         * page/inspector/inspector.js:
79571         * page/inspector/utilities.js:
79572
79573 2007-10-23  David Hyatt  <hyatt@apple.com>
79574
79575         Get basic hit testing right for transforms.
79576
79577         Reviewed by ollliej
79578
79579         * platform/graphics/AffineTransform.cpp:
79580         (WebCore::AffineTransform::mapPoint):
79581         * platform/graphics/AffineTransform.h:
79582         * rendering/InlineBox.cpp:
79583         (WebCore::InlineBox::nodeAtPoint):
79584         * rendering/RenderBlock.cpp:
79585         (WebCore::RenderBlock::nodeAtPoint):
79586         * rendering/RenderLayer.cpp:
79587         (WebCore::RenderLayer::paintLayer):
79588         (WebCore::RenderLayer::hitTest):
79589         (WebCore::RenderLayer::hitTestLayer):
79590         * rendering/RenderLayer.h:
79591         * rendering/RenderObject.cpp:
79592         (WebCore::RenderObject::hitTest):
79593         * rendering/RenderObject.h:
79594
79595 2007-10-23  Eric Seidel  <eric@webkit.org>
79596
79597         Reviewed by Mark Rowe.
79598
79599         Fix leaks seen on TOT from new font-face code.
79600
79601         * ksvg2/svg/SVGFontFaceElement.cpp:
79602         (WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing
79603
79604 2007-10-23  Eric Seidel  <eric@webkit.org>
79605
79606         Build fix only, no review.
79607
79608         Sacrifice three virgin hours upon the altar of the heathen XCode gods
79609         and pray that our build troubles are finally over. :(
79610
79611         * DerivedSources.make: add DOMSVGException.h
79612         * WebCore.xcodeproj/project.pbxproj: Remove DOMSVG*Interal.h files from "Copy Generated Headers" phase. Why?  Who knows.
79613
79614 2007-10-22  Steve Falkenburg  <sfalken@apple.com>
79615
79616         Fix build.
79617
79618         * plugins/win/PluginViewWin.cpp:
79619
79620 2007-10-22  Eric Seidel  <eric@webkit.org>
79621
79622         Build fix only, no review.
79623
79624         * WebCore.xcodeproj/project.pbxproj: re-add all DOMSVG headers to copy-files phase to make sure.
79625
79626 2007-10-22  Eric Seidel  <eric@webkit.org>
79627
79628         Build fix only, no review.
79629
79630         * WebCore.xcodeproj/project.pbxproj: make sure DOMSVGAnimateElement.h is copied into headers.
79631
79632 2007-10-22  Eric Seidel  <eric@webkit.org>
79633
79634         Reviewed by Maciej.
79635
79636         Fix build by properly exposing SVG font-face dom bindings.
79637
79638         * DerivedSources.make:
79639         * WebCore.vcproj/WebCore.vcproj: add font-face files to build
79640         * WebCore.xcodeproj/project.pbxproj: add missing DOM bindings files
79641         * bindings/js/JSSVGElementWrapperFactory.cpp:
79642         * bindings/objc/DOM.mm:
79643         (WebCore::createElementClassMap):
79644         * bindings/objc/DOMSVG.h:
79645         * ksvg2/svg/SVGDefinitionSrcElement.idl: inherit from SVGElement
79646
79647 2007-10-22  Mark Rowe  <mrowe@apple.com>
79648
79649         Gtk build fix.
79650
79651         * WebCore.pro:
79652
79653 2007-10-22  Darin Adler  <darin@apple.com>
79654
79655         - a first cut at fixing the Qt and GTK builds
79656
79657         * WebCore.pro: Add new .idl and .cpp files.
79658         * DerivedSources.make: Re-sorted.
79659
79660 2007-10-22  Eric Seidel  <eric@webkit.org>
79661
79662         Reviewed by hyatt.
79663
79664         Implement <font-face> and friends for SVG.
79665         http://bugs.webkit.org/show_bug.cgi?id=10652
79666
79667         * DerivedSources.make:
79668         * WebCore.xcodeproj/project.pbxproj:
79669         * bindings/js/JSSVGElementWrapperFactory.cpp:
79670         * dom/Document.cpp:
79671         (WebCore::Document::mappedElementSheet):
79672         (WebCore::Document::recalcStyleSelector):
79673         * dom/Document.h:
79674         * ksvg2/scripts/make_names.pl:
79675         * ksvg2/svg/SVGDefinitionSrcElement.cpp: Added.
79676         (WebCore::SVGDefinitionSrcElement::SVGDefinitionSrcElement):
79677         (WebCore::SVGDefinitionSrcElement::~SVGDefinitionSrcElement):
79678         (WebCore::SVGDefinitionSrcElement::childrenChanged):
79679         * ksvg2/svg/SVGDefinitionSrcElement.h: Added.
79680         * ksvg2/svg/SVGDefinitionSrcElement.idl: Added.
79681         * ksvg2/svg/SVGFontFaceElement.cpp: Added.
79682         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
79683         (WebCore::SVGFontFaceElement::~SVGFontFaceElement):
79684         (WebCore::cssPropertyIdForName):
79685         (WebCore::mapAttributeToCSSProperty):
79686         (WebCore::cssPropertyIdForSVGAttributeName):
79687         (WebCore::SVGFontFaceElement::parseMappedAttribute):
79688         (WebCore::SVGFontFaceElement::rebuildFontFace):
79689         (WebCore::SVGFontFaceElement::childrenChanged):
79690         * ksvg2/svg/SVGFontFaceElement.h: Added.
79691         * ksvg2/svg/SVGFontFaceElement.idl: Added.
79692         * ksvg2/svg/SVGFontFaceFormatElement.cpp: Added.
79693         (WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement):
79694         (WebCore::SVGFontFaceFormatElement::~SVGFontFaceFormatElement):
79695         (WebCore::SVGFontFaceFormatElement::childrenChanged):
79696         * ksvg2/svg/SVGFontFaceFormatElement.h: Added.
79697         * ksvg2/svg/SVGFontFaceFormatElement.idl: Added.
79698         * ksvg2/svg/SVGFontFaceNameElement.cpp: Added.
79699         (WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement):
79700         (WebCore::SVGFontFaceNameElement::~SVGFontFaceNameElement):
79701         (WebCore::SVGFontFaceNameElement::srcValue):
79702         * ksvg2/svg/SVGFontFaceNameElement.h: Added.
79703         * ksvg2/svg/SVGFontFaceNameElement.idl: Added.
79704         * ksvg2/svg/SVGFontFaceSrcElement.cpp: Added.
79705         (WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement):
79706         (WebCore::SVGFontFaceSrcElement::~SVGFontFaceSrcElement):
79707         (WebCore::SVGFontFaceSrcElement::srcValue):
79708         (WebCore::SVGFontFaceSrcElement::childrenChanged):
79709         * ksvg2/svg/SVGFontFaceSrcElement.h: Added.
79710         * ksvg2/svg/SVGFontFaceSrcElement.idl: Added.
79711         * ksvg2/svg/SVGFontFaceUriElement.cpp: Added.
79712         (WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement):
79713         (WebCore::SVGFontFaceUriElement::~SVGFontFaceUriElement):
79714         (WebCore::SVGFontFaceUriElement::srcValue):
79715         (WebCore::SVGFontFaceUriElement::childrenChanged):
79716         * ksvg2/svg/SVGFontFaceUriElement.h: Added.
79717         * ksvg2/svg/SVGFontFaceUriElement.idl: Added.
79718         * ksvg2/svg/svgtags.in:
79719
79720 2007-10-22  Jon Honeycutt  <jhoneycutt@apple.com>
79721
79722         Reviewed by Anders.
79723
79724         <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
79725         java page
79726
79727         We purposefully do not destroy our Java VM when its reference count
79728         reaches 0, but we were unloading our JavaPlugin.dll when its reference
79729         count reached 0, which lost the reference to the VM. This led to our
79730         process trying to create a new VM the next time a page using Java was
79731         loaded, and the JNI spec states that a single process is not allowed to
79732         create more than one VM. The fix is to avoid unloading the Java plugin
79733         via our PluginQuirkDontUnloadPlugin. 
79734
79735         * plugins/win/PluginViewWin.cpp:
79736         (WebCore::PluginViewWin::determineQuirks):
79737
79738 2007-10-22  David Hyatt  <hyatt@apple.com>
79739
79740         Fix for bug 15624, make transforms work properly with opacity.
79741
79742         Make sure a unitless 0 is allowed as an angle argument to rotation/skew.
79743
79744         Reviewed by Mitz Pettel
79745
79746         fast/transforms/transforms-with-opacity.html
79747         fast/transforms/skew-with-unitless-zero.html
79748
79749         * css/CSSParser.cpp:
79750         (WebCore::CSSParser::validUnit):
79751         * rendering/RenderLayer.cpp:
79752         (WebCore::transparencyClipBox):
79753         (WebCore::RenderLayer::beginTransparencyLayers):
79754         (WebCore::RenderLayer::paintLayer):
79755         (WebCore::RenderLayer::calculateClipRects):
79756         * rendering/RenderLayer.h:
79757         (WebCore::RenderLayer::transform):
79758
79759 2007-10-22  Adam Roben  <aroben@apple.com>
79760
79761         Windows build fix
79762
79763         * WebCore.vcproj/WebCore.vcproj: Copy header files from platform/sql.
79764         * page/Page.cpp: Touched to force the header files to be copied.
79765
79766 2007-10-22  Nikolas Zimmermann  <zimmermann@kde.org>
79767
79768         Reviewed by Simon.
79769
79770         Move textPath related SVGChar data in it's own structure SVGCharOnPath.
79771         Store a pointer to that datastructure inside SVGChar, instead of 4 floats & one bool.
79772
79773         Saves space for the common case. And allows me to add more data (another float) to support
79774         glyph-orientation-* on textPath later on...
79775
79776         * rendering/SVGCharacterLayoutInfo.cpp:
79777         (WebCore::SVGChar::characterTransform):
79778         * rendering/SVGCharacterLayoutInfo.h:
79779         * rendering/SVGRootInlineBox.cpp:
79780         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
79781         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
79782
79783 2007-10-22  Alp Toker  <alp@atoker.com>
79784
79785         Reviewed by Nikolas Zimmermann.
79786
79787         Implement more GraphicsContextCairo stubs.
79788
79789         Remove a hack "to work around no current point bug" that was breaking
79790         canvas tests.
79791
79792         Fix warnings.
79793
79794         * platform/graphics/cairo/CairoPath.h:
79795         (WebCore::CairoPath::CairoPath):
79796         * platform/graphics/cairo/GraphicsContextCairo.cpp:
79797         (WebCore::GraphicsContext::addInnerRoundedRectClip):
79798         (WebCore::GraphicsContext::strokeRect):
79799         * platform/graphics/cairo/PathCairo.cpp:
79800         (WebCore::Path::isEmpty):
79801         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
79802         (WebCore::SVGPaintServerGradient::setup):
79803         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
79804         (WebCore::SVGPaintServerSolid::setup):
79805
79806 2007-10-22  Simon Hausmann  <hausmann@kde.org>
79807
79808         Reviewed by Nikolas.
79809
79810         Fix compilation from a clean build with the database feature disabled.
79811         JSCustomVersionChangeCallback.cpp doesn't actually need the SQL header file, just ScriptInterpreter.
79812
79813         * bindings/js/JSCustomVersionChangeCallback.cpp:
79814         * page/InspectorController.cpp:
79815
79816 2007-10-22  Andrew Wellington  <proton@wiretapped.net>
79817
79818         Reviewed by Mark Rowe.
79819
79820         Fix for local database support after r26879
79821         Ensure that ENABLE_DATABASE and ENABLE_ICONDATABASE are correctly set
79822
79823         * Configurations/WebCore.xcconfig:
79824         * WebCore.pro:
79825         * WebCore.vcproj/build-generated-files.sh:
79826
79827 2007-10-22  Simon Hausmann  <hausmann@kde.org>
79828
79829         Reviewed by Lars.
79830
79831         Disable the Database feature for the qmake build for now.
79832
79833         * WebCore.pro:
79834
79835 2007-10-22  Simon Hausmann  <hausmann@kde.org>
79836
79837         Reviewed by Lars.
79838
79839         Make disabling the database feature (ENABLE_DATABASE=0) work by
79840         placing various #ifdefs into the code and making the compilation of
79841         some files optional.
79842
79843         * WebCore.pro:
79844         * dom/Document.cpp:
79845         (WebCore::Document::~Document):
79846         (WebCore::Document::defaultEventHandler):
79847         * dom/Document.h:
79848         * page/DOMWindow.cpp:
79849         * page/DOMWindow.h:
79850         * page/DOMWindow.idl:
79851         * page/InspectorController.cpp:
79852         (WebCore::InspectorController::windowScriptObjectAvailable):
79853         (WebCore::InspectorController::populateScriptResources):
79854         (WebCore::InspectorController::clearDatabaseScriptResources):
79855         (WebCore::InspectorController::didCommitLoad):
79856         * page/InspectorController.h:
79857
79858 2007-10-22  Alp Toker  <alp@atoker.com>
79859
79860         Reviewed by Mark Rowe.
79861
79862         http://bugs.webkit.org/show_bug.cgi?id=15611
79863         [GTK] Text selection behaviour different in Debug and Release builds
79864
79865         http://bugs.webkit.org/show_bug.cgi?id=15578
79866         [GTK] Text editor caret does not blink
79867
79868         Never allow control to reach the end of non-void functions.
79869
79870         Return more sensible values, or in some cases, nulls.
79871
79872         * page/gtk/EventHandlerGtk.cpp:
79873         (WebCore::isKeyboardOptionTab):
79874         (WebCore::EventHandler::tabsToAllControls):
79875         (WebCore::EventHandler::eventActivatedView):
79876
79877 2007-10-22  Holger Freyther  <zecke@selfish.org>
79878
79879         Reviewed by Simon Hausmann <hausmann@kde.org>.
79880
79881         Implement ResourceHandle::loadResourceSynchronously using ResourceHandle and a special ResourceHandleClient. This approach has the possible danger of reentrancy.
79882
79883         * platform/network/qt/ResourceHandleQt.cpp:
79884         (WebCore::WebCoreSynchronousLoader::resourceResponse):
79885         (WebCore::WebCoreSynchronousLoader::resourceError):
79886         (WebCore::WebCoreSynchronousLoader::data):
79887         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
79888         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
79889         (WebCore::WebCoreSynchronousLoader::didReceiveData):
79890         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
79891         (WebCore::WebCoreSynchronousLoader::didFail):
79892         (WebCore::WebCoreSynchronousLoader::waitForCompletion):
79893         (WebCore::ResourceHandle::loadResourceSynchronously):
79894
79895 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
79896
79897         Reviewed by Lars Knoll <lars@trolltech.com>.
79898
79899         Style fix. It is allowed to attempt to delete 0.
79900
79901         * platform/qt/ClipboardQt.cpp:
79902
79903 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
79904
79905         Reviewed by Lars Knoll <lars@trolltech.com>.
79906
79907         Make it actually localizable....
79908
79909         * platform/qt/Localizations.cpp:
79910         (WebCore::submitButtonDefaultLabel):
79911         (WebCore::inputElementAltText):
79912         (WebCore::searchableIndexIntroduction):
79913         (WebCore::fileButtonChooseFileLabel):
79914         (WebCore::fileButtonNoFileSelectedLabel):
79915         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
79916         (WebCore::contextMenuItemTagDownloadLinkToDisk):
79917         (WebCore::contextMenuItemTagCopyLinkToClipboard):
79918         (WebCore::contextMenuItemTagOpenImageInNewWindow):
79919         (WebCore::contextMenuItemTagDownloadImageToDisk):
79920         (WebCore::contextMenuItemTagCopyImageToClipboard):
79921         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
79922         (WebCore::contextMenuItemTagCopy):
79923         (WebCore::contextMenuItemTagGoBack):
79924         (WebCore::contextMenuItemTagGoForward):
79925         (WebCore::contextMenuItemTagStop):
79926         (WebCore::contextMenuItemTagReload):
79927         (WebCore::contextMenuItemTagCut):
79928         (WebCore::contextMenuItemTagPaste):
79929         (WebCore::contextMenuItemTagNoGuessesFound):
79930         (WebCore::contextMenuItemTagIgnoreSpelling):
79931         (WebCore::contextMenuItemTagLearnSpelling):
79932         (WebCore::contextMenuItemTagSearchWeb):
79933         (WebCore::contextMenuItemTagLookUpInDictionary):
79934         (WebCore::contextMenuItemTagOpenLink):
79935         (WebCore::contextMenuItemTagIgnoreGrammar):
79936         (WebCore::contextMenuItemTagSpellingMenu):
79937         (WebCore::contextMenuItemTagShowSpellingPanel):
79938         (WebCore::contextMenuItemTagCheckSpelling):
79939         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
79940         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
79941         (WebCore::contextMenuItemTagFontMenu):
79942         (WebCore::contextMenuItemTagBold):
79943         (WebCore::contextMenuItemTagItalic):
79944         (WebCore::contextMenuItemTagUnderline):
79945         (WebCore::contextMenuItemTagOutline):
79946         (WebCore::contextMenuItemTagWritingDirectionMenu):
79947         (WebCore::contextMenuItemTagDefaultDirection):
79948         (WebCore::contextMenuItemTagLeftToRight):
79949         (WebCore::contextMenuItemTagRightToLeft):
79950         (WebCore::contextMenuItemTagInspectElement):
79951         (WebCore::searchMenuNoRecentSearchesText):
79952         (WebCore::searchMenuRecentSearchesText):
79953
79954 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
79955
79956         Reviewed by Lars Knoll <lars@trolltech.com>.
79957
79958         Adjust the code to obey the Coding Style.
79959
79960         * platform/qt/Localizations.cpp:
79961         (WebCore::submitButtonDefaultLabel):
79962         (WebCore::inputElementAltText):
79963         (WebCore::resetButtonDefaultLabel):
79964         (WebCore::defaultLanguage):
79965         (WebCore::searchableIndexIntroduction):
79966         (WebCore::fileButtonChooseFileLabel):
79967         (WebCore::fileButtonNoFileSelectedLabel):
79968         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
79969         (WebCore::contextMenuItemTagDownloadLinkToDisk):
79970         (WebCore::contextMenuItemTagCopyLinkToClipboard):
79971         (WebCore::contextMenuItemTagOpenImageInNewWindow):
79972         (WebCore::contextMenuItemTagDownloadImageToDisk):
79973         (WebCore::contextMenuItemTagCopyImageToClipboard):
79974         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
79975         (WebCore::contextMenuItemTagCopy):
79976         (WebCore::contextMenuItemTagGoBack):
79977         (WebCore::contextMenuItemTagGoForward):
79978         (WebCore::contextMenuItemTagStop):
79979         (WebCore::contextMenuItemTagReload):
79980         (WebCore::contextMenuItemTagCut):
79981         (WebCore::contextMenuItemTagPaste):
79982         (WebCore::contextMenuItemTagNoGuessesFound):
79983         (WebCore::contextMenuItemTagIgnoreSpelling):
79984         (WebCore::contextMenuItemTagLearnSpelling):
79985         (WebCore::contextMenuItemTagSearchWeb):
79986         (WebCore::contextMenuItemTagLookUpInDictionary):
79987         (WebCore::contextMenuItemTagOpenLink):
79988         (WebCore::contextMenuItemTagIgnoreGrammar):
79989         (WebCore::contextMenuItemTagSpellingMenu):
79990         (WebCore::contextMenuItemTagShowSpellingPanel):
79991         (WebCore::contextMenuItemTagCheckSpelling):
79992         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
79993         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
79994         (WebCore::contextMenuItemTagFontMenu):
79995         (WebCore::contextMenuItemTagBold):
79996         (WebCore::contextMenuItemTagItalic):
79997         (WebCore::contextMenuItemTagUnderline):
79998         (WebCore::contextMenuItemTagOutline):
79999         (WebCore::contextMenuItemTagWritingDirectionMenu):
80000         (WebCore::contextMenuItemTagDefaultDirection):
80001         (WebCore::contextMenuItemTagLeftToRight):
80002         (WebCore::contextMenuItemTagRightToLeft):
80003         (WebCore::contextMenuItemTagInspectElement):
80004         (WebCore::searchMenuNoRecentSearchesText):
80005         (WebCore::searchMenuRecentSearchesText):
80006         (WebCore::searchMenuClearRecentSearchesText):
80007         (WebCore::AXWebAreaText):
80008         (WebCore::AXLinkText):
80009         (WebCore::AXListMarkerText):
80010         (WebCore::AXImageMapText):
80011         (WebCore::AXHeadingText):
80012         (WebCore::unknownFileSizeText):
80013
80014 2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
80015
80016         Reviewed by Lars Knoll <lars@trolltech.com>.
80017
80018         Return a non empty string in more functions.
80019
80020         * platform/qt/Localizations.cpp:
80021         (WebCore::contextMenuItemTagShowSpellingPanel):
80022
80023 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
80024
80025         Reviewed by Lars Knoll <lars@trolltech.com>.
80026
80027         Shrink the TemporaryLinkStubs and move the
80028         Frame::setNeedsReapplyStyles stub to FrameQt.cpp
80029
80030         * page/qt/FrameQt.cpp:
80031         (WebCore::Frame::setNeedsReapplyStyles):
80032         * platform/qt/TemporaryLinkStubs.cpp:
80033
80034 2007-10-22  Holger Freyther  <zecke@selfish.org>
80035
80036         Reviewed by Lars Knoll <lars@trolltech.com>.
80037
80038         Implement the WebCore::fileSize function. The
80039         implementation assumes that QFileInfo will cache
80040         the result of the stat so that info.size() and
80041         info.exists() use the same stat result.
80042
80043         * platform/qt/FileSystemQt.cpp:
80044         (WebCore::deleteFile):
80045         * platform/qt/TemporaryLinkStubs.cpp:
80046
80047 2007-10-21  Alp Toker  <alp@atoker.com>
80048
80049         Reviewed by Mark Rowe.
80050
80051         Use the portable GLib time function.
80052
80053         Use event timestamps rather than the current time where available.
80054
80055         Rename SharedTimerLinux.cpp since it isn't Linux-specific.
80056
80057         * WebCore.pro:
80058         * platform/gtk/MouseEventGtk.cpp:
80059         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
80060         * platform/gtk/SystemTimeGtk.cpp: Added.
80061         (WebCore::currentTime):
80062         * platform/gtk/SharedTimerGtk.cpp: Copied from platform/gtk/SharedTimerLinux.cpp.
80063         * platform/gtk/SharedTimerLinux.cpp: Removed.
80064
80065 2007-10-22  David Hyatt  <hyatt@apple.com>
80066
80067         Fix for 15596, regression from my transform changes.  Preserve null checks on the clip rects calls for parent(),
80068         since the method is called on orphaned layers.  This is not very well understood.
80069
80070         Reviewed by eric
80071
80072         * rendering/RenderLayer.cpp:
80073         (WebCore::RenderLayer::calculateClipRects):
80074         (WebCore::RenderLayer::calculateRects):
80075
80076 2007-10-21  Mark Rowe  <mrowe@apple.com>
80077
80078         Reviewed by Alp.
80079
80080         http://bugs.webkit.org/show_bug.cgi?id=15575
80081         Bug 15575: [GTK] Implement threading using GThread
80082
80083         * WebCore.pro: Remove ThreadingPthreads.cpp from the Gtk build and link against libgthreads.
80084         * loader/icon/IconDatabase.cpp: Initialize threading before the mutex is created to be compatible with gthreads.
80085         (WebCore::iconDatabase):
80086         (WebCore::IconDatabase::open):
80087         * platform/Threading.h:
80088         * platform/gtk/ThreadingGtk.cpp: Threading implementation in terms of GThread, based heavily on the pthreads implementation.
80089         (WebCore::initializeThreading):
80090         (WebCore::threadMapMutex):
80091         (WebCore::threadMap):
80092         (WebCore::establishIdentifierForThread):
80093         (WebCore::threadForIdentifier):
80094         (WebCore::clearThreadForIdentifier):
80095         (WebCore::createThread):
80096         (WebCore::waitForThreadCompletion):
80097         (WebCore::detachThread):
80098         (WebCore::Mutex::Mutex):
80099         (WebCore::Mutex::~Mutex):
80100         (WebCore::Mutex::lock):
80101         (WebCore::Mutex::tryLock):
80102         (WebCore::Mutex::unlock):
80103         (WebCore::ThreadCondition::ThreadCondition):
80104         (WebCore::ThreadCondition::~ThreadCondition):
80105         (WebCore::ThreadCondition::wait):
80106         (WebCore::ThreadCondition::signal):
80107         (WebCore::ThreadCondition::broadcast):
80108         * storage/Database.cpp:
80109         (WebCore::Database::Database): Initialize threading when Database is used so that it will be initialized even
80110         if the icon database is compiled out
80111
80112 2007-10-21  Mark Rowe  <mrowe@apple.com>
80113
80114         Build fix.
80115
80116         * ksvg2/css/SVGCSSStyleSelector.cpp: Use fabsf when dealing with a float to prevent the
80117         implicit conversion warning.
80118
80119 2007-10-21  Alp Toker  <alp@atoker.com>
80120
80121         Reviewed by Mark Rowe.
80122
80123         Implement spelling and grammar mistake underlining with Pango/Cairo.
80124
80125         This change does not add any actual support for spelling or grammar
80126         checking to any port.
80127
80128         * platform/graphics/cairo/GraphicsContextCairo.cpp:
80129         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
80130
80131 2007-10-21  Alp Toker  <alp@atoker.com>
80132
80133         Reviewed by Mark Rowe.
80134
80135         Cairo canvas fixes:
80136
80137         Fix a refcounting issue leading to leaks and crashes on canvas
80138         content.
80139
80140         Delegate memory management of canvas images to Cairo.
80141
80142         Mark unhandled conditions with notImplemented() instead of silently
80143         ignoring them.
80144
80145         * html/CanvasRenderingContext2D.cpp:
80146         (WebCore::CanvasRenderingContext2D::drawImage):
80147         * html/CanvasStyle.cpp:
80148         (WebCore::CanvasStyle::applyStrokeColor):
80149         * html/CanvasStyle.h:
80150         * html/HTMLCanvasElement.cpp:
80151         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
80152         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
80153         (WebCore::HTMLCanvasElement::reset):
80154         (WebCore::HTMLCanvasElement::paint):
80155         (WebCore::HTMLCanvasElement::createDrawingContext):
80156         (WebCore::HTMLCanvasElement::createPlatformImage):
80157
80158 2007-10-21  Nikolas Zimmermann  <zimmermann@kde.org>
80159
80160         Reviewed by Eric.
80161
80162         Handle glyph-orientation-vertical / glyph-orientation-horizontal SVG CSS properties.
80163
80164         The SVG layouting code itself doesn't handle these properties yet,
80165         it's just about recognizing them in the SVG CSS engine.
80166
80167         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
80168         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
80169         * ksvg2/css/SVGCSSParser.cpp:
80170         (WebCore::CSSParser::parseSVGValue):
80171         * ksvg2/css/SVGCSSStyleSelector.cpp:
80172         (WebCore::CSSStyleSelector::applySVGProperty):
80173         * ksvg2/css/SVGRenderStyle.h:
80174         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
80175         (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
80176         (WebCore::SVGRenderStyle::setBitDefaults):
80177         * ksvg2/css/SVGRenderStyleDefs.h:
80178
80179 2007-10-21  Christian Dywan  <christian@twotoasts.de>
80180
80181         Reviewed by Alp.
80182
80183         http://bugs.webkit.org/show_bug.cgi?id=15589
80184         Use glib's path separator on gtk
80185
80186         * platform/gtk/FileSystemGtk.cpp:
80187         (WebCore::pathByAppendingComponent):
80188
80189 2007-10-21  Dan Bernstein  <mitz@apple.com>
80190
80191         Reviewed by Dave Hyatt.
80192
80193         - fix http://bugs.webkit.org/show_bug.cgi?id=15259
80194           <rdar://problem/5499902> REGRESSION: Text overflows when using word spacing and centering (affects myspace.com music videos page)
80195
80196         Test: fast/text/word-space.html
80197
80198         * rendering/RenderBlock.cpp:
80199         (WebCore::stripTrailingSpace): Added word-spacing to the width of the
80200         space being stripped out.
80201         * rendering/RenderText.cpp:
80202         (WebCore::RenderText::trimmedPrefWidths): Changed handling of
80203         leading space. Since Font::width includes leading space width but not
80204         leading word spacing, this method needs to either remove the width of a
80205         space character or add word spacing,
80206         depending on stripFrontSpaces. 
80207         (WebCore::RenderText::calcPrefWidths): Corrected the check for adding
80208         trailing word spacing so that it would work in the case where the last
80209         space is ignored.
80210         * rendering/bidi.cpp:
80211         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to
80212         actually add word spacing to the total width.
80213
80214 2007-10-20  David Hyatt  <hyatt@apple.com>
80215
80216         Land support for the transform CSS property.  Basic painting now works properly. There are many open issues
80217         that will have to be covered by individual bugs.
80218
80219         Reviewed by olliej
80220
80221         * css/CSSParser.cpp:
80222         (WebCore::CSSParser::validUnit):
80223         (WebCore::CSSParser::parseTransform):
80224         * rendering/RenderLayer.cpp:
80225         (WebCore::RenderLayer::RenderLayer):
80226         (WebCore::RenderLayer::~RenderLayer):
80227         (WebCore::RenderLayer::updateLayerPositions):
80228         (WebCore::RenderLayer::updateTransform):
80229         (WebCore::transparencyClipBox):
80230         (WebCore::RenderLayer::beginTransparencyLayers):
80231         (WebCore::RenderLayer::paintLayer):
80232         (WebCore::RenderLayer::calculateClipRects):
80233         (WebCore::RenderLayer::calculateRects):
80234         (WebCore::RenderLayer::childrenClipRect):
80235         (WebCore::RenderLayer::selfClipRect):
80236         (WebCore::RenderLayer::intersectsDamageRect):
80237         (WebCore::RenderLayer::boundingBox):
80238         * rendering/RenderLayer.h:
80239         * rendering/RenderObject.cpp:
80240         (WebCore::RenderObject::containingBlock):
80241         (WebCore::RenderObject::container):
80242         * rendering/RenderStyle.cpp:
80243         (WebCore::RenderStyle::applyTransform):
80244         * rendering/RenderStyle.h:
80245         (WebCore::TransformOperation::isScaleOperation):
80246         (WebCore::TransformOperation::isRotateOperation):
80247         (WebCore::TransformOperation::isSkewOperation):
80248         (WebCore::TransformOperation::isTranslateOperation):
80249         (WebCore::TransformOperation::isMatrixOperation):
80250         (WebCore::ScaleTransformOperation::isScaleOperation):
80251         (WebCore::RotateTransformOperation::isRotateOperation):
80252         (WebCore::SkewTransformOperation::isSkewOperation):
80253         (WebCore::TranslateTransformOperation::isTranslateOperation):
80254         (WebCore::MatrixTransformOperation::isMatrixOperation):
80255         * rendering/RenderTableRow.h:
80256         (WebCore::RenderTableRow::requiresLayer):
80257         * rendering/RenderTreeAsText.cpp:
80258         (WebCore::writeLayers):
80259
80260 2007-10-20  Timothy Hatcher  <timothy@apple.com>
80261
80262         Reviewed by Adam.
80263
80264         Add basic @font-face to the Web Inspector.
80265
80266         * page/InspectorController.cpp:
80267         (WebCore::InspectorResource::type): Check for CachedResource::FontResource.
80268         * page/inspector/Resource.js: Add support for Font types and font preview in the icon.
80269         * page/inspector/ResourcePanel.js: Show a font preview for font resources.
80270         * page/inspector/inspector.css: Style for the font preview and font icon.
80271         * page/inspector/inspector.js: Add font mime types.
80272
80273 2007-10-20  Sam Weinig  <sam@webkit.org>
80274
80275         Reviewed by Mark Rowe.
80276
80277         Fixes:
80278             - http://bugs.webkit.org/show_bug.cgi?id=14393
80279               Column on the left side of the Web Inspector should have a smaller minimum width for resizing
80280             - http://bugs.webkit.org/show_bug.cgi?id=14394
80281               Left pane of the Web Inspector "shakes" when resizing it to maximum width
80282
80283         * page/inspector/inspector.js: Change the constraint logic to only enforce a 100px min-width
80284           and window.innerWidth - 100 max-width for the sidebar.  The change also makes the viewbuttons
80285           move with the sidebar.
80286
80287 2007-10-20  Dan Bernstein  <mitz@apple.com>
80288
80289         Reviewed by Dave Hyatt.
80290
80291         - fix http://bugs.webkit.org/show_bug.cgi?id=15208
80292           display:table causes the collapsed text to show at a different position when expanded
80293
80294         Test: fast/table/insert-before-anonymous-ancestors.html
80295
80296         * rendering/RenderTable.cpp:
80297         (WebCore::RenderTable::addChild): Rolled out r11579. I think whatever
80298         that change was supposed to accomplish has since been done in other
80299         places in the code.
80300
80301 2007-10-20  Mark Rowe  <mrowe@apple.com>
80302
80303         Reviewed by Dave Hyatt.
80304
80305         Fix http://bugs.webkit.org/show_bug.cgi?id=15584
80306         Bug 15584: REGRESSION(r26696): GtkLauncher segfaults on WebCore::WidthIterator::advance
80307
80308         * platform/Font.cpp:
80309         (WebCore::Font::glyphDataForCharacter): If the fallback page exists but does not have a
80310         glyph for the character, fall back to the missing glyph data rather than returning an
80311         invalid GlyphData.
80312
80313 2007-10-20  Jasper Bryant-Greene  <m@ni.ac.nz>
80314
80315         Reviewed by Maciej.
80316
80317         Changed the hard-coded scroll delta in WheelEventGtk from 120 to 0.25,
80318         as suggested by George Wright in #15108 (which this patch will
80319         resolve).
80320
80321         This gives a more sane scrolling behaviour, rather than the
80322         jumping to the end or start of the document as occurred previously.
80323
80324         * platform/gtk/WheelEventGtk.cpp:
80325         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
80326
80327 2007-10-20  Alp Toker  <alp@atoker.com>
80328
80329         Reviewed by Eric.
80330
80331         Support text boundary detection.
80332         Move TextBoundariesWin.cpp to platform/ since it's portable and useful.
80333         Split out and implement some TemporaryLinkStubs.
80334
80335         * WebCore.pro:
80336         * WebCore.vcproj/WebCore.vcproj:
80337         * platform/TextBoundariesICU.cpp: Copied from WebCore/platform/win/TextBoundariesWin.cpp.
80338         * platform/gtk/Language.cpp: Added.
80339         (WebCore::defaultLanguage):
80340         * platform/gtk/TemporaryLinkStubs.cpp:
80341         * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Added.
80342         (WebCore::currentTextBreakLocaleID):
80343         * platform/win/TextBoundariesWin.cpp: Removed.
80344
80345 2007-10-20  Mark Rowe  <mrowe@apple.com>
80346
80347         Reviewed by Tim Hatcher.
80348
80349         Workaround for http://bugs.webkit.org/show_bug.cgi?id=15574
80350         Bug 15574: Web Inspector doesn't work with the new Database feature
80351
80352         The executeSql callback is executed in the security domain of the web page that owns the database,
80353         while the inspector's window object is in the callback functions scope chain.  This is leading to a
80354         security violation when the callback attempts to access "document".  We can work around this by
80355         ensuring that "document" can be found in the scope chain before the window object.
80356
80357         * page/inspector/DatabasePanel.js:
80358
80359 2007-10-20  Darin Adler  <darin@apple.com>
80360
80361         Reviewed by Maciej.
80362
80363         - http://bugs.webkit.org/show_bug.cgi?id=15567
80364           speed up hashing const char* by removing call to strlen
80365
80366         This includes one other fix as well. Both were from a day where I did some
80367         profiling to find hot spots when running the page load test.
80368
80369         * platform/StringImpl.cpp:
80370         (WebCore::StringImpl::computeHash): Compute the hash without calling strlen.
80371         Also change the argument names to not confusingly use m_ prefixes.
80372         (WebCore::StringImpl::createStrippingNull): Added a faster case for strings that
80373         don't have null.
80374
80375 2007-10-20  Mark Rowe  <mrowe@apple.com>
80376
80377         Reviewed by Alp.
80378
80379         Gtk changes needed to enable HTML 5 client-side database storage.
80380
80381         * WebCore.pro: Have Gtk use ThreadingPthreads.cpp.
80382         * platform/pthreads/ThreadingPthreads.cpp: Include errno so that EDEADLK and EBUSY are available.
80383
80384 2007-10-20  Mark Rowe  <mrowe@apple.com>
80385
80386         Reviewed by Alp.
80387
80388         Implement callOnMainThread for Gtk+ via a one-shot zero-delay timer that will be dispatched
80389         from the main event loop.
80390
80391         * WebCore.pro:
80392         * platform/gtk/TemporaryLinkStubs.cpp:
80393         * platform/gtk/ThreadingGtk.cpp: Added.
80394         (WebCore::callFunctionOnMainThread):
80395         (WebCore::callOnMainThread):
80396
80397 2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>
80398
80399         Reviewed by Eric.
80400
80401         Fix non-functional display="inline" / display="none" for SVG text.
80402
80403         Fixes: svg/W3C-SVG-1.1/animate-elem-39-t.svg (display="inline" support)
80404         Fixes: svg/batik/text/textProperties2.svg (display="inline/none" support)
80405         Fixes: svg/carto.net/tabgroup.svg (display="none" support, stray content before layouting)
80406         
80407         * css/svg.css: Remove "important" flag on text/foreignObject display: block property
80408         * rendering/RenderSVGBlock.cpp:
80409         (WebCore::RenderSVGBlock::setStyle):
80410
80411 2007-10-20  Mark Rowe  <mrowe@apple.com>
80412
80413         Reviewed by Alp.
80414
80415         Replace #ifdef'd code with the appropriate use of a forwarding header.
80416
80417         * ForwardingHeaders/kjs/array_instance.h: Added.
80418         * bindings/js/JSDatabaseCustom.cpp:
80419
80420 2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>
80421
80422         Reviewed by Oliver.
80423
80424         Add support for 'kerning' property in SVG text layout code.
80425         Support all textLength/lengthAdjust modes on normal text & textPaths.
80426
80427         Support letter & word spacing on textPath.
80428         Fix text selection when any spacing (letter/word/kerning) is involved.
80429
80430         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15571
80431         Fixes: svg/batik/text/textOnPathSpaces.svg (spacing)
80432                svg/batik/text/textLayout.svg (kerning support)
80433                svg/text/text-spacing-01-b.svg (text selection)
80434
80435         * platform/Font.cpp:
80436         (WebCore::WidthIterator::advance):
80437         * platform/TextStyle.h:
80438         (WebCore::TextStyle::TextStyle):
80439         (WebCore::TextStyle::spacingDisabled):
80440         (WebCore::TextStyle::disableSpacing):
80441         * rendering/SVGCharacterLayoutInfo.cpp:
80442         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
80443         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
80444         (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
80445         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
80446         (WebCore::SVGChar::characterTransform):
80447         * rendering/SVGCharacterLayoutInfo.h:
80448         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
80449         * rendering/SVGRootInlineBox.cpp:
80450         (WebCore::closeTextChunk):
80451         (WebCore::calculateKerning):
80452         (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
80453         (WebCore::svgTextStyleForInlineTextBox):
80454         (WebCore::calculateTextAnchorShiftForTextChunk):
80455         (WebCore::applyTextAnchorToTextChunk):
80456         (WebCore::calculateTextLengthCorrectionForTextChunk):
80457         (WebCore::applyTextLengthCorrectionToTextChunk):
80458         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
80459         (WebCore::SVGRootInlineBox::buildLayoutInformation):
80460         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
80461         (WebCore::SVGRootInlineBox::buildTextChunks):
80462         (WebCore::SVGRootInlineBox::layoutTextChunks):
80463         * rendering/SVGRootInlineBox.h:
80464
80465 2007-10-20  Rodney Dawes  <dobey@wayofthemonkey.com>
80466
80467         Reviewd by Darin.
80468
80469         http://bugs.webkit.org/show_bug.cgi?id=15563
80470         Fix conflict with X11 Window type in WebCore
80471
80472         * WebCore/bindings/js/JSDocumentCustom.cpp:
80473         * WebCore/bindings/js/JSHTMLDocumentCustom.cpp:
80474         * WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp:
80475         * WebCore/bindings/js/kjs_dom.cpp:
80476         * WebCore/bindings/js/kjs_events.cpp:
80477         * WebCore/bindings/js/kjs_proxy.cpp:
80478         * WebCore/history/CachedPage.cpp:
80479         * WebCore/page/Chrome.cpp:
80480         * WebCore/page/Frame.cpp:
80481
80482 2007-10-20  Simon Hausmann  <hausmann@kde.org>
80483
80484         Build fix, not reviewed.
80485
80486         Fix the Qt build by adding the two missing FileSystem functions.
80487
80488         * platform/qt/FileSystemQt.cpp:
80489         (WebCore::makeAllDirectories):
80490         (WebCore::pathByAppendingComponent):
80491
80492 2007-10-19  Alp Toker  <alp@atoker.com>
80493
80494         Reviewed by Oliver.
80495
80496         GTK+ build fix enabling the new local database storage feature.
80497         There is also a prospective Qt build fix.
80498
80499         * WebCore.pro:
80500         * bindings/js/JSDatabaseCustom.cpp:
80501         * platform/gtk/FileSystemGtk.cpp:
80502         (WebCore::pathByAppendingComponent):
80503         (WebCore::makeAllDirectories):
80504
80505 2007-10-19  Andrew Wellington  <proton@wiretapped.net>
80506
80507         Reviewed by Brady Eidson.
80508
80509         Mac build fix.
80510
80511         * WebCore.xcodeproj/project.pbxproj:
80512
80513 2007-10-19  Alp Toker  <alp@atoker.com>
80514
80515         Reviewed by Oliver.
80516
80517         Use platform colors for text selection.
80518         Update the cache when the GTK style is changed.
80519
80520         * platform/gtk/RenderThemeGtk.cpp:
80521         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
80522         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
80523         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
80524         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
80525         (WebCore::RenderThemeGtk::gtkStyleSet):
80526         (WebCore::RenderThemeGtk::gtkEntry):
80527         * platform/gtk/RenderThemeGtk.h:
80528
80529 2007-10-19  Adele Peterson  <adele@apple.com>
80530
80531         Reviewed by Beth.
80532
80533         Fix for: <rdar://problem/5518461> REGRESSION (2.0.4-3): Popup arrows are missing in small popups at homedepot.com
80534
80535         Test: fast/forms/menulist-no-overflow.html
80536
80537         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::setStyle): Don't allow overflow on menu lists.
80538
80539 2007-10-19  Anders Carlsson  <andersca@apple.com>
80540
80541         Reviewed by Brady.
80542
80543         Move some SQL-related classes to platform/sql.
80544         
80545         * WebCore.vcproj/WebCore.vcproj:
80546         * WebCore.xcodeproj/project.pbxproj:
80547         * loader/icon/SQLDatabase.cpp: Removed.
80548         * loader/icon/SQLDatabase.h: Removed.
80549         * loader/icon/SQLStatement.cpp: Removed.
80550         * loader/icon/SQLStatement.h: Removed.
80551         * loader/icon/SQLTransaction.cpp: Removed.
80552         * loader/icon/SQLTransaction.h: Removed.
80553         * platform/sql/SQLDatabase.cpp: Copied from loader/icon/SQLDatabase.cpp.
80554         * platform/sql/SQLDatabase.h: Copied from loader/icon/SQLDatabase.h.
80555         * platform/sql/SQLStatement.cpp: Copied from loader/icon/SQLStatement.cpp.
80556         * platform/sql/SQLStatement.h: Copied from loader/icon/SQLStatement.h.
80557         * platform/sql/SQLTransaction.cpp: Copied from loader/icon/SQLTransaction.cpp.
80558         * platform/sql/SQLTransaction.h: Copied from loader/icon/SQLTransaction.h.
80559
80560 2007-10-19  Anders Carlsson  <andersca@apple.com>
80561
80562         Reviewed by Adam.
80563
80564         Update to match the latest version of the spec. Now, executeSQL takes an array
80565         of SQL parameters instead of them being passed as arguments.
80566         
80567         * bindings/js/JSDatabaseCustom.cpp:
80568         (WebCore::JSDatabase::executeSql):
80569         * page/inspector/DatabasePanel.js:
80570         * storage/Database.idl:
80571
80572 2007-10-19  Brady Eidson  <beidson@apple.com>
80573
80574         Reviewed by Tim
80575
80576         Tiger's SQLite doesn't support CREATE TABLE IF NOT EXISTS :(
80577
80578         * storage/Database.cpp:
80579         (WebCore::Database::performOpenAndVerify):
80580         * storage/DatabaseTracker.cpp:
80581         (WebCore::DatabaseTracker::DatabaseTracker):
80582
80583 2007-10-19  Anders Carlsson  <andersca@apple.com>
80584
80585         Release build fix.
80586         
80587         * WebCore.vcproj/WebCore.vcproj:
80588
80589 2007-10-19  Brady Eidson  <beidson@apple.com>
80590
80591         Remove stray printfs
80592
80593         * dom/Document.cpp:
80594         (WebCore::Document::Document):
80595         (WebCore::Document::~Document):
80596
80597 2007-10-19  Anders Carlsson  <andersca@apple.com>
80598
80599         Reviewed by Brady.
80600
80601         Apparently the Win32 pthreads impl we use does not allow unlocking a mutex that has not
80602         already been locked, so lock the mutex first.
80603         
80604         * storage/DatabaseThread.cpp:
80605         (WebCore::DatabaseThread::databaseThread):
80606
80607 2007-10-19  Brady Eidson  <beidson@apple.com>
80608
80609         Better build fix
80610
80611         * loader/icon/SQLDatabase.cpp:
80612         (WebCore::SQLDatabase::authorizerFunction):  Definite works by 3.3.13
80613
80614 2007-10-19  Brady Eidson  <beidson@apple.com>
80615
80616         Build fix
80617
80618         * loader/icon/SQLDatabase.cpp:
80619         (WebCore::SQLDatabase::authorizerFunction): I don't know *when* these constants were
80620           added to SQLite, but I know they were by 3.4.0
80621
80622 2007-10-19  Brady Eidson  <beidson@apple.com>
80623         Reviewed by Anders
80624
80625         Windows specific changes, as well as renaming Queue -> Deque
80626
80627         * ForwardingHeaders/wtf/Deque.h: Added.
80628         * ForwardingHeaders/wtf/Queue.h: Removed.
80629         * platform/win/FileSystemWin.cpp:
80630         (WebCore::fileSize):
80631         (WebCore::fileExists):
80632         (WebCore::deleteFile):
80633         (WebCore::pathByAppendingComponent):
80634         (WebCore::fileSystemRepresentation):
80635         (WebCore::makeAllDirectories):
80636         (WebCore::homeDirectoryPath):
80637         * storage/Database.h:
80638         * storage/DatabaseThread.cpp:
80639         (WebCore::DatabaseThread::documentGoingAway):
80640         (WebCore::DatabaseThread::databaseGoingAway):
80641         (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
80642         (WebCore::DatabaseThread::scheduleTask):
80643         (WebCore::DatabaseThread::scheduleImmediateTask):
80644         * storage/DatabaseThread.h:
80645
80646 2007-10-19  Brady Eidson <beidson@apple.com>
80647
80648         Reviewed by Tim and Anders
80649
80650         Preliminary support for HTML5 local database storage (http://www.whatwg.org/specs/web-apps/current-work/)
80651
80652         The specification is still in flux but the fundamentals are pretty solid and we can start using and testing 
80653         this implementation even while filing bugs to track changes in the spec as it becomes more final
80654
80655         There are some implementation details in this patch that seem unused or useless, but they remain in place 
80656         while the spec is in flux and might go one way or another.
80657
80658         * platform/Logging.cpp: Add StorageAPI logging channel
80659         * platform/Logging.h:
80660
80661         * storage/Database.cpp: Added.
80662         (WebCore::Database::databaseInfoTableName):
80663         (WebCore::databaseVersionKey):
80664         (WebCore::Database::openDatabase): C++ version of the window.openDatabase() javascript API
80665         (WebCore::Database::Database):
80666         (WebCore::Database::~Database):
80667         (WebCore::Database::openAndVerifyVersion):
80668         (WebCore::retrieveTextResultFromDatabase):
80669         (WebCore::Database::getVersionFromDatabase):
80670         (WebCore::setTextValueInDatabase):
80671         (WebCore::Database::setVersionInDatabase):
80672         (WebCore::Database::databaseThreadGoingAway): May be removed in the future
80673         (WebCore::Database::disableAuthorizer): For internal (WebInspector) use to get around the authorizer's restrictions
80674         (WebCore::Database::enableAuthorizer):
80675         (WebCore::Database::guidForOriginAndName): Candidate for refactoring and/or moving to the database tracker.  
80676           The GUID for each database identifier is currently for tracking the database version, but might be rescoped in the future
80677         (WebCore::Database::resetAuthorizer):
80678         (WebCore::Database::performPolicyChecks): Currently, the only post-executeSql policy check planned is the origin size usage 
80679         (WebCore::Database::scheduleDatabaseCallback):
80680         (WebCore::Database::performOpenAndVerify): 
80681         (WebCore::Database::performChangeVersion):
80682         (WebCore::Database::performExecuteSql):
80683         (WebCore::Database::performCloseTransaction):
80684         (WebCore::Database::performGetTableNames):
80685         (WebCore::Database::version): C++ version of the javascript API
80686         (WebCore::Database::changeVersion): Ditto
80687         (WebCore::Database::executeSql): Ditto
80688         (WebCore::Database::closeTransaction): Ditto
80689         (WebCore::Database::tableNames): For internal (WebInspector) use
80690         (WebCore::Database::deliverAllPendingCallbacks):
80691         (WebCore::Database::deliverPendingCallbacks):
80692         * storage/Database.h: Added.
80693         (WebCore::Database::databaseDebugName): For debug logging purposes
80694         * storage/Database.idl: Added.
80695
80696         * storage/DatabaseAuthorizer.cpp: Added.
80697           The DatabaseAuthorizer is used to both prevent the script from doing "illegal" things in sql as well as
80698           tracking when effects certain sql statements might have (such as increasing the size of the database)
80699         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
80700         (WebCore::DatabaseAuthorizer::reset):
80701         (WebCore::DatabaseAuthorizer::createTable):
80702         (WebCore::DatabaseAuthorizer::createTempTable):
80703         (WebCore::DatabaseAuthorizer::dropTable):
80704         (WebCore::DatabaseAuthorizer::dropTempTable):
80705         (WebCore::DatabaseAuthorizer::allowAlterTable):
80706         (WebCore::DatabaseAuthorizer::createIndex):
80707         (WebCore::DatabaseAuthorizer::createTempIndex):
80708         (WebCore::DatabaseAuthorizer::dropIndex):
80709         (WebCore::DatabaseAuthorizer::dropTempIndex):
80710         (WebCore::DatabaseAuthorizer::createTrigger):
80711         (WebCore::DatabaseAuthorizer::createTempTrigger):
80712         (WebCore::DatabaseAuthorizer::dropTrigger):
80713         (WebCore::DatabaseAuthorizer::dropTempTrigger):
80714         (WebCore::DatabaseAuthorizer::createVTable):
80715         (WebCore::DatabaseAuthorizer::dropVTable):
80716         (WebCore::DatabaseAuthorizer::allowDelete):
80717         (WebCore::DatabaseAuthorizer::allowInsert):
80718         (WebCore::DatabaseAuthorizer::allowUpdate):
80719         (WebCore::DatabaseAuthorizer::allowRead):
80720         (WebCore::DatabaseAuthorizer::allowAnalyze):
80721         (WebCore::DatabaseAuthorizer::allowPragma):
80722         (WebCore::DatabaseAuthorizer::allowAttach):
80723         (WebCore::DatabaseAuthorizer::allowDetach):
80724         (WebCore::DatabaseAuthorizer::allowFunction):
80725         (WebCore::DatabaseAuthorizer::disable):
80726         (WebCore::DatabaseAuthorizer::enable):
80727         (WebCore::DatabaseAuthorizer::denyBasedOnTableName): Don't allow access to the __WebKit meta info table as
80728           it should be invisible to scripts
80729         * storage/DatabaseAuthorizer.h: Added.
80730         (WebCore::DatabaseAuthorizer::lastActionWasInsert):
80731         (WebCore::DatabaseAuthorizer::lastActionIncreasedSize):
80732
80733         * storage/DatabaseCallback.cpp: Added.
80734           Generic item to queue up for callbacks on the main thread for database activities that take place on 
80735           a secondary thread
80736         (WebCore::DatabaseChangeVersionCallback::DatabaseChangeVersionCallback):
80737         (WebCore::DatabaseChangeVersionCallback::performCallback):
80738         (WebCore::DatabaseExecuteSqlCallback::DatabaseExecuteSqlCallback):
80739         (WebCore::DatabaseExecuteSqlCallback::performCallback):
80740         * storage/DatabaseCallback.h: Added.
80741         (WebCore::DatabaseCallback::~DatabaseCallback):
80742         (WebCore::DatabaseChangeVersionCallback::~DatabaseChangeVersionCallback):
80743         (WebCore::DatabaseExecuteSqlCallback::~DatabaseExecuteSqlCallback):
80744
80745         * storage/DatabaseTask.h: Added.
80746           Generic work-item to be queued up on the background database thread
80747         (WebCore::DatabaseTask::isComplete):
80748         (WebCore::DatabaseOpenTask::exceptionCode):
80749         (WebCore::DatabaseOpenTask::openSuccessful):
80750         (WebCore::DatabaseTableNamesTask::tableNames):
80751         * storage/DatabaseTask.cpp: Added.
80752         (WebCore::DatabaseTask::DatabaseTask):
80753         (WebCore::DatabaseTask::~DatabaseTask):
80754         (WebCore::DatabaseTask::performTask):
80755         (WebCore::DatabaseTask::lockForSynchronousScheduling): Used when the main thread needs this task accomplished 
80756           synchronously
80757         (WebCore::DatabaseTask::waitForSynchronousCompletion):
80758
80759         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
80760         (WebCore::DatabaseOpenTask::doPerformTask):
80761
80762         (WebCore::DatabaseExecuteSqlTask::DatabaseExecuteSqlTask):
80763         (WebCore::DatabaseExecuteSqlTask::doPerformTask):
80764
80765         (WebCore::DatabaseChangeVersionTask::DatabaseChangeVersionTask):
80766         (WebCore::DatabaseChangeVersionTask::doPerformTask):
80767
80768         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
80769         (WebCore::DatabaseTableNamesTask::doPerformTask):
80770
80771         * storage/DatabaseThread.cpp: Added.
80772           The current design is that each Document will have its own DatabaseThread.  This makes scripts on each
80773           individual document more response at the cost of adding more threads and potentially creating concurrency
80774           issues when the same database is open twice from two different documents
80775         (WebCore::DatabaseThread::DatabaseThread):
80776         (WebCore::DatabaseThread::~DatabaseThread):
80777         (WebCore::DatabaseThread::start):
80778         (WebCore::DatabaseThread::documentGoingAway): Called to shut the thread down when the document is destroyed
80779         (WebCore::DatabaseThread::databaseGoingAway): Remove all pending tasks for this database
80780         (WebCore::DatabaseThread::databaseThreadStart):
80781         (WebCore::DatabaseThread::databaseThread):
80782         (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
80783         (WebCore::DatabaseThread::scheduleTask):
80784         (WebCore::DatabaseThread::scheduleImmediateTask): Schedule a task that gets to "cut to the front of the line" when
80785           the main thread requires a task be performed synchronously
80786         (WebCore::DatabaseThread::wakeWorkThread):
80787         * storage/DatabaseThread.h: Added.
80788
80789         * storage/DatabaseTracker.cpp: Added.
80790           The DatabaseTracker is the master management of all databases.  It will keep track of the filename for a given
80791           unique database, keep track of the total disk usage per-origin, and policys per database/origin
80792         (WebCore::DatabaseTracker::setDatabasePath):
80793         (WebCore::DatabaseTracker::databasePath):
80794         (WebCore::DatabaseTracker::tracker):
80795         (WebCore::DatabaseTracker::DatabaseTracker):
80796         (WebCore::DatabaseTracker::fullPathForDatabase):
80797         (WebCore::DatabaseTracker::populateOrigins):
80798         (WebCore::DatabaseTracker::origins):
80799         (WebCore::DatabaseTracker::databaseNamesForOrigin):
80800         (WebCore::DatabaseTracker::addDatabase):
80801         (WebCore::DatabaseTracker::deleteAllDatabases):
80802         (WebCore::DatabaseTracker::deleteAllDatabasesForOrigin):
80803         * storage/DatabaseTracker.h: Added.
80804
80805         * storage/SQLCallback.h: Added. C++ version of the javascript executeSql() callback
80806         (WebCore::SQLCallback::~SQLCallback):
80807         * storage/SQLCallback.idl: Added.
80808
80809         * storage/SQLResultSet.cpp: Added. C++ version of the javascript SQLResultSet object
80810         (WebCore::SQLResultSet::SQLResultSet):
80811         (WebCore::SQLResultSet::insertId):
80812         (WebCore::SQLResultSet::rowsAffected):
80813         (WebCore::SQLResultSet::errorCode):
80814         (WebCore::SQLResultSet::error):
80815         (WebCore::SQLResultSet::rows):
80816         (WebCore::SQLResultSet::setInsertId):
80817         (WebCore::SQLResultSet::setRowsAffected):
80818         (WebCore::SQLResultSet::setErrorCode):
80819         (WebCore::SQLResultSet::setErrorMessage):
80820         * storage/SQLResultSet.h: Added.
80821         * storage/SQLResultSet.idl: Added.
80822
80823         * storage/SQLResultSetRowList.cpp: Added. C++ version of the javascript SQLResultSetRowList object
80824         (WebCore::SQLResultSetRowList::length):
80825         * storage/SQLResultSetRowList.h: Added.
80826         (WebCore::SQLResultSetRowList::columnNames):
80827         (WebCore::SQLResultSetRowList::values):
80828         (WebCore::SQLResultSetRowList::addColumn):
80829         (WebCore::SQLResultSetRowList::addResult):
80830         * storage/SQLResultSetRowList.idl: Added.
80831
80832         * storage/VersionChangeCallback.h: Added. C++ version of the javascript changeVersion() callback
80833         (WebCore::VersionChangeCallback::~VersionChangeCallback):
80834         * storage/VersionChangeCallback.idl: Added.
80835
80836 2007-10-19  Brady Eidson <beidson@apple.com>
80837
80838         Reviewed by Oliver + Same
80839
80840         Forwarding header for the new wtf/Queue.h
80841
80842         * ForwardingHeaders/wtf/Queue.h: Added.
80843
80844 2007-10-19  Anders Carlsson <beidson@apple.com>
80845
80846         Reviewed by Sam Weinig
80847
80848         Most of the Javascript binding support for the Storage API
80849
80850         * bindings/js/JSCustomSQLCallback.cpp: Added.
80851         (WebCore::JSCustomSQLCallback::JSCustomSQLCallback):
80852         (WebCore::JSCustomSQLCallback::handleEvent):
80853         * bindings/js/JSCustomSQLCallback.h: Added.
80854                 Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
80855                 handleEvent to a JS function or a JS object with a handleEvent function.
80856
80857         * bindings/js/JSCustomVersionChangeCallback.cpp: Added.
80858         (WebCore::JSCustomVersionChangeCallback::JSCustomVersionChangeCallback):
80859         (WebCore::JSCustomVersionChangeCallback::handleEvent):
80860         * bindings/js/JSCustomVersionChangeCallback.h: Added.
80861                 Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
80862                 handleEvent to a JS function or a JS object with a handleEvent function.
80863
80864         * bindings/js/JSDatabaseCustom.cpp: Added.
80865         (WebCore::JSDatabase::executeSql):
80866                 Custom implementation of executeSql that takes an array of parameters.
80867                 
80868         (WebCore::JSDatabase::changeVersion):
80869                 Custom implementation of changeVersion.
80870                 
80871         * bindings/js/JSSQLResultSetRowListCustom.cpp: Added.
80872         (WebCore::JSSQLResultSetRowList::item):
80873                 Custom method that returns a JS object that corresponds to a given row in the database.
80874
80875         * bindings/scripts/CodeGeneratorJS.pm:
80876
80877         * page/DOMWindow.cpp:
80878         (WebCore::DOMWindow::openDatabase):
80879         * page/DOMWindow.h:
80880         * page/DOMWindow.idl:
80881                 Add openDatabase implementation.
80882
80883 2007-10-19  Brady Eidson <beidson@apple.com>
80884
80885         Reviewed by Oliver
80886
80887         Added tons of utility to the FileSystem abstractions, including moving
80888         some stuff over from IconDatabase
80889
80890         * platform/FileSystem.h:
80891
80892         * platform/cf/FileSystemCF.cpp: Added.
80893         (WebCore::fileSystemRepresentation):
80894
80895         * platform/mac/FileSystemMac.mm:
80896
80897         * platform/posix/FileSystemPOSIX.cpp: Added.
80898         (WebCore::fileExists):
80899         (WebCore::deleteFile):
80900         (WebCore::fileSize):
80901         (WebCore::pathByAppendingComponent):
80902         (WebCore::makeAllDirectories):
80903
80904 2007-10-19  Timothy Hatcher  <timothy@apple.com>
80905
80906         Reviewed by Adam Roben
80907
80908         Preliminary Web Inspector support for the Storage API
80909         (This patch does not include the support artwork)
80910
80911         * page/InspectorController.cpp:
80912         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
80913         (WebCore::InspectorDatabaseResource::setScriptObject):
80914         (WebCore::databaseTableNames): Return the table names for a Database object.
80915         (WebCore::InspectorController::setWindowVisible):
80916         (WebCore::InspectorController::windowScriptObjectAvailable):
80917         (WebCore::InspectorController::populateScriptResources):
80918         (WebCore::InspectorController::addDatabaseScriptResource): Add the script object for the database.
80919         (WebCore::InspectorController::removeDatabaseScriptResource): Remove the script object for the database.
80920         (WebCore::InspectorController::clearDatabaseScriptResources): Remove all the database resources.
80921         (WebCore::InspectorController::didCommitLoad): Call clearDatabaseScriptResources().
80922         (WebCore::InspectorController::didOpenDatabase): Make a new InspectorDatabaseResource and add it to m_databaseResources.
80923         * page/InspectorController.h:
80924         * page/inspector/Database.js: Added.
80925         * page/inspector/DatabasePanel.js: Added.
80926         * page/inspector/ResourceCategory.js: Make resource categories assume less about the resource.
80927         * page/inspector/inspector.css: Add styles for the database panel.
80928         * page/inspector/inspector.html: Include DatabasePanel.js
80929         * page/inspector/inspector.js: Support for adding and removing Database resources.
80930
80931 2007-10-19  Brady Eidson <beidson@apple.com>
80932
80933         Reviewed by Tim Hatcher
80934
80935         Added support for Chrome prompts required by the Storage API
80936
80937         * page/Chrome.cpp:
80938         (WebCore::Chrome::runDatabaseSizeLimitPrompt):
80939         * page/Chrome.h:
80940         * page/ChromeClient.h:
80941         * platform/graphics/svg/SVGImageEmptyClients.h:
80942
80943 2007-10-19  Brady Eidson <beidson@apple.com>
80944
80945         Contributions and Review by Anders
80946
80947         Various SQLite tweaks in preparation for the storage API
80948
80949         * loader/icon/SQLDatabase.cpp:
80950         (WebCore::SQLDatabase::~SQLDatabase):
80951         (WebCore::SQLDatabase::authorizerFunction): Static callback from sqlite for authorizer functions
80952         (WebCore::SQLDatabase::setAuthorizer):
80953         (WebCore::SQLDatabase::lock):
80954         (WebCore::SQLDatabase::unlock):
80955         * loader/icon/SQLDatabase.h:
80956
80957         * loader/icon/SQLStatement.cpp:
80958         (WebCore::SQLStatement::prepare): Switch to prepare16_v2
80959         (WebCore::SQLStatement::bindDouble): Added
80960         (WebCore::SQLStatement::bindValue): Bind a wrapped SQLValue object (described later)
80961         (WebCore::SQLStatement::bindParameterCount): Accessor to the sqlite3 API for validating statements
80962         * loader/icon/SQLStatement.h:
80963         (WebCore::SQLStatement::isPrepared):
80964
80965         * platform/sql/SQLAuthorizer.cpp: Added.  Fully virtual interface to implement your own SQLite authorizer
80966         * platform/sql/SQLAuthorizer.h: Added.
80967         (WebCore::SQLAuthorizer::~SQLAuthorizer):
80968         (WebCore::SQLAuthorizer::createTable):
80969         (WebCore::SQLAuthorizer::createTempTable):
80970         (WebCore::SQLAuthorizer::dropTable):
80971         (WebCore::SQLAuthorizer::dropTempTable):
80972         (WebCore::SQLAuthorizer::allowAlterTable):
80973         (WebCore::SQLAuthorizer::createIndex):
80974         (WebCore::SQLAuthorizer::createTempIndex):
80975         (WebCore::SQLAuthorizer::dropIndex):
80976         (WebCore::SQLAuthorizer::dropTempIndex):
80977         (WebCore::SQLAuthorizer::createTrigger):
80978         (WebCore::SQLAuthorizer::createTempTrigger):
80979         (WebCore::SQLAuthorizer::dropTrigger):
80980         (WebCore::SQLAuthorizer::dropTempTrigger):
80981         (WebCore::SQLAuthorizer::createView):
80982         (WebCore::SQLAuthorizer::createTempView):
80983         (WebCore::SQLAuthorizer::dropView):
80984         (WebCore::SQLAuthorizer::dropTempView):
80985         (WebCore::SQLAuthorizer::createVTable):
80986         (WebCore::SQLAuthorizer::dropVTable):
80987         (WebCore::SQLAuthorizer::allowDelete):
80988         (WebCore::SQLAuthorizer::allowInsert):
80989         (WebCore::SQLAuthorizer::allowUpdate):
80990         (WebCore::SQLAuthorizer::allowTransaction):
80991         (WebCore::SQLAuthorizer::allowSelect):
80992         (WebCore::SQLAuthorizer::allowRead):
80993         (WebCore::SQLAuthorizer::allowAttach):
80994         (WebCore::SQLAuthorizer::allowDetach):
80995         (WebCore::SQLAuthorizer::allowReindex):
80996         (WebCore::SQLAuthorizer::allowAnalyze):
80997         (WebCore::SQLAuthorizer::allowFunction):
80998
80999         * platform/sql/SQLValue.cpp: Added.  Contains a value for a SQLite database that can be one of a few types.  
81000           For now, just a String or a double
81001         (WebCore::SQLValue::SQLValue):
81002         (WebCore::SQLValue::string):
81003         (WebCore::SQLValue::number):
81004         * platform/sql/SQLValue.h: Added.
81005         (WebCore::SQLValue::):
81006         (WebCore::SQLValue::SQLValue):
81007         (WebCore::SQLValue::type):
81008
81009 2007-10-19  Brady Eidson <beidson@apple.com>
81010
81011         Reviewed by Maciej
81012
81013         Changed IconDatabase over to use new FileSystem apis
81014
81015         * loader/icon/IconDatabase.cpp:
81016         (WebCore::IconDatabase::open):
81017
81018 2007-10-19  David Hyatt  <hyatt@apple.com>
81019
81020         Fix for ebay parser crash.
81021
81022         Reviewed by Beth
81023
81024         fast/invalid/table-residual-style-crash.html added as a test
81025
81026         * html/HTMLParser.cpp:
81027         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
81028
81029 2007-10-19  Sam Weinig  <sam@webkit.org>
81030
81031         Fix Windows, Qt and GTK builds.
81032
81033         * WebCore.pro:
81034         * WebCore.vcproj/WebCore.vcproj:
81035
81036 2007-10-19  Sam Weinig  <sam@webkit.org>
81037
81038         Reviewed by Darin.
81039
81040         Encapsulate the same origin check into the new SecurityOrigin class.
81041
81042         * WebCore.xcodeproj/project.pbxproj:
81043         * bindings/js/kjs_window.cpp:
81044         (KJS::Window::isSafeScript):
81045         * dom/Document.cpp:
81046         (WebCore::Document::Document):
81047         (WebCore::Document::defaultEventHandler):
81048         * dom/Document.h:
81049         (WebCore::Document::securityOrigin):
81050         * loader/FrameLoader.cpp:
81051         (WebCore::FrameLoader::begin):
81052         (WebCore::FrameLoader::setOpener):
81053         * loader/FrameLoader.h:
81054         * platform/SecurityOrigin.cpp: Added.
81055         (WebCore::SecurityOrigin::SecurityOrigin):
81056         (WebCore::SecurityOrigin::clear):
81057         (WebCore::SecurityOrigin::isEmpty):
81058         (WebCore::SecurityOrigin::setForFrame):
81059         (WebCore::SecurityOrigin::setDomainFromDOM):
81060         (WebCore::SecurityOrigin::allowsAccessFrom):
81061         (WebCore::SecurityOrigin::isSecureTransitionTo):
81062         * platform/SecurityOrigin.h: Added.
81063
81064 2007-10-19  Simon Hausmann  <hausmann@kde.org>
81065
81066         Fix the Qt/Windows build: Added missing FontSelector.h include.
81067
81068         * platform/qt/FontQt.cpp:
81069
81070 2007-10-19  Simon Hausmann  <hausmann@kde.org>
81071
81072         Reviewed by Lars.
81073
81074         Qt/Windows build fix: Threading.h uses int32_t but doesn't include stdint.h.
81075
81076         * platform/Threading.h:
81077
81078 2007-10-19  Simon Hausmann  <hausmann@kde.org>
81079
81080         Reviewed by Lars.
81081
81082         Fix the Qt/Windows build, don't use cat but use the perl print trick
81083         instead.
81084
81085         * WebCore.pro:
81086
81087 2007-10-18  Justin Garcia  <justin.garcia@apple.com>
81088
81089         Reviewed by Kevin McCullough.
81090
81091         <rdar://problem/5483526> 
81092         GoogleDocs: A hang occurs when applying list styling to a selection containing a table and line breaks
81093
81094         * editing/TextIterator.cpp:
81095         (WebCore::TextIterator::exitNode): For selection preservation, we must emit a character
81096         between every VisiblePosition.  We weren't emitting a space after some tables, because
81097         we won't try to emit a space if shouldEmitNewlineAFterNode is true, even if no newline
81098         was emitted.
81099
81100 2007-10-18  Dan Bernstein  <mitz@apple.com>
81101
81102         Reviewed by Adam Roben.
81103
81104         - fix <rdar://problem/5313523>
81105         REGRESSION(Leopard): http/tests/incremental/slow-utf8-text.pl fails on Leopard
81106
81107         * platform/network/mac/ResourceResponseMac.mm:
81108         (WebCore::ResourceResponse::doUpdateResourceResponse): Work around
81109         <rdar://problem/5321972> by testing for the case of a response
81110         with a MIME type of application/octet-stream and a Content-Type header
81111         starting with text/plain and setting the MIME type to text/plain in
81112         that case.
81113
81114 2007-10-18  Mark Rowe  <mrowe@apple.com>
81115
81116         Fix the no-SVG build.
81117
81118         * css/CSSPrimitiveValueMappings.h: Move the CSSPrimitiveValue implementations for
81119         LineCap, LineJoin and WindRule inside #if ENABLE(SVG).
81120
81121 2007-10-18  Darin Adler  <darin@apple.com>
81122
81123         Reviewed by Anders.
81124
81125         - some small tweaks to the threading implementation
81126
81127         I had trouble building on Windows. Either the problem went away by itself
81128         or one of these changes fixed it.
81129
81130         * platform/Threading.h: Eliminated the use of friend, and shared a single
81131         declaration for the initializeThreading function.
81132
81133         * platform/pthreads/ThreadingPthreads.cpp: (WebCore::ThreadCondition::wait):
81134         Call impl() here.
81135
81136         * platform/win/ThreadingWin.cpp: Got rid of two globals here with static
81137         constructors. Also added a typedef for the type of the function queue.
81138         (WebCore::functionQueueMutex): Added function.
81139         (WebCore::functionQueue): Ditto.
81140         (WebCore::callFunctionsOnMainThread): Use functions instead of using the
81141         globals directly.
81142         (WebCore::callOnMainThread): Ditto.
81143
81144         * css/CSSParser.cpp: Had to touch this file to make things build.
81145
81146 2007-10-18  Adam Roben  <aroben@apple.com>
81147
81148         Fix <rdar://5547462> Need to copy Inspector resources in Production builds
81149
81150         I also added an excludes file for the xcopy command to avoid copying
81151         .svn folders.
81152
81153         Reviewed by Geoff.
81154
81155         * WebCore.vcproj/WebCore.make: Make sure we copy the Inspector
81156         resources.
81157         * WebCore.vcproj/WebCore.vcproj: Pass /exclude:xcopy.excludes to
81158         xcopy.
81159         * WebCore.vcproj/xcopy.excludes: Added.
81160
81161 2007-10-18  Darin Adler  <darin@apple.com>
81162
81163         Reviewed by Sam.
81164
81165         - fix http://bugs.webkit.org/show_bug.cgi?id=15541
81166           REGRESSION (r26616): prompt with one argument uses the literal "undefined" as default reply
81167
81168         * page/DOMWindow.idl: Add ConvertUndefinedOrNullToNullString back for defaultValue.
81169
81170 2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>
81171
81172         Build fix. Not reviewed.
81173
81174         Hopefully fix win build by including wtf/MathExtras.h.
81175
81176         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
81177
81178 2007-10-18  Dan Bernstein  <mitz@apple.com>
81179
81180         Reviewed by Nikolas Zimmermann.
81181
81182         - fix http://bugs.webkit.org/show_bug.cgi?id=15367
81183           Assertion failure inspecting a document including soft hyphen code (0xad)
81184
81185         Test: fast/text/word-break-soft-hyphen.html
81186
81187         * rendering/RenderText.cpp:
81188         (WebCore::RenderText::calcPrefWidths): Changed to treat soft hyphens as 
81189         word boundaries. This fixes the bug and is consistent with the fact that
81190         run rounding does occur at soft hyphens.
81191
81192 2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>
81193
81194         Reviewed by Anders.
81195
81196         Fix last layout test failure seen on buildbot "trunk-mac-ppc-release".
81197         Problem: "svg/custom/mask-excessive-malloc.svg -> crashed"
81198
81199         Clamp any ImageBuffer allocation within SVG to the RenderView's visibleSize
81200         to avoid excessive mallocs (in the testcase above 1000000x1000000)
81201
81202         * ksvg2/svg/SVGMaskElement.cpp:
81203         (WebCore::SVGMaskElement::drawMaskerContent):
81204         * ksvg2/svg/SVGPatternElement.cpp:
81205         (WebCore::SVGPatternElement::buildPattern):
81206         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
81207         (WebCore::SVGPaintServerGradient::teardown):
81208         (WebCore::SVGPaintServerGradient::setup):
81209         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
81210         (WebCore::SVGResourceMasker::applyMask):
81211         * rendering/SVGRenderSupport.cpp:
81212         (WebCore::clampImageBufferSizeToViewport):
81213         * rendering/SVGRenderSupport.h:
81214
81215 2007-10-18  Alexey Proskuryakov  <ap@webkit.org>
81216
81217         Windows build fix.
81218
81219         * css/CSSStyleSelector.cpp:
81220         (WebCore::CSSStyleSelector::applyProperty): Add braces around cases that have local variables now.
81221
81222 2007-10-18  Alexey Proskuryakov  <ap@webkit.org>
81223
81224         Release build fix.
81225
81226         * css/CSSStyleSelector.cpp:
81227         (WebCore::CSSStyleSelector::applyProperty): 
81228
81229 2007-10-18  Alexey Proskuryakov  <ap@webkit.org>
81230
81231         Reviewed by Darin.
81232
81233         Split most of CSSPrimitiveValue enum mapping out of CSSComputedStyleDeclaration::getPropertyCSSValue()
81234         and CSSStyleSelector::applyProperty() (and their SVG counterparts). This should make the code more readable.
81235
81236         * WebCore.xcodeproj/project.pbxproj:
81237         * css/CSSComputedStyleDeclaration.cpp:
81238         (WebCore::getPositionOffsetValue):
81239         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
81240         * css/CSSPrimitiveValue.cpp:
81241         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
81242         (WebCore::CSSPrimitiveValue::init):
81243         * css/CSSPrimitiveValue.h:
81244         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
81245         * css/CSSPrimitiveValueMappings.h: Added.
81246         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
81247         (WebCore::CSSPrimitiveValue::operator EBorderStyle):
81248         (WebCore::CSSPrimitiveValue::operator CompositeOperator):
81249         (WebCore::CSSPrimitiveValue::operator EAppearance):
81250         (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
81251         (WebCore::CSSPrimitiveValue::operator EBackgroundRepeat):
81252         (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
81253         (WebCore::CSSPrimitiveValue::operator EBoxDirection):
81254         (WebCore::CSSPrimitiveValue::operator EBoxLines):
81255         (WebCore::CSSPrimitiveValue::operator EBoxOrient):
81256         (WebCore::CSSPrimitiveValue::operator ECaptionSide):
81257         (WebCore::CSSPrimitiveValue::operator EClear):
81258         (WebCore::CSSPrimitiveValue::operator ECursor):
81259         (WebCore::CSSPrimitiveValue::operator EDisplay):
81260         (WebCore::CSSPrimitiveValue::operator EEmptyCell):
81261         (WebCore::CSSPrimitiveValue::operator EFloat):
81262         (WebCore::CSSPrimitiveValue::operator EKHTMLLineBreak):
81263         (WebCore::CSSPrimitiveValue::operator EListStylePosition):
81264         (WebCore::CSSPrimitiveValue::operator EListStyleType):
81265         (WebCore::CSSPrimitiveValue::operator EMarginCollapse):
81266         (WebCore::CSSPrimitiveValue::operator EMarqueeBehavior):
81267         (WebCore::CSSPrimitiveValue::operator EMarqueeDirection):
81268         (WebCore::CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor):
81269         (WebCore::CSSPrimitiveValue::operator ENBSPMode):
81270         (WebCore::CSSPrimitiveValue::operator EOverflow):
81271         (WebCore::CSSPrimitiveValue::operator EPageBreak):
81272         (WebCore::CSSPrimitiveValue::operator EPosition):
81273         (WebCore::CSSPrimitiveValue::operator EResize):
81274         (WebCore::CSSPrimitiveValue::operator ETableLayout):
81275         (WebCore::CSSPrimitiveValue::operator ETextAlign):
81276         (WebCore::CSSPrimitiveValue::operator ETextSecurity):
81277         (WebCore::CSSPrimitiveValue::operator ETextTransform):
81278         (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
81279         (WebCore::CSSPrimitiveValue::operator EUserDrag):
81280         (WebCore::CSSPrimitiveValue::operator EUserModify):
81281         (WebCore::CSSPrimitiveValue::operator EUserSelect):
81282         (WebCore::CSSPrimitiveValue::operator EVisibility):
81283         (WebCore::CSSPrimitiveValue::operator EWhiteSpace):
81284         (WebCore::CSSPrimitiveValue::operator EWordBreak):
81285         (WebCore::CSSPrimitiveValue::operator EWordWrap):
81286         (WebCore::CSSPrimitiveValue::operator LineCap):
81287         (WebCore::CSSPrimitiveValue::operator LineJoin):
81288         (WebCore::CSSPrimitiveValue::operator TextDirection):
81289         (WebCore::CSSPrimitiveValue::operator WindRule):
81290         (WebCore::CSSPrimitiveValue::operator EAlignmentBaseline):
81291         (WebCore::CSSPrimitiveValue::operator EColorInterpolation):
81292         (WebCore::CSSPrimitiveValue::operator EColorRendering):
81293         (WebCore::CSSPrimitiveValue::operator EDominantBaseline):
81294         (WebCore::CSSPrimitiveValue::operator EImageRendering):
81295         (WebCore::CSSPrimitiveValue::operator EPointerEvents):
81296         (WebCore::CSSPrimitiveValue::operator EShapeRendering):
81297         (WebCore::CSSPrimitiveValue::operator ETextAnchor):
81298         (WebCore::CSSPrimitiveValue::operator ETextRendering):
81299         (WebCore::CSSPrimitiveValue::operator EWritingMode):
81300         * css/CSSStyleSelector.cpp:
81301         (WebCore::CSSStyleSelector::checkSelector):
81302         (WebCore::CSSStyleSelector::checkOneSelector):
81303         (WebCore::CSSRuleSet::addRulesFromSheet):
81304         (WebCore::convertToLength):
81305         (WebCore::CSSStyleSelector::applyDeclarations):
81306         (WebCore::CSSStyleSelector::applyProperty):
81307         (WebCore::CSSStyleSelector::mapBackgroundAttachment):
81308         (WebCore::CSSStyleSelector::mapBackgroundClip):
81309         (WebCore::CSSStyleSelector::mapBackgroundComposite):
81310         (WebCore::CSSStyleSelector::mapBackgroundOrigin):
81311         (WebCore::CSSStyleSelector::mapBackgroundRepeat):
81312         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
81313         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
81314         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
81315         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
81316         * ksvg2/css/SVGCSSStyleSelector.cpp:
81317         (WebCore::CSSStyleSelector::applySVGProperty):
81318
81319 2007-10-18  Eric Seidel  <eric@webkit.org>
81320
81321         Reviewed by Maciej.
81322
81323         Fix crashers in SVGViewSpec::parseViewSpec
81324         http://bugs.webkit.org/show_bug.cgi?id=15504
81325
81326         Test is blocked by bug 15503, landed as:
81327         * svg/dom/viewspec-parser.html-disabled
81328
81329         * bindings/scripts/CodeGeneratorObjC.pm: support classes where all parents are interfaces
81330         * ksvg2/svg/SVGViewSpec.cpp:
81331         (WebCore::SVGViewSpec::parseViewSpec):
81332         * ksvg2/svg/SVGViewSpec.idl: Added.
81333
81334 2007-10-17  Rob Buis  <buis@kde.org>
81335
81336         Reviewed by Darin, Adam, and Maciej.
81337
81338         http://bugs.webkit.org/show_bug.cgi?id=12988
81339         First element (in document order) is not returned when other duplicate ID-ed elements were created first
81340
81341         Reset the element id cache when an id is added and there is a duplicate for that id.
81342
81343         * dom/Document.cpp:
81344         (WebCore::Document::addElementById):
81345
81346 2007-10-17  Mark Rowe  <mrowe@apple.com>
81347
81348         Mac build fix.
81349
81350         * Configurations/WebCore.xcconfig:  Make it possible to include CoreGraphics header files.
81351
81352 2007-10-17  Adam Roben  <aroben@apple.com>
81353
81354         Fix an ASSERT on launch on Windows
81355
81356         Fix dictated to me by Brady.
81357
81358         * loader/icon/IconDatabase.cpp:
81359         (WebCore::IconDatabase::syncThreadMainLoop): Make sure we hold
81360         m_syncLock before going into the loop.
81361
81362 2007-10-17  Adam Roben  <aroben@apple.com>
81363
81364         Windows build fix
81365
81366         * platform/graphics/AffineTransform.h: Don't #include
81367         ApplicationServices.h.
81368         * platform/graphics/cg/GraphicsContextCG.cpp: Add an #include that's
81369         needed now that we're not #including ApplicationServices.h.
81370
81371 2007-10-17  Mark Rowe  <mrowe@apple.com>
81372
81373         Gtk build fix.  Move non-pthread stubs from Threading.h to ThreadingNone.cpp to prevent
81374         multiple-definition link errors.
81375
81376         * WebCore.pro:
81377         * platform/Threading.h:
81378         * platform/ThreadingNone.cpp: Added.
81379         (WebCore::createThread):
81380         (WebCore::waitForThreadCompletion):
81381         (WebCore::detachThread):
81382         (WebCore::Mutex::Mutex):
81383         (WebCore::Mutex::~Mutex):
81384         (WebCore::Mutex::lock):
81385         (WebCore::Mutex::tryLock):
81386         (WebCore::Mutex::unlock):
81387         (WebCore::ThreadCondition::ThreadCondition):
81388
81389 2007-10-17  Anders Carlsson  <andersca@apple.com>
81390
81391         Reviewed by Oliver.
81392
81393         * WebCore.xcodeproj/project.pbxproj:
81394         * WebCore.vcproj/WebCore.vcproj:
81395         
81396         * config.h:
81397         #define USE_PTHREADS on Windows.
81398         
81399         * loader/icon/IconDatabase.cpp:
81400         (WebCore::IconDatabase::getOrCreateIconRecord):
81401         (WebCore::IconDatabase::getOrCreatePageURLRecord):
81402         Update for mutex changes.
81403         
81404         * platform/Threading.h:
81405         (WebCore::ThreadSafeShared::ThreadSafeShared):
81406         (WebCore::ThreadSafeShared::ref):
81407         (WebCore::ThreadSafeShared::deref):
81408         (WebCore::ThreadSafeShared::hasOneRef):
81409         (WebCore::ThreadSafeShared::refCount):
81410         (WebCore::ThreadSafeShared::isThreadSafe):
81411         Add a new Shared base class that uses a mutex to manage its refcount.
81412         
81413         (WebCore::createThread):
81414         (WebCore::waitForThreadCompletion):
81415         (WebCore::detachThread):
81416         New functions for thread creation.
81417         
81418         (WebCore::Mutex::Mutex):
81419         (WebCore::Mutex::~Mutex):
81420         (WebCore::Mutex::lock):
81421         (WebCore::Mutex::tryLock):
81422         (WebCore::Mutex::unlock):
81423         Move the definitions to ThreadingPthreads.cpp
81424         
81425         (WebCore::ThreadCondition::ThreadCondition):
81426         (WebCore::ThreadCondition::~ThreadCondition):
81427         (WebCore::ThreadCondition::wait):
81428         (WebCore::ThreadCondition::signal):
81429         (WebCore::ThreadCondition::broadcast):
81430         Move the definitions to ThreadingPthreads.cpp
81431         
81432         * platform/pthreads: Added.
81433         * platform/pthreads/ThreadingPthreads.cpp: Added.
81434         Add pthread specific implementation of the thread creation functions, Mutex and ThreadCondition.
81435
81436 2007-10-17  David Hyatt  <hyatt@apple.com>
81437
81438         Add support for creating a layer when a transform is in effect.  Add support to RenderStyle for
81439         handing back a computed AffineTransform.
81440
81441         Reviewed by Mitz Pettel
81442
81443         * css/CSSStyleSelector.cpp:
81444         (WebCore::CSSStyleSelector::adjustRenderStyle):
81445         * rendering/RenderBox.cpp:
81446         (WebCore::RenderBox::setStyle):
81447         * rendering/RenderObject.cpp:
81448         (WebCore::RenderObject::RenderObject):
81449         (WebCore::RenderObject::requiresLayer):
81450         (WebCore::RenderObject::setStyle):
81451         * rendering/RenderObject.h:
81452         (WebCore::RenderObject::hasTransform):
81453         (WebCore::RenderObject::setHasTransform):
81454         * rendering/RenderStyle.cpp:
81455         (WebCore::RenderStyle::applyTransform):
81456         * rendering/RenderStyle.h:
81457         (WebCore::RenderStyle::hasTransform):
81458         * rendering/RenderTableCell.cpp:
81459         (WebCore::RenderTableCell::requiresLayer):
81460         * rendering/RenderTableRow.h:
81461         (WebCore::RenderTableRow::requiresLayer):
81462
81463 2007-10-17  David Hyatt  <hyatt@apple.com>
81464
81465         Add support for mapping of the transform CSS property into RenderStyles.  Everything is now ready for the front
81466         end to use.
81467
81468         Reviewed by Mitz Pettel
81469
81470         * WebCore.xcodeproj/project.pbxproj:
81471         * css/CSSStyleSelector.cpp:
81472         (WebCore::CSSStyleSelector::applyProperty):
81473         * css/CSSTransformValue.h:
81474         (WebCore::CSSTransformValue::type):
81475         (WebCore::CSSTransformValue::values):
81476         * platform/graphics/AffineTransform.cpp:
81477         (WebCore::AffineTransform::skew):
81478         * platform/graphics/AffineTransform.h:
81479         * rendering/RenderStyle.cpp:
81480         (WebCore::StyleTransformData::StyleTransformData):
81481         (WebCore::StyleTransformData::operator==):
81482         (WebCore::StyleTransformData::transformDataEquivalent):
81483         * rendering/RenderStyle.h:
81484         (WebCore::TransformOperation::~TransformOperation):
81485         (WebCore::TransformOperation::operator!=):
81486         (WebCore::TransformOperation::isScaleOperation):
81487         (WebCore::TransformOperation::isRotateOperation):
81488         (WebCore::TransformOperation::isSkewOperation):
81489         (WebCore::TransformOperation::isTranslateOperation):
81490         (WebCore::TransformOperation::isMatrixOperation):
81491         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
81492         (WebCore::ScaleTransformOperation::isScaleOperation):
81493         (WebCore::ScaleTransformOperation::operator==):
81494         (WebCore::ScaleTransformOperation::apply):
81495         (WebCore::RotateTransformOperation::RotateTransformOperation):
81496         (WebCore::RotateTransformOperation::isRotateOperation):
81497         (WebCore::RotateTransformOperation::operator==):
81498         (WebCore::RotateTransformOperation::apply):
81499         (WebCore::SkewTransformOperation::SkewTransformOperation):
81500         (WebCore::SkewTransformOperation::isSkewOperation):
81501         (WebCore::SkewTransformOperation::operator==):
81502         (WebCore::SkewTransformOperation::apply):
81503         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
81504         (WebCore::TranslateTransformOperation::isTranslateOperation):
81505         (WebCore::TranslateTransformOperation::operator==):
81506         (WebCore::TranslateTransformOperation::apply):
81507         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
81508         (WebCore::MatrixTransformOperation::isMatrixOperation):
81509         (WebCore::MatrixTransformOperation::operator==):
81510         (WebCore::MatrixTransformOperation::apply):
81511         (WebCore::StyleTransformData::operator!=):
81512         (WebCore::RenderStyle::transform):
81513         (WebCore::RenderStyle::setTransform):
81514         (WebCore::RenderStyle::initialTransform):
81515
81516 2007-10-17  Adam Roben  <aroben@apple.com>
81517
81518         * page/Frame.cpp: I had to touch this file when fixing the Windows
81519         build. Checking it in in case it helps others, too.
81520
81521 2007-10-17  Eric Seidel  <eric@webkit.org>
81522
81523         Reviewed by Mark Rowe.
81524         
81525         Remove a couple more uses of svg_dynamic_cast.
81526
81527         No functional changes, no tests.
81528
81529         * ksvg2/svg/SVGPatternElement.cpp:
81530         (WebCore::SVGPatternElement::buildPattern):
81531
81532 2007-10-17  Mark Rowe  <mrowe@apple.com>
81533
81534         Reviewed by Eric and Geoff.
81535
81536         <rdar://problem/5453743> Repro ASSERT in CachedResource::setEncodedSize() loading image in background tab
81537         http://bugs.webkit.org/show_bug.cgi?id=15191
81538
81539         * loader/DocLoader.cpp:
81540         (WebCore::DocLoader::setAutoLoadImages): Don't start a load if the CachedImage is already loading.
81541
81542 2007-10-17  Justin Garcia  <justin.garcia@apple.com>
81543
81544         Reviewed by Harrison.
81545         
81546         <rdar://problem/5481523> 
81547         GoogleDocs: Safari hangs when indenting a particular table twice
81548         
81549         Fixed by fixing problems with the selection preservation done by IndentOutdentCommand.
81550         It is now more difficult to create selections that cause hangs.  Those are covered by:
81551         <rdar://problem/5543472>
81552
81553         * editing/IndentOutdentCommand.cpp:
81554         (WebCore::indexForVisiblePosition): Compute indices from the first VisiblePosition
81555         in the document, instead of the first Position.
81556         Use rangeCompliantEquivalents when creating the Range that we pass to rangeLength.
81557         Tell TextIterator::rangeLength that we're doing selection preservation, so that it
81558         will emit characters between all VisiblePositions.
81559         (WebCore::IndentOutdentCommand::indentRegion): Fixed a bug where the range and location
81560         passed to rangeFromLocationAndLength were reversed.
81561         Tell rangeFromLocationAndLength that we're doing doing selection preservation, as
81562         above.
81563         * editing/TextIterator.cpp:
81564         (WebCore::CharacterIterator::CharacterIterator): 
81565         (WebCore::TextIterator::rangeLength): Rename emitSpacesForReplacedElements
81566         to forSelectionPreservation, to match the name of the boolean inside TextIterator and
81567         to match its meaning after r25522.
81568         (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
81569
81570 2007-10-16  Darin Adler  <darin@apple.com>
81571
81572         Reviewed by Mitz.
81573
81574         - fix http://bugs.webkit.org/show_bug.cgi?id=15536
81575           need to cache missing glyph so we're not slow on pages that show missing glyphs
81576
81577         - <rdar://problem/5404359> UI thread stall (>60sec) in MLANG running stress test
81578           (related to font data caching)
81579
81580         * platform/Font.cpp: (WebCore::Font::glyphDataForCharacter): Check for a null value
81581         for fontData rather than for glyph to detect non-cached entries in the glyph data.
81582
81583         * platform/gtk/GlyphPageTreeNodeGtk.cpp: (WebCore::GlyphPage::fill):
81584         * platform/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill):
81585         * platform/win/GlyphPageTreeNodeWin.cpp: (WebCore::GlyphPage::fill):
81586         Set fontData to 0 for missing glyph entries. Also fixed the Windows and GTK versions
81587         to return the proper value for haveGlyphs.
81588
81589 2007-10-16  Mark Rowe  <mrowe@apple.com>
81590
81591         Gtk build fix.  Replace use of assert with ASSERT_NOT_REACHED.
81592
81593         * platform/gtk/FontCacheGtk.cpp:
81594         (WebCore::FontCache::platformInit):
81595
81596 2007-10-16  Darin Adler  <darin@apple.com>
81597
81598         Reviewed by Adam.
81599
81600         - fix http://bugs.webkit.org/show_bug.cgi?id=15534
81601           WebScriptObject.h has some formatting and editorial mistakes
81602
81603         * bindings/objc/WebScriptObject.h: Fix wording and formatting.
81604
81605 2007-10-16  Darin Adler  <darin@apple.com>
81606
81607         - try to fix the Qt build
81608
81609         * config.h: Don't use DisallowCType.h, since it's incompatible with some C++ headers
81610         that are used in some Qt-specific source files.
81611
81612 2007-10-16  Darin Adler  <darin@apple.com>
81613
81614         Reviewed by Adele.
81615
81616         - fix http://bugs.webkit.org/show_bug.cgi?id=15525
81617           transpose (control-T) should do the last two characters on a line if at end of line
81618         - remove unused CommandByName class
81619         - move transpose command implementation here from Mac OS X WebKit
81620
81621         * editing/Editor.h:
81622         * editing/Editor.cpp:
81623         (WebCore::execTranspose): Added.
81624         (WebCore::Editor::transpose): Added. This has the transpose implementation from
81625         WebCoreFrameBridge and WebHTMLView, translated into WebCore-style C++ and with
81626         a special case for the end of a paragraph.
81627
81628         * page/Frame.h: Removed unused command() function member.
81629         * page/FramePrivate.h: Removed unused m_command data member.
81630         * page/Frame.cpp: Ditto.
81631
81632         * page/mac/WebCoreFrameBridge.h: Removed rangeOfCharactersAroundCaret method.
81633         * page/mac/WebCoreFrameBridge.mm: Ditto.
81634
81635         * WebCore.pro: Removed CommandByName.h/cpp.
81636         * WebCore.vcproj/WebCore.vcproj: Ditto.
81637         * WebCore.xcodeproj/project.pbxproj: Ditto.
81638
81639         * editing/CommandByName.cpp: Removed.
81640         * editing/CommandByName.h: Removed.
81641
81642 2007-10-16  Darin Adler  <darin@apple.com>
81643
81644         Reviewed by Maciej and Geoff (and looked over by Eric).
81645
81646         - http://bugs.webkit.org/show_bug.cgi?id=15519
81647           eliminate use of <ctype.h> for processing ASCII
81648
81649         * ForwardingHeaders/wtf/ASCIICType.h: Added.
81650         * ForwardingHeaders/wtf/DisallowCType.h: Added.
81651
81652         * WebCorePrefix.h: Get rid of inclusion of <ctype.h>.
81653         * config.h: Include DisallowCType.h.
81654
81655         * css/CSSParser.cpp:
81656         (WebCore::ParseString::lower):
81657         * css/CSSPrimitiveValue.cpp:
81658         (WebCore::isCSSTokenizerIdentifier):
81659         * css/CSSStyleDeclaration.cpp:
81660         (WebCore::propertyID):
81661         * html/HTMLSelectElement.cpp:
81662         (WebCore::stripLeadingWhiteSpace):
81663         * html/HTMLTokenizer.cpp:
81664         (WebCore::tagMatch):
81665         * loader/FTPDirectoryParser.cpp:
81666         (WebCore::parseOneFTPLine):
81667         * loader/TextResourceDecoder.cpp:
81668         (WebCore::TextResourceDecoder::checkForHeadCharset):
81669         * platform/DeprecatedCString.cpp:
81670         (WebCore::DeprecatedCString::lower):
81671         (WebCore::DeprecatedCString::upper):
81672         (WebCore::DeprecatedCString::find):
81673         (WebCore::DeprecatedCString::contains):
81674         * platform/DeprecatedString.cpp:
81675         (WebCore::equalCaseInsensitive):
81676         (WebCore::isCharacterAllowedInBase):
81677         (WebCore::DeprecatedString::find):
81678         (WebCore::DeprecatedString::contains):
81679         (WebCore::toIntegralType):
81680         * platform/DeprecatedString.h:
81681         (WebCore::DeprecatedChar::isSpace):
81682         (WebCore::DeprecatedChar::lower):
81683         (WebCore::DeprecatedChar::upper):
81684         * platform/KURL.cpp:
81685         (WebCore::KURL::parse):
81686         * platform/StringImpl.cpp:
81687         (WebCore::isSpace):
81688         (WebCore::StringImpl::containsOnlyWhitespace):
81689         (WebCore::StringImpl::isLower):
81690         (WebCore::StringImpl::lower):
81691         (WebCore::StringImpl::find):
81692         (WebCore::StringImpl::reverseFind):
81693         (WebCore::equalIgnoringCase):
81694         * platform/TextEncodingRegistry.cpp:
81695         (WebCore::TextEncodingNameHash::equal):
81696         (WebCore::TextEncodingNameHash::hash):
81697         (WebCore::atomicCanonicalTextEncodingName):
81698         * platform/mac/KeyEventMac.mm:
81699         (WebCore::keyIdentifierForKeyEvent):
81700         * platform/win/KeyEventWin.cpp:
81701         (WebCore::keyIdentifierForWindowsKeyCode):
81702         * platform/win/PopupMenuWin.cpp:
81703         (WebCore::isASCIIPrintable):
81704         (WebCore::PopupWndProc):
81705         * plugins/win/PluginViewWin.cpp:
81706         (WebCore::capitalizeRFC822HeaderFieldName):
81707         * rendering/RenderText.cpp:
81708         (WebCore::RenderText::widthFromCache):
81709         Use ASCIICType.h functions instead of ctype.h ones.
81710
81711 2007-10-16  Mitz Pettel  <mitz@webkit.org>
81712
81713         Reviewed by Dave Hyatt.
81714
81715         - fix http://bugs.webkit.org/show_bug.cgi?id=15296
81716           REGRESSION (r19716-r19719): width not specified for <marquee> tag is causing the alignment issue.
81717
81718         Test: fast/block/float/marquee-shrink-to-avoid-floats.html
81719
81720         * rendering/RenderObject.cpp:
81721         (WebCore::RenderObject::shrinkToAvoidFloats): Changed to return 'true' for <marquee>s with auto width.
81722
81723 2007-10-16  Beth Dakin  <bdakin@apple.com>
81724
81725         Reviewed by Darin.
81726
81727         Fix for <rdar://problem/5517118> REGRESSION: 9A570 - Safari renders 
81728         Amazon seller page way too small
81729
81730         The font size at Amazon was way too small because the calls to 
81731         getComputedStyle and getPropertyValue did not cause the div to 
81732         attach because there was a pending stylesheet. The fix is to call 
81733         updateLayoutIgnorePendingStylesheets() instead of just 
81734         updateLayout().
81735
81736         * css/CSSComputedStyleDeclaration.cpp:
81737         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
81738
81739 2007-10-16  David Hyatt  <hyatt@apple.com>
81740
81741         Get transform-origin(x/y) mapped into the front end RenderStyle.  Adds a new StyleTransformData struct that
81742         holds transform-origin (and that will also eventually hold the parsed transform operations as well).
81743
81744         Reviewed by Beth
81745
81746         * css/CSSStyleSelector.cpp:
81747         (WebCore::CSSStyleSelector::applyProperty):
81748         * rendering/RenderStyle.cpp:
81749         (WebCore::StyleTransformData::StyleTransformData):
81750         (WebCore::StyleTransformData::operator==):
81751         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
81752         (WebCore::StyleRareNonInheritedData::operator==):
81753         (WebCore::RenderStyle::RenderStyle):
81754         (WebCore::RenderStyle::diff):
81755         * rendering/RenderStyle.h:
81756         (WebCore::StyleTransformData::operator!=):
81757         (WebCore::RenderStyle::transformOriginX):
81758         (WebCore::RenderStyle::transformOriginY):
81759         (WebCore::RenderStyle::setTransformOriginX):
81760         (WebCore::RenderStyle::setTransformOriginY):
81761         (WebCore::RenderStyle::initialTransformOriginX):
81762         (WebCore::RenderStyle::initialTransformOriginY):
81763
81764 2007-10-16  Adele Peterson  <adele@apple.com>
81765
81766         Reviewed by Alice.
81767
81768         Fix for <rdar://problem/5538793> REGRESSION: Failing layout test: fast/forms/select-change-listbox-to-popup.html (due to landing feature branch)
81769
81770         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute):  When switching between types of select elements, call setRecalcListItems
81771           since recalcListItems updates the default selection in different ways for the different controls. 
81772
81773 2007-10-16  Alice Liu  <alice.liu@apple.com>
81774
81775         rubber-stamped by Darin.
81776
81777         flipping my previous fix around so that mac is special-cased instead of win.
81778
81779         * dom/Document.cpp:
81780         (WebCore::Document::defaultEventHandler):
81781
81782 2007-10-16  David Hyatt  <hyatt@apple.com>
81783
81784         Clean up transform parsing.  Fix a crash, ditch the extra parse context class, and use RefPtr/PassRefPtr more
81785         to simplify the code.
81786
81787         Reviewed by aroben
81788
81789         * css/CSSParser.cpp:
81790         (WebCore::CSSParser::parseValue):
81791         (WebCore::CSSParser::parseTransform):
81792         * css/CSSParser.h:
81793
81794 2007-10-16  Alice Liu  <alice.liu@apple.com>
81795
81796         Reviewed by Adele.
81797
81798         fixed <rdar://5085596> Accesskeys don't work
81799         
81800         * dom/Document.cpp:
81801         (WebCore::Document::defaultEventHandler):
81802         accesskey modifier is platform-depedent.
81803
81804 2007-10-15  Mark Rowe  <mrowe@apple.com>
81805
81806         Reviewed by John.
81807
81808         <rdar://problem/5494040> Reproducible assertion failure in WebCore::IconDatabase::iconForPageURL
81809
81810         A race condition between icon database import and Safari asking for an icon for the empty URL
81811         was resulting in a PageURLRecord being created for a URL that can never be retained.  By enforcing
81812         that PageURLRecord's cannot be created for the empty URL we can prevent the assertion from failing.
81813
81814         * loader/icon/IconDatabase.cpp:
81815         (WebCore::IconDatabase::iconForPageURL):
81816         (WebCore::IconDatabase::getOrCreatePageURLRecord): Bail out early if the URL is empty.
81817         (WebCore::IconDatabase::performURLImport): Don't create the PageURLRecord if the URL is empty.
81818
81819 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
81820
81821         Reviewed by Ollie.
81822
81823         Use OwnPtr for m_deliveryData, and fix a bug where we were memmove()ing
81824         over m_deliveryData instead of its data buffer
81825
81826         * plugins/win/PluginStreamWin.cpp:
81827         (WebCore::PluginStreamWin::~PluginStreamWin): Don't delete
81828         m_deliveryData
81829         (WebCore::PluginStreamWin::deliverData): Fix memmove() call
81830         (WebCore::PluginStreamWin::didReceiveData): Assign using OwnPtr::set()
81831         * plugins/win/PluginStreamWin.h: Use OwnPtr
81832
81833 2007-10-15  Steve Falkenburg  <sfalken@apple.com>
81834
81835         Reviewed by Oliver.
81836
81837         Add missing null check.
81838
81839         * platform/network/cf/AuthenticationCF.cpp:
81840         (WebCore::core):
81841
81842 2007-10-15  Mark Rowe  <mrowe@apple.com>
81843
81844         Fix the no-SVG build again.  Add new transform CSS properties to the switch statements.
81845
81846         * css/CSSComputedStyleDeclaration.cpp:
81847         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
81848         * css/CSSStyleSelector.cpp:
81849         (WebCore::CSSStyleSelector::applyProperty):
81850
81851 2007-10-15  Darin Adler  <darin@apple.com>
81852
81853         Reviewed by Mitz.
81854
81855         - http://bugs.webkit.org/show_bug.cgi?id=15518
81856           Remove the unused attemptFontSubstitution feature and do some
81857           cleanup of glyphDataForCharacter.
81858
81859         * platform/Font.h:
81860         * platform/Font.cpp:
81861         (WebCore::WidthIterator::advance): Eliminated uneeded attemptFontSubstitution
81862         and cluster parameters to the glyphDataForCharacter function.
81863         (WebCore::Font::glyphDataForCharacter): Removed the cluster parameter and
81864         attemptFontSubstitution parameter. Removed the isUpper check before calling
81865         toUpper in the small caps code path. Split up the inner loop into separate
81866         copies for non-small-caps and small caps. Broke out the system fallback
81867         page handling so it's not inside the loop. Changed system fallback so it uses
81868         the character and breaks it up into UTF-16 as needed, instead of using a
81869         passed-in "character cluster".
81870
81871         * platform/TextStyle.h:
81872         (WebCore::TextStyle::TextStyle): Removed attemptFontSubstitution.
81873         (WebCore::TextStyle::applyWordRounding): Ditto.
81874
81875 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
81876
81877         Reviewed by Ollie.
81878
81879         Remove an operator precedence warning on Windows
81880
81881         * editing/markup.cpp:
81882         (WebCore::escapeContentText): Use (a) | (b)
81883         (WebCore::appendEscapedContent): Use (a) | (b)
81884
81885 2007-10-15  Kevin McCullough  <kmccullough@apple.com>
81886
81887         Reviewed by Darin.
81888
81889         - <rdar://problem/5238818> window.resizeTo doesn't restrict the resized window to the size of the screen
81890         - Now we take the doc into account when resizing.
81891         - Also I found an issue where we would resize to outside the window, because
81892           the resize would be smaller than the window size but the location of the
81893           window would make the resize go off-screen. Now we move the window back into the screen.
81894
81895         * bindings/js/kjs_window.cpp:
81896         (KJS::adjustWindowRect):
81897         (KJS::WindowFunc::callAsFunction):
81898
81899 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
81900
81901         Reviewed by Anders.
81902
81903         <rdar://5510700> Repro crash loading embedded Windows Media Player
81904         content
81905
81906         Anders noticed that the older Windows Media Player plugin (npdsplay.dll)
81907         will crash if it receives its resource requests out of order, whereas we
81908         were immediately fulfilling untargeted, non-JavaScript requests and
81909         scheduling targeted or JavaScript resource requests. Implement his
81910         suggested fix, which is to schedule PluginRequests for all resource
81911         requests 
81912
81913         * plugins/win/PluginViewWin.cpp:
81914         (WebCore::getString):
81915         (WebCore::PluginViewWin::performRequest): If this non-JavaScript request
81916         has no target, create a stream for it
81917         (WebCore::PluginViewWin::load): Schedule PluginRequests for all resource
81918         requests
81919
81920 2007-10-15  Mark Rowe  <mrowe@apple.com>
81921
81922         Gtk and Qt build fix.  Add new .cpp file to project.
81923
81924         * WebCore.pro:
81925
81926 2007-10-15  John Sullivan  <sullivan@apple.com>
81927
81928         * platform/mac/FontDataMac.mm:
81929         D'oh! Added missing #import to fix build
81930
81931 2007-10-15  John Sullivan  <sullivan@apple.com>
81932
81933         Reviewed by Geoff
81934
81935         * platform/mac/FontDataMac.mm:
81936         (WebCore::FontData::smallCapsFontData):
81937         replace NS_DURING/NS_HANDLER with WebCore-style BEGIN/END_BLOCK_OBJC_EXCEPTIONS
81938
81939 2007-10-15  David Hyatt  <hyatt@apple.com>
81940
81941         The CSS WG has been discussing the concept of rotation.  In the latest draft specification, two properties
81942         have been introduced: rotation and rotation-point.  I believe these properties should be generalized to
81943         allow for arbitrary transformations (e.g., translation, skew, rotate, scale).
81944
81945         This patch adds support for the back-end parsing of two new CSS properties: transform and transform-origin.
81946         They are directly analogous to the properties specified by the CSS WG, except that they are designed to allow
81947         for arbitrary affine transforms rather than just rotation.
81948
81949         Reviewed by Beth Dakin
81950
81951         * WebCore.xcodeproj/project.pbxproj:
81952         * WebCore.vcproj/WebCore.vcproj:
81953         * css/CSSComputedStyleDeclaration.cpp:
81954         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
81955         * css/CSSParser.cpp:
81956         (WebCore::CSSParser::parseValue):
81957         (WebCore::TransformParseContext:::m_list):
81958         (WebCore::TransformParseContext::list):
81959         (WebCore::TransformParseContext::failed):
81960         (WebCore::TransformParseContext::addValue):
81961         (WebCore::TransformOperationInfo::TransformOperationInfo):
81962         (WebCore::TransformOperationInfo::type):
81963         (WebCore::TransformOperationInfo::argCount):
81964         (WebCore::TransformOperationInfo::unit):
81965         (WebCore::TransformOperationInfo::unknown):
81966         (WebCore::TransformOperationInfo::hasCorrectArgCount):
81967         (WebCore::CSSParser::parseTransform):
81968         (WebCore::CSSParser::parseTransformOrigin):
81969         * css/CSSParser.h:
81970         * css/CSSPropertyNames.in:
81971         * css/CSSTransformValue.cpp: Added.
81972         (WebCore::CSSTransformValue::CSSTransformValue):
81973         (WebCore::CSSTransformValue::~CSSTransformValue):
81974         (WebCore::CSSTransformValue::addValue):
81975         (WebCore::CSSTransformValue::cssText):
81976         * css/CSSTransformValue.h: Added.
81977         (WebCore::CSSTransformValue::):
81978
81979 2007-10-15  Mark Rowe  <mrowe@apple.com>
81980
81981         Reviewed by Oliver.
81982
81983         Fix the no-SVG build.
81984
81985         * DerivedSources.make: Use the correct file as input to generate CSSPropertyNames.h.
81986         * rendering/RenderObject.cpp:
81987         (WebCore::objectIsRelayoutBoundary):
81988
81989 2007-10-15  Darin Adler  <darin@apple.com>
81990
81991         Reviewed by Sam.
81992
81993         - fix http://bugs.webkit.org/show_bug.cgi?id=15520
81994           alert(undefined) should say "undefined" in the alert
81995
81996         Test: fast/dom/Window/alert-undefined.html
81997
81998         * page/DOMWindow.idl: Remove ConvertUndefinedOrNullToNullString from alert, confirm, and prompt.
81999         It turns out that the default behavior is what the other browsers do (browsers tested: IE 7,
82000         Firefox 2).
82001
82002 2007-10-15  Adele Peterson  <adele@apple.com>
82003
82004         Reviewed by Darin.
82005
82006         Fix for http://bugs.webkit.org/show_bug.cgi?id=15252
82007         <rdar://problem/5498184> REGRESSION: <select multiple> doesn't scroll to top when old options are removed and new ones are added, leaving listbox empty-looking
82008
82009         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::calcHeight): If the scrollbar is disabled, make sure the scroll offset gets reset to 0.  In general,
82010           we don't want to unnecessarily adjust the scroll offset, but in this case, there won't be an obvious way for the user to adjust the scroller position once it's disabled.
82011
82012 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
82013
82014         Reviewed by Maciej.
82015
82016         Return a more appropriate error from NPN_RequestRange, which is
82017         currently unimplemented
82018
82019         * plugins/win/npapi.cpp: return NPERR_STREAM_NOT_SEEKABLE 
82020         (NPN_RequestRead):
82021
82022 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
82023
82024         Reviewed by Maciej.
82025
82026         Add a missing function pointer to the m_browserFuncs structure
82027
82028         * plugins/win/PluginPackageWin.cpp:
82029         (WebCore::PluginPackageWin::load):
82030
82031 2007-10-15  Simon Hausmann  <hausmann@kde.org>
82032
82033         Reviewed by Lars.
82034
82035         Fix the compilation of the Font code in the Qt port by adding the necessary stubs to support downloadable fonts through the @font-face rules.
82036
82037         * WebCore.pro:
82038         * loader/CachedFont.cpp:
82039         * platform/qt/FontCacheQt.cpp: Removed.
82040         * platform/qt/FontCustomPlatformData.cpp: Removed.
82041         * platform/qt/FontCustomPlatformData.h: Removed.
82042         * platform/qt/FontDataQt.cpp: Removed.
82043         * platform/qt/FontPlatformData.h: Removed.
82044         * platform/qt/FontQt.cpp:
82045         * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
82046
82047 2007-10-15  Simon Hausmann  <hausmann@kde.org>
82048
82049         Reviewed by Lars.
82050
82051         Adapt to the latest API changes in the SVG API/Code.
82052
82053         * platform/graphics/svg/qt/RenderPathQt.cpp:
82054         (WebCore::RenderPath::strokeContains):
82055         (WebCore::getPathStroke):
82056         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
82057         (WebCore::SVGPaintServer::setPenProperties):
82058         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
82059
82060 2007-10-14  Nikolas Zimmermann  <zimmermann@kde.org>
82061
82062         Reviewed by Eric.
82063
82064         Fix bad abstraction in ImageBuffer class.
82065         While the class itself is platform-aware and thus it's location in platform/graphics
82066         is fine, it contains the "renderSubtreeToImage" method which operates on RenderObject.
82067
82068         As it's SVG specific I decided to move this method into SVGRenderSupport, to avoid
82069         implicit platform/ <-> rendering/ dependencies.
82070
82071         * WebCore.pro:
82072         * WebCore.vcproj/WebCore.vcproj:
82073         * WebCore.xcodeproj/project.pbxproj:
82074         * ksvg2/svg/SVGMaskElement.cpp:
82075         (WebCore::SVGMaskElement::drawMaskerContent):
82076         * ksvg2/svg/SVGPatternElement.cpp:
82077         (WebCore::SVGPatternElement::buildPattern):
82078         * platform/graphics/ImageBuffer.cpp: Removed.
82079         * platform/graphics/ImageBuffer.h:
82080         (WebCore::ImageBuffer::size):
82081         * platform/graphics/svg/SVGImage.cpp:
82082         (WebCore::SVGImage::nativeImageForCurrentFrame):
82083         * rendering/SVGRenderSupport.cpp:
82084         (WebCore::renderSubtreeToImage):
82085         * rendering/SVGRenderSupport.h:
82086
82087 2007-10-14  Peter Kasting  <pkasting@google.com>
82088
82089         Reviewed by Maciej.
82090
82091         http://bugs.webkit.org/show_bug.cgi?id=15210
82092         Draw the image outline even for broken images.
82093
82094         * rendering/RenderImage.cpp:
82095         (WebCore::RenderImage::paint):
82096
82097 2007-10-14  Kevin Ollivier  <kevino@theolliviers.com>
82098
82099         Reviewed by Adam.
82100
82101         Add support for MSVC7, and fix cases where PLATFORM(WIN) should
82102         be PLATFORM(WIN_OS) for other ports building on Windows.
82103
82104         * dom/XMLTokenizer.cpp:
82105         * page/FrameTree.cpp:
82106         * platform/StaticConstructors.h:
82107         * platform/String.cpp:
82108
82109 2007-10-14  Maxime Britto  <mbritto@pleyo.com>
82110
82111         Reviewed by Mitz.
82112
82113         Fix an error in the goBackOrForward() function : confusion between forwardListCount and backListCount.
82114         http://bugs.webkit.org/show_bug.cgi?id=15212
82115
82116         * loader/FrameLoader.cpp:
82117         (WebCore::FrameLoader::goBackOrForward):
82118
82119 2007-10-14  Mitz Pettel  <mitz@webkit.org>
82120
82121         Reviewed by Darin.
82122
82123         - fix http://bugs.webkit.org/show_bug.cgi?id=15181
82124           text-transform: uppercase not working in input (submit, reset, button) elements
82125           <rdar://problem/5474647>
82126
82127         Test: fast/forms/button-text-transform.html
82128
82129         Text transformations require access to the original text. The button's inner
82130         text was an anonymous RenderText, meaning it did not have a node to retrieve
82131         the original text from. The patch fixes this by changing the inner text into a
82132         RenderTextFragment, which stores its own original text.
82133
82134         * rendering/RenderButton.cpp:
82135         (WebCore::RenderButton::setText):
82136         * rendering/RenderButton.h:
82137
82138 2007-10-14  Eric Seidel  <eric@webkit.org>
82139
82140         Reviewed by Maciej.
82141
82142         REGRESSION: Javascript bug in getElementsByName
82143         http://bugs.webkit.org/show_bug.cgi?id=15274
82144
82145         Test: fast/dom/getelementbyname-invalidation.html
82146
82147         * dom/NameNodeList.h: remove empty rootNodeChildrenChanged override
82148
82149 2007-10-14  Mitz Pettel  <mitz@webkit.org>
82150
82151         Reviewed by Maciej.
82152
82153         - http://bugs.webkit.org/show_bug.cgi?id=15303
82154           Remove now-redundant code to restore dialog arguments after clear
82155
82156         This patch reverts the kjs_window.* parts of r25576 because following
82157         r25783, window properties, including dialog arguments, are not cleared
82158         when the newly created modal dialog transitions to the document.
82159
82160         * bindings/js/kjs_window.cpp:
82161         (KJS::WindowPrivate::WindowPrivate):
82162         (KJS::createWindow):
82163         (KJS::showModalDialog):
82164         (KJS::Window::clear):
82165         (KJS::WindowFunc::callAsFunction):
82166         (KJS::Window::setReturnValueSlot):
82167         * bindings/js/kjs_window.h:
82168
82169 2007-10-14  Mitz Pettel  <mitz@webkit.org>
82170
82171         Reviewed by Dave Hyatt.
82172
82173         - fix http://bugs.webkit.org/show_bug.cgi?id=15309
82174           <rdar://problem/5512020> Crash due to infinite recursion in RenderTable::addChild
82175
82176         Test: fast/table/generated-caption.html
82177
82178         * rendering/RenderTable.cpp:
82179         (WebCore::RenderTable::addChild): Changed to make sure that the child is
82180         not added into generated after content. Also made adding a child before
82181         a table caption work correctly instead of adding the child after the caption.
82182
82183 2007-10-14  Peter Kasting  <pkasting@google.com>
82184
82185         Reviewed by Maciej.
82186
82187         http://bugs.webkit.org/show_bug.cgi?id=15141
82188         Feed GIF reader data from the point in the stream it expects.  Also,
82189         mirror the reader's failure state up to the wrapping decoder.
82190
82191         * platform/image-decoders/gif/GIFImageReader.cpp:
82192         (GIFImageReader::read):
82193
82194 2007-10-14  Peter Kasting  <pkasting@google.com>
82195
82196         Reviewed by Maciej.
82197
82198         http://bugs.webkit.org/show_bug.cgi?id=15142
82199         Return correct frame count in GIFImageDecoder::frameBufferAtIndex(),
82200         even if more data has arrived since the last decoding pass.
82201
82202         * platform/image-decoders/gif/GIFImageDecoder.cpp:
82203         (WebCore::GIFImageDecoder::frameBufferAtIndex):
82204
82205 == Rolled over to ChangeLog-2007-10-14 ==