387f4e5b7944bd688812a94b53916fddc8cc5861
[WebKit-https.git] / WebCore / ChangeLog
1 2008-12-10  Alice Liu  <alice.liu@apple.com>
2
3         Manual test for https://bugs.webkit.org/show_bug.cgi?id=20685
4
5         Reviewed by Darin Adler.
6
7         * manual-tests/drag-image-to-desktop.html: Added.
8
9 2008-12-10  Alice Liu  <alice.liu@apple.com>
10
11         fixed https://bugs.webkit.org/show_bug.cgi?id=20685
12
13         Reviewed by Darin Adler.
14
15         Manual test case is manual-tests/drag-image-to-desktop.html
16
17         Added new files to projects
18         * WebCore.vcproj/WebCore.vcproj:
19         * WebCore.xcodeproj/project.pbxproj:
20
21         * page/DragController.cpp:
22         (WebCore::DragController::startDrag):
23         * platform/MIMETypeRegistry.cpp:
24         (WebCore::initializeSupportedImageMIMETypes):
25         (WebCore::initializeSupportedImageMIMETypesForEncoding):
26
27         These changes add a method to obtain the extension for an image
28         * platform/graphics/BitmapImage.cpp:
29         (WebCore::BitmapImage::filenameExtension):
30         * platform/graphics/BitmapImage.h:
31         * platform/graphics/Image.h:
32         (WebCore::Image::filenameExtension):
33         * platform/graphics/ImageSource.h:
34         * platform/graphics/cairo/ImageSourceCairo.cpp:
35         (WebCore::ImageSource::filenameExtension):
36         * platform/graphics/cg/ImageSourceCG.cpp:
37         (WebCore::ImageSource::filenameExtension):
38
39         These changes added a utility that returns the preferred extension for a UTI
40         * platform/graphics/cg/ImageSourceCG.h: Added.
41         * platform/graphics/cg/ImageSourceCGMac.mm: Added.
42         (WebCore::MIMETypeForImageSourceType):
43         (WebCore::preferredExtensionForImageSourceType):
44         * platform/graphics/cg/ImageSourceCGWin.cpp: Added.
45         (WebCore::MIMETypeForImageSourceType):
46         (WebCore::preferredExtensionForImageSourceType):
47
48         * platform/mac/MIMETypeRegistryMac.mm:
49         moved getMIMETypeForUTI to ImageSourceCGMac.mm
50
51         Ask image for its file extension instead of relying on MIME type and file path
52         * platform/win/ClipboardWin.cpp:
53         (WebCore::createGlobalImageFileDescriptor):
54
55         Remove extraneous code from getPreferredExtensionForMIMEType.
56         Also moved getMIMETypeForUTI to ImageSourceCGWin.cpp
57         * platform/win/MIMETypeRegistryWin.cpp:
58         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
59
60 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
61
62         Reviewed by Antti Koivisto
63
64         <rdar://problem/6431224>
65         
66         When updating the value of a slider, don't mark the parents
67         as needing layout, because the size of the slider can never
68         change. This fixes full-page repaints in some cases.
69
70         * rendering/RenderSlider.cpp:
71         (WebCore::RenderSlider::updateFromElement):
72
73 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
74
75         Potential build fix. The forward declaration of FloatPoint should
76         be inside the WebCore namespace.
77         
78         * platform/graphics/FloatPoint3D.h:
79
80 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
81
82         Reviewed by Sam Weinig
83
84         https://bugs.webkit.org/show_bug.cgi?id=22793
85
86         Cleanup FloatPoint3D: inline the getters and setters,
87         fix a potential divide-by-zero in normalize(), and add
88         a FloatPoint constructor.
89         
90         * platform/graphics/FloatPoint3D.cpp:
91         (WebCore::FloatPoint3D::FloatPoint3D):
92         (WebCore::FloatPoint3D::normalize):
93         * platform/graphics/FloatPoint3D.h:
94         (WebCore::FloatPoint3D::x):
95         (WebCore::FloatPoint3D::setX):
96         (WebCore::FloatPoint3D::y):
97         (WebCore::FloatPoint3D::setY):
98         (WebCore::FloatPoint3D::z):
99         (WebCore::FloatPoint3D::setZ):
100
101 2008-12-09  Julien Chaffraix  <jchaffraix@webkit.org>
102
103         Reviewed by Eric Seidel.
104
105         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
106         https://bugs.webkit.org/show_bug.cgi?id=22665
107
108         - Removed setCreatedByParser from style and link elements.
109
110         - Removed XMLTokenizer::eventuallyMarkAsCreatedByParser.
111
112         * dom/XMLTokenizer.cpp:
113         * dom/XMLTokenizer.h:
114         * dom/XMLTokenizerLibxml2.cpp:
115         (WebCore::XMLTokenizer::startElementNs):
116         * dom/XMLTokenizerQt.cpp:
117         (WebCore::XMLTokenizer::parseStartElement):
118         * html/HTMLElementFactory.cpp:
119         (WebCore::linkConstructor):
120         (WebCore::styleConstructor):
121         * html/HTMLLinkElement.cpp:
122         (WebCore::HTMLLinkElement::HTMLLinkElement):
123         * html/HTMLLinkElement.h:
124         * html/HTMLStyleElement.cpp:
125         (WebCore::HTMLStyleElement::HTMLStyleElement):
126         * html/HTMLStyleElement.h:
127         * html/HTMLTagNames.in:
128         * svg/SVGStyleElement.cpp:
129         (WebCore::SVGStyleElement::SVGStyleElement):
130         * svg/SVGStyleElement.h:
131         * svg/svgtags.in:
132
133 2008-12-10  Brady Eidson  <beidson@apple.com>
134
135         Reviewed by Darin
136
137         https://bugs.webkit.org/show_bug.cgi?id=22194 and <rdar://problem/6388378> -
138         Dialog when going back to a page from whence you submitted a form
139
140         http://trac.webkit.org/changeset/37317 changed the manner in which headers are added to
141         http requests, which caused the networking layer to have an incomplete set of headers
142         just before consulting the Policy Delegate.  This caused a cache miss and incorrectly made
143         us believe we'd be resubmitting the form.
144
145         * loader/FrameLoader.cpp:
146         (WebCore::FrameLoader::loadItem):  Being careful to maintain the new behavior required by
147           the Origin header mechanism as discussed in bug 22194, restore the previous behavior of
148           setting all the headers before the networking layer is asked about the cache lookup.
149
150 2008-12-10  Dimitri Glazkov  <dglazkov@chromium.org>
151
152         Reviewed by Timothy Hatcher.
153
154         Add back ability to end all profiling via console by invoking profileEnd
155         with no arguments.
156
157         * page/Console.cpp:
158         (WebCore::Console::profileEnd): Removed title null-checking and
159             subsequent early exit.
160
161 2008-12-10  Pierre-Olivier Latour  <pol@apple.com>
162
163         Reviewed by Darin Adler.
164
165         KeyframeAnimation::animate() needs to compute the elapsed animation time
166         properly taking into account its paused state.
167
168         https://bugs.webkit.org/show_bug.cgi?id=22773
169
170         Test: animations/animation-drt-api-multiple-keyframes.html
171
172         * page/animation/KeyframeAnimation.cpp:
173         (WebCore::KeyframeAnimation::animate):
174
175 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
176
177         Reviewed by Dan Bernstein
178
179         Part of
180         https://bugs.webkit.org/show_bug.cgi?id=22570
181         
182         Rename methods on RenderLayer for clarity:
183             clearClipRects -> clearClipRectsIncludingDescendants
184             clearClipRect  -> clearClipRects
185
186         * rendering/RenderBox.cpp:
187         (WebCore::RenderBox::destroy):
188         * rendering/RenderLayer.cpp:
189         (WebCore::RenderLayer::updateLayerPosition):
190         (WebCore::RenderLayer::removeOnlyThisLayer):
191         (WebCore::RenderLayer::insertOnlyThisLayer):
192         (WebCore::RenderLayer::clearClipRectsIncludingDescendants):
193         (WebCore::RenderLayer::clearClipRects):
194         * rendering/RenderLayer.h:
195         * rendering/RenderObject.cpp:
196         (WebCore::RenderObject::styleWillChange):
197         * rendering/RenderWidget.cpp:
198         (WebCore::RenderWidget::destroy):
199
200 2008-12-10  Kevin Ollivier  <kevino@theolliviers.com>
201
202         wx build fix after the script call stack/frame additions.
203         
204         * WebCoreSources.bkl:
205
206 2008-12-10   Srinivasa Rao M. Hamse  <msrinirao@gmail.com>
207
208         Reviewed by Holger Freyther.
209
210         F1-F12 key mappings for WebKit Gtk Port
211
212         * platform/gtk/KeyEventGtk.cpp:
213         (WebCore::windowsKeyCodeForKeyEvent):
214
215 2008-12-10  Enrico Ros  <enrico.ros@m31.com>
216
217         Reviewed by Simon Hausmann.
218
219         Fix the Qt build when SVG is disabled. A broken dependancy caused
220         unnecessary rebuilds even with no changes.
221
222         * WebCore.pro: fix a broken build dependancy
223
224 2008-12-10  Hironori Bono  <hbono@chromium.org>
225
226         Reviewed by Alexey Proskuryakov.
227
228         Bug 21820: Unable to enter the Tamil UNICODE Characters via Thamizha Phonetic IME
229         https://bugs.webkit.org/show_bug.cgi?id=21820
230
231         <rdar://problem/5683248> Typing backspace to delete a diacritical mark also deletes the character before (Arabic)
232         <rdar://problem/5702038> Backspace removes Thai Character in wrong sequence
233
234         Tests: editing/deleting/delete-ligature-001.html
235                editing/deleting/delete-ligature-002.html
236                editing/deleting/delete-ligature-003.html
237
238         * editing/TypingCommand.cpp:
239         (WebCore::TypingCommand::deleteKeyPressed): Delete only the last character
240         of a ligature which consists of multiple Unicode characters when deleting it with
241         a backspace key.
242
243 2008-12-10  David Levin  <levin@chromium.org>
244
245         Reviewed by Alexey Proskuryakov.
246
247         https://bugs.webkit.org/show_bug.cgi?id=22177
248         Fix the windows build by removing calls to notifyFormStateChanged
249         where they didn't appear in the original reviewed patch.
250
251         * html/HTMLInputElement.cpp:
252         (WebCore::HTMLInputElement::type):
253         (WebCore::HTMLInputElement::attach):
254
255 2008-12-09  Adam Barth  <abarth@webkit.org>
256
257         Reviewed by Sam Weinig.
258
259         Add ScriptController::updateSecurityOrigin to notify the bindings
260         that a document's securityOrigin has been updated.  This is used by
261         V8 to update its security context.
262
263         * bindings/js/ScriptController.cpp:
264         (WebCore::ScriptController::updateSecurityOrigin):
265         * bindings/js/ScriptController.h:
266         * dom/Document.cpp:
267         (WebCore::Document::setDomain):
268
269 2008-12-09  Eric Seidel  <eric@webkit.org>
270
271         No review, build fix only.
272
273         Fix a few config issues to let the Chromium Windows WebCore build get further.
274
275         * WebCore.scons:
276
277 2008-12-09  Brett Wilson  <brettw@chromium.org>
278
279         Reviewed by Dave Hyatt.
280
281         https://bugs.webkit.org/show_bug.cgi?id=22177
282
283         Add a callback on ChromeClient that the state of form elements on
284         the page has changed. This is to allow clients implementing session
285         saving to know when the current state is dirty.
286
287         * html/HTMLInputElement.cpp:
288         (WebCore::notifyFormStateChanged):
289         (WebCore::HTMLInputElement::setInputType):
290         (WebCore::HTMLInputElement::type):
291         (WebCore::HTMLInputElement::attach):
292         (WebCore::HTMLInputElement::setValue):
293         (WebCore::HTMLInputElement::setValueFromRenderer):
294         (WebCore::HTMLInputElement::setFileListFromRenderer):
295         * html/HTMLSelectElement.cpp:
296         (WebCore::HTMLSelectElement::setSelectedIndex):
297         * html/HTMLTextAreaElement.cpp:
298         (WebCore::notifyFormStateChanged):
299         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
300         (WebCore::HTMLTextAreaElement::updateValue):
301         (WebCore::HTMLTextAreaElement::setValue):
302         * loader/EmptyClients.h:
303         (WebCore::EmptyChromeClient::formStateDidChange):
304         * page/ChromeClient.h:
305
306 2008-12-09  Sam Weinig  <sam@webkit.org>
307
308         Reviewed by Darin Adler.
309
310         https://bugs.webkit.org/show_bug.cgi?id=19762
311
312         Fix intermittent crash in buildbot. The CSSCursorImageValues and
313         SVGCursorElements held onto raw SVGElement pointers without any
314         guarantee that the element is still around.
315
316         We did not fix the design that resulted in this issue, we just fixed
317         the pointer lifetimes.
318
319         * css/CSSCursorImageValue.cpp:
320         (WebCore::CSSCursorImageValue::~CSSCursorImageValue): Zero out the back pointers.
321         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Set up a back pointer.
322         (WebCore::CSSCursorImageValue::removeReferencedElement): Added. Used when the element
323         is destroyed.
324         * css/CSSCursorImageValue.h: Added removeReferencedElement.
325
326         * svg/SVGCursorElement.cpp:
327         (WebCore::SVGCursorElement::~SVGCursorElement): Zero out the back pointers.
328         (WebCore::SVGCursorElement::addClient): Set up a back pointer.
329         (WebCore::SVGCursorElement::removeClient): Zero out the back pointer.
330
331         * svg/SVGElement.cpp:
332         (WebCore::SVGElement::SVGElement): Initialize back pointers to zero.
333         (WebCore::SVGElement::~SVGElement): Call both the element and cursor image value
334         to remove the element from their sets.
335         * svg/SVGElement.h:
336         (WebCore::SVGElement::setCursorElement): Added.
337         (WebCore::SVGElement::setCursorImageValue): Added.
338
339 2008-12-09  David Hyatt  <hyatt@apple.com>
340
341         Add code that will create custom CSS scrollbars from the <body>, the document element (<html>) and the owning
342         frame/iframe.  If any of them set a custom style, it will be used.  The scrollbars do not update dynamically
343         yet as you switch from page to page (until they are destroyed and recreated).
344
345         Reviewed by Adele
346
347         * page/FrameView.cpp:
348         (WebCore::FrameView::createScrollbar):
349
350 2008-12-09  Ojan Vafai  <ojan@chromium.org>
351
352         Reviewed by Dave Hyatt.
353
354         https://bugs.webkit.org/show_bug.cgi?id=22689
355         Match Firefox button metrics on Windows.
356
357         * rendering/RenderButton.cpp:
358         (WebCore::RenderButton::addChild):
359         (WebCore::RenderButton::styleDidChange):
360         (WebCore::RenderButton::setupInnerStyle):
361         * rendering/RenderButton.h:
362         * rendering/RenderTheme.cpp:
363         (WebCore::RenderTheme::adjustButtonInnerStyle):
364         * rendering/RenderTheme.h:
365         * rendering/RenderThemeWin.cpp:
366         (WebCore::RenderThemeWin::adjustSliderThumbSize):
367         (WebCore::RenderThemeWin::adjustButtonInnerStyle):
368         * rendering/RenderThemeWin.h:
369
370 2008-12-09  Darin Fisher  <darin@chromium.org>
371
372         Fixes bustages.
373
374         https://bugs.webkit.org/show_bug.cgi?id=22631
375         Adding missing files from previous commit.
376
377         * bindings/js/ScriptCallFrame.cpp: Added.
378         (WebCore::ScriptCallFrame::ScriptCallFrame):
379         (WebCore::ScriptCallFrame::~ScriptCallFrame):
380         (WebCore::ScriptCallFrame::argumentAt):
381         * bindings/js/ScriptCallFrame.h: Added.
382         (WebCore::ScriptCallFrame::functionName):
383         (WebCore::ScriptCallFrame::sourceURL):
384         (WebCore::ScriptCallFrame::lineNumber):
385         (WebCore::ScriptCallFrame::argumentCount):
386         * bindings/js/ScriptCallStack.cpp: Added.
387         (WebCore::ScriptCallStack::ScriptCallStack):
388         (WebCore::ScriptCallStack::~ScriptCallStack):
389         (WebCore::ScriptCallStack::at):
390         (WebCore::ScriptCallStack::size):
391         (WebCore::ScriptCallStack::initialize):
392         * bindings/js/ScriptCallStack.h: Added.
393         (WebCore::ScriptCallStack::state):
394
395 2008-12-09  Dimitri Glazkov  <dglazkov@chromium.org>
396
397         Reviewed by Timothy Hatcher.
398
399         https://bugs.webkit.org/show_bug.cgi?id=22631
400         Streamline Console.cpp, abstract out the use of JSC::ExecState and
401         JSC::ArgList by introducing ScriptCallFrame and ScriptCallStack
402         abstractions.
403
404         * GNUmakefile.am: Added ScriptCallFrame and ScriptCallStack to build
405         * WebCore.pro:  Added ScriptCallFrame and ScriptCallStack to build
406         * WebCore.vcproj/WebCore.vcproj: Added ScriptCallFrame and
407         ScriptCallStack to project
408         * WebCore.xcodeproj/project.pbxproj: Added ScriptCallFrame and
409         ScriptCallStack to project
410         * bindings/js/JSConsoleCustom.cpp: Remove custom bindings.
411         * bindings/js/ScriptCallFrame.cpp: Added.
412         (WebCore::ScriptCallFrame::ScriptCallFrame):
413         (WebCore::ScriptCallFrame::~ScriptCallFrame):
414         (WebCore::ScriptCallFrame::argumentAt):
415         * bindings/js/ScriptCallFrame.h: Added.
416         (WebCore::ScriptCallFrame::functionName):
417         (WebCore::ScriptCallFrame::sourceURL):
418         (WebCore::ScriptCallFrame::lineNumber):
419         (WebCore::ScriptCallFrame::argumentCount):
420         * bindings/js/ScriptCallStack.cpp: Added.
421         (WebCore::ScriptCallStack::ScriptCallStack):
422         (WebCore::ScriptCallStack::~ScriptCallStack):
423         (WebCore::ScriptCallStack::at):
424         (WebCore::ScriptCallStack::size):
425         (WebCore::ScriptCallStack::initialize):
426         * bindings/js/ScriptCallStack.h: Added.
427         (WebCore::ScriptCallStack::ScriptCallStack):
428         (WebCore::ScriptCallStack::~ScriptCallStack):
429         (WebCore::ScriptCallStack::state):
430         (WebCore::ScriptCallStack::at):
431         (WebCore::ScriptCallStack::size):
432         (WebCore::ScriptCallStack::initialize):
433         * bindings/js/ScriptString.h: Added missing PlatformString include.
434         (WebCore::ScriptString::ScriptString): Added default constructor.
435         (WebCore::ScriptString::operator==): Added equality operator.
436         (WebCore::ScriptString::operator!=):
437         * bindings/js/ScriptValue.cpp: Added isNull and isUndefined.
438         (WebCore::ScriptValue::isNull):
439         (WebCore::ScriptValue::isUndefined):
440         * bindings/js/ScriptValue.h: Added isNull and isUndefined
441         * bindings/scripts/CodeGeneratorJS.pm: Add handling for
442         CustomArgumentHandling attribute.
443         * inspector/InspectorController.cpp: Refactored to use 
444         ScriptCallFrame and ScriptCallStack.
445         (WebCore::ConsoleMessage::ConsoleMessage):
446         (WebCore::InspectorController::addMessageToConsole):
447         (WebCore::InspectorController::startGroup):
448         (WebCore::InspectorController::addScriptConsoleMessage):
449         (WebCore::InspectorController::count):
450         (WebCore::InspectorController::startTiming):
451         (WebCore::InspectorController::stopTiming):
452         * inspector/InspectorController.h: Refactored to use ScriptCallFrame and
453         ScriptCallStack.
454         * inspector/front-end/Console.js: Modified to use argument value itself
455         rather than f.name for stack trace.
456         * page/Console.cpp: Refactored to use ScriptCallFrame and
457         ScriptCallStack.
458         (WebCore::getFirstArgumentAsString):
459         (WebCore::Console::addMessage):
460         (WebCore::Console::debug):
461         (WebCore::Console::error):
462         (WebCore::Console::info):
463         (WebCore::Console::log):
464         (WebCore::Console::dir):
465         (WebCore::Console::dirxml):
466         (WebCore::Console::trace):
467         (WebCore::Console::assertCondition):
468         (WebCore::Console::count):
469         (WebCore::Console::profile):
470         (WebCore::Console::profileEnd):
471         (WebCore::Console::time):
472         (WebCore::Console::timeEnd):
473         (WebCore::Console::group):
474         (WebCore::Console::warn):
475         * page/Console.h:
476         * page/Console.idl: Removed Custom attributes, added
477         CustomArgumentHandling attributes, and tweaked argument defs.
478
479 2008-12-09  Darin Adler  <darin@apple.com>
480
481         Try to fix non-Mac builds.
482
483         * GNUmakefile.am: Added NavigatorBase.
484         * WebCore.pro: Ditto.
485         * WebCore.scons: Ditto.
486         * WebCore.vcproj/WebCore.vcproj: Ditto.
487         * WebCoreSources.bkl: Ditto.
488
489         Unrelated tweak sitting in my tree.
490
491         * bindings/objc/DOMAbstractView.mm: Remove pointless override of finalize method.
492
493 2008-12-09  Darin Adler  <darin@apple.com>
494
495         Try to fix Tiger build.
496
497         * platform/network/mac/NetworkStateNotifierMac.cpp: Declare CFRunLoopGetMain.
498
499 2008-12-09  Alexey Proskuryakov  <ap@webkit.org>
500
501         Reviewed by Darin Adler.
502
503         https://bugs.webkit.org/show_bug.cgi?id=22719
504         Implement Navigator object in Workers
505
506         Test: fast/workers/worker-navigator.html
507
508         * DerivedSources.make:
509         * GNUmakefile.am:
510         * WebCore.pro:
511         * WebCore.vcproj/WebCore.vcproj:
512         * WebCore.xcodeproj/project.pbxproj:
513         Added WorkerNavigator sources.
514
515         * bindings/js/JSWorkerContext.cpp: (WebCore::jsWorkerContextNavigator):
516         Worker.navigator returns a WoerkerNavigator object (it is named just Navigator in the spec,
517         but it is not the same interface that is available on Windows).
518
519         * dom/Worker.cpp:
520         (WebCore::Worker::notifyFinished):
521         * dom/WorkerContext.cpp:
522         (WebCore::WorkerContext::WorkerContext):
523         (WebCore::WorkerContext::navigator):
524         * dom/WorkerContext.h:
525         (WebCore::WorkerContext::create):
526         * dom/WorkerThread.cpp:
527         (WebCore::WorkerThread::create):
528         (WebCore::WorkerThread::WorkerThread):
529         (WebCore::WorkerThread::workerThread):
530         * dom/WorkerThread.h:
531         Pass a pre-computed user agent string into worker, because it cannot call a client method
532         directly, and pre-computing is easier than sending a synchronous message to the main thread.
533
534         * page/Navigator.cpp:
535         * page/Navigator.h:
536         * page/NavigatorBase.cpp: Added.
537         * page/NavigatorBase.h: Added.
538         Factor out common (and uncommon, but very similar) functionality into a base class.
539
540         * page/WorkerNavigator.cpp: Added.
541         * page/WorkerNavigator.h: Added.
542         * page/WorkerNavigator.idl: Added.
543         Per Web Workers and HTML5, implement a small subset of what we currently have in Window.Navigator.
544
545         * platform/network/NetworkStateNotifier.cpp: (WebCore::networkStateNotifier):
546         Make networkStateNotifier() static constructor thread safe. The object is created on the
547         thread it is first called from, while callbacks are registered on the main thread. Calls to
548         onLine() from other threads are safe, because it is just loading a boolean.
549
550         * platform/network/mac/NetworkStateNotifierMac.cpp: (WebCore::NetworkStateNotifier::NetworkStateNotifier):
551         Schedule notifications on main event loop, not the current one.
552
553 2008-12-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
554
555         Rubber-stamped by Alexey Proskuryakov.
556
557         Forgot to update Qt/WML build - add some new files to the build.
558
559         * WebCore.pro:
560
561 2008-12-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
562
563         Reviewed by Alexey Proskuryakov.
564
565         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22637
566
567         Implement the GET method for WMLGoElement, and some test covering it's behaviour.
568         Update all build systems supporting WML that haven't been updated since a while.
569
570         Add WMLPostField stub implementation, needed for implementing POST method.
571
572         Tests: wml/go-task-get-method-external-deck-with-href.html
573                wml/go-task-get-method-external-deck.html
574                wml/go-task-get-method-same-deck.html
575
576         * GNUmakefile.am:
577         * WebCore.vcproj/WebCore.vcproj:
578         * WebCore.xcodeproj/project.pbxproj:
579         * dom/Document.cpp:
580         (WebCore::Document::resetWMLPageState):
581         * wml/WMLCardElement.cpp:
582         * wml/WMLCardElement.h:
583         * wml/WMLEventHandlingElement.cpp:
584         (WebCore::WMLCardElement::registerDoElement):
585         * wml/WMLEventHandlingElement.h:
586         * wml/WMLGoElement.cpp:
587         (WebCore::WMLGoElement::WMLGoElement):
588         (WebCore::WMLGoElement::registerPostfieldElement):
589         (WebCore::WMLGoElement::parseMappedAttribute):
590         (WebCore::WMLGoElement::executeTask):
591         (WebCore::WMLGoElement::parseContentType):
592         (WebCore::WMLGoElement::preparePOSTRequest):
593         (WebCore::WMLGoElement::prepareGETRequest):
594         * wml/WMLGoElement.h:
595         * wml/WMLPostfieldElement.cpp: Added.
596         (WebCore::WMLPostfieldElement::WMLPostfieldElement):
597         (WebCore::WMLPostfieldElement::parseMappedAttribute):
598         (WebCore::WMLPostfieldElement::insertedIntoDocument):
599         * wml/WMLPostfieldElement.h: Added.
600         (WebCore::WMLPostfieldElement::name):
601         (WebCore::WMLPostfieldElement::value):
602         * wml/WMLTagNames.in:
603
604 2008-12-08  Peter Kasting  <pkasting@google.com>
605
606         Reviewed by Anders Carlsson.
607
608         https://bugs.webkit.org/show_bug.cgi?id=16814
609         Allow ports to disable ActiveX->NPAPI conversion for Media Player.
610         Improve handling of miscellaneous ActiveX objects.
611
612         * rendering/RenderPartObject.cpp:
613         (WebCore::mapClassIdToServiceType):
614         (WebCore::shouldUseChildEmbedOfObject):
615         (WebCore::RenderPartObject::updateWidget):
616
617 2008-12-08  Darin Adler  <darin@apple.com>
618
619         Reviewed by John Sullivan.
620
621         - fix https://bugs.webkit.org/show_bug.cgi?id=22409
622           REGRESSION: cmd-shift-left/right don't switch tabs, instead select text
623
624         Tests: editing/execCommand/enabling-and-selection-2.html
625                editing/execCommand/enabling-and-selection.html
626
627         * editing/EditorCommand.cpp: Updated table to use these functions by their new names.
628         (WebCore::enabledVisibleSelection): Renamed this to reflect its new algorithm.
629         An invisible selection with a position that selects no characters doesn't count
630         as a visible selection.
631         (WebCore::enabledVisibleSelectionAndMark): Ditto.
632
633 2008-12-08  David Kilzer  <ddkilzer@apple.com>
634
635         Remove duplicate entries from WebCore project.
636
637         Reviewed by Eric Seidel.
638
639         Bug 22555: Sort "children" sections in Xcode project files.
640         <https://bugs.webkit.org/show_bug.cgi?id=22555>
641
642         Recipe for removing duplicates:
643         $ ./WebKitTools/Scripts/sort-Xcode-project-file project.pbxproj
644         $ uniq < project.pbxproj | diff -u project.pbxproj - | patch -p0 project.pbxproj
645
646         * WebCore.xcodeproj/project.pbxproj: Removed duplicates.
647
648 2008-12-08  Julien Chaffraix  <jchaffraix@webkit.org>
649
650         Reviewed by Darin Adler.
651
652         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
653         https://bugs.webkit.org/show_bug.cgi?id=22665
654
655         Remove setCreatedByParser from the script elements (HTML and SVG).
656
657         * dom/XMLTokenizer.cpp:
658         (WebCore::XMLTokenizer::eventuallyMarkAsParserCreated): Removed
659         call to setCreatedByParser for the 2 elements.
660
661         * dom/make_names.pl: Modified to call the constructor with
662         the createByParser parameter if 'constructorNeedsCreatedByParser'
663         is set.
664
665         * html/HTMLElementFactory.cpp:
666         (WebCore::scriptConstructor):
667         * html/HTMLScriptElement.cpp:
668         (WebCore::HTMLScriptElement::HTMLScriptElement):
669         * html/HTMLScriptElement.h:
670         * html/HTMLTagNames.in: Added constructorNeedsCreatedByParser
671         to script.
672         * svg/SVGScriptElement.cpp:
673         (WebCore::SVGScriptElement::SVGScriptElement):
674         * svg/SVGScriptElement.h:
675         * svg/svgtags.in: Added constructorNeedsCreatedByParser
676         to script.
677
678 2008-12-08  David Kilzer  <ddkilzer@apple.com>
679
680         Bug 22555: Sort "children" sections in Xcode project files
681
682         <https://bugs.webkit.org/show_bug.cgi?id=22555>
683
684         Reviewed by Eric Seidel.
685
686         * WebCore.xcodeproj/project.pbxproj: Sorted.
687         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj: Sorted.
688
689 2008-12-08  Tony Chang  <tony@chromium.org>
690
691         Reviewed by Eric Seidel.
692
693         Add a bool to GraphicsContext so that shadows can ignore
694         transformations.  This is needed by HTML canvas element
695         where the spec says shadows are applied w/o transformations.
696         https://bugs.webkit.org/show_bug.cgi?id=22580
697
698         No functional changes, thus no tests.
699
700         * html/CanvasRenderingContext2D.cpp:
701         (WebCore::CanvasRenderingContext2D::setShadow):
702         (WebCore::CanvasRenderingContext2D::applyShadow):
703         * html/HTMLCanvasElement.cpp:
704         (WebCore::HTMLCanvasElement::createImageBuffer):
705         * platform/graphics/GraphicsContext.cpp:
706         (WebCore::GraphicsContext::setShadowsIgnoreTransforms):
707         * platform/graphics/GraphicsContext.h:
708         * platform/graphics/GraphicsContextPrivate.h:
709         (WebCore::GraphicsContextState::GraphicsContextState):
710         * platform/graphics/cg/GraphicsContextCG.cpp:
711         (WebCore::GraphicsContext::setPlatformShadow):
712
713 2008-12-08  Julien Chaffraix  <jchaffraix@webkit.org>
714
715         Reviewed by Darin Adler.
716
717         Bug 17897: Not Rendering Images Imported from XHTML Document
718         <rdar://problem/5827614>
719
720         When we were loading document with XMLHttpRequest that contained images, the images
721         would not be fetched as they would not be displayed. However if we inserted such
722         an image element into a rendered document, we would not fetch the image and thus never
723         display it.
724
725         Now we check if the image has been loaded when we insert an HTMLImageElement into a
726         document.
727         To enable this, the image loader has an error flag. To avoid doing several attempts
728         when we know that the image is in error, we store the failed URL.
729         However Firefox and Opera ignore errors when the 'src' attribute changes and thus
730         we also have an updateFromElementIgnoringPreviousError to match the other browser.
731
732         Tests: http/tests/misc/image-blocked-src-change.html
733                http/tests/misc/image-blocked-src-no-change.html
734                http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded-svg.svg
735                http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded.html
736
737         * html/HTMLEmbedElement.cpp:
738         (WebCore::HTMLEmbedElement::parseMappedAttribute): Changed to call updateFromElementIgnoringPreviousError.
739         * html/HTMLImageElement.cpp:
740         (WebCore::HTMLImageElement::parseMappedAttribute): Ditto.
741         (WebCore::HTMLImageElement::insertedIntoDocument): Call updateFromElement if we do not have
742         an image.
743
744         * html/HTMLInputElement.cpp:
745         (WebCore::HTMLInputElement::parseMappedAttribute): Changed to call updateFromElementIgnoringPreviousError.
746         * html/HTMLObjectElement.cpp:
747         (WebCore::HTMLObjectElement::parseMappedAttribute): Ditto.
748         * html/HTMLVideoElement.cpp:
749         (WebCore::HTMLVideoElement::parseMappedAttribute): Ditto.
750         * loader/ImageLoader.cpp:
751         (WebCore::ImageLoader::setImage): Added an assertion.
752         (WebCore::ImageLoader::updateFromElement): Added a check for load error (to avoid displaying
753         multiple errors in the console for a single image load).
754
755         (WebCore::ImageLoader::updateFromElementIgnoringPreviousError): This method clears previous error
756         before calling updateFromElement.
757
758         (WebCore::ImageLoader::notifyFinished): Added an assertion.
759         * loader/ImageLoader.h:
760         * svg/SVGImageElement.cpp:
761         (WebCore::SVGImageElement::svgAttributeChanged): Changed to call updateFromElementIgnoringPreviousError.
762
763 2008-12-08  David Hyatt  <hyatt@apple.com>
764
765         Make scrollbar creation virtual on ScrollView so that FrameView can have the capability to create
766         custom CSS scrollbars.
767
768         Reviewed by Eric Seidel
769
770         * page/FrameView.cpp:
771         (WebCore::FrameView::createScrollbar):
772         * page/FrameView.h:
773         * platform/ScrollView.cpp:
774         (WebCore::ScrollView::setHasHorizontalScrollbar):
775         (WebCore::ScrollView::setHasVerticalScrollbar):
776         (WebCore::ScrollView::createScrollbar):
777         * platform/ScrollView.h:
778
779 2008-12-08  Dan Bernstein  <mitz@apple.com>
780
781         Reviewed by John Sullivan.
782
783         - WebCore part of tracking the global history item for a WebView
784
785         * loader/FrameLoader.cpp:
786         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Set the page's
787         global history item to the current back/forward list item, respecting
788         private browsing mode.
789         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Ditto in this
790         case.
791         (WebCore::FrameLoader::goToItem): Ditto in this case.
792         (WebCore::FrameLoader::updateHistoryForStandardLoad): If this load
793         creates a new global history item, set the page's global history item
794         to it.
795         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
796         Ditto.
797         * page/Page.cpp:
798         (WebCore::Page::setGlobalHistoryItem): Added this setter.
799         * page/Page.h: Added a m_globalHistoryItem data member.
800         (WebCore::Page::globalHistoryItem): Added this getter.
801
802 2008-12-08  Antti Koivisto  <antti@apple.com>
803
804         Reviewed by Dave Kilzer.
805
806         A few stylistic fixes suggested by Dave Kilzer.
807
808         * css/CSSPrimitiveValue.cpp:
809         (WebCore::CSSPrimitiveValue::createIdentifier):
810         (WebCore::CSSPrimitiveValue::create):
811
812 2008-12-08  Alexey Proskuryakov  <ap@webkit.org>
813
814         Reviewed by Darin Adler.
815
816         https://bugs.webkit.org/show_bug.cgi?id=22737
817         Try debug version when locating CFNetwork
818
819         * platform/network/cf/ResourceRequestCFNet.cpp:
820         (WebCore::findCFNetworkModule):
821         (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
822         (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
823         * platform/network/win/CookieJarCFNetWin.cpp:
824         (WebCore::findCFNetworkModule):
825         (WebCore::findIsHTTPOnlyFunction):
826
827 2008-12-08  Aaron Boodman  <aa@chromium.org>
828
829         Reviewed by Stephanie Lewis.
830
831         https://bugs.webkit.org/show_bug.cgi?id=22301
832         Make dispatchDidFinishLoading() always fire before didFinishLoadForFrame().
833
834         * loader/FrameLoader.cpp:
835         (WebCore::FrameLoader::finishedParsing):
836
837 2008-12-08  Trenton Schulz <trenton.schulz@nokia.com>
838
839         Rubber-stamped by Tor Arne Vestbø.
840
841         Fix build warning on Mac
842
843         * platform/text/mac/StringImplMac.mm:
844
845 2008-12-08  Simon Hausmann  <simon.hausmann@nokia.com>
846
847         Fix the Qt build.
848
849         * bridge/qt/qt_runtime.cpp:
850         (JSC::Bindings::convertQVariantToValue): Pass JSGlobalData to RegExp
851           constructor.
852
853 2008-12-08  Oliver Hunt  <oliver@apple.com>
854
855         Reviewed by Alexey Proskuryakov.
856
857         Bug 22398: r39059: Crash when clearing webkitTransitionDuration in webkitTransitionEnd event handler
858         <rdar://problem/6426245> REGRESSION(r39059): Reproducible crash when clearing webkitTransitionDuration in webkitTransitionEnd event handler (22398)
859
860         This regression was caused by r39059 replacing the protector on the active
861         animation with a protector on just the composition.  It turns out that both
862         protectors are necessary.
863
864         Test: transitions/transition-duration-cleared-in-transitionend-crash.html
865
866         * page/animation/AnimationBase.cpp:
867         (WebCore::AnimationBase::animationTimerCallbackFired):
868
869 2008-12-08  Dmitry Titov  <dimich@chromium.org>
870
871         Reviewed by Alexey Proskuryakov.
872
873         https://bugs.webkit.org/show_bug.cgi?id=22732
874         Remove unused files PausedTimeouts.h,.cpp
875         The change that deprecated this code was https://bugs.webkit.org/show_bug.cgi?id=22620
876
877         * GNUmakefile.am:
878         * WebCore.pro:
879         * WebCore.scons:
880         * WebCore.vcproj/WebCore.vcproj:
881         * WebCore.xcodeproj/project.pbxproj:
882         * WebCoreSources.bkl:
883           These are build files which had PausedTimeouts referenced.
884
885         * bindings/js/PausedTimeouts.cpp: Removed.
886         * bindings/js/PausedTimeouts.h: Removed.
887         * bindings/js/ScriptController.cpp: Removed '#include'
888         * page/Chrome.cpp: Removed '#include' and unused variable.
889
890 2008-12-07  Simon Fraser  <simon.fraser@apple.com>
891
892         Reviewed by Dan Bernstein
893
894         https://bugs.webkit.org/show_bug.cgi?id=22594
895
896         Fix issues which break reading inline style for -webkit-transition
897         and -webkit-transform-origin.
898         
899         Test: fast/css/transform-inline-style.html
900
901         * css/CSSMutableStyleDeclaration.cpp:
902         (WebCore::CSSMutableStyleDeclaration::getPropertyValue): Add cases 
903         for CSSPropertyWebkitTransformOrigin and CSSPropertyWebkitTransition
904         so that these shorthand properties are returned correctly.
905         * css/CSSParser.cpp:
906         (WebCore::CSSParser::parseAnimationProperty): Create CSSPrimitiveValues
907         with the correct CSSValueAll and CSSValueNone identifiers, not the
908         RenderStyle-level cAnimateAll, cAnimateNone.
909         * css/CSSStyleSelector.cpp:
910         (WebCore::CSSStyleSelector::mapAnimationProperty): Special-case CSSValueAll
911         and CSSValueNone values to set cAnimateAll and cAnimateNone transition properties.
912
913 2008-12-07  Antti Koivisto  <antti@apple.com>
914
915         Reviewed by Darin Adler.
916
917         https://bugs.webkit.org/show_bug.cgi?id=22717
918         Make CSS values use less memory
919         
920         Share CSSPrimitiveValue objects for commonly used values including
921         - idents
922         - colors
923         - small integers
924         
925         This reduces the amount CSSPrimitiveValue instances by > 80%.
926
927         * css/CSSPrimitiveValue.cpp:
928         (WebCore::CSSPrimitiveValue::createIdentifier):
929         (WebCore::CSSPrimitiveValue::createColor):
930         (WebCore::CSSPrimitiveValue::create):
931         * css/CSSPrimitiveValue.h:
932         (WebCore::CSSPrimitiveValue::create):
933
934 2008-12-07  Antti Koivisto  <antti@apple.com>
935
936         Reviewed by Darin Adler.
937
938         https://bugs.webkit.org/show_bug.cgi?id=22717
939         Make CSS values use less memory
940
941         Get CSSValues off from the common StyleBase base class. They don't
942         need a parent pointer or anything else there and there is no real
943         reason to have them in same data structures with other CSSOM objects.
944         
945         Disabled (instead of refactoring around the lack of common base) the ability 
946         to have style declaration blocks as CSS variable values. They don't exist in 
947         the spec so I wasn't sure if they have future or not. It would not be hard to 
948         get them back. CSS variables are in any case an experimental feature and 
949         not enabled by default.
950
951         * css/CSSInitialValue.h:
952         (WebCore::CSSInitialValue::createExplicit):
953         (WebCore::CSSInitialValue::createImplicit):
954         * css/CSSParser.cpp:
955         (WebCore::CSSParser::addVariableDeclarationBlock):
956         * css/CSSParser.h:
957         * css/CSSValue.h:
958         (WebCore::CSSValue::~CSSValue):
959         (WebCore::CSSValue::parserValue):
960         * css/CSSVariablesDeclaration.cpp:
961         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
962         (WebCore::CSSVariablesDeclaration::getVariableValue):
963         (WebCore::CSSVariablesDeclaration::removeVariable):
964         (WebCore::CSSVariablesDeclaration::addParsedVariable):
965         (WebCore::CSSVariablesDeclaration::getParsedVariable):
966         (WebCore::CSSVariablesDeclaration::getParsedVariableDeclarationBlock):
967         * css/CSSVariablesDeclaration.h:
968         (WebCore::CSSVariablesDeclaration::create):
969         * css/StyleBase.h:
970
971 2008-12-07  Dirk Schulze  <krit@webkit.org>
972
973         Reviewed by Oliver Hunt.
974
975         Add gradient and pattern support for strokeRect on canvas/Cg.
976
977         Canvas strokeRect() doesn't support gradients
978         https://bugs.webkit.org/show_bug.cgi?id=19790
979
980         Test: fast/canvas/canvas-strokeRect.html
981
982         * platform/graphics/cg/GraphicsContextCG.cpp:
983         (WebCore::GraphicsContext::strokeRect):
984
985 2008-12-06  Dirk Schulze  <krit@webkit.org>
986
987         Reviewed by Oliver Hunt.
988
989         Add support for setTransform() in canvas.
990
991         <canvas> lacks transform() and setTransform()
992         https://bugs.webkit.org/show_bug.cgi?id=16604
993
994         Test: fast/canvas/canvas-setTransform.html
995
996         * html/CanvasRenderingContext2D.cpp:
997         (WebCore::CanvasRenderingContext2D::State::State):
998         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
999         (WebCore::CanvasRenderingContext2D::setFillStyle):
1000         (WebCore::CanvasRenderingContext2D::scale):
1001         (WebCore::CanvasRenderingContext2D::rotate):
1002         (WebCore::CanvasRenderingContext2D::translate):
1003         (WebCore::CanvasRenderingContext2D::transform):
1004         (WebCore::CanvasRenderingContext2D::setTransform):
1005         (WebCore::CanvasRenderingContext2D::beginPath):
1006         (WebCore::CanvasRenderingContext2D::closePath):
1007         (WebCore::CanvasRenderingContext2D::moveTo):
1008         (WebCore::CanvasRenderingContext2D::lineTo):
1009         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
1010         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
1011         (WebCore::CanvasRenderingContext2D::arcTo):
1012         (WebCore::CanvasRenderingContext2D::arc):
1013         (WebCore::CanvasRenderingContext2D::rect):
1014         (WebCore::CanvasRenderingContext2D::fill):
1015         (WebCore::CanvasRenderingContext2D::stroke):
1016         (WebCore::CanvasRenderingContext2D::clip):
1017         (WebCore::CanvasRenderingContext2D::isPointInPath):
1018         (WebCore::CanvasRenderingContext2D::clearRect):
1019         (WebCore::CanvasRenderingContext2D::fillRect):
1020         (WebCore::CanvasRenderingContext2D::strokeRect):
1021         (WebCore::CanvasRenderingContext2D::drawImage):
1022         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
1023         (WebCore::CanvasRenderingContext2D::willDraw):
1024         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1025         * html/CanvasRenderingContext2D.h:
1026         * html/CanvasRenderingContext2D.idl:
1027         * html/HTMLCanvasElement.cpp:
1028         (WebCore::HTMLCanvasElement::baseTransform):
1029         * html/HTMLCanvasElement.h:
1030         * platform/graphics/ImageBuffer.h:
1031         (WebCore::ImageBuffer::baseTransform):
1032
1033 2008-12-06  Antti Koivisto  <antti@apple.com>
1034
1035         Reviewed by Darin Adler.
1036
1037         Also copy m_implicit field. Darin wanted this change commited separately.
1038
1039         * css/CSSProperty.h:
1040         (WebCore::CSSProperty::operator=):
1041
1042 2008-12-06  Antti Koivisto  <antti@apple.com>
1043
1044         Reviewed by Darin Adler.
1045
1046         https://bugs.webkit.org/show_bug.cgi?id=22379
1047         Make CSSOM use less memory
1048         
1049         Use vector instead of a double linked list for properties in CSSMutableStyleDeclaration.
1050         
1051         Taught setter functions to use existing slots to avoid memory moves, plus some
1052         other optimizations.
1053
1054         * WebCore.xcodeproj/project.pbxproj:
1055         * css/CSSMutableStyleDeclaration.cpp:
1056         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1057         (WebCore::CSSMutableStyleDeclaration::operator=):
1058         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
1059         (WebCore::CSSMutableStyleDeclaration::removeShorthandProperty):
1060         (WebCore::CSSMutableStyleDeclaration::removeProperty):
1061         (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
1062         (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
1063         (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
1064         (WebCore::CSSMutableStyleDeclaration::setProperty):
1065         (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
1066         (WebCore::CSSMutableStyleDeclaration::setStringProperty):
1067         (WebCore::CSSMutableStyleDeclaration::setImageProperty):
1068         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
1069         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
1070         (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
1071         (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
1072         (WebCore::CSSMutableStyleDeclaration::length):
1073         (WebCore::CSSMutableStyleDeclaration::item):
1074         (WebCore::CSSMutableStyleDeclaration::cssText):
1075         (WebCore::CSSMutableStyleDeclaration::setCssText):
1076         (WebCore::CSSMutableStyleDeclaration::merge):
1077         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
1078         (WebCore::CSSMutableStyleDeclaration::copy):
1079         (WebCore::CSSMutableStyleDeclaration::findPropertyWithId):
1080         * css/CSSMutableStyleDeclaration.h:
1081         (WebCore::CSSMutableStyleDeclarationConstIterator::operator*):
1082         (WebCore::CSSMutableStyleDeclarationConstIterator::operator->):
1083         (WebCore::CSSMutableStyleDeclarationConstIterator::operator!=):
1084         (WebCore::CSSMutableStyleDeclarationConstIterator::operator==):
1085         (WebCore::CSSMutableStyleDeclaration::create):
1086         (WebCore::CSSMutableStyleDeclaration::begin):
1087         (WebCore::CSSMutableStyleDeclaration::end):
1088         (WebCore::CSSMutableStyleDeclarationConstIterator::CSSMutableStyleDeclarationConstIterator):
1089         (WebCore::CSSMutableStyleDeclarationConstIterator::~CSSMutableStyleDeclarationConstIterator):
1090         (WebCore::CSSMutableStyleDeclarationConstIterator::operator=):
1091         (WebCore::CSSMutableStyleDeclarationConstIterator::operator++):
1092         (WebCore::CSSMutableStyleDeclarationConstIterator::operator--):
1093         * css/CSSProperty.h:
1094         (WTF::):
1095         * css/CSSStyleDeclaration.cpp:
1096         (WebCore::CSSStyleDeclaration::diff):
1097         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
1098         * css/CSSStyleSelector.cpp:
1099         (WebCore::CSSStyleSelector::resolveVariablesForDeclaration):
1100         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
1101         (WebCore::CSSStyleSelector::applyDeclarations):
1102         * dom/EventTarget.h:
1103         * editing/ApplyStyleCommand.cpp:
1104         (WebCore::StyleChange::init):
1105         (WebCore::ApplyStyleCommand::isHTMLStyleNode):
1106         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
1107         (WebCore::ApplyStyleCommand::removeCSSStyle):
1108         * editing/Editor.cpp:
1109         (WebCore::Editor::selectionStartHasStyle):
1110         (WebCore::updateState):
1111         * editing/ReplaceSelectionCommand.cpp:
1112         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
1113         * editing/markup.cpp:
1114         (WebCore::appendStartMarkup):
1115
1116 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
1117
1118         Reviewed by Antti Koivisto, Dan Bernstein
1119
1120         https://bugs.webkit.org/show_bug.cgi?id=22088
1121
1122         Fix logic related to repainting when transform changes:
1123         If an object has a layer, and the transform changes, then we need
1124         to do a repaintIncludingDescendants(), not just a repaint.
1125         
1126         Test: fast/repaint/transform-repaint-descendants.html
1127
1128         * rendering/RenderObject.cpp:
1129         (WebCore::RenderObject::styleWillChange):
1130
1131 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
1132
1133         Reviewed by Dan Bernstein
1134
1135         https://bugs.webkit.org/show_bug.cgi?id=15739
1136
1137         When painting the selection on a replaced element, paint
1138         using local coordinates so that the selection is correctly
1139         painted for transformed elements.
1140
1141         Test: fast/replaced/selection-rect-transform.html
1142
1143         * rendering/RenderReplaced.cpp:
1144         (WebCore::RenderReplaced::paint):
1145
1146 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
1147
1148         Reviewed by Dave Hyatt
1149
1150         https://bugs.webkit.org/show_bug.cgi?id=15671
1151         
1152         Fix caret rendering to behave correctly with transforms:
1153         * Rename caretRect() methods to localCaretRect() and
1154           absoluteCaretBounds() as appropriate
1155         * Fix localCaretRect() methods to return a rect in the
1156           appropriate coordinates.
1157         * Pass tx, ty down through the paintCaret() methods, after fixing them
1158           up to account for differences between contents coords, and renderer-local
1159           coords (via RenderBlock::offsetForContents()).
1160         * Remove m_caretPositionOnLayout from SelectionController, and instead
1161           call invalidateSelection() from RenderLayer::scrollToOffset(), because
1162           we can no longer assume simple x/y offsets from scrolling with transforms.
1163         * Move the logic to compute which RenderObject actually paints the caret into
1164           SelectionController::caretRenderer(), rather than having it in RenderBlock.
1165         * SelectionController now computes and caches a local caret rect. For invalidation,
1166           it computes the absolute bounds of that (possibly transformed) local rect.
1167           The local rect is computed in the coordinate system of the RenderObject that
1168           will paint the caret (this may require offsetting from the actual renderer
1169           at the start of the selection).
1170         * Fix LayoutState(RenderObject* root) to take transforms into account
1171         * Make offsetFromContainer() a virtual method on RenderObject, and implement
1172           the RenderObject version. It's used to map from selection start renderer
1173           to caret renderer.
1174
1175         Test: fast/transforms/transformed-caret.html
1176
1177         * WebCore.base.exp:
1178         * editing/DeleteSelectionCommand.cpp:
1179         (WebCore::DeleteSelectionCommand::mergeParagraphs):
1180         * editing/SelectionController.cpp:
1181         (WebCore::SelectionController::SelectionController):
1182         (WebCore::absoluteCaretY):
1183         (WebCore::SelectionController::modify):
1184         (WebCore::SelectionController::xPosForVerticalArrowNavigation):
1185         (WebCore::SelectionController::layout):
1186         (WebCore::SelectionController::caretRenderer):
1187         (WebCore::SelectionController::localCaretRect):
1188         (WebCore::SelectionController::absoluteCaretBounds):
1189         (WebCore::SelectionController::caretRepaintRect):
1190         (WebCore::SelectionController::recomputeCaretRect):
1191         (WebCore::SelectionController::invalidateCaretRect):
1192         (WebCore::SelectionController::paintCaret):
1193         (WebCore::SelectionController::caretRendersInsideNode):
1194         * editing/SelectionController.h:
1195         * editing/VisiblePosition.cpp:
1196         (WebCore::VisiblePosition::localCaretRect):
1197         (WebCore::VisiblePosition::absoluteCaretBounds):
1198         (WebCore::VisiblePosition::xOffsetForVerticalNavigation):
1199         * editing/VisiblePosition.h:
1200         * editing/mac/SelectionControllerMac.mm:
1201         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
1202         * html/HTMLElement.cpp:
1203         (WebCore::HTMLElement::isContentEditable):
1204         * page/AccessibilityRenderObject.cpp:
1205         (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
1206         * page/Frame.cpp:
1207         (WebCore::Frame::firstRectForRange):
1208         (WebCore::Frame::selectionLayoutChanged):
1209         (WebCore::Frame::paintCaret):
1210         (WebCore::Frame::paintDragCaret):
1211         (WebCore::Frame::revealSelection):
1212         (WebCore::Frame::revealCaret):
1213         * page/Frame.h:
1214         * rendering/LayoutState.cpp:
1215         (WebCore::LayoutState::LayoutState):
1216         * rendering/RenderBlock.cpp:
1217         (WebCore::RenderBlock::paintCaret):
1218         (WebCore::RenderBlock::paintObject):
1219         (WebCore::RenderBlock::positionForCoordinates):
1220         (WebCore::RenderBlock::offsetForContents):
1221         * rendering/RenderBlock.h:
1222         * rendering/RenderBox.cpp:
1223         (WebCore::RenderBox::localCaretRect):
1224         * rendering/RenderBox.h:
1225         * rendering/RenderFlow.cpp:
1226         (WebCore::RenderFlow::localCaretRect):
1227         * rendering/RenderFlow.h:
1228         * rendering/RenderLayer.cpp:
1229         (WebCore::RenderLayer::scrollToOffset):
1230         * rendering/RenderObject.cpp:
1231         (WebCore::RenderObject::localCaretRect):
1232         * rendering/RenderObject.h:
1233         * rendering/RenderSVGInlineText.cpp:
1234         (WebCore::RenderSVGInlineText::localCaretRect):
1235         * rendering/RenderSVGInlineText.h:
1236         * rendering/RenderText.cpp:
1237         (WebCore::RenderText::RenderText):
1238         (WebCore::RenderText::localCaretRect):
1239         * rendering/RenderText.h:
1240
1241 2008-12-06  David Kilzer  <ddkilzer@apple.com>
1242
1243         Bug 22711: Current svn (build 39065) fails to compile
1244
1245         <https://bugs.webkit.org/show_bug.cgi?id=22711>
1246
1247         BUILD FIX for r39065: Forgot parentheses after "document".
1248
1249         Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
1250         <https://bugs.webkit.org/show_bug.cgi?id=22666>
1251
1252         * svg/SVGFEImageElement.cpp:
1253         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Changed
1254         document to document().
1255
1256 2008-12-06  Dmitry Titov  <dimich@chromium.org>
1257
1258         Reviewed by Alexey Proskuryakov.
1259
1260         https://bugs.webkit.org/show_bug.cgi?id=22710
1261         Memory leak due to circular reference Document->DOMTimer->ScheduledAction->[JS objects]->Document
1262
1263         * bindings/js/DOMTimer.cpp:
1264         (WebCore::DOMTimer::stop): Delete ScheduledAction, which contains a protected object.
1265
1266 2008-12-06  David Kilzer  <ddkilzer@apple.com>
1267
1268         Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
1269
1270         <https://bugs.webkit.org/show_bug.cgi?id=22666>
1271
1272         Reviewed by Darin Adler.
1273
1274         When creating a webarchive from WebCore::LegacyWebArchive::create(),
1275         HashSet<String>, Vector<KURL> and Vector<String> were all used to
1276         store a list of URLs for resources found in the document.  Instead
1277         use a single ListHashSet<KURL> to store the list and resolve the
1278         relative URLs as they're added.  We use a new inline method called
1279         WebCore::addSubresourceURL() to add KURL objects to the ListHashSet
1280         to prevent "null" KURL objects from crashing in the KURL hashing
1281         function.
1282
1283         * WebCore.base.exp: Changed export of
1284         WebCore::Node::getSubresourceURLs() to take a ListHashSet<KURL>
1285         argument instead of a Vector<KURL>.
1286
1287         * WebCore.xcodeproj/project.pbxproj: Marked KURLHash.h as a private
1288         header for use in WebKit.
1289
1290         * css/CSSStyleSheet.cpp:
1291         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Renamed from
1292         addSubresourceURLStrings().  Changed to use ListHashSet<KURL>
1293         instead of HashSet<String>.  Cleaned up code.
1294         * css/CSSStyleSheet.h:
1295         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Ditto.
1296         * css/StyleSheet.h:
1297         (WebCore::StyleSheet::addSubresourceStyleURLs): Ditto.
1298
1299         * dom/Node.cpp:
1300         (WebCore::Node::getSubresourceURLs): Changed to use
1301         ListHashSet<KURL> instead of Vector<KURL>.  Cleaned up code.
1302         * dom/Node.h:
1303         (WebCore::Node::getSubresourceURLs): Ditto.
1304         (WebCore::Node::addSubresourceAttributeURLs): Renamed from
1305         getSubresourceAttributeStrings().  Changed to use ListHashSet<KURL>
1306         instead of Vector<String>.
1307         (WebCore::addSubresourceURL): Added.  Safely adds new KURL objects
1308         to a ListHashSet<KURL> object.  A "null" KURL object will cause the
1309         hash function to crash since it contains a null StringImpl.  Used in
1310         Node::addSubresourceAttributeURLs() and addSubresourceStyleURLs() in
1311         the style subsystem.
1312
1313         * dom/ProcessingInstruction.cpp:
1314         (WebCore::ProcessingInstruction::addSubresourceAttributeURLs):
1315         Renamed from getSubresourceAttributeStrings().  Changed to use
1316         ListHashSet<KURL> instead of Vector<String>.  Use
1317         WebCore::addSubresourceURL() to add new KURL objects.
1318         * dom/ProcessingInstruction.h: Ditto.
1319         * html/HTMLBodyElement.cpp:
1320         (WebCore::HTMLBodyElement::addSubresourceAttributeURLs): Ditto.
1321         * html/HTMLBodyElement.h: Ditto.
1322         * html/HTMLEmbedElement.cpp:
1323         (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs): Ditto.
1324         * html/HTMLEmbedElement.h: Ditto.
1325         * html/HTMLImageElement.cpp:
1326         (WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.
1327         * html/HTMLImageElement.h: Ditto.
1328         * html/HTMLInputElement.cpp:
1329         (WebCore::HTMLInputElement::addSubresourceAttributeURLs): Ditto.
1330         * html/HTMLInputElement.h: Ditto.
1331         * html/HTMLLinkElement.cpp:
1332         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): Ditto.
1333         * html/HTMLLinkElement.h: Ditto.
1334         * html/HTMLObjectElement.cpp:
1335         (WebCore::HTMLObjectElement::addSubresourceAttributeURLs): Ditto.
1336         * html/HTMLObjectElement.h: Ditto.
1337         * html/HTMLParamElement.cpp:
1338         (WebCore::HTMLParamElement::addSubresourceAttributeURLs): Ditto.
1339         * html/HTMLParamElement.h: Ditto.
1340         * html/HTMLScriptElement.cpp:
1341         (WebCore::HTMLScriptElement::addSubresourceAttributeURLs): Ditto.
1342         * html/HTMLScriptElement.h: Ditto.
1343         * html/HTMLStyleElement.cpp:
1344         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs): Ditto.
1345         * html/HTMLStyleElement.h: Ditto.
1346         * html/HTMLTableCellElement.cpp:
1347         (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs): Ditto.
1348         * html/HTMLTableCellElement.h: Ditto.
1349         * html/HTMLTableElement.cpp:
1350         (WebCore::HTMLTableElement::addSubresourceAttributeURLs): Ditto.
1351         * html/HTMLTableElement.h: Ditto.
1352
1353         * loader/archive/cf/LegacyWebArchive.cpp:
1354         (WebCore::LegacyWebArchive::create): Changed from using
1355         HashSet<String> to ListHashSet<KURL> for tracking unique
1356         subresources.  Changed from using Vector<KURL> to ListHashSet<KURL>
1357         when calling WebCore::Node::getSubresourceURLs().  Cleaned up code.
1358
1359         * svg/SVGCursorElement.cpp:
1360         (WebCore::SVGCursorElement::addSubresourceAttributeURLs): Renamed
1361         from getSubresourceAttributeStrings().  Changed to use
1362         ListHashSet<KURL> instead of Vector<String>.  Use
1363         WebCore::addSubresourceURL() to add new KURL objects.
1364         * svg/SVGCursorElement.h: Ditto.
1365         * svg/SVGFEImageElement.cpp:
1366         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Ditto.
1367         * svg/SVGFEImageElement.h: Ditto.
1368         * svg/SVGImageElement.cpp:
1369         (WebCore::SVGImageElement::addSubresourceAttributeURLs): Ditto.
1370         * svg/SVGImageElement.h: Ditto.
1371         * svg/SVGScriptElement.cpp:
1372         (WebCore::SVGScriptElement::addSubresourceAttributeURLs): Ditto.
1373         * svg/SVGScriptElement.h: Ditto.
1374
1375 2008-12-05  Brett Wilson  <brettw@chromium.org>
1376
1377         Reviewed by Darin Adler.
1378
1379         Make the page group use the proper link hashing functions rather than
1380         calling the string hash functions directly. Add Chromium-specfic ifdefs
1381         in the visited link computation functions to allow integration.
1382
1383         * page/PageGroup.cpp:
1384         (WebCore::PageGroup::isLinkVisited):
1385         (WebCore::PageGroup::addVisitedLink):
1386         * platform/LinkHash.cpp:
1387         (WebCore::visitedLinkHash):
1388         * platform/LinkHash.h:
1389
1390 2008-12-05  Chris Marrin  <cmarrin@apple.com>
1391
1392         Reviewed by Dave Hyatt.
1393
1394         Fix for https://bugs.webkit.org/show_bug.cgi?id=22635
1395         For iteration and end events, previous fixes to prevent the deletion of
1396         Animation objects (ref counting and hanging onto a ref during event callbacks)
1397         was sufficient to prevent dangling pointers. But start events are sent in
1398         the styleAvailable() call, which iterates over CompositeAnimation objects,
1399         which are not ref counted. So that object can get destroyed in the event
1400         handler while still active. So I added refcounting for CompositeAnimations.
1401
1402         Additionally, when am iterating over the CompositingAnimation list, it can
1403         be deleted, which mutates the list. So I now make one pass over the list
1404         building a vector of CompositeAnimation objects that need to be called and
1405         then iterate over that vector to make the actual calls.
1406
1407         Finally, to make sure the lifetime of the CompositeAnimation exceeds that of
1408         the Animation objects it owns, I now keep a ref to the CompositeAnimation
1409         in the timer callback for the iteration and end events. That means I no
1410         longer need to keep a ref to the Animation objects themselves in that timer
1411         callback, since the CompositeAnimation already has one.
1412
1413         Tests: animations/animation-iteration-event-destroy-renderer.html
1414                animations/animation-start-event-destroy-renderer.html
1415
1416         * page/animation/AnimationBase.cpp:
1417         (WebCore::AnimationBase::updateStateMachine):
1418         (WebCore::AnimationBase::animationTimerCallbackFired):
1419         * page/animation/AnimationController.cpp:
1420         (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
1421         (WebCore::AnimationControllerPrivate::accessCompositeAnimation):
1422         (WebCore::AnimationControllerPrivate::clear):
1423         (WebCore::AnimationControllerPrivate::styleAvailable):
1424         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
1425         (WebCore::AnimationControllerPrivate::animationTimerFired):
1426         (WebCore::AnimationControllerPrivate::isAnimatingPropertyOnRenderer):
1427         (WebCore::AnimationControllerPrivate::suspendAnimations):
1428         (WebCore::AnimationControllerPrivate::resumeAnimations):
1429         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
1430         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
1431         (WebCore::AnimationController::updateAnimations):
1432         (WebCore::AnimationController::setAnimationStartTime):
1433         (WebCore::AnimationController::setTransitionStartTime):
1434         * page/animation/CompositeAnimation.cpp:
1435         (WebCore::CompositeAnimationPrivate::animationController):
1436         (WebCore::CompositeAnimationPrivate::isWaitingForStyleAvailable):
1437         (WebCore::CompositeAnimationPrivate::~CompositeAnimationPrivate):
1438         (WebCore::CompositeAnimationPrivate::clearRenderer):
1439         (WebCore::CompositeAnimation::clearRenderer):
1440         (WebCore::CompositeAnimation::animationController):
1441         (WebCore::CompositeAnimation::isWaitingForStyleAvailable):
1442         * page/animation/CompositeAnimation.h:
1443         (WebCore::CompositeAnimation::create):
1444
1445 2008-12-05  David Kilzer  <ddkilzer@apple.com>
1446
1447         Bug 22609: Provide a build-time choice when generating hash tables for properties of built-in DOM objects
1448
1449         <https://bugs.webkit.org/show_bug.cgi?id=22609>
1450         <rdar://problem/6331749>
1451
1452         Reviewed by Darin Adler.
1453
1454         Initial patch by Yosen Lin.  Adapted for ToT WebKit by David Kilzer.
1455
1456         Added back the code that generates a "compact" hash (instead of a
1457         perfect hash) as a build-time option using the
1458         ENABLE(PERFECT_HASH_SIZE) macro as defined in Lookup.h.
1459
1460         * bindings/scripts/CodeGeneratorJS.pm:
1461         (GenerateImplementation): Compute the number of elements that will
1462         be stored in each hash table and pass it to GenerateHashTable().
1463         (GenerateHashTable): Added new second parameter representing the
1464         number of elements to store in the compact hash table.  Added back
1465         code to compute compact hash tables.  Generate both hash table sizes
1466         and emit conditionalized code based on ENABLE(PERFECT_HASH_SIZE).
1467
1468 2008-12-05  Brett Wilson  <brettw@chromium.org>
1469
1470         Fix build bustage from previous patch.
1471
1472         * css/CSSSelector.h:
1473
1474 2008-12-05  Brett Wilson  <brettw@chromium.org>
1475
1476         Reviewed by Eric Seidel.
1477
1478         Add a missing include for OwnPtr to make CSSSelector compile without
1479         precompiled headers.
1480
1481         * css/CSSSelector.h:
1482
1483 2008-12-05  Finnur Thorarinsson  <finnur.webkit@gmail.com>
1484
1485         Reviewed by Darin Adler.
1486
1487         Bug 22579: Providing a function to ScrollbarClient.h which allows us to get at the tickmarks
1488         without relying on high-level WebCore types, as requested by Dave Hyatt.
1489         
1490         No functional changes, thus no test cases.
1491
1492         * page/FrameView.cpp:
1493         (WebCore::FrameView::getTickmarks):
1494         * page/FrameView.h:
1495         * platform/ScrollbarClient.h:
1496
1497 2008-12-05  Dean Jackson  <dino@apple.com>
1498
1499         Reviewed by David Hyatt.
1500
1501         Make sure Window event listeners also tell the
1502         Document about the event type, so noisy events
1503         will be dispatched even if nothing in the document
1504         is listening.
1505         https://bugs.webkit.org/show_bug.cgi?id=20572
1506
1507         * dom/Document.cpp:
1508         (WebCore::Document::addWindowEventListener):
1509
1510 2008-12-05  Adam Roben  <aroben@apple.com>
1511
1512         Windows build fix after r39026
1513
1514         * platform/network/cf/ResourceRequestCFNet.cpp:
1515         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1516         (WebCore::ResourceRequest::doUpdateResourceRequest):
1517         Add some missing .get()s.
1518
1519 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1520
1521         Tiger build fix.
1522
1523         * platform/network/mac/ResourceRequestMac.mm: Define NSUInteger.
1524
1525 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1526
1527         Reviewed by Darin Adler.
1528
1529         <rdar://problem/6405599> Tiger Mail crashes when using "Mail Contents of This Page"
1530         in Safari before opening a mail message in Mail
1531
1532         * platform/mac/WebCoreObjCExtras.mm:
1533         (WebCoreObjCFinalizeOnMainThread):
1534         Don't call initializeThreading: we now expect the caller to do it, to simplify keeping
1535         Tiger and post-Tiger behavior in line.
1536
1537         * bindings/objc/DOMRGBColor.mm:
1538         (+[DOMRGBColor initialize]):
1539         * bindings/objc/WebScriptObject.mm:
1540         (+[WebScriptObject initialize]):
1541         * page/mac/AccessibilityObjectWrapper.mm:
1542         (+[AccessibilityObjectWrapper initialize]):
1543         * platform/mac/SharedBufferMac.mm:
1544         (+[WebCoreSharedBufferData initialize]):
1545         Call JSC::initializeThreading();
1546
1547 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1548
1549         Reviewed by Darin Adler.
1550
1551         <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled
1552
1553         * platform/network/ResourceRequestBase.cpp:
1554         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
1555         * platform/network/ResourceRequestBase.h:
1556         * platform/network/cf/ResourceRequestCFNet.cpp:
1557         (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
1558         (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
1559         (WebCore::setContentDispositionEncodingFallbackArray):
1560         (WebCore::copyContentDispositionEncodingFallbackArray):
1561         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1562         (WebCore::ResourceRequest::doUpdateResourceRequest):
1563         * platform/network/mac/ResourceRequestMac.mm:
1564         (WebCore::ResourceRequest::doUpdateResourceRequest):
1565         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1566         Added a way to specify encoding fallback list for Content-Disposition header.
1567
1568         * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Generate and
1569         pass a list of encodings to try when decoding Content-Disposition header, as described
1570         in comments.
1571
1572 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1573
1574         Reviewed by Darin Adler.
1575
1576         https://bugs.webkit.org/show_bug.cgi?id=22672
1577         ASSERT(m_table) when xhr.onabort creates another xhr or calls setTimeout
1578
1579         Test: http/tests/xmlhttprequest/send-on-abort.html
1580
1581         * dom/ScriptExecutionContext.cpp:
1582         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
1583         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
1584         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
1585         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
1586         Add a comment explaining that ActiveDOMObject methods shouldn't execute arbitrary JS.
1587
1588         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::stop): Don't dispatch events. This
1589         reverts a recent change that made the behavior slightly closer to Firefox - but the
1590         compatibility effect should be very minor if any, and Firefox itself behaves inconsistently.
1591
1592 2008-12-05  Tobias König <tobias.koenig@nokia.com>
1593
1594         Reviewed by Simon Hausmann.
1595
1596         Record required package dependencies for the Qt build for a correct
1597         pkg-config file.
1598
1599         * WebCore.pro:
1600
1601 2008-12-05  Tor Arne Vestbø  <tavestbo@trolltech.com>
1602
1603         Rubber-stamped by Simon Hausmann.
1604
1605         [Qt/Mac] Blacklist QuickTime plugin until we support the QuickDraw drawing model
1606
1607         * plugins/mac/PluginPackageMac.cpp:
1608         (WebCore::PluginPackage::fetchInfo):
1609         (WebCore::PluginPackage::isPluginBlacklisted):
1610
1611 2008-12-05  Jungshik Shin  <jshin@chromium.org>
1612
1613         Reviewed by Alexey Proskuryakov.
1614
1615         https://bugs.webkit.org/show_bug.cgi?id=22472
1616
1617         Revises charset alias map for TextCodecICU.
1618         - Uses windows-949 and windows-874 instead of windows-949-2000 and windows-874-2000
1619         - Replaces 'windows874' in a couple of place with 'windows-874' (for the canonical name)
1620         - Maps 'dos-874' to 'windows-874'. Currently, it's aliases to 'cp874', which is in turn
1621           mapped to 'TIS-620'. 'TIS-620' is manually aliased to 'windows-874'. We'd better directly
1622           alias 'dos-874' to 'windows-874'.
1623         - Replaces 'EUC-CN' with 'GBK' when it's used as the canonical name.
1624           Similar to the above case, we're getting rid of indirection that eventually leads to 'GBK' by
1625           directly going to 'GBK'.
1626         - Adds 'x-uhc' as an alias for 'windows-949'. It's used in some web pages.
1627
1628         Tests: fast/encoding/char-decoding-mac.html
1629                fast/encoding/char-decoding.html
1630
1631         * platform/text/TextCodecICU.cpp:
1632         (WebCore::TextCodecICU::registerExtendedEncodingNames):
1633
1634 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
1635
1636         Reviewed by Kevin Ollivier.
1637
1638         Add a MIME mapping for the .htm extension to wx and GTK ports.
1639         
1640         https://bugs.webkit.org/show_bug.cgi?id=22668
1641         
1642         * platform/gtk/MIMETypeRegistryGtk.cpp:
1643         (WebCore::):
1644         * platform/wx/MimeTypeRegistryWx.cpp:
1645         (WebCore::):
1646
1647 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
1648
1649         Reviewed by Kevin Ollivier.
1650
1651         Implement basic text paste support in wx and add notImplemented stubs
1652         to catch other methods.
1653         
1654         https://bugs.webkit.org/show_bug.cgi?id=22667
1655
1656         * platform/wx/PasteboardWx.cpp:
1657         (WebCore::Pasteboard::canSmartReplace):
1658         (WebCore::Pasteboard::plainText):
1659         (WebCore::Pasteboard::documentFragment):
1660         (WebCore::Pasteboard::writeImage):
1661
1662 2008-12-04  Kevin Ollivier  <kevino@theolliviers.com>
1663
1664         wx build fix for !USE(WXGC) build config.
1665
1666         * platform/graphics/wx/PathWx.cpp:
1667         (WebCore::Path::contains):
1668         (WebCore::Path::addLineTo):
1669         (WebCore::Path::addQuadCurveTo):
1670         (WebCore::Path::addBezierCurveTo):
1671         (WebCore::Path::addArcTo):
1672         (WebCore::Path::closeSubpath):
1673         (WebCore::Path::addArc):
1674         (WebCore::Path::addRect):
1675         (WebCore::Path::addEllipse):
1676         (WebCore::Path::transform):
1677         (WebCore::Path::apply):
1678         (WebCore::Path::isEmpty):
1679
1680 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
1681
1682         Reviewed by Kevin Ollivier.
1683
1684         Turn off styled controls until we can implement them properly.
1685         
1686         https://bugs.webkit.org/show_bug.cgi?id=22662
1687
1688         * platform/wx/RenderThemeWx.cpp:
1689         (WebCore::RenderThemeWx::isControlStyled):
1690
1691 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
1692
1693         Reviewed by Kevin Ollivier.
1694
1695         wx implementations for Path API.
1696
1697         https://bugs.webkit.org/show_bug.cgi?id=22661
1698
1699         * platform/graphics/wx/PathWx.cpp:
1700         (WebCore::Path::~Path):
1701         (WebCore::Path::contains):
1702         (WebCore::Path::addLineTo):
1703         (WebCore::Path::addQuadCurveTo):
1704         (WebCore::Path::addBezierCurveTo):
1705         (WebCore::Path::addArcTo):
1706         (WebCore::Path::closeSubpath):
1707         (WebCore::Path::addArc):
1708         (WebCore::Path::addRect):
1709         (WebCore::Path::addEllipse):
1710         (WebCore::Path::transform):
1711         (WebCore::Path::isEmpty):
1712
1713 2008-12-04  Julien Chaffraix  <jchaffraix@webkit.org>
1714
1715         Reviewed by Eric Seidel.
1716
1717         Bug 22564: Make HTML elements' constructors take a QualifiedName
1718         https://bugs.webkit.org/show_bug.cgi?id=22564
1719
1720         Updated the remaining constructors.
1721
1722         * bindings/js/JSImageConstructor.cpp:
1723         (WebCore::constructImage):
1724         * dom/Document.cpp:
1725         (WebCore::Document::getCSSCanvasElement):
1726         * editing/DeleteButton.cpp:
1727         (WebCore::DeleteButton::DeleteButton):
1728         * html/HTMLAppletElement.cpp:
1729         (WebCore::HTMLAppletElement::HTMLAppletElement):
1730         * html/HTMLAppletElement.h:
1731         * html/HTMLAreaElement.cpp:
1732         (WebCore::HTMLAreaElement::HTMLAreaElement):
1733         * html/HTMLAreaElement.h:
1734         * html/HTMLBaseFontElement.cpp:
1735         (WebCore::HTMLBaseFontElement::HTMLBaseFontElement):
1736         * html/HTMLBaseFontElement.h:
1737         * html/HTMLCanvasElement.cpp:
1738         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
1739         * html/HTMLCanvasElement.h:
1740         * html/HTMLElementFactory.cpp:
1741         (WebCore::hrConstructor):
1742         (WebCore::paragraphConstructor):
1743         (WebCore::basefontConstructor):
1744         (WebCore::fontConstructor):
1745         (WebCore::anchorConstructor):
1746         (WebCore::imageConstructor):
1747         (WebCore::mapConstructor):
1748         (WebCore::areaConstructor):
1749         (WebCore::canvasConstructor):
1750         (WebCore::appletConstructor):
1751         (WebCore::embedConstructor):
1752         (WebCore::objectConstructor):
1753         (WebCore::paramConstructor):
1754         (WebCore::scriptConstructor):
1755         (WebCore::tableConstructor):
1756         (WebCore::tableCaptionConstructor):
1757         (WebCore::tableRowConstructor):
1758         * html/HTMLEmbedElement.cpp:
1759         (WebCore::HTMLEmbedElement::HTMLEmbedElement):
1760         * html/HTMLEmbedElement.h:
1761         * html/HTMLFontElement.cpp:
1762         (WebCore::HTMLFontElement::HTMLFontElement):
1763         * html/HTMLFontElement.h:
1764         * html/HTMLHRElement.cpp:
1765         (WebCore::HTMLHRElement::HTMLHRElement):
1766         * html/HTMLHRElement.h:
1767         * html/HTMLImageElement.cpp:
1768         (WebCore::HTMLImageElement::HTMLImageElement):
1769         * html/HTMLImageElement.h:
1770         * html/HTMLMapElement.cpp:
1771         (WebCore::HTMLMapElement::HTMLMapElement):
1772         * html/HTMLMapElement.h:
1773         * html/HTMLObjectElement.cpp:
1774         (WebCore::HTMLObjectElement::HTMLObjectElement):
1775         * html/HTMLObjectElement.h:
1776         * html/HTMLParagraphElement.cpp:
1777         (WebCore::HTMLParagraphElement::HTMLParagraphElement):
1778         * html/HTMLParagraphElement.h:
1779         * html/HTMLParamElement.cpp:
1780         (WebCore::HTMLParamElement::HTMLParamElement):
1781         * html/HTMLParamElement.h:
1782         * html/HTMLParser.cpp:
1783         (WebCore::HTMLParser::handleError):
1784         (WebCore::HTMLParser::mapCreateErrorCheck):
1785         (WebCore::HTMLParser::handleIsindex):
1786         * html/HTMLScriptElement.cpp:
1787         (WebCore::HTMLScriptElement::HTMLScriptElement):
1788         * html/HTMLScriptElement.h:
1789         * html/HTMLTableCaptionElement.cpp:
1790         (WebCore::HTMLTableCaptionElement::HTMLTableCaptionElement):
1791         * html/HTMLTableCaptionElement.h:
1792         * html/HTMLTableElement.cpp:
1793         (WebCore::HTMLTableElement::HTMLTableElement):
1794         (WebCore::HTMLTableElement::createCaption):
1795         (WebCore::HTMLTableElement::insertRow):
1796         * html/HTMLTableElement.h:
1797         * html/HTMLTableRowElement.cpp:
1798         (WebCore::HTMLTableRowElement::HTMLTableRowElement):
1799         * html/HTMLTableRowElement.h:
1800         * html/HTMLTableSectionElement.cpp:
1801         (WebCore::HTMLTableSectionElement::insertRow):
1802         * html/HTMLViewSourceDocument.cpp:
1803         (WebCore::HTMLViewSourceDocument::createContainingTable):
1804         (WebCore::HTMLViewSourceDocument::addLine):
1805         * loader/ImageDocument.cpp:
1806         (WebCore::ImageDocumentElement::ImageDocumentElement):
1807
1808 2008-12-04  Eric Seidel  <eric@webkit.org>
1809
1810         No review, build fix only.
1811
1812         Add file missing from last commit.
1813
1814         * bindings/js/ScriptState.h: Added.
1815
1816 2008-12-04  Dimitri Glazkov  <dglazkov@chromium.org>
1817
1818         Reviewed by Geoff Garen.
1819
1820         Implement ScriptState abstraction (initially, a simple typedef)
1821         as means of carrying exception information across bindings boundaries
1822         and in a script engine-independent way.
1823
1824         * WebCore.vcproj/WebCore.vcproj:
1825         * WebCore.xcodeproj/project.pbxproj:
1826         * bindings/js/JSDOMBinding.cpp:
1827         (WebCore::scriptStateFromNode):
1828         * bindings/js/JSDOMBinding.h:
1829         * bindings/js/JSNodeFilterCondition.h:
1830         * bindings/js/ScriptState.h: Added.
1831         * dom/NodeFilter.cpp:
1832         (WebCore::NodeFilter::acceptNode):
1833         * dom/NodeFilter.h:
1834         (WebCore::NodeFilter::acceptNode):
1835         * dom/NodeFilterCondition.cpp:
1836         (WebCore::NodeFilterCondition::acceptNode):
1837         * dom/NodeFilterCondition.h:
1838         * dom/NodeIterator.cpp:
1839         (WebCore::NodeIterator::nextNode):
1840         (WebCore::NodeIterator::previousNode):
1841         * dom/NodeIterator.h:
1842         (WebCore::NodeIterator::nextNode):
1843         (WebCore::NodeIterator::previousNode):
1844         * dom/Traversal.cpp:
1845         (WebCore::Traversal::acceptNode):
1846         * dom/Traversal.h:
1847         * dom/TreeWalker.cpp:
1848         (WebCore::TreeWalker::parentNode):
1849         (WebCore::TreeWalker::firstChild):
1850         (WebCore::TreeWalker::lastChild):
1851         (WebCore::TreeWalker::previousSibling):
1852         (WebCore::TreeWalker::nextSibling):
1853         (WebCore::TreeWalker::previousNode):
1854         (WebCore::TreeWalker::nextNode):
1855         * dom/TreeWalker.h:
1856         (WebCore::TreeWalker::parentNode):
1857         (WebCore::TreeWalker::firstChild):
1858         (WebCore::TreeWalker::lastChild):
1859         (WebCore::TreeWalker::previousSibling):
1860         (WebCore::TreeWalker::nextSibling):
1861         (WebCore::TreeWalker::previousNode):
1862         (WebCore::TreeWalker::nextNode):
1863
1864 2008-12-04  Pierre-Olivier Latour  <pol@apple.com>
1865
1866         Reviewed by Dan Bernstein.
1867
1868         Fixed pauseTransitionAtTimeOnElementWithId() in DRT asserting when passed invalid property name
1869         and potential similar issue with pauseAnimationAtTimeOnElementWithId().
1870
1871         https://bugs.webkit.org/show_bug.cgi?id=22641
1872
1873         * page/animation/CompositeAnimation.cpp:
1874         (WebCore::CompositeAnimationPrivate::pauseAnimationAtTime):
1875         (WebCore::CompositeAnimationPrivate::pauseTransitionAtTime):
1876
1877 2008-12-04  Dimitri Glazkov  <dglazkov@chromium.org>
1878
1879         Reviewed by Darin Adler.
1880
1881         Remove unused Completion.h include.
1882
1883         * html/CanvasRenderingContext2D.cpp: Removed Completion.h include.
1884
1885 2008-11-13  David Hyatt  <hyatt@apple.com>
1886
1887         Fix a bug in ScrollView's refactoring.  An isVisible check should have been isSelfVisible.
1888
1889         Reviewed by Darin Adler
1890
1891         * platform/ScrollView.cpp:
1892         (WebCore::ScrollView::setParentVisible):
1893
1894 2008-12-04  Friedemann Kleint  <friedemann.kleint@nokia.com>
1895
1896         Reviewed by Tor Arne Vestbø.
1897
1898         Fix small translation glitch in the Qt file chooser.
1899
1900         * platform/qt/FileChooserQt.cpp:
1901         (WebCore::FileChooser::basenameForWidth):
1902
1903 2008-12-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
1904
1905         Rubber-stamped by Simon Hausmann.
1906
1907         Blacklist Silverlight plugin on Qt/Mac until supported
1908
1909         Currently the plugin crashes with a corrupted stack trace, possibly
1910         related to https://bugs.webkit.org/show_bug.cgi?id=20635
1911
1912         * plugins/mac/PluginPackageMac.cpp:
1913         (WebCore::PluginPackage::fetchInfo):
1914         (WebCore::PluginPackage::isPluginBlacklisted):
1915
1916 2008-12-03  Dmitry Titov  <dimich@chromium.org>
1917
1918         Reviewed by Alexey Proskuryakov.
1919
1920         Fix non-Mac build.
1921
1922         * page/Chrome.cpp: (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
1923
1924 2008-12-03  David Levin  <levin@chromium.org>
1925
1926         Reviewed by Alexey Proskuryakov.
1927
1928         Remove uses of document() in XMLHttpRequest where simple.
1929         https://bugs.webkit.org/show_bug.cgi?id=22619
1930
1931         * xml/XMLHttpRequest.cpp:
1932         (WebCore::XMLHttpRequest::responseXML):
1933         Return NULL in the worker case which is according to spec (and avoids using document()).
1934
1935         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
1936         (WebCore::XMLHttpRequest::initSend):
1937         Use scriptExecutionContext() instead of document().
1938
1939 2008-12-03  David Levin  <levin@chromium.org>
1940
1941         Reviewed by Alexey Proskuryakov.
1942
1943         Make ScriptExecutionContextTaskWorkerTask::performTask a pure virtual function.
1944         https://bugs.webkit.org/show_bug.cgi?id=22642
1945
1946         * dom/Document.cpp:
1947         (WebCore::ScriptExecutionContextTaskTimer::ScriptExecutionContextTaskTimer):
1948         (WebCore::ScriptExecutionContextTaskTimer::fired):
1949         (WebCore::PerformTaskContext::PerformTaskContext):
1950         (WebCore::performTask):
1951         (WebCore::Document::postTask):
1952         * dom/Document.h:
1953         * dom/ScriptExecutionContext.cpp:
1954         * dom/ScriptExecutionContext.h:
1955         * dom/WorkerContext.cpp:
1956         (WebCore::ScriptExecutionContextTaskWorkerTask::create):
1957         (WebCore::ScriptExecutionContextTaskWorkerTask::ScriptExecutionContextTaskWorkerTask):
1958         (WebCore::ScriptExecutionContextTaskWorkerTask::performTask):
1959         (WebCore::WorkerContext::postTask):
1960         * dom/WorkerContext.h:
1961
1962 2008-12-03  Dmitry Titov  <dimich@chromium.org>
1963
1964         Reviewed by Alexey Proskuryakov.
1965
1966         Using ActiveDOMObject as base class for DOMTimer.
1967         https://bugs.webkit.org/show_bug.cgi?id=22620
1968
1969         Using ActiveDOMObject simplifies the code because ActiveDOMObject
1970         is wired for stop/pause/resume on loading/unloading/caching the page etc
1971         so the timer-specific code that does the same can be removed.
1972         In addition, timers can be now paused/resumed 'in place' which
1973         makes it unnecessary to 'serialize' them into special PausedTimeouts
1974         instance, so pause/resumeTimeouts implementation in JSDOMWindowBase can also be removed.
1975         Also, moving TimeoutMap from JSDOMWindowBase to Document matches lifetime
1976         of timeouts and makes it possible to not roundtrip them via PausedTimeouts 
1977         every time when JSDOMWindow wrapper is destroyed while the page is in the b/f cache.
1978
1979         Timeouts are now paused with other ActiveDOMObjects:
1980         - before creating CachedPage in FrameLoader::commitProvisionalLoad()
1981         - in JavaScriptDebugServer::setJavaScriptPaused
1982         - during modal UI operations in Chrome::*
1983         this is equivalent to previous usage of JSDOMWindowBase::pauseTimeouts()
1984
1985         Timeouts are stopped to prevent future firing from:
1986         - FrameLoader::clear()
1987         - FrameLoader::frameDetached()
1988         this is equivalent to previous usage of JSDOMWindowBase::clearAllTimeouts()
1989
1990         This is also one of the steps to having timers in Workers. See the plan of
1991         the next steps in the bug above.
1992
1993         * bindings/js/DOMTimer.cpp:
1994         (WebCore::DOMTimer::DOMTimer):
1995         (WebCore::DOMTimer::fired):
1996         (WebCore::DOMTimer::hasPendingActivity):
1997         (WebCore::DOMTimer::contextDestroyed):
1998         (WebCore::DOMTimer::stop):
1999         (WebCore::DOMTimer::suspend):
2000         (WebCore::DOMTimer::resume):
2001         (WebCore::DOMTimer::canSuspend): Implemented ActiveDOMObject methods.
2002
2003         * bindings/js/DOMTimer.h:
2004         * bindings/js/JSDOMBinding.cpp: ActiveDOMObject can have no JS wrapper
2005         (WebCore::markActiveObjectsForContext): 
2006
2007         * bindings/js/JSDOMWindowBase.cpp:
2008         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
2009         (WebCore::JSDOMWindowBase::clear):
2010         (WebCore::JSDOMWindowBase::installTimeout):
2011         (WebCore::JSDOMWindowBase::removeTimeout):
2012         (WebCore::JSDOMWindowBase::timerFired):
2013         (WebCore::JSDOMWindowBase::disconnectFrame):
2014         * bindings/js/JSDOMWindowBase.h:
2015         * bindings/js/ScriptController.cpp:
2016         * bindings/js/ScriptController.h:
2017
2018         * dom/Document.cpp: Document now holds a hash map id->timeout
2019         (WebCore::Document::addTimeout):
2020         (WebCore::Document::removeTimeout):
2021         (WebCore::Document::findTimeout):
2022         * dom/Document.h:
2023         * history/CachedPage.cpp:
2024         (WebCore::CachedPage::CachedPage):
2025         (WebCore::CachedPage::restore):
2026         (WebCore::CachedPage::clear):
2027         * history/CachedPage.h:
2028         * inspector/JavaScriptDebugServer.cpp:
2029         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
2030         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
2031         * inspector/JavaScriptDebugServer.h:
2032
2033         * loader/FrameLoader.cpp:
2034         (WebCore::FrameLoader::commitProvisionalLoad): 
2035         removed clearAllTimeouts since all ActiveDOMObjects will be stopped in FrameLoader::clear();
2036         I don't see how the old comment can be correct - the code in the same method proceeds to invoke 'onunload'
2037         and then calls into client which can be external code and can cause any active object created in onunload
2038         to fire. We can stop them all before firing onunload but it does not make a lot of sense.
2039         I have a test to go with the next patch which verifies that timers set in onunload do not fire.
2040
2041         (WebCore::FrameLoader::open):
2042         * page/Chrome.cpp:
2043         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
2044         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
2045
2046 2008-12-03  Justin Garcia  <justin.garcia@apple.com>
2047
2048         Reviewed by Beth Dakin.
2049
2050         <rdar://problem/6018653> Extra blank line when pasting paragraph in plain text
2051         
2052         In SnowLeopard, Mail occasionally adds an empty, unstyled paragraph at the
2053         end of pasted content so that users don't get stuck with non-standard pargraph
2054         spacing.  This content threw off our handling of interchange newlines.  Any interchange
2055         newline, regardless of it's position in the incoming fragment was considered to be
2056         "at the start" of the fragment, and would result in us inserting in a newline before 
2057         inserted content.  This patch makes the checks for interchange newlines more strict, 
2058         and treats interchange newlines found elsewhere as normal <br>s.
2059
2060         * editing/ReplaceSelectionCommand.cpp:
2061         (WebCore::ReplacementFragment::ReplacementFragment):
2062         (WebCore::ReplacementFragment::removeInterchangeNodes):
2063         * editing/VisiblePosition.cpp:
2064         (WebCore::VisiblePosition::init):
2065         (WebCore::VisiblePosition::canonicalPosition):
2066         * editing/VisiblePosition.h:
2067
2068 2008-12-03  Eric Seidel  <eric@webkit.org>
2069
2070         Rubber-stamped by David Hyatt.
2071
2072         Bring the WebCore chromium build a couple steps closer to building.
2073
2074         * WebCore.scons:
2075
2076 2008-12-03  Kevin Ollivier  <kevino@theolliviers.com>
2077
2078         wx build fix.
2079
2080         * WebCoreSources.bkl:
2081
2082 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2083
2084         Reviewed by George Staikos.
2085
2086         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22636
2087
2088         Implement WML variable substitution & validation.
2089         Created a framework for scriptable WML layout tests, that are able to test variable substiution & validation.
2090
2091         Tests: wml/variable-reference-invalid-character.html
2092                wml/variable-reference-valid.html
2093
2094         * wml/WMLVariables.cpp:
2095         (WebCore::isValidFirstVariableNameCharacter):
2096         (WebCore::isValidVariableNameCharacter):
2097         (WebCore::isValidVariableEscapingModeString):
2098         (WebCore::isValidVariableName):
2099         (WebCore::containsVariableReference):
2100         (WebCore::substituteVariableReferences):
2101         * wml/WMLVariables.h:
2102
2103 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2104
2105         Reviewed by Cameron Zwarich.
2106
2107         Further preparations for WML layout tests.
2108         - Enable variable substitution in Text.cpp - if the parent is a WMLElement derived class.
2109         - Dump WMLMessageSource messages to the console, just like it's done for JSMessageSource
2110         - Add helper method in Document.idl, to reset the WML page state to a well-known default state.
2111           (will be used in the upcoming LayoutTests/wml testcases)
2112
2113          * dom/Document.cpp:
2114         (WebCore::Document::resetWMLPageState):
2115         * dom/Document.h:
2116         * dom/Document.idl:
2117         * dom/Text.cpp:
2118         (WebCore::Text::insertedIntoDocument):
2119         * dom/Text.h:
2120         * page/Console.cpp:
2121         (WebCore::Console::addMessage):
2122         * wml/WMLPageState.h: Readd heper function
2123         (WebCore::WMLPageState::hasVariables):
2124
2125 2008-12-03  Antti Koivisto  <antti@apple.com>
2126
2127         Reviewed by Sam Weinig.
2128
2129         Don't leak selectors in case selector list parsing failed.
2130
2131         * css/CSSGrammar.y:
2132         * css/CSSParser.cpp:
2133         (WebCore::CSSParser::~CSSParser):
2134
2135 2008-12-03  Chris Marrin  <cmarrin@apple.com>
2136
2137         Reviewed by Dave Hyatt.
2138
2139         Fix https://bugs.webkit.org/show_bug.cgi?id=22520
2140
2141         This is a regression (causes a crash of LayoutTests/animations/transform-animation-event-destroy-element.html).
2142         This patch fixes the testcase.
2143
2144         This is another case of animations getting destroyed in the end animation callback and causing dangling
2145         pointers on return. This one involves iterating over the CompositeAnimation, which has been destroyed.
2146         So I now check for a null m_object pointer (which is nullified when the CompositeAnimation is destroyed)
2147         and skip that call.
2148
2149         * page/animation/AnimationBase.cpp:
2150         (WebCore::AnimationBase::updateStateMachine):
2151
2152 2008-12-03  Antti Koivisto  <antti@apple.com>
2153
2154         Reviewed by Darin Adler.
2155
2156         https://bugs.webkit.org/show_bug.cgi?id=22379
2157         Make CSSOM use less memory
2158
2159         Reduce size of the CSSSelector by one more pointer by using an array
2160         instead of a linked list to store them.
2161
2162         * WebCore.xcodeproj/project.pbxproj:
2163         * css/CSSGrammar.y:
2164         * css/CSSParser.cpp:
2165         (WebCore::CSSParser::CSSParser):
2166         (WebCore::CSSParser::parseSelector):
2167         (WebCore::CSSParser::createStyleRule):
2168         * css/CSSParser.h:
2169         (WebCore::CSSParser::reusableSelectorVector):
2170         * css/CSSSelector.h:
2171         (WebCore::CSSSelector::CSSSelector):
2172         (WebCore::CSSSelector::~CSSSelector):
2173         (WebCore::CSSSelector::isLastInSelectorList):
2174         (WebCore::CSSSelector::setLastInSelectorList):
2175         * css/CSSStyleRule.cpp:
2176         (WebCore::CSSStyleRule::CSSStyleRule):
2177         (WebCore::CSSStyleRule::~CSSStyleRule):
2178         (WebCore::CSSStyleRule::selectorText):
2179         * css/CSSStyleRule.h:
2180         (WebCore::CSSStyleRule::adoptSelectorVector):
2181         (WebCore::CSSStyleRule::selectorList):
2182         * css/CSSStyleSelector.cpp:
2183         (WebCore::CSSRuleSet::addRulesFromSheet):
2184         * dom/Node.cpp:
2185         (WebCore::forEachSelector):
2186         (WebCore::selectorNeedsNamespaceResolution):
2187         (WebCore::Node::querySelector):
2188         (WebCore::Node::querySelectorAll):
2189         * dom/SelectorNodeList.cpp:
2190         (WebCore::createSelectorNodeList):
2191         * dom/SelectorNodeList.h:
2192
2193 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
2194
2195         Reviewed by Darin Adler.
2196
2197         https://bugs.webkit.org/show_bug.cgi?id=22630
2198         Assertion failure in XMLHttpRequest::contextDestroyed
2199
2200         Test: http/tests/xmlhttprequest/close-window.html
2201
2202         * loader/FrameLoader.cpp:
2203         (WebCore::FrameLoader::clear):
2204         (WebCore::FrameLoader::commitProvisionalLoad):
2205         Move stopping active objects to clear(), so that closing a window is also covered.
2206
2207         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::abort): Protect the object in abort(),
2208         because internalAbort() deref()'s.
2209
2210 2008-12-03  Dean Jackson  <dino@apple.com>
2211
2212         Reviewed by Dan Bernstein.
2213
2214         Implement CSS 3 <angle> turn unit and support it
2215         in rotations.
2216         https://bugs.webkit.org/show_bug.cgi?id=22497
2217
2218         * css/CSSGrammar.y:
2219         * css/CSSParser.cpp:
2220         (WebCore::CSSParser::validUnit):
2221         (WebCore::unitFromString):
2222         (WebCore::CSSParser::lex):
2223         * css/CSSPrimitiveValue.cpp:
2224         (WebCore::CSSPrimitiveValue::cssText):
2225         (WebCore::CSSPrimitiveValue::parserValue):
2226         * css/CSSPrimitiveValue.h:
2227         (WebCore::CSSPrimitiveValue::):
2228         * css/CSSStyleSelector.cpp:
2229         (WebCore::CSSStyleSelector::createTransformOperations):
2230         * css/tokenizer.flex:
2231
2232 2008-12-03  Dirk Schulze  <krit@webkit.org>
2233
2234         Reviewed by Nikolas Zimmermann.
2235
2236         Make use of the gradient code in GraphicsContext and get rid of most of the
2237         platform dependent code.
2238
2239         SVG should use the new Gradient support on GraphicsContext
2240         https://bugs.webkit.org/show_bug.cgi?id=20543
2241
2242         * GNUmakefile.am:
2243         * WebCore.pro:
2244         * WebCore.vcproj/WebCore.vcproj:
2245         * WebCore.xcodeproj/project.pbxproj:
2246         * platform/graphics/FloatSize.h:
2247         (WebCore::FloatSize::shrunkTo):
2248         * svg/SVGLinearGradientElement.cpp:
2249         (WebCore::SVGLinearGradientElement::buildGradient):
2250         * svg/SVGRadialGradientElement.cpp:
2251         (WebCore::SVGRadialGradientElement::buildGradient):
2252         * svg/graphics/SVGPaintServer.h:
2253         * svg/graphics/SVGPaintServerGradient.cpp:
2254         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
2255         (WebCore::SVGPaintServerGradient::~SVGPaintServerGradient):
2256         (WebCore::SVGPaintServerGradient::gradient):
2257         (WebCore::SVGPaintServerGradient::setGradient):
2258         (WebCore::findTextRootObject):
2259         (WebCore::createMaskAndSwapContextForTextGradient):
2260         (WebCore::clipToTextMask):
2261         (WebCore::SVGPaintServerGradient::setup):
2262         (WebCore::SVGPaintServerGradient::renderPath):
2263         (WebCore::SVGPaintServerGradient::teardown):
2264         * svg/graphics/SVGPaintServerGradient.h:
2265         (WebCore::SVGPaintServerGradient::setGradientStops):
2266         (WebCore::SVGPaintServerGradient::gradientStops):
2267         * svg/graphics/SVGPaintServerLinearGradient.h:
2268         * svg/graphics/SVGPaintServerRadialGradient.h:
2269         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp: Removed.
2270         * svg/graphics/cg/SVGPaintServerCg.cpp:
2271         * svg/graphics/cg/SVGPaintServerGradientCg.cpp: Removed.
2272         * svg/graphics/qt/SVGPaintServerGradientQt.cpp: Removed.
2273         * svg/graphics/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
2274         * svg/graphics/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
2275
2276 2008-12-03  Sam Weinig  <sam@webkit.org>
2277
2278         Reviewed by Mark Rowe.
2279
2280         Fix formatting.
2281
2282         * css/CSSSelector.h:
2283         (WebCore::CSSSelector::createRareData):
2284
2285 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2286
2287         Reviewed by Adam Roben.
2288
2289         As Adam Roben noticed, synchronize MessageSource enum with Console.js, and add a comment.
2290
2291         * inspector/front-end/Console.js:
2292         * page/Console.h:
2293
2294 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2295
2296         Reviewed by Alexey Proskuryakov.
2297
2298         Next steps to make LayoutTests work:
2299         Never access the main frame from WMLRefreshElement/WMLCardElement, but
2300         the current documents frame (WML layout tests will run in an <iframe>)
2301
2302         Prepare WMLErrorHandling for the case that no tokenizer is available anymore
2303         -> report errors through Console::addMessage(), so they get logged in the
2304            expected layout test results.
2305
2306         * wml/WMLCardElement.cpp:
2307         (WebCore::WMLCardElement::setActiveCardInDocument):
2308         * wml/WMLErrorHandling.cpp:
2309         (WebCore::reportWMLError):
2310         (WebCore::errorMessageForErrorCode):
2311         * wml/WMLErrorHandling.h:
2312         * wml/WMLRefreshElement.cpp:
2313         (WebCore::WMLRefreshElement::executeTask):
2314         * page/Console.cpp: Handle WMLMessageSource.
2315         (WebCore::printMessageSourceAndLevelPrefix):
2316         * page/Console.h: Add WMLMessageSource.
2317         (WebCore::):
2318
2319 2008-12-03  Tor Arne Vestbø  <tavestbo@trolltech.com>
2320
2321         Reviewed by Simon Hausmann.
2322
2323         Allow passing jsNull and jsUndefined to Qt plugins
2324
2325         Currently limited to functions with QString and QVariant arguments,
2326         and properties of these types. Both jsNull and jsUndefined ends up
2327         as default-constructed QStrings and QVariants, which means you can
2328         check for isEmpty() and isValid() in the native plugin code.
2329
2330         Based on patches by Jade Han <jade.han@nokia.com>
2331
2332         * bridge/qt/qt_runtime.cpp:
2333         (JSC::Bindings::convertValueToQVariant):
2334         (JSC::Bindings::findMethodIndex):
2335
2336 2008-12-03  Trenton Schulz  <trenton.schulz@nokia.com>
2337
2338         Reviewed by Simon Hausmann.
2339
2340         Fix the build with Qt for Mac OS X.
2341
2342         * platform/PurgeableBuffer.h: Use the dummy wrappers for now.
2343
2344 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2345
2346         Reviewed by Alexey Proskuryakov.
2347
2348         Fix error handling in WMLSetvarElement. If an invalid variable reference is contained
2349         in the 'name' attribute of <setvar>, a 'WMLErrorInvalidVariableName' error should be
2350         reported, instead of 'WMLErrorInvalidVariableReference'.
2351
2352         * wml/WMLElement.cpp:
2353         (WebCore::WMLElement::parseValueSubstitutingVariableReferences):
2354         (WebCore::WMLElement::parseValueForbiddingVariableReferences):
2355         * wml/WMLElement.h:
2356         * wml/WMLSetvarElement.cpp:
2357         (WebCore::WMLSetvarElement::parseMappedAttribute):
2358         * wml/WMLSetvarElement.h:
2359         (WebCore::WMLSetvarElement::name):
2360         (WebCore::WMLSetvarElement::value):
2361
2362 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2363
2364         Reviewed by Alexey Proskuryakov.
2365
2366         Preparations to get WML layout tests going.
2367         Make WMLPageState an OwnPtr to Page, and let Page create it on demand.
2368
2369         * page/Page.cpp:
2370         (WebCore::Page::Page):
2371         (WebCore::Page::wmlPageState):
2372         * page/Page.h:
2373         * wml/WMLDocument.cpp:
2374         (WebCore::WMLDocument::WMLDocument):
2375         (WebCore::WMLDocument::finishedParsing):
2376         (WebCore::wmlPageStateForDocument):
2377         * wml/WMLPageState.h: Don't inherit from RefCounted anymore.
2378         (WebCore::WMLPageState::hasVariables): Remove helper function.
2379
2380 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
2381
2382         Reviewed by Mark Rowe.
2383
2384         https://bugs.webkit.org/show_bug.cgi?id=22627
2385         fast/workers/worker-terminate.html fails randomly
2386
2387         The problem is that worker termination uses script timeouts, so an InterruptedExecutionError
2388         is raised, and it sometimes reaches the main thread.
2389
2390         * dom/WorkerMessagingProxy.cpp:
2391         (WebCore::WorkerExceptionTask::create):
2392         (WebCore::WorkerExceptionTask::WorkerExceptionTask):
2393         (WebCore::WorkerExceptionTask::performTask):
2394         (WebCore::WorkerMessagingProxy::postWorkerException):
2395         * dom/WorkerMessagingProxy.h:
2396         Ignore exceptions that happen in terminated workers.
2397
2398 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2399
2400         Reviewed by Alexey Proskuryakov.
2401
2402         Remove some unncessary includes.
2403
2404         * wml/WMLAccessElement.cpp:
2405         * wml/WMLDocument.h:
2406         * wml/WMLRefreshElement.cpp:
2407
2408 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
2409
2410         Rubber-stamped by Cameron Zwarich and Adam Roben.
2411
2412         Fix a typo: m_executionForbidded.
2413
2414         * bindings/js/WorkerScriptController.cpp:
2415         (WebCore::WorkerScriptController::WorkerScriptController):
2416         (WebCore::WorkerScriptController::evaluate):
2417         (WebCore::WorkerScriptController::forbidExecution):
2418         * bindings/js/WorkerScriptController.h:
2419
2420 2008-12-03  Dean McNamee  <deanm@chromium.org>
2421
2422         Bug 22623: Uninitialized memory access in cache parsing code
2423         <https://bugs.webkit.org/show_bug.cgi?id=22623>
2424
2425         Reviewed by David Kilzer.
2426
2427         Initialize m_haveParsedCacheControlHeader and m_haveParsedPragmaHeader.
2428
2429         * platform/network/ResourceResponseBase.h:
2430         (WebCore::ResourceResponseBase::ResourceResponseBase):
2431
2432 2008-12-03  Antti Koivisto  <antti@apple.com>
2433
2434         Probable build fix.
2435
2436         * WebCoreSources.bkl:
2437
2438 2008-12-03  Antti Koivisto  <antti@apple.com>
2439
2440         Forgot to commit these.
2441
2442         * dom/Node.cpp:
2443         (WebCore::forEachTagSelector):
2444         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
2445         (WebCore::Node::querySelector):
2446         * dom/SelectorNodeList.cpp:
2447         (WebCore::createSelectorNodeList):
2448
2449 2008-12-03  Antti Koivisto  <antti@apple.com>
2450
2451         Reviewed by Dan Bernstein and Mark Rowe.
2452
2453         https://bugs.webkit.org/show_bug.cgi?id=22379
2454         Make CSSOM use less memory
2455
2456         Reduce size of the CSSSelector by 3/8 by moving rarely used fields to a rare data
2457         struct. Browsing around with some instrumentation showed that ~0.1% of all selectors
2458         encountered had rare data.
2459         
2460         This also eliminates the CSSNthSelector subclass which will make possible to store
2461         CSSSelectors in an array instead of a linked list for futher memory savings.
2462
2463         * css/CSSGrammar.y:
2464         * css/CSSNthSelector.cpp: Removed.
2465         * css/CSSNthSelector.h: Removed.
2466         * css/CSSParser.cpp:
2467         (WebCore::CSSParser::createFloatingSelector):
2468         * css/CSSParser.h:
2469         * css/CSSSelector.cpp:
2470         (WebCore::CSSSelector::specificity):
2471         (WebCore::CSSSelector::operator==):
2472         (WebCore::CSSSelector::selectorText):
2473         (WebCore::CSSSelector::setTagHistory):
2474         (WebCore::CSSSelector::attribute):
2475         (WebCore::CSSSelector::setAttribute):
2476         (WebCore::CSSSelector::setArgument):
2477         (WebCore::CSSSelector::setSimpleSelector):
2478         (WebCore::CSSSelector::parseNth):
2479         (WebCore::CSSSelector::matchNth):
2480         (WebCore::CSSSelector::RareData::parseNth):
2481         (WebCore::CSSSelector::RareData::matchNth):
2482         * css/CSSSelector.h:
2483         (WebCore::CSSSelector::CSSSelector):
2484         (WebCore::CSSSelector::~CSSSelector):
2485         (WebCore::CSSSelector::tagHistory):
2486         (WebCore::CSSSelector::hasAttribute):
2487         (WebCore::CSSSelector::argument):
2488         (WebCore::CSSSelector::simpleSelector):
2489         (WebCore::CSSSelector::RareData::RareData):
2490         (WebCore::CSSSelector::createRareData):
2491         (WebCore::CSSSelector::):
2492         * css/CSSStyleSelector.cpp:
2493         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
2494         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
2495
2496 2008-12-03  Jian Li  <jianli@chromium.org>
2497
2498         Reviewed by Alexey Proskuryakov.
2499
2500         Remove unneeded included file in WorkerThread.cpp.
2501         https://bugs.webkit.org/show_bug.cgi?id=22613
2502
2503         * dom/WorkerThread.cpp: No need to include JSWorkerContext.h.
2504
2505 2008-12-02  Alexey Proskuryakov  <ap@webkit.org>
2506
2507         Reviewed by Maciej Stachowiak.
2508
2509         https://bugs.webkit.org/show_bug.cgi?id=22543
2510         Consolidate ActiveDOMObject page cache interaction
2511
2512         Test: http/tests/xmlhttprequest/abort-on-leaving-page.html
2513
2514         * dom/ActiveDOMObject.cpp:
2515         (WebCore::ActiveDOMObject::canSuspend):
2516         (WebCore::ActiveDOMObject::suspend):
2517         (WebCore::ActiveDOMObject::resume):
2518         * dom/ActiveDOMObject.h:
2519         * dom/ScriptExecutionContext.cpp:
2520         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
2521         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
2522         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
2523         * dom/ScriptExecutionContext.h:
2524         Added methods for suspending and resuming active objects.
2525
2526         * dom/Worker.cpp:
2527         (WebCore::Worker::canSuspend):
2528         (WebCore::Worker::stop):
2529         * dom/Worker.h:
2530         Workers cannot be suspended yet. This is a change in behavior, as workers used to keep
2531         running until their owner was destroyed.
2532
2533         * loader/FrameLoader.cpp:
2534         (WebCore::FrameLoader::stopLoading): No longer call stopActiveDOMObjects() here, because
2535         their activity is not necessarily loading.
2536         (WebCore::FrameLoader::canCachePage): Can only cache if all active objects can be suspended.
2537         Previously, stopLoading() cancelled outstanding XMLHttpRequests, which made the page
2538         uncacheable due to no-null main document error.
2539         (WebCore::FrameLoader::commitProvisionalLoad): Suspend or stop active objects, depending on
2540         whether the document will be cached.
2541         (WebCore::FrameLoader::frameDetached): Stop active objects to let them clean up before their
2542         context is destroyed.
2543
2544         * xml/XMLHttpRequest.h: added canSuspend().
2545         * xml/XMLHttpRequest.cpp:
2546         (WebCore::XMLHttpRequest::canSuspend): Only XHRs that are not loading can be suspended.
2547         (WebCore::XMLHttpRequest::stop): Call abort() instead of internalAbort() to dispatch events
2548         for Firefox compatibility. This is a change in behavior that helps test that requests do
2549         get aborted.
2550         (WebCore::XMLHttpRequest::contextDestroyed): The request must have been stopped by now, so
2551         assert that.
2552
2553 2008-12-02  Chris Fleizach  <cfleizach@apple.com>
2554
2555         Reviewed by Beth Dakin.
2556
2557         Bug 22606: Can <th> serves as the AXTitleUIElement for <td>?
2558
2559         Test: accessibility/th-as-title-ui.html
2560
2561         * page/AccessibilityObject.h:
2562         (WebCore::AccessibilityObject::isGroup):
2563         * page/AccessibilityRenderObject.cpp:
2564         (WebCore::AccessibilityRenderObject::isGroup):
2565         * page/AccessibilityRenderObject.h:
2566         * page/AccessibilityTableCell.cpp:
2567         (WebCore::AccessibilityTableCell::rowIndexRange):
2568         (WebCore::AccessibilityTableCell::columnIndexRange):
2569         (WebCore::AccessibilityTableCell::titleUIElement):
2570         * page/AccessibilityTableCell.h:
2571         * page/mac/AccessibilityObjectWrapper.mm:
2572         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
2573
2574 2008-12-02  Simon Fraser  <simon.fraser@apple.com>
2575
2576         Reviewed by Dave Hyatt
2577
2578         https://bugs.webkit.org/show_bug.cgi?id=22472
2579         
2580         Override absoluteClippedOverflowRect() in RenderReplaced to return a rect
2581         that is large enough to encompass the selection, so that the repainting of
2582         selected replaced elements works correctly.
2583         
2584         Test: fast/repaint/selected-replaced.html
2585
2586         * rendering/RenderReplaced.cpp:
2587         (WebCore::RenderReplaced::selectionRect):
2588         (WebCore::RenderReplaced::localSelectionRect):
2589         (WebCore::RenderReplaced::absoluteClippedOverflowRect):
2590         * rendering/RenderReplaced.h:
2591
2592 2008-12-02  Gregory Hughes  <ghughes@apple.com>
2593
2594         Reviewed by Beth Dakin.
2595
2596         Bug 22513: ZOOM: text selection does not send correct zoom bounds
2597
2598         When zoomed, text selection must send the zoom bounds in flipped
2599         screen coordinates.
2600
2601         * editing/mac/SelectionControllerMac.mm:
2602         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
2603         * page/mac/WebCoreViewFactory.h:
2604
2605 2008-12-02  Dean Jackson  <dino@apple.com>
2606
2607         Reviewed by Sam Weinig.
2608
2609         Remove support for 'now' from CSS (was
2610         erroneously added to transition and animation delay)
2611         https://bugs.webkit.org/show_bug.cgi?id=22571
2612
2613         * css/CSSParser.cpp:
2614         (WebCore::CSSParser::parseAnimationDelay):
2615         * css/CSSStyleSelector.cpp:
2616         (WebCore::CSSStyleSelector::mapAnimationDelay):
2617         * css/CSSValueKeywords.in:
2618
2619 2008-12-02  Eric Seidel  <eric@webkit.org>
2620
2621         Build fix, no review.
2622
2623         Fix the Mac and gtk builds:
2624         Don't use a float to hold a double.
2625         Remove a now duplicate symbol.
2626
2627         * page/Frame.cpp:
2628         (WebCore::Frame::selectionLayoutChanged):
2629         * platform/gtk/TemporaryLinkStubs.cpp:
2630
2631 2008-12-02  Chris Fleizach  <cfleizach@apple.com>
2632
2633         Bug 22596: Some elements don't report AXBlockQuoteLevel
2634         https://bugs.webkit.org/show_bug.cgi?id=22596
2635  
2636         Reviewed by John Sullivan.
2637
2638         * page/mac/AccessibilityObjectWrapper.mm:
2639         (blockquoteLevel):
2640         (AXAttributeStringSetBlockquoteLevel):
2641         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
2642         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2643
2644 2008-12-02  Dean McNamee  <deanm@chromium.org>
2645
2646         Reviewed by Eric Seidel.
2647
2648         Correctly handle a theme returning a non-blinking interval.  We should
2649         not set any timers when the interval is 0 (non-blinking), otherwise we
2650         repeatedly set and destroy a blinking timer, causing a paint and timer
2651         storm.  This is applicable to GTK and Windows, where a user can set a
2652         non-blinking caret in their system preferences.
2653
2654         Renamed caretBlinkFrequency to the more accurate caretBlinkInterval.
2655
2656         * page/Frame.cpp:
2657         (WebCore::Frame::selectionLayoutChanged):
2658         * platform/Theme.h:
2659         (WebCore::Theme::caretBlinkInterval):
2660         * platform/gtk/RenderThemeGtk.cpp:
2661         (WebCore::RenderThemeGtk::caretBlinkInterval):
2662         * platform/gtk/RenderThemeGtk.h:
2663         * rendering/RenderTheme.h:
2664         (WebCore::RenderTheme::caretBlinkInterval):
2665
2666 2008-12-02  David Levin  <levin@chromium.org>
2667
2668         Reviewed by Eric Seidel.
2669
2670         https://bugs.webkit.org/show_bug.cgi?id=22538
2671         
2672         startsWith uses find which searches through the whole string if no match is found.
2673         Using reverseFind with an index of 0 has the benefit of only searching for the match
2674         at the beginning of the string.  This may only be a small benefit in the overall program,
2675         but it may help in some cases when the string is big.
2676
2677         No observable change in behavior, so no test.
2678  
2679         * platform/text/StringImpl.h:
2680         (WebCore::StringImpl::startsWith):
2681
2682 2008-10-29  Eric Seidel  <eric@webkit.org>
2683
2684         Reviewed by Darin Adler.
2685
2686         Wrap a JSC-only hack in a USE(JSC) block to fix the v8 build.
2687         https://bugs.webkit.org/show_bug.cgi?id=21951
2688
2689         * svg/SVGElementInstance.cpp:
2690         (WebCore::SVGElementInstance::forgetWrapper):
2691
2692 2008-12-02  Eric Seidel  <eric@webkit.org>
2693
2694         Reviewed by Darin Adler.
2695
2696         Add an ASSERT to try and catch the root cause of:
2697         https://bugs.webkit.org/show_bug.cgi?id=22168
2698         http://code.google.com/p/chromium/issues/detail?id=4122
2699
2700         * editing/TextIterator.cpp:
2701         (WebCore::TextIterator::emitText):
2702
2703 2008-12-02  Brent Fulgham  <bfulgham@gmail.com>
2704
2705         Reviewed by Adam Roben.
2706
2707         Remove some CG-specific code from the Windows Cairo build.
2708         https://bugs.webkit.org/show_bug.cgi?id=22586
2709
2710         No new test cases since this update should create no user-visible
2711         changes, and should be fully covered by the existing regression
2712         tests.
2713
2714         * WebCore.vcproj/WebCore.vcproj: Remove FontDatabase from
2715         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2716         (WebCore::focusRingColor): Add stub method
2717         * platform/win/TemporaryLinkStubs.cpp:
2718         (WebCore::populateFontDatabase): Add stub method.
2719
2720 2008-12-01 Laszlo Gombos <laszlo.1.gombos@nokia.com>
2721
2722         Reviewed by Tor Arne Vestbø.
2723
2724         MinGW compilation fix for PluginPackageWin.cpp
2725
2726         https://bugs.webkit.org/show_bug.cgi?id=22585
2727
2728         * plugins/win/PluginPackageWin.cpp:
2729         (WebCore::PluginPackage::fetchInfo):
2730
2731 2008-12-02  Adam Roben  <aroben@apple.com>
2732
2733         Build fix for Windows projects with NOMINMAX defined globally
2734
2735         * platform/win/COMPtr.h: Don't redefine NOMINMAX if it's already
2736         defined.
2737
2738 2008-12-02  Simon Hausmann  <hausmann@webkit.org>
2739
2740         Reviewed by Tor Arne Vestbø.
2741
2742         Build JavaScriptCore into libQtWebKit.so through a direct build
2743         instead of a static library. When linking a static library into
2744         a shared library qmake generates an incorrect .prl file, which
2745         causes all sorts of different build problems when linking against
2746         QtWebKit. Fixing this in qmake requires bigger changes that are
2747         currently not possible, so we need to work around this limitation
2748         for now. The advantages of the separate build did not outweight the
2749         build problems it caused.
2750
2751         * WebCore.pro: include JavaScriptCore.pri, re-enable prl support
2752         and rename the lut generator to domlut to avoid a conflict with
2753         JavaScriptCore.pri's lut generator.
2754
2755 2008-12-02  David Levin  <levin@chromium.org>
2756
2757         Reviewed by Alexey Proskuryakov.
2758
2759         https://bugs.webkit.org/show_bug.cgi?id=22588
2760         Move securityOrigin() from Document and WorkerContext into ScriptExecutionContext.
2761
2762         No observable change in behavior, so no test.
2763         
2764         * dom/Document.cpp:
2765         (WebCore::Document::open):
2766         (WebCore::Document::domain):
2767         (WebCore::Document::setDomain):
2768         (WebCore::Document::initSecurityContext):
2769         (WebCore::Document::setSecurityOrigin):
2770         * dom/Document.h:
2771         * dom/ScriptExecutionContext.cpp:
2772         (WebCore::ScriptExecutionContext::setSecurityOrigin):
2773         * dom/ScriptExecutionContext.h:
2774         (WebCore::ScriptExecutionContext::securityOrigin):
2775         * dom/WorkerContext.cpp:
2776         (WebCore::WorkerContext::WorkerContext):
2777         * dom/WorkerContext.h:
2778         These changes are for the move of securityOrigin().
2779         
2780         * xml/XMLHttpRequest.cpp:
2781         (WebCore::XMLHttpRequest::createRequest):
2782         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
2783         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
2784         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
2785         (WebCore::XMLHttpRequest::setRequestHeader):
2786         (WebCore::XMLHttpRequest::getAllResponseHeaders):
2787         (WebCore::XMLHttpRequest::getResponseHeader):
2788         (WebCore::XMLHttpRequest::processSyncLoadResults):
2789         (WebCore::XMLHttpRequest::willSendRequest):
2790         (WebCore::XMLHttpRequest::accessControlCheck):
2791         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
2792         Change XMLHttpRequest to use ScriptExecutionContext instead of Document to access securityOrigin().
2793
2794 2008-12-02  André Pönitz  <apoenitz@trolltech.com>
2795
2796         Reviewed by Simon Hausmann.
2797
2798         Disable the creation of debug information for the Qt build when done
2799         inside Qt. With 670 mb it was slowing down gdb start significantly
2800         for third-party applications that usually don't need it.
2801
2802         * WebCore.pro:
2803
2804 2008-12-01  Beth Dakin  <bdakin@apple.com>
2805
2806         Reviewed by Dan Bernstein.
2807
2808         Fix for https://bugs.webkit.org/show_bug.cgi?id=13736 REGRESSION 
2809         (r19811): Using the down arrow in a textarea gets "stuck" at the 
2810         end of a wrapped line
2811         And corresponding: <rdar://problem/5347931>
2812
2813         The basic problem here is that Position::getInlineBoxAndOffset() 
2814         failed to look beyond a single renderer. This patch looks for a 
2815         better match beyond the first renderer when the affinity is 
2816         downstream and we failed to find a "perfect" match. 
2817         * dom/Position.cpp:
2818         (WebCore::isNonTextLeafChild):
2819         (WebCore::searchAheadForBetterMatch):
2820         (WebCore::Position::getInlineBoxAndOffset):
2821
2822         This is a fix I made based on code inspection. It looks like the 
2823         old code here and skipped over the parent as a possible match. 
2824         * rendering/RenderObject.cpp:
2825         (WebCore::RenderObject::nextInPreOrderAfterChildren):
2826
2827 2008-12-01  Brent Fulgham  <bfulgham@gmail.com>
2828
2829         Reviewed by Adam Roben.
2830
2831         Add WML related files to Visual Studio projects.
2832         https://bugs.webkit.org/show_bug.cgi?id=22561
2833
2834         * WebCore.vcproj/WebCore.vcproj:
2835           1. Add files from the wml directory to the set of windows files.
2836           2. Extend include paths with new wml directory. 
2837           3. Add new autogenerated WML files to DerivedSources.
2838           4. Alphabetize preprocesor includes (holdover from earlier debugging).
2839
2840 2008-12-01  Steve Falkenburg  <sfalken@apple.com>
2841
2842         Revise node/selection image fix.
2843         Moved updateLayout call so selection rect is fetched after the layout.
2844         
2845         Reviewed by Adam Roben.
2846
2847         * page/win/FrameCGWin.cpp:
2848         (WebCore::imageFromRect):
2849         (WebCore::imageFromSelection):
2850         (WebCore::Frame::nodeImage):
2851
2852 2008-12-01  Steve Falkenburg  <sfalken@apple.com>
2853
2854         Support needed to implement renderedImage for Windows.
2855         https://bugs.webkit.org/show_bug.cgi?25648
2856
2857         Reviewed by Adam Roben.
2858
2859         * page/Frame.h:
2860         * page/win/FrameCGWin.cpp:
2861         (WebCore::imageFromRect):
2862         (WebCore::imageFromSelection):
2863         (WebCore::Frame::nodeImage):
2864         * page/win/FrameCairoWin.cpp:
2865         (WebCore::imageFromNode):
2866
2867 2008-12-01  Simon Fraser  <simon.fraser@apple.com>
2868
2869         Reviewed by Dan Bernstein
2870
2871         https://bugs.webkit.org/show_bug.cgi?id=22581
2872         
2873         Fix the painting of the caps lock indicator for transformed text inputs,
2874         by replacing a call to absoluteContentBox() with code that computes the
2875         painting rect for the input contents.
2876
2877         * rendering/RenderTextControl.cpp:
2878         (WebCore::RenderTextControl::paint):
2879
2880 2008-12-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2881
2882         Reviewed by George Staikos.
2883
2884         Add two new helper functions to WMLElement, parseValueSubstitutingVariableReferences/parseValueForbiddingVariableReferences.
2885
2886         Convert all elements to parse their attribute values using these new helper functions. This simplifies the
2887         actual attribute parsing code in all WMLElement derived classes, as most WML attribute values either report
2888         an error if there's a variable reference used in the attribute value, or if it's invalid.
2889
2890         Split the WMLErrorInvalidVariableReference error which covered both 'invalid syntax' / 'wrong location'
2891         in two seperated error codes: WMLErrorInvalidVariableReference / WMLErrorInvalidVariableReferenceLocation.
2892
2893         * wml/WMLAccessElement.cpp:
2894         (WebCore::WMLAccessElement::parseMappedAttribute):
2895         * wml/WMLDoElement.cpp:
2896         (WebCore::WMLDoElement::defaultEventHandler):
2897         (WebCore::WMLDoElement::parseMappedAttribute):
2898         * wml/WMLElement.cpp:
2899         (WebCore::WMLElement::parseValueSubstitutingVariableReferences):
2900         (WebCore::WMLElement::parseValueForbiddingVariableReferences):
2901         * wml/WMLElement.h:
2902         * wml/WMLErrorHandling.cpp:
2903         (WebCore::reportWMLError):
2904         * wml/WMLErrorHandling.h:
2905         (WebCore::):
2906         * wml/WMLOnEventElement.cpp:
2907         (WebCore::WMLOnEventElement::parseMappedAttribute):
2908         * wml/WMLPrevElement.cpp:
2909         (WebCore::WMLPrevElement::executeTask):
2910         * wml/WMLSetvarElement.cpp:
2911         (WebCore::WMLSetvarElement::parseMappedAttribute):
2912         * wml/WMLTimerElement.cpp:
2913         (WebCore::WMLTimerElement::parseMappedAttribute):
2914
2915 2008-12-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2916
2917         Reviewed by George Staikos.
2918
2919         Fix switching active cards within a document. No way to test, until <go> support is implemented.
2920
2921         * wml/WMLCardElement.cpp:
2922         (WebCore::WMLCardElement::showCard):
2923         (WebCore::WMLCardElement::hideCard):
2924         (WebCore::WMLCardElement::setActiveCardInDocument):
2925         * wml/WMLCardElement.h:
2926
2927 2008-12-01  David Kilzer  <ddkilzer@apple.com>
2928
2929         Fix logic error in LegacyWebArchive::create() from r38884.
2930
2931         * loader/archive/cf/LegacyWebArchive.cpp:
2932         (WebCore::LegacyWebArchive::create): Only continue if the
2933         subresource is actually added.
2934
2935 2008-12-01  David Kilzer  <ddkilzer@apple.com>
2936
2937         Bug 22466: REGRESSION (35867): Many resources missing when saving webarchive of webkit.org
2938
2939         <https://bugs.webkit.org/show_bug.cgi?id=22466>
2940         <rdar://problem/6403593>
2941
2942         Reviewed by Brady Eidson.
2943
2944         Test: http/tests/webarchive/test-preload-resources.html
2945
2946         * loader/archive/cf/LegacyWebArchive.cpp:
2947         (WebCore::LegacyWebArchive::create): Check the WebCore cache for
2948         resources if DocumentLoader::subresource() doesn't return them.
2949         Note that the DocumentLoader::subresource() method returned
2950         preloaded resources before r35867, but this caused a regression in
2951         Mail.
2952
2953 2008-12-01  Julien Chaffraix  <jchaffraix@webkit.org>
2954
2955         Reviewed by Eric Seidel.
2956
2957         Bug 22564: Make HTML elements' constructors take a QualifiedName
2958         https://bugs.webkit.org/show_bug.cgi?id=22564
2959
2960         - Modified the remaining HTML elements' constructors to take a QualifiedName.
2961
2962         - Added an assertion that the QualifiedName given corresponds to the element constructed.
2963
2964         * bindings/js/JSAudioConstructor.cpp:
2965         (WebCore::constructAudio):
2966         * html/HTMLAudioElement.cpp:
2967         (WebCore::HTMLAudioElement::HTMLAudioElement):
2968         * html/HTMLAudioElement.h:
2969         * html/HTMLBRElement.cpp:
2970         (WebCore::HTMLBRElement::HTMLBRElement):
2971         * html/HTMLBRElement.h:
2972         * html/HTMLElement.cpp:
2973         (WebCore::HTMLElement::setInnerText):
2974         * html/HTMLElementFactory.cpp:
2975         (WebCore::brConstructor):
2976         (WebCore::quoteConstructor):
2977         (WebCore::marqueeConstructor):
2978         (WebCore::audioConstructor):
2979         (WebCore::videoConstructor):
2980         (WebCore::sourceConstructor):
2981         * html/HTMLMarqueeElement.cpp:
2982         (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
2983         * html/HTMLMarqueeElement.h:
2984         * html/HTMLQuoteElement.cpp:
2985         (WebCore::HTMLQuoteElement::HTMLQuoteElement):
2986         * html/HTMLQuoteElement.h:
2987         * html/HTMLSourceElement.cpp:
2988         (WebCore::HTMLSourceElement::HTMLSourceElement):
2989         * html/HTMLSourceElement.h:
2990         * html/HTMLVideoElement.cpp:
2991         (WebCore::HTMLVideoElement::HTMLVideoElement):
2992         * html/HTMLVideoElement.h:
2993         * rendering/RenderTextControl.cpp:
2994         (WebCore::RenderTextControl::updateFromElement):
2995
2996 2008-12-01  Julien Chaffraix  <jchaffraix@webkit.org>
2997
2998         Reviewed by Antti Koivisto.
2999
3000         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
3001         https://bugs.webkit.org/show_bug.cgi?id=22441
3002
3003         Add an assertion to the modified HTML elements' constructor
3004         to check that the QualifiedName parameter is the one that
3005         matches the Element's.
3006
3007         * html/HTMLBaseElement.cpp:
3008         (WebCore::HTMLBaseElement::HTMLBaseElement):
3009         * html/HTMLBlockquoteElement.cpp:
3010         (WebCore::HTMLBlockquoteElement::HTMLBlockquoteElement):
3011         * html/HTMLBodyElement.cpp:
3012         (WebCore::HTMLBodyElement::HTMLBodyElement):
3013         * html/HTMLButtonElement.cpp:
3014         (WebCore::HTMLButtonElement::HTMLButtonElement):
3015         * html/HTMLDListElement.cpp:
3016         (WebCore::HTMLDListElement::HTMLDListElement):
3017         * html/HTMLDirectoryElement.cpp:
3018         (WebCore::HTMLDirectoryElement::HTMLDirectoryElement):
3019         * html/HTMLDivElement.cpp:
3020         (WebCore::HTMLDivElement::HTMLDivElement):
3021         * html/HTMLFieldSetElement.cpp:
3022         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
3023         * html/HTMLFormElement.cpp:
3024         (WebCore::HTMLFormElement::HTMLFormElement):
3025         * html/HTMLFrameElement.cpp:
3026         (WebCore::HTMLFrameElement::HTMLFrameElement):
3027         * html/HTMLFrameSetElement.cpp:
3028         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
3029         * html/HTMLHeadElement.cpp:
3030         (WebCore::HTMLHeadElement::HTMLHeadElement):
3031         * html/HTMLHtmlElement.cpp:
3032         (WebCore::HTMLHtmlElement::HTMLHtmlElement):
3033         * html/HTMLIFrameElement.cpp:
3034         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
3035         * html/HTMLInputElement.cpp:
3036         (WebCore::HTMLInputElement::HTMLInputElement):
3037         * html/HTMLIsIndexElement.cpp:
3038         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
3039         * html/HTMLKeygenElement.cpp:
3040         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
3041         * html/HTMLLIElement.cpp:
3042         (WebCore::HTMLLIElement::HTMLLIElement):
3043         * html/HTMLLabelElement.cpp:
3044         (WebCore::HTMLLabelElement::HTMLLabelElement):
3045         * html/HTMLLegendElement.cpp:
3046         (WebCore::HTMLLegendElement::HTMLLegendElement):
3047         * html/HTMLLinkElement.cpp:
3048         (WebCore::HTMLLinkElement::HTMLLinkElement):
3049         * html/HTMLMenuElement.cpp:
3050         (WebCore::HTMLMenuElement::HTMLMenuElement):
3051         * html/HTMLMetaElement.cpp:
3052         (WebCore::HTMLMetaElement::HTMLMetaElement):
3053         * html/HTMLOListElement.cpp:
3054         (WebCore::HTMLOListElement::HTMLOListElement):
3055         * html/HTMLOptGroupElement.cpp:
3056         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
3057         * html/HTMLOptionElement.cpp:
3058         (WebCore::HTMLOptionElement::HTMLOptionElement):
3059         * html/HTMLSelectElement.cpp:
3060         (WebCore::HTMLSelectElement::HTMLSelectElement):
3061         * html/HTMLStyleElement.cpp:
3062         (WebCore::HTMLStyleElement::HTMLStyleElement):
3063         * html/HTMLTextAreaElement.cpp:
3064         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
3065         * html/HTMLTitleElement.cpp:
3066         (WebCore::HTMLTitleElement::HTMLTitleElement):
3067         * html/HTMLUListElement.cpp:
3068         (WebCore::HTMLUListElement::HTMLUListElement):
3069
3070 2008-12-01  Chris Marrin  <cmarrin@apple.com>
3071
3072         Reviewed by Darin Adler.
3073
3074         https://bugs.webkit.org/show_bug.cgi?id=22046
3075
3076         Fixed another case of crashing because the animation object is getting deleted when
3077         it's in the middle of a callback. I actually moved where I am retaining the pointer
3078         up out of the lower level AnimationBase code and into the timer callback that calls
3079         them. So now the pointer is valid throughout the entire sequence of callback code.
3080
3081         The testcase for https://bugs.webkit.org/show_bug.cgi?id=22052 also exhibits a
3082         crash which this patch fixes. 
3083
3084         * page/animation/AnimationBase.cpp:
3085         (WebCore::AnimationBase::updateStateMachine):
3086         (WebCore::AnimationBase::animationTimerCallbackFired):
3087         * page/animation/CompositeAnimation.cpp:
3088         (WebCore::CompositeAnimationPrivate::setAnimationStartTime):
3089         (WebCore::CompositeAnimationPrivate::setTransitionStartTime):
3090         (WebCore::CompositeAnimationPrivate::styleAvailable):
3091         * page/animation/ImplicitAnimation.cpp:
3092         (WebCore::ImplicitAnimation::sendTransitionEvent):
3093         * page/animation/KeyframeAnimation.cpp:
3094         (WebCore::KeyframeAnimation::sendAnimationEvent):
3095         (WebCore::KeyframeAnimation::resumeOverriddenAnimations):
3096
3097 2008-12-01  Tor Arne Vestbø  <tavestbo@trolltech.com>
3098
3099         Reviewed by Simon Hausmann.
3100
3101         [Qt/Mac] Initialize NPAPI plugins before getting their entry points
3102
3103         The old behavior (calling NP_GetEntryPoints before NP_Initialize) was
3104         copied from Windows, but caused Silverlight on Mac to crash when loaded.
3105
3106         Apparently the call order of NP_Initialize and NP_GetEntryPoints is
3107         reversed on Mac. See https://bugzilla.mozilla.org/show_bug.cgi?id=344425
3108
3109         Reported-by: Peter Johnson <peter@zattoo.com>
3110
3111         * plugins/mac/PluginPackageMac.cpp:
3112         (WebCore::PluginPackage::load):
3113
3114 2008-11-30  Chris Fleizach  <cfleizach@apple.com>
3115
3116         Reviewed by John Sullivan.
3117
3118         https://bugs.webkit.org/show_bug.cgi?id=22510
3119         Crash at WebCore::AccessibilityRenderObject::activeDescendant() on Google Reader with ARIA (22510)
3120
3121         A nil pointer needed to be checked
3122
3123         * page/AccessibilityRenderObject.cpp:
3124         (WebCore::AccessibilityRenderObject::activeDescendant):
3125
3126 2008-11-30  Alexey Proskuryakov  <ap@webkit.org>
3127
3128         Reviewed by Dan Bernstein.
3129
3130         https://bugs.webkit.org/show_bug.cgi?id=22530
3131         Assertion failures seen on buildbot due to uninitialized WorkerThread::m_threadID
3132
3133         * dom/WorkerThread.cpp:
3134         (WebCore::WorkerThread::start): Protect worker startup with a mutex to ensure that this
3135         function runs to completion before the thread begins execution.
3136         (WebCore::WorkerThread::workerThread): Updated comments.
3137         (WebCore::WorkerThread::stop): Ditto.
3138         * dom/WorkerThread.h: Renamed m_workerContextMutex to m_threadCreationMutex, because it now
3139         protects startup as a whole.
3140
3141         * storage/DatabaseThread.cpp:
3142         * storage/DatabaseThread.h:
3143         * storage/LocalStorageThread.cpp:
3144         * storage/LocalStorageThread.h:
3145         Fixed the same m_threadID problem.
3146
3147 2008-11-29  Brent Fulgham  <bfulgham@gmail.com>
3148
3149         Reviewed by Alexey Proskuryakov.
3150
3151         Remove Visual Studio project dependencies on non-redistributable
3152         components in the Debug_Cairo and Release_Cairo build targets.
3153         See https://bugs.webkit.org/show_bug.cgi?id=22527
3154
3155         * WebCore.vcproj/WebCore.vcproj:
3156
3157 2008-11-29  Sam Weinig  <sam@webkit.org>
3158
3159         Rubber-stamped by Alexey Proskuryakov.
3160
3161         Fix some sorting
3162
3163         * WebCore.xcodeproj/project.pbxproj:
3164
3165 2008-11-28  Sam Weinig  <sam@webkit.org>
3166
3167         Reviewed by Alexey Proskuryakov.
3168
3169         Fix for https://bugs.webkit.org/show_bug.cgi?id=21063
3170         NULL pointer crash in dispatchEvent(null);
3171
3172         Test: fast/events/dispatchEvent-crash.html
3173
3174         * dom/MessagePort.cpp:
3175         (WebCore::MessagePort::dispatchEvent):
3176         * dom/Worker.cpp:
3177         (WebCore::Worker::dispatchEvent):
3178         * dom/WorkerContext.cpp:
3179         (WebCore::WorkerContext::dispatchEvent):
3180         * loader/appcache/DOMApplicationCache.cpp:
3181         (WebCore::DOMApplicationCache::dispatchEvent):
3182         * xml/XMLHttpRequest.cpp:
3183         (WebCore::XMLHttpRequest::dispatchEvent):
3184         * xml/XMLHttpRequestUpload.cpp:
3185         (WebCore::XMLHttpRequestUpload::dispatchEvent):
3186
3187 2008-11-29  Dan Bernstein  <mitz@apple.com>
3188
3189         Reviewed by Alexey Proskuryakov.
3190
3191         - fix https://bugs.webkit.org/show_bug.cgi?id=22454
3192           <rdar://problem/6405550> REGRESSION (3.2-TOT): Crash below FontFallbackList::fontDataAt on jacobian.org
3193
3194         Test: http/tests/misc/font-face-in-multiple-segmented-faces.html
3195
3196         The crash happened because style recalculation was invoked by
3197         CSSFontSelector after one CSSSegmentedFontFace had pruned its tables but
3198         before another CSSSegmentedFontFace using the same CSSFontFace had done
3199         so. The fix is to let all CSSSegmentedFontFaces using the CSSFontFace
3200         prune their tables before telling the CSSFontSelector to recalc style.
3201
3202         * css/CSSFontFace.cpp:
3203         (WebCore::CSSFontFace::fontLoaded):
3204         * css/CSSFontSelector.cpp:
3205         (WebCore::CSSFontSelector::fontLoaded):
3206         * css/CSSFontSelector.h:
3207         * css/CSSSegmentedFontFace.cpp:
3208         (WebCore::CSSSegmentedFontFace::fontLoaded):
3209
3210 2008-11-29  Alexey Proskuryakov  <ap@webkit.org>
3211
3212         Reviewed by Eric Seidel.
3213
3214         https://bugs.webkit.org/show_bug.cgi?id=14968
3215         document.open() erroneously returns void instead of the new Document
3216
3217         Test: fast/dom/HTMLDocument/document-open-return-value.html
3218
3219         * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open):
3220         Return the document on which this method was invoked, per HTML5.
3221
3222 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3223
3224         Reviewed by Cameron Zwarich.
3225
3226         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22550
3227
3228         Add <timer> element support. It provides a way to execute a task with a delay.
3229         The user is notified by firing the task associated with the <card>'s ontimer attribute.
3230         Only one timer element is allowed per <card> (fix wrong error message in reportWMLError)
3231
3232         * WebCore.xcodeproj/project.pbxproj:
3233         * wml/WMLCardElement.cpp:
3234         (WebCore::WMLCardElement::WMLCardElement):
3235         (WebCore::WMLCardElement::setIntrinsicEventTimer):
3236         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
3237         * wml/WMLCardElement.h:
3238         * wml/WMLDoElement.cpp:
3239         (WebCore::WMLDoElement::defaultEventHandler):
3240         * wml/WMLErrorHandling.cpp:
3241         (WebCore::reportWMLError):
3242         * wml/WMLPageState.h:
3243         (WebCore::WMLPageState::getVariable):
3244         * wml/WMLPrevElement.cpp:
3245         (WebCore::WMLPrevElement::executeTask):
3246         * wml/WMLRefreshElement.cpp:
3247         (WebCore::WMLRefreshElement::executeTask):
3248         * wml/WMLTagNames.in:
3249         * wml/WMLTimerElement.cpp: Added.
3250         (WebCore::WMLTimerElement::WMLTimerElement):
3251         (WebCore::WMLTimerElement::parseMappedAttribute):
3252         (WebCore::WMLTimerElement::insertedIntoDocument):
3253         (WebCore::WMLTimerElement::timerFired):
3254         (WebCore::WMLTimerElement::start):
3255         (WebCore::WMLTimerElement::stop):
3256         (WebCore::WMLTimerElement::storeIntervalToPageState):
3257         * wml/WMLTimerElement.h: Added.
3258
3259 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3260
3261         Reviewed by Holger Freyther.
3262
3263         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22549
3264
3265         Add <do> element support. It provides a way to bind a task element to a <template>/<card> element. 
3266         Changes numerous of layout tests which contain <do> elements, as they render as buttons now.
3267
3268         * WebCore.xcodeproj/project.pbxproj:
3269         * rendering/RenderButton.cpp:
3270         (WebCore::RenderButton::updateFromElement):
3271         * wml/WMLCardElement.cpp:
3272         (WebCore::WMLCardElement::registerDoElement):
3273         * wml/WMLCardElement.h:
3274         * wml/WMLDoElement.cpp: Added.
3275         (WebCore::WMLDoElement::WMLDoElement):
3276         (WebCore::WMLDoElement::defaultEventHandler):
3277         (WebCore::WMLDoElement::parseMappedAttribute):
3278         (WebCore::WMLDoElement::insertedIntoDocument):
3279         (WebCore::WMLDoElement::createRenderer):
3280         (WebCore::WMLDoElement::recalcStyle):
3281         * wml/WMLDoElement.h: Added.
3282         (WebCore::WMLDoElement::registerTask):
3283         (WebCore::WMLDoElement::isActive):
3284         (WebCore::WMLDoElement::label):
3285         (WebCore::WMLDoElement::name):
3286         (WebCore::WMLDoElement::setActive):
3287         (WebCore::WMLDoElement::setNoop):
3288         * wml/WMLNoopElement.cpp:
3289         (WebCore::WMLNoopElement::insertedIntoDocument):
3290         * wml/WMLTagNames.in:
3291         * wml/WMLTaskElement.cpp:
3292         (WebCore::WMLTaskElement::insertedIntoDocument):
3293
3294 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3295
3296         Reviewed by Sam Weinig.
3297
3298         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22545
3299
3300         Add onenterforward/onenterbackward/ontimer support for <card> elements.
3301
3302         No testing possible at the moment because WMLGoElement is not yet implemented.
3303         After that we can add tests covering the <card> event handling.
3304
3305         * wml/WMLCardElement.cpp:
3306         (WebCore::WMLCardElement::WMLCardElement):
3307         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
3308         (WebCore::WMLCardElement::parseMappedAttribute):
3309         (WebCore::WMLCardElement::setActiveCardInDocument):
3310         * wml/WMLCardElement.h:
3311         (WebCore::WMLCardElement::isNewContext):
3312         (WebCore::WMLCardElement::isOrdered):
3313         * wml/WMLDocument.cpp:
3314         (WebCore::WMLDocument::finishedParsing):
3315         * wml/WMLIntrinsicEvent.cpp:
3316         (WebCore::WMLIntrinsicEvent::WMLIntrinsicEvent):
3317         * wml/WMLIntrinsicEvent.h:
3318         (WebCore::WMLIntrinsicEvent::create):
3319
3320 2008-11-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
3321
3322         Reviewed by Tor Arne Vestbø.
3323
3324         Regression seen on QtWebKit - causes a build failure on Win using MinGW
3325
3326         https://bugs.webkit.org/show_bug.cgi?id=22536
3327
3328         * WebCore.pro:
3329
3330 2008-11-28  Simon Hausmann  <hausmann@webkit.org>
3331
3332         Reviewed by Tor Arne Vestbø.
3333
3334         Fix compilation and linking on Windows CE.
3335
3336         Use WIN_OS instead of WIN and therefore exclude determineModuleVersionFromDescription()
3337         from the Windows'ish build.
3338
3339         Link against the newly required mmtimer.
3340
3341         * WebCore.pro:
3342         * plugins/PluginPackage.cpp:
3343
3344 2008-11-28  David Levin  <levin@chromium.org>
3345
3346         Reviewed by Alexey Proskuryakov.
3347
3348         http://bugs.webkit.org/show_bug.cgi?id=22524
3349
3350         Made static initializations in XMLHttpRequest.cpp thread-safe in preparation for usage
3351         of XMLHttpRequest by Workers (on threads).
3352
3353         No observable change in behavior, so no test.
3354
3355         * xml/XMLHttpRequest.cpp:
3356         (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):
3357         (WebCore::PreflightResultCacheItem::allowsCrossSiteMethod):
3358         (WebCore::PreflightResultCacheItem::allowsCrossSiteHeaders):
3359         (WebCore::PreflightResultCacheItem::allowsRequest):
3360         (WebCore::createXMLHttpRequestStaticData):
3361         (WebCore::initializeXMLHttpRequestStaticData):
3362         (WebCore::XMLHttpRequest::XMLHttpRequest):
3363         (WebCore::XMLHttpRequest::isSafeRequestHeader):
3364         (WebCore::XMLHttpRequest::isOnAccessControlResponseHeaderWhitelist):
3365         * xml/XMLHttpRequest.h:
3366
3367 2008-11-27  Cameron Zwarich  <zwarich@apple.com>
3368
3369         Not reviewed.
3370
3371         r38825, was committed without checking whether anything in WebCore
3372         uses JSFunction::m_body. Use the appropriate getters and setters
3373         instead.
3374
3375         * inspector/JavaScriptDebugServer.cpp:
3376         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
3377
3378 2008-11-27  Alexey Proskuryakov  <ap@webkit.org>
3379
3380         Reviewed by Dan Bernstein.
3381
3382         https://bugs.webkit.org/show_bug.cgi?id=22529
3383         Crashes seen on buildbots due to trying to stop a worker thread twice
3384
3385         * dom/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
3386         Don't try to stop the thread if it's already stopping.
3387
3388 2008-11-27  Kent Hansen  <khansen@trolltech.com>
3389
3390         Reviewed by Simon Hausmann.
3391
3392         Make JavaScript bindings for Qt plugin widgets work again
3393         this was a regression; need to handle non-NPAPI plugins as in 4.4.
3394
3395         * bindings/js/ScriptControllerQt.cpp:
3396         (WebCore::ScriptController::createScriptInstanceForWidget):
3397
3398 2008-11-26  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3399
3400         Reviewed by George Staikos.
3401
3402         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22522
3403
3404         Catch WML errors (invalid variable name/reference, multiple access elements, etc)
3405         while parsing the document, and stop parsing immediately and wrap the document
3406         fragment in a XHTML error document, just like it's done from XML parsing errors.
3407
3408         Until now all card elements were hidden by default (no renderer created), and
3409         WMLDocument::finishedParsing() took care of showing the right card (either the first,
3410         or any named card in the document, specified by document URL reference). Change this
3411         behaviour to support displaying partially parsed WML document fragments: Mark the first
3412         WMLCardElement inserted into the document as visible. If the document parsing finishes
3413         without problems, WMLDocument::finishedParsing() will be called, which takes care of
3414         showing the desired card (common case: first card in the document, which is already
3415         visible, so nothing actually has to be done). If an error occours, the document is
3416         correctly rendered until the error happened - wrapped in a XHTML document.
3417
3418         Fixes: fast/wml/err-event-binding-conflict.wml
3419                fast/wml/err-invalid-variable-name.wml
3420                fast/wml/err-multi-access.wml
3421                fast/wml/err-unallowed-task-in-anchor.wml
3422
3423         * WebCore.xcodeproj/project.pbxproj:
3424         * wml/WMLAccessElement.cpp:
3425         (WebCore::WMLAccessElement::parseMappedAttribute):
3426         (WebCore::WMLAccessElement::insertedIntoDocument):
3427         * wml/WMLAccessElement.h:
3428         * wml/WMLCardElement.cpp:
3429         (WebCore::WMLCardElement::insertedIntoDocument):
3430         (WebCore::WMLCardElement::setActiveCardInDocument):
3431         * wml/WMLCardElement.h:
3432         * wml/WMLDocument.cpp:
3433         (WebCore::WMLDocument::finishedParsing):
3434         * wml/WMLErrorHandling.cpp: Added.
3435         (WebCore::reportWMLError):
3436         * wml/WMLErrorHandling.h: Added.
3437         (WebCore::):
3438         * wml/WMLIntrinsicEventHandler.cpp:
3439         (WebCore::WMLIntrinsicEventHandler::registerIntrinsicEvent):
3440         * wml/WMLIntrinsicEventHandler.h:
3441         * wml/WMLNoopElement.cpp:
3442         (WebCore::WMLNoopElement::insertedIntoDocument):
3443         * wml/WMLOnEventElement.cpp:
3444         (WebCore::WMLOnEventElement::parseMappedAttribute):
3445         (WebCore::WMLOnEventElement::registerTask):
3446         * wml/WMLPageState.cpp:
3447         (WebCore::WMLPageState::setNeedCheckDeckAccess):
3448         * wml/WMLPageState.h:
3449         * wml/WMLSetvarElement.cpp:
3450         (WebCore::WMLSetvarElement::parseMappedAttribute):
3451
3452 2008-11-26  Glenn Wilson  <gwilson@chromium.org>
3453
3454         Reviewed by Dan Bernstein.
3455
3456         Fixed bug http://bugs.webkit.org/show_bug.cgi?id=21953
3457
3458         This fixes the crash when the small-caps font variant is used
3459         on a lower-case glyph that does not have a corresponding
3460         upper-case glyph defined in the set of available fonts.
3461
3462         This changes Font.cpp to check if the font being used exists before trying to apply the small-caps variant.
3463         
3464         Test: fast/css/small-caps-crash.html
3465
3466         * platform/graphics/Font.cpp:
3467         (WebCore::Font::glyphDataForCharacter):
3468
3469 2008-11-26  Tony Chang  <tony@chromium.org>
3470
3471         Reviewed by Oliver Hunt.
3472
3473         Add a new platform specific method cleanupAfterSystemDrag
3474         that platforms can ue to clean up drag state after a
3475         system drag.  Use this method on PLAFORM(MAC).
3476         https://bugs.webkit.org/show_bug.cgi?id=21956
3477
3478         * ChangeLog:
3479         * page/DragController.cpp:
3480         (WebCore::DragController::doSystemDrag):
3481         * page/DragController.h:
3482         * page/gtk/DragControllerGtk.cpp:
3483         (WebCore::DragController::cleanupAfterSystemDrag):
3484         * page/mac/DragControllerMac.mm:
3485         (WebCore::DragController::cleanupAfterSystemDrag):
3486         * page/qt/DragControllerQt.cpp:
3487         (WebCore::DragController::cleanupAfterSystemDrag):
3488         * page/win/DragControllerWin.cpp:
3489         (WebCore::DragController::cleanupAfterSystemDrag):
3490         * page/wx/DragControllerWx.cpp:
3491       (WebCore::DragController::cleanupAfterSystemDrag):
3492
3493 2008-11-26  Nikolas Zimmermann  <zimmermann@kde.org>
3494
3495         Reviewed by Oliver Hunt.
3496
3497         Fix path to string logic, correctly taking closed (sub-)paths into account.
3498         Code was just broken on cg, observed by Dirk Schulze.
3499
3500         QPainterPath doesn't seem to expose any functionality to detect closed sub paths,
3501         using the elementAt() function. There might be a workaround - Dirk will investigate.
3502
3503         * platform/graphics/cg/PathCG.cpp:
3504         (WebCore::CGPathToCFStringApplierFunction):
3505         * platform/graphics/cairo/PathCairo.cpp:
3506         (WebCore::Path::debugString):
3507
3508 2008-11-26  Darin Fisher  <darin@chromium.org>
3509
3510         Reviewed by Eric Seidel.
3511
3512         https://bugs.webkit.org/show_bug.cgi?id=22519
3513         Remove unnecessary include.
3514
3515         * dom/XMLTokenizer.cpp:
3516
3517 2008-11-26  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3518
3519         Reviewed by Oliver Hunt.
3520
3521         Add <noop> element support, completing the task element support.
3522
3523         * WebCore.xcodeproj/project.pbxproj:
3524         * wml/WMLNoopElement.cpp: Added.
3525         (WebCore::WMLNoopElement::WMLNoopElement):
3526         (WebCore::WMLNoopElement::insertedIntoDocument):
3527         * wml/WMLNoopElement.h: Added.
3528         * wml/WMLTagNames.in: Reorganize file a bit.
3529
3530 2008-11-26  Julien Chaffraix  <jchaffraix@webkit.org>
3531
3532         Reviewed by Eric Seidel.
3533
3534         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
3535         https://bugs.webkit.org/show_bug.cgi?id=22441
3536
3537         Make more HTML elements' constructors take a QualifiedName.
3538
3539         * editing/DeleteButtonController.cpp:
3540         (WebCore::DeleteButtonController::createDeletionUI):
3541         * html/HTMLBlockquoteElement.cpp:
3542         (WebCore::HTMLBlockquoteElement::HTMLBlockquoteElement):
3543         * html/HTMLBlockquoteElement.h:
3544         * html/HTMLButtonElement.cpp:
3545         (WebCore::HTMLButtonElement::HTMLButtonElement):
3546         * html/HTMLButtonElement.h:
3547         * html/HTMLDListElement.cpp:
3548         (WebCore::HTMLDListElement::HTMLDListElement):
3549         * html/HTMLDListElement.h:
3550         * html/HTMLDirectoryElement.cpp:
3551         (WebCore::HTMLDirectoryElement::HTMLDirectoryElement):
3552         * html/HTMLDirectoryElement.h:
3553         * html/HTMLDivElement.cpp:
3554         (WebCore::HTMLDivElement::HTMLDivElement):
3555         * html/HTMLDivElement.h:
3556         * html/HTMLElementFactory.cpp:
3557         (WebCore::styleConstructor):
3558         (WebCore::titleConstructor):
3559         (WebCore::frameConstructor):
3560         (WebCore::framesetConstructor):
3561         (WebCore::iframeConstructor):
3562         (WebCore::formConstructor):
3563         (WebCore::buttonConstructor):
3564         (WebCore::inputConstructor):
3565         (WebCore::isindexConstructor):
3566         (WebCore::fieldsetConstructor):
3567         (WebCore::keygenConstructor):
3568         (WebCore::labelConstructor):
3569         (WebCore::legendConstructor):
3570         (WebCore::optgroupConstructor):
3571         (WebCore::optionConstructor):
3572         (WebCore::selectConstructor):
3573         (WebCore::textareaConstructor):
3574         (WebCore::dlConstructor):
3575         (WebCore::ulConstructor):
3576         (WebCore::olConstructor):
3577         (WebCore::dirConstructor):
3578         (WebCore::menuConstructor):
3579         (WebCore::liConstructor):
3580         (WebCore::blockquoteConstructor):
3581         (WebCore::divConstructor):
3582         (WebCore::headingConstructor):
3583         * html/HTMLFieldSetElement.cpp:
3584         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
3585         * html/HTMLFieldSetElement.h:
3586         * html/HTMLFormElement.cpp:
3587         (WebCore::HTMLFormElement::HTMLFormElement):
3588         * html/HTMLFormElement.h:
3589         * html/HTMLFrameElement.cpp:
3590         (WebCore::HTMLFrameElement::HTMLFrameElement):
3591         * html/HTMLFrameElement.h:
3592         * html/HTMLFrameSetElement.cpp:
3593         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
3594         * html/HTMLFrameSetElement.h:
3595         * html/HTMLIFrameElement.cpp:
3596         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
3597         * html/HTMLIFrameElement.h:
3598         * html/HTMLInputElement.cpp:
3599         * html/HTMLInputElement.h:
3600         * html/HTMLIsIndexElement.cpp:
3601         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
3602         * html/HTMLIsIndexElement.h:
3603         * html/HTMLKeygenElement.cpp:
3604         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
3605         * html/HTMLKeygenElement.h:
3606         * html/HTMLLIElement.cpp:
3607         (WebCore::HTMLLIElement::HTMLLIElement):
3608         * html/HTMLLIElement.h:
3609         * html/HTMLLabelElement.cpp:
3610         (WebCore::HTMLLabelElement::HTMLLabelElement):
3611         * html/HTMLLabelElement.h:
3612         * html/HTMLLegendElement.cpp:
3613         (WebCore::HTMLLegendElement::HTMLLegendElement):
3614         * html/HTMLLegendElement.h:
3615         * html/HTMLMenuElement.cpp:
3616         (WebCore::HTMLMenuElement::HTMLMenuElement):
3617         * html/HTMLMenuElement.h:
3618         * html/HTMLOListElement.cpp:
3619         (WebCore::HTMLOListElement::HTMLOListElement):
3620         * html/HTMLOListElement.h:
3621         * html/HTMLOptGroupElement.cpp:
3622         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
3623         * html/HTMLOptGroupElement.h:
3624         * html/HTMLOptionElement.cpp:
3625         (WebCore::HTMLOptionElement::HTMLOptionElement):
3626         * html/HTMLOptionElement.h:
3627         * html/HTMLParser.cpp:
3628         (WebCore::HTMLParser::formCreateErrorCheck):
3629         (WebCore::HTMLParser::handleIsindex):
3630         * html/HTMLSelectElement.cpp:
3631         * html/HTMLSelectElement.h:
3632         * html/HTMLStyleElement.cpp:
3633         (WebCore::HTMLStyleElement::HTMLStyleElement):
3634         * html/HTMLStyleElement.h:
3635         * html/HTMLTextAreaElement.cpp:
3636         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
3637         * html/HTMLTextAreaElement.h:
3638         * html/HTMLTitleElement.cpp:
3639         (WebCore::HTMLTitleElement::HTMLTitleElement):
3640         * html/HTMLTitleElement.h:
3641         * html/HTMLUListElement.cpp:
3642         (WebCore::HTMLUListElement::HTMLUListElement):
3643         * html/HTMLUListElement.h:
3644         * html/HTMLViewSourceDocument.cpp:
3645         (WebCore::HTMLViewSourceDocument::createContainingTable):
3646         * rendering/MediaControlElements.cpp:
3647         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
3648         (WebCore::MediaControlInputElement::MediaControlInputElement):
3649         * rendering/RenderFileUploadControl.cpp:
3650         (WebCore::HTMLFileUploadInnerButtonElement::HTMLFileUploadInnerButtonElement):
3651         * rendering/RenderMedia.cpp:
3652         (WebCore::RenderMedia::createPanel):
3653         (WebCore::RenderMedia::createTimeDisplay):
3654         * rendering/RenderSlider.cpp:
3655         (WebCore::HTMLSliderThumbElement::HTMLSliderThumbElement):
3656         * rendering/TextControlInnerElements.cpp:
3657         (WebCore::TextControlInnerElement::TextControlInnerElement):
3658
3659 2008-11-26  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3660
3661         Reviewed by Sam Weinig.
3662
3663         Fix obvious problem in WMLPageState constructor, m_page was not set to the passed Page pointer.
3664
3665         * wml/WMLPageState.cpp:
3666         (WebCore::WMLPageState::WMLPageState):
3667
3668 2008-11-26  Matt Perry  <mpcomplete@gmail.com>
3669
3670         Fix Qt bustage.
3671
3672         See https://bugs.webkit.org/show_bug.cgi?id=22051
3673
3674         * platform/qt/RenderThemeQt.cpp:
3675         (WebCore::RenderThemeQt::extraDefaultStyleSheet):
3676
3677 2008-11-26  Matt Perry  <mpcomplete@gmail.com>
3678
3679         Reviewed by Maciej Stachowiak.
3680
3681         Fix https://bugs.webkit.org/show_bug.cgi?id=22051
3682         Renderthemes should be able to supply additional CSS rules to the core
3683         ones.
3684
3685         * DerivedSources.make:
3686         * css/CSSStyleSelector.cpp:
3687         (WebCore::parseUASheet):
3688         (WebCore::loadFullDefaultStyle):
3689         (WebCore::loadSimpleDefaultStyle):
3690         * css/themeWin.css: Added.
3691         * css/themeWinQuirks.css: Added.
3692         * platform/qt/RenderThemeQt.cpp:
3693         (WebCore::RenderThemeQt::extraDefaultStyleSheet):
3694         * platform/qt/RenderThemeQt.h:
3695         * rendering/RenderTheme.cpp:
3696         * rendering/RenderTheme.h:
3697         (WebCore::RenderTheme::extraDefaultStyleSheet):
3698         (WebCore::RenderTheme::extraQuirksStyleSheet):
3699         * rendering/RenderThemeWin.cpp:
3700         (WebCore::RenderThemeWin::extraDefaultStyleSheet):
3701         (WebCore::RenderThemeWin::extraQuirksStyleSheet):
3702         * rendering/RenderThemeWin.h:
3703
3704 2008-11-26  David Kilzer  <ddkilzer@apple.com>
3705
3706         Make CSSStyleSheet::addSubresourceURLStrings() iterative
3707
3708         Part of the fix for Bug 11850: Webarchive fails to save images referenced in CSS
3709         <https://bugs.webkit.org/show_bug.cgi?id=11850>
3710
3711         Reviewed by Brady Eidson.
3712
3713         * css/CSSStyleSheet.cpp:
3714         (WebCore::CSSStyleSheet::addSubresourceURLStrings): Switch algorithm
3715         from recursive to iterative for gathering the list of all CSS
3716         stylesheets referenced in @import statements.
3717
3718 2008-11-26  Dirk Schulze  <krit@webkit.org>
3719
3720         Reviewed by Simon Hausmann.
3721
3722         Transformations to the context shouldn't transform the currentPath.
3723         Fixed this on Qt.
3724
3725         [QT] GraphicsContext's currenPath can be transformed
3726         https://bugs.webkit.org/show_bug.cgi?id=22163
3727
3728         * platform/graphics/GraphicsContextPrivate.h:
3729         * platform/graphics/qt/GraphicsContextQt.cpp:
3730         (WebCore::GraphicsContext::restorePlatformState):
3731         (WebCore::GraphicsContext::fillPath):
3732         (WebCore::GraphicsContext::strokePath):
3733         (WebCore::GraphicsContext::fillRect):
3734         (WebCore::GraphicsContext::translate):
3735         (WebCore::GraphicsContext::rotate):
3736         (WebCore::GraphicsContext::scale):
3737         (WebCore::GraphicsContext::concatCTM):
3738
3739 2008-11-26  Jan Michael Alonzo  <jmalonzo@webkit.org>
3740
3741         Gtk build script minor fixes. Not reviewed.
3742
3743         * GNUmakefile.am:
3744           - Add ScriptInstance.h (introduced in r38774) to
3745         the build.
3746           - Move WML and GEOLOCATION conditionals before the SVG
3747         conditional to be consistent with the style of the script.
3748           - Move GeolocationGtk sources to webcoregtk_sources.
3749
3750 2008-11-26  Dmitry Titov  <dimich@chromium.org>
3751
3752         Reviewed by Darin Adler and Eric Seidel.
3753
3754         https://bugs.webkit.org/show_bug.cgi?id=22469
3755
3756         Move the class DOMWindowTimer from JSDOMWindowBase into its own file in
3757         preparation to making it work for Workers. For now, just move the code and couple
3758         of global variables.
3759
3760         * GNUmakefile.am:
3761         * WebCore.pro:
3762         * WebCore.vcproj/WebCore.vcproj:
3763         * WebCore.xcodeproj/project.pbxproj:
3764         * WebCoreSources.bkl:
3765         * bindings/js/JSDOMWindowBase.cpp:
3766         (WebCore::JSDOMWindowBase::installTimeout):
3767         (WebCore::JSDOMWindowBase::pauseTimeouts):
3768         (WebCore::JSDOMWindowBase::resumeTimeouts):
3769         (WebCore::JSDOMWindowBase::timerFired):
3770         * bindings/js/JSDOMWindowBase.h:
3771         * bindings/js/DOMTimer.cpp: Added.
3772         (WebCore::DOMTimer::DOMTimer):
3773         (WebCore::DOMTimer::~DOMTimer):
3774         (WebCore::DOMTimer::fired):
3775         * bindings/js/DOMTimer.h: Added.
3776         (WebCore::DOMTimer::timeoutId):
3777         (WebCore::DOMTimer::nestingLevel):
3778         (WebCore::DOMTimer::setNestingLevel):
3779         (WebCore::DOMTimer::action):
3780         (WebCore::DOMTimer::takeAction):
3781
3782 2008-11-25  Darin Fisher  <darin@chromium.org>
3783
3784         Fix bustage.
3785
3786         https://bugs.webkit.org/show_bug.cgi?id=22493
3787         Need to expose bridge/*.h to the WebKit build.
3788
3789         * WebCore.vcproj/WebCore.vcproj:
3790
3791 2008-11-25  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3792
3793         Not reviewed. Fix build, by removing some wrong last-minute changes.
3794
3795         * wml/WMLIntrinsicEvent.cpp:
3796         (WebCore::createTaskElement):
3797         * wml/WMLOnEventElement.cpp:
3798         (WebCore::WMLOnEventElement::registerTask):
3799
3800 2008-11-25  Darin Fisher  <darin@chromium.org>
3801
3802         Reviewed by Geoffrey Garen.
3803
3804         https://bugs.webkit.org/show_bug.cgi?id=22493
3805         Abstract away JSC:: usage in WebCore/html
3806
3807         * WebCore.xcodeproj/project.pbxproj:
3808         * bindings/js/JSPluginElementFunctions.cpp:
3809         (WebCore::pluginInstance):
3810         * bindings/js/ScriptController.h:
3811         * bindings/js/ScriptControllerMac.mm:
3812         (WebCore::ScriptController::createScriptInstanceForWidget):
3813         * bindings/js/ScriptInstance.h: Added.
3814         * html/HTMLPlugInElement.cpp:
3815         (WebCore::HTMLPlugInElement::~HTMLPlugInElement):
3816         (WebCore::HTMLPlugInElement::getInstance):
3817         * html/HTMLPlugInElement.h:
3818
3819 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3820
3821         Reviewed by Sam Weinig.
3822
3823         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22477
3824
3825         A WMLTaskElement checks wheter it's parent is an <anchor>/<do>/<onevent> element, and calls registerTask(this) on the parent.
3826         Add a isWMLTaskElement() function to WMLElement, making it possible to cast to WMLTaskElement directly.
3827
3828         Add WMLEventHandlingElement class, inheriting from WMLElement, to serve as common base WMLTemplate/Option/CardElement,
3829         centralizing the eventHandler() / createEventHandlerIfNeeded() implementation. Add a isWMLEventHandlingElement()
3830         function to WMLElement, so WMLOnEventElement can create event handlers, without knowing wheter it's a
3831         <template>/<option> or <card> element.
3832
3833         Add complete <onevent> support.
3834
3835         * WebCore.xcodeproj/project.pbxproj:
3836         * wml/WMLCardElement.cpp:
3837         (WebCore::WMLCardElement::WMLCardElement):
3838         (WebCore::WMLCardElement::setActiveCardInDocument):
3839         * wml/WMLCardElement.h:
3840         (WebCore::WMLCardElement::isVisible):
3841         (WebCore::WMLCardElement::setVisible):
3842         * wml/WMLElement.h:
3843         (WebCore::WMLElement::isWMLTaskElement):
3844         * wml/WMLEventHandlingElement.cpp: Added.
3845         (WebCore::WMLEventHandlingElement::WMLEventHandlingElement):
3846         (WebCore::WMLEventHandlingElement::createEventHandlerIfNeeded):
3847         * wml/WMLEventHandlingElement.h: Added.
3848         (WebCore::WMLEventHandlingElement::isWMLEventHandlingElement):
3849         (WebCore::WMLEventHandlingElement::eventHandler):
3850         * wml/WMLOnEventElement.cpp: Added.
3851         (WebCore::WMLOnEventElement::WMLOnEventElement):
3852         (WebCore::WMLOnEventElement::parseMappedAttribute):
3853         (WebCore::WMLOnEventElement::registerTask):
3854         * wml/WMLOnEventElement.h: Added.
3855         * wml/WMLSetvarElement.cpp:
3856         (WebCore::WMLSetvarElement::parseMappedAttribute):
3857         (WebCore::WMLSetvarElement::insertedIntoDocument):
3858         * wml/WMLTagNames.in:
3859         * wml/WMLTaskElement.cpp:
3860         (WebCore::WMLTaskElement::insertedIntoDocument):
3861         * wml/WMLTaskElement.h:
3862         (WebCore::WMLTaskElement::isWMLTaskElement):
3863
3864 2008-11-25  Pierre-Olivier Latour  <pol@apple.com>
3865
3866         Reviewed by Mark Rowe.
3867
3868         createFontCustomPlatformData() crashes if CGFontCreateWithPlatformFont() returns NULL
3869
3870         https://bugs.webkit.org/show_bug.cgi?id=22503
3871
3872         * platform/graphics/mac/FontCustomPlatformData.cpp:
3873         (WebCore::createFontCustomPlatformData):
3874
3875 2008-11-25  Julien Chaffraix  <jchaffraix@webkit.org>
3876
3877         Reviewed by Eric Seidel.
3878
3879         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
3880         https://bugs.webkit.org/show_bug.cgi?id=22441
3881
3882         Element's other than HTML ones take a QualifiedName in their constructors.
3883         To make HTMLElementFactory closer to the other ElementFactory, we need
3884         to make them take the same arguments.
3885         This patch only makes the 5 first one in HTMLElementFactory abide by that. The others
3886         will go into the next patch.
3887
3888         * dom/Document.cpp:
3889         (WebCore::Document::implicitClose):
3890         * html/HTMLBaseElement.cpp:
3891         (WebCore::HTMLBaseElement::HTMLBaseElement):
3892         * html/HTMLBaseElement.h:
3893         * html/HTMLBodyElement.cpp:
3894         (WebCore::HTMLBodyElement::HTMLBodyElement):
3895         * html/HTMLBodyElement.h:
3896         * html/HTMLElementFactory.cpp:
3897         (WebCore::htmlConstructor):
3898         (WebCore::headConstructor):
3899         (WebCore::bodyConstructor):
3900         (WebCore::baseConstructor):
3901         (WebCore::linkConstructor):
3902         (WebCore::metaConstructor):
3903         * html/HTMLHeadElement.cpp:
3904         (WebCore::HTMLHeadElement::HTMLHeadElement):
3905         * html/HTMLHeadElement.h:
3906         * html/HTMLHtmlElement.cpp:
3907         (WebCore::HTMLHtmlElement::HTMLHtmlElement):
3908         * html/HTMLHtmlElement.h:
3909         * html/HTMLLinkElement.cpp:
3910         (WebCore::HTMLLinkElement::HTMLLinkElement):
3911         * html/HTMLLinkElement.h:
3912         * html/HTMLMetaElement.cpp:
3913         (WebCore::HTMLMetaElement::HTMLMetaElement):
3914         * html/HTMLMetaElement.h:
3915         * html/HTMLParser.cpp:
3916         (WebCore::HTMLParser::handleError):
3917         (WebCore::HTMLParser::headCreateErrorCheck):
3918         (WebCore::HTMLParser::createHead):
3919         (WebCore::HTMLParser::finished):
3920         * html/HTMLViewSourceDocument.cpp:
3921         (WebCore::HTMLViewSourceDocument::createContainingTable):
3922
3923 2008-11-25  Chris Marrin  <cmarrin@apple.com>
3924
3925         Reviewed by Dan Bernstein.
3926
3927         Fix for https://bugs.webkit.org/show_bug.cgi?id=22487
3928         I was not checking for the case of 0 length keyframe lists and dereffing a null pointer.
3929
3930         Tests: animations/empty-keyframes.html
3931                animations/fill-unset-properties.html
3932
3933         * css/CSSStyleSelector.cpp:
3934         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
3935
3936 2008-11-25  Chris Marrin  <cmarrin@apple.com>
3937
3938         Reviewed by Darin Adler
3939
3940         https://bugs.webkit.org/show_bug.cgi?id=22046
3941
3942         Fix a crash when an animation or transition end event handler
3943         removes the element upon which the transition/animation is running,
3944         by keeping a reference to the AnimationBase object on the stack.
3945
3946         Tests: animations/transform-animation-event-destroy-element.html
3947                transitions/transform-transition-event-destroy-element.html
3948
3949         * page/animation/AnimationBase.cpp:
3950         (WebCore::AnimationBase::setChanged):
3951         (WebCore::AnimationBase::updateStateMachine):
3952         * page/animation/AnimationBase.h:
3953         (WebCore::AnimationBase::clearRenderer):
3954         * page/animation/AnimationController.cpp:
3955         (WebCore::AnimationControllerPrivate::clear):
3956         * page/animation/CompositeAnimation.cpp:
3957         (WebCore::CompositeAnimationPrivate::~CompositeAnimationPrivate):
3958         * page/animation/CompositeAnimation.h:
3959
3960 2008-11-25  Kevin Ollivier  <kevino@theolliviers.com>
3961
3962         Better wx build fix - support PurgeableBuffer on Mac.
3963
3964         * platform/PurgeableBuffer.h:
3965         * webcore-wx.bkl:
3966
3967 2008-11-25  Holger Hans Peter Freyther  <zecke@selfish.org>
3968
3969         Reviewed by David Kilzer.
3970
3971         https://bugs.webkit.org/show_bug.cgi?id=22022
3972
3973         Add GeoleocationServiceGtk stubs and integrate it into the buildsystem
3974
3975         Add stubs for a Gtk Implementation.
3976
3977         * GNUmakefile.am:
3978         * platform/gtk/GeolocationServiceGtk.cpp: Added.
3979         (WebCore::GeolocationService::create):
3980         (WebCore::GeolocationServiceGtk::GeolocationServiceGtk):
3981         (WebCore::GeolocationServiceGtk::startUpdating):
3982         (WebCore::GeolocationServiceGtk::stopUpdating):
3983         (WebCore::GeolocationServiceGtk::suspend):
3984         (WebCore::GeolocationServiceGtk::resume):
3985         (WebCore::GeolocationServiceGtk::lastPosition):
3986         (WebCore::GeolocationServiceGtk::lastError):
3987         * platform/gtk/GeolocationServiceGtk.h: Added.
3988
3989 2008-11-25  Kevin Ollivier  <kevino@theolliviers.com>
3990
3991         wx build fix - we don't support PurgeableBuffer on Leopard for now.
3992         
3993         * platform/PurgeableBuffer.h:
3994
3995 2008-11-25  Antti Koivisto  <antti@apple.com>
3996
3997         Reviewed by Mark Rowe.
3998
3999         Fix https://bugs.webkit.org/show_bug.cgi?id=22483
4000         Assertion failure in CachedResource::makePurgeable during layout tests
4001         
4002         Deleting SVG image can re-enter destroyDecodedData.
4003
4004         * loader/CachedImage.cpp:
4005         (WebCore::CachedImage::destroyDecodedData):
4006
4007 2008-11-25  David Levin  <levin@chromium.org>
4008
4009         Reviewed by Alexey Proskuryakov.
4010
4011         https://bugs.webkit.org/show_bug.cgi?id=22443
4012         Made the PreflightResultCache thread-safe in preparation for usage of XMLHttpRequest by
4013         Workers on threads.
4014
4015         No observable change in behavior, so no test.
4016
4017         * platform/text/PlatformString.h:
4018         * platform/text/String.cpp:
4019         (WebCore::String::substringCopy):
4020         * platform/text/StringImpl.cpp:
4021         (WebCore::StringImpl::substringCopy):
4022         * platform/text/StringImpl.h:
4023         Added the ability to copy a substring.
4024
4025         * xml/XMLHttpRequest.cpp:
4026         (WebCore::PreflightResultCacheItem::PreflightResultCacheItem):
4027         (WebCore::PreflightResultCache::PreflightResultCache):
4028         (WebCore::PreflightResultCacheItem::addToAccessControlAllowList):
4029         (WebCore::PreflightResultCacheItem::parseAccessControlAllowList):
4030         (WebCore::PreflightResultCacheItem::parseAccessControlMaxAge):
4031         (WebCore::PreflightResultCacheItem::parse):
4032         (WebCore::PreflightResultCacheItem::allowsRequest):
4033         (WebCore::PreflightResultCache::shared):
4034         (WebCore::PreflightResultCache::appendEntry):
4035         (WebCore::PreflightResultCache::canSkipPreflight):
4036         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
4037         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
4038         Made the PreflightResultCache threadsafe.
4039
4040         (WebCore::PreflightResultCacheItem::allowsCrossSiteMethod):
4041         (WebCore::PreflightResultCacheItem::allowsCrossSiteHeaders):
4042         Consolidation of duplicate logic.
4043
4044 2008-11-24  Jungshik Shin  <jshin@chromium.org>
4045
4046         Reviewed by Darin Adler.
4047
4048         For Unicode encodings other than UTF-8, use UTF-8 for
4049         form submission and URL query part encoding.
4050
4051         See https://bugs.webkit.org/show_bug.cgi?id=21635
4052
4053         Tests: http/tests/misc/submit-get-in-utf16be.html
4054                http/tests/misc/submit-get-in-utf16le.html
4055                http/tests/misc/submit-get-in-utf32be.html
4056                http/tests/misc/submit-get-in-utf32le.html
4057                http/tests/misc/submit-get-in-utf7.html
4058                http/tests/misc/submit-post-in-utf16be.html
4059                http/tests/misc/submit-post-in-utf16le.html
4060                http/tests/misc/submit-post-in-utf32be.html
4061                http/tests/misc/submit-post-in-utf32le.html
4062                http/tests/misc/submit-post-in-utf7.html
4063                http/tests/misc/url-in-utf16be.html
4064                http/tests/misc/url-in-utf16le.html
4065                http/tests/misc/url-in-utf32be.html
4066                http/tests/misc/url-in-utf32le.html
4067                http/tests/misc/url-in-utf7.html
4068  
4069         * html/HTMLFormElement.cpp:
4070         (WebCore::HTMLFormElement::formData):
4071         * loader/TextResourceDecoder.cpp:
4072         (WebCore::TextResourceDecoder::setEncoding):
4073         * platform/KURL.cpp:
4074         (WebCore::KURL::KURL):
4075         * platform/text/TextEncoding.cpp:
4076         (WebCore::UTF7Encoding):
4077         (WebCore::TextEncoding::isNonByteBasedEncoding):
4078         (WebCore::TextEncoding::closestByteBasedEquivalent):
4079         (WebCore::TextEncoding::encodingForFormSubmission):
4080         * platform/text/TextEncoding.h:
4081
4082 2008-11-24  Julien Chaffraix  <jchaffraix@webkit.org>
4083
4084         Reviewed by Darin Adler.
4085
4086         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
4087         https://bugs.webkit.org/show_bug.cgi?id=22441
4088
4089         - Make the generated ElementFactory constructors return PassRefPtr instead of raw pointers.
4090
4091         - Tweaked the generated files to better match our coding style.
4092
4093         * dom/make_names.pl:
4094
4095 2008-11-24  Antti Koivisto  <antti@apple.com>
4096
4097         Reviewed by Darin Adler.
4098         
4099         Fix for https://bugs.webkit.org/show_bug.cgi?id=22073
4100         REGRESSION(r33544): Palace in the Sky crashes WebKit
4101         
4102         HTMLTokenizer::m_hasScriptsWaitingForStylesheets would still be set while
4103         there were no scripts left to execute. 
4104         
4105         If m_hasScriptsWaitingForStylesheets becomes true during script execution
4106         bail out from executing more scripts synchronously.
4107
4108         Test: fast/tokenizer/nested-cached-scripts-and-stylesheet.html
4109
4110         * html/HTMLTokenizer.cpp:
4111         (WebCore::HTMLTokenizer::reset):
4112         (WebCore::HTMLTokenizer::notifyFinished):
4113
4114 2008-11-24  Darin Fisher  <darin@chromium.org>
4115
4116         Reviewed by Geoffrey Garen.
4117
4118         https://bugs.webkit.org/show_bug.cgi?id=22465
4119         Define KURL::copy() and use it in WorkerThread.cpp
4120
4121         * dom/WorkerThread.cpp:
4122         (WebCore::WorkerThread::WorkerThread):
4123         * platform/KURL.cpp:
4124         (WebCore::KURL::copy):
4125         * platform/KURL.h:
4126
4127 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
4128
4129         Reviewed by Sam Weinig.
4130
4131         Name enum values in a style guide compatible way.
4132         Allow WMLIntrinsicEvent inclusion, without needing other includes.
4133
4134         * wml/WMLIntrinsicEvent.cpp:
4135         (WebCore::createTaskElement):
4136         * wml/WMLIntrinsicEvent.h:
4137         * wml/WMLIntrinsicEventHandler.cpp:
4138         * wml/WMLIntrinsicEventHandler.h:
4139         (WebCore::):
4140
4141 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
4142
4143         Reviewed by Sam Weinig.
4144
4145         Add wmlPageStateForDocument() helper function and use it in some places.
4146
4147         * wml/WMLAccessElement.cpp:
4148         (WebCore::WMLAccessElement::parseMappedAttribute):
4149         * wml/WMLDocument.cpp:
4150         (WebCore::WMLDocument::WMLDocument):
4151         (WebCore::WMLDocument::finishedParsing):
4152         (WebCore::wmlPageStateForDocument):
4153         * wml/WMLDocument.h:
4154         * wml/WMLGoElement.cpp:
4155         (WebCore::WMLGoElement::executeTask):
4156         * wml/WMLPrevElement.cpp:
4157         (WebCore::WMLPrevElement::executeTask):
4158         * wml/WMLRefreshElement.cpp:
4159         (WebCore::WMLRefreshElement::executeTask):
4160         * wml/WMLTaskElement.cpp:
4161         (WebCore::WMLTaskElement::storeVariableState):
4162         * wml/WMLTaskElement.h:
4163
4164 2008-11-24  Antti Koivisto  <antti@apple.com>
4165
4166         Reviewed by Geoff Garen and Sam Weinig.
4167
4168         https://bugs.webkit.org/show_bug.cgi?id=22214
4169         Keep dead resources in memory cache in purgeable memory.
4170         <rdar://problem/6333088>
4171         
4172         OS X 10.5 has purgeable memory kernel facility that allows marking reserved memory
4173         areas as less important. Under memory pressure system can steal pages that have
4174         been marked purgeable for (hopefully) better uses. This is ideal for caches.
4175         
4176         Only resources larger than 16KB will be moved to the purgeable memory.
4177
4178         * WebCore.base.exp:
4179         * WebCore.vcproj/WebCore.vcproj:
4180         * WebCore.xcodeproj/project.pbxproj:
4181         * loader/Cache.cpp:
4182         (WebCore::Cache::requestResource):
4183         (WebCore::Cache::requestUserCSSStyleSheet):
4184         (WebCore::Cache::resourceForURL):
4185         (WebCore::Cache::pruneDeadResources):
4186         (WebCore::Cache::TypeStatistic::addResource):
4187         (WebCore::Cache::getStatistics):
4188         (WebCore::Cache::dumpStats):
4189         * loader/Cache.h:
4190         (WebCore::Cache::TypeStatistic::TypeStatistic):
4191         * loader/CachedCSSStyleSheet.cpp:
4192         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
4193         (WebCore::CachedCSSStyleSheet::sheetText):
4194         * loader/CachedCSSStyleSheet.h:
4195         * loader/CachedImage.cpp:
4196         (WebCore::CachedImage::addClient):
4197         (WebCore::CachedImage::image):
4198         (WebCore::CachedImage::imageSize):
4199         (WebCore::CachedImage::imageRect):
4200         (WebCore::CachedImage::destroyDecodedData):
4201         * loader/CachedResource.cpp:
4202         (WebCore::CachedResource::addClient):
4203         (WebCore::CachedResource::makePurgeable):
4204         (WebCore::CachedResource::isPurgeable):
4205         (WebCore::CachedResource::wasPurged):
4206         * loader/CachedResource.h:
4207         (WebCore::CachedResource::data):
4208         * loader/CachedScript.cpp:
4209         (WebCore::CachedScript::allClientsRemoved):
4210         (WebCore::CachedScript::script):
4211         (WebCore::CachedScript::destroyDecodedData):
4212         * platform/PurgeableBuffer.h: Added.
4213         (WebCore::PurgeableBuffer::create):
4214         (WebCore::PurgeableBuffer::size):
4215         (WebCore::PurgeableBuffer::):
4216         (WebCore::PurgeableBuffer::purgePriority):
4217         (WebCore::PurgeableBuffer::isPurgeable):
4218         (WebCore::PurgeableBuffer::~PurgeableBuffer):
4219         (WebCore::PurgeableBuffer::data):
4220         (WebCore::PurgeableBuffer::setPurgePriority):
4221         (WebCore::PurgeableBuffer::wasPurged):
4222         (WebCore::PurgeableBuffer::makePurgeable):
4223         * platform/SharedBuffer.cpp:
4224         (WebCore::SharedBuffer::~SharedBuffer):
4225         (WebCore::SharedBuffer::adoptPurgeableBuffer):
4226         (WebCore::SharedBuffer::size):
4227         (WebCore::SharedBuffer::data):
4228         (WebCore::SharedBuffer::append):
4229         (WebCore::SharedBuffer::clear):
4230         (WebCore::SharedBuffer::releasePurgeableBuffer):
4231         * platform/SharedBuffer.h:
4232         (WebCore::SharedBuffer::hasPurgeableBuffer):
4233         * platform/cf/SharedBufferCF.cpp:
4234         * platform/mac/PurgeableBufferMac.cpp: Added.
4235         (WebCore::PurgeableBuffer::PurgeableBuffer):
4236         (WebCore::PurgeableBuffer::~PurgeableBuffer):
4237         (WebCore::PurgeableBuffer::create):
4238         (WebCore::PurgeableBuffer::makePurgeable):
4239         (WebCore::PurgeableBuffer::wasPurged):
4240         (WebCore::PurgeableBuffer::setPurgePriority):
4241         (WebCore::PurgeableBuffer::data):
4242
4243 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
4244
4245         Reviewed by George Staikos & Eric Seidel.
4246
4247         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22430
4248
4249         Regenerate WML layout test results after implementing WML specific <card> handling:
4250         Only the first <card> element should be visible after loading the document, others
4251         can be shown by using the <go> task element.
4252
4253         * dom/Document.h: Make 'finishedParsing()' a virtual function.
4254         * wml/WMLCardElement.cpp:
4255         (WebCore::WMLCardElement::WMLCardElement):
4256         (WebCore::WMLCardElement::~WMLCardElement):
4257         (WebCore::WMLCardElement::createRenderer):
4258         (WebCore::WMLCardElement::setActiveCardInDocument):
4259         (WebCore::WMLCardElement::setVisibility):
4260         * wml/WMLCardElement.h:
4261         * wml/WMLDocument.cpp:
4262         (WebCore::WMLDocument::finishedParsing): Execute WML specific logic after tokenzing.
4263         * wml/WMLDocument.h:
4264
4265 2008-11-24  Glenn Wilson  <gwilson@chromium.org>